tree-ssa.c (kill_redundant_phi_nodes): More correctly handle PHIs where the destinati...
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2004-06-14  Jeff Law  <law@redhat.com>
2
3         * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
4         PHIs where the destination or an argument is marked with
5         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
6
7 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
8
9         PR middle-end/15945
10         * simplify-rtx.c (simplify_binary_operation): Don't optimize out
11         Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
12
13 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14
15         * opts.sh (var_args): Fix regexp.
16
17 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
18
19         PR target/15178
20         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
21
22 2004-06-14  Paul Brook  <paul@codesourcery.com>
23
24         * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
25
26 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
27
28         * Makefile.in (FLAGS_H): New.
29         (flags.h): Replace by FLAGS_H.
30         * c.opt: Document Var, VarExists, Init and Report attributes.
31         * common.opt: Fill the values of the attributes.
32         * diagnostic.c (flag_fatal_errors): Do not define.
33         * except.c (flag_non_call_exceptions): Do not define.
34         * flags.h: Include options.h.  Remove declarations conflicting with
35         the automatically defined ones.
36         * opts.c: Remove automatically defined variables.
37         (handle_option): Perform default initialization.
38         (common_handle_option): Do not handle options covered by the
39         default initialization.
40         * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
41         fields.
42         (CL_REPORT): New.
43         * opts.sh: Generate variable declarations, handle CL_REPORT.
44         * toplev.c: Remove automatically defined variables.
45         (f_options): Removed.
46         (print_switch_values): Use cl_options instead of f_options.
47         * toplev.h (version_flag): Declaration removed.
48
49 2004-06-14  Ian Lance Taylor  <ian@wasabisystems.com>
50
51         * config/sparc/sparc.h: Correct comment about availability of
52         little endian option.
53
54         * config.gcc: Remove sparc64-*-aout*.
55         * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
56         * config/sparc/sp64-aout.h: Remove.
57         * config/sparc/aout.h: Remove.
58
59 2004-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
60
61         * config/s390/s390.c: Include "tree-gimple.h".
62         (s390_gimplify_va_arg): New function.
63         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
64         (s390_va_arg): Remove.
65         * config/s390/s390-protos.h (s390_va_arg): Remove.
66         * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
67
68 2004-06-14  J"orn Rennecke <joern.rennecke@superh.com>
69
70         * basic-block.h (could_fall_through): Declare.
71         * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
72         Fail if the source already has a fallthrough edge to the exit
73         block pointer.
74         (could_fall_through): New function.
75         * cfgbuild.c (make_edges): Check if we already have a fallthrough
76         edge to the exit block pointer.
77         * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
78         not called before reload has completed.
79         Handle special case of first block having a fall-through exit edge.
80         (cfg_layout_finalize): Don't call it before reload or if we have
81         rtl epilogues.
82         (fixup_reorder_chain): A fall through to the exit block does not
83         require the block to come last.  Add sanity checks.
84         * cfgrtl.c (rtl_split_edge): Add special handling of fall through
85         edges to the exit block.
86         * function.c (cfglayout.h): #include.
87         (thread_prologue_and_epilogue_insns): If we have neither return nor
88         epilogue, but a fall through to the exit block from mid-function,
89         force a non-fall-through exit.
90         * Makefile.in (function.o): Depend on CFGLAYOUT_H.
91
92 2004-06-14  Alan Modra  <amodra@bigpond.net.au>
93
94         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
95         for power5 and rs64a.  Correct condition for default.  Correct power3,
96         620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries.  Add -many.
97
98 2004-06-13  Steven Bosscher <stevenb@suse.de>
99
100         * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
101         Revert previous change, don't use CALL_P.
102
103 2004-06-13  Jason Merrill  <jason@redhat.com>
104
105         * tree.h: Move std_gimplify_va_arg_expr protoype here.
106         * tree-gimple.h: From here.
107
108 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
109
110         Fix PR tree-optimization/15979
111         Fix PR tree-optimization/15981
112         * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
113         try to insert values undefined along some path.
114
115 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
116
117         * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
118         are available everywhere too.
119
120 2004-06-13  Andrew Pinski  <pinskia@physics.uc.edu>
121
122         * fold-const.c (fold_checksum_tree <case 't'>): Only
123         look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
124         Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
125         EXPR is an INTEGERAL_TYPE or a scalar float type.
126
127 2004-06-13  Diego Novillo  <dnovillo@redhat.com>
128
129         * tree-sra.c (tree_sra): Update documentation.
130
131 2004-06-13  Joseph S. Myers  <jsm@polyomino.org.uk>
132
133         * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
134         function_types_compatible_p, type_lists_compatible_p): Remove
135         flags parameter.
136         * c-tree.h (comptypes): Likewise.
137         (COMPARE_STRICT): Remove.
138         * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
139         callers changed.
140
141 2004-06-13  Eric Christopher  <echristo@redhat.com>
142
143         * c-decl.c (diagnose_mismatched_decls): Improve error message.
144         Remove unused code.
145         * c-typeck.c (comptypes): Add location in standard we're checking.
146
147 2004-06-13  Kaz Kojima  <kkojima@gcc.gnu.org>
148
149         * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
150         version 3.3.4.
151
152 2004-06-12  Roger Sayle  <roger@eyesopen.com>
153
154         * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
155         index by machine mode.
156         (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
157         tables inside the loop over machine modes.
158         (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
159         expand_divmod): Index shift*_cost by the appropriate machine mode.
160
161 2004-06-12  Eric Christopher  <echristo@redhat.com>
162
163         * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
164         * config/s390/s390.md: Ditto.
165         * config/s390/s390.c: Ditto.
166         (s390_frame_info): Conditionalize frame and setup info on
167         TARGET_TPF_PROFILING.
168         (s390_arg_frame_offset): Ditto.
169
170 2004-06-12  Roger Sayle  <roger@eyesopen.com>
171
172         * fold-const.c (omit_two_operands): New function.
173         * tree.h (omit_two_operands): Prototype here.
174         * builtins.c (fold_builtin_unordered_cmp): New function to lower
175         C99 unordered comparison builtins to the appropriate tree nodes.
176         (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
177         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
178         BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER.  Manually lower
179         BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
180         (simplify_builtin_memcmp, simplify_builtin_strncmp,
181         simplify_builtin_strncat, simplify_builtin_strspn): Use the new
182         omit_two_operands function to build the required COMPOUND_EXPRs.
183
184 2004-06-12  Steven Bosscher <stevenb@suse.de>,
185             Andreas Jaeger  <aj@suse.de>
186
187         * gcse.c (record_set_info): Use predicates like REG_P.
188         (mems_conflict_for_gcse_p): Likewise.
189         (load_killed_in_block_p): Likewise.
190         (hash_expr_1): Likewise.
191         (insert_set_in_table): Likewise.
192         (gcse_constant_p): Likewise.
193         (hash_scan_set): Likewise.
194         (hash_scan_insn): Likewise.
195         (canon_list_insert): Likewise.
196         (record_last_mem_set_info): Likewise.
197         (record_last_set_info): Likewise.
198         (compute_hash_table_work): Likewise.
199         (mark_set): Likewise.
200         (mark_clobber): Likewise.
201         (mark_oprs_set): Likewise.
202         (compute_transp): Likewise.
203         (find_avail_set): Likewise.
204         (cprop_insn): Likewise.
205         (do_local_cprop): Likewise.
206         (cprop): Likewise.
207         (find_implicit_sets): Likewise.
208         (find_bypass_set): Likewise.
209         (bypass_conditional_jumps): Likewise.
210         (insert_insn_end_bb): Likewise.
211         (pre_insert_copy_insn): Likewise.
212         (compute_transpout): Likewise.
213         (next_ls_expr): Likewise.
214         (invalidate_any_buried_refs): Likewise.
215         (compute_ld_motion_mems): Likewise.
216         (reg_set_info): Likewise.
217         (reg_clear_last_set): Likewise.
218         (find_moveable_store): Likewise.
219         (compute_store_table): Likewise.
220         (find_loads): Likewise.
221         (store_killed_in_insn): Likewise.
222         (insert_insn_start_bb): Likewise.
223         (reg_set_between_after_reload_p): Likewise.
224         (reg_used_between_after_reload_p): Likewise.
225         (is_jump_table_basic_block): Likewise.
226         (gcse_after_reload): Likewise.
227         (hash_scan_set_after_reload): Likewise.
228         (compute_hash_table_after_reload): Likewise.
229
230 2004-06-12  Steven Bosscher  <stevenb@suse.de>
231
232         * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
233         (INSN_P): Don't look at the rtx code class, just explicitly
234         check for one of the tree RTX_INSN codes.
235
236 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
237
238         * c-typeck.c (default_function_array_conversion): Use
239         build_pointer_type not TYPE_POINTER_TO.
240
241 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
242
243         * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
244         * configure, config.in: Regenerate.
245         * system.h: Unconditionally define bool as unsigned char,
246         BOOL_BITFIELD as unsigned int.
247         * domwalk.h: Use BOOL_BITFIELD.
248
249 2004-06-12  Andreas Jaeger  <aj@suse.de>
250
251         * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
252         * libgcc-darwin.ver: Likewise.
253
254 2004-06-12  Peter Jakubek  <peter@laseranimation.com>
255
256         * reload.c (find_reloads): Force reload for pseudo registers on big
257         endian machines.
258
259 2004-06-11  Steven Bosscher <stevenb@suse.de>
260
261         * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
262         Don't try to mark anything control dependent on the entry or
263         exit blocks.
264
265 2004-06-11  Daniel Berlin  <dberlin@dberlin.org>
266
267         Fix Bug 15899
268         Fix Bug 15460
269         * tree.h (SSA_NAME_VALUE): New macro.
270         (struct tree_ssa_name): Add value_handle member.
271         * tree-ssa-pre.c: Replaced.
272         * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
273         (struct cst_ann_d): New.
274         (struct expr_ann_d): New.
275         (union tree_ann_d): Add cst_ann, expr_ann.
276         * tree-dfa.c (create_cst_ann): New function.
277         (create_expr_ann): Ditto.
278         * tree-flow-inline.h (cst_ann): New function.
279         (expr_ann): Ditto.
280         (get_cst_ann): Ditto.
281         (get_expr_ann): Ditto..
282
283 2004-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
284
285         * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
286         * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
287         _U_Qfcmp library function.
288         (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
289         _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
290
291         * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
292         unspec used for loading address from DLT.
293         * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
294         Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
295         Don't use short code sequence when loading the address of a nonlocal
296         label.
297         (nonlocal_goto): New expander.
298         (indirect_goto): New jump pattern for nonlocal gotos.
299         (short_jump): Remove extra whitespace.
300         (builtin_longjmp): Clobber memory and hard frame pointer.  Restore
301         frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
302         pattern.
303
304 2004-06-11  Roger Sayle  <roger@eyesopen.com>
305
306         * expmed.c (synth_mult): Add an additional MODE argument for the
307         machine mode of the multiplication.  Update recursive calls.  Use
308         mode instead of word_mode for determining operation costs.
309         (choose_mult_variant): Update calls to synth_mult with "mode".
310
311 2004-06-11  Richard Henderson  <rth@redhat.com>
312
313         * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
314         and makes_aliased_stores.
315
316 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
317
318         * doc/install.text (--enable-shared): Fix typo.
319
320 2004-06-11  Richard Henderson  <rth@redhat.com>
321
322         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
323         argument.  Use internal post for call to gimplify_expr.  Tidy
324         rounded type size computation.
325         (alpha_gimplify_va_arg): Use get_formal_tmp_var and
326         get_initialized_tmp_var.
327
328 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
329
330         * doc/install.texi (--enable-shared): Update libobjc's shared library
331         status.  Remove reference to libf2c.
332
333 2004-06-11  Jason Merrill  <jason@redhat.com>
334
335         * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
336         * config/i386/i386.c (ix86_va_arg): Remove.
337         * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
338         * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
339         * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
340         * config/alpha/alpha.c (alpha_va_arg): Remove.
341         * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
342         * config/sparc/sparc.c (sparc_va_arg): Remove.
343
344         * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
345         assignment might throw.
346         * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
347         expressions.
348
349 2004-06-11  J"orn Rennecke <joern.rennecke@superh.com>
350
351         PR 15886:
352         * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
353
354 2004-06-11  Joseph S. Myers  <jsm@polyomino.org.uk>
355
356         * doc/install.texi (Prerequisites): Update documentation of
357         required versions of autoconf and automake.  Remove mention of
358         libf2c.
359
360 2004-06-11  Jason Merrill  <jason@redhat.com>
361
362         * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
363         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
364
365 2004-06-11  Jerry Quinn  <jlquinn@optonline.net>
366
367         * typeclass.h: Add GPL plus exception license.  Add include
368         guard.
369
370 2004-06-10  Jason Merrill  <jason@redhat.com>
371
372         * gimplify.c (gimplify_modify_expr): Don't force a temporary
373         of an aggregate_value_p type.
374
375 2004-06-10  Jeff Law  <law@redhat.com>
376
377         * fold-const.c (fold_inf_compare): Avoid creating non-gimple
378         code when we are in gimple form.
379
380 2004-06-10  Diego Novillo  <dnovillo@redhat.com>
381
382         * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
383         * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
384         (highest_ssa_version): Remove.
385         * tree-outof-ssa.c (new_temp_expr_table): Replace
386         highest_ssa_version with num_ssa_names.
387         (dump_replaceable_exprs): Likewise.
388         (rewrite_vars_out_of_ssa): Likewise.
389         * tree-ssa-ccp.c (initialize): Likewise
390         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
391         * tree-ssa-dce.c (tree_dce_init): Likewise.
392         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
393         * tree-ssa-live.c (create_ssa_var_map): Likewise.
394         (dump_var_map): Likewise.
395         * tree-ssa.c (verify_ssa): Likewise.
396         (kill_redundant_phi_nodes): Likewise.
397         Do not build a local array of SSA_NAMEs.  Use the ssa_names table.
398         * tree-ssanames.c: Include tree-flow.h
399         (ssa_names): New varray.
400         (init_ssa_names): Initialize ssa_names.
401         Reserve the first slot of the ssa_names table.
402         (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
403         Assign version numbers using num_ssa_names.
404
405 2004-06-10  Joseph S. Myers  <jsm@polyomino.org.uk>
406
407         * doc/sourcebuild.texi (Front End): Add details of more
408         installation documentation required.
409
410 2004-06-10  Brian Booth  <bbooth@redhat.com>
411
412         * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
413         of V_MAY_DEF and V_MUST_DEF.
414         * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
415         num_vdefs to num_v_may_defs.
416         (compute_immediate_uses_for_stmt): Rename occurences of vdef
417         to v_may_def.
418         (redirect_immediate_uses): Ditto.
419         (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
420         (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
421         Also add code to sum up the number of v_must_defs.
422         (vdefs_disappeared_p): Replace with...
423         (v_may_defs_disappeared_p): This.
424         (v_must_defs_disappeared_p): New function.
425         (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
426         Also add code to mark new variables found in V_MUST_DEFs for
427         renameing.
428         * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
429         vdef_ops to v_may_def_ops.
430         (get_vdef_ops): Replace with...
431         (get_v_may_def_ops): This.
432         * tree-flow-inline.h (get_vdef_ops): Replace with...
433         (get_v_may_def_ops): This.
434         (get_v_must_def_ops): New function.
435         (get_vdef_result_ptr): Replace with...
436         (get_v_may_def_result_ptr): This.
437         (get_vdef_op_ptr): Ditto with...
438         (get_v_may_def_op_ptr); This.
439         (get_v_must_def_op_ptr): New function.
440         * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
441         to v_may_def. Also add code to mark statements with
442         V_MUST_DEFs as definition sites.
443         (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
444         add code to register new V_MUST_DEFs made by the statement.
445         * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
446         (check_replaceable): Rename occurences of vdef to v_may_def. Also
447         add check for V_MUST_DEFs.
448         (find_replaceable_in_bb): Ditto.
449         * tree-pretty-print.c (dump_vops): Rename occurences of vdef
450         to v_may_def. Also add code to dump V_MUST_DEFs.
451         * tree-sra.c (mark_all_vdefs): Replace with...
452         (mark_all_v_may_defs): This.
453         (mark_all_v_must_defs): New function.
454         (create_scalar_copies): Replace call to mark_all_vdefs with
455         calls to mark_all_v_may_defs and mark_all_v_must_defs.
456         (scalarize_structures): Rename occurences of vdef to v_may_def.
457         Also add a check for V_MUST_DEFs.
458         (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
459         * tree-ssa-alias.c (global_var): Update comment.
460         (compute_may_aliases): Ditto.
461         (compute_points_to_and_addr_escape): Rename occurences of vdef
462         to v_may_def. Also add code to mark variables in V_MUST_DEF
463         operands as being written to.
464         (group_aliases): Update comment.
465         (maybe_create_global_var): Ditto.
466         * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
467         Also add a check for V_MUST_DEFs on GIMPLE registers.
468         (replace_immediate_uses): Rename occurences of vdef to v_may_def.
469         * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
470         to v_may_def. Also add code to mark all V_MUST_DEF operands
471         VARYING.
472         (initialize): Ditto.
473         (set_rhs): Rename occurences of vdef to v_may_def. Also add
474         code to update SSA_NAMEs in V_MUST_DEFs.
475         * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
476         to v_may_def.
477         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
478         occurences of vdef to v_may_def. Also add code to mark statements
479         with V_MUST_DEFs as necessary.
480         (propagate_necessity): Rename occurences of vdef to v_may_def.
481         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
482         occurences of vdef to v_may_def. Also add code to mark operands
483         in V_MUST_DEFs for renaming.
484         (eliminate_redundant_computations): Rename occurences of vdef
485         to v_may_def.
486         (record_equivalences_from_stmt): Rename occurences of vdef
487         to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
488         (optimize_stmt): Remove unnesessary variable vdefs. Update
489         comment.
490         (register_definitions_for_stmt): Rename occurences of vdef
491         to v_may_def. Also add code to register definitions made with
492         V_MUST_DEFs.
493         * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
494         (fix_stmt_v_may_defs): This.
495         (fix_phi_uses): Rename occurences of vdef to v_may_def.
496         (dse_optimize_stmt): Ditto.
497         * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
498         to v_may_def. Also add code to mark V_MUST_DEF operands as being
499         used in virtual operators.
500         * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
501         vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
502         renaming.
503         * tree-ssa-operands.c (opf_kill_def): New flag for killing
504         definitions.
505         (build_vdefs): Renamed to...
506         (build_v_may_defs): This.
507         (build_v_must_defs): New variable.
508         (voperands_d): Add v_must_def_ops and replace vdef_ops with
509         v_may_def_ops.
510         (append_vdef): Replace with...
511         (append_v_may_def): This.
512         (append_v_must_def): New function.
513         (NUM_FREE): Increment for V_MUST_DEF
514         (optype_freelist): Increment its size for V_MUST_DEF
515         (allocate_vdef_optype): Replace with...
516         (allocate_v_may_def_optype): This.
517         (allocate_v_must_def_optype): New function.
518         (free_vdefs): Replace with...
519         (free_v_may_defs): This.
520         (free_v_must_defs): New function.
521         (remove_vdefs): Replace with...
522         (remove_v_may_defs): This.
523         (remove_v_must_defs): New function.
524         (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
525         add code to initialize build_v_must_defs.
526         (finalize_ssa_vdefs): Replace with...
527         (finalize_ssa_v_may_defs): This.
528         (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
529         (finalize_ssa_v_must_defs): New function.
530         (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
531         with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
532         (verify_start_operands): Rename occurences of vdef to v_may_def.
533         Also add check for build_v_must_defs.
534         (get_stmt_operands): Rename occurences of vdef to v_may_def.
535         Also add code to handle V_MUST_DEFs and to use opf_kill_def for
536         killing definitions.
537         (get_expr_operands): Update comment and use opf_kill_def for
538         killing definitions.
539         (add_stmt_operand): Replace code that appends VDEFs with code
540         that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
541         otherwise.
542         (add_call_clobber_ops): Update comments.
543         * tree-ssa-operands.h (vdef_optype_d): Replace with...
544         (v_may_def_optype_d): This.
545         (v_must_def_optype_d): New structure.
546         (VDEF_OPS): Replace with...
547         (V_MAY_DEF_OPS): This.
548         (STMT_VDEF_OPS): Same with...
549         (STMT_V_MAY_DEF_OPS): This.
550         (NUM_VDEFS): And...
551         (NUM_V_MAY_DEFS): This.
552         (VDEF_RESULT_PTR): As well as...
553         (V_MAY_DEF_RESULT_PTR): This.
554         (VDEF_RESULT): Same goes for...
555         (V_MAY_DEF_RESULT): This.
556         (VDEF_OP_PTR): And...
557         (V_MAY_DEF_OP_PTR): This.
558         (VDEF_OP): And...
559         (V_MAY_DEF_OP): This.
560         (V_MUST_DEF_OPS): New macro.
561         (STMT_V_MUST_DEF_OPS): Ditto.
562         (NUM_V_MUST_DEFS): Ditto.
563         (V_MUST_DEF_OP_PTR): Ditto.
564         (V_MUST_DEF_OP): Ditto.
565         (remove_vdefs): Replace signature with...
566         (remove_v_may_defs): This.
567         (remove_v_must_defs): New function signature.
568         * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
569         with calls to remove_v_may_defs and remove_v_must_defs.
570         (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
571         Also add code that marks left occurences of operands in V_MUST_DEFs.
572         * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
573         to v_may_def. Also add check for V_MUST_DEFs.
574         (eliminate_tail_call):Rename occurences of vdef to v_may_def.
575
576 2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>
577
578         PR target/15653
579         * haifa-sched.c (schedule_block): Finish cycle after issuing asm
580         insn.
581
582 2004-06-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
583
584         PR web/15263
585         * doc/install.texi: Remove superfluous linebreak.
586
587 2004-06-10  Roger Sayle  <roger@eyesopen.com>
588
589         * builtins.c (expand_builtin): Fall back to library function call for
590         conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
591         (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
592         BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
593         IMAGPART_EXPR respectively.
594
595 2004-06-10  J"orn Rennecke <joern.rennecke@superh.com>
596
597         * sh.c (dump_table): New argument start.  Changed caller.
598         (fixup_mova): New function.
599         (find_barrier): Use it.
600         (sh_reorg): Likewise.  Check for CODE_FOR_casesi_worker_2.
601         If the label a mova refers to is above the mova itself, change
602         the mova into a load.
603         * sh.md (*casesi_worker): Rename to:
604         (casesi_worker_1).
605         (casesi_worker_2): New insn.
606
607 2004-06-10  Jason Merrill  <jason@redhat.com>
608
609         * target.h (struct gcc_target): Change gimplify_va_arg_expr
610         hook signature.
611         * tree-gimple.h: Adjust.
612         * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
613         * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
614         Use fold_convert.
615         * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
616         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
617         Use COMPLEX_EXPR for complex numbers.  Use fold_convert.
618         * builtins.c (std_gimplify_va_arg_expr): Adjust.  Use fold_convert.
619         (gimplify_va_arg_expr): Return GS_ERROR in error case.
620         Gimplify valist rather than calling stabilize_va_list.
621
622 2004-06-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
623
624         * Makefile.in (df.o): Remove fibheap dependency.
625         * df.h: Do not include sbitmap.h.
626         (struct ref): New field "data".
627         (DF_REF_DATA): New accessor macro.
628         (struct df): Field "dom" removed.
629         (df_analyze_subcfg): New function.
630         (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
631         (transfer_function): ... new type.
632         (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
633         (iterative_dataflow): ... new function.
634         (enum set_representation, struct dataflow): New.
635         * df.c: Do not include fibheap.h.
636
637         (df_reg_def_chain_clean, df_reg_use_chain_clean,
638         (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
639         prune_to_subcfg, df_bb_modify): New functions.
640         (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
641         df_refs_update, df_reg_table_realloc, df_ref_create,
642         df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
643         df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
644         df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
645
646         (dataflow_set_a_op_b, dataflow_set_copy): New functions.
647         (df_rd_transfer_function, df_ru_transfer_function,
648         df_lr_transfer_function): Type of bitmaps changed to void *.
649         (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
650         (hybrid_search): ... new function.
651         (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
652         (iterative_dataflow): ... new function. Avoid use of fibheaps for
653         a worklist.  Do not process basic blocks unnecessarily.
654
655 2004-06-10  Roger Sayle  <roger@eyesopen.com>
656
657         * fold-const.c (fold_abs_const): Make extern.
658         * tree.h (fold_abs_const): Prototype here.
659         * builtins.c (fold_builtin_fabs): New function to transform
660         fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
661         (fold_builtin_abs): New function to transform abs, labs, llabs
662         and imaxabs builtins into ABS_EXPR tree nodes.
663         (expand_builtin): Fall back to a function call for abs, labs,
664         llabs and imaxabs builtins that survive constant folding.
665         (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
666         FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
667
668 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
669
670         * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
671         leaf function without unwind info at RP 0.
672
673 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
674
675         PR c++/14791
676         * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
677         (fileptr_type_node): Define.
678         * tree.c (build_common_tree_nodes_2): Initialize
679         fileptr_type_node to ptr_type_node.
680         * c-common.c (c_common_nodes_and_builtins): For C++, make
681         fileptr_type_node a distinct type copy.
682         * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
683         BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
684         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
685         BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
686         (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
687         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
688         BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
689         * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
690         BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
691         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
692         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
693         the above *FILEPTR* types instead of *PTR*.
694
695 2004-06-09  Daniel Berlin <dberlin@dberlin.org>
696
697         * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
698         match.
699
700 2004-06-09  Roger Sayle  <roger@eyesopen.com>
701
702         * fold-const.c (fold_not_const): New function.
703         (fold) <ABS_EXPR>: Don't bother testing wins.
704         (fold) <BIT_NOT_EXPR>: Call fold_not_const.
705         (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
706
707 2004-06-09  Richard Henderson  <rth@redhat.com>
708
709         PR middle-end/15228
710         * function.c (assign_parms): Always set_mem_align with the computed
711         FUNCTION_ARG_BOUNDARY.  Don't clear stack_parm if !STRICT_ALIGNMENT.
712
713 2004-06-09  Richard Henderson  <rth@redhat.com>
714
715         PR opt/15108
716         * tree-tailcall.c (find_tail_calls): Don't check early for
717         tail_recursion failure.
718
719 2004-06-09  Diego Novillo  <dnovillo@redhat.com>
720
721         Move SSA_NAME annotations into tree_ssa_name.
722
723         * tree-dfa.c (create_ssa_name_ann): Remove.
724         * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
725         * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
726         (struct ssa_name_ann_d): Remove.
727         (union tree_ann_d): Update.
728         (ssa_name_ann_t): Remove.
729         * tree-ssa-alias.c: (get_ptr_info): New local function.
730         Replace references to ssa_name_ann_t with struct ptr_info_def.
731         * tree-ssa-operands.c (get_expr_operands): Likewise.
732         * tree.h (SSA_NAME_PTR_INFO): Define.
733         (struct ptr_info_def): Declare.
734         (struct tree_ssa_name): Add field 'ptr_info'.
735
736 2004-06-09  Danny Smith  <dannysmith@users.sourceforge.net>
737
738         * config/i386/winnt.c (i386_pe_output_labelref): Correct
739         misplaced ')'.
740
741 2004-06-09  Steven Bosscher  <stevenb@suse.de>
742
743         * config/i386/k6.md: Rewrite using the DFA model.
744         * config/i386/i386.c (ix86_adjust_cost): Don't increase the
745         cost of load-operation insns for the K6.
746         (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
747         (ia32_multipass_dfa_lookahead): Likewise.
748
749 2004-06-09  Richard Henderson  <rth@redhat.com>
750
751         * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
752         alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
753
754 2004-06-09  Richard Henderson  <rth@redhat.com>
755
756         * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
757
758 2004-06-09  Geoffrey Keating  <geoffk@apple.com>
759
760         * Makefile.in (CPPLIB_H): Put files in order of inclusion.
761         (CPP_ID_DATA_H): New.
762         (gtype-desc.o): Update dependencies.
763         (GTFILES): Use CPP_ID_DATA_H.
764
765 2004-06-09  Mark Mitchell  <mark@codesourcery.com>
766
767         Revert:
768         PR c++/15815
769         2004-06-07  Mark Mitchell  <mark@codesourcery.com>
770         * doc/extend.texi: Deprecate #pragma interface and #pragma
771         implementation.
772
773 2004-06-09  David S. Miller  <davem@nuts.davemloft.net>
774
775         * config/sparc/sparc.h (MOVE_RATIO): New definition.
776
777 2004-06-09  Richard Henderson  <rth@redhat.com>
778
779         * basic-block.h (struct edge_def): Add goto_locus.
780         * tree-cfg.c (make_goto_expr_edges): Set it.
781         (disband_implicit_edges): Use it.
782         * tree-pretty-print.c (dump_implicit_edges): Print it.
783
784 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
785
786         * h8300.md (ldm_h8300s_4): Fix condition for expander.
787
788 2004-06-08  Jason Merrill  <jason@redhat.com>
789
790         Gimplify VA_ARG_EXPR into simpler forms.
791         * target.h: Add gimplify_va_arg_expr hook.
792         * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
793         * fold-const.c (build_fold_addr_expr)
794         (build_fold_addr_expr_with_type): Move from gimplify.c.
795         * tree.h: Declare them.
796         * gimplify.c (gimplify_and_add): New fn.
797         (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
798         (gimplify_array_ref_to_plus, gimplify_modify_expr)
799         (gimplify_expr): Use build_fold_*.
800         (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
801         don't know how to gimplify it.
802         * builtins.c (std_gimplify_va_arg_expr): New fn.
803         (dummy_object): New static fn.
804         (gimplify_va_arg_expr): New fn.
805         (stabilize_va_list): Use build_fold_*.
806         * tree-gimple.h: Declare new fns.
807         * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
808         (ix86_gimplify_va_arg): New fn.
809         * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
810         (ia64_gimplify_va_arg): New fn.
811         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
812         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
813         * alias.c (get_varargs_alias_set): Just return 0 for now.
814
815         * c-objc-common.c (c_tree_printer): Improve handling of %T.
816
817 2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>
818
819         * tree-complex.c (expand_complex_comparison): Use fold_convert instead
820         of convert.
821         * tree-inline.c (setup_one_parameter): Likewise.
822         * tree-sra.c (csc_build_component_ref): Likewise.
823         * tree-ssa-ccp.c (ccp_fold): Likewise.
824         * tree-ssa-copy.c (cprop_operand): Likewise.
825         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
826         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
827
828 2004-06-09  J"orn Rennecke <joern.rennecke@superh.com>
829
830         PR rtl-optimization/15521:
831         * sched-int.h (in_post_call_group_p): Change type to enum.
832         * sched-deps.c (sched_analyze_insn):
833         (sched_analyze): When in_post_call_group_p is post_call_initial,
834         don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
835         and also reset in_post_call_group_p to post_call.
836         (sched_analyze): When the previous basic block ended in a CALL_INSN,
837         initialize in_post_call_group_p as post_call_initial.
838         (init_deps): initialize in_post_call_group_p to not_post_call.
839
840 2004-06-09  Arnaud Charlet  <charlet@act-europe.fr>
841
842         PR ada/6637
843         * doc/install.texi: List ada, libada as options to --enable-shared
844
845 2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
846
847         * aclocal.m4 (gcc_AC_PROG_LN): Remove.
848         (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
849         config.in entries.
850         * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
851         if hard links are not available.
852         * configure: Regenerate.
853         * config.in: Regenerate.
854
855 2004-06-08  Per Bothner  <per@bothner.com>
856
857         * configure.ac:  New --enable-mapped-location sets USE_MAPPED_LOCATION.
858
859 2004-06-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
860
861         * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
862         Correct formatting.
863
864 2004-06-08  James E Wilson  <wilson@specifixinc.com>
865
866         PR target/15790
867         * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
868
869 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
870
871         * fold-const.c (fold_convert): Treat OFFSET_TYPE like
872         POINTER_TYPE and INTEGER_TYPE.
873
874 2004-06-08  Bernardo Innocenti  <bernie@develer.com>
875
876         * modulo-sched.c: Compile only when INSN_SCHEDULING is
877         defined.
878
879 2004-06-08  Jeff Law  <law@redhat.com>
880
881         * doc/contrib.texi: Add entries for Stefan Olsson and
882         Ola Ronnerup.
883
884 2004-06-08  DJ Delorie  <dj@redhat.com>
885
886         * toplev.c (floor_log2_wide): Replace loop with faster bit
887         operations.
888         (exact_log2_wide): Define in terms of the above.
889         * toplev.h (floor_log2): Use _builtin_clz family of builtins if
890         available.
891
892 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
893
894         * config/rs6000/rs6000.c (print_operand, <case 'z'>):
895         Make sure that we are in INDIRECT mode when getting the
896         stub name.
897
898 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
899
900         * h8300.md (extendqisi2_h8300): Add constraints.
901         (ldm_h8300s_4_normal): Fix typo.
902
903 2004-06-08  Richard Henderson  <rth@redhat.com>
904
905         * gimple-low.c (struct lower_data): Replace the_return_label and
906         one_return_stmt with return_statements.
907         (lower_function_body): Process the entire list of return_statements.
908         (lower_return_expr): Check source value before unifying return_exprs.
909         * gimplify.c (gimplify_return_expr): Force the use of a temporary
910         for !aggregate_value_p.
911         * tree-gimple.c: Update RETURN_EXPR grammer.
912
913 2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>
914
915         PR target/15598
916         * config/ia64/ia64.c (bundling): Add missed TYPE_A.
917
918 2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
919
920         PR rtl-optimization/15717
921         * config/i386/i386.c (legitimate_constant_p): Do not allow
922         x - symbol_ref.
923
924 2004-06-08  Alexandre Oliva  <aoliva@redhat.com>
925
926         * gimplify.c (copy_if_shared_r): Revert:
927         2004-05-21  Richard Henderson  <rth@redhat.com>
928         * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
929
930 2004-06-07  Roger Sayle  <roger@eyesopen.com>
931
932         * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
933         Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
934         (init_expmed): Initialize these cost arrays as appropriate.
935         (store_bit_field, extract_bit_field): Correct whitespace.
936         (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
937         expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
938         neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
939         word_mode or compute_mode as appropriate.
940
941 2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
942
943         PR target/15783
944         * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
945         parameter.  Enumerate the registers inside the PARALLEL.
946         (function_arg): Adjust call to function_arg_union_value.
947         (function_value): Likewise.
948
949         * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
950
951 2004-06-07  Roger Sayle  <roger@eyesopen.com>
952
953         * real.c (real_copysign): New function to implement libm's copysign.
954         * real.h (real_copysign): Prototype here.
955         * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
956         and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
957         * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
958         fold_builtin_isdigit): Add function prototypes.
959         (fold_builtin_copysign): New function to fold copysign, copysignf
960         and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
961         constant arguments at compile-time using real_copysign.  Fold
962         copysign(X,Y) as fabs(X) if Y is always non-negative.
963         (fold_builtin_1): Correct minor whitespace/style issues.  Call
964         fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
965
966 2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>
967
968         * tree.c (iterative_hash_expr): Use real_hash.
969
970 2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>
971
972         PR c/14765
973         * c-parse.in (compstmt_primary_start): Set last_expr_type to
974         NULL_TREE.
975
976 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
977
978         PR c++/15815
979         * doc/extend.texi: Deprecate #pragma interface and #pragma
980         implementation.
981
982 2004-06-07  Alexandre Oliva  <aoliva@redhat.com>
983
984         PR middle-end/15666
985         * c-decl.c (finish_decl): Use change_decl_assembler_name for the
986         builtin decl as well.
987
988 2004-06-07  Roger Sayle  <roger@eyesopen.com>
989
990         PR c/14649
991         * c-typeck.c (require_constant_value, require_constant_elements):
992         Move declarations to the top of the file.
993         (build_function_call): If we require a constant value, fold with
994         fold_initializer.  If the result is a constant, and the function
995         wasn't called using __builtin_foo, issue a pedantic warning.
996         (build_unary_op): If we require a constant value, fold tree with
997         fold_initializer.
998         (build_binary_op): Use require_constant_value to determine whether
999         to call fold or fold_initializer.
1000
1001 2004-06-07  Richard Henderson  <rth@redhat.com>
1002
1003         * gimple-low.c (struct lower_data): Add the_return_label and
1004         one_return_stmt.
1005         (lower_function_body): Initialize and use them.
1006         (lower_return_expr): New.
1007         (lower_stmt): Call it.
1008         * gimplify.c (gimplify_return_expr): Force the argument to be either
1009         null or a result_decl.
1010         * tree-gimple.c: Update gimple grammer to match.
1011         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
1012         coalescing of result_decls.
1013
1014 2004-06-07  Richard Henderson  <rth@redhat.com>
1015
1016         PR rtl-opt/15193
1017         * expmed.c (extract_bit_field): Fix vector_extract return.
1018
1019         * config/i386/i386.md (negv4sf2): New pattern.
1020
1021 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1022
1023         PR c++/15337
1024         * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
1025         message.
1026
1027 2004-06-06  Paolo Bonzini  <bonzini@gnu.org>
1028
1029         * config.in: Regenerate.
1030
1031 2004-06-06  Steven Bosscher  <stevenb@suse.de>
1032
1033         * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
1034         SWITCH_LABELS are always sorted.
1035
1036 2004-06-06  Steven Bosscher  <stevenb@suse.de>
1037
1038         * hooks.c (hook_int_void_1): New generic hook.
1039         * hooks.h (hook_int_void_1): Add prototype.
1040         * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
1041         Define to hook_int_void_1.
1042         * config/c4x/c4x.md: Replace dummies for the old pipeline model
1043         with dummies for the new one.
1044
1045 2004-06-06  Roger Sayle  <roger@eyesopen.com>
1046
1047         * tree.h (lvalue_or_else): Delete function prototype.
1048         * c-typeck.c (lvalue_or_else): Make static.  Add static prototype.
1049
1050 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
1051
1052         PR target/14542
1053         * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
1054         a live change of a register after peephole replacement.
1055
1056 2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>
1057
1058         PR c/13519
1059         * c-typeck.c (composite_type, common_pointer_type): New functions.
1060         (common_type): Split parts into composite_type and
1061         common_pointer_type.  Ensure that arithmetic operations return
1062         unqualified types without attributes.  Don't make composite type
1063         of signed enum and compatible integer be unsigned.
1064         (build_conditional_expr, build_binary_op): Use
1065         common_pointer_type.
1066         * c-decl.c (merge_decls): Use composite_type.
1067         * c-tree.h (composite_type): Declare.
1068
1069 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
1070
1071         PR target/14457
1072         * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
1073         * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
1074         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
1075         (inhibit_libc): Must define.
1076         * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
1077         ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
1078         ("xorhi3"): Likewise.
1079
1080 2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
1081
1082         * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
1083         always_inline pass.
1084
1085 2004-06-05  David S. Miller  <davem@nuts.davemloft.net>
1086
1087         * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
1088         * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
1089
1090 2004-06-05  Bernardo Innocenti  <bernie@develer.com>
1091
1092         * regclass.c (init_reg_sets): Check for missing registers in target
1093         initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
1094
1095 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
1096
1097         * Makefile.in (MKDEPS_H): New shorthand.
1098         (c-opts.o): Update dependencies.
1099         * c-opts.c: Include mkdeps.h.
1100         (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
1101         not cpp_add_dependency_target.
1102
1103 2004-06-05  Steven Bosscher  <stevenb@suse.de>
1104
1105         * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
1106         * config/v850/v850.md: Convert to DFA scheduler description.
1107
1108 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1109
1110         PR fortran/15478
1111         * doc/install.texi: Document GMP as prerequisite. Document
1112         --with-gmp and --with-gmp-dir configure options.
1113         * fortran/gfortran.texi: Remove section "Compiling and testing",
1114         remove TOC reference to it.
1115
1116 2004-06-05  Graham Stott  <graham.stott@btinternet.com>
1117
1118         * combine.c(simplify_shift_const): Check shift amount is a
1119         CONST_INT.
1120
1121 2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>
1122
1123         * toplev.c (init_asm_output): Add explicit 'b' to mode when
1124         opening asm_out_file.
1125         * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
1126         reading asm_out_file. Replace fflush after reading asm_out_file
1127         with fseek.
1128         * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
1129         default and add to HOST_HOOKS_INITIALIZER.
1130         * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
1131         * ggc-common.c (default_gt_pch_alloc_granularity): New function.
1132         (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
1133         to set mmi.offset padding.
1134          * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
1135         $(srcdir)/config/i386/winnt.c.
1136         (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
1137         (i[34567]86-*-uwin*): Likewise.
1138         *i[34567]86-*-interix3*): Likewise.
1139         * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
1140         * config/i386/host-mingw32.c: New file.
1141         * config/i386/x-mingw32: Add rule for host-mingw32.o.
1142         * config/i386/winnt.c: (struct extern_list) Tag as GTY.
1143         (extern_head): Likewise.
1144         (struct export_list) Likewise.
1145         (export_head): Likewise.
1146         (i386_pe_record_external_function): Use ggc_alloc.
1147         (i386_pe_record_exported_symbol): Likewise.
1148         Include "gt-winnt.h" at end.
1149         * doc/hostconfig.texi: Document
1150         HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
1151
1152 2004-06-04  Bernardo Innocenti  <bernie@develer.com>
1153
1154         * config/m68k/m68k.h: Remove comments copied over from tm.texi.
1155         Rename 68000 and 68k to m68k for consistency in comments.  Remove
1156         trailing whitespace before EOLs and before TABs.
1157         (MAX_CODE_ALIGN): Remove unused macro.
1158         (CALL_USED_REGISTERS): Reformat and add comments.
1159
1160 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
1161
1162         * gcc.c (MFLIB_SPEC): Remove library references, to require users
1163         to enumerate -lmudflap* and dependencies when linking.
1164
1165 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
1166
1167         PR target/15822
1168         * dojump.c (do_jump): Fix uninitialized variable tcode1.
1169
1170 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
1171
1172         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
1173         * genconditions.c (write_header): Back out removal of reload.h.
1174
1175 2004-06-04  Jan Hubicka  <jh@suse.cz>
1176
1177         Re-apply hopefully fixed patch:
1178         * i386.md (UNSPECV_EH_RETURN): Kill.
1179         (eh_return): Use jump_insn.
1180         (eh_return_si, eh_return_di): Change pattern to jump instruction.
1181
1182 2004-06-04  Jeff Law  <law@redhat.com>
1183
1184         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
1185
1186 2004-06-04  Steven Bosscher  <stevenb@suse.de>
1187
1188         * except.c (for_each_eh_region): New function.
1189         * except.h (for_each_eh_region): Add a prototype for it.
1190         * tree-cfg.c (update_eh_labels): New function, callback for
1191         for_each_eh_region.
1192         (label_for_bb): Make global static, unfortunately.
1193         (cleanup_dead_labels): Also update label references for
1194         exception regions.
1195
1196 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
1197
1198         * config/mips/mips.c (struct irix_section_align_entry): Fix
1199         GTY marker.
1200
1201 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
1202
1203         * toplev.c (check_global_declarations): Don't ask for
1204         DECL_ASSEMBLER_NAME unless the function really is declared
1205         static and not defined.
1206
1207 2004-06-03  Matt Austern  <austern@apple.com>
1208
1209         PR c++/15428
1210         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
1211         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
1212         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
1213         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
1214         documentation to reflect the new macro name and to clarify its
1215         meaning.
1216
1217 2004-06-03  Steven Bosscher  <stevenb@suse.de>
1218
1219         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
1220
1221 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
1222
1223         * config/darwin.c (machopic_indirect_data_reference): Copy
1224         the SYMBOL_REF_DECL from the original RTX for the new
1225         non-lazy pointer RTX.
1226
1227 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
1228
1229         * tree.h: Remove include of version.h
1230         * c-cppbuiltin.c: Include version.h
1231         * diagnostic.c: Include version.h
1232         * dwarf2out.c: Include version.h
1233         * toplev.c: Include version.h
1234         * vmsdbgout.c: Include version.h
1235         * Makefile.in: Remove dependency on version.h from TREE_H, and
1236         add dependencies to required .o targets
1237
1238 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
1239
1240         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
1241         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
1242         (TARGET_H): Add insn-modes.h.
1243         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
1244         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
1245         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
1246         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
1247         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
1248         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
1249         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
1250         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
1251         CFGLAYOUT_H.
1252         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
1253         Replace ra.h with RA_H.
1254         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
1255         insn-recog.o): Replace resource.h with RESOURCE_H.
1256         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
1257         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
1258         with SCHED_INT_H.
1259         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
1260         ra-rewrite.o): Replace df.h with DF_H.
1261         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
1262         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
1263         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
1264         (insn-conditions.o): Remove unused reload.h.
1265         * cfglayout.h: Add include guard.  Include basic-block.h.
1266         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
1267         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
1268         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
1269         basic-block.h.
1270         * genconditions.c:  Remove reload.h.
1271         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
1272         hard-reg-set.h, insn-modes.h.
1273         * resource.h: Add include guard.  Include hard-reg-set.h.
1274         * sched-int.h:  Add include guard.  Include insn-attr.h,
1275         basic-block.h, rtl.h.
1276         * target.h: Add include guard.  Include insn-modes.h.
1277         * tree-ssa-live.h: Include partition.h.
1278
1279 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
1280                 Kenneth Zadeck <zadeck@naturalbridge.com>
1281
1282         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
1283         (add_var_to_ssa_edges_worklist): Add value argument.
1284         Update callers.
1285         Use new worklist.
1286         (process_ssa_edge_worklist): New function.
1287         (tree_ssa_ccp): Move worklist processing core to
1288         process_ssa_edge_worklist, and just call that for the two worklists.
1289
1290 2004-06-03  Steven Bosscher  <stevenb@suse.de>
1291
1292         * basic-block.c (tail_recursion_label_list): Don't declare.
1293         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
1294         accordingly.
1295         * cfgbuild.c (find_label_refs): Remove.
1296         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
1297         * cfgcleanup.c (tail_recursion_label_p): Remove.
1298         (merge_blocks_move): Do not check for tail recursion.
1299         (try_optimize_cfg): Likewise.
1300         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
1301         * cfgrtl.c (tail_recursion_label_list): Remove.
1302         * except.c (remove_unreachable_regions): Don't handle
1303         CALL_PLACEHOLDER insns.
1304         (convert_from_eh_region_ranges_1, can_throw_internal,
1305         can_throw_external): Likewise.
1306         * function.c (free_after_compilation): Don't clear
1307         x_tail_recursion_label.
1308         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
1309         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
1310         (reorder_blocks_1): Likewise.
1311         * function.h (struct function): Remove x_tail_recursion_label
1312         member.  Don't define tail_recursion_label.
1313         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
1314         * print-rtl.c (print_rtx): Likewise.
1315         * rtl.def (CALL_PLACEHOLDER): Remove.
1316         * rtl.h (sibcall_use_t): Remove enum.
1317         (optimize_sibling_and_tail_recursive_calls,
1318         replace_call_placeholder): Remove function prototypes.
1319         * stmt.c (tail_recursion_args): Remove.
1320         (optimize_tail_recursion): Remove.
1321         (expand_return): Don't check for possible tail recursion.
1322         * tree.h (optimize_tail_recursion): Remove prototype.
1323
1324 2004-06-02  Jan Hubicka  <jh@suse.cz>
1325
1326         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
1327         return_stmt.
1328
1329 2004-06-02  Jason Merrill  <jason@redhat.com>
1330
1331         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
1332         Do include c-parse.in.
1333
1334 2004-06-02  Eric Christopher  <echristo@redhat.com>
1335
1336         * c-typeck.c (common_type): Don't lose type qualifiers
1337         when creating new variants.
1338
1339 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
1340
1341         PR tree-optimization/14042
1342         PR tree-optimization/14729
1343         PR tree-optimization/14736
1344         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
1345         Check the type which the pointer points to
1346         instead of the pointer types.
1347
1348 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
1349
1350         PR tree-optimization/15738.
1351         * builtins.c (fold_builtin_strchr): Transform
1352         strrchr (s, '\0') to strchr (s, '\0').
1353
1354 2004-06-02  Steven Bosscher  <stevenb@suse.de>
1355
1356         * i386.c (ix86_adjust_cost): Don't increase the cost for
1357         load+operation for PROCESSOR_PENTIUMPRO, it is already
1358         modelled in the DFA description
1359
1360 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
1361
1362         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
1363         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
1364         (ALIAS_H, EMIT_RTL_H): New.
1365         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
1366         (cfgcleanup.o): Add EMIT_RTL_H.
1367         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
1368         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
1369         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
1370         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
1371         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
1372         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
1373         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
1374         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
1375         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
1376         set_mem_size): Move to emit-rtl.h.
1377         * emit-rtl.h: New.
1378         * alias.h: New.
1379
1380 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
1381
1382         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
1383         Call fixup_memory_subreg only if the MEM is equal to 'var'.
1384         Adjust recursive calls to self.
1385         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
1386
1387 2004-06-01  Richard Henderson  <rth@redhat.com>
1388             Andrew Pinski  <pinskia@physics.uc.edu>
1389
1390         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
1391         (primary): Handle offsetof.  Add error productions for faux functions.
1392         Move component_ref objc checking to build_component_ref.
1393         (reswords): Add offsetof.
1394         (rid_to_yy): Add offsetof.
1395         * c-tree.h (build_offsetof): Declare.
1396         * c-common.h (objc_is_public): Declare.
1397         * c-typeck.c (build_component_ref): Check objc_is_public.
1398         (build_offsetof): New.
1399         * stub-objc.c (objc_is_public): New.
1400         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
1401         from is_public.
1402         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
1403         * doc/extend.texi (Offsetof): Move from C++ section to C section
1404         and rewrite for __builtin_offsetof.
1405
1406 2004-06-01  Peter Barada  <peter@the-baradas.com>
1407             Peter Jakubek  <peter@laseranimation.com>
1408
1409         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
1410         a scratch to perform an add to memory.
1411
1412 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
1413
1414         PR target/14018
1415         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
1416         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
1417         m68k_align_funcs): Remove.
1418         (override_options): Remove code to handle -malign-* options.
1419         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
1420         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
1421         (m68k_align_loops_string, m68k_align_jumps_string,
1422         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
1423         m68k_align_funcs): Remove definitions.
1424
1425 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
1426
1427         PR target/15626
1428         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
1429         by the Sun linker in conjunction with the Sun assembler.
1430         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
1431
1432 2004-06-01  Jeff Law  <law@redhat.com>
1433
1434         * stmt.c (expand_decl): Be more selective about calling
1435         mark_reg_pointer.
1436
1437 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
1438
1439         PR objc/7993
1440         * objc-act.c (is_private): Do not emit the 'instance variable %s
1441         is declared private' error.
1442         (is_public): Emit the error after calling is_private.
1443         (lookup_objc_ivar): If the instance variable is private, return 0
1444         - the instance variable is invisible here.
1445
1446 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
1447
1448         * doc/invoke.texi (-static-libgcc): Explicitly mention
1449         non-GNU linkers.
1450
1451 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
1452
1453         PR target/12968
1454         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
1455
1456 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
1457
1458         PR c/15749
1459         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
1460         misuses of structures with flexible array members if
1461         in_system_header.
1462
1463 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1464
1465         PR target/15693
1466         * config/sparc/sparc.c (compare_operand): New predicate.
1467         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
1468         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
1469         operand is a ZERO_EXTRACT and the second operand is not zero,
1470         force the former to a register.
1471         (cmpdi expander): Likewise.
1472
1473 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
1474
1475         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
1476         looks at.
1477         * alias.c (alias_invariant_size): Make alias_invariant_size
1478         static, fix GTY marker.
1479
1480 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
1481
1482         PR tree-optimization/15743.
1483         * builtins.c (fold_builtin_1): Fold index() and rindex().
1484
1485 2004-05-31  Roger Sayle  <roger@eyesopen.com>
1486
1487         PR middle-end/15069
1488         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
1489         into "X < 0" (where C is the signbit) if X's type is a full mode.
1490
1491 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1492
1493         * pa.md: Disable the peephole2 patterns that generate indexed
1494         floating-point stores when indexing is disabled.
1495
1496 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1497
1498         * c-pretty-print.c (pp_c_left_bracket): Make a function.
1499         (pp_c_right_bracket): Likewise.
1500         (pp_c_star): Likewise.
1501         (pp_c_ampersand): Define.
1502         * c-pretty-print.h (pp_c_left_bracket): Declare.
1503         (pp_c_right_bracket): Likewise.
1504         (pp_c_star): Likewise.
1505         (pp_c_ampersand): Likewise.
1506
1507 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1508
1509         * config/sol2.h (__enable_execute_stack): ANSIfy function
1510         definition.
1511
1512 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
1513
1514         * c-incpath.c (add_path): Canonicalize paths to use '/' if
1515         HAVE_DOS_BASED_FILESYSTEM.
1516
1517 2004-05-31  Steven Bosscher  <stevenb@suse.de>
1518
1519         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
1520         Only look at case labels if the immediate dominator is also
1521         the only predecessor.  Don't look for more case labels if the
1522         first seen is a case range.
1523
1524 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
1525
1526         * builtins.c: Add a prototype for fold_builtin_strchr().
1527
1528 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
1529
1530         Revert this patch:
1531         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
1532
1533         * combine.c (gen_binary): Remove.
1534         (known_cond, simplify_shift_const
1535         find_split_point, combine_simplify_rtx,
1536         simplify_if_then_else, simplify_set,
1537         simplify_logical, expand_field_assignment,
1538         extract_left_shift, force_to_mode,
1539         if_then_else_cond, apply_distributive_law,
1540         simplify_and_const_int, simplify_shift_const,
1541         gen_lowpart_for_combine, simplify_comparison,
1542         reversed_comparison): Replace with
1543         simplify_gen_binary, simplify_gen_relational or
1544         distribute_and_simplify_rtx.
1545         (distribute_and_simplify_rtx): New function.
1546
1547 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1548
1549         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
1550         when generating PIC code.
1551
1552 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
1553
1554         * c-decl.c (c_expand_body_1): Remove and fold back into ...
1555         (c_expand_body): here.
1556         (c_expand_decl): Move to ...
1557         * c-common.c (c_expand_decl): Here and remove check for nested
1558         functions.
1559         * c-common.h (c_expand_decl): Add prototype.
1560         * c-tree.h (c_expand_decl): Remove.
1561
1562 2004-05-30  Roger Sayle  <roger@eyesopen.com>
1563
1564         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
1565         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
1566         fold_mathfn_compare, fold_inf_compare, fold,
1567         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
1568         Use constant_boolean_node where appropriate.  Don't bother using
1569         fold_convert on the second argument to omit_one_operand.
1570
1571 2004-05-30  Roger Sayle  <roger@eyesopen.com>
1572
1573         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
1574         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
1575         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
1576         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
1577         Add missing (but documented) tree nodes to the index.
1578
1579 2004-05-30  Steven Bosscher  <stevenb@suse.de>
1580
1581         PR tree-optimization/14819
1582         * builtins.c (fold_builtin_strchr): New.
1583         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
1584         with fold_builtin_strchr().
1585
1586 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
1587
1588         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
1589         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
1590         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
1591         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
1592         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
1593         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
1594         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
1595         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
1596         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
1597         formatting.
1598
1599 2004-05-30  Steven Bosscher  <stevenb@suse.de>
1600
1601         * gimplify.c (sort_case_labels): New.  Split out from...
1602         (gimplify_switch_expr): ...here.  Use it.
1603         * tree-eh.c (lower_try_finally_switch): Sort the labels of
1604         the SWITCH_EXPR created here before leaving the function.
1605         * tree.c (sort_case_labels): Add prototype.
1606
1607 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
1608
1609         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
1610         of BOOLEAN_TYPE.
1611
1612 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
1613
1614         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
1615         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
1616         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
1617         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
1618         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
1619         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
1620         comment typos.  Follow spelling conventions.
1621
1622 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
1623
1624         * gengtype-yacc.y: Add NESTED_PTR token.
1625         (option): Record `nested_ptr' option.
1626         * gengtype-lex.l: Handle `nested_ptr' keyword.
1627         * gengtype.c (walk_type): Process `nested_ptr' option.
1628         * gengtype.h (struct nested_ptr_data): New.
1629         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
1630         * stringpool.c (struct string_pool_data): Make 'entries' point to
1631         ht_identifier instead of tree.
1632         (gt_pch_save_stringpool): Don't adjust pointers.
1633         (gt_pch_restore_stringpool): Call ht_load.
1634
1635 2004-05-29  Jason Merrill  <jason@redhat.com>
1636
1637         * gimplify.c (gimplify_expr): Don't build a statement list
1638         if no gimplification was necessary.
1639
1640 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
1641
1642         * pretty-print.c (pp_base_format_text): Support %< instead of %`
1643         and %> as well as %'.
1644         * c-format.c: Use %< and %>.
1645         (gcc_diag_char_table, gcc_cdiag_char_table,
1646         gcc_cxxdiag_char_table): Update.
1647
1648 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
1649
1650         * c-typeck.c (common_type): Correct comment.
1651
1652 2004-05-29  Peter Barada  <peter@the-baradas.com>
1653
1654         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
1655         * config/m68k/m68k.c (const_method): Likewise.
1656         * config/m68k/m68k.c (const_int_cost): Likewise.
1657         * config/m68k/m68k.c (const_int_cost): Likewise.
1658         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
1659
1660 2004-05-29  Peter Barada  <peter@the-baradas.com>
1661
1662         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
1663         addressing.
1664         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
1665         movsi,movhi,movqi insn patterns.
1666
1667 2005-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
1668
1669         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
1670
1671         PR target/15720
1672         * config/darwin.c (machopic_indirect_call_target): Copy
1673         the SYMBOL_REF_DECL from the original RTX for the new
1674         stub RTX.
1675
1676 2004-05-28  DJ Delorie  <dj@redhat.com>
1677
1678         * stor-layout.c (place_field): Revert erroneous commit.
1679
1680 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
1681
1682         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
1683         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
1684         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
1685         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
1686         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
1687         vec_ste): Remove type checks for integral parameters and literals
1688         from '..._args_eq' macros.
1689
1690 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
1691
1692         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
1693
1694 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
1695
1696         * testsuite/g++.dg/charset/function.cc: New.
1697
1698         * testsuite/gcc.dg/charset/function.c: New.
1699
1700         * c-decl.c (c_make_fname_decl): Free return value from
1701         fname_as_string.
1702
1703         * cp/decl.c (cp_make_fname_decl): Free return value from
1704         fname_as_string.
1705
1706         * c-common.c (fname_as_string): Translate if necessary.
1707
1708 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
1709
1710         * stringpool.c: Add comments to PCH saving/restoring routines.
1711
1712 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
1713
1714         * c-common.c (c_estimate_num_insns_1): Kill.
1715         (c_estimate_num_insns): Kill.
1716         * c-common.h (c_estimate_num_insns): Kill.
1717
1718         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
1719         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
1720         Remove comment about not checking for
1721         _POSIX_PRIORITY_SCHEDULING.
1722         * gthr-posix.c: Likewise.
1723
1724 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
1725             Roger Sayle  <roger@eyesopen.com>
1726
1727         PR rtl-optimization/15649
1728         Add LTGT_EXPR and improve pretty-printing of unordered
1729         comparisons.
1730         * c-common.c (c_common_truthvalue_conversion):
1731         Handle LTGT_EXPR.
1732         * c-typeck.c (build_binary_op): Likewise.
1733         * dojump.c (do_jump): Likewise.
1734         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
1735         * predict.c (tree_predict_by_opcode): Likewise.
1736         * real.c (real_compare): Likewise.
1737         * tree-cfg.c (verify_expr): Likewise.
1738         * tree-inline.c (estimate_num_insns_1): Likewise.
1739         * tree-pretty-print.c (dump_generic_node): Likewise.
1740         Handle ORDERED_EXPR, UNORDERED_EXPR.
1741         (op_symbol): Print unordered comparisons differently
1742         than ordered ones.
1743         * tree.def (LTGT_EXPR): New '<' tree code.
1744         * doc/c-tree.texi (Expressions): Document floating-point
1745         comparison nodes.
1746
1747         Fold comparisons between floating point values.
1748         * fold-const.c (enum comparison_code): New, from
1749         #define'd constants.  Define compcodes for unordered
1750         comparisons and for invalid transformations.
1751         (invert_tree_comparison): Add "honor_nans" parameter.
1752         (fold_truthop): Revamp to work on floating-point types too.
1753         (comparison_to_compcode): Support unordered comparisons.
1754         Use new enum comparison_code.
1755         (compcode_to_comparison): Likewise.
1756         (combine_compcodes): New function.
1757         (invert_truthvalue): Let invert_tree_comparison decide
1758         whether it is valid to fold the comparison.  Fold ORDERED
1759         and UNORDERED even if flag_unsafe_math_optimizations is off,
1760         and the remaining even if flag_unsafe_math_optimizations
1761         is off but we are under -fno-trapping-math.
1762         (fold_relational_const): Integer modes do not honor NaNs.
1763
1764 2004-05-28  Paul Brook  <paul@codesourcery.com>
1765
1766         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
1767
1768 2004-05-28  Paul Brook  <paul@codesourcery.com>
1769
1770         * config/arm/arm.c (thumb_force_lr_save): New function.
1771         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
1772         thumb_output_function_prologue): Use it.
1773         (thumb_expand_prologue): Set lr_save_eliminated.
1774
1775 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
1776
1777         * config/mips/mips.md (extendsidi2): Tie the source and destination
1778         of the register alternative.  Split it into nothing.
1779
1780 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
1781
1782         * rtl.h (skip_consecutive_labels): Declare.
1783         * emit-rtl.c (skip_consecutive_labels): New function.
1784         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
1785         * jump.c (follow_jumps): Say what null return values mean.
1786
1787 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
1788
1789         PR target/13250
1790         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
1791
1792 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
1793
1794         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
1795         libgcc-std.ver.
1796         * config/sh/libgcc-std.ver: New file.
1797
1798 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
1799
1800         * except.c: Revert change of 2004-05-26.
1801         * config/i386/i386.md: Revert change of 2004-05-27.
1802
1803 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
1804
1805         * configure.ac: Remove --enable-tree-browser option.
1806         Define TREEBROWSER when ac_tree_checking is defined.
1807         * configure: Rebuilt.
1808
1809 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
1810
1811         * expr.c (store_constructor): Restore sanity check on
1812         the size of the type before clearing.
1813
1814 2004-05-27  Jan Hubicka  <jh@suse.cz>
1815
1816         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
1817
1818 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
1819
1820         * combine.c (gen_binary): Remove.
1821         (known_cond, simplify_shift_const
1822         find_split_point, combine_simplify_rtx,
1823         simplify_if_then_else, simplify_set,
1824         simplify_logical, expand_field_assignment,
1825         extract_left_shift, force_to_mode,
1826         if_then_else_cond, apply_distributive_law,
1827         simplify_and_const_int, simplify_shift_const,
1828         gen_lowpart_for_combine, simplify_comparison,
1829         reversed_comparison): Replace with
1830         simplify_gen_binary, simplify_gen_relational or
1831         distribute_and_simplify_rtx.
1832         (distribute_and_simplify_rtx): New function.
1833         * simplify-rtx.c (simplify_binary_operation):
1834         Use nonzero_bits to simplify ANDs where we are
1835         turning off bits already known to be off in OP0.
1836
1837 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
1838
1839         PR target/14478
1840         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
1841
1842 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
1843
1844         PR middle-end/14084
1845         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
1846         to size of decl.
1847
1848 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
1849
1850         PR/14924
1851         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
1852
1853 2004-05-26  Roger Sayle  <roger@eyesopen.com>
1854
1855         * tree.h: Fix comment typo.
1856
1857 2004-05-27  Steven Bosscher  <stevenb@suse.de>
1858
1859         * gimplify.c (compare_case_labels): New function.
1860         (gimplify_switch_expr): Sort case labels, and make sure the
1861         last label in the label vector is the default case.
1862         * tree-cfg.c (group_case_labels): New function.
1863         (build_tree_cfg): Cleanup redundant labels and group case labels
1864         before creating edges.
1865         (cleanup_dead_labels): Handle GOTO_EXPRs.
1866         (find_case_label_for_value): Use a binary search to find the
1867         case label for the given value.
1868         * tree-gimple.c: Mention that labels are sorted, and that the
1869         last label must be the default.
1870
1871 2004-05-27  Jan Hubicka  <jh@suse.cz>
1872
1873         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
1874
1875 2004-05-27  Jan Hubicka  <jh@suse.cz>
1876
1877         * i386.md (UNSPECV_EH_RETURN): Kill.
1878         (eh_return): Use jump_insn.
1879         (eh_return_si, eh_return_di): Change pattern to jump instruction.
1880
1881 2004-05-26  Jan Hubicka  <jh@suse.cz>
1882
1883         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
1884         not loop optimizing.
1885
1886 2004-05-26  Jan Hubicka  <jh@suse.cz>
1887
1888         * except.c (can_throw_internal):  Notice RESX instructions.
1889
1890 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
1891
1892         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
1893         of the two sizes to assemble_integer.
1894
1895 2004-05-25  Paul Brook  <paul@codesourcery.com>
1896
1897         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
1898         pointless #ifdef.
1899
1900 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
1901
1902         * Makefile.in (top_builddir): Define to .
1903
1904 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
1905
1906         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
1907         top-level detects, except when in-tree ld is being cross-built.
1908         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
1909         then AS only if target is host.
1910         * configure: Rebuilt.
1911
1912 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
1913
1914         * global.c (global_alloc): Call make_accurate_live_analysis.
1915         (record_one_conflict): Remove dead code.
1916         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
1917         (bb_info): New structure.
1918         (BB_INFO, BB_INFO_BY_INDEX): New macros.
1919         (allocate_bb_info, free_bb_info, mark_reg_change,
1920         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
1921         modify_bb_reg_pav, calculate_reg_pav,
1922         make_accurate_live_analysis): New functions.
1923
1924 2004-05-25  Devang Patel  <dpatel@apple.com>
1925
1926         * alias.c (init_alias_analysis): Use ggc_calloc instead of
1927         xrealloc.
1928         (end_alias_analysis): Use ggc_free instead fo free.
1929
1930 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
1931
1932         PR target/15546
1933         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
1934         as needed to be outputted.
1935
1936 2004-05-25  Jan Hubicka  <jh@suse.cz>
1937
1938         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
1939
1940 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
1941         Mostafa Hagog  <mustafa@il.ibm.com>
1942
1943         * Makefile.in (modulo-sched.o, ddg.o): New.
1944         * ddg.h, ddg.c, modulo-sched.c: New files.
1945         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
1946         internals to "dupicate_insn".
1947         (duplicate_insn): New function.
1948         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
1949         declarations.
1950         * common.opt (fmodulo-sched): New flag.
1951         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
1952         Remove static and forward declaration.
1953         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
1954         functions.
1955         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
1956         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
1957         declarations.
1958         * flags.h (flag_modulo_sched): New flag.
1959         * opts.c (common_handle_option): Handle modulo-sched flag.
1960         * params.def (max-sms-loop-number, sms-max-ii-factor,
1961         sms-dfa-history, sms-loop-average-count-threshold): New
1962         parameters.
1963         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
1964         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
1965         parameters.
1966         * passes.c ("sms", "sms-vcg"): New dumps.
1967         (rest_of_handle_sched): Call sms_schedule.
1968         * rtl.h (sms_schedule): New declaration.
1969         * timevar.def (TV_SMS): New.
1970         * toplev.c (flag_modulo_sched): Initialize.
1971         (f_options): Handle -fmodulo-sched option.
1972         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
1973         * docs/passes.texi: Document new SMS pass.
1974
1975 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
1976
1977         * Makefile.in (OBJS): Add rtlhooks.o.
1978         (rtlanal.o): Depend on function.h.
1979         (cse.o): Depend on rtlhooks-def.h.
1980         (combine.o): Depend on rtlhooks-def.h.
1981         (rtlhooks.o): New rule.
1982         * combine.c: Include rtlhooks-def.h.
1983         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
1984         num_sign_bit_copies, cached_num_sign_bit_copies,
1985         num_sign_bit_copies1): Move most of the code to rtlanal.c.
1986         (reg_nonzero_bits_for_combine,
1987         reg_num_sign_bit_copies_for_combine): New functions holding
1988         the remnants of the above.
1989         (combine_rtl_hooks): New.
1990         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
1991         * cse.c: Include rtlhooks-def.h.
1992         (cse_rtl_hooks): New.
1993         (cse_main): Set rtl_hooks instead of gen_lowpart.
1994         * emit-rtl.c (gen_lowpart): Remove.
1995         (gen_lowpart_general): Move to rtlhooks.c.
1996         * rtl.h (nonzero_bits, num_sign_bit_copies,
1997         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
1998         (gen_lowpart_general): Remove.
1999         (gen_lowpart): Temporarily redefine as a macro.
2000         * rtlanal.c: Include function.h.
2001         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
2002         num_sign_bit_copies, cached_num_sign_bit_copies,
2003         num_sign_bit_copies1): New, from combine.c.
2004         * rtlhooks.c: New file.
2005         * rtlhooks-def.h: New file.
2006
2007 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
2008
2009         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
2010         to support 32-bit -mint8 mode.
2011
2012         * doc/invoke.texi (-mint8): Added documentation for the -mint8
2013         option in the AVR architecture.
2014
2015 2004-05-24  Mike Stump  <mrs@apple.com>
2016
2017         * doc/install.texi: Document that dejagnu 1.4.4 is required.
2018
2019 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
2020
2021         * intl.h (open_quote, close_quote): New.
2022         * intl.c (open_quote, close_quote): New.
2023         (gcc_init_libintl): Set them.
2024         * pretty-print.c: Include "intl.h".
2025         (pp_base_format_text): Support 'q' format flag and %` and %'
2026         formats.  Use ' instead of ` in comments.
2027         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
2028         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
2029         foramt_types_orig): Describe these new formats.
2030         (decode_format_attr, check_function_format,
2031         check_format_info_main): Use these new formats.
2032         (status_warning): Use ATTRIBUTE_GCC_DIAG.
2033         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
2034         check these formats to 3.5.
2035
2036 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2037
2038         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
2039         (BACKEND): Reflect this.
2040         (LIBDEPS): Move CPPLIB before LIBIBERTY.
2041         (LIBS): Likewise.
2042
2043 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
2044
2045         PR tree-optimization/14197
2046         * builtins.c: Include "tree-gimple.h"
2047         (readonly_data_expr): Use get_base_address.  Make sure to call
2048         decl_readonly_section only on trees it can handle.
2049         * tree-gimple.c (get_base_address): Accept STRING_CST and
2050         CONSTRUCTOR expressions.
2051         * Makefile.in: Update dependencies.
2052
2053 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
2054
2055         Move libcpp to the toplevel.
2056         * Makefile.in: Remove references to libcpp files,
2057         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
2058         and change hashtable.h to that.
2059         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
2060         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
2061         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
2062         * configure: Regenerate.
2063         * config.in: Regenerate.
2064         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
2065         * cppcharset.c: Removed.
2066         * cpperror.c: Removed.
2067         * cppexp.c: Removed.
2068         * cppfiles.c: Removed.
2069         * cpphash.c: Removed.
2070         * cpphash.h: Removed.
2071         * cppinit.c: Removed.
2072         * cpplex.c: Removed.
2073         * cpplib.c: Removed.
2074         * cpplib.h: Removed.
2075         * cppmacro.c: Removed.
2076         * cpppch.c: Removed.
2077         * cpptrad.c: Removed.
2078         * cppucnid.h: Removed.
2079         * cppucnid.pl: Removed.
2080         * cppucnid.tab: Removed.
2081         * hashtable.c: Removed.
2082         * hashtable.h: Removed.
2083         * line-map.c: Removed.
2084         * line-map.h: Removed.
2085         * mkdeps.c: Removed.
2086         * mkdeps.h: Removed.
2087         * stringpool.h: Include symtab.h instead of hashtable.h.
2088         * tree.h: Include symtab.h instead of hashtable.h.
2089         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
2090
2091 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
2092
2093         * gcc.c (struct prefix_list): Add forward declaration.
2094         (do_spec_path): New function, extracted from...
2095         (do_spec_1) <'D'>: ... here.  Drop support for
2096         SPACE_AFTER_L_OPTION.
2097         (do_spec_1) <'I'>: Use do_spec_path.
2098         (process_command): Do not store the 'include' suffix
2099         in include_prefixes.
2100         * system.h: Poison SPACE_AFTER_L_OPTION.
2101
2102 2002-05-23  Roger Sayle  <roger@eyesopen.com>
2103
2104         * fold-const.c (non_lvalue): Explicitly list the tree codes that
2105         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
2106
2107 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
2108
2109         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
2110         Update based on printed manual.  Enable setting of offsets for
2111         FSFPRINT and move it to gcc-common.texi.
2112         * doc/gcc.texi: Update FSF printing details.
2113         * doc/gccint.texi: Remove FSF printing details.
2114
2115 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
2116
2117         * config/rs6000/t-rs6000: Remove the disabling -Werror.
2118
2119 2004-05-22  Roger Sayle  <roger@eyesopen.com>
2120
2121         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
2122         expand_builtin_strrchr, expand_builtin_strpbrk,
2123         expand_builtin_mempcpy, expand_builtin_memcmp,
2124         expand_builtin_strcmp, expand_builtin_strncmp,
2125         expand_builtin_strcat, std_expand_builtin_va_start,
2126         std_expand_builtin_va_arg, expand_builtin_va_copy,
2127         expand_builtin_signbit, fold_builtin_cabs,
2128         fold_builtin_logarithm, fold_builtin_mempcpy,
2129         fold_builtin_signbit, fold_builtin_isascii,
2130         fold_builtin_toascii, fold_builtin_isdigit,
2131         fold_builtin_1, build_function_call_expr,
2132         simplify_builtin_strchr, simplify_builtin_strrchr,
2133         simplify_builtin_strpbrk, simplify_builtin_strncpy,
2134         simplify_builtin_memcmp, simplify_builtin_strcmp,
2135         simplify_builtin_strncmp, simplify_builtin_strncat,
2136         simplify_builtin_strspn, simplify_builtin_strcspn,
2137         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
2138         to build with calls to build2, build3 or omit_one_operand.
2139
2140 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
2141
2142         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
2143         section when generating EABI code.
2144
2145 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
2146
2147         PR 15546
2148         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
2149         Call mark_decl_referenced on the SYMBOL_REF_DECL.
2150
2151 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
2152
2153         * c-common.c (c_common_truthvalue_conversion): Handle
2154         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
2155         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
2156         i.e. set the type to truthvalue_type_node and return.
2157
2158 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
2159
2160        * tree.h (struct tree_decl): Add possibly_inlined bit.
2161         (DECL_POSSIBLY_INLINED): New accessor macro.
2162         * cgraph.h: Remove declaration of cgraph_inline_hash.
2163         * cgraph.c: Remove definition of cgraph_inline_hash.
2164         (hash_node): Revert to hashing DECL_UID.
2165         (eq_node): Take two pointers to cgraph_node structures.
2166         Compare DECL_UIDs.
2167         (cgraph_remove_node): Pass the node directly to htab_find_slot.
2168         (cgraph_varpool_hash_node): Rename hash_varpool_node;
2169         hash on DECL_UID.
2170         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
2171         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
2172         (cgraph_node): Allocate a temporary node on the stack, fill in
2173         its DECL field, and pass that to htab_find_slot.
2174         (cgraph_varpool_node): Likewise.
2175         (cgraph_function_possibly_inlined_p): If global info is ready,
2176         return the DECL_POSSIBLY_INLINED bit.
2177         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
2178         instead of mucking with cgraph_inline_hash.
2179
2180 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
2181
2182         * doc/contrib.texi: Add g77 contributors.
2183
2184 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
2185
2186         * calls.c (initialize_argument_information): Forbid sibcalls if a
2187         callee-copied argument is stored in the current function's frame.
2188
2189 2004-05-22  Eric Christopher  <echristo@redhat.com>
2190
2191         * fix-header.c (read_scan_file): Update for add_path change.
2192
2193 2004-05-22  Ben Elliston  <bje@au.ibm.com>
2194
2195         * c.opt (Wmissing-include-dirs): New.
2196         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
2197         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
2198         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
2199         * c-incpath.h (add_path): Add fourth (bool) argument.
2200         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
2201         (add_standard_paths): Likewise.
2202         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
2203         is used and the directory was user-supplied via -I.
2204         (add_path): Set p->user_supplied_p.  Remove duplicated code by
2205         using add_cpp_dir_path ().
2206         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
2207         (struct cpp_dir): Add user_supplied_p.
2208         * doc/invoke.texi (Warning Options): Document new option.
2209
2210 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
2211
2212         * fold-const.c (fold_read_from_constant_string): Convert result to
2213         requested type.
2214
2215 2004-05-21  Richard Henderson  <rth@redhat.com>
2216
2217         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
2218         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
2219         Don't mark VA_ARG_EXPRs volatile here.
2220         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
2221
2222 2004-05-21  Richard Henderson  <rth@redhat.com>
2223
2224         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
2225         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
2226
2227 2004-05-21  Roger Sayle  <roger@eyesopen.com>
2228
2229         * fold-const.c (fold, fold_relational_hi_lo,
2230         nondestructive_fold_binary_to_constant,
2231         fold_read_from_constant_string): Use fold_convert instead of convert.
2232         * builtins.c (simplify_builtin, simplify_builtin_strstr,
2233         simplify_builtin_strchr, simplify_builtin_strrchr,
2234         simplify_builtin_strpbrk): Use fold_convert instead of convert.
2235
2236 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
2237
2238         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
2239         is NULL.
2240
2241 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
2242
2243         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
2244         override sparc.h definition.
2245
2246 2004-05-20  Roger Sayle  <roger@eyesopen.com>
2247
2248         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
2249         get_unwidened, get_narrower): Replace build with build2.
2250         * fold-const.c (negate_expr, associate_trees, size_binop,
2251         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
2252         pedantic_omit_one_operand, distribute_bit_expr,
2253         make_bit_field_ref, optimize_bit_field_compare,
2254         decode_field_reference, range_binop, make_range,
2255         build_range_check, fold_range_test, fold_truthop,
2256         optimize_minmax_comparison, extract_muldiv_1,
2257         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
2258         fold_inf_compare, fold_single_bit_test, fold,
2259         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2260         Likewise replace build with either build2 or build3.
2261
2262 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
2263
2264         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
2265         * calls.c (prepare_call_address): Don't test
2266         NO_RECURSIVE_FUNCTION_CSE.
2267         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
2268         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2269         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2270         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2271         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2272         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2273         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2274         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2275         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2276         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2277         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2278         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
2279         Likewise.
2280         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2281         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
2282         * doc/tm.texi (Costs): Remove documentation for
2283         NO_RECURSIVE_FUNCTION_CSE.
2284
2285 2004-05-20  Paul Brook  <paul@codesourcery.com>
2286
2287         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
2288         * unwind-dw2.c (extract_cie_info): Ditto.
2289         (_Unwind_FrameState): Change retaddr_column to word type.
2290
2291 2004-05-20  Roger Sayle  <roger@eyesopen.com>
2292
2293         PR middle-end/3074
2294         * fold-const.c (strip_compound_expr): Delete function.
2295         (count_cond): Delete function.
2296         (fold_binary_op_with_conditional_arg): Only perform transformations
2297         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
2298         when a is constant.  This greatly simplifies this routine.
2299
2300         * tree.c (saved_expr_p): Delete function.
2301         * tree.h (saved_expr_p): Delete function prototype.
2302
2303 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
2304
2305         * common.opt (ftree-loop-optimize): Remove.
2306
2307 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
2308
2309         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
2310         (NM_FOR_TARGET): Use := and $(shell).
2311         (mainversion): Remove unused variable.
2312
2313 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2314
2315         * reorg.c (delete_from_delay_slot): If we have a barrier after the
2316         sequence containing the insn to be deleted, always reemit it.
2317
2318 2004-05-20  Richard Henderson  <rth@redhat.com>
2319
2320         PR 15454
2321         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
2322         * function.c (expand_function_start): Expand static_chain_decl by hand.
2323         * gimplify.c (create_tmp_var_name): Export.
2324         * tree-gimple.h (create_tmp_var_name): Declare.
2325
2326 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
2327
2328         * rs6000.c (print_operand) <case 'z'>: Call
2329         mark_decl_referenced before assemble_name.
2330
2331 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
2332
2333         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
2334         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
2335         (cgraph_varpool_node): Hash on the pointer to the decl, not
2336         the DECL_UID.  Fixes 64-bit bootstrap failure.
2337
2338 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
2339
2340         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
2341         we don't earlyclobber operands used in the second insn.
2342
2343 2004-05-20  Steven Bosscher  <stevenb@suse.de>
2344
2345         * tree-mudflap.c: Formatting fixes.
2346
2347 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
2348
2349         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
2350         * gengtype.c (open_base_files): Include reload.h in ifiles.
2351         * reload.h (reg_equiv_memory_loc_varray): Declare.
2352         * reload1.c (reg_equiv_memory_loc_varray): New variable.
2353         (init_reload): Initialize it.
2354         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
2355         reg_equiv_memory_loc_varray to size 0.
2356         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
2357         growing reg_equiv_memory_loc_varray to the desired size.
2358         * passes.c (rest_of_handle_old_regalloc): Likewise.
2359         * reload.c: Amend comment on calling init_reload.
2360
2361 2004-05-20  Nick Clifton  <nickc@redhat.com>
2362
2363         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
2364         with 'TRAMP' in the body of the macro definition.
2365
2366 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
2367
2368         PR target/15383
2369         * config/ia64/ia64.c (ia64_expand_compare): Don't check
2370         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
2371         cmptf_libfunc isn't set.
2372         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
2373         conventions.
2374         (ia64_sysv4_init_libfuncs): New.
2375
2376         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
2377         ia64_sysv4_init_libfuncs.
2378
2379 2004-05-20  Falk Hueffner  <falk@debian.org>
2380
2381         PR other/15526
2382         * libgcc2.c (__mulvsi3): Fix overflow test.
2383
2384 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
2385
2386         PR c/14171
2387         * reg-stack.c (nan): Rename to ...
2388         (not_a_num): Here.
2389         (reg_to_stack): Rename nan to not_a_num.
2390         (subst_stack_regs_pat): Likewise.
2391         (convert_regs_entry): Likewise.
2392         (convert_regs_1): Likewise.
2393
2394         * tree-cfg.c (find_case_label_for_value): Replace call to
2395         simple_cst_equal with tree_int_cst_equal.
2396
2397 2004-05-19  Jeff Law <law@redhat.com>
2398
2399         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
2400         If the operand is for a use, then strip away the SSA_NAME, do not
2401         strip away the SSA_NAME for a set.  Never call release_ssa_name.
2402         (mark_def_sites): Appropriately pass additional argument to
2403         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
2404         then set the VDEF_RESULT to the VDEF_OP.
2405         (set_def_block): Strip away any SSA_NAME to get to the real
2406         underlying variable.
2407
2408         * tree-ssa-phiopt.c (value_replacement): Handle the case where
2409         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
2410         BB directly.
2411
2412 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2413
2414         PR c++/15463
2415         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
2416         result of inverse.
2417
2418         PR rtl-optimization/15274
2419         * loop-iv.c (determine_max_iter, shorten_into_mode,
2420         iv_number_of_iterations): Handle constants correctly.
2421         * rtl.h (get_mode_bounds): Declaration changed.
2422         * stor-layout.c (get_mode_bounds): Return a constant suitable for
2423         the target mode.
2424
2425         PR rtl-optimization/14692
2426         * loop-unswitch.c (may_unswitch_on): Try folding the result.
2427         (unswitch_single_loop): Work correctly when may_unswitch_on
2428         returns a folded constant.
2429
2430         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
2431         * simplify-rtx.c (simplify_const_relational_operation): Optimize
2432         comparisons with mode bounds.
2433
2434         * function.c (struct temp_slot): Add new field prev.
2435         (free_after_compilation, init_temp_slots): Free new fields.
2436         (cut_slot_from_list, insert_slot_to_list,
2437         temp_slots_at_level, max_slot_level, move_slot_to_level,
2438         make_slot_available): New functions.
2439         (assign_stack_temp_for_type, combine_temp_slots,
2440         find_temp_slot_from_address, preserve_temp_slots,
2441         preserve_rtl_expr_result, free_temp_slots,
2442         free_temps_for_rtl_expr, pop_temp_slots): Work with
2443         the new structure of lists.
2444         (mark_all_temps_used): Removed.
2445         * function.h (struct function): Field x_temp_slots
2446         replaced by x_used_temp_slots and x_avail_temp_slots.
2447         (temp_slots): Replaced by ...
2448         (used_temp_slots, avail_temp_slots): New.
2449         * tree.h (mark_all_temps_used): Declaration removed.
2450
2451         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
2452         simplify_using_assignment): Take the expression out of
2453         the expr_list wrapper.
2454
2455         * loop-iv.c (iv_number_of_iterations): Improve clasification of
2456         infinite loops.
2457
2458 2004-05-19  Roger Sayle  <roger@eyesopen.com>
2459
2460         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
2461         costs should be based on code size when optimizing for size.
2462
2463 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
2464
2465         * fold-const.c: Remove non-printable character 160.
2466
2467 2004-05-19  Nick Clifton  <nickc@redhat.com>
2468
2469         * doc/invoke.texi (ARM Options): Fix typo.
2470         Remove descrption of -mshort-load-bytes and
2471         -mno-short-load-bytes.
2472
2473         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
2474         missing parenthesis.
2475         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
2476         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
2477
2478 2004-05-19  Steven Bosscher  <stevenb@suse.de>
2479
2480         * expr.c (store_constructor): Build loop start and end by hand
2481         instead of via loop functions from stmt.c.
2482         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
2483         Remove the code to expand them.
2484
2485         * stmt.c (loop_stack): Remove this and everything related.
2486         (struct nesting, enum nesting_desc): Update.
2487         (expand_fixup): Likewise.
2488         (expand_loop_start, expand_start_loop_continue_elsewhere,
2489         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
2490         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
2491         expand_exit_loop_if_false, expand_exit_loop_top_cond,
2492         expand_exit_something): Remove.
2493         * tree.h: Remove prototypes.
2494
2495 2004-05-18  Mike Stump  <mrs@apple.com>
2496             Devang Patel  <dpatel@apple.com>
2497
2498         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
2499         if this label is for eh.
2500         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
2501         * config/darwin.c (darwin_emit_unwind_label): Likewise.
2502         * dwarf2out.c (output_call_frame_info): Likewise.
2503         * output.h (default_emit_unwind_label): Likewise.
2504         * target.h (unwind_label): Likewise.
2505         * varasm.c (default_emit_unwind_label): Likewise.
2506
2507         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
2508         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
2509         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
2510         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
2511         DEBUG_RANGES_SECTION): Define.
2512
2513 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
2514
2515         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
2516         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
2517         (cgraph_varpool_node):
2518         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
2519         (cgraph_function_possibly_inlined_p): Use the decl itself for
2520         the key, not DECL_ASSEMBLER_NAME.
2521         (change_decl_assembler_name): No need to muck with the hash tables.
2522         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
2523         Delete.
2524         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
2525         for the key, not DECL_ASSEMBLER_NAME.
2526         * cgraph.h: Remove prototypes of deleted functions.
2527         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
2528         (mark_decl_referenced): New function.
2529         * tree.h: Prototype mark_decl_referenced.
2530         * final.c (output_addr_const) <case SYMBOL_REF>: Call
2531         mark_decl_referenced before assemble_name.
2532         * c-decl.c (finish_decl): Use mark_decl_referenced.
2533
2534 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
2535             Jeff Law <law@redhat.com>
2536
2537         * tree-ssa-phiopt.c (abs_replacement): New function.
2538         (empty_block_p): New function extracted from...
2539         (candidate_bb_for_phi_optimization): Break out empty block test.
2540         (conditional_replacement): Use empty_block_p.
2541         (value_replacement): Similarly.
2542
2543         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
2544         * tree-ssa-phiopt.c: Include flags.h.
2545         (conditional_replacement): Remove argument names from prototype.
2546         Minor formatting and comment fixes.
2547         (tree_ssa_phiopt): If conditional_replacement returns false, then
2548         call value_replacement.
2549         (value_replacement): New function.
2550
2551 2004-05-18  Jeff Law  <law@redhat.com>
2552
2553         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
2554         from conditional_replacement.
2555         (candidate_bb_for_phi_optimization): Similarly.
2556         (conditional_replacement): Use replace_phi_with_stmt and
2557         candidate_bb_for_phi_optimization.
2558
2559         * tree-ssa-phiopt.c: Fix various formatting issues.
2560
2561 2004-05-18  Steven Bosscher  <stevenb@suse.de>
2562
2563         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
2564         s390_expand_cmpmem): Do not use expand_start_loop and
2565         expand_end_loop, instead build the loop manually.
2566
2567 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
2568
2569         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
2570         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
2571
2572 2004-05-17  Jeff Law  <law@redhat.com>
2573
2574         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
2575         * flags.h (flag_delete_null_pointer_checks): Here.
2576         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
2577         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
2578         (add_phi_arg, remove_phi_arg_num): Similarly.
2579         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
2580         property into PHI nodes.
2581         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
2582         (record_equivalences_from_phis): If all PHI arguments are known to be
2583         nonzero, then the result must be nonzero as well.
2584         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
2585         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
2586         appropriately.  Walk the USE-DEF chains and propagate nonzero property
2587         as appropriate.
2588         * tree.h (PHI_ARG_NONZERO): Define.
2589         (phi_arg_d): Add nonzero flag.
2590
2591 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
2592
2593         * f: Entire directory removed
2594
2595         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
2596         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
2597         (g77_integer_type_node, g77_uinteger_type_node)
2598         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
2599         * c-common.c (c_common_nodes_and_builtins): Do not initialize
2600         the above set of variables.
2601
2602         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
2603         * doc/invoke.texi, doc/standards.texi: Remove cross-references
2604         to g77 manual.
2605
2606 2004-05-17  Steven Bosscher  <stevenb@suse.de>
2607
2608         PR tree-optimization/15438
2609         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
2610         attributed functions as pure or const.
2611
2612 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
2613
2614         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
2615         from source code with errors.
2616
2617 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
2618
2619         Enable tree browser for all front ends.
2620         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
2621         (BACKEND): ...to here.
2622
2623 2004-05-17  Jan Hubicka  <jh@suse.cz>
2624
2625         * i386.c (construct_container): Do not produce BLKmode registers.
2626         (classify_argument): Properly compute alignment of complex types.
2627
2628 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
2629
2630         PR target/15084
2631         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
2632         and renamed to movdi_insv_1_rex64.
2633         (insv): Support SImode for 32bit and DImode for 64bit.
2634
2635 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
2636
2637         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
2638         (TARGET_SWITCHES): Remove debugg.
2639         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
2640         TARGET_64BIT.
2641         (subdi3): Replace the define_expand with a define_insn, the latter
2642         renamed from subdi3_internal_3.
2643         (negdi2): Likewise negdi2_internal_2.
2644         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
2645         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
2646         and associated define_splits.
2647         (adddi3_internal): Renamed from adddi3_internal_3.
2648         (ashldi3_internal): Likewise ashldi3_internal4.
2649         (ashrdi3_internal): Likewise ashrdi3_internal4.
2650         (lshrdi3_internal): Likewise lshrdi3_internal4.
2651
2652 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
2653
2654         * optabs.c (expand_unop): Try implementing negation using subtraction
2655         from zero.
2656
2657 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2658
2659         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
2660         SAR register.
2661
2662 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
2663
2664         PR target/10982
2665         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
2666         (ne_zeroextractsi_shifted): New pattern.
2667         (ite_ne_zeroextractsi): New pattern.
2668         (ite_ne_zeroextractsi_shifted): New pattern.
2669
2670 2004-05-15  Steven Bosscher  <stevenb@suse.de>
2671
2672         * c-gimplify.c (c_genericize):
2673         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
2674         * c-parse.in <expr_no_commas>: Likewise.
2675         <if_prefix>: Likewise.
2676         <select_or_iter_stmt>: Likewise.
2677         * expr.c (expand_var, expand_expr_real_1): Likewise.
2678         * expr.h (expand_expr): Make it a static inline function.
2679         Move prototype for expand_expr_real up before this.
2680         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
2681         Likewise.
2682         * gimplify.c (gimple_boolify, gimplify_addr_expr,
2683         gimplify_asm_expr, gimplify_expr): Likewise.
2684         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
2685         dump_function_to_file): Likewise.
2686         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
2687         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
2688         * tree-into-ssa.c (dump_tree_ssa): Likewise.
2689         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
2690         Likewise.
2691         * tree-optimize.c (execute_one_pass): Likewise.
2692         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
2693         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
2694
2695         * objc/objc-act.c (objc_build_try_enter_fragment,
2696         objc_build_try_epilogue, objc_build_catch_stmt,
2697         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
2698         with lang_hooks.foo ().
2699
2700 2004-05-15  Roger Sayle  <roger@eyesopen.com>
2701
2702         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
2703         that simplify_builtin doesn't destructively modify its argument.
2704
2705 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
2706
2707         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
2708         implementations for ARM and Thumb.
2709         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
2710
2711 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
2712
2713         * prefix.c (update_path): Replace PREFIX with KEY only
2714         when it matches a full directory name in PATH.
2715
2716 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
2717
2718         * arm.h (TARGET_APCS_32): Delete.
2719         (TARGET_MMU_TRAPS): Delete.
2720         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
2721         define __APCS_26__.
2722         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
2723         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
2724         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
2725         (prog_mode_type): Delete.
2726         (PROMOTE_MODE): Always promote unsigned for HImode.
2727         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
2728         (MASK_RETURN_ADDR): Simplify.
2729         * arm.c (arm_prgmode): Delete.
2730         (arm_override_options, arm_gen_rotated_half_load): Simplify.
2731         (print_multi_reg, output_return_instruction): Simplify.
2732         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
2733         (arm_return_addr): Simplify.
2734         * arm.md (prog_mode): Delete.
2735         (conds): Simplify.
2736         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
2737         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
2738         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
2739         (loadhi_shiftpredec): Delete.
2740         (peephole for post-increment on HImode load): Delete.
2741         * arm/crtn.asm: (FUNC_END): Simplify.
2742         * arm/lib1funcs.asm: Remove APCS-26 return macros.
2743         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
2744         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
2745         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
2746         MULTILIB_DEFAULTS as required.
2747         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
2748         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
2749         variables as required.
2750         * doc/invoke.texi (ARM Options): Remove obsolete flags.
2751
2752 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
2753
2754         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
2755         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
2756         count to 8 to handle n_reg > 2.
2757
2758 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
2759
2760         * doc/extend.texi: Update WG14 URL.
2761
2762 2004-05-15  Steven Bosscher  <stevenb@suse.de>
2763
2764         * basic-block.h (life_analysis, delete_noop_moves):
2765         Update prototypes.
2766         * bt-load.c (branch_target_load_optimize): Don't take the
2767         insns stream as an argument.  Update the life_analysis calls.
2768         * combine.c (combine_instructions): Update delete_noop_moves
2769         calls.
2770         * flow.c (notice_stack_pointer_modification): Don't take the
2771         insns stream as an argument.  Work on the flow graph.
2772         (life_analysis): Likewise.
2773         (delete_noop_moves): Likewise.
2774         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
2775         (rest_of_handle_life): Update life_analysis call.
2776         (rest_of_compilation): Likewise, and also update
2777         branch_target_load_optimize call.
2778         * ra.c (reg_alloc): Update life_analysis call.
2779         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
2780         the insns stream as an argument.
2781         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
2782         call.
2783         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
2784         prototypes.
2785         * value-profile.c (branch_prob): Update life_analysis call.
2786         * web.c (web_main): Work on the CFG, not on the insns stream.
2787
2788         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
2789         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
2790         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
2791
2792 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
2793
2794         PR c/15444
2795         * c-format.c (avoid_dollar_number): New function.
2796         (check_format_info_main): Call avoid_dollar_number when operand
2797         numbers might occur but has_operand_number == 0.
2798
2799 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
2800
2801         * arm.md (all peephole2 patterns): Use predicates that validate
2802         register classes as appropriate.
2803
2804 2004-05-14  Steven Bosscher  <stevenb@suse.de>
2805
2806         PR opt/14472
2807         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
2808         ignore type conversions that do not inhibit tail calling.
2809         (find_tail_calls): Likewise.
2810
2811 2004-05-14  Jeff Law  <law@redhat.com>
2812
2813         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
2814         bother marking bypassed virtuals for out-of-ssa.  Instead merge
2815         bypassed virtuals into vars_to_rename just before into-ssa pass.
2816
2817         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
2818         so that it picks up more opportunities to eliminate ABS expressions
2819         or turn them into negations.
2820
2821 2004-05-14  Steven Bosscher  <stevenb@suse.de>
2822
2823         * passes.c (rest_of_handle_null_pointer): Remove.
2824         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
2825         (rest_of_compilation): Likewise.
2826         * rtl.h (delete_null_pointer_checks): Remove prototype.
2827         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
2828         Remove declarations.
2829         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
2830         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
2831         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
2832         expr_reaches_here_p, computing_insn, def_reaches_here_p,
2833         can_disregard_other_sets, handle_avail_expr, classic_gcse,
2834         one_classic_gcse_pass, invalidate_nonnull_info,
2835         delete_null_pointer_checks_1, delete_null_pointer_checks,
2836         expr_reached_here_p_work): Remove.
2837         (gcse_main): Do not perform classic GCSE when optimizing for size.
2838         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
2839         are never used.
2840
2841 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
2842
2843         PR optimization/14466
2844         * tree-complex.c (make_temp): Remove.
2845         (gimplify_val): Replace make_temp with make_rename_temp
2846         and add NULL as the second argument.
2847         (expand_complex_div_wide): Likewise.
2848         * tree-dfa.c (make_rename_temp): New function.
2849         * tree-flow.h (make_rename_temp): Declare.
2850         * tree-sra.c (make_temp): Remove.
2851         (lookup_scalar): Replace make_temp with make_rename_temp.
2852         (create_scalar_copies): Likewise.
2853         * tree-ssa-phiopt.c (conditional_replacement): When we
2854         get non gimple create a temporary variable to hold the
2855         casted expression.
2856
2857 2004-05-14  Paul Brook  <paul@codesourcery.com>
2858
2859         * stor-layout.c (update_alignment_for_field): Use
2860         targetm.align_anon_bitfield.
2861         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
2862         (TARGET_INITIALIZER): Use it.
2863         * target.h (struct gcc_target): Add align_anon_bitfield.
2864         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
2865         (TARGET_ALIGN_ANON_BITFIELD): Define.
2866         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
2867
2868 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
2869
2870         * tree.def (documentation): Remove mention of class 'b'.
2871         (BLOCK): Now in class 'x'.
2872         * c-common.c (verify_tree): Remove case 'b'.
2873         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
2874         * calls.c (calls_function_1): Control cannot get past the switch
2875         when exp is a BLOCK.
2876         * print-tree.c (print_node): Move code for class 'b' to the class
2877         'c'/'x' switch, as case BLOCK.
2878         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
2879         (unsafe_for_reeval, substitute_placeholder_in_expr)
2880         (stabilize_reference_1): Remove case 'b'.
2881         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
2882         of something being 'b' to tests for TREE_CODE of something being
2883         BLOCK.
2884         * tree-ssa-operands.c (get_expr_operands): Likewise.
2885
2886 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
2887
2888         * tree-gimple.c: Rename from tree-simple.c.
2889         * tree-gimple.h: Rename from tree-simple.h.
2890         * c-gimplify.c: Rename from c-simplify.c
2891         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
2892         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
2893         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
2894         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
2895         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
2896         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
2897         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
2898         Update.
2899
2900 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
2901
2902         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
2903
2904 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
2905
2906         * tree-ssa.c (delete_tree_ssa): XFREE
2907         bitmaps allocated with BITMAP_XMALLOC.
2908
2909         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
2910         idfs_cache at the end of the function.
2911
2912         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
2913         at the end of the function.
2914
2915         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
2916         el at the end of the function.
2917
2918         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
2919         bitmaps allocated with BITMAP_XMALLOC.
2920
2921         * loop-unswitch.c (unswitch_single_loop): Free bbs at
2922         the end.
2923
2924         * final.c (shorten_branches): Free uid_shuid before
2925         reallocating it.
2926
2927         * bb-reoder.c (connect_traces): Free cold_traces at the end.
2928
2929 2004-05-13  Jeff Law  <law@redhat.com>
2930
2931         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
2932         variables.  Simplify slightly by using USE_OP/DEF_OP instead
2933         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
2934
2935         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
2936         rather than iterating through the blocks testing each bit in
2937         livein to initialize the worklist.
2938         (mark_def_sites): Remove useless checks of KILLS for virtual
2939         operands.
2940
2941         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
2942         new parameters for the statement and variable worklist as well
2943         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
2944         worklist recording interesting variables in the variable worklist
2945         and bitmap.  Handle casts between integral and boolean types.
2946         (substitute_single_use_vars): Accept new parameters for the statement
2947         and variable worklist.  When a substitution is made add a new
2948         entry to the statement worklist.  Handle casts between integral
2949         and boolean types.
2950         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
2951         worklists to children.  Iterate until the statement worklist
2952         is empty.
2953
2954 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
2955
2956         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
2957         the end of the block.
2958
2959         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
2960         with BITMAP_XMALLOC.
2961
2962         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
2963         with BITMAP_XMALLOC.
2964
2965         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
2966         Free nonzero_vars at the end of the function.
2967
2968         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
2969         need to generate code instead of a NOP_EXPR.
2970
2971 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
2972
2973         * gcc.c (default_compilers): Fill out initializers for new Fortran
2974         entries.
2975
2976 2004-05-13  Paul Brook  <paul@codesourcery.com>
2977
2978         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
2979
2980 2004-05-13  Paul Brook  <paul@codesourcery.com>
2981
2982         * config/arm/arm.c (arm_default_short_enums): New function.
2983         (TARGET_DEFAULT_SHORT_ENUMS): Define.
2984
2985 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
2986
2987         Merge from tree-ssa-20020619-branch.
2988
2989         * Makefile.in (reload1.o-warn): Add.
2990         (tree-alias-ander.o-warn): Add.
2991         (GMPLIBS): Define.
2992         (GMPINC): Define.
2993         (BANSHEELIB): Define.
2994         (BANSHEEINC): Define.
2995         (TREE_DUMP_H): Define.
2996         (TREE_SIMPLE_H): Define.
2997         (TREE_FLOW_H): Define.
2998         (LIBDEPS): Add BANSHEELIB.
2999         (INCLUDES): Add BANSHEEINC and GMPINC.
3000         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
3001         c-mudflap.o and c-pretty-print.o.
3002         (C_OBJS): Remove c-pretty-print.o.
3003         (OBJS-common): Remove sibcall.o.
3004         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
3005         tree-ssa.o, tree-optimize.o, tree-simple.o,
3006         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
3007         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
3008         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
3009         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
3010         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
3011         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
3012         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
3013         tree-tailcall.o, gimple-low.o, tree-iterator.o,
3014         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
3015         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
3016         tree-profile.o.
3017         (OBJC-archive): Add tree-nomudflap.o.
3018         (cc1): Add dependency on @TREEBROWSER@.
3019         (c-decl.o): Add dependency on TREE_DUMP_H.
3020         (c-dump.o): Likewise.
3021         (c-common.o): Add dependency on tree-iterator.h
3022         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
3023         (gtype-desc.o): Add dependency on TREE_FLOW_H.
3024         (tree.o): Add dependency on tree-iterator.h,
3025         BASIC_BLOCK_H and TREE_FLOW_H.
3026         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
3027         (langhooks.o): Add dependency on TREE_SIMPLE_H.
3028         (tree-alias-type.o, tree-alias-ander.o,
3029         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
3030         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
3031         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
3032         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
3033         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
3034         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
3035         tree-nested.o, tree-iterator.o, tree-dfa.o,
3036         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
3037         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
3038         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
3039         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
3040         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
3041         tree-sra.o, tree-complex.o, tree-profile.o,
3042         rtl-profile.o): New rules.
3043         (function.o): Add dependency on basic-block.h
3044         (expr.o): Add dependency on tree-iterator.h.
3045         (sibcall.o): Remove.
3046         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
3047         (cfg.o): Add dependency on TIMEVAR_H.
3048         (cfghooks.o): Add dependency on TREE_FLOW_H.
3049         (reg-stack.o): Add dependency on basic-block.h.
3050         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
3051         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
3052         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
3053         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
3054         tree-alias-type.h, tree-alias-common.h,
3055         tree-alias-type.c, tree-alias-common.c,
3056         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
3057         rtl-profile.c and tree-nested.c.
3058         (gt-tree-alias-common.h, gt-tree-mudflap.h,
3059         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
3060         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
3061         gt-tree-cfg.h, gt-tree-nested.h): New rules.
3062         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
3063         * basic-block.h: Include predict.h
3064         (struct edge_def): Add GTY marker.
3065         Change field 'insns' to be a union of tree and rtx.
3066         (EDGE_TRUE_VALUE): Define.
3067         (EDGE_FALSE_VALUE): Define.
3068         (EDGE_EXECUTABLE): Define.
3069         (struct bb_ann_d): Forward declare.
3070         (struct basic_block_def): Add GTY marker.
3071         Remove fields head_tree and end_tree.
3072         Add fields stmt_list, rbi and tree_annotations.
3073         (struct reorder_block_def): Define.
3074         (basic_block_info): Add GTY marker.
3075         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
3076         variables instead of macros.
3077         (flow_call_edges_add): Remove declaration.
3078         (make_eh_edge): Remove declaration.
3079         (brief_dump_cfg, find_edge, tree_predicted_by_p,
3080         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
3081         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
3082         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
3083         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
3084         (try_redirect_by_replacing_jump): Modfiy return type to
3085         edge instead of bool.
3086         * bb-reorder.c (copy_bb): Call duplicate_block
3087         instead of cfg_layout_duplicate_bb.
3088         (copy_bb_p): Call can_duplicate_block_p instead of
3089         cfg_layout_can_duplicate_bb_p.
3090         * bitmap.c (bitmap_first_set_bit): Abort if word
3091         wasn't found.
3092         (bitmap_last_set_bit): Likewise.
3093         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
3094         (DEF_FUNCTION_TYPE_3): Add.
3095         * builtins.c (c_strlen): Make extern.
3096         (builtin_save_expr): New.
3097         (expand_builtin_nonlocal_goto): New.
3098         (expand_builtin_constant_p): Remove.
3099         (expand_builtin_mathfn): Call builtin_save_expr instead
3100         of save_expr.
3101         (expand_builtin_mathfn_2): Likewise.
3102         (expand_builtin_strcmp): Likewise.
3103         (expand_builtin_strncmp): Likewise.
3104         (expand_builtin_strcat): Likewise.
3105         (fold_builtin_cabs): Likewise.
3106         (expand_builtin_alloca): Don't trigger if -fmudflap is
3107         given.
3108         (build_string_literal): Set TREE_INVARIANT on new node.
3109         (expand_builtin_profile_fun): New.
3110         (round_trampoline_addr): New.
3111         (expand_builtin_init_trampoline): New.
3112         (expand_builtin_adjust_trampoline): New.
3113         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
3114         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
3115         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
3116         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
3117         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
3118         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
3119         Handle.
3120         (fold_builtin_expect): New.
3121         (fold_builtin_isascii): Don't return non-constant results
3122         in GIMPLE form.
3123         (fold_builtin_isdigit): Likewise.
3124         (fold_builtin_1): New.
3125         (fold_builtin): Call it.
3126         (build_function_call_expr): Update call to build a new
3127         CALL_EXPR.
3128         (purge_builtin_constant_p): Remove.
3129         (simplify_builtin, simplify_builtin_memcmp,
3130         simplify_builtin_strcmp, simplify_builtin_strncmp,
3131         simplify_builtin_strpbrk, simplify_builtin_strstr,
3132         simplify_builtin_strchr, simplify_builtin_strrchr,
3133         simplify_builtin_strcat, simplify_builtin_strncat,
3134         simplify_builtin_strspn, simplify_builtin_strcspn,
3135         simplify_builtin_next_arg, simplify_builtin_va_start,
3136         simplify_builtin_sprintf): New.
3137         * builtins.def (BUILT_IN_STACK_ALLOC,
3138         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
3139         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
3140         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
3141         BUILT_IN_PROFILE_FUNC_EXIT): Define.
3142         * c-common.c: Include tree-iterator.h and hashtab.h.
3143         (lang_statement_code_p): Declare.
3144         (lang_gimplify_stmt): Declare.
3145         (fix_string_type): Set TREE_INVARIANT for value.
3146         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
3147         (c_type_hash): New.
3148         (c_common_get_alias_set): Handle multiple type nodes
3149         referring to "the same" type, currently for C90 only.
3150         (c_add_case_label): Use create_artificial_label.
3151         (finish_label_address_expr): Don't set TREE_CONSTANT on
3152         result.
3153         (c_expand_expr): Don't handle STMT_EXPR.
3154         (handle_alias_attribute): Marke aliased variables to be
3155         TREE_STATIC.
3156         (handle_nonnull_attribute): Initialize arg_num.
3157         (check_function_nonnull): Likewise.
3158         (c_walk_subtrees): New.
3159         (c_estimate_num_insns_1): Don't handle
3160         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
3161         (c_decl_uninit_1): Remove.
3162         (c_decl_uninit): Remove.
3163         (c_warn_unused_result): New.
3164         * c-common.def (ASM_STMT): Change number of operands
3165         to 4.
3166         (FILE_STMT): Remove.
3167         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
3168         Remove.
3169         (lang_gimplify_stmt): Add.
3170         (expand_stmt): Remove.
3171         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
3172         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
3173         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
3174         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
3175         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
3176         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
3177         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
3178         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
3179         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
3180         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
3181         genrtl_compound_stmt, genrtl_asm_stmt,
3182         genrtl_cleanup_stmt, c_decl_uninit): Remove.
3183         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
3184         c_tree_chain_matters_p, c_warn_unused_result,
3185         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
3186         Declare.
3187         * c-convert.c (convert): Make convert work when
3188         converting to compatible types across translation unit.
3189         * c-decl.c: Include langhooks.h, tree-mudflap.h,
3190         tree-simple.h, diagnostic.h and tree-dump.h
3191         (merge_decls): Initialize oldtype to NULL.
3192         (finish_decl): Use DECL_HARD_REGISTER instead of
3193         DECL_C_HARD_REGISTER.
3194         (check_bitfield_type_and_width): Check for null
3195         lang_type_specific when check the precision of an enum.
3196         (grokdeclarator): Immediately layout an ARRAY_TYPE used
3197         in a pointer-to-array declarator.
3198         (finish_struct): Clear allocated struct lang_type.
3199         (finish_enum): Set enum_min and enum_max.  Set
3200         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
3201         not to the enumerators.
3202         (set_decl_nonlocal): New.
3203         (store_parm_decls): Use it via walk_tree.
3204         (c_finalize): New.
3205         (finish_function): When !targetm.have_ctors_dtors,
3206         record static constructors and destructors here...
3207         (c_expand_body_1): ... not here.
3208         (c_expand_decl): Rename from c_expand_decl_stmt.
3209         Handle all C-specific expansion semantics.
3210         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
3211         STMT_LINENO.
3212         * c-format.c (handle_format_arg_attribute): Initialize
3213         format_num.
3214         * c-lang.c: Include tree-inline.h
3215         (LANG_HOOKS_EXPAND_DECL,
3216         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3217         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
3218         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
3219         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
3220         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
3221         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
3222         (c_types_compatible_p): New.
3223         * c-mudflap.c: New file.
3224         * c-objc-common.c: Include tree-mudflap.h
3225         (start_cdtor, finish_cdtor): Collapse
3226         together into
3227         (build_cdtor): ...here.  Update to construct a complete tree
3228         for the function.  No need to call push_scope, pop_scope, or
3229         clear_last_expr, or set current_function_cannot_inline.
3230         (c_missing_noreturn_ok_p): Change prototype to return
3231         bool.
3232         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
3233         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
3234         opts.c.
3235         (c_common_post_options): Don't ever use rtl inlining.
3236         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
3237         * c-pragma.c (handle_pragma_redefine_extname): Define
3238         always.
3239         (init_pragma): Activate #pragma redefine_extname for mudflap.
3240         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
3241         (pp_c_initializer): Accept any type CONSTRUCTOR.
3242         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
3243         COMPLEX_TYPE.
3244         (decl_name_str): New local function.
3245         (pp_c_direct_declarator): Call it.
3246         (pp_c_primary_expression): Call it.
3247         (pp_c_id_expression): Call it.
3248         (pp_c_statement): Call it.
3249         (print_c_tree): Create new pp object.
3250         * c-pretty-print.h (pp_c_tree_decl_identifier,
3251         print_c_tree): Declare.
3252         * c-semantics.c: Include langhooks.h
3253         (lang_expand_stmt, lang_expand_decl_stmt,
3254         find_reachable_label_1, find_reachable_label,
3255         expand_unreachable_if_stmt, expand_unreachable_stmt,
3256         genrtl_do_stmt_1): Remove.
3257         (begin_stmt_tree): Don't check for changed filename.
3258         Call annotate_with_locus.
3259         (finish_stmt_tree): Don't set line for end of function.
3260         (build_stmt): Don't check type nodes for
3261         side effects.
3262         (build_stmt): Set TREE_SIDE_EFFECTS.
3263         Set EXPR_LOCUS instead of STMT_LINENO.
3264         (lang_expand_stmt, lang_expand_decl_stmt,
3265         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
3266         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
3267         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
3268         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
3269         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
3270         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
3271         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
3272         find_reachable_label_1, expand_unreachable_if_stmt,
3273         expand_unreachable_stmt): Remove.
3274         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
3275         * c-simplify.c: New file.
3276         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
3277         (struct lang_type): Add fields enum_min and enum_max.
3278         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
3279         (c_expand_decl, c_missing_noreturn_ok_p,
3280         c_types_compatible_p): Declare.
3281         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
3282         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
3283         (default_function_array_conversion): Rely on build to
3284         set TREE_CONSTANT.
3285         (parser_build_binary_op, pointer_diff): Likewise.
3286         (build_unary_op, build_binary_op): Likewise.
3287         (build_array_ref):
3288         (build_external_ref): Set TREE_INVARIANT.
3289         (build_c_cast, pop_init_level): Likewise.
3290         (process_init_element): Use ASM_VOLATILE_P.
3291         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
3292         (c_finish_case): Call c_do_switch_warnings.
3293         * c.opt (fdump-): Remove.
3294         * calls.c (try_to_integrate): Remove.
3295         (prepare_call_address): Replace fndecl arg with a
3296         precomputed static chain value.
3297         (emit_call_1): New argument for full call expr.
3298         (flags_from_decl_or_type): Call special_function_p.
3299         (initialize_argument_information): Add argument
3300         may_tailcall.
3301         (purge_reg_equiv_notes): New.
3302         (expand_call): Do not try to expand calls inline.
3303         (fixup_tail_calls): New.
3304         * cfg.c: Include timevar.h and ggc.h.
3305         (bb_pool, edge_pool): Remove.
3306         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
3307         (entry_exit_blocks): Remove.
3308         (rbi_pool): Declare.
3309         (init_flow): Do not create pools.
3310         Allocate entry/exit block.
3311         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
3312         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
3313         (unlink_block): Clear b->prev_bb and b->next_bb.
3314         (compact_blocks): Clear all slots of BASIC_BLOCK array.
3315         (dump_flow_info): Work on trees too.
3316         (dump_cfg_bb_info): New.
3317         (brief_dump_cfg): New.
3318         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
3319         (find_edge): New.
3320         * cfgbuild.c (rtl_make_eh_edge): Rename from
3321         make_eh_edge.  Update all users.
3322         (find_basic_blocks): Don't call VARRAY_FREE on
3323         basic_block_info.
3324         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
3325         and newpos2.
3326         (delete_unreachable_blocks): Return changed status.
3327         (merge_seq_blocks): New.
3328         * cfghooks.c: Include tree-flow.h
3329         (tree_register_cfg_hooks, ir_type): New.
3330         (redirect_edge_and_branch): Change return type to edge.
3331         (predict_edge, predicted_by_p, can_duplicate_block_p,
3332         duplicate_block, block_ends_with_call_p,
3333         block_ends_with_condjump_p, flow_call_edges_add): New.
3334         * cfghooks.h (redirect_edge_and_branch): Change return
3335         type to edge.
3336         (predict_edge, predicted_by_p, can_duplicate_block_p,
3337         duplicate_block, block_ends_with_call_p,
3338         block_ends_with_condjump_p, flow_call_edges_add): Declare.
3339         (redirect_edge_and_branch): Change return type to edge.
3340         (struct cfg_hooks): Add fields block_ends_with_call_p,
3341         block_ends_with_condjump_p, flow_call_edges_add,
3342         predict_edge, predicted_by_p, can_duplicate_block_p and
3343         duplicate_block.
3344         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
3345         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
3346         (fixup_reorder_chain): Use initialize_bb_rbi.
3347         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
3348         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
3349         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
3350         (insn_locators_initialize): Use new info about blocks.
3351         * cfglayout.h (typedef struct reorder_block_def): Moved to
3352         basic_block.h.
3353         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
3354         removed.
3355         * cfgloop.c: Include tree.h and tree-flow.h.
3356         * cfgloop.h (create_loop_notes): Declare.
3357         * cfgloopmanip.c (create_loop_notes): New.
3358         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
3359         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
3360         and duplicate_block fields.
3361         (create_basic_block_structure): Don't look at
3362         RTX_INTEGRATED_P.
3363         (rtl_block_ends_with_call_p): New.
3364         (rtl_block_ends_with_condjump_p): New.
3365         (need_fake_edge_p): Moved from cfganal.c.
3366         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
3367         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
3368         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
3369         (cfg_layout_rtl_cfg_hooks): Ditto.
3370         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
3371         functions to be reachable.
3372         * cgraphunit.c (decide_is_function_needed):
3373         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
3374         inline functions don't need to be output.
3375         (cgraph_assemble_pending_functions): Don't do anything
3376         special for nested functions.
3377         (cgraph_mark_functions_to_output): Likewise.
3378         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
3379         (cgraph_analyze_function): Use estimate_num_insns.
3380         (cgraph_mark_functions_to_output): Likewise.
3381         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
3382         (cgraph_expand_function): Allow functions to not be
3383         emitted.
3384         (cgraph_remove_unreachable_nodes):
3385         (cgraph_recursive_inlining_p): Simplify.
3386         (lookup_recursive_calls,
3387         cgraph_decide_recursive_inlining): New.
3388         (cgraph_decide_inlining_*): Update calls of
3389         cgraph_mark_inline.
3390         * combine.c (get_pos_from_mask): Always set *plen.
3391         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
3392         ftree-based-profiling, ftree-ccp, ftree-ch,
3393         ftree-combine-temps, ftree-copyrename, ftree-dce,
3394         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
3395         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
3396         ftree-lrs): Add.
3397         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
3398         Undefine.
3399         * configure.ac: Add --enable-tree-browser option.
3400         Add --with-libbanshee option.
3401         Add GMPLIBS and GMPINC.
3402         * configure: Regenerate.
3403         * coverage.c (tree_ctr_tables): New.
3404         (coverage_counter_alloc): Use it.
3405         (build_ctr_info_value): Ditto.
3406         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
3407         (tree_coverage_counter_ref): New.
3408         * coverage.h (coverage_counter_ref): Remove declaration.
3409         (rtl_coverage_counter_ref): Declare.
3410         (tree_coverage_counter_ref): Declare.
3411         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
3412         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
3413         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
3414         (struct cse_basic_block_data): Rename enum values to not
3415         conflict with profile.h; update all uses.
3416         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
3417         in comments.
3418         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
3419         * diagnostic.h (debug_output_buffer, dump_generic_node,
3420         print_generic_stmt, print_generic_stmt_indented,
3421         print_generic_expr, print_generic_decl,
3422         debug_generic_expr, debug_generic_stmt, debug_c_tree):
3423         Declare.
3424         * dominance.c: Cache immediate dominators.
3425         * domwalk.c: New file.
3426         * domwalk.h: New file.
3427         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
3428         (gen_subprogram_die): Generate a DIE for a named
3429         return value.
3430         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
3431         (add_location_or_const_value_attribute): Likewise.
3432         (add_bound_info): Likewise.
3433         (gen_decl_die): Likewise.
3434         * emit-rtl.c (maybe_set_first_label_num): New.
3435         (copy_most_rtx): Don't copy the integrated flag.
3436         Copy the new return_val flag.
3437         * et-forest.c (MAX_NODES): Define.
3438         (record_path_before_1): Abort if len is greater than
3439         MAX_NODES.
3440         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
3441         gen_eh_region_catch, gen_eh_region_allowed,
3442         gen_eh_region_must_not_throw, get_eh_region_number,
3443         get_eh_region_may_contain_throw, get_eh_region_tree_label,
3444         set_eh_region_tree_label, expand_resx_expr): New.
3445         (expand_eh_region_start, expand_start_catch): Use them.
3446         (expand_end_catch): Tidy.
3447         (note_eh_region_may_contain_throw): Take region argument.
3448         (note_current_region_may_contain_throw): New.
3449         (get_exception_filter): Export.
3450         (collect_eh_region_array): Export.
3451         (remove_unreachable_regions): Check ERT_TRY based on reachability
3452         of catches, not reachability of continue_label.  Never remove
3453         ERT_MUST_NOT_THROW regions.
3454         (collect_rtl_labels_from_trees): New.
3455         (convert_from_eh_region_ranges): Use it.
3456         (connect_post_landing_pads): Handle dying cleanups.
3457         (struct reachable_info): Add callback data.
3458         (add_reachable_handler): Invoke the callback.
3459         (foreach_reachable_handler): New.
3460         (reachable_handlers): Use it.
3461         (arh_to_landing_pad, arh_to_label): New.
3462         (can_throw_internal_1): Split out from can_throw_internal.
3463         (can_throw_external_1): Similarly.
3464         * except.h: Update.
3465         * explow.c (emit_stack_save): Remove savearea mode check.
3466         (update_nonlocal_goto_save_area): New.
3467         (allocate_dynamic_stack_space): Use it.
3468         (probe_stack_range): Never emit loop notes.
3469         * expmed.c (extract_fixed_bit_field): Always propagate the
3470         target for the shift if it is a REG.
3471         * expr.c: Include tree-iterator.h
3472         (is_zeros_p): Remove.
3473         (categorize_ctor_elements_1, categorize_ctor_elements): New.
3474         (count_type_elements): New.
3475         (mostly_zeros_p): Use them.
3476         (expr_wfl_stack): Remove.
3477         (convert_move): Do nothing if to and from are the same.
3478         (emit_block_move_via_loop): Don't emit LOOP notes.
3479         (emit_move_insn): Don't handle CONSTANT_P_RTX.
3480         (emit_move_insn_1): Don't generate inline warnings.
3481         (expand_vars, expand_var): Split from ...
3482         (expand_expr_1): ... here.
3483         (expand_expr_real, expand_expr_real_1):  Use new macros
3484         EXPR_LOCATION and EXPR_HAS_LOCATION.
3485         * expr.h (simplify_builtin_fputs,
3486         simplify_builtin_strcpy, simplify_builtin_strncpy,
3487         expand_var, fixup_tail_calls,
3488         update_nonlocal_goto_save_area): Declare.
3489         (lookup_static_chain, expand_inline_function,
3490         mark_seen_cases): Remove.
3491         (prepare_call_address): Change type of 2nd argument to
3492         rtx.
3493         * final.c (profile_function): Update static chain test.
3494         (final): Don't look at RTX_INTEGRATED_P.
3495         * flags.h (flag_mudflap, flag_mudflap_threads,
3496         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
3497         flag_tree_dce, flag_tree_combine_temps,
3498         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
3499         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
3500         flag_tree_points_to): Declare.
3501         (enum pta_type): Declare.
3502         * flow.c (lang_missing_noreturn_ok_p): Remove.
3503         (check_function_return_warnings): Remove.
3504         (update_life_info): Update comments.
3505         (free_basic_block_vars): Don't call VARRAY_FREE for
3506         basic_block_info.
3507         (regno_uninitialized): Remove.
3508         * fold-const.c (int_const_binop): Make extern.
3509         (non_lvalue): Rely on build to set TREE_CONSTANT.
3510         (operand_equal_p): Replace only_const argument with
3511         flags.  Allow pure functions if OEP_PURE_SAME.
3512         (fold): Use OEP_ONLY_CONST.
3513         (invert_truthvalue) <NOP_EXPR> Break if argument is of
3514         boolean type.
3515         (fold_relational_hi_lo,
3516         nondestructive_fold_binary_to_constant,
3517         nondestructive_fold_unary_to_constant,
3518         fold_read_from_constant_string): New.
3519         * function.c (struct function): Remove calls_constant_p.
3520         (current_function_calls_constant_p): Remove.
3521         (inline_function_decl): Remove.
3522         (put_var_into_stack): Don't use it.
3523         (fix_lexical_addr): Likewise.
3524         (inline_function_decl): Remove extern declaration.
3525         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
3526         (trampolines_created): Move to varasm.c.
3527         (free_after_compilation): Update for removed fields.
3528         (allocate_struct_function): Likewise.
3529         (delete_handlers, lookup_static_chain): Remove.
3530         (fix_lexical_addr): Don't consider non-local variable refs.
3531         (trampoline_address): Remove.
3532         (round_trampoline_addr): Move to builtins.c.
3533         (adjust_trampoline_addr): Remove.
3534         (expand_function_start): Update for changes to static chain
3535         and nonlocal goto handling.
3536         (initial_trampoline): Move to varasm.c.
3537         (expand_function_end): Don't build trampolines or kill
3538         unreferenced nonlocal goto labels.
3539         (free_after_compilation): Don't set it.
3540         (expand_function_end): Likewise.
3541         (setjmp_vars_warning): Rename from
3542         uninitialized_vars_warning, remove uninitialized vars warning.
3543         (uninitialized_vars_warning): Remove old comment
3544         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
3545         and do not call the langhook.
3546         (expand_function_start, expand_function_end): Don't do
3547         function instrumentation here.
3548         (clear_block_marks): Rename from reorder_blocks_0, export.
3549         (blocks_nreverse): Export.
3550         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
3551         of rtl.
3552         (reset_block_changes, record_block_change, finalize_block_changes,
3553         check_block_change, free_block_changes): New functions.
3554         (assign_parms): Setting of current_function_stdarg
3555         moved ...
3556         (allocate_struct_function): ... here.
3557         * function.h (struct function): Remove x_nonlocal_labels,
3558         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
3559         x_context_display, x_trampoline_list, needs_context.
3560         Add static_chain_decl, nonlocal_goto_save_area.
3561         (struct function): Remove x_clobber_return_insn.
3562         Add tail_call_emit field, last_label_uid,
3563         unexpanded_var_list, dont_emit_block_notes,
3564         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
3565         (clear_block_marks): Declare.
3566         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
3567         (mfwrap_spec, mflib_spec): Declare.
3568         (cpp_unique_options, cc1_options): Ditto.
3569         (default_compilers): Add .F and .f90.
3570         (static_specs): Add mfwrap and mflib.
3571         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
3572         CONSTANT_RTX_P.
3573         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
3574         Update to match insns field in struct edge_def.
3575         * gdbinit.in (pgs, pge): Define.
3576         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
3577         instead of the integrated flag.
3578         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
3579         * gengtype-yacc.y (bitfieldlen): Add empty action.
3580         (struct_fields): Accept unnamed bitfields.
3581         (bitfieldlen): Split from ...
3582         (bitfieldopt): ... here.
3583         * gengtype.c (ifiles): Add tree-alias-type.h and
3584         tree-flow.h.
3585         * genrecog.c (validate_pattern): Do not handle
3586         CONSTANT_P_RTX.
3587         * gimple-low.c: New file.
3588         * gimplify.c: New file.
3589         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
3590         (restore_line_notes): Do not set RTX_INTEGRATED_P.
3591         * ifcvt.c (dead_or_predicable): Initialize local variable
3592         'earliest'.
3593         * input.h (expr_wfl_stack): Remove.
3594         * integrate.c (INTEGRATE_THRESHOLD): Remove.
3595         (setup_initial_hard_reg_value_integration): Likewise.
3596         (initialize_for_inline): Likewise.
3597         (note_modified_parmregs): Likewise.
3598         (integrate_parm_decls): Likewise.
3599         (process_reg_param): Likewise.
3600         (save_parm_insns): Likewise.
3601         (copy_insn_list): Likewise.
3602         (copy_insn_notes): Likewise.
3603         (compare_blocks): Likewise.
3604         (find_block): Likewise.
3605         (inlining): Likewise.
3606         (function_cannot_inline_p): Likewise.
3607         (parmdecl_map): Likewise.
3608         (in_nonparam_insns): Likewise.
3609         (save_for_inline): Likewise.
3610         (FIXED_BASE_PLUS): Likewise.
3611         (expand_inline_function): Likewise.
3612         (copy_rtx_and_substitute): Don't look at map->integrating,
3613         map->inline_target, and inlining, since we are never copying
3614         for integrating.
3615         Don't abort on RTX_INTEGRATED_P.
3616         (old_fun): Remove.
3617         (output_inline_function): Remove.
3618         * integrate.h (struct inline_map): Remove fields integrating,
3619         block_map, leaf_reg_map, inline_target, and local_return_label.
3620         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
3621         copy_loop_headers, never_reached_warning): Removed.
3622         (any_uncondjump_p): Reject nonlocal goto.
3623         * langhooks-def.h (lhd_types_compatible_p,
3624         lhd_expand_decl, lhd_gimplify_expr): Declare.
3625         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
3626         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3627         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
3628         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3629         LANG_HOOKS_GIMPLIFY_EXPR,
3630         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
3631         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
3632         LANG_HOOKS_GIMPLIFY_EXPR,
3633         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
3634         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
3635         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
3636         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
3637         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
3638         LANG_HOOKS_DECL_UNINIT,
3639         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
3640         * langhooks.c: Include tree-simple.h.
3641         (lhd_expand_decl): New.
3642         (lhd_types_compatible_p): New.
3643         (lhd_decl_uninit): Remove.
3644         (lhd_gimplify_expr): New.
3645         * langhooks.h (struct lang_hooks_for_rtl_expansion):
3646         Remove.
3647         (struct lang_hooks_for_functions): Add field
3648         missing_noreturn_ok_p.
3649         (struct lang_hooks): Add field expand_decl,
3650         types_compatible_p, gimplify_expr and
3651         gimple_before_inlining.
3652         Remove fields decl_uninit and rtl_expand
3653         * opts.c (decode_options): Set flag_tree_ccp,
3654         flag_tree_dce, flag_tree_dom, flag_tree_dse,
3655         flag_tree_pre, flag_tree_ter,
3656         flag_tree_live_range_split, flag_tree_sra,
3657         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
3658         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
3659         OPT_fmudflapth, OPT_fmudflapir,
3660         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
3661         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
3662         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
3663         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
3664         OPT_ftree_points_to_ and OPT_ftree_pre.
3665         * output.h (regno_uninitialized, find_basic_blocks,
3666         cleanup_cfg, delete_unreachable_blocks,
3667         check_function_return_warnings): Remove.
3668         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
3669         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
3670         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
3671         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
3672         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
3673         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
3674         Define.
3675         * passes.c (rest_of_decl_compilation):
3676         (rest_of_handle_sibling_calls): Remove.
3677         (rest_of_handle_inlining): Remove.
3678         (rest_of_handle_gcse): Do not run
3679         purge_builtin_constant_p.
3680         (rest_of_compilation): Update.
3681         Do not call copy_loop_headers.
3682         Do rtl-based profiling only when
3683         !flag_tree_based_profiling.  Register rtl-based profiling
3684         hooks.
3685         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
3686         (predicted_by_p): Rename to ...
3687         (rtl_predicted_by_p): .. this one; make global
3688         (tree_predicted_by_p): New.
3689         (dump_prediction): Add FILE argument.
3690         (predict_edge): Rename to ...
3691         (rtl_predict_edge): .. this one.
3692         (tree_predict_edge): New.
3693         (combine_predictions_for_insn): Update calls of predict_edge.
3694         (predict_loops): Break out from ...
3695         (estimate_probability): ... here; update comments; move updating
3696         of unknown probabilities from ...
3697         (estimate_bb_frequencies): ... here.
3698         (combine_predictions_for_bb): New.
3699         (tree_predict_by_opcode): New.
3700         (tree_estimate_probability): New.
3701         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
3702         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
3703         * predict.h: Add include guard.
3704         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
3705         * pretty-print.c (pp_write_text_to_stream): Make extern.
3706         * pretty-print.h (pp_write_text_to_stream): Declare.
3707         * print-rtl.c (print_rtx): Don't print the integrated flag.
3708         Print the return_val flag.
3709         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
3710         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
3711         Remove support for EXPR_WITH_FILE_LOCATION nodes.
3712         (print_node): Print TREE_INVARIANT and TREE_VISITED.
3713         * profile.c: Include cfghooks.h, tree-flow.h.
3714         (profile_hooks): New.
3715         (profile_dump_file): New.
3716         (instrument_edges): Use hooks instead of RTL-specific code.
3717         (instrument_values): Ditto.
3718         (get_exec_counts): Ditto.
3719         (compute_branch_probabilities): Ditto.
3720         (compute_value_histograms): Ditto.
3721         (branch_prob): Ditto.
3722         (find_spanning_tree): Ditto.
3723         (end_branch_prob): Ditto.
3724         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
3725         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
3726         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
3727         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
3728         (tree_register_profile_hooks): New.
3729         (rtl_register_profile_hooks): New.
3730         * ra-rewrite.c (rewrite_program): Clear variable info.
3731         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
3732         * regs.h: Add include guards.
3733         * reload.c (decompose): Clear val using memset.
3734         * rtl.def (CONSTANT_P_RTX): Remove.
3735         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
3736         (copy_loop_headers): Remove.
3737         (struct rtx_def): Replace the integrated flag with the
3738         return_val flag.
3739         (maybe_set_first_label_num): Declare.
3740         (init_branch_prob): Move declaration to value-prof.h.
3741         (end_branch_prob): Ditto.
3742         (branch_prob): Ditto.
3743         (never_reached_warning): Don't declare it.
3744         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
3745         (hoist_insn_to_edge): Update to match field insns in
3746         struct edge_def.
3747         * sbitmap.c (sbitmap_realloc): New.
3748         * sbitmap.h (sbitmap_realloc): Declare.
3749         * sibcall.c: Remove file.
3750         * simplify-rtx.c (simplify_rtx): Do not handle
3751         CONSTANT_P_RTX.
3752         * stmt.c (parse_output_constraint): Don't warn for read-write
3753         memory operand.
3754         (tail_recursion_args): Use types_compatible_p langhook.
3755         (force_label_rtx): Don't look at inline_function_decl.
3756         (label_rtx): Set LABEL_PRESERVE_P appropriately.
3757         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
3758         (declare_nonlocal_label): Remove.
3759         (expand_goto): Don't handle nonlocal gotos.
3760         (expand_nl_handler_label): Remove.
3761         (expand_nl_goto_receivers): Remove.
3762         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
3763         update_nonlocal_goto_save_area.
3764         (expand_expr_stmt_value): Check TREE_NO_WARNING.
3765         (warn_if_unused_value): Likewise.
3766         (expand_start_loop, expand_loop_continue_here,
3767         expand_end_loop): Don't create loop notes.
3768         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
3769         mark_seen_cases, check_for_full_enumeration_handling): Remove.
3770         (expand_end_case_type): Don't do warn_switch handling.
3771         (pushcase, pushcase_range) Update add_case_node calls.
3772         (add_case_node): Add dont_expand_label argument.
3773         (same_case_target_p): Don't search rtl.
3774         (expand_start_bindings_and_block, expand_end_bindings):
3775         Don't emit block notes when dont_emit_block_notes.
3776         (using_eh_for_cleanups_p): Export.
3777         (expand_return): Allow any typed rhs.
3778         (expand_stack_alloc): New.
3779         (expand_stack_save, expand_stack_restore): New.
3780         (containing_blocks_have_cleanups_or_stack_level): New
3781         function.
3782         (asm_op_is_mem_input): New fn.
3783         (expand_asm_expr): New fn.
3784         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
3785         nodes.
3786         * stor-layout.c (layout_type): Just return if type is
3787         error_mark_node.
3788         (update_alignment_for_field): Export.
3789         (variable_size): We don't care about global_bindings_p if
3790         the frontend doesn't want a list of the expressions.
3791         * system.h: Poison INTEGRATE_THRESHOLD.
3792         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
3793         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
3794         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
3795         TV_TREE_SSA_OTHER, TV_TREE_OPS,
3796         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
3797         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
3798         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
3799         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
3800         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
3801         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
3802         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
3803         TV_CONTROL_DEPENDENCES): Define.
3804         * toplev.c: Include tree-alias-common.h
3805         (current_file_decl, flag_mudflap, flag_mudflap_threads,
3806         flag_mudflap_ignore_reads, flag_tree_based_profiling,
3807         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
3808         flag_tree_dce, flag_tree_ch, flag_tree_sra,
3809         flag_tree_combine_temps, flag_tree_ter,
3810         flag_tree_live_range_split, flag_tree_dom,
3811         flag_tree_copyrename, flag_tree_dse): Declare.
3812         (f_options): Add tree-based-profiling, tree-gvn,
3813         tree-pre, tree-ccp, tree-dce,
3814         tree-dominator-opts, tree-copyrename, tree-dse,
3815         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
3816         (wrapup_global_declarations): Don't output nested inlined functions.
3817         (general_init): Call init_tree_optimization_passes.
3818         (process_options): Sorry for -ftree-based-profiling plus
3819         -ftest-coverage or -fprofile-values.
3820         * toplev.h (init_tree_optimization_passes,
3821         flag_tree_based_profiling): Declare.
3822         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
3823         * tree-alias-ander.c: New file.
3824         * tree-alias-ander.h: New file.
3825         * tree-alias-common.c: New file.
3826         * tree-alias-common.h: New file.
3827         * tree-alias-type.c: New file.
3828         * tree-alias-type.h: New file.
3829         * tree-browser.c: New file.
3830         * tree-browser.def: New file.
3831         * tree-cfg.c: New file.
3832         * tree-complex.c: New file.
3833         * tree-dfa.c: New file.
3834         * tree-dump.c (dump_enable_all): New.
3835         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
3836         (dump_node): Remove const from field suffix and swtch.
3837         (dump_files): Add null entry, .generic, .nested, .vcg,
3838         .xml and a match-all entry.
3839         (extra_dump_files, extra_dump_files_in_use,
3840         extra_dump_files_alloced): Declare
3841         (dump_option_value_info): Add raw, details, stats,
3842         blocks, vops, lineno, uid and all.
3843         (dump_register): New.
3844         (get_dump_file_info): New.
3845         (dump_begin): Call it.
3846         Do nothing for TDI_none.
3847         (dump_begin): Include phase number in dump filename.
3848         (dump_enable_all): New.
3849         (dump_switch_p_1): Split out from dump_switch_p.
3850         (dump_switch_p): Handle extra_dump_files.
3851         Start our scan at TDI_none + 1.
3852         If -fdump-tree-all was given, call dump_enable_all.
3853         * tree-dump.h: Include splay-tree.h.
3854         (dump_function, dump_function_to_file, dump_register):
3855         Declare.
3856         * tree-eh.c: New file.
3857         * tree-flow-inline.h: New file.
3858         * tree-flow.h: New file.
3859         * tree-inline.c: Re-write to handle inlining on GIMPLE.
3860         * tree-inline.h (walk_tree,
3861         walk_tree_without_duplicates): Move to tree.h.
3862         (estimate_num_insns): Declare.
3863         * tree-into-ssa.c: New file.
3864         * tree-iterator.c: New file.
3865         * tree-iterator.h: New file.
3866         * tree-mudflap.c: New file.
3867         * tree-mudflap.h: New file.
3868         * tree-nested.c: New file.
3869         * tree-nomudflap.c: New file.
3870         * tree-nrv.c: New file.
3871         * tree-optimize.c (dump_flags, vars_to_rename,
3872         in_gimple_form, all_passes, pass_gimple,
3873         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
3874         (execute_gimple, execute_rebuild_bind,
3875         gate_all_optimizations, execute_del_cfg,
3876         register_one_dump_file, register_dump_files, dup_pass_1,
3877         init_tree_optimization_passes, execute_todo,
3878         execute_one_pass, execute_pass_list): New.
3879         (clear_decl_rtl): Remove.
3880         (tree_rest_of_compilation): Update to use tree
3881         optimizers.
3882         * tree-outof-ssa.c: New file.
3883         * tree-pass.h: New file.
3884         * tree-phinodes.c: New file.
3885         * tree-pretty-print.c: New file.
3886         * tree-profile.c: New file.
3887         * tree-simple.c: New file.
3888         * tree-simple.h: New file.
3889         * tree-sra.c: New file.
3890         * tree-ssa-alias.c: New file.
3891         * tree-ssa-ccp.c: New file.
3892         * tree-ssa-copy.c: New file.
3893         * tree-ssa-copyrename.c: New file.
3894         * tree-ssa-dce.c: New file.
3895         * tree-ssa-dom.c: New file.
3896         * tree-ssa-dse.c: New file.
3897         * tree-ssa-forwprop.c: New file.
3898         * tree-ssa-live.c: New file.
3899         * tree-ssa-live.h: New file.
3900         * tree-ssa-loop.c: New file.
3901         * tree-ssa-operands.c: New file.
3902         * tree-ssa-operands.h: New file.
3903         * tree-ssa-phiopt.c: New file.
3904         * tree-ssa-pre.c: New file.
3905         * tree-ssa.c: New file.
3906         * tree-ssanames.c: New file.
3907         * tree-tailcall.c: New file.
3908         * tree.c: Include tree-iterator.h, basic-block.h and
3909         tree-flow.h.
3910         (tree_node_kind): Add phi_nodes and ssa names.
3911         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
3912         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
3913         (make_node_stat): Handle PHI_NODE and SSA_NAME.
3914         <'c'> Set TREE_INVARIANT.
3915         (copy_node_stat): Abort if trying to copy a
3916         STATEMENT_LIST.
3917         Clear TREE_VISITED.
3918         Clear annotation field.
3919         (build_constructor): Copy TREE_INVARIANT from vals.
3920         Don't clear TREE_CONSTANT.
3921         (expr_first, expr_last, expr_length): Remove.
3922         (staticp): Pass unknown component references to the language.
3923         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
3924         (skip_simple_arithmetic): Likewise.
3925         (stabilize_reference_1): Likewise.
3926         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
3927         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
3928         STATEMENT_LIST.
3929         (lhd_unsave_expr_now): Remove.
3930         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
3931         (recompute_tree_invarant_for_addr_expr): New.
3932         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
3933         Call recompute_tree_invarant_for_addr_expr.
3934         Set TREE_INVARIANT accordingly.
3935         (build2_stat): Don't handle CALL_EXPR.
3936         (build3_stat): Don't call build2_stat for CALL_EXPRs.
3937         (build_expr_wfl): Remove.
3938         (annotate_with_file_line, annotate_with_locus): New.
3939         (simple_cst_equal): Call simple_cst_list_equal to compare
3940         CONSTRUCTOR_ELTS pointers.
3941         (iterative_hash_expr): Don't hash types associated
3942         with conversions.  Instead hash on the signedness of the
3943         toplevel object and the operand of the conversion.
3944         (dump_tree_statistics): Call ssanames_print_statistics
3945         and phinodes_print_statistics.
3946         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
3947         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
3948         needs_to_live_in_memory): New.
3949         (initializer_zerop): Handle VECTOR_CST.  Don't check
3950         AGGREGATE_TYPE_P for CONSTRUCTOR.
3951         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
3952         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
3953         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
3954         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
3955         (CALL_EXPR): Add another operand.
3956         (EXPR_WITH_FILE_LOCATION): Remove.
3957         (SWITCH_EXPR): Add another operand.
3958         * tree.h: Update various comments.
3959         (union tree_ann_d): Forward declare.
3960         (struct tree_common): Add fields nowarning_flag,
3961         invariant_flag and visited.
3962         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
3963         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
3964         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
3965         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
3966         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
3967         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
3968         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
3969         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
3970         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
3971         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
3972         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
3973         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
3974         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
3975         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
3976         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
3977         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
3978         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
3979         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
3980         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
3981         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
3982         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
3983         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
3984         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
3985         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
3986         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
3987         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
3988         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
3989         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
3990         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
3991         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
3992         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
3993         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
3994         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
3995         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
3996         TDF_UID,): Define.
3997         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
3998         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
3999         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
4000         EXPR_WFL_SET_LINECOL): Remove.
4001         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
4002         make_phi_node, init_phinodes, fini_phinodes,
4003         release_phi_node, phinodes_print_statistics,
4004         init_ssanames, fini_ssanames, make_ssa_name,
4005         release_ssa_name, ssanames_print_statistics,
4006         annotate_with_file_line, build_empty_stmt,
4007         annotate_with_locus, expr_only, categorize_ctor_elements,
4008         count_type_elements, add_var_to_bind_expr, is_essa_node,
4009         expand_stack_alloc, expand_stack_save,
4010         expand_stack_restore, add_case_node, operand_equal_p,
4011         nondestructive_fold_unary_to_constant,
4012         nondestructive_fold_binary_to_constant,
4013         fold_read_from_constant_string, int_const_binop,
4014         strip_float_extensions, simplify_builtin, c_strlen,
4015         recompute_tree_invarant_for_addr_expr,
4016         needs_to_live_in_memory, make_vector,
4017         setjmp_vars_warning, update_alignment_for_field,
4018         expand_asm_expr, asm_op_is_mem_input,
4019         containing_blocks_have_cleanups_or_stack_level,
4020         create_artificial_label, gimplify_function_tree,
4021         get_name, unshare_expr, walk_tree,
4022         walk_tree_without_duplicates, in_gimple_form): Declare.
4023         (struct tree_exp): Add fields locus and block.
4024         (struct tree_ssa_name, struct edge_def, struct
4025         tree_phi_node, struct tree_eref_common, struct
4026         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
4027         union alias_var_def, struct tree_statement_list_node,
4028         struct tree_statement_list, enum operand_equal_flag): Declare.
4029         (enum tree_node_structure_enum): Add TS_SSA_NAME,
4030         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
4031         TS_STATEMENT_LIST.
4032         (union tree_node): Add fields ssa_name, phi, eref, ephi,
4033         euse and stmt_list.
4034         (function_cannot_inline_p, uninitialized_vars_warning,
4035         save_for_inline, output_inline_function, all_cases_count,
4036         check_for_full_enumeration_handling,
4037         declare_nonlocal_label): Remove.
4038         (enum tree_dump_index): Add TDI_none, TDI_tu,
4039         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
4040         * unroll.c (unroll_loop): Don't clear map->inline_target.
4041         * unwind-sjlj.c (uw_install_context): Make a proper static inline
4042         function.
4043         * value-prof.c (value_prof_hooks): New.
4044         (find_values_to_profile): Rename to rtl_find_values_to_profile.
4045         Move rtl-specific bits in from branch_prob.
4046         (value_profile_transformations): Rename to
4047         rtl_value_profile_transformations.
4048         (struct value_prof_hooks): New.
4049         (rtl_value_prof_hooks): New.
4050         (rtl_register_value_prof_hooks): New.
4051         (tree_find_values_to_profile): New stub.
4052         (tree_value_profile_transformations): New stub.
4053         (tree_value_prof_hooks): New stub.
4054         (tree_register_value_prof_hooks): New stub.
4055         (find_values_to_profile): New.
4056         (value_profile_transformations): New.
4057         * value-prof.h: Add multiple inclusion guard.
4058         (struct histogram_value): Change rtx fields to void *.
4059         (rtl_register_value_prof_hooks): New declaration.
4060         (tree_register_value_prof_hooks): New declaration.
4061         (find_values_to_profile): New declaration.
4062         (free_profiled_values): New declaration.
4063         (value_profile_transformations): New declaration.
4064         (struct profile_hooks): New declaration.
4065         (init_branch_prob): Declaration moved from rtl.h.
4066         (branch_prob): Declaration moved from rtl.h.
4067         (end_branch_prob): Declaration mooved from rtl.h.
4068         (tree_register_profile_hooks): New declaration.
4069         (rtl_register_profile_hooks): New declaration.
4070         (tree_profile_hooks): New declaration.
4071         (rtl_profile_hooks): New declaration.
4072         * varasm.c: Include tree-mudflap.h.
4073         (TRAMPOLINE_ALIGNMENT): Remove.
4074         (make_decl_rtl): Call mudflap_enqueue_decl.
4075         (assemble_static_space):
4076         (assemble_trampoline_template): Set and return
4077         TRAMPOLINE_ALIGNMENT.
4078         * varray.c (element): Add GENERIC_PTR_NOGC entry.
4079         Add entry for 'tree *'.
4080         Add entry for struct edge_def *.
4081         (varray_copy): New.
4082         * varray.h (enum varray_data_enum): Add
4083         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
4084         VARRAY_DATA_TREE_PTR.
4085         (union varray_data_tag): Corresponding changes.
4086         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
4087         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
4088         VARRAY_EDGE, VARRAY_TREE_PTR,
4089         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
4090         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
4091         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
4092
4093         * config/*/*: Various updates for changed macros, tree
4094         codes, etc.  Check ChangeLog.tree-ssa.
4095
4096         * doc/cfg.texi: New file.
4097         * doc/tree-ssa.texi: New file.
4098         * doc/c-tree.texi: Document new codes.
4099         * doc/gccint.texi: Include new files.
4100         * doc/install.texi: Document new features.
4101         * doc/invoke.texi: Document new switches.
4102         * doc/passes.texi: Document new passes.
4103         * doc/rtl.texi: Update changed RTL codes.
4104         * doc/sourcebuild.texi: Update build instructions.
4105         * doc/standards.texi: Document Fortran changes.
4106         * doc/tm.texi: Update.
4107
4108 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
4109
4110         Replace several arrays with a struct of arrays.
4111         * combine.c (struct reg_stat): New.
4112         (init_reg_last_arrays): Renamed to...
4113         (init_reg_last): ...this.  Callers adjusted.
4114         (reg_stat): New.
4115         (combine_instructions): Allocate it and use it.
4116         (reg_last_death, reg_last_set, reg_last_set_value,
4117         reg_last_set_label, reg_last_set_table_tick,
4118         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
4119         reg_last_set_mode, reg_last_set_nonzero_bits,
4120         reg_last_set_sign_bit_copies): Replace throughout
4121         with items of reg_stat.
4122
4123 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4124
4125         PR optimization/15100
4126         * combine.c (distribute_notes): Don't create a dangling
4127         REG_LIBCALL/REG_RETVAL note.
4128
4129 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
4130
4131         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
4132
4133         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
4134         negv2si2.
4135
4136 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
4137
4138         * doc/md.texi (Standard Names): Fix typo in vec_init description.
4139
4140 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
4141
4142         * doc/gty.texi (GTY Options): Clarify example.
4143
4144 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
4145
4146         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
4147         Add const qualifier to altivec vector type if one is needed.
4148
4149 2004-05-11  Paul Brook  <paul@codesourcery.com>
4150
4151         * flags.h (flag_short_enums): Update comment.
4152         * opts.c (decode_options): Set flag_short_enums to 2.
4153         * toplev.c (flag_short_enums): Update comment.
4154         (process_options): Call default_short_enums target hook.
4155
4156 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
4157
4158         PR target/14063
4159         * config/rs6000/altivec.md (altivec_dssall):
4160         Change to unspec_volatile.
4161         (altivec_dss): Likewise.
4162
4163 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
4164
4165         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
4166         vnor.
4167         ("one_cmplv8hi2"): Same.
4168         ("one_cmplv4si2"): Same.
4169
4170 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
4171
4172         PR target/15130
4173         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
4174         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
4175         into account.  Compute the correct number of general registers
4176         for the return value.  Generate a special push/pop sequence when
4177         failing to get a temporary register for non SHmedia epilogue.
4178         (sh_expand_epilogue): Add an argument to show whether it's for
4179         sibcall or not.  Set the 3rd argument of output_stack_adjust to
4180         -1 if needed.
4181         (sh_need_epilogue): Call sh_expand_epilogue with 0.
4182         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
4183         with 1.
4184         (epilogue): Call sh_expand_epilogue with 0.
4185
4186 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
4187
4188         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
4189         goto a cleanup label.  After the cleanup, free the allocated memory.
4190
4191 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
4192
4193         * config/rs6000/altivec.h (vec_sld): Add overloads for
4194         argument/return types of 'vector bool int', 'vector bool short'
4195         and 'vector bool char'.
4196
4197 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
4198
4199         * c-decl.c (store_parm_decls_newstyle): Correct test for a
4200         nested function.
4201
4202 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
4203
4204         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
4205         treating missing ones as "".
4206         * config/mips/mips.md: Remove constraints from match_operands and
4207         match_scratches if they appear in define_expands (except reload*),
4208         define_peephole2s, define_splits or attribute specifications.
4209         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
4210         constraint strings.
4211
4212 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
4213
4214         * config/rs6000/rs6000.c (function_arg_boundary): Always align
4215         AltiVec vectors.
4216         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
4217         vectors by refererence.  Align the same for TARGET_64BIT to a 16
4218         byte boundary.  Remove useless code.  Add function comment.
4219         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
4220         call to where it belongs.
4221         (function_arg_partial_nregs): Return true for all TARGET_32BIT
4222         -mabi=no-altivec AltiVec vectors.  Fix debug output.
4223         (rs6000_va_arg): Adjust for AltiVec change.
4224
4225 2004-05-10  Paul Brook  <paul@codesourcery.com>
4226
4227         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
4228         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
4229         (TARGET_DOUBLEWORD_ALIGN): Use it.
4230         (WCHAR_TYPE): Define.
4231         (WCHAR_SIZE_TYPE): Define.
4232         (SIZE_TYPE): Define.
4233
4234 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
4235
4236         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
4237         when size is 8 bytes.
4238         (function_arg_advance): Account for stack space used by AltiVec
4239         args when -mabi=altivec.  Simplify alignment calculations.  For
4240         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
4241         (function_arg): Similarly.
4242         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
4243         not AltiVec ABI.
4244         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
4245         Correct alignment, and align before testing reg count.  Remove
4246         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
4247         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
4248         TARGET_FPRS here..
4249         (rs6000_function_value): .. not here before call.
4250
4251 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
4252
4253         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
4254
4255 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
4256
4257         PR 15007
4258         * c-decl.c (current_file_decl): Rename to all_translation_units,
4259         adjust comment.
4260         (pop_scope): If popping file_scope, construct a
4261         TRANSLATION_UNIT_DECL and make it the context of all the
4262         symbols in the scope.
4263         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
4264         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
4265         anything to current_file_decl.
4266         (pushdecl_top_level): Likewise.
4267         (store_parm_decls_newstyle): Adjust check for nested function.
4268         (c_write_global_declarations): Update for renamed variable.
4269
4270 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
4271
4272         * config/rs6000/rs6000-protos.h
4273         (rs6000_conditional_register_usage): Protoize.
4274
4275         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
4276
4277         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
4278         function.
4279
4280 2004-05-08  Roger Sayle  <roger@eyesopen.com>
4281
4282         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
4283         where op is a comparison operator and C1 and C2 are integer constants
4284         into a range check.
4285         (fold): Call fold_div_compare.
4286
4287 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
4288
4289         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
4290         problems with earlier versions of the GNU compiler.
4291
4292 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
4293
4294         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
4295         Declare.
4296
4297         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
4298         (rs6000_hard_regno_mode_ok): New.
4299         (rs6000_init_hard_regno_mode_ok): New.
4300         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
4301
4302         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
4303         result.
4304
4305 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
4306
4307         * config/rs6000/altivec.h (vector, pixel, bool): Do not
4308         define as macros #ifdef __APPLE_ALTIVEC__.
4309
4310 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
4311
4312         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
4313         Generate appropriate parallels for vector arguments
4314         passed to vararg functions. (function_arg): make the call
4315         to rs6000_mixed_function_arg for vector args as needed.
4316
4317 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4318
4319         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
4320         EABI_FLOAT_VARARGS_P.
4321
4322 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4323
4324         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
4325         * config/mips/mips.c (override_options): Disable branch likely
4326         instructions if TUNE_MIPS5500.
4327
4328 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4329
4330         * config/mips/mips.c (override_options): Allow the hi and lo registers
4331         to store any integral mode, not just MODE_INTs.
4332
4333 2004-05-07  Paul Brook  <paul@codesourcery.com>
4334
4335         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
4336         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
4337         (TARGET_DOUBLEWORD_ALIGN): Use it.
4338         (WCHAR_TYPE): Define.
4339         (WCHAR_SIZE_TYPE): Define.
4340         (SIZE_TYPE): Define.
4341
4342 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
4343
4344         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
4345         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
4346
4347 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
4348
4349         * loop-doloop.c (doloop_valid_p): Make sure that body
4350         gets freed.
4351
4352 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
4353
4354         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
4355         declaration.
4356         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
4357         (sparc_skip_caller_unimp): New global variable.
4358         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
4359         Use it instead of SKIP_CALLERS_UNIMP_P.
4360         * config/sparc/sparc.md (call expander): Add sanity check.
4361         (call_address_struct_value_sp32): Re-sync with expander.
4362         (call_symbolic_struct_value_sp32): Likewise.
4363         (return peepholes): Use 'sparc_skip_caller_unimp' instead
4364         of custom predicate.
4365
4366 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
4367
4368         PR c++/14962
4369         * c-pragma.c (handle_pragma_redefine_extname): Only change
4370         the assembler name of FUNCTION_DECLs and VAR_DECLs.
4371
4372 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
4373
4374         * optabs.h (enum optab_index): Add new OTI_log1p.
4375         (log1p_optab): Define corresponding macro.
4376         * optabs.c (init_optabs): Initialize log1p_optab.
4377         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
4378         patterns.
4379         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
4380         using log1p_optab.
4381         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
4382         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4383
4384         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
4385
4386         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
4387         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
4388         Prototype here.
4389         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
4390         x87's fyl2xp1 instruction.
4391         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
4392         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
4393         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
4394         log1p  and log1pl built-ins as inline x87 intrinsics.
4395
4396 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
4397
4398         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
4399         * config/arm/freebsd.h: Likewise.
4400         * config/ia64/freebsd.h: Likewise.
4401         * config/sparc/freebsd.h: Likewise.
4402
4403 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
4404
4405         PR optimization/15296
4406         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
4407         getting last consecutive label at a branch.
4408         (relax_delay_slots): Similar, near top of loop.
4409
4410 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4411
4412         PR target/15202
4413         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
4414         register to general register.
4415
4416 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
4417
4418         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
4419         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
4420         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
4421         (STACK_BOUNDARY): Delete.
4422
4423 2004-05-06  Stuart Hastings  <stuart@apple.com>
4424
4425         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
4426         mistakenly clobbered by 1.423.
4427
4428 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
4429
4430         * doc/invoke.texi: Document -mvr4130-align.
4431         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
4432         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
4433         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
4434         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
4435         * config/mips/mips.md: Include sched-int.h.
4436         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
4437         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
4438         (override_options): Enable -mvr4130-align at -O3 and above.
4439         (mips_sim_insn): New variable.
4440         (mips_sim): New structure.
4441         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
4442         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
4443         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
4444         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
4445         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
4446         (mips_reorg): Call vr4130_align_insns.
4447         (vr4130_last_insn): New variable.
4448         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
4449         (vr4130_swap_insns_p, vr4130_reorder): New functions.
4450         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
4451         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
4452         (mips_use_dfa_pipeline_interface): Return true for the same.
4453         * config/mips/4130.md: New file.
4454         * config/mips/mips.md: Include it.  Add a peephole2 to convert
4455         "mult;mflo" into "mtlo;macc".
4456         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
4457         target of maccs.
4458         (*msac_using_macc): New pattern.
4459
4460 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
4461
4462         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
4463         (ir_vr55_hilo): Split into...
4464         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
4465         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
4466         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
4467         Add various multiplication bypasses.
4468         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
4469         multiplication.
4470
4471 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
4472
4473         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
4474         attribute to "XF".
4475
4476 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
4477
4478         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
4479         (fmod_optab, drem_optab): Define corresponding macros.
4480         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
4481         * genopinit.c (optabs): Implement fmod_optab and drem_optab
4482         using fmod?f3 and drem?f3 patterns.
4483         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
4484         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
4485         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
4486         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
4487         flag_unsafe_math_optimizations is set.
4488
4489         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
4490         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
4491
4492         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
4493         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
4494         Prototype here.
4495         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
4496         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
4497         fprem and fprem1 instructions.
4498         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
4499         Rename insn definition to x86_fnstsw_1.
4500         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
4501         x87 instructions.
4502         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
4503         and fmodl built-ins as inline x87 intrinsics.
4504         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
4505         and dreml built-ins as inline x87 intrinsics.
4506
4507 2004-05-05  Roger Sayle  <roger@eyesopen.com>
4508
4509         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
4510
4511 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
4512
4513         PR driver/9822
4514         * doc/invoke.texi (Spec Files): Remove documentation of %c.
4515
4516 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
4517
4518         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
4519         representation.
4520
4521 2004-05-06  Paul Brook  <paul@codesourcery.com>
4522
4523         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
4524         (arm_coproc_mem_operand): ... To this.
4525         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
4526         (arm_legitimate_index_p): Ditto.
4527         (vfp_mem_operand): Rename ...
4528         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
4529         (vfp_secondary_reload_class): Use it.
4530         (output_move_double): Use doubleword load/store instructions.
4531         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
4532         * config/arm/arm.h (TARGET_LDRD): Define.
4533         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
4534         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
4535         New splitter for invalid doubleword loads.
4536         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
4537         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
4538         * doc/md.texi: Document Uy constraint.
4539
4540 2004-05-05  Jan Hubicka  <jh@suse.cz>
4541
4542         PR opt/14980
4543         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
4544         inline clones.
4545
4546 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
4547
4548         PR target/15290
4549         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
4550         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
4551
4552 2004-05-05  Mike Stump  <mrs@apple.com>
4553
4554         * config/darwin-c.c (add_framework): Copy the directory name as it
4555         can be freed later.  Also, ensure we always allocate enough room
4556         for the cached framework information.
4557         (find_subframework_header): Keep track of the directory where the
4558         subframework header was found.
4559         (framework_construct_pathname): Speed up by not trying to re-add a
4560         framework.
4561         * cppfiles.c (search_path_exhausted): Arrange for the missing
4562         header callback to be able to set the directory where the header
4563         was found.
4564         (cpp_get_dir): Add.
4565         * cpplib.h (missing_header_cb): Add a parameter.
4566         (cpp_get_dir): Add.
4567
4568 2004-05-03  Mike Stump  <mrs@apple.com>
4569
4570         * doc/invoke.texi (Directory Options): Document -iquote.
4571         * doc/cpp.texi: Likewise.
4572         * doc/cppopts.texi: Likewise.
4573         * c-opts.c (c_common_missing_argument): Add -iquote processing.
4574         (c_common_handle_option): Likewise.
4575         * c.opt (iquote): Add.
4576         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
4577         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
4578
4579         * c-opts.c (case OPT_I): Deprecate -I- support.
4580         * doc/invoke.texi: Likewise.
4581         * doc/cpp.texi: Likewise.
4582         * doc/cppopts.texi: Likewise.
4583
4584 2004-05-05  Steven Bosscher  <stevenb@suse.de>
4585
4586         * basic-block.h (free_basic_block_vars): Update prototype.
4587         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
4588         argument.
4589         (life_analysis): Update call.
4590         * ifcvt.c (if_convert): Likewise.
4591         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
4592         * passes.c (rest_of_handle_final): Likewise.
4593         (rest_of_compilation): Likewise.
4594         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
4595
4596         * emit-rtl.c (next_real_insn): Use INSN_P.
4597         (prev_real_insn): Likewise.
4598
4599 2004-05-05  Eric Christopher  <echristo@redhat.com>
4600
4601         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
4602         representation.
4603
4604 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
4605
4606         * config/rs6000/rs6000.c (build_opaque_vector_type):
4607         New function.
4608         (rs6000_init_builtins): Use it.
4609
4610 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
4611
4612         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
4613         (func_table): Change type from char ** to vms_func_ref.
4614         (write_rtnbeg):  Update to reflect func_table change.  Use
4615         fde->funcdef_number instead of rtnnum in output.
4616         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
4617
4618 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
4619             Richard Henderson  <rth@redhat.com>
4620
4621         PR target/14899
4622
4623         * c-common.c (vector_types_convertible_p): New function.
4624         * c-typeck.c (comptypes): Recurse on vector types.
4625         (convert_for_assignment): Use vector_types_convertible_p.
4626         (digest_init): Use vector_types_convertible_p to check
4627         validness of constant vector initializers; otherwise treat
4628         them as scalars.
4629         * tree.c (make_or_reuse_type): New.
4630         (build_common_tree_nodes): Use it.
4631         * cp/call.c (standard_conversion): Likewise.
4632         * cp/typeck.c (comptypes): Recurse on vector types.
4633         (convert_for_assignment): Use vector_types_convertible_p.
4634
4635 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
4636
4637         * config/mips/mips.c (override_options): Default to no
4638         generation of branch-likely operations when tuning for
4639         CPUs where they tend to have a negative performance impact
4640         (e.g., SB-1).
4641
4642 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4643
4644         * expr.c (store_constructor_field): Don't call store_constructor
4645         if bitsize is not a multiple of a byte.
4646
4647 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
4648
4649         * reload1.c (inherit_piecemeal_p): New function.
4650         (emit_reload_insns): When reloading a group of hard registers, use
4651         inherit_piecemeal_p to decide whether the values of individual hard
4652         registers can be inherited.
4653
4654 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
4655
4656         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
4657         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
4658         * config/t-linux (LIB2ADDEHDEP): Likewise.
4659
4660 2004-05-04  Paul Brook  <paul@codesourcery.com>
4661
4662         * config/arm/crti.asm: Push an even number of registers.
4663         * config/arm/crtn.asm: And restore them.  Load via sp.
4664
4665 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
4666
4667         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
4668         Collect overhead information.
4669         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
4670         parameter and pass it through.
4671         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
4672         MEM_STAT_DECL parameter and pass it through.
4673         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
4674         MEM_STAT_DECL parameter and pass it through.
4675
4676 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
4677
4678         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
4679
4680         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
4681
4682         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
4683         rs6000_hard_regno_nregs.
4684
4685 2004-05-03  Eric Christopher  <echristo@redhat.com>
4686
4687         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
4688         prologue insn instead of setting up call.
4689         (s390_emit_epilogue): Ditto.
4690         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
4691         (define_constants): Add numbers for above patterns.
4692
4693 2004-05-03  Eric Christopher  <echristo@redhat.com>
4694
4695         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
4696         * config/s390/s390.c (s390_conditional_register_usage): ...here.
4697         * config/s390/s390-protos.h: Prototype.
4698
4699 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
4700
4701         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
4702         assignment.
4703
4704 2004-05-03  Eric Christopher  <echristo@redhat.com>
4705
4706         * config/mips/mips.md: Fix branch length attribute definition.
4707
4708 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
4709
4710         * config.gcc: Remove --enable-altivec support.
4711
4712         * config/rs6000/altivec-defs.h: Remove.
4713
4714 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4715
4716         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
4717         * fixinc/fixincl.x: Regenerate.
4718
4719 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
4720
4721         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
4722         definition.
4723         (log?f2, log10?f2, log2?f2): Reimplement expanders with
4724         float_truncate insn.
4725         (*fxtractsf3, *fxtractdf3): Remove insn definition.
4726         (logb?f2): Reimplement expanders with float_truncate insn.
4727
4728 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
4729
4730         PR 14718
4731         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
4732         force_type_die for CONST_DECL.
4733
4734 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
4735             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4736
4737         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
4738         tm-dwarf2.h to tm_file.
4739         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
4740         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
4741         (ASM_DEBUG_SPEC): Delete.
4742
4743 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
4744
4745         * optabs.h (enum optab_index): Add new OTI_expm1.
4746         (expm1_optab): Define corresponding macro.
4747         * optabs.c (init_optabs): Initialize expm1_optab.
4748         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
4749         patterns.
4750         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
4751         using expm1_optab.
4752         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
4753         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4754
4755         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
4756         to implement expm1, expm1f and expm1l built-ins as inline x87
4757         intrinsics.
4758
4759 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
4760
4761         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
4762         * config/frv/frv.md (*return_true, *return_false): New patterns.
4763
4764 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
4765
4766         * rtl.h (PHI_NODE_P): Remove.
4767
4768 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
4769
4770         PR middle-end/14988
4771         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
4772         when passed -2 as 'align'.
4773         (put_var_into_stack): Use 'bool' as the type for the three local
4774         predicates.  Adjust calls to put_reg_into_stack.
4775         When passed a CONCAT, instruct put_reg_into_stack to use
4776         a consecutive stack slot for the second part.
4777         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
4778         'consecutive_p' parameter.  Turn the three predicates into 'bool'
4779         parameters.  Retrieve the register mode from 'reg'.
4780         When consecutive_p is true, instruct assign_stack_local_1 to use
4781         BITS_PER_UNIT alignment.
4782         (put_addressof_into_stack): Use 'bool' as the type for the two
4783         local predicates. Adjust call to put_reg_into_stack.
4784
4785 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4786
4787         * fold-const.c (fold_convert_const, fold): Add missing
4788         FIX_ROUND_EXPR case.
4789
4790 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
4791
4792         * configure.ac (FLEX, BISON): Only use tools from the build tree
4793         if build equals host.
4794         * configure: Rebuilt.
4795
4796         * config/frv/frv-protos.h (frv_expand_epilogue,
4797         frv_expand_fdpic_call): Add bool argument.
4798         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
4799         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
4800         (frv_expand_epilogue): Use new argument to decide whether to emit
4801         return instruction or copy the return address to LR.
4802         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
4803         sibcalls.
4804         (sibcall_operand): New.
4805         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
4806         PLUS nor LABEL_REF.  Add sibcall_operand.
4807         * config/frv/frv.md (call, call_value): Pass false to
4808         frv_expand_fdpic_call.
4809         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
4810         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
4811         sibcall_value_internal, sibcall_value_fdpicdi): New.
4812         (return_unsigned_true, return_unsigned_false): New.
4813         (epilogue): Adjust call to frv_expand_epilogue.
4814         (sibcall_epilogue): New.
4815
4816         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
4817         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
4818         before redefining them.
4819
4820 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4821
4822         * builtins.c (fold_fixed_mathfn): New function.
4823         (fold_builtin_lround, fold_builtin): Use it.
4824
4825 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
4826
4827         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
4828         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
4829
4830 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
4831
4832         * config/cris/cris.h: Revert my "fix comment typos" patch.
4833
4834 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
4835
4836         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
4837
4838 2004-05-01  Falk Hueffner  <falk@debian.org>
4839
4840         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
4841         builtin_insll): Disallow 0 as first input operand.
4842
4843 2004-05-01  Falk Hueffner  <falk@debian.org>
4844
4845         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
4846
4847 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
4848
4849         PR middle-end/15054
4850         * expr.c (expand_expr_real): Do not call preserve_temp_slots
4851         on a TARGET_EXPR temp.
4852         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
4853         TARGET_EXPR temp slots.
4854
4855 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
4856
4857         * simplify-rtx.c (simplify_ternary_operation): When
4858         converting an IF_THEN_ELSE to a relational op, return
4859         correct mode.
4860
4861 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4862
4863         * builtins.c (fold_builtin_round): Fix comment typo.
4864         (fold_builtin_lround): New function.
4865         (fold_builtin): Use it.
4866
4867 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
4868
4869         PR target/11608
4870         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
4871         more like the one in config/dbxelf.h.
4872
4873 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
4874
4875         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
4876         and adjust definition accordingly.
4877         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
4878         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
4879         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
4880         VECTOR_TYPE.
4881
4882 2004-04-30  Jason Merrill  <jason@redhat.com>
4883
4884         PR c++/14587
4885         * config/i386/winnt.c (associated_type): Look for attributes on
4886         the TYPE_MAIN_VARIANT of *this.
4887         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
4888         apply the attributes to the variants.
4889
4890 2004-04-30  Paul Brook  <paul@codesourcery.com>
4891
4892         * config.gcc: Simplify arm --with-{cpu,tune} test.
4893         * config/arm/arm-cores.def: Document whitespace restrictions.
4894
4895 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4896
4897         PR other/1963
4898         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
4899
4900 2004-04-30  Brian Ford  <ford@vss.fsi.com>
4901             DJ Delorie  <dj@redhat.com>
4902
4903         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
4904         (DWARF2_DEBUGGING_INFO): Define to enable.
4905         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
4906         DWARF2.
4907         * configure.ac (Target-specific assembler checks)
4908         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
4909         relocs.
4910         * configure: Regenerate.
4911         * config.in: Likewise.
4912
4913         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
4914         (ASM_OUPUT_DWARF_OFFSET): Define.
4915
4916 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
4917
4918         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
4919         (s390_emit_call): New function prototype added.
4920         (s390_tls_get_offset): Function removed.
4921         * config/s390/s390.c (s390_function_ok_for_sibcall,
4922         s390_call_saved_register_used_p): New functions.
4923         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
4924         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
4925         (s390_emit_tls_call_insn): New function.
4926         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
4927         emit_call_insn.
4928         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
4929         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
4930         added.
4931         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
4932         register number used to hold the target address for sibcalls.
4933         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
4934         New expanders.
4935         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
4936         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
4937         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
4938         Expanders removed.
4939         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
4940         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
4941         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
4942         ("epilogue"): Changed the call to s390_emit_epilogue to use the
4943         new parameter.
4944
4945 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
4946
4947         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
4948         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
4949         reg-stack.c, varasm.c, config/alpha/ev4.md,
4950         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
4951         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
4952         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
4953         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
4954         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
4955         config/ia64/itanium2.md, config/ip2k/ip2k.c,
4956         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
4957         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
4958         comment typos.
4959
4960 2004-04-30  Paul Brook  <paul@codesourcery.com>
4961
4962         * config.gcc: Default ep9312 to hard-float.
4963         * config/arm/arm-cores.def: Add ARCH field.
4964         * config/arm/arm.c (FL_FOR_ARCH*): Define.
4965         (arm_arch_cirrus): New variable.
4966         (all_cores): Set and use arch.
4967         (all_architectures): Ditto.
4968         (arm_arch_name): New variable.
4969         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
4970         Set and use arm_arch_cirrus.
4971         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
4972         (enum processor_type): Update ARM_CORE define.
4973         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
4974         (CPP_SPEC): Remove %(cpp_cpu_arch).
4975         (CPP_ARCH_DEFAULT_SPEC): Remove.
4976         (CPP_CPU_ARCH_SPEC): Remove.
4977         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
4978         (FPUTYPE_DEFAULT): Don't define here.
4979
4980 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
4981
4982         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
4983         updates too.
4984
4985 2004-04-30  Paul Brook  <paul@codesourcery.com>
4986
4987         * arm.c (arm_needs_doubleword_align): Use mode alignment.
4988
4989 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
4990
4991         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
4992         vec_sububs.
4993         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
4994         duplicates.
4995
4996 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
4997
4998         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
4999         atan2?f3 expanders.
5000
5001 2004-04-29  Nick Clifton  <nickc@redhat.com>
5002
5003         Bug 14093
5004         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
5005         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
5006         Delete static from definition.
5007         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
5008
5009 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
5010
5011         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
5012         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
5013         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
5014         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
5015
5016 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
5017
5018         * commom.opt (Wfatal-errors): Add it.
5019         * diagnostic.c (flag_fatal_errors): Define it.
5020         (diagnostic_action_after_output): Check for flag_fatal_errors.
5021         * flags.h (flag_fatal_errors): Declare it.
5022         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
5023         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
5024
5025 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
5026
5027         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
5028         blocks which have kill flag set.
5029
5030 2004-04-29  Ben Elliston  <bje@au.ibm.com>
5031
5032         * configure.ac (--with-as): Abort if user-supplied assembler
5033         cannot be executed.
5034         (--with-ld): Likewise for the linker.
5035         * configure: Regenerate.
5036
5037 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5038
5039         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
5040         isn't NULL before using it.
5041
5042 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
5043
5044         PR target/15189
5045         * config/mips/mips.md (load_df_low): Use default length.
5046         (load_df_high, store_df_high): Likewise.
5047
5048 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
5049
5050         * config/mips/mips.md, config/mips/sb1.md,
5051         config/rs6000/rs6000.c: Fix comment typos.
5052
5053 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
5054
5055         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
5056         Fix comment typos.
5057
5058 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
5059
5060         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
5061         (delete_if_ordinary): Use above macro.
5062         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
5063         Update copyright.
5064         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
5065
5066 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
5067
5068         * c-decl.c (get_parm_info): Use the correct tag keywords when
5069         warning about type declarations in prototypes.
5070
5071 2004-04-29  Paul Brook  <paul@codesourcery.com>
5072
5073         * config.gcc: Pull list of cores from arm-cores.def.
5074
5075 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
5076
5077         * combine.c (combine_simplify_rtx): Adjust call to use
5078         simplify_relational_operation.  Do not use SELECT_CC_MODE
5079         when a comparison already has a MODE_CC mode.
5080
5081 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
5082
5083         (simplify_set): simplify_relational_operation may now
5084         return another relational expression.
5085         * cse.c (fold_rtx): simplify_relational_operation now
5086         takes of computing the comparison mode.
5087         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
5088         remove dead code.
5089         (do_compare_rtx_and_jump): Likewise.
5090         * integrate.c (subst_constants): simplify_relational_operation
5091         may now return another relational expression.
5092         * simplify-rtx.c (simplify_gen_relational): Move most code to
5093         the new simplify_relational_operation and
5094         simplify_relational_operation_1 functions.
5095         (simplify_relational_operation): Rewritten.
5096         (simplify_relational_operation_1): New function.
5097         (simplify_ternary_operation): simplify_relational_operation
5098         may now return another relational expression.
5099         (simplify_rtx): Remove unnecessary temp variable.
5100
5101 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
5102
5103         * reg-stack.c (swap_to_top): New function.
5104         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
5105         swap_to_top().
5106         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
5107         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
5108         UNSPEC_FSCALE_EXP.
5109
5110         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
5111         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
5112         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
5113         x87's fscale insn.
5114         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
5115         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
5116         patterns.
5117
5118 2004-04-28  Serge Belyshev  <1319@bot.ru>
5119
5120         PR 14944
5121         * coverage.c (read_counts_file): Fix usage of warning () call.
5122         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
5123
5124 2004-04-28  Ben Elliston  <bje@au.ibm.com>
5125
5126         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
5127         options with "-" in the option index.
5128         (SPARC Options): Likewise.
5129         (M32R/D Options): Likewise.
5130
5131 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5132
5133         * convert.c (convert_to_integer): Convert (long)round -> lround,
5134         etc.
5135
5136 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
5137
5138         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
5139         Return false if we do not have fp register.
5140         (addrs_ok_for_quad_peep): Rename to ...
5141         (mems_ok_for_quad_peep): this.
5142         Add check for volatile memory.
5143         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
5144         Rename to ...
5145         (mems_ok_for_quad_peep): this.
5146         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
5147         to peephole2's.
5148         (lfq_power2): New instruction.
5149         (stfq_power2): Likewise.
5150
5151 2004-04-28  Jan Hubicka  <jh@suse.cz>
5152
5153         PR c/15004
5154         * function.c (do_warn_unused_parameter): Break out form ...
5155         (expand_function_end): ... here; warn only when not using cgraphunit.
5156         * function.h (do_warn_unused_parameter): Declare.
5157         * cgraphunit.c: Include function.h.
5158         (cgraph_finalize_function): Do unused parameter warning.
5159         * Makefile.in (cgraphunit.o): Depend on function.h
5160
5161 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
5162
5163         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
5164         calling install-info on $(DESTDIR)$(infodir)/dir already being
5165         present.
5166
5167 2004-04-28  Paul Brook  <paul@codesourcery.com>
5168
5169         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
5170
5171 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
5172
5173         * gcse.c (find_moveable_store): Do not accept store insns with
5174         REG_EH_REGION note.
5175
5176 2004-04-28  Paul Brook  <paul@codesourcery.com>
5177
5178         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
5179         * function.c (assign_temp): Ditto.
5180         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
5181
5182 2004-04-28  Paul Brook  <paul@codesourcery.com>
5183
5184         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
5185
5186 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
5187
5188         * var-tracking.c (variable_different_p): Add a parameter
5189         compare_current_location, compare current location of variable parts
5190         if it is true.
5191         (dataflow_set_different_1): Pass compare_current_location == false.
5192         (dataflow_set_different_2): Pass compare_current_location == false.
5193         (emit_notes_for_differences_1): Pass compare_current_location == true.
5194
5195 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
5196
5197         * config/s390/s390.md ("casesi"): Mark jump table access as
5198         non-trapping and unchanging.
5199
5200 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5201
5202         PR debug/14829
5203         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
5204         callers.
5205         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
5206         number for indexing hard_regno_nregs array.
5207
5208 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
5209
5210         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
5211         * config/darwin-crt2.c: Only have contents on __ppc__.
5212
5213 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
5214
5215         * config/xtensa/xtensa.c (call_insn_operand): Check
5216         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
5217         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
5218         * config/xtensa/xtensa.md (call, call_value): Likewise.
5219
5220 2004-04-27  Wu Yongwei  <adah@sh163.net>
5221
5222         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
5223         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
5224         (__gthread_mutex_init_function): Replace CreateMutex with
5225         initialization of custom mutex using CreateSemaphore.
5226         (__gthread_mutex_lock): Use InterlockedIncrement.
5227         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
5228         (__gthread_mutex_unlock): Use InterlockedDecrement and
5229         ReleaseSemaphore to unlock
5230         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
5231         __gthread_mutex_lock, __gthread_mutex_trylock,
5232         __gthread_mutex_unlock): Adjust to match inline versions in
5233         gthr-win32.h.
5234
5235 2004-04-27  Paul Brook  <paul@codesourcery.com>
5236
5237         * config/arm/arm.c (arm_promote_prototypes): New function.
5238         (TARGET_PROMOTE_PROTOTYPES): Use it.
5239
5240 2004-04-27  Paul Brook  <paul@codesourcery.com>
5241
5242         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
5243
5244 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
5245
5246         * config/alpha.c (alpha_end_function): For OpenVMS gas,
5247         correctly output .pdesc directive before .end.
5248
5249 2004-04-26  James E Wilson  <wilson@specifixinc.com>
5250
5251         Bug 14927
5252         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
5253         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
5254
5255 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
5256
5257         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
5258         * config/pa/pa-hpux10.h: Likewise.
5259         * config/pa/pa-hpux11.h: Likewise.
5260
5261 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
5262
5263         * doc/invoke.texi (Overall Options): Document default for -o
5264         for PCH files.
5265
5266 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5267
5268         * builtins.c (expand_builtin_update_setjmp_buf): New function.
5269         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
5270         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
5271
5272 2004-04-26  Paul Brook  <paul@codesourcery.com>
5273
5274         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
5275
5276 2004-04-26  Paul Brook  <paul@codesourcery.com>
5277
5278         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
5279
5280 2004-04-25  Roger Sayle  <roger@eyesopen.com>
5281
5282         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
5283         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
5284         X % -1 as 0.
5285
5286 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
5287
5288         PR bootstrap/15141
5289         * except.c (connect_post_landing_pads): Delete insns after the
5290         barrier when generating a unwind_resume_libfunc call.
5291
5292 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5293
5294         PR/c++ 15119
5295         * tree.c (substitute_placeholder_in_expr, case 4): New case,
5296         for TARGET_EXPR.
5297
5298 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5299
5300         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5301         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
5302         inhibit_libc is defined.
5303
5304 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
5305
5306         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
5307         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
5308         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
5309         (TARGET_SCHED_VARIABLE_ISSUE): Define.
5310         (mips_adjust_cost): Move later in file, next to other sched hooks.
5311         (mips_macc_chains_last_hilo): New variable.
5312         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
5313         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
5314         * config/mips/mips.md (may_clobber_hilo): New attribute.
5315
5316 2004-04-24  Roger Sayle  <roger@eyesopen.com>
5317             Bruce Korb  <bkorb@gnu.org>
5318
5319         * fixinc/inclhack.def (aix_syswait_2): New fix.
5320         * fixinc/fixincl.x: Regenerate.
5321         * fixinc/tests/base/sys/wait.h: Update for new test.
5322
5323 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
5324
5325         PR target/14960
5326         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
5327         to non_fixed_size, and leave out fixed_size from the sum.
5328         (generate_set_vrsave): Correct clobbers.
5329         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
5330         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
5331         (rs6000_libcall_value): Likewise.
5332         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
5333         (FUNCTION_ARG_REGNO_P): Likewise.
5334
5335 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
5336
5337         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
5338         is a CONST_INT.
5339         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
5340         with NARROW_OP1 instead of OP1.
5341
5342 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
5343
5344         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
5345         and __s390x__ hosts.
5346
5347 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5348
5349         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
5350         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
5351         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
5352         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
5353         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
5354         * builtins.c (expand_builtin_fork_or_exec): New.
5355         (expand_builtin): Call it.
5356         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
5357         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
5358         * c-common.c (PID_TYPE): New macro.
5359         (c_common_nodes_and_builtins): Initialize pid_type_node.
5360         * calls.c (special_function_p): Do not handle fork and exec.
5361         (expand_call): Do not handle ECF_FORK_OR_EXEC.
5362         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5363         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
5364         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5365         __gcov_execv, __gcov_execvp, __gcov_execve): New.
5366         * tree.h (enum tree_index): Add TI_PID_TYPE.
5367         (pid_type_node): New macro.
5368         (ECF_FORK_OR_EXEC): Removed.
5369
5370 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
5371
5372         PR optimization/13985
5373         * cfgloopmanip.c (fix_loop_placements): New prototype.
5374         Call fix_bb_placements on the preheader of loops that have
5375         been reparented.
5376         (remove_path): Adjust call to fix_loop_placements.
5377
5378 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
5379
5380         * config/darwin7.h: New file.
5381         * config.gcc (*-*-darwin*): Add darwin7.h if the
5382         version is greater than 6.
5383         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
5384         (MATH_LIBRARY): Wrap in ifdefs.
5385
5386 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
5387
5388         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
5389         loading iWMMXt registers with a frame pointer.  Use post-increment
5390         without a frame pointer.
5391         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
5392
5393 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
5394
5395         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
5396         mode" rather than "-funit-at-a-time" since -O2 enables it
5397         without requiring -f* options.  Refer to -fprofile-generate and
5398         -fprofile-use correctly.  Move -funit-at-a-time among options
5399         enabled by -O.  Add information about unit-at-a-time caveats.
5400
5401 2004-04-22  Per Bothner  <per@bothner.com>
5402
5403         * line-map.h (struct line_maps):  New field highest_line.
5404         (linemap_position_for_column):  Make non-inline function.
5405         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
5406         * line-map.c (linemap_init):  Clear highest_line field.
5407         (linemap_add):  Set highest_line field.
5408         (linemap_line_start):  Minor optimization - use highest_line field.
5409         Reduce maximum column hint to 10000.  Update highest_line field.
5410         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
5411         * cpphash.h (struct cpp_reader):  Remove line field - instead use
5412         line_table->highest_line.
5413         (saved_line):  Remove unused field.
5414         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
5415         Use  line_table's highest_line field instead of cpp_reader's line.
5416         * cpplib.c (start_directive):  Likewise use highest_line field.
5417         (do_line, do_linemarker):  Likewise just use newest map.
5418         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
5419         * cpperror.c (cpp_error):  Likewise use highest_line field.
5420         * cppfiles.c (open_file_failed:  Likewise.
5421         (cpp_make_system_header):  Likewise use newest map and highest_line.
5422         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
5423         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
5424         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
5425         _cpp_lex_direct):  Likewise use highest_line.
5426         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
5427         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
5428         and use newest map.
5429         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
5430         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
5431         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
5432
5433 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
5434
5435         PR bootstrap/14992
5436         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
5437         * config/linux.h (USE_LD_AS_NEEDED): Define.
5438         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
5439         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
5440         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
5441         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
5442         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
5443         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
5444         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
5445
5446 2004-04-22  Per Bothner  <per@bothner.com>
5447
5448         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
5449         Fixes PR preprocessor/15067.
5450
5451 2004-04-23  Andreas Schwab  <schwab@suse.de>
5452
5453         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
5454         avoid aliasing warning.
5455
5456 2004-04-22  Jan Hubicka  <jh@suse.cz>
5457             Mostafa Hagog <mustafa@il.ibm.com>
5458
5459       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
5460       * cfgloopanal.c (expected_loop_iterations): Change the return value
5461
5462 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
5463
5464         * cselib.h (struct elt_loc_list): Remove canon_loc field.
5465         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
5466         (cselib_invalidate_mem): Remove all canon_loc and canon_x
5467         traces.
5468
5469 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
5470
5471         Revert
5472         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
5473
5474                 * var-tracking.c (variable_part_different_p): Variable parts
5475                 differ when the most recent locations differ.
5476
5477 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
5478
5479         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
5480         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
5481         (embedded_pic_offset): Delete.
5482         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
5483         MASK_* constants.
5484         (TARGET_EMBEDDED_PIC): Delete.
5485         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
5486         (ASM_SPEC): Remove -membedded-pic.
5487         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
5488         (ASM_OUTPUT_CASE_LABEL): Likewise.
5489         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
5490         * config/mips/windiss.h (ASM_SPEC): Likewise.
5491         * config/mips/mips.c (struct machine_function): Remove
5492         embedded_pic_fnaddr_rtx.
5493         (TARGET_ENCODE_SECTION_INFO): Remove override.
5494         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
5495         (override_options): Remove -membedded-pic handling.
5496         (print_operand): Remove handling of '%S'.
5497         (mips_select_section: Remove -membedded-pic handling.
5498         (mips_encode_section_info): Delete.
5499         (mips_output_conditional_branch): Remove mention of -membedded-pic.
5500         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
5501         -membedded-pic handling.
5502         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
5503
5504 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
5505
5506         * var-tracking.c (frame_base_decl): Remove useless GTY.
5507
5508 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
5509
5510         * config/rs6000/rs6000.c (rs6000_override_options): Error when
5511         user wants altivec and e500 instructions.
5512
5513 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
5514
5515         PR target/14813
5516         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
5517         in .init_array section to ...
5518         * config/ia64/crtbegin.asm: Here.
5519
5520         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
5521         and hidden if HAVE_INITFINI_ARRAY is defined.
5522
5523 2004-04-21  James E Wilson  <wilson@specifixinc.com>
5524
5525         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
5526         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
5527         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
5528         (fp_register_operand, lo_operand): New.
5529         (mips_rtx_costs): Add TUNE_SB1 support.
5530         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
5531         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
5532         (mips_multipass_dfa_lookahead): New.
5533         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
5534         TUNE_SB1): New.
5535         (TARGET_SWITCHES): Add -mfp-exceptions support.
5536         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
5537         (BRANCH_COST): Fix whitespace.
5538         * config/mips/mips.md: Include sb1.md.
5539         * config/mips/sb1.md: New file.
5540         * doc/invoke.texi: Document -mfp-exceptions.
5541
5542         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
5543         comment.
5544         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
5545         (fixincl.o-warn): Delete.
5546
5547 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
5548
5549         * config/rs6000/rs6000 (print_operand) ['z']:
5550         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
5551
5552 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
5553
5554         * config.gcc: Support --with-arch=iwmmxt for ARM.
5555
5556 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5557
5558         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
5559         in two more places; remove unneeded force_reg
5560
5561 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
5562
5563         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
5564         for TARGET_MACHO.
5565         (print_operand): For TARGET_MACHO check to see if we need a stub
5566         and output one if we need it.
5567
5568         PR debug/15033
5569         * dwarf2out.c (rtl_for_decl_location): Check for NULL
5570         rtl.
5571
5572 2004-04-20  James E Wilson  <wilson@specifixinc.com>
5573
5574         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
5575         (vall_value_gp): Likewise.
5576
5577 2004-04-20  DJ Delorie  <dj@redhat.com>
5578
5579         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
5580         variables stored in word registers, then in memory.
5581
5582 2004-04-20  Eric Christopher  <echristo@redhat.com>
5583
5584         * cp/parser.c (cp_parser_declaration): Move translate
5585         up before tokens are lexed.
5586
5587 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
5588
5589         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
5590         (asin_optab, acos_optab): Define corresponding macros.
5591         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
5592         * genopinit.c (optabs): Implement asin_optab and acos_optab
5593         using asin?f2 and acos?f2 patterns.
5594         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
5595         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
5596         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
5597         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5598
5599         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
5600         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
5601         acos, acosf and acosl built-ins as inline x87 intrinsics.
5602
5603 2004-04-20  Paul Brook  <paul@codesourcery.com>
5604
5605         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
5606
5607 2004-04-20  Paul Brook  <paul@codesourcery.com>
5608
5609         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
5610
5611 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
5612
5613         Revert part of 2004-04-17 change that moved -frename-registers
5614         to -O1.  -frename-registers is buggy.
5615
5616         * toplev.c (flag_rename_registers): Initialize to 0.
5617         * doc/invoke.texi (Optimize options): Move -frename-registers
5618         to "Not triggered by any -O level" section.  Adjust commentary
5619         accordingly.
5620
5621 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
5622
5623         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
5624
5625 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
5626
5627         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
5628         for mflo and mfhi instructions.
5629         (mips_output_move): Remove mflo and mfhi handling.
5630         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
5631         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
5632         Likewise various define_peephole2s.
5633         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
5634         alternatives.
5635         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
5636         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
5637         (mfhilo_di, mfhilo_si): New patterns.
5638
5639 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
5640
5641         * function.c (assign_parms): Force
5642         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
5643
5644 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
5645
5646         * var-tracking.c (variable_part_different_p): Variable parts differ
5647         when the most recent locations differ.
5648
5649 2004-04-19  James E Wilson  <wilson@specifixinc.com>
5650
5651         * rtl.h (reg_set_last): Delete declaration.
5652         * rtlanal.c (reg_set_last): Delete.
5653
5654 2004-04-19  Roger Sayle  <roger@eyesopen.com>
5655
5656         * fold-const.c (fold_convert): Make function extern/public.
5657         * tree.h (fold_convert): Prototype here.
5658         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
5659         expand_builtin_strrchr, expand_builtin_strpbrk,
5660         expand_builtin_mempcpy, expand_builtin_bcopy,
5661         expand_builtin_bzero, expand_builtin_memcmp,
5662         expand_builtin_strcmp, expand_builtin_strncmp,
5663         stabilize_va_list, expand_builtin_sprintf,
5664         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
5665         fold_builtin_exponent, fold_builtin_mempcpy,
5666         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
5667         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
5668         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
5669
5670 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
5671
5672         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
5673         (move_from_CR_gt_bit): New.
5674         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
5675         E500.
5676         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
5677         E500.
5678
5679         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
5680         (tstsfeq_gpr): Same.
5681         (cmpsfgt_gpr): Same.
5682         (tstsfgt_gpr): Same.
5683         (cmpsflt_gpr): Same.
5684         (tstsflt_gpr): Same.
5685         (e500_cceq_ior_compare): New.
5686         (e500_flip_gt_bit): New.
5687
5688         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
5689         (print_operand): Add 'c' and 'D'.
5690         (rs6000_generate_compare): Rewrite to generate correct rtl.
5691         (rs6000_emit_sCOND): Handle E500.
5692         (output_cbranch): Adjust for changes in rs6000_generate_compare.
5693         (output_e500_flip_gt_bit): New.
5694
5695         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
5696         Protoize.
5697
5698 2004-04-19  Eric Christopher  <echristo@redhat.com>
5699
5700         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
5701
5702 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
5703
5704         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
5705         fix information.
5706
5707 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5708
5709         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
5710         download URL.
5711
5712 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
5713
5714         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
5715         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
5716
5717 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
5718
5719         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
5720         (fold_builtin): Update caller to match.
5721
5722         PR bootstrap/15009
5723         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
5724
5725         PR bootstrap/14999
5726         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
5727
5728 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5729
5730         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
5731
5732         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
5733         (expand_mult_highpart_optab): Likewise.
5734         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
5735
5736 2004-04-19  Paul Brook  <paul@codesourcery.com>
5737
5738         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
5739         floatunssisf2, floatunssidf2): New patterns.
5740
5741 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
5742
5743         PR other/14918
5744         * doc/invoke.texi (-fprofile-generate): Document requirement to
5745         use -fprofile-generate when linking.
5746
5747         * doc/extend.texi (Strong Using): Warn users against using this
5748         feature.
5749
5750 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
5751
5752         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
5753         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
5754         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
5755         * config/mips/mips.c (struct mips16_constant): Renamed from struct
5756         constant.  Propogate change throughout file.
5757         (struct machine_function): Remove insns_len.
5758         (mips_string_length, mips16_strings, string_constants): Delete.
5759         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
5760         when generating mips16 code.  Remove special mips16 treatment of
5761         string constants.
5762         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
5763         to have the form LABEL+CONSTANT.
5764         (mips_symbolic_address_p): Fix comment.
5765         (m16_usym8_4, m16_usym5_4): Delete.
5766         (mips_output_function_epilogue): Remove mips16 string handling.
5767         (mips_output_mi_thunk): Call mips16_lay_out_constants.
5768         (mips_select_section, mips_encode_section_info): Remove mips16
5769         string handling.
5770         (struct mips16_constant_pool): New.
5771         (add_constant): Take a mips16_constant_pool structure.  Keep pool
5772         sorted into order of ascending mode size.  Keep track of the highest
5773         possible start address, taking padding and the masking of the base PC
5774         value into account.
5775         (dump_constants_1): New function, split out from dump_constants.
5776         Handle vector constants.  Use gen_consttable_{int,float} rather than
5777         separate functions for each mode.
5778         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
5779         rather than separate functions for each alignment.
5780         (mips_find_symbol): Delete.
5781         (mips16_insn_length): New function, split out from
5782         mips16_lay_out_constants.
5783         (mips16_rewrite_pool_refs): New function.
5784         (mips16_lay_out_constants): Rework. Remove string handling.
5785         Always create an inline constant pool.
5786         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
5787         (UNSPEC_ALIGN): New constants.
5788         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
5789         (UNSPEC_ALIGN_[248]): Delete.
5790         (consttable_int, consttable_float, align): New patterns.
5791         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
5792
5793 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
5794
5795         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
5796         __unn_args_eq.
5797
5798 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
5799
5800         PR target/14715
5801         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
5802         with STARTING_FRAME_OFFSET.
5803
5804 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
5805
5806         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
5807         * config/mips/mips.c (macc_msac_operand): New function.
5808         * config/mips/mips.md (*msac): Move after *macc.
5809         (*msac2): New.  Generalize macc-related peepholes so that they apply
5810         to msac too.
5811
5812 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
5813
5814         * opts.c (decode_options): Do not enable flag_rename_registers
5815         and flag_web at -O3.
5816         * toplev.c (flag_rename_registers): Initialize
5817         flag_rename_registers and flag_web to
5818         AUTODETECT_FLAG_VAR_TRACKING.
5819         (default_debug_hooks): New global.
5820         (process_options): Initialize default_debug_hooks.  Warn if
5821         -fvar-tracking specified but not supported by the current
5822         debug format.  Do not run var tracking at -O0 or if not
5823         supported by the current debug format, even if
5824         -fvar-tracking was given.  If -fno-rename-registers
5825         is not specified, always run register renaming if var
5826         tracking is supported by the default debugging information
5827         format for the target, and we are at -O1 or higher; similarly
5828         for -fweb, but only at -O2 or higher.
5829         * doc/invoke.texi (Optimize Options): Document this.
5830
5831 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
5832
5833         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
5834         * configure: Regenerate.
5835
5836 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
5837
5838         * gcc.c (used_arg): Check whether an option has been removed.
5839
5840 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5841
5842         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
5843         debugging on Solaris 7 and up.
5844
5845 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5846
5847         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
5848         IRIX 5 port.
5849         Remove -save-temps workaround, handled automatically.
5850         Require GNU binutils 2.15 for debugging.
5851         Remove SGI make warnings since GNU make is now required.
5852         (Specific, mips-sgi-irix6): Some markup fixes.
5853         Describe MIPSpro C problems and workarounds.
5854         Mention working O32 ABI support.
5855         Recommend GNU as 2.15 for O32 with debugging.
5856         Remove description of fixed structure pass/return bug.
5857
5858 2004-04-16  DJ Delorie  <dj@redhat.com>
5859
5860         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
5861         TYPE_FIELDS.
5862         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
5863
5864 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5865
5866         * pa.md: Remove unnecessary declarations for asm_out_file.
5867
5868         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
5869         SAR register.  Fix comment.
5870         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
5871         (%cr11).
5872
5873         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
5874
5875 2004-04-16  Nick Clifton  <nickc@redhat.com>
5876
5877         * config/arm/arm.c (arm_override_options): Revert previous patch.
5878         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
5879         be safely built.
5880
5881 2004-04-16  Kazuhiro Inaoka <inaoka dot kazuhiro at renesas dot com>
5882
5883         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
5884         bug.
5885         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
5886         TARGET_DEFAULT): Changed. Ditto.
5887         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
5888         TARGET_ENDIAN_DEFAULT): Added. Ditto.
5889         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
5890         (TARGET_ENDIAN_DEFAULT): Added.
5891
5892 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5893
5894         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
5895         ATTR_CONST_NOTHROW_LIST.
5896
5897 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5898
5899         PR/middle-end 14915
5900         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
5901         BITS_BIG_ENDIAN.
5902
5903 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
5904
5905         * ra-debug.c (ra_print_rtx): Add break's to case legs.
5906
5907 2004-04-14  James E Wilson  <wilson@specifixinc.com>
5908
5909         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
5910
5911 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
5912
5913         * libada-mk.in: New file.
5914         * configure.ac: Create libada-mk from libada-mk.in.
5915         * configure: Regenerate.
5916
5917 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
5918
5919         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
5920         (logb_optab, ilogb_optab): Define corresponding macros.
5921         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
5922         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
5923         using logb?f2 and ilogb?i2 patterns.
5924         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
5925         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
5926         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
5927         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5928
5929         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
5930         and UNSPEC_XTRACT_EXP.
5931
5932         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
5933         patterns to implement fxtract x87 instruction.
5934         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
5935         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
5936         intrinsics.
5937         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
5938         x87's fxtract insn.
5939
5940 2004-04-14  Eric Christopher  <echristo@redhat.com>
5941
5942         * config/mips/t-elf: Enable multilibs by default.
5943
5944 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
5945
5946         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
5947         previous fix to check HAVE_return at runtime too.
5948
5949 2004-04-14  Nick Clifton  <nickc@redhat.com>
5950
5951         * config/arm/arm.c (arm_override_options): If the user has not
5952         specified an ABI, then default to AAPCS for the iWMMXt processor.
5953         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
5954         * config/arm/t-xscale-coff: Likewise.
5955
5956 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5957
5958         * builtins.c (fold_builtin_isdigit): New.
5959         (fold_builtin): Handle BUILT_IN_ISDIGIT.
5960         * defaults.h: Add TARGET_DIGIT0 and sort.
5961         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
5962
5963 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5964
5965         * builtins.c (fold_builtin_cabs, fold_builtin): Use
5966         `mathfn_built_in' to determine the new builtin.
5967         * fold-const.c (fold): Likewise.
5968
5969 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
5970
5971         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
5972         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
5973         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
5974         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
5975         (ASM_SPEC): Update accordingly.
5976         * config/mips/mips.c: Update after above renaming.
5977         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
5978         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
5979
5980 2004-04-13  James E Wilson  <wilson@specifixinc.com>
5981
5982         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
5983         increment errorcount and return false instead of true.
5984
5985 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
5986
5987         * optabs.c (expand_twoval_unop): Reorder function arguments.
5988         * builtins.c (expand_builtin_mathfn_3): Update calls to
5989         expand_twoval_unop.
5990
5991         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
5992         and UNSPEC_TAN_TAN. Add missing comment.
5993
5994         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
5995         patterns to implement fptan x87 instruction.
5996         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
5997         and tanl built-ins as inline x87 intrinsics. Define corresponding
5998         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
5999         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
6000         x87's fptan insn.
6001
6002 2004-03-13  Richard Henderson  <rth@redhat.com>
6003
6004         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
6005         for LABEL_REFs.
6006
6007         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
6008         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
6009         * doc/invoke.texi: Update to match.
6010
6011         * varasm.c (unlikely_text_section): Use assemble_align instead of
6012         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
6013         correct alignment argument.
6014
6015 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
6016
6017         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
6018         after setting reg_last_reload_reg for optional output reloads.
6019
6020 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
6021
6022         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
6023         Definition of these two macros are corrected by adding
6024         matchine right paren.
6025
6026 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
6027
6028         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
6029
6030 2004-04-12  Roger Sayle  <roger@eyesopen.com>
6031
6032         * config/i386/i386.c (output_387_reg_move): New function.
6033         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
6034         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
6035         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
6036         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
6037         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
6038
6039 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6040
6041         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
6042         TYPE_DECL.
6043         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
6044         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
6045         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
6046         Use skip_simple_arithmetic to find SAVE_EXPR.
6047         (force_type_save_exprs, force_type_save_exprs_1): New functions.
6048         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
6049         Properly chain multiple pointers.
6050         (copy_tree_r): Copy a TYPE_DECL.
6051         * tree.c (variably_modified_type_p): Add some missing tests and
6052         make some other minor changes.
6053         * tree.h (force_type_save_exprs): New declaration.
6054
6055 2004-04-12  Roger Sayle  <roger@eyesopen.com>
6056
6057         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
6058         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
6059         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
6060         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
6061         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
6062         x%-1 into 0 (or x&0 if x has side-effects).
6063
6064 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
6065
6066         * config/rs6000/rs6000.md: Document why a pattern is not
6067         available.
6068
6069         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
6070         of floats on the E500.
6071         (branch_positive_comparison_operator): Do not allow NE even on the
6072         E500.
6073
6074 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
6075
6076         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
6077         in_text_unlikely_section to in_unlikely_text_section.
6078
6079 2004-04-11  Roger Sayle  <roger@eyesopen.com>
6080
6081         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
6082         calling convention to allow a NULL_TREE to be returned.  Factor
6083         sanity checks from callers, return NULL_TREE when appropriate.
6084         (fold): Handle COMPOUND_EXPR operands of binary expressions
6085         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
6086         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
6087         calls to fold_binary_op_with_conditional_arg.
6088
6089 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6090
6091         * config/mips/iris5.h (current_section_flags):  Add
6092         in_unlikely_executed_text and default case.
6093
6094 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
6095
6096         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
6097         failure on solaris. Place ifdef HAVE_return around gen_ret call.
6098         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
6099         HAVE_return and place it around the place where it is needed.
6100
6101 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
6102
6103         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
6104         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
6105         and NORMAL_TEXT_SECTION_NAME.
6106         (unlikely_text_section): Check targetm.have_named_sections
6107         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
6108         instead of SECTION_FORMAT_STRING.
6109         * config/mips/iris5.h (current_section_name): Add
6110         in_unlikely_executed_text case and move the abort into the switch.
6111         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
6112         (NORMAL_TEXT_SECTION_NAME): Remove.
6113         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
6114         (SECTION_FORMAT_STRING): Remove.
6115         * defaults.h (SECTION_FORMAT_STRING): Remove.
6116         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
6117         (SECTION_FORMAT_STRING): Remove.
6118
6119 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
6120
6121         * c-typeck.c (common_type): Prefer long long to long when same
6122         precision.
6123
6124 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
6125
6126         PR 14887
6127         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
6128         mode argument.
6129         * config/ia64/ia64.c (ia64_hpux_file_end): Check
6130         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
6131
6132 2004-04-09  Roger Sayle  <roger@eyesopen.com>
6133
6134         * simplify-rtx.c (mode_signbit_p): New function to check whether
6135         an RTX is an immediate constant that represents the most significant
6136         bit of a given machine mode.
6137         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
6138         C is the sign bit.
6139         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
6140         when C2 is the sign bit.
6141         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
6142         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
6143         sign bit.
6144
6145 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6146
6147         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
6148         TYPE_MODE.
6149
6150 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
6151
6152         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
6153         of TREE_READONLY for types.
6154
6155 2004-04-09  Caroline Tice  <ctice@apple.com>
6156
6157         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
6158         (struct basic_block_def):  Add new field, partition.
6159         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
6160         definitions.
6161         (partition_hot_cold_basic_blocks): Add extern function
6162         declaration.
6163         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
6164         include statements.
6165         (N_ROUNDS): Increase the maximum number of rounds by 1.
6166         (branch_threshold): Add array value for new round.
6167         (exec_threshold): Add array value for new round.
6168         (push_to_next_round_p): New function.
6169         (add_unlikely_executed_notes): New function.
6170         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
6171         (mark_bb_for_unlikely_executed_section): New function.
6172         (add_labels_and_missing_jumps): New function.
6173         (add_reg_crossing_jump_notes): New function.
6174         (fix_up_fall_thru_edges): New function.
6175         (find_jump_block): New function.
6176         (fix_crossing_conditional_branches): New function.
6177         (fix_crossing_unconditional_branches): New function.
6178         (fix_edges_for_rarely_executed_code): New function.
6179         (partition_hot_cold_basic_blocks): New function.
6180         (find_traces):  Add an extra round for partitioning hot/cold
6181         basic blocks.
6182         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
6183         and only cold blocks, into the last (extra) round of collecting traces.
6184         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
6185         over crossing edges.
6186         (bb_to_key):  Add code to correctly identify cold blocks when
6187         doing partitioning.
6188         (connect_traces): Modify to connect all the non-cold traces first, then
6189         go back and connect up all the cold traces.
6190         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
6191         * cfg.c (entry_exit_blocks): Add initialization for partition field in
6192         entry and exit blocks.
6193         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
6194         if we are doing hot/cold partitioning.
6195         * cfgcleanup.c (cfglayout.h): Add new include statement.
6196         (try_simplify_condjump): Modify to not attempt on blocks with jumps
6197         that cross section boundaries.
6198         (try_forward_edges): Likewise.
6199         (merge_blocks_move_predecessor_nojumps): Likewise.
6200         (merge_blocks_move_successor_nojumps): Likewise.
6201         (merge_blocks_move): Likewise.
6202         (try_crossjump_to_edge): Modify to not attempt after we have done
6203         the block partitioning.
6204         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
6205         cross section boundaries.
6206         (try_optimize_cfg): Likewise.
6207         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
6208         jumps that cross section boundaries.
6209         * cfglayout.c (flags.h): Add new include statement.
6210         (update_unlikely_executed_notes):  New function.
6211         (fixup_reorder_chain):  Add code so when a new jumping basic block is
6212         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
6213         updated appropriately.
6214         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
6215         introduced by this optimization.
6216         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
6217         extern function declaration.
6218         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
6219         list of notes that can be deleted.
6220         (create_basic_block_structure):  Add initialization for partition field.
6221         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
6222         section boundaries.
6223         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
6224         cross section boundaries.
6225         (commit_one_edge_insertion): Add code so newly created basic block
6226         ends up in correct (hot or cold) section.  Modify to disallow
6227         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
6228         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
6229         crosses section boundaries.
6230         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
6231         cross section boundaries.
6232         (force_nonfallthru_and_redirect): Modify to make sure new basic block
6233         ends up in correct section, with correct notes attached.
6234         * common.opt (freorder-blocks-and-partition):  Add new flag for this
6235         optimization.
6236         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
6237         the end of functions are written into the correct (hot or cold)
6238         section.
6239         (dbx_source_file): Add code so writing debug file information
6240         doesn't incorrectly change sections.
6241         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
6242         in partitioning hot/cold basic blocks into separate sections.
6243         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
6244         section partitioning.
6245         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
6246         conditional branches can span all of memory.
6247         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
6248         unconditional branches can span all of memory.
6249         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
6250         (final_scan_insn):  Add code to check for NOTE instruction indicating
6251         whether basic block belongs in hot or cold section, and to make sure
6252         the current basic block is being written to the appropriate section.
6253         Also added code to ensure that jump table basic blocks end up in the
6254         correct section.
6255         * flags.h (flag_reorder_blocks_and_partition):  New flag.
6256         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
6257         one of the branches has a jump that crosses between sections.
6258         (find_if_case_2): Likewise.
6259         (ifcvt): Modify to not attempt to mark loop exit edges after
6260         hot/cold partitioning has occurred.
6261         * opts.c (decode_options): Code to handle new flag,
6262         flag_reorder_blocks_and_partition; also to turn it off if
6263         flag_exceptions is on.
6264         (common_handle_option): Code to handle new flag,
6265         flag_reorder_blocks_and_partition.
6266         * output.h (unlikely_text_section): New extern function declaration.
6267         (in_unlikely_text_section): New extern function declaration.
6268         * passes.c (rest_of_handle_stack_regs):  Add
6269         flag_reorder_blocks_and_partition as an 'or' condition for calling
6270         reorder_basic_blocks.
6271         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
6272         as an 'or' condition for calling reorder_basic_blocks.
6273         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
6274         * print-rtl.c (print_rtx): Add code for handling new note,
6275         NOTE_INSN_UNLIKELY_EXECUTED_CODE
6276         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
6277         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
6278         cross between section boundaries.
6279         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
6280         indicating the basic block containing it belongs in the cold section.
6281         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
6282         between hot and cold sections.
6283         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
6284         initialize this flag, and to tie it to the command-line option
6285         freorder-blocks-and-partition.
6286         * varasm.c (cfglayout.h):  Add new include statement.
6287         (unlikely_section_label_printed):  New global variable, used for
6288         determining when to output section name labels for cold sections.
6289         (in_section):  Add in_unlikely_executed_text to enum data structure.
6290         (text_section):  Modify code to use SECTION_FORMAT_STRING and
6291         NORMAL_TEXT_SECTION_NAME macros.
6292         (unlikely_text_section):  New function.
6293         (in_unlikely_text_section):  New function.
6294         (function_section):  Add code to make sure beginning of function is
6295         written into correct section (hot or cold).
6296         (assemble_start_function):  Add code to make sure stuff is written to
6297         the correct section.
6298         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
6299         to an if statement that was checking 'in_text_section'.
6300         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
6301         condition to an if statement that was checking 'in_text_section'.
6302         (default_section_type_flags_1):  Add check: if in cold section
6303         flags = SECTION_CODE.
6304         * config/darwin.c (darwin_asm_named_section):  Modify to use
6305         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
6306         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
6307         specifically for the i386.
6308         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
6309         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
6310         text string to something more informative.
6311         (NORMAL_TEXT_SECTION_NAME): Add new definition.
6312         (SECTION_FORMAT_STRING):  Add new definition.
6313         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
6314         '!in_unlikely_text_section' as an 'and' condition to an if statement
6315         that was already checking '!in_text_section'.
6316         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
6317         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
6318         sure these are properly defined for linux on ppc.
6319         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
6320         for this new flag.
6321         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
6322         reg_note.
6323         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
6324         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
6325         these new macros.
6326
6327 2004-04-08  Roger Sayle  <roger@eyesopen.com>
6328
6329         * function.c (gen_mem_addressof): When changing the RTX from a REG
6330         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
6331
6332 2004-04-08  Roger Sayle  <roger@eyesopen.com>
6333
6334         PR target/14888
6335         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
6336         truncxfdf2_noop): Provide dummy "fmov" implementations.
6337
6338 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
6339
6340         * gcc.c (default_compilers): Add missing initializers.
6341
6342         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
6343         Return 1 if file was successfully mapped.
6344
6345 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
6346
6347         PR pch/13419
6348         PR pch/14137
6349         Radar #: 3315288
6350         * doc/invoke.texi (Precompiled Headers): Suggest -o
6351         to put an output file in a particular place.  Be more detailed
6352         about which options affect PCH validity and which options
6353         might not work.
6354         * c-pch.c (pch_matching): New.
6355         (MATCH_SIZE): New.
6356         (struct c_pch_validity): New field 'match'.
6357         (pch_init): Handle pch_matching.
6358         (c_common_valid_pch): Check pch_matching.
6359
6360         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
6361
6362 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
6363
6364         * doc/invoke.texi (Precompiled Headers): Warn about known
6365         problems.
6366
6367 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
6368
6369         PR c++/14808
6370         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
6371         to 1 if ASM_OUTPUT_DEF is defined.
6372         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
6373         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
6374         Set to non-zero iff not a one_only decl.
6375
6376 2004-04-08  Paul Brook  <paul@codesourcery.com>
6377
6378         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
6379
6380 2004-04-08  Paul Brook  <paul@codesourcery.com>
6381
6382         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
6383         PROMOTE_FOR_CALL_ONLY.
6384         * config/arm/arm-protos.h (arm_function_value): Declare.
6385         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
6386         (TARGET_PROMOTE_PROTOTYPES): Return false.
6387         (arm_function_value): New function.
6388         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
6389         (FUNCTION_VALUE): Call arm_function_value.
6390         * config/cris/cris.h (PROMOTE_MODE): Rename ...
6391         (PROMOTE_FUNCTION_MODE): ... to this.
6392         (PROMOTE_FOR_CALL_ONLY): Remove.
6393         * config/mmix/mmix.h: Likewise.
6394         * config/s390/s390.h: Likewise.
6395         * config/sparc/sparc.h: Likewise.
6396         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
6397         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
6398         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
6399         (PROMOTE_FOR_CALL_ONLY): Remove.
6400
6401 2004-04-08  Joel Sherrill <joel@oarcorp.com>
6402
6403         PR ada/14538
6404         * ada/5rosinte.adb: Remove fake mprotect() body.
6405         * ada/5rosinte.ads: Add SA_SIGINFO.
6406         * ada/5rtpopsp.adb: Rewrite to use new interface.
6407         * ada/init.c: Reorder so the simple single OS conditional __rtems__
6408         is tested before more complex ones which mix UNIX and embedded
6409         systems in the conditional.
6410
6411 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
6412
6413         PR ada/14665
6414         * ada/osint.adb (Find_Program_Name): Rework to properly handle
6415         filenames which end in .exe or have versioning suffixes like VMS.
6416
6417 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
6418
6419         PR target/10129
6420         * config/darwin.c (darwin_encode_section_info): When the decl has
6421         a DECL_INITIAL, it is only defined also when it is not a common.
6422
6423 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6424
6425         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
6426         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
6427
6428 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
6429
6430         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
6431         global register variables.
6432
6433 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
6434
6435         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
6436         rpc_xdr_lvalue_cast_b): New fixes.
6437         * fixinc/fixincl.x: Regenerate.
6438         * fixinc/tests/base/rpc/xdr.h: Add new tests.
6439
6440 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
6441
6442         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
6443         to power4 and power5 entries.
6444
6445 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
6446
6447         * c-common.h (pending_lang_change): Mark for PCH.
6448
6449 2004-04-07  Caroline Tice  <ctice@apple.com>
6450
6451         * gcc.c (main): Move 'break' in main loops (on an error)
6452         to wait until error processing has occurred.
6453
6454 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
6455
6456         * config.gcc: Stop changing enable_threads midstream.
6457         Replace uses of enable_threads_flag with enable_threads.
6458         * configure.ac: Replace uses of enable_threads_flag with
6459         enable_threads.  Improve autoconf quotation in one place.
6460         * configure: Regenerate.
6461
6462 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
6463
6464         * builtins.c: Implement support for sincos function.
6465         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
6466         BUILT_IN_COS{,F,L}.
6467         (expand_builtin_mathfn_3): New function.
6468         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
6469         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
6470         flag_unsafe_math_optimization is set.
6471
6472         * optabs.h (enum optab_index): Add new OTI_sincos.
6473         (sincos_optab): Define corresponding macro.
6474
6475         * optabs.c (init_optabs): Initialize sincos_optab.
6476         (expand_twoval_unop): New function.
6477
6478         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
6479         patterns.
6480
6481         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
6482         and UNSPEC_SINCOS_SIN.
6483
6484         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
6485         sincosxf3): New patterns to implement sincos, sincosf and sincosl
6486         built-ins as inline x87 intrinsics. Define splits for
6487         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
6488         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
6489         sincos patterns.
6490         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
6491         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
6492
6493         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
6494         x87's fsincos insn.
6495
6496 2004-04-06  Devang Patel  <dpatel@apple.com>
6497
6498         PR 14467
6499         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
6500
6501 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6502
6503         * doc/install.texi: Update HP-UX 11 installation procedure.
6504
6505 2004-04-06  Paul Brook  <paul@codesourcery.com>
6506
6507         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
6508
6509 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
6510
6511         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
6512         when the TLS address is generated by a function call.
6513         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
6514         (tls_local_dynamic): Likewise.
6515
6516 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
6517
6518         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
6519         and TYPE_VOLATILE.
6520
6521 2004-04-05  Caroline Tice  <ctice@apple.com>
6522
6523         * gcc.c (combine_flag): New global variable, for new driver option.
6524         (struct compiler): Add two new fields, to be used when
6525         combining multiple input files in a single pass (IMA).
6526         (default_compilers):  Add values for the new fields to all
6527         compiler entries. Modify the "@c" compiler entry for doing IMA
6528         properly with "-save-temps" and the "combine" flag.
6529         (option_map):  Add new driver option, "--combine", to tell driver
6530         to pass multiple input files to compiler at one time.
6531         (have_o_argbuf_index): New global variable.
6532         (store_arg): Modify to assign value to have_o_argbuf_index.
6533         (struct infile):  Add three new fields, to help with IMA.
6534         (display_help): Add help for new "combine" option.
6535         (process_command): Remove local variable have_o; add code to check
6536         for new "combine" option; remove assignment to combine_inputs.
6537         (do_spec_1):  Modify to deal with IMA better.
6538         (main): Make variable 'lang_n_infiles' local to entire function
6539         rather than to a single block.  Use flag combine_flag to
6540         determine whether to do IMA or not; Modify loop initializing
6541         infiles to deal properly with linker files.
6542         Add code for doing preprocessing in presence of
6543         IMA with "-save-temps" flag.  Modify "main" loop to handle
6544         multiple input files, in multiple languages, with or without
6545         preprocessing,  gracefully.
6546         * toplev.c (set_src_pwd): Modify to not complain if attempting to
6547         re-set it to same directory it's previously been set to (avoid
6548         irritating, meaningless warning messages when doing IMA with
6549         save-temps).
6550         * doc/invoke.texi: Add "-combine" to list of Overall Options;
6551         remove documentation about IMA that is no longer accurate; Add
6552         documentation explaining what "-combine" does.
6553         * ada/lang-specs.h: Add initialization values for new fields in
6554         "struct compiler".
6555         * cp/lang-specs.h: Likewise.
6556         * f/lang-specs.h: Likewise.
6557         * java/lang-specs.h: Likewise.
6558         * objc/lang-specs.h: Likewise.
6559         * treelang/lang-specs.h: Likewise.
6560
6561 2004-04-05  David Edelsohn
6562
6563         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
6564         symbol handling.
6565
6566 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
6567             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6568
6569         PR optimization/13424 (hppa), bootstrap/14462, c/14828
6570         * pa.md: Use replace_equiv_address to retain the attributes of the
6571         memory operands used in the split and peephole2 patterns for optimizing
6572         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
6573
6574 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6575
6576         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
6577         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
6578         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
6579         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
6580         PARM_DECL.
6581         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
6582         for a type.
6583         * print-tree.c (print_node): Properly handle side-effects, readonly,
6584         and constant flags.
6585         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
6586         and TREE_CONSTANT if not a type.
6587         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
6588         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
6589         (NON_TYPE_CHECK): New macro.
6590         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
6591
6592 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
6593
6594         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
6595         to DWARF2_DEBUG unconditionally.
6596         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
6597
6598 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
6599             Nathanael Nerode  <neroden@gcc.gnu.org>
6600
6601         PR target/14548
6602         * config.host: Set the shell variable host_can_use_collect2.
6603         Set it to yes by default, and to no for alpha*-dec-*vms*,
6604         i[34567]86-*-mingw32*, and powerpc-*-beos*.
6605         * configure.ac: Set and substitute the shell variable collect2.
6606         Give an error if use_collect2 is yes and host_can_use_collect2 is
6607         no.
6608         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
6609         uses.  Initialize to @collect2@.
6610         (STAGESTUFF): Remove $(USE_COLLECT2).
6611         * config/alpha/x-vms (USE_COLLECT2): Don't set.
6612         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
6613         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
6614         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
6615         * configure: Regenerate.
6616
6617 2004-04-04  Roger Sayle  <roger@eyesopen.com>
6618
6619         * simplify-rtx.c (simplify_binary_operation): Constant fold
6620         DIV, MOD, UDIV and UMOD using div_and_round_double.
6621
6622 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
6623
6624         PR c++/14804
6625         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
6626         RECORD_TYPEs.
6627
6628 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
6629
6630         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
6631         documentation.
6632
6633 2004-04-04  Roger Sayle  <roger@eyesopen.com>
6634
6635         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
6636         updating the REG_EQUAL note on an insn's libcall_insn.
6637
6638 2004-04-04  Roger Sayle  <roger@eyesopen.com>
6639
6640         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
6641
6642 2004-04-03  Roger Sayle  <roger@eyesopen.com>
6643
6644         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
6645         with reorder_operands_p.
6646
6647 2004-04-03  Jan Hubicka  <jh@suse.cz>
6648
6649         * md.texi (vec_set, vec_extract, vec_init): Document.
6650
6651 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
6652
6653        * opts.c (decode_options): Do function inlining with very small
6654        max-inline-insns-* parameters when optimizing for size.
6655
6656 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
6657
6658         * config/i386/i386.h (TARGET_NOCONA): New macro.
6659         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
6660         (processor_type): Add PROCESSOR_NOCONA.
6661
6662         * config/i386/i386.md (cpu): Add nocona to the attribute values.
6663
6664         * config/i386/i386.c (nocona_cost): New variable.
6665         (m_NOCONA): New macro.
6666         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
6667         x86_branch_hints, x86_use_sahf, x86_single_stringop,
6668         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
6669         x86_integer_DFmode_moves, x86_partial_reg_dependency,
6670         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
6671         x86_decompose_lea, x86_arch_always_fancy_math_387,
6672         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
6673         x86_ext_80387_constants, x86_four_jump_limit):
6674         (override_options): Add nocona_cost to processor_target_table.
6675         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
6676         (incdec_operand): Prevent inc/dec generation for Nocona too.
6677         (ix86_issue_rate): Add PROCESSOR_NOCONA.
6678
6679 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
6680
6681         * rtlanal.c (find_reg_note): Manually
6682         unswitch the loop.
6683
6684 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
6685
6686         * genemit.c (gen_split): Change prototype of generated code.
6687         * genrecog.c (write_action): Adjust prototype for and calls to
6688         gen_split_*.
6689         * gensupport.c (struct queue_elem): Add split field.
6690         (queue_pattern): Return a value.  Clear the split field.
6691         (process_rtx): Maintain an association between an insn and the
6692         split generated from it for a define_insn_and_split.
6693         (process_one_cond_exec): Generate a new split for a
6694         define_insn_and_split.
6695         * config/arm/arm-protos.h (arm_split_constant): Add insn
6696         parameter.
6697         (emit_constant_insn): New function.
6698         (arm_gen_constant): Use it.
6699         * config/arm/arm.md: Adjust calls to arm_split_constant.
6700
6701 2004-04-02  Jan Hubicka  <jh@suse.cz>
6702
6703         * cgraph.c: Add overall comment.
6704         (cgraph_inline_hash): New global variable.
6705         (cgraph_create_node): Break out from ...
6706         (cgraph_node): ... here.
6707         (cgraph_edge): New function.
6708         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
6709         (cgraph_remove_edge): Accept edge, intead of source and destination.
6710         (cgraph_redirect_edge_callee): New.
6711         (cgraph_remove_node): Update all new datastructures.
6712         (cgraph_record_call, cgraph_remove_call): Kill.
6713         (dump_cgraph_node): Break out from ... ; dump new datastructures.
6714         (dump_cgraph): ... here.
6715         (cgraph_function_possibly_inlined_p): Use new hashtable.
6716         (cgraph_clone_edge, cgraph_clone_node): New.
6717         * cgraph.h: Include hashtab.h
6718         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
6719         fields, add inlined_to pointer.
6720         (cgraph_node): Add pointer to next_clone.
6721         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
6722         (cgraph_remove_call, cgraph_record_call): Kill.
6723         (cgraph_inline_hash): Declare.
6724         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
6725         cgraph_redirect_edge_callee): Declare.
6726         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
6727         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
6728         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
6729         * cgraphunit.c: Add overall comment.
6730         (cgraph_optimize_function): Kill.
6731         (cgraph_assemble_pending_functions): Do not assemble inline clones.
6732         (cgraph_finalize_function): Update call of cgraph_remove_node
6733         (record_call_1): Record call sites.
6734         (cgraph_create_edges): Accept node instead of decl argument.
6735         (error_found): New static variable.
6736         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
6737         (cgraph_analyze_function): Update for new datastructures.
6738         (cgraph_finalize_compilation_unit): Plug memory leak.
6739         (cgraph_optimize_function): Kill.
6740         (cgraph_expand_function): Do not use cgraph_optimize_function.
6741         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
6742         cgraph_inlined_callees): Kill.
6743         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
6744         clones.
6745         (estimate_growth): Simplify.
6746         (cgraph_clone_inlined_nodes): New function.
6747         (cgraph_mark_inline_edge): Re-implement.
6748         (cgraph_mark_inline): Likewise.
6749         (cgraph_check_inline_limits): Simplify.
6750         (cgraph_recursive_inlining_p): New.
6751         (update_callee_keys): Break out from ...
6752         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
6753         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
6754         Likewise.
6755         (cgraph_expand_all_functions):  Remove inline clones from the ordered
6756         list.
6757         (cgraph_preserve_function_body_p): New predicate.
6758         (cgraph_optimize): Verify cgraph.
6759         * function.h (struct function): Add fields saved_tree/saved_args.
6760         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
6761         * toplev.c (rest_of_compilation): Do not free cfun.
6762         * tree-inline.c: Include function.h
6763         (struct inline_data): Add saving_p field; replace decl/current_decl by
6764         node/current_node.
6765         (insert_decl_map): New function.
6766         (copy_body_r): Handle saving; update cgraph datastructure.
6767         (copy_body): Handle recursive inlining.
6768         (initialize_inlined_parameters): Likewise.
6769         (expand_call_inline): Propagate node attributes; update cgraph.
6770         (optimize_inline_calls): Verify that datastructure still match.
6771         (save_body): New function.
6772         * tree-inline.h (save_body): New.
6773         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
6774         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
6775         * langhooks.c (lang_hooks): Add update_decl_after_saving.
6776
6777 2004-04-01  Serge Belyshev  <1319@bot.ru>
6778
6779         PR target/14702
6780         * config/i386/i386.md: fix source operand constraints in
6781         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
6782
6783 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
6784
6785         * fold-const.c (folda): Preserve types of comparisons.
6786
6787 2004-04-01  Richard Henderson  <rth@redhat.com>
6788
6789         * toplev.c (backend_init): Move init_optimization_passes call ...
6790         (lang_dependent_init): ... here.
6791
6792 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
6793             Jakub Jelinek  <jakub@redhat.com>
6794
6795         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
6796         -lgcc --as-needed -lgcc_s --no-as-needed by default.
6797         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
6798         * configure: Rebuilt.
6799         * config.in: Rebuilt.
6800         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
6801         (stage2-start, stage3-start, stage4-start): Likewise.
6802         (stageprofile-start, stagefeedback-start): Likewise.
6803
6804 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
6805
6806         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
6807         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
6808         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
6809         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
6810         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
6811         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
6812         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
6813         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
6814         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
6815         * config/sparc/t-linux: Removed.
6816
6817 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
6818
6819         PR c++/14755
6820         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
6821         "bitfld++ == const" to "++bitfld == const + incr" transformations.
6822
6823 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6824
6825         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
6826         * stor-layout.c (layout_decl): Likewise.
6827         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
6828         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
6829         * print-tree.c (print_node): Handle various used of unsigned_flag.
6830         * tree.def (BIT_FIELD_REF): Update comment.
6831         * tree.h (TREE_UNSIGNED): Deleted.
6832         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
6833
6834 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6835
6836         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
6837         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
6838         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
6839         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
6840         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
6841         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
6842         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
6843         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
6844         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
6845         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
6846         REAL_TYPE, not INTEGER_TYPE.
6847         (layout_type, case VECTOR_TYPE): Simplify code.
6848         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
6849         * tree.h: Update comments.
6850         (STRIP_NOPS): Use TYPE_UNSIGNED.
6851         (TYPE_UNSIGNED): New macro.
6852         (TYPE_TRAP_SIGNED): Remove now redundant check.
6853         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
6854
6855 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6856
6857         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
6858
6859 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
6860
6861         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
6862         Add darwin-fpsave.asm, darwin-vecsave.asm,
6863         and darwin-world.asm.
6864         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
6865         as the asm files contain altivec instructions.
6866         * config/rs6000/darwin-fpsave.asm: New file.
6867         * config/rs6000/darwin-vecsave.asm: New file.
6868         * config/rs6000/darwin-world.asm: New file.
6869
6870 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
6871
6872         * gengtype-yacc.y (option, stringseq): Add missing
6873         terminating semicolon.
6874
6875 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
6876
6877         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
6878         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
6879         tls_dtprel_ha_32, tls_dtprel_ha_64,
6880         tls_dtprel_lo_32, tls_dtprel_lo_64,
6881         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
6882         tls_tprel_ha_32, tls_tprel_ha_64,
6883         tls_tprel_lo_32, tls_tprel_lo_64,
6884         tls_got_tprel_32, tls_got_tprel_64,
6885         tls_tls_32, tls_tls_64): Replace register_operand with
6886         gpc_reg_operand.
6887
6888 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
6889
6890         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
6891         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
6892         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
6893         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
6894         *ctrdi_internal6): Replace register_operand with
6895         nonimmediate_operand.
6896
6897 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
6898
6899         * fold-const.c (fold): Reassociate multiply expression
6900         with an adjacent non-multiply expression to use
6901         architecture's multiply-add instruction.
6902
6903 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
6904
6905         * gengtype.c (create_option): New function.
6906         * gengtype.h: Prototype it.
6907         * gengtype-yacc.y (stringseq): New rule.
6908         (option): Use create_option.  Add new bare ID production.  Use
6909         stringseq, not STRING directly.
6910
6911         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
6912         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
6913         * varray.h, config/alpha/alpha.c:
6914         Use new shorter form of GTY markers.
6915
6916         * doc/gty.texi: Rewrite.
6917
6918 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
6919
6920         * config/darwin.c (machopic_function_base_name):
6921         Remove current_name and getting the name of the
6922         current function.
6923
6924 2004-03-30  Nick Clifton  <nickc@redhat.com>
6925
6926         * config/arm/arm.md (thumb_jump): Reduce the backward branch
6927         range, and increase the forward branch range, to allow for
6928         the fact that the PC will be off by 4.
6929
6930 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
6931
6932         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
6933
6934 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
6935
6936         * config/rs6000/rs6000.c (output_vec_const_move):
6937         Find all cases of EASY_VECTOR_15_ADD_SELF.
6938         (easy_vector_constant_add_self): Accept
6939         all vector constant loadable by vsplt* and vadd*.
6940         (easy_vector_same): Use easy_vector_splat_const.
6941         (easy_vector_const): Use easy_vector_splat_const.
6942         (easy_vector_splat_const): New function.
6943         (gen_easy_vector_constant_add_self): New function.
6944
6945         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
6946         New prototype.
6947
6948         * config/rs6000/altivec.md (movv4si splitter): Change to
6949         emit move insn with halfed vector constant.
6950         (*movv8hi splitter): Likewise.
6951         (*movv16qi splitter): Likewise.
6952
6953 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
6954
6955         PR 11591
6956         * config/rs6000/rs6000.c (rs6000_legitimate_address):
6957         Allow any offset to argument pointer in no-strict case.
6958
6959 2004-03-30  Jan Hubicka  <jh@suse.cz>
6960
6961         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
6962         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
6963         dump file in non-unit-at-a-time mode.
6964
6965 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
6966
6967         * config/cris/cris.h: Correct #ifdef to test for
6968         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
6969         HAVE_AS_MUL_BUG_ABORT_OPTION.
6970
6971 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6972
6973         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
6974         the address inside the old RTL.
6975
6976 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
6977
6978         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
6979         (struct c_binding, struct c_scope): Add chain_next
6980         attributes to GTY markers.
6981         (struct lang_identifier, struct lang_tree_node): Define
6982         here...
6983         * c-tree.h: ... not here.  No longer need to declare struct
6984         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
6985         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
6986         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
6987
6988         PR 14734, 11944
6989         * c-decl.c (get_parm_info): If error_mark_node is encountered
6990         in the bindings chain, unbind and discard it; don't abort.
6991
6992 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
6993             Dorit Naishlos <dorit@il.ibm.com>
6994
6995         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
6996         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
6997
6998 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
6999
7000         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
7001
7002         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
7003         (m68hc11_attribute_table): New attribute "page0" to mark a global
7004         variable as being allocated from within page0 section.
7005         (m68hc11_encode_label): New function.
7006         (m68hc11_strip_name_encoding): New function.
7007         (m68hc11_page0_symbol_p): New function.
7008         (m68hc11_indirect_p): Accept global variables marked in page0.
7009         (m68hc11_encode_section_info): Lookup "page0" attribute.
7010
7011         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
7012         represents access to page0 variables.
7013
7014         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
7015         ("*logicalsi3_silshl16_zext"): Likewise.
7016         ("*ashldi3_const32"): Likewise.
7017         (peephole2 ashift): Likewise.
7018
7019 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
7020
7021         * c-tree.h (C_DECL_REGISTER): New.
7022         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
7023         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
7024         (build_array_ref, c_mark_addressable): Set and use it.
7025         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
7026         Allow structures with volatile fields to be declared register.
7027         Don't check TREE_ADDRESSABLE before warning about taking address
7028         of register.
7029         * c-decl.c (finish_decl): Don't allow structures with volatile
7030         fields to be placed in named register.
7031         * doc/trouble.texi: Remove reference to structures with volatile
7032         fields in registers.
7033
7034 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
7035
7036         * function.c (thread_prologue_and_epilogue): Move
7037         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
7038         before the epilogue.
7039
7040 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
7041
7042         * expr.c (store_constructor): Use gen_int_mode to correctly
7043         sign-extend CONST_INT value.
7044
7045 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7046
7047         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
7048         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
7049         * doc/extend.texi: Likewise.
7050
7051 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
7052
7053         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
7054           with TYPE_ORIG_SIZE_TYPE.
7055
7056 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
7057
7058         PR 14219
7059         * c-typeck.c (build_binary_op): Do not allow comparisons of
7060         vectors.
7061
7062 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
7063
7064         * config.gcc: Remove sparc-tti-*.
7065         * config/sparc/pbd.h: Delete.
7066
7067         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
7068         * config/sparc/aout.h: Likewise.
7069
7070         * config/sparc/sparc.h: Remove if 0'd code.
7071         * config/sparc/sparc.md (call): Remove if 0'd code.
7072         (call_value): Likewise.
7073         (nonlocal_goto): Likewise.
7074         (unimp_insn): Delete.
7075
7076 2004-03-25  Roger Sayle  <roger@eyesopen.com>
7077
7078         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
7079         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
7080
7081 2004-03-25  Richard Henderson  <rth@redhat.com>
7082
7083         PR 11527
7084         * c-typeck.c (pop_init_level): Emit pending init elements earlier
7085         rather than later.
7086
7087 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7088
7089         * builtins.c (fold_builtin): Fix error in last change.
7090
7091 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
7092
7093         * config/mips/mips.h: Formatting fix.
7094
7095 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7096
7097         * builtins.def: Add ctype builtins.
7098         * doc/extend.texi: Likewise.
7099
7100 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7101
7102         * builtins.c (fold_builtin): Add new builtin optimizations for
7103         sqrt and/or cbrt.
7104         * fold-const.c (fold): Likewise.
7105
7106 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
7107
7108         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
7109         (rs6000_sched_groups): New variable.
7110         (processor_target_table): Add power5.
7111         (rs6000_override_options): Set rs6000_sched_insert_nops,
7112         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
7113         from rs6000_sched_groups.
7114         (output_cbranch): Use rs6000_always_hint.
7115         (rs6000_variable_issue): Use rs6000_sched_groups.
7116         (rs6000_adjust_cost): Add CPU_POWER5.
7117         (is_microcoded_insn): Use rs6000_sched_groups.
7118         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
7119         Return 2 for POWER5 cracked instructions.
7120         (is_cracked_insn): Use rs6000_sched_groups.
7121         (is_branch_slot_insn): Use rs6000_sched_groups.
7122         (rs6000_issue_rate): Add CPU_POWER5.
7123         (rs6000_sched_finish): Use rs6000_sched_groups.
7124         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
7125         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
7126         (DEFAULT_SCHED_COSTLY_DEP): Delete.
7127         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
7128         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
7129         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
7130         * config/rs6000/power5.md: New file.
7131         * doc/invoke.texi: Add power5 option.
7132
7133 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
7134
7135         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
7136         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
7137         * doc/invoke.texi: Fix a typo.
7138
7139 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
7140
7141         PR optimization/9707.
7142         * stmt.c (emit_case_nodes): Emit equality comparisons instead
7143         of recursing if both children are single-valued cases with no
7144         children.
7145
7146 2004-03-25  Paul Brook  <paul@codesourcery.com>
7147
7148         * config/arm/arm.c (vfp_print_multi): Remove.
7149         (arm_output_fldmx): New function.
7150         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
7151         (arm_expand_prologue): Update to match.
7152         (arm_get_vfp_saved_size): New Function.
7153         (arm_get_frame_offsets): Use it.
7154         (arm_output_epilogue): Use new functions.
7155
7156 2004-03-24  Richard Henderson  <rth@redhat.com>
7157
7158         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
7159         (reg_known_value, reg_known_value_size): Likewise; make static.
7160         (reg_known_equiv_p): Make static.
7161         (clear_reg_alias_info): Update for new indexing.
7162         (get_reg_known_value, set_reg_known_value): New.
7163         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
7164         (canon_rtx): Use them.
7165         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
7166         Don't play queer offsetting games with reg_known_value and
7167         reg_known_equiv_p.
7168         (end_alias_analysis): Free reg_known_value with gc.
7169         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
7170         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
7171         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
7172         functions instead.
7173
7174 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
7175
7176         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
7177         config/i386/mmintrin.h: Update copyright.
7178
7179 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7180
7181         * configure.ac: Add --enable-werror-always (for top level bootstrap
7182         support).
7183         * configure: Regenerate.
7184
7185 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
7186
7187         * objc/objc-act.c (objc_comptypes): Treat comparisons
7188         between 'Class' and '<class> *' as explicitly invalid.
7189
7190 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
7191
7192         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
7193         (-fprofile-values): Add enabled with profile-{generate,use}.
7194         (-fvpt): Same.
7195         (-ftracer): Add enabled with profile-use.
7196         (-funit-at-a-time): Add enabled at -O2,-O3.
7197         (-funroll-loops): Add enabled with profile-use.
7198         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
7199         (max-gcse-passes): Mention default.
7200         (max-cse-path-length): Mention default.
7201
7202 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7203
7204         * Makefile.in (STRICT2_WARN): Reorder.
7205         * configure.ac: Check for -Wold-style-definition, and use it
7206         in strict1_warn if it's available.
7207         * configure: Regnerate.
7208
7209 2004-03-24  Paul Brook  <paul@nowt.org>
7210
7211         * config.gcc <arm>: Add --with-abi=
7212         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
7213         thumb_far_jump_used): Remove prototypes.
7214         (arm_needs_doubleword_align): Add prototype.
7215         (thumb_compute_initial_elimination_offset): Ditto.
7216         * config/arm/arm.c (arm_get_frame_offsets): New function.
7217         (use_return_insn, output_return_instruction, arm_output_epilogue,
7218         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
7219         arm_expand_prologue, thumb_expand_epilogue): Use it.
7220         (arm_abi, target_abi_name, all_arm_abis): New variables.
7221         (arm_override_options): Set them.  Set structure padding for AAPCS.
7222         (arm_return_in_memory): Update ABI check.
7223         (arm_init_cumulative_args): Initialize can_split.
7224         (arm_needs_doubleword_align): New function.
7225         (arm_function_arg): Don't split args after pushing to stack. Handle
7226         doubleword/even reg alignment.
7227         (arm_va_arg): Handle all doubleword aligned args.
7228         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
7229         on ABI, not CPU.
7230         (arm_compute_save_reg0_reg12_mask): Fix comment.
7231         (thumb_get_frame_size, thumb_get_frame_size): Remove.
7232         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
7233         value for alignment.
7234         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
7235         to match.
7236         (thumb_compute_initial_elimination_offset): New function.
7237         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
7238         unneccessary rounding.
7239         * config/arm/arm.h (target_abi_name): Declare.
7240         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
7241         arm_abi_type, ARM_DEFAULT_ABI): Define.
7242         (ARM_FLAG_ATPCS): Remove.
7243         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
7244         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
7245         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
7246         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
7247         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
7248         Contitionalize on ABI, not CPU.
7249         (struct arm_stack_offsets): Define.
7250         (struct machine_function): Add stack_offsets.  Remove frame_size.
7251         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
7252         pushed.
7253         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
7254         doubleword alignment.
7255         (THUMB_INITIAL_ELIMINATION_OFFSET,
7256         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
7257         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
7258         * config/arm/arm.md (align_8): Enable for all targets.
7259         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
7260         (ARM_DEFAULT_ABI): Define.
7261         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
7262         -mstructure-size-boundary.
7263
7264 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7265
7266         * configure.ac: Check for -Wno-variadic-macros; don't use
7267         -pedantic (in stage 1 or a simple 'make all') unless it's available,
7268         and if it's available, use it.  Also, clean up check for
7269         -Wno-long-long.
7270         * configure: Regenerate.
7271
7272 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
7273
7274         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
7275         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
7276         (MULTILIB_DEFAULTS): Use it.
7277         (MIPS_CPU_STRING_DEFAULT): Remove.
7278         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
7279         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
7280         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
7281         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
7282         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
7283         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
7284         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
7285         accordingly.
7286
7287 2004-03-24  DJ Delorie  <dj@redhat.com>
7288             Richard Sandiford  <rsandifo@redhat.com>
7289
7290         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
7291         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
7292         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
7293         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
7294         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
7295         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
7296         if TARGET_FIX_VR4122.
7297         * config/mips/mips.md (define_attr length): Account for nops inserted
7298         after macc and dmult when using -mfix-vr4122-bugs.
7299         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
7300         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
7301         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
7302         * config/mips/vr4122-div.S: New file.
7303         * doc/invoke.texi: Document -mfix-vr4122-bugs.
7304
7305 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
7306
7307         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
7308         (TARGET_MIPS4130): New macro.
7309         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
7310         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
7311         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
7312         with PROCESSOR_R4130.
7313         * config/mips/mips.md (define_attr cpu): Add r4130.
7314         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
7315
7316 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
7317             Richard Sandiford  <rsandifo@redhat.com>
7318
7319         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
7320
7321 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
7322
7323         PR preprocessor/14438
7324         * cpplib.c (do_pragma): Remove line_change call after pragma
7325         handler.
7326
7327 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
7328
7329         * doc/extend.texi (ARM Built-in Functions): Replace with correct
7330         declarations.
7331
7332 2004-03-23  Roger Sayle  <roger@eyesopen.com>
7333
7334         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
7335         if flag_unsafe_math_optimizations.
7336         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
7337         and TARGET_80387 expand using truncdfsf2_noop pattern.
7338         (truncxfsf2): Likewise using truncxfsf2_noop.
7339         (truncxfdf2): Likewise using truncxfdf2_noop.
7340         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
7341
7342 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
7343
7344         * hooks.c (hook_constcharptr_tree_null): New hook.
7345         * hooks.h (hook_constcharptr_tree_null): New prototype.
7346         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
7347         * target.h (mangle_fundamental_type): New target hook.
7348         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
7349         target hook at rs6000_mangle_fundamental_type.
7350         (rs6000_mangle_fundamental_type): New function.
7351         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
7352
7353 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
7354
7355         PR 12267, 12391, 12560, 13129, 14114, 14133
7356         * c-tree.h: Forward declare struct c_binding.  Declare
7357         c_override_bindings_to_false.  Update prototypes.
7358         (struct lang_identifier): Update comments.  Change fields to be
7359         struct c_binding *.
7360         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
7361         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
7362         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
7363         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
7364         * c-common.h: Update prototypes.
7365         * c-decl.c (struct c_scope): Update commentary.  Remove names,
7366         names_last, parms, parms_last, tags, and shadowed fields.  Add
7367         bindings and depth fields.
7368         (scope_freelist): Move to more appropriate location.
7369         (c_print_identifier): Update for changes to struct lang_identifier.
7370         (objc_mark_locals_volatile): Update for new bindings structures.
7371         (global_bindings_p): Honor c_override_global_bindings_to_false.
7372         (pushlevel): Rename to push_scope; take no arguments; use the
7373         scope_freelist; initialize scope->depth and check for overflow.
7374         (poplevel): Rename to pop_scope; totally rewritten for new bindings
7375         structures.
7376         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
7377         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
7378         Improve some commentary.  Adjust handling of forward parm decls.
7379         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
7380         Preserve C_DECL_IN_EXTERNAL_SCOPE.
7381         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
7382         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
7383         decls.  Rewrite for new bindings structures.  Improve commentary.
7384         Eliminate the copy_node call.
7385         (implicit_decl_warning): Use the "diag" idiom (as seen in
7386         locate_old_decl) to reduce code duplication; call locate_old_decl
7387         if appropriate.  Relocate to remove need for forward declaration.
7388         (implicitly_declare): Adjust for new bindings structures.  Kludge
7389         around Objective-C not-really-builtin functions.
7390         (undeclared_variable): Improve diagnostics.  If current_function_decl
7391         is nonnull but current_function_scope is null, use current_scope.
7392         Use bind.
7393         (lookup_tag): Adjust for new bindings structures.  Kludge around
7394         Objective-C's tag declarations that wind up in the external scope.
7395         (lookup_name): Adjust for new bindings structures.  Kludge around
7396         c-common.c's pseudo-typedefs that wind up in the external scope.
7397         (lookup_name_current_level): Rename lookup_name_in_scope; take a
7398         second argument indicating the scope to examine; rewrite for
7399         new bindings structures.
7400         (c_init_decl_processing): Adjust for renamed functions.  Do not
7401         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
7402         First scope pushed is the external scope, not the global scope.
7403         (builtin_function): Use bind, not pushdecl.  Adjust other bits
7404         for new data structures.  Keep track of builtins that should be
7405         made visible automatically.
7406         (start_decl): Adjust diagnostics.  Remove unnecessary call to
7407         expand_decl.
7408         (grokparms): Return 0 if arg_types is error_mark_node.
7409         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
7410         reversed sense.  Rewrite for new bindings structures.  Do not
7411         leave any decls in the scope, to prevent pop_scope from doing
7412         contradictory things with them.
7413         (finish_struct, finish_enum): Remove redundant diagnostics.
7414         (build_enumerator): Don't cascade diagnostics for error_mark_node.
7415         Mark location where -pedantic changes the meaning of the program.
7416         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
7417         parameter decls into the function's scope structure using bind.
7418         Warn here about function definitions in the wrong style.
7419         Adjust diagnostics.
7420         (store_parm_decls): Correct the determination of whether a
7421         function was defined with a prototype.
7422         (c_write_global_declarations): Operate on all file decls and on
7423         the external scope.  Split body of the loop to...
7424         (c_write_global_declarations_1): ... this new function, to avoid
7425         code duplication.
7426         (truly_local_externals, first_builtin_decl, last_builtin_decl)
7427         (make_scope, pop_scope, in_parm_level_p, set_block)
7428         (any_external_decl, record_external_decl, bind_label, getdecls)
7429         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
7430         (c_reset_state): Delete.
7431         (visible_builtins, c_override_global_bindings_to_false)
7432         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
7433         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
7434         (external_scope, binding_freelist, bind, free_binding_and_advance)
7435         (push_file_scope, pop_file_scope): New.
7436         (pushtag, pushdecl_top_level, lookup_label, declare_label)
7437         (define_label, c_make_fname_decl, finish_decl)
7438         (mark_forward_parm_decls, build_compound_literal)
7439         (grokdeclarator, start_function, check_for_loop_decls)
7440         (identifier_global_value, record_builtin_type): Minor adjustments
7441         for new bindings structures.  Improve diagnostics and commentary.
7442         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
7443         pushlevel/poplevel respectively.
7444         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
7445         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
7446         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
7447         correct loop over multiple translation units; call fatal_error if
7448         requested to compile more than one file at once.  (This disables
7449         IMA temporarily - an up-front error being preferable to a crash.)
7450         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
7451         (all actions): Adjust calls to pushlevel/poplevel.
7452         (parsing_iso_function_signature): Delete.
7453         (extdef_1): Fold into extdef.
7454         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
7455         warn here about function definitions in the wrong style.
7456         (after_tyle_declarator, parm_declarator_starttypename)
7457         (parm_declarator_nostarttypename, notype_declarator): Remove
7458         commented-out productions.
7459         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
7460         an empty TREE_LIST node.  Adjust calls to get_parm_info.
7461         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
7462         to suppress -Wold-style-definition after this error.
7463         (c_parse_file): Don't clear the binding stack or call
7464         finish_fname_decls here.  Correct comment.
7465         * c-typeck.c (same_translation_unit_p): Export.
7466         (common_type): Use c_override_global_bindings_to_false, not
7467         pushlevel/poplevel/declare_parm_level.
7468         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
7469         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
7470         and LANG_HOOKS_GETDECLS with do-nothing stubs.
7471         * objc/objc-lang.c: Likewise.
7472         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
7473         get_parm_info.
7474         (OBJC_VOID_AT_END): Delete; replace all uses
7475         with void_list_node.
7476         (generate_forward_declaration_to_string_table): Delete.
7477         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
7478
7479         * coverage.c (create_coverage): Don't pushdecl anything.
7480         * langhooks.c (lhd_clear_binding_stack): Call
7481         lang_hooks.decls.poplevel, not poplevel.
7482         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
7483         circular list rather than going into an infinite loop.
7484
7485 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
7486
7487         * optabs.c (expand_binop): When synthesizing double word rotates
7488         from single word shifts, use a new register target if the provided
7489         target is not a REG already.
7490
7491 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7492
7493         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
7494         * c-common.c (handle_mode_attribute): Add extra arg to
7495         build_pointer_type_for_mode and build_reference_type_for_mode.
7496         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
7497         for INTEGER_CST.
7498         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
7499         Chain pointers via TYPE_NEXT_PTR_TO.
7500         (build_reference_type_for_mode): Similarly.
7501         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
7502         and build_reference_type_for_mode.
7503         (tree_check4_failed): New function.
7504         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
7505         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
7506         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
7507         Add check.
7508
7509 2004-03-23  Roger Sayle  <roger@eyesopen.com>
7510
7511         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
7512         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
7513         when both A and B are nonnegative.
7514         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
7515         nonzero.
7516
7517 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
7518
7519         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
7520         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
7521
7522 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
7523
7524         PR optimization/14669
7525         * fold-const.c (fold): Only unwiden integer comparisons for equality
7526         and inequality operators, or when the signedness doesn't change.
7527
7528 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
7529
7530         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
7531         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
7532         * config/sparc/t-linux: New file.
7533
7534 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
7535
7536         * gcse.c (can_assign_to_reg_p): New function, split out from...
7537         (want_to_gcse_p): ...here.
7538         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
7539         the rhs of a store.
7540
7541 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
7542
7543         * c-typeck.c (same_translation_unit_p): Fix pasto.
7544
7545 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
7546
7547         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
7548         (PARAM_MAX_SCHED_REGION_INSNS): New.
7549         * sched-rgn.c: Include params.h
7550         (MAX_RGN_BLOCKS): Delete.
7551         (MAX_RGN_INSNS): Delete.
7552         (too_large): Return bool.  Convert to PARAM_VALUE.
7553         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
7554         * doc/invoke.texi (param): Document max-sched-region-blocks and
7555         max-sched-region-insns.
7556
7557 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
7558
7559         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
7560         for base types.
7561
7562 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
7563
7564         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
7565         change.
7566
7567 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
7568
7569         PR c/14069
7570         * c-decl.c (finish_struct): Change type of incorrect flexible array
7571         field into error_mark_node.
7572
7573 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
7574
7575         PR target/14580
7576         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
7577         who are not local for Darwin PIC.
7578
7579 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
7580
7581         * regrename.c (regrename_optimize): Set regs_ever_live for all
7582         registers introduced as replacement.
7583
7584 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
7585
7586         PR middle-end/14470
7587         * expr.c (mark_queue): New function.
7588         (emit_insns_enqueued_after_mark): New function replacing
7589         emit_queue.  Clear the body of emitted queued insns.
7590         (emit_queue): Call emit_insns_enqueued_after_mark.
7591         (store_expr): Mark the increment queue on entry.  Emit
7592         only the incrementations queued when expanding the source.
7593
7594 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
7595
7596         * configure.ac: Allow --disable-coverage-flags (for the future benefit
7597         of top level bootstrap, and consistency).  Reindent.
7598         * configure: Regenerate.
7599
7600 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
7601
7602         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
7603         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
7604         unnecessary casts.
7605
7606 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
7607
7608         PR target/14291
7609         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
7610         __MINGW32__.
7611
7612 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
7613
7614         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
7615         to nonimmediate_operand.
7616         ("*doloop_di"): Likewise.
7617
7618 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
7619
7620         * real.h (struct real_value): Use the same type for all
7621         bitfields.  Rename exp to uexp.
7622         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
7623         Adjust all uses of exp...
7624         * builtins.c: ... here, ...
7625         * emit-rtl.c: ... here, and ...
7626         * real.c: ... and here.
7627
7628 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
7629
7630         * pretty-print.c (pp_base_maybe_space): New function.
7631         * pretty-print.h (pp_base_maybe_space): Declare.
7632         (pp_maybe_space): New macro.
7633
7634 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
7635
7636         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
7637
7638 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
7639
7640         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
7641         of using register multiplication cost.
7642         (expand_mult): Adapt choose_mult_variant call.
7643         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
7644         of MODE; pass appropriate cost bound.  Adjust result when
7645         performing signed multiplication by a negative constant.
7646         Don't use intermediate modes larger than word_mode.
7647
7648 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7649
7650         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
7651         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
7652         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
7653         * explow.c (expr_size): Likewise.
7654         * expr.h (placeholder_list, find_placeholder): Deleted.
7655         * expr.c (store_constructor): Likewise.
7656         (get_inner_reference): Likewise.  Also don't call find_placeholder.
7657         (placeholder_list, find_placeholder): Deleted.
7658         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
7659         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
7660         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
7661         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
7662         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
7663         Likewise.
7664         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
7665         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
7666         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
7667         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
7668         Clean up by using first_rtl_op.
7669         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
7670         (substitute_placeholder_in_expr): New function.
7671         * tree.def (WITH_RECORD_EXPR): Deleted.
7672         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
7673         (substitute_placeholder_in_expr): New.
7674
7675 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
7676
7677         * dojump.c (prefer_and_bit_test): Fix which part of
7678         the and_test is replaced.
7679
7680 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
7681
7682         * frontends.texi: Add missing line.
7683
7684 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
7685             Chris Devers  <cdevers@pobox.com>
7686             Joseph S. Myers  <jsm@polyomino.org.uk>
7687
7688         * doc/frontends.texi: Rewrite.
7689         * doc/gcc.texi: Update last modification date.
7690
7691 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
7692
7693         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
7694         message before redirecting the edge.
7695
7696 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7697
7698         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
7699         flag.
7700         * explow.c (force_not_mem): Set REG_POINTER flag according to
7701         MEM_POINTER one.
7702         * rtl.h (MEM_POINTER): New macro.
7703         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
7704         for MEM_POINTER.
7705
7706 2004-03-20  Roger Sayle  <roger@eyesopen.com>
7707
7708         PR target/13889
7709         * cse.c (fold_rtx): Avoid substituting constants into unary
7710         conversion operations.
7711
7712 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7713
7714         * fold-const.c (fold): Replace "expr" with "t".
7715
7716 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
7717
7718         PR c/12373
7719         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
7720         DECL_ORIGINAL_TYPE if there isn't one.
7721
7722 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7723
7724         * fold-const.c (fold): Replace "final_type" with "type".
7725         Remove variable "final_type".
7726
7727 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7728
7729         * fold-const.c (fold): Constify "type".
7730         Replace "TREE_TYPE (t)" with "type".
7731
7732 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7733
7734         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
7735         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
7736         via (*targetm.foo) () with targetm.foo ().
7737
7738 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
7739
7740         PR other/14630
7741         * doc/install.texi: Add info directory category and entry.
7742
7743 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7744
7745         * fold-const.c (fold): Replace "t" with "tem" where it is used
7746         as a temporary variable.  Remove "orig_t" and all of its uses.
7747
7748 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7749
7750         * fold-const.c (fold): Remove variable "invert".
7751         Move the handling of relational expressions that can be folded
7752         to a constant ...
7753         (fold_relational_const): ... here.
7754         (tree_expr_nonzero_p): New.
7755
7756 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
7757
7758         PR c/14635
7759         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
7760         DEF_GCC_BUILTIN.
7761
7762 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
7763
7764         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
7765         (GTFILES): Add $(srcdir)/dojump.h.
7766         (gt-dojump.h): New dependency.
7767         * dojump.c (and_reg, and_test, shift_test): New static variables.
7768         (prefer_and_bit_test): New function.
7769         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
7770
7771 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7772
7773         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
7774         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
7775         reorg.c, tree.h: Fix comment typos.
7776
7777 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
7778
7779         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
7780         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
7781         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
7782         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
7783         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
7784         vmsdbgout.c: Replace calls via (*targetm.foo) () with
7785         targetm.foo ().
7786
7787 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
7788
7789         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
7790         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
7791         always_inline attribute.
7792         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
7793         Treat expansion as completed even if literal argument is
7794         invalid (so that other expansions are not tried in vain).
7795
7796 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
7797
7798         * loop-doloop.c (add_test): Replace GEN_INT (0) with
7799         const0_rtx.
7800
7801 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
7802
7803         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
7804         ...
7805         (fold_abs_const): ... here.
7806
7807 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7808
7809         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
7810
7811 2004-03-19  Denis Chertykov  <denisc@overta.ru>
7812
7813         PR target/11520
7814         * config/avr/avr.md ("call_insn"): Handle explicit integer
7815         specially.
7816         (call_value_insn): Likewise.
7817
7818 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7819
7820         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
7821
7822 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
7823
7824         * fold-const.c (negate_expr): Move the handling of constants
7825         ...
7826         (fold_negate_const): ... here.
7827
7828 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7829
7830         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
7831         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
7832         * tree.c (debug_no_type_hash): Deleted.
7833         (type_hash_canon): Abort if passed a variant.
7834         Check lang_hooks.types.hash_types.
7835         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
7836         (build_array_type): Remove unnecessary allocation of pointer type.
7837         (build_complex_type): Properly qualify resulting type.
7838
7839 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
7840
7841         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
7842
7843 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
7844
7845         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
7846         (expand_mult): ...here.
7847         (extract_high_half): New, split out from expand_mult_highpart.
7848         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
7849         (expand_highpart): Evaluate the cost of a shift/add sequence,
7850         then see if any of the specialized optabs are cheaper.
7851
7852 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
7853
7854         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
7855
7856 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7857
7858         * convert.c (convert_to_real): Add more math builtins.
7859
7860 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7861
7862         * convert.c (convert_to_real): Reformat using switch stmt.
7863
7864 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
7865
7866         * c-common.c (pointer_int_sum): Do not complain about using
7867         pointers to pointers-to-members.
7868
7869 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
7870
7871         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
7872         have moved to the target hooks structure".
7873
7874 2004-03-18  James E Wilson  <wilson@specifixinc.com>
7875
7876         * config/mips/mips.md (type): Split move into arith and fmove.  Split
7877         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
7878         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
7879         Likewise.
7880         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
7881         Likewise.
7882         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
7883         rm7_fp_quick): Likewise.
7884         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
7885         rm9k_fquick): Likewise.
7886         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
7887         Likewise.
7888         (ir_sr70_icmp): Delete.
7889
7890 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7891
7892         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
7893         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
7894         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
7895         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
7896         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
7897         Protect with proper check.
7898         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
7899         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
7900         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
7901         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
7902         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
7903         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
7904         not TYPE_FIELDS.
7905         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
7906
7907 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
7908
7909         * gcse.c (eliminate_partially_redundant_loads): Reject change if
7910         dest is set between beginning and current insn.
7911
7912 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
7913
7914         * c-decl.c (grokdeclarator): Do not complain about redeclaring
7915         visible "static" identifiers "extern" in a local scope.
7916         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
7917         post-increments/decrements.
7918
7919 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
7920
7921         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
7922         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
7923         (xtensa_va_start): Remove assignment to current_function_arg_words.
7924
7925 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
7926
7927         * alias.c (record_set): Detect the case where a register is assigned
7928         a new value that has the same base term as the old one.
7929
7930 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7931
7932         * doloop.c: Removed.
7933         * loop-doloop.c: New file.
7934         * Makefile.in (doloop.o): Remove.
7935         (loop-doloop.o): New.
7936         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
7937         * cfgloopanal.c (get_loop_level): New function.
7938         * loop-iv.c (iv_number_of_iterations): Handle case when loop
7939         is leaved immediatelly.
7940         * loop.c (strength_reduce): Do not call doloop optimization.
7941         * loop.h (LOOP_BCT): Removed.
7942         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
7943         (rest_of_handle_loop2): Call doloop_optimize_loops.
7944         (rest_of_compilation): Test for optimizations moved to
7945         rest_of_handle_loop2.
7946
7947 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
7948
7949         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
7950         for mixed mode.
7951         (rs6000_emit_prologue): Ditto.
7952         (rs6000_emit_epilogue): Ditto.
7953         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
7954         macro for mixed mode.
7955
7956 2004-03-18  Jan Hubicka  <jh@suse.cz>
7957
7958         * predict.c (propagate_freq): Compute correctly frequency of
7959         EXIT_BLOCK.
7960
7961 2004-03-17  Eric Christopher  <echristo@redhat.com>
7962
7963         * builtins.c (apply_args_size): Use reg_raw_mode.
7964         (apply_result_size): Ditto.
7965
7966 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
7967
7968         PR target/14620
7969         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
7970
7971 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
7972
7973         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
7974         32-bit builds when defaulting to 32-bit.
7975
7976 2004-03-17  Jan Hubicka  <jh@suse.cz>
7977
7978         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
7979         array.
7980
7981 2004-03-17  James E Wilson  <wilson@specifixinc.com>
7982
7983         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
7984         (hazard_nop): Change type to nop.
7985         (type): Split arith into arith, shift, slt, clz.  Delete darith.
7986         Fix all uses.  Change arith to multi if more than one insn emitted.
7987         * config/mips/5400.md (ir_vr54_arith): Likewise.
7988         * config/mips/5500.md (ir_vr55_arith): Likewise.
7989         * config/mips/7000.md (rm7_int_other): Likewise.
7990         * config/mips/9000.md (rm9k_int): Likewise.
7991         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
7992
7993 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
7994
7995         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
7996         to hold the subtype tree instead of recomputing it several times.
7997
7998 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
7999
8000         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
8001         CC_INVERT.
8002         * config/mn10300/mn10300.md (cc): Remove "invert".
8003
8004 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8005
8006         * builtins.c (integer_valued_real_p): Add builtin rint.
8007         (fold_builtin): Likewise.
8008         * convert.c (convert_to_real): Likewise.
8009
8010         * convert.c (convert_to_real): Fix typos in `long double'
8011         builtins.
8012
8013 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
8014
8015         PR c++/14481
8016         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
8017         generated COMPOUND_EXPRs.
8018
8019 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8020
8021         * config/h8300/t-rtems (h8300-*-rtems*): New.
8022
8023 2004-03-16  Eric Christopher  <echristo@redhat.com>
8024
8025         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
8026
8027 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
8028
8029         * config/i386/i386-protos.h: Add a prototype for
8030         ix86_reverse_condition.
8031         * config/i386/i386.c (ix86_reverse_condition): New.
8032         * config/i386/i386.h (REVERSE_CONDITION): Use
8033         ix86_reverse_condition.
8034         * config/i386/i386.md: Use ix86_reverse_condition instead of
8035         REVERSE_CONDITION.
8036
8037 2004-03-16  J. Brobecker  <brobecker@gnat.com>
8038
8039         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
8040
8041 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
8042
8043         PR bootstrap/12974
8044         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
8045
8046 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
8047
8048         * c-common.c (c_common_type_for_mode): Build vector types on
8049         demand.
8050         (handle_mode_attribute): Deprecate using the mode attribute
8051         to create vector types.  Fix indentation.
8052         (vector_type_node_list): Remove.
8053         (handle_vector_size_attribute): Create vector types on demand.
8054         Strip a NON_LVALUE_EXPR from the attribute if there is one.
8055         * c-typeck.c (comptypes): Make vector types compatible if they
8056         have the same underlying mode.
8057         (convert_for_assignment): Use comptypes to convert between
8058         vector types.
8059         * tree.c (build_common_tree_nodes_2): Do not create vector types.
8060         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
8061         vector types.
8062         * tree.h: Remove vector types.
8063         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
8064         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
8065         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
8066         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
8067         * doc/extend.texi (Vector Types): Document how to use the
8068         vector_size attribute to create vectors, rather than mode.
8069
8070         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
8071         * config/i386/emmintrin.h: Likewise.
8072         * config/i386/mmintrin.h: Likewise.
8073         * config/i386/xmmintrin.h: Likewise.
8074         * config/sh/ushmedia.h: Likewise.
8075
8076 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
8077
8078         * config/freebsd-spec.h, config/arc/arc-protos.h,
8079         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
8080         config/arm/linux-gas.h, config/arm/semi.h,
8081         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
8082         config/ia64/freebsd.h, config/mips/7000.md,
8083         config/mips/9000.md, config/ns32k/ns32k-protos.h,
8084         config/sparc/pbd.h: Update copyright.
8085
8086 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8087
8088         PR target/14577
8089         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
8090
8091 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
8092
8093         * combine.c (combine_simplify_rtx): Remove the "last"
8094         parameter and its documentation.  Adjust recursive calls.
8095         (simplify_logical): Always perform the only simplification
8096         controlled by "last", if the simplified expression is
8097         actually different.
8098         (try_combine): Do not pass the "last" parameter to
8099         combine_simplify_rtx.
8100
8101 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
8102
8103         PR target/14599
8104         * config/mips/mips.md (UNSPEC_GP): New constant.
8105         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
8106         an UNSPEC instead of (reg $gp).
8107         (mips16_gp_pseudo_reg): Change accordingly.
8108         (print_operand): Print $gp directly when handling CONST_GP_P.
8109
8110 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
8111
8112         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
8113         * longlong.h: Make code 68060 clean when compiling for m68060.
8114
8115 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
8116
8117         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
8118         * doc/md.texi: Clarify description of "i" constraint.
8119
8120 2004-03-15  James E Wilson  <wilson@specifixinc.com>
8121
8122         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
8123         Split store into store, fpstore, fpidxstore.  Fix all uses.
8124         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
8125         Likewise.
8126         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
8127         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
8128         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
8129         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
8130         ir_sr70_fstore): Likewise.
8131
8132 2004-03-15  Richard Henderson  <rth@redhat.com>
8133
8134         PR middle-end/14535
8135         * except.c (collect_one_action_chain): Record action for cleanup
8136         outer of exception spec.
8137
8138 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
8139
8140         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
8141         Fix the check for abort and only do the mmap if we can.
8142
8143 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
8144
8145         * config/sparc/sparc.h: Rework comments about the code model
8146         in 64-bit environment and the mode 'Pmode'.
8147         * doc/invoke.texi (SPARC options): Rework description of the
8148         different code models supported in 64-bit environment.
8149
8150 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
8151
8152         * defaults.h (REVERSIBLE_CC_MODE): Define.
8153         * jump.c (reversed_comparison_code_parts): Don't check if
8154         REVERSIBLE_CC_MODE is defined.
8155
8156 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
8157
8158         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
8159         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
8160         hosthooks.h, params.h, ra-colorize.c, web.c,
8161         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
8162         config/avr/avr-protos.h, config/avr/avr.md,
8163         config/fr30/fr30-protos.h, config/fr30/fr30.md,
8164         config/h8300/fixunssfsi.c, config/i386/darwin.h,
8165         config/i386/freebsd.h, config/i386/freebsd64.h,
8166         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
8167         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
8168         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
8169         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
8170         config/pa/pa64-regs.h, config/rs6000/aix41.h,
8171         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
8172         config/sparc/aout.h, config/sparc/freebsd.h,
8173         config/sparc/litecoff.h, config/vax/vax-protos.h,
8174         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
8175         copyright.
8176
8177 2004-03-15  Paul Brook  <paul@codesourcery.com>
8178
8179         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
8180
8181 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8182
8183         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
8184         (pp_c_cv_qualifier): Document.
8185         (pp_c_space_for_pointer_operator): Likewise.
8186         (pp_c_integer_constant): Likewise.
8187         (pp_c_identifier): Likewise.
8188         (pp_c_init_declarator): Don't print function body.
8189
8190 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
8191
8192         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
8193         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
8194         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
8195         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
8196         wording and grammar.
8197
8198 2004-03-14  Roger Sayle  <roger@eyesopen.com>
8199
8200         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
8201         with lang_hooks.foo ().
8202         * builtins.c (expand_builtin_va_arg): Likewise.
8203         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
8204         c_common_type_for_mode, c_common_nodes_and_builtins,
8205         handle_mode_attribute, handle_vector_size_attribute): Likewise.
8206         * c-convert.c (convert): Likewise.
8207         * c-format.c (check_format_types): Likewise.
8208         * c-objc-common.c (c_tree_printer): Likewise.
8209         * c-typeck.c (build_unary_op, build_conditional_expr,
8210         build_binary_op): Likewise.
8211         * calls.c (try_to_integrate, expand_call,
8212         emit_library_call_value_1): Likewise.
8213         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
8214         Likewise.
8215         * cgraphunit.c (record_call_1, cgraph_analyze_function,
8216         cgraph_expand_function): Likewise.
8217         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
8218         * coverage.c (build_fn_info_type, build_ctr_info_type,
8219         build_gcov_info, create_coverage): Likewise.
8220         * dbxout.c (dbxout_init): Likewise.
8221         * diagnostic.c (diagnostic_report_current_function): Likewise.
8222         * dojump.c (do_jump): Likewise.
8223         * dwarf2out.c (dwarf2_name): Likewise.
8224         * except.c (init_eh): Likewise.
8225         * explow.c (expr_size, int_expr_size): Likewise.
8226         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
8227         Likewise.
8228         * expr.c (store_expr, store_constructor, safe_from_p,
8229         expand_expr_real, do_store_flag, try_casesi): Likewise.
8230         * function.c (push_function_context_to, pop_function_context_from,
8231         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
8232         put_var_into_stack, allocate_struct_function, current_function_name):
8233         Likewise.
8234         * integrate.c (copy_decl_for_inlining, expand_inline_function):
8235         Likewise.
8236         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
8237         lhd_print_error_function): Likewise.
8238         * opts.c (handle_option, decode_options): Likewise.
8239         * passes.c (open_dump_file): Likewise.
8240         * print-tree.c (print_node): Likewise.
8241         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
8242         expand_decl_cleanup, emit_case_nodes): Likewise.
8243         * stor-layout.c (variable_size): Likewise.
8244         * toplev.c (announce_function, wrapup_global_declarations,
8245         check_global_declarations, compile_file, default_tree_printer,
8246         process_options, lang_dependent_init, finalize): Likewise.
8247         * tree-dump.c (dequeue_and_dump): Likewise.
8248         * tree-inline.c (remap_decl, remap_block, copy_body_r,
8249         initialize_inlined_parameters, declare_return_variable,
8250         inlinable_function_p, expand_call_inline, optimize_inline_calls,
8251         walk_tree, copy_tree_r): Likewise.
8252         * tree-optimize.c (tree_rest_of_compilation): Likewise.
8253         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
8254         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
8255         variably_modified_type_p, dump_tree_statistics): Likewise.
8256         * varasm.c (assemble_variable, compare_constant, copy_constant,
8257         force_const_mem, compute_reloc_for_constant, output_constant,
8258         output_addressed_constants, initializer_constant_valid_p): Likewise.
8259
8260 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
8261
8262         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
8263
8264 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
8265
8266         * doc/install.texi: Reflect autoconf and automake version for
8267         libffi. Update autoconf version to 2.59.
8268
8269 2004-03-13  Roger Sayle  <roger@eyesopen.com>
8270
8271         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
8272         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
8273         make_range, build_range_check, fold_range_test, unextend,
8274         constant_boolean_node, fold_binary_op_with_conditional_arg,
8275         fold_truthop, fold_mathfn_compare, fold_inf_compare,
8276         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
8277         with lang_hooks.foo ().
8278
8279 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
8280
8281         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
8282
8283 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
8284
8285         * doc/install.texi: Note status of -fnew-ra.
8286
8287 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
8288
8289         PR middle-end/14470
8290         * expr.c (store_expr): Call emit_queue before generating the move
8291         from the temporary to the original target.  Protect the temporary
8292         from emit_queue.
8293
8294 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
8295
8296         PR target/14533
8297         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
8298         other than UNSPEC_GOTOFF.
8299
8300 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
8301
8302         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
8303         to arm_legitimate_index_p.  Update all callers with SET as default
8304         value.
8305         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
8306         range if OUTER is a sign-extend operation on QImode.  Correctly
8307         reject shift operations on sign-extended QImode addresses.
8308         (bad_signed_byte_operand): Delete.
8309         (arm_extendqisi_mem_op): New function.
8310         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
8311         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
8312         constraints.
8313         (CONSTRAINT_LEN): New.
8314         (EXTRA_CONSTRAINT): Delete.  Replace with...
8315         (EXTRA_CONSTRAINT_STR): ... this.
8316         (PREDICATE_CODES): Remove bad_signed_byte_operand.
8317         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
8318         is now always default.
8319         (define_splits for bad sign-extend loads): Delete.
8320         (arm_extendqisi, arm_extendqisi_v5): Likewise.
8321         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
8322         Rework 'U' constraint to 'Uv'.
8323         * arm-protos.h: Remove bad_signed_byte_operand.  Add
8324         arm_extendqisi_mem_op.
8325         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
8326         Add Uq constraint.
8327
8328 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
8329
8330         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
8331         with targetm version.
8332
8333         PR target/14567
8334         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
8335         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
8336         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
8337         Update all users of RS6000_ARG_SIZE.
8338         (function_arg_advance): Count fregno using mode size.
8339         (function_arg): Handle long double split over regs and memory.
8340         (function_arg_partial_nregs): Likewise.
8341         (rs6000_va_arg): Repackage complex args.
8342
8343 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
8344
8345         PR target/14047
8346         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
8347         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
8348         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
8349
8350 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
8351
8352         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
8353         prototype.
8354         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
8355         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
8356
8357 2003-03-12  Andrew Pinski  <apinski@apple.com>
8358
8359         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
8360         Use ret instead of result. Use addr instead of base.
8361
8362 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
8363
8364         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
8365         fixes required by libstdc++ and update installation instructions
8366         for libstdc++.a.
8367
8368 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
8369
8370         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
8371         leading '@' on fastcall symbols before stripping suffix.
8372
8373 2004-03-12  Roger Sayle  <roger@eyesopen.com>
8374
8375         * combine.c (unmentioned_reg_p): New function to check whether an
8376         expression is a "specialization" of another, i.e. that there are
8377         no registers or memory references mentioned in the first that don't
8378         appear in the second.
8379         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
8380         (combine_instructions): Also try combining instructions using the
8381         REG_EQUAL note from a preceding log-linked instruction.
8382
8383 2004-03-12  Roger Sayle  <roger@eyesopen.com>
8384
8385         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
8386
8387 2004-03-12  Matt Austern  <austern@apple.com>
8388
8389         * target.h (struct gcc_target): New target hook, unwind_label.
8390         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
8391         * output.h (default_emit_unwind_label): New function.
8392         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
8393         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
8394         (TARGET_SUPPORTS_HIDDEN): New target macro.
8395         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
8396         that corresponds to this FDE.
8397         (FRAME_BEGIN_LABEL): Allow target to override default label.
8398         (output_call_frame_info): If FDEs are linknonce, then use extra
8399         indirection for FDE encoding, output a label for each FDE, and
8400         output an empty label for each function without an FDE.
8401         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
8402         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
8403         decls with DECL_ONE_ONLY set, if that macro is defined.
8404         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
8405         for a SUPPORTS_ONE_ONLY target.
8406         * config/darwin-protos.h (darwin_unique_section): Declare.
8407         (darwin_asm_named_section): Likewise.
8408         (darwin_section_type_flags): Likewise.
8409         (darwin_non_lazy_pcrel): Likewise.
8410         (darwin_emit_unwind_label): Likewise.
8411         (darwin_make_decl_one_only): Likewise.
8412         * config/darwin.c (machopic_finish): Get rid of tweak that
8413         eliminate stubs for symbols that are defined.
8414         (darwin_encode_section_info): Don't treat weak functions as defined.
8415         (darwin_make_decl_one_only): Define.
8416         (darwin_asm_named_section): Likewise.
8417         (darwin_section_type_flags): Likewise.
8418         (darwin_unique_section): Likewise.
8419         (darwin_emit_unwind_label): Likewise.
8420         (darwin_non_lazy_pcrel): Likewise.
8421         (darwin_asm_output_dwarf_delta): Difference between two labels is
8422         local only if both labels are local.
8423         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
8424         (ASM_MAKE_LABEL_LINKONCE): Likewise.
8425         (TARGET_SUPPORTS_HIDDEN): Likewise.
8426         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
8427         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
8428         (FRAME_BEGIN_LABEL): Likewise.
8429         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
8430         (ASM_DECLARE_FUNCTION_NAME): Likewise.
8431         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
8432         (TARGET_ASM_UNIQUE_SECTION): Define.
8433         (EH_FRAME_SECTION_NAME): Define.
8434         (EH_FRAME_SECTION_ATTR): Likewise.
8435         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
8436         (TARGET_ASM_NAMED_SECTION): Likewise.
8437         (TARGET_SECTION_TYPE_FLAGS): Likewise.
8438         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
8439         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
8440         TARGET_ASM_EMIT_UNWIND_LABEL.
8441
8442 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8443
8444         * builtins.c (expand_builtin_mathfn): Add pow10* to the
8445         existing exp10* case.
8446         (expand_builtin): Likewise.
8447
8448 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
8449
8450         * doc/tm.texi (registers) <Values in Registers>: Add
8451         entry for REGMODE_NATURAL_SIZE.
8452
8453 2004-03-12  Richard Henderson  <rth@redhat.com>
8454
8455         PR target/14547
8456         * target.h (struct gcc_target): Move calls substructure before
8457         booleans.  Add split_complex_arg.
8458         * function.c (assign_parms, split_complex_args): Use it.
8459         * calls.c (expand_call): Likewise.
8460         (split_complex_values): Likewise.  Check for splittable types
8461         before allocating memory.
8462         (split_complex_types): Likewise.
8463         * system.h (SPLIT_COMPLEX_ARGS): Poison.
8464         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
8465         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
8466         * config/alpha/alpha.c (alpha_split_complex_arg): New.
8467         (TARGET_SPLIT_COMPLEX_ARG): New.
8468         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
8469         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
8470         (rs6000_override_options): Zap it for non-AIX.
8471         (rs6000_function_value): Use targetm.calls.split_complex_arg.
8472         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
8473         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
8474         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
8475         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
8476         SPLIT_COMPLEX_ARGS entry.
8477
8478 2004-03-11  Richard Henderson  <rth@redhat.com>
8479
8480         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
8481         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
8482         (alpha_emit_xfloating_arith): Update to match.
8483         (alpha_emit_xfloating_compare): Likewise.
8484         (alpha_emit_xfloating_cvt): Likewise.
8485         (alpha_emit_xfloating_libcall): Take already built symbol,
8486         mark call const.
8487         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
8488         op1 in a register.
8489
8490 2004-03-11  Richard Henderson  <rth@redhat.com>
8491
8492         PR target/14539
8493         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
8494
8495         * simplify-rtx.c (simplify_relational_operation): Fix typo.
8496
8497 2004-03-11  Richard Henderson  <rth@redhat.com>
8498
8499         PR middle-end/14477
8500         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
8501
8502 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
8503
8504         PR target/14262
8505         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
8506         defined, pass small BLKmode values in registers in the low-order part.
8507
8508 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
8509
8510         * combine.c (if_then_else_cond): Check for NULL return value of
8511         simplify_gen_subreg.
8512
8513 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
8514
8515         PR target/14496
8516         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
8517         TARGET_SINGLE_FLOAT.
8518
8519 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
8520
8521         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
8522         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
8523         * config/ia64/ia64.c (ia64_init_libfuncs): New.
8524         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
8525
8526 2004-03-11  Roger Sayle  <roger@eyesopen.com>
8527
8528         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
8529         -((int)X>>C) where C is an integer constant one bit less than the
8530         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
8531         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
8532
8533         * simplify-rtx.c (simplify_unary_operation): Also implement the
8534         above transformations at the RTL level.
8535
8536 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
8537
8538         * real.c (encode_ibm_extended): Do round low word.
8539
8540 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
8541
8542         * config/arm/arm.md (is_xscale): Comment this attribute and move
8543         it a bit further up in the file, closer to related attributes.
8544
8545 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
8546
8547         * config/host-solaris.c (sol_gt_pch_use_address): Add
8548         missing terminating marker to comment.
8549
8550 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
8551
8552         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
8553         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
8554         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
8555         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
8556         move_operand as source predicate in all cases.
8557         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
8558         Test reg_or_0_operand.  Use move_operand as source predicate.
8559         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
8560         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
8561         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
8562         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
8563         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
8564         Use move_operand as source predicate.  Remove 'K' constraint.
8565         (*movqi_internal): Likewise movqi_internal.
8566         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
8567         reg_or_0_operand.  Use move_operand as source predicate.
8568         (*movsf_softfloat): Likewise movsf_internal2.
8569         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
8570         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
8571         (*movdf_softfloat): Likewise movdf_internal2.
8572         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
8573         for DImode if !TARGET_64BIT.
8574         (mips_legitimize_move): Simplify accordingly.
8575
8576 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
8577
8578         PR/14362
8579         * var-tracking.c (struct variable_def): Added field refcount.
8580         (variable_htab_free): Decrease the refcount and delete variable
8581         only if there are no more references.
8582         (unshare_variable): New function.
8583         (vars_copy_1): Increase refcount instead of copying the variable.
8584         (variable_union): Share the variables where possible, unshare
8585         the variables if needed.
8586         (variable_different_p): Return false if var1 and var2 are
8587         the same structure.
8588         (variable_was_changed): Init the refcount of new variable.
8589         (set_frame_base_location): Unshare variable if needed.
8590         (set_variable_part): Init the refcount of new variable.
8591         Unshare the variables if needed.
8592         (delete_variable_part): Unshare the variables if needed.
8593         (emit_notes_for_differences_1): Init the refcount of new variable.
8594         (vt_add_function_parameters): Do not add function parameters to
8595         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
8596         (vt_initialize): Do not add frame_base_decl to IN set of
8597         ENTRY_BLOCK_PTR because it is unused anyway.
8598
8599 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
8600
8601         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
8602         (vars_copy): Likewise.
8603         (variable_union): Likewise.
8604         (set_variable_part): Likewise.
8605         (delete_variable_part): Likewise.
8606
8607 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
8608
8609         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
8610         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
8611         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
8612         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
8613         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
8614         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
8615         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
8616         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
8617         config/stormy16/stormy16.c: Fix comment typos and formatting.
8618
8619 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
8620
8621         * configure: Regenerate, since I forgot to while committing Paolo's
8622         changes.
8623
8624 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
8625
8626         PR ada/14131
8627         Move language detection to the top level.
8628         * configure.ac: Remove code to detect languages,
8629         it now lives exclusively in the top level.
8630         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
8631         top level, renamed to ACX_PROG_GNAT.
8632
8633 2004-03-10  Richard Henderson  <rth@redhat.com>
8634
8635         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
8636         extra arguments.
8637         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
8638         and host_xmake_file fragments.
8639         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
8640         (gt_pch_restore): Similarly for gt_pch_use_address.
8641         (default_gt_pch_get_address): New.
8642         (mmap_gt_pch_get_address): Split out of gt_pch_save.
8643         (default_gt_pch_use_address): Split out of gt_pch_restore.
8644         (mmap_gt_pch_use_address): Likewise.
8645         * hooks.c (hook_voidp_size_t_null): Remove.
8646         (hook_bool_voidp_size_t_false): Remove.
8647         * hooks.h: Likewise.
8648         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
8649         default_ or mmap_ definitions.
8650         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
8651         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
8652         and gt_pch_use_address.
8653         * config/host-linux.c, config/host-solaris.c: New files.
8654         * config/x-linux, config/x-solaris: New files.
8655         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
8656         Update for changed definition.
8657         (darwin_rs6000_gt_pch_use_address): Likewise.
8658         * doc/hostconfig.texi: Update docs.
8659
8660 2004-03-10  Richard Henderson  <rth@redhat.com>
8661
8662         PR c/14517
8663         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
8664         except for pedantic c90 mode.
8665
8666 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
8667
8668         * configure.ac: Bump AC_PREREQ to 2.59.
8669         * configure: Regenerate.
8670
8671 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
8672
8673         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
8674         (exp10_optab, exp2_optab): Define corresponding macros.
8675         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
8676         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
8677         using exp10?f2 and exp2?f2 patterns.
8678         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
8679         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
8680         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
8681         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
8682
8683         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
8684         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
8685         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
8686
8687 2004-03-10  Anthony Green  <green@redhat.com>
8688
8689         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
8690
8691 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
8692
8693         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
8694         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
8695         __LONGDOUBLE128.
8696         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
8697         TARGET_OS_AIX_CPP_BUILTINS.
8698         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
8699         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
8700         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
8701         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
8702         previous change.
8703
8704 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8705
8706         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
8707
8708 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
8709
8710         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
8711         __LONGDOUBLE128 on AIX.
8712
8713 2004-03-10  Andrew Haley  <aph@redhat.com>
8714
8715         PR optimization/14381
8716         * function.c (expand_function_end): Emit a blockage insn before
8717         the epilogue when -fnon-call-exceptions is used.
8718
8719         * except.c (expand_start_all_catch): Make comment more accurate.
8720
8721 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
8722
8723         PR target/14480
8724         * config/rs6000/t-rtems: Add missing file on branch.
8725
8726 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
8727
8728         * dbxout.c (dbxout_symbol_location): Do not output references
8729         to optimized-out constant pool symbols.
8730
8731 2004-03-10  Andreas Schwab  <schwab@suse.de>
8732
8733         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
8734         twon34_r.
8735
8736 2004-03-09  James E Wilson  <wilson@specifixinc.com>
8737
8738         * alias.c (alias_sets_might_conflict_p): New.
8739         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
8740         * common.opt (Wstrict-aliasing=): New.
8741         * flags.h (warn_strict_aliasing): Change type to int.
8742         * opts.c (warn_strict_aliasing): Change type to int.
8743         (common_handle_option): Handle OPT_Wstrict_aliasing_.
8744         * tree.h (alias_sets_might_conflict_p): Declare it.
8745         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
8746
8747 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
8748
8749         PR bootstrap/12371
8750         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
8751         (CALL_USED_REGISTERS): Likewise.
8752         (REG_CLASS_CONTENTS): Likewise.
8753         (REG_ALLOC_ORDER): New.
8754         (REGNO_REG_CLASS): Use regno_reg_class.
8755         * config/m68k/m68k.c: Add regno_reg_class array.
8756
8757 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
8758
8759         * config/ia64/ia64.md (divsi3): Fix algorithm.
8760           (udivsi3): Ditto.
8761           (setf_exp_xf): Remove '*' from name.
8762         * testsuite/gcc.dg/20040309-1.c: New test.
8763
8764 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
8765
8766         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
8767         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
8768         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
8769         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
8770         (sparc_aout_select_rtx_section): Don't check
8771         SUNOS4_SHARED_LIBRARIES.
8772         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
8773
8774 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
8775
8776         PR other/14474
8777         * doc/md.texi (Pattern Ordering, Dependent Patterns)
8778         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
8779         INTERNALS".
8780
8781 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
8782
8783         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
8784         (LIBGCC_SPEC): Update to match.
8785
8786 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
8787
8788         * c-decl.c (last_function_parms, last_function_parm_tags)
8789         (last_function_parm_others, current_function_parms)
8790         (current_function_parm_tags, current_function_parm_others):
8791         Delete.
8792         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
8793         New macros.
8794         (grokdeclarator): For function definitions, save the arg-info
8795         block from the declarator in DECL_ARGUMENTS.
8796         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
8797         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
8798         contains only PARM_DECLs.  Improve diagnostics.
8799         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
8800         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
8801         (store_parm_decls_newstyle): Take the function to operate on,
8802         and an arg-info block, as arguments; don't get anything from
8803         current_function_* globals.
8804         (store_parm_decls_oldstyle): Likewise.
8805         (store_parm_decls): Pass fndecl and its arg-info block down to
8806         store_parm_decls_newstyle/oldstyle.  Send functions with empty
8807         argument lists through store_parm_decls_newstyle to reduce
8808         overhead.
8809         (pushdecl): Comment on the problems with the call to copy_node.
8810         Clear DECL_ARGUMENTS of the old node after copying it, if it
8811         is an arg-info block instead of a chain of decls.
8812         (start_function): Do not manipulate current_function_parm* or
8813         last_function_parm*.
8814
8815 2004-03-09  Roger Sayle  <roger@eyesopen.com>
8816             Andrew Pinski  <pinskia@physics.uc.edu>
8817
8818         * ifcvt.c (noce_try_sign_mask): New function to transform
8819         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
8820         (noce_process_if_block): Call noce_try_sign_mask.
8821
8822 2004-03-09  Andrew Pinski  <apinski@apple.com>
8823
8824         * c-typeck.c (tagged_types_tu_compatible_p):
8825         Fix typo.
8826
8827 2004-03-09  Roger Sayle  <roger@eyesopen.com>
8828
8829         * simplify-rtx.c (simplify_const_relational_operation): New function
8830         renamed from simplify_relational_operation.
8831         (simplify_relational_operation): Change prototype to accept an
8832         additional mode argument.  Call simplify_const_relational_operation.
8833         (simplify_gen_relational): Update simplify_relational_operation call.
8834         (simplify_ternary_operation): Update simplify_relational_operation
8835         subroutine call to use simplify_const_relational_operation instead.
8836
8837         * rtl.h (simplify_const_relational_operation): Prototype here.
8838         (simplify_relational_operation): Add addtional mode argument.
8839
8840         * combine.c (combine_simplify_rtx): Update calls to
8841         simplify_relational_operation.
8842         (simplify_set): Likewise.
8843         (gen_binary): Likewise.
8844         * cse.c (fold_rtx): Likewise.
8845         * dojump.c (compare_from_rtx): Likewise.
8846         (do_compare_rtx_and_jump): Likewise.
8847         * integrate.c (subst_constants): Likewise.
8848         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
8849
8850 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
8851
8852         * config/m32r/m32r.md: Remove all define_peephole's.
8853
8854 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
8855
8856         * config/rs6000/rs6000.md: Remove trailing whitespace.
8857
8858 2004-03-08  Eric Christopher  <echristo@redhat.com>
8859
8860         * Makefile.in (site.exp): Add libiconv variable definition.
8861
8862 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
8863
8864         * configure: Regenerate for config/accross.m4 correction.
8865
8866 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
8867
8868         PR target/14480
8869         * config/rs6000/t-rtems: Add missing file on branch.
8870
8871 2004-03-08  Roger Sayle  <roger@eyesopen.com>
8872
8873         PR middle-end/14289
8874         * c-typeck.c (c_mark_addressable): A register variable should
8875         be considered global if its not automatic, i.e. TREE_PUBLIC,
8876         TREE_STATIC or DECL_EXTERNAL.
8877         * function.c (put_var_into_stack): Call abort when placing a
8878         hard register into the stack, if x_parm_reg_stack_loc is NULL.
8879
8880 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
8881
8882         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
8883         ("*extendqisi2_short_displ"): Likewise.
8884
8885 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
8886
8887         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
8888         (comp_operator): Likewise.
8889         * config/pdp11/pdp11-protos.h: Remove corresponding
8890         prototypes.
8891
8892 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
8893
8894         * expr.c (highest_pow2_factor_for_type): Rename into
8895         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
8896         TYPE_ALIGN when the target is a COMPONENT_REF.
8897         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
8898
8899 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
8900
8901         * config/rs6000/rs6000.c: Formatting fix.
8902         (legitimate_offset_address_p): Correct offset range check.
8903
8904         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
8905         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
8906         and MASK_STRING.
8907
8908 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
8909
8910         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
8911         for little endian.
8912         ("ashrdi3_no_power"): Disable for little endian.
8913         (ashrdi3): Same.
8914
8915 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8916
8917         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
8918         builtins.
8919
8920 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
8921
8922         PR target/14471
8923         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
8924         case, checking for -no-mul-bug-abort option.
8925         * configure, config.in: Regenerate.
8926         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
8927         and -mno-mul-bug-workaround.
8928         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
8929         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
8930         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
8931         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
8932         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
8933         sure mulu.d is not last on cache-line.
8934         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
8935         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
8936         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
8937         (TARGET_SWITCHES): New options -mmul-bug-workaround and
8938         -mno-mul-bug-workaround.
8939         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
8940         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
8941         * config/cris/cris.c (cris_operand_extend_operator): Clarify
8942         relation to MULT in head comment.
8943         (cris_op_str): Abort for MULT.
8944         (cris_print_operand) <case '!'>: New case.
8945
8946 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
8947
8948         PR debug/11983
8949         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
8950         dw_val_class_vec.  Replace use throughout file.
8951         (dw_float_const): Delete.
8952         (dw_vec_const): New.
8953         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
8954         throughout file.
8955         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
8956         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
8957         (size_of_die): Adjust dw_val_class_vec sizing.
8958         (output_die): Output dw_val_class_vec.
8959         (insert_int, extract_int, insert_float): New functions.
8960         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
8961         Handle CONST_VECTOR.
8962         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
8963
8964 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
8965
8966         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
8967         AltiVec abi cannot co-exist.
8968
8969         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
8970
8971 2004-03-07  Jan Hubicka  <jh@suse.cz>
8972
8973         * except.c (emit_to_new_bb_before):  Break fallthru edges.
8974
8975 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
8976
8977         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
8978         ("*lshrsi3"): Also accept an immediate for 68HC12.
8979         ("*ashrsi3_const"): Likewise.
8980         ("*ashrsi3"): Likewise.
8981         ("*ashlsi3_const"): Likewise.
8982         ("*ashlsi3"): Likewise.
8983         ("cmphi_1_hc12"): Compare two hard register by pushing them and
8984         comparing with a pop; don't use a split for that.
8985         ("cmphi split"): Disable compare split for 68HC12.
8986
8987         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
8988         the status operands if they have side effects.
8989
8990 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
8991
8992         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
8993         definition.
8994         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
8995         config/h8300/h8300.h, config/ia64/ia64.h,
8996         config/mcore/mcore.h, config/mmix/mmix.h,
8997         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
8998         config/stormy16/stormy16.h, config/v850/v850.h,
8999         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
9000         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
9001         definition.
9002
9003 2004-03-07  Roger Sayle  <roger@eyesopen.com>
9004
9005         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
9006         <XOR_EXPR>: Fold x ^ x as zero.
9007         <AND_EXPR>: Fold x & x as x.
9008
9009 2004-03-07  Roger Sayle  <roger@eyesopen.com>
9010
9011         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
9012         "foo++ == const" into "++foo == const+incr".
9013
9014 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
9015
9016         * config/mips/mips.c (mips_in_small_data_p): Return false if
9017         TARGET_ABICALLS.
9018
9019 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
9020
9021         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
9022         the stack register.
9023         (expand_prologue): Don't make an interrupt or a trap handler a far
9024         symbol.
9025         (m68hc11_initial_elimination_offset): Likewise.
9026
9027 2004-03-06  Richard Henderson  <rth@redhat.com>
9028
9029         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
9030
9031 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
9032
9033         * config/ns32k/ns32k-protos.h: Add a prototype for
9034         ns32k_notice_update_cc.
9035         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
9036         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
9037         ns32k_notice_update_cc.
9038
9039 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
9040
9041         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
9042         "*load_multiple_si"): Allow only if reload_completed.
9043         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
9044         Likewise.
9045
9046 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
9047
9048         * config/vax/vax-protos.h: Add a prototype for
9049         vax_notice_update_cc.
9050         * config/vax/vax.c (vax_notice_update_cc): New.
9051         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
9052         vax_notice_update_cc.
9053
9054 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
9055
9056         * collect2.c (main): Only export initfunc and finifunc if
9057         LD_INIT_SWITCH not defined.
9058         (scan_prog_file): Only export constructors and destructors if
9059         LD_INIT_SWITCH not defined.  Only export symbols not found in
9060         shared objects.
9061
9062 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9063
9064         * pa.md (icacheflush): Reorder operands to make match_scratch operand
9065         last.
9066         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
9067         from calls to gen_icacheflush.
9068
9069 2004-03-06  Richard Henderson  <rth@redhat.com>
9070
9071         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
9072         (TARGET_LONG_DOUBLE_128): New.
9073         (TARGET_SWITCHES): Add long-double-{128,64}.
9074         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
9075         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
9076         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
9077         (WIDEST_HARDWARE_FP_SIZE): New.
9078         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
9079         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
9080         if TARGET_VAX_FLOAT.
9081         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
9082         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
9083
9084 2004-03-06  Richard Henderson  <rth@redhat.com>
9085
9086         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
9087         botched rtx class conversion.
9088
9089 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9090
9091         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
9092         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
9093
9094         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
9095         macros.
9096         * fold-const.c (fold_mathfn_compare, fold): Likewise.
9097
9098 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
9099
9100         PR target/14343
9101         * config/i386/i386.md (movv2di_internal): Conditionalize on
9102         TARGET_SSE, not TARGET_SSE2.
9103
9104 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
9105
9106         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
9107         duplicated line.
9108
9109 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9110
9111         * builtins.c: Consistently use logN not log* in comments.
9112
9113 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
9114
9115         * rtl.h (mem_expr_equal_p): Function prototype added.
9116         * cfgcleanup.c (merge_memattrs): New function.
9117         (flow_find_cross_jump): Call merge_memattrs for matching insns.
9118         * emit-rtl.c (mem_expr_equal_p): New function.
9119
9120 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
9121
9122         * objc/objc-act.c (synth_module_prologue): Const-qualify
9123         objc_selector type if using the GNU runtime; fix generated
9124         signatures for objc_msg_lookup and objc_msg_lookup_super
9125         to match what GNU ObjC headers provide; reformat and clean up.
9126         (synth_self_and_ucmd_args): Use previously constructed (and
9127         hence possibly const-qualified) objc_selector type.
9128
9129 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
9130
9131         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
9132
9133 2004-03-05  Jason Merrill  <jason@redhat.com>
9134
9135         * tree.h (TYPE_HASH): Use TYPE_UID.
9136         (TREE_HASH): New macro with old definition of TYPE_HASH.
9137         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
9138         (build_array_type, build_function_type): Likewise.
9139         (build_method_type_directly): Likewise.
9140         (build_offset_type, build_complex_type): Likewise.
9141         (type_hash_list, attribute_hash_list): Likewise. Now static.
9142         * except.c: s/TYPE_HASH/TREE_HASH/.
9143
9144 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
9145
9146         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
9147         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
9148         __va_ndx by 2 words when referencing an argument on the stack.
9149         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
9150         words when an arg on the stack is first seen.
9151
9152 2004-03-05  Paul Brook  <paul@codesourcery.com>
9153
9154         * arm.h (ARM_FLAG_VFP): Remove.
9155         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
9156         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
9157
9158 2004-03-05  Paul Brook  <paul@codesourcery.com>
9159
9160         * function.c (assign_parms): Include pretend alignment offset.
9161
9162 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9163
9164         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
9165         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
9166
9167 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
9168
9169         * configure.ac: When passing --enable-languages to subdir
9170         configure when host != build, make sure we don't pass an empty
9171         value.
9172         * configure: Regenerate.
9173
9174 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
9175
9176         PR 13577
9177         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
9178         options.
9179
9180 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
9181
9182         * simplify-rtx.c (simplify_relational_operation): If
9183         flag_wrapv is set, do not move terms between the two
9184         side of a relational operator.
9185
9186 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
9187
9188         * rtlanal.c: Include target.h and output.h
9189         (rtx_cost, address_cost, default_address_cost): Move from...
9190         * cse.c (rtx_cost, address_cost, default_address_cost):
9191         ... this file.
9192         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
9193         * Makefile.in: Adjust dependencies.
9194
9195 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
9196
9197         * cse.c (cse_end_of_basic_block): Make static.
9198         * local-alloc.c (function_invariant_p): Move to
9199         reload1.c.
9200         * loop.c (libcall_other_reg, record_excess_regs):
9201         Make static.
9202         * reload1.c (function_invariant_p): Moved here
9203         from local-alloc.c, made static.
9204         * rtl.h (cse_end_of_basic_block, function_invariant_p,
9205         libcall_other_reg, record_excess_regs): Remove
9206         declarations.
9207
9208 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
9209
9210         * config/m32r/m32r.c (signed_comparison_operator): Add a
9211         missing parenthesis.
9212
9213 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
9214
9215         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
9216         going to call mmap again.  Read the file into the right place.
9217         Give a fatal error if we have to relocate.
9218
9219 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
9220
9221         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
9222         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
9223
9224 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
9225
9226         PR other/14354
9227         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
9228         round the same.  When rounding, clear bits that would cause a
9229         second rounding in pack_d.
9230         (_fpmul_parts): Ditto.  Remove #if 0:d code.
9231
9232 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
9233
9234         PR c++/14425, c++/14426
9235         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
9236         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
9237         Change C++ definitions to accept a 'const int' argument;
9238         the prototypes already do.
9239         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
9240         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
9241         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
9242         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
9243         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
9244         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
9245         end in ..._int; change them to accept an int instead of a char
9246         as the last parameter.
9247
9248 2004-03-04  Phil Edwards  <phil@codesourcery.com>
9249
9250         * genmultilib:  Change '=' to '-' when translating option names
9251         to directory names.
9252
9253 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9254
9255         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
9256         stack slot for temp used for result of BLKmode but in integral mode.
9257
9258 2004-03-04  Jan Hubicka  <jh@suse.cz>
9259
9260         * reload.c (find_reloads): Reorganize if seqeunce to switch.
9261
9262         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
9263         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
9264
9265 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
9266
9267         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
9268         * testsuite/gcc.dg/20040303-1.c: New test.
9269
9270 2004-03-04  Steven Bosscher  <stevenb@suse.de>
9271
9272         * ppro.md: Rewrite as a DFA pipeline description.
9273         * i386.md: Remove all uses of the ppro_uops attribute.
9274         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
9275         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
9276         ix86_sched_reorder, ix86_variable_issue,
9277         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
9278         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
9279         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
9280         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
9281         * athlon.md (athlon_ssecmp_load): Fix comment
9282
9283 2004-03-04  Stuart Hastings  <stuart@apple.com>
9284
9285         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
9286
9287 2004-03-04  Stuart Hastings  <stuart@apple.com>
9288
9289         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
9290         686, tell Darwin assembler to allow prefetch insns, non-empty def
9291         of SUBTARGET_OPTION_TRANSLATE_TABLE.
9292
9293 2004-03-04  DJ Delorie  <dj@redhat.com>
9294
9295         PR optimization/14282
9296         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
9297         between a call and the assignment of its return value.
9298
9299 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
9300
9301         * config/h8300/h8300.c: Put a comment for every function.
9302
9303 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
9304
9305         * config/h8300/h8300.md: Add comments about peephole2's.
9306
9307 2004-03-04  Steven Bosscher  <stevenb@suse.de>
9308
9309         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
9310
9311 2004-03-04  Jan Hubicka  <jh@suse.cz>
9312
9313         * cfgcleanup.c (thread_jump): Update call of cselib_init.
9314         * cselib.c (cselib_record_memory): New static variable.
9315         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
9316         Give up on memories when asked for.
9317         (cselib_init): Accept new argument.
9318         * cselib.h (cselib_init): Update prototype.
9319         * gcse.c (local_cprop_pass): Update call of cselib_init.
9320         * loop.c (load_mems): Update call of cselib_init.
9321         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
9322         * sched-deps.c (sched_analyze): Update call of cselib_init.
9323
9324 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
9325             GP <gp@qnx.com>
9326
9327         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
9328         when compiling PIC.
9329
9330 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
9331
9332         PR/14362
9333         * var-tracking.c (track_expr_p): Do not track variables which
9334         should be ignored for debugging purposes.
9335
9336 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9337
9338         * real.c (encode_ibm_extended): Don't bother rounding low double.
9339         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
9340         when fmt->pnan < fmt->p.
9341
9342 2004-03-04  Eric Christopher  <echristo@redhat.com>
9343
9344         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
9345         only range of valid arg registers and fixed_regs.
9346
9347 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9348
9349         PR target/14406
9350         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
9351         (abstf2, abstf2_internal): New define_expand.
9352
9353 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
9354
9355         PR optimization/14235
9356         * expr.c (convert_move): Copy the source to a new pseudo
9357         when converting from a sub-word source to a larger-than-word
9358         register which conflicts with the source.
9359
9360 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
9361
9362         PR 13728
9363         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
9364         parameters with the same name, unless one is a forward decl.
9365         Do not issue a redundant-redeclaration warning for forward
9366         decls of parameters.
9367
9368 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
9369
9370         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
9371         configuration.
9372
9373 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
9374
9375         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
9376
9377 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9378
9379         * target-def.h (TARGET_OPTF): Delete.
9380         * c-opts.c (TARGET_OPTF): Define.
9381
9382 2004-03-04  Jan Hubicka  <jh@suse.cz>
9383
9384         * cselib.c (cselib_finish): Fix another miss-application of my previous
9385         patch.
9386
9387 2004-03-03  Mike Stump  <mrs@apple.com>
9388
9389         Add framework support for darwin.
9390
9391         * c-incpath.c: Include target.h and machmode.h.
9392         (add_path): Use a consistent style for cpp_dir.  Initialize
9393         p->construct to 0.
9394         (add_cpp_dir_path): New.
9395         (register_include_chains): Add use of extra_includes callback.
9396         (hook_void_int): Add.
9397         (target_c_incpath): Add.
9398         * c-incpath.h (add_cpp_dir_path): New.
9399         (target_c_incpath_s): Add.
9400         (target_c_incpath): Add.
9401         (C_INCPATH_INIT): Add.
9402         * c-opts.c (c_common_missing_argument,
9403         c_common_handle_option): Add -F argument processing.
9404         * c.opt: Add -F argument processing.
9405         * gcc.c (trad_capable_cpp): Add -F argument processing.
9406         * cppfiles.c (find_file_in_dir): Update to use construct
9407         callback.
9408         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
9409         cpp_get_prev): New.
9410         (_cpp_find_file): Use search_path_exhausted.
9411         (make_cpp_dir): Initialize construct to 0.
9412         * cpplib.h (missing_header_cb
9413         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
9414         (cpp_callbacks): Add missing_header
9415         (cpp_dir): Add construct.
9416         * target-def.h: (TARGET_OPTF): New.
9417         * hooks.c (hook_void_int, hook_void_charptr): Add.
9418         * hooks.h (hook_void_int, hook_void_charptr): Add.
9419         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
9420         $(MACHMODE_H) dependencies.
9421         * doc/invoke.texi (Darwin Options): Document -F.
9422         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
9423         (TARGET_OPTF): Add.
9424         * fix-header.c (target_c_incpath): Add.
9425
9426         * config/darwin-c.c: Add c-incpath.h include.
9427         (using_frameworks, find_subframework_file,
9428         find_subframework_header, add_system_framework_path,
9429         frameworks_in_use, num_frameworks, max_frameworks,
9430         add_framework, find_framework, struct framework_header,
9431         framework_header_dirs, framework_construct_pathname,
9432         find_subframework_file, add_system_framework_path,
9433         add_framework_path, framework_defaults,
9434         darwin_register_frameworks, find_subframework_header): Add.
9435         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
9436         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
9437         (CPP_SPEC): Add __APPLE_CC__ support.
9438         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
9439
9440 2004-03-04  Jan Hubicka  <jh@suse.cz>
9441
9442         * cselib.c (cselib_finish): Fix miss-application of my previous
9443         patch.
9444
9445 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
9446
9447         * hooks.c (hook_tree_tree_identity): New.
9448         * hooks.h: Add a prototype for hook_tree_tree_identity.
9449         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
9450         instead of MD_ASM_CLOBBERS.
9451         * system.h (MD_ASM_CLOBBERS): Poison.
9452         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
9453         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
9454         * target.h (gcc_target): Add md_asm_clobbers.
9455         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
9456         (ix86_md_asm_clobbers): New.
9457         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
9458         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
9459         TARGET_MD_ASM_CLOBBERS.
9460
9461 2004-03-03  Stuart Hastings  <stuart@apple.com>
9462
9463         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
9464
9465 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
9466
9467         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
9468
9469         * config/sparc/sparc.h (ASM_FLOAT): Delete.
9470         (ASM_DOUBLE): Likewise.
9471         (ASM_LONGDOUBLE): Likewise.
9472         * config/sparc/pbd.h (ASM_INT_OP): Delete.
9473
9474 2003-03-03  Richard Henderson  <rth@redhat.com>
9475
9476         PR opt/13862
9477         * cselib.c (cselib_record_sets): Don't record multiple sets in
9478         asm insns.
9479
9480 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
9481
9482         * common.opt: Add description of the new -fgcse-after-reload flag.
9483
9484         * flags.h (flag_gcse_after_reload): Declaration of global variable.
9485
9486         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
9487         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
9488         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
9489         get_bb_avail_insn, hash_scan_set_after_reload,
9490         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
9491         gcse_after_reload, get_bb_avail_insn): New functions to implement
9492         gcse-after-reload.
9493         (gcse_after_reload_main): New function, the main entry point to
9494         gcse-after-reload.
9495
9496         * rtl.h (gcse_after_reload_main): Declaration of the new function.
9497
9498         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
9499
9500         * toplev.c (flag_gcse_after_reload): Initialization.
9501
9502         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
9503
9504         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
9505         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
9506         the gcse after reload optimization.
9507
9508         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
9509         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
9510         parameters.
9511
9512         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
9513
9514 2004-03-03  Nicolas Pitre <nico@cam.org>
9515
9516         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
9517         small negative values.
9518
9519 2004-03-03  Jan Hubicka  <jh@suse.cz>
9520
9521         * cselib.c (hash_table):  Remove GTY marker.
9522         (reg_values): Turn into array.
9523         (used_regs): Likewise.
9524         (n_used_regs): New static variable.
9525         (reg_values_old): Kill.
9526         (clear_table): Update uses of arrays.
9527         (cselib_lookup): Likewise.
9528         (cselib_record_set): Likewise.
9529         (cselib_init): Likewise.
9530         (cselib_finish): Likewise.
9531         (cselib_udpate_varray_sizes): Kill.
9532         * cselib.h (cselib_update_varray_sizes): Kill.
9533
9534 2004-03-03  Paul Brook  <paul@codesourcery.com>
9535
9536         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
9537
9538 2004-03-03  Jan Hubicka  <jh@suse.cz>
9539
9540         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
9541         Rename from ...; make statistics transparent.
9542         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
9543         (loc_descriptor): New structure.
9544         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
9545         add_statistics):
9546         New static function.
9547         (ggc_record_overhead, dump_statistics): New global function.
9548         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
9549         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
9550         from ...; accept locations
9551         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
9552         ggc_realloc, ggc_alloc_typed):  ... this one.
9553         from ...; accept locations
9554         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
9555         ggc_alloc_stat): Rename from ... ; pass locations
9556         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
9557         ... this one.
9558         (ggc_alloc_stat): Record overehead.
9559         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
9560         ggc_realloc, ggc_alloc_typed):  Turn to macros
9561         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
9562         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
9563         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
9564         * langhooks.h (lhd_make_node): Declare.
9565         (LANG_HOOKS_MAKE_TYPE): Default to new function,
9566         * langhooks.c (lhd_make_node): New.
9567         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
9568         locations.
9569         (rtx_alloc, swallow_copy_rtx): ... this one.
9570         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
9571         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
9572         * toplpev.c (finalize): Dump stats.
9573         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
9574         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
9575         Rename from ... ; pass locators.
9576         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
9577         build?,  build_decl): Declare.
9578         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
9579         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
9580         Declare.
9581         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
9582         build?,  build_decl): New macros.
9583         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
9584         * statistics.h: New file.
9585
9586 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
9587             Richard Sandiford  <rsandifo@redhat.com>
9588
9589         * config/mips/mips.h (MASK_FIX_SB1): Bump.
9590         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
9591         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
9592         * config/mips/mips.c (mips_output_division): Fill the branch delay
9593         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
9594         TARGET_FIX_R4400.
9595         (mips_output_division): Adjust accordingly.
9596         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
9597         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
9598
9599 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
9600
9601         * alias.c (rtx_equal_for_memref_p): Use predicates
9602         to test rtx classes and new rtx class codes, possibly
9603         splitting conditionals that tested against '<' and 'o'.
9604         * caller-save.c (save_call_clobbered_regs): Likewise.
9605         * combine.c (contains_muldiv, find_split_point, subst,
9606         combine_simplify_rtx, simplify_if_then_else,
9607         simplify_set, simplify_logical, expand_compound_operation,
9608         make_compound_operation, if_then_else_cond, known_cond,
9609         apply_distributive_law, cached_nonzero_bits,
9610         cached_num_sign_bit_copies, simplify_shift_const,
9611         gen_binary, simplify_comparison, update_table_tick,
9612         record_value_for_reg, get_lsat_value_validate): Likewise.
9613         * cse.c (mention_regs, find_best_addr, find_comparison_args,
9614         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
9615         Likewise.
9616         * emit-rtl.c (copy_insn_1): Likewise.
9617         * expr.c (force_operand): Likewise.
9618         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
9619         * flow.c (notice_stack_pointer_modification_1,
9620         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
9621         and_reg_cond, elim_reg_cond): Likewise.
9622         * function.c (update_epilogue_consts): Likewise.
9623         * genattrtab.c (attr_rtx_1): Likewise.
9624         * genopinit.c (gen_insn): Likewise.
9625         * integrate.c (subst_constants): Likewise.
9626         * jump.c (reversed_comparison_code_parts,
9627         reversed_comparison_code, delete_related_insns,
9628         rtx_renumbered_equal_p): Likewise.
9629         * local-alloc.c (block_alloc): Likewise.
9630         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
9631         canonicalize_condition): Likewise.
9632         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
9633         Likewise.
9634         * optabs.c (add_equal_node, expand_binop): Likewise.
9635         * predict.c (estimate_probability): Likewise.
9636         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
9637         * recog.c (validate_replace_rtx_1, comparison_operator,
9638         offsettable_address_p, constrain_operands): Likewise.
9639         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
9640         Likewise.
9641         * regclass.c (scan_one_insn): Likewise.
9642         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
9643         * regrename.c (kill_autoinc_value): Likewise.
9644         * reload.c (find_reusable_reload, find_reloads,
9645         reg_overlap_mentioned_for_reload_p): Likewise.
9646         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
9647         * rtl.c (copy_rtx): Likewise.
9648         * rtl.h (CONSTANT_P, INSN_P): Likewise.
9649         * rtlanal.c (commutative_operand_precedence): Likewise.
9650         * sched-deps.c (conditions_mutex_p): Likewise.
9651         * sched-rgn.c (is_cfg_nonregular): Likewise.
9652         * simplify-rtx.c (simplify_gen_binary,
9653         simplify_gen_relational, simplify_replace_rtx,
9654         simplify_unary_operation, simplify_binary_operation,
9655         simplify_ternary_operation, simplify_rtx): Likewise.
9656         * unroll.c (reg_dead_after_loop): Likewise.
9657         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
9658         print_operand): Likewise.
9659         * config/arc/arc.c (proper_comparison_operator): Likewise.
9660         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
9661         Likewise.
9662         * config/avr/avr.c (_reg_unused_after): Likewise.
9663         * config/frv/frv.c (frv_ifcvt_modify_tests,
9664         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
9665         * config/i386/i386.c (ix86_comparison_operator,
9666         ix86_carry_flag_operator, fcmov_comparison_operator,
9667         arith_or_logical_operator, print_operand,
9668         ix86_expand_binary_operator, ix86_binary_operator_ok):
9669         Likewise.
9670         * config/i386/i386.md: Likewise.
9671         * config/ia64/ia64.c (not_postinc_memory_operand,
9672         ia64_print_operand, update_set_flags, errata_emit_nops):
9673         Likewise.
9674         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
9675         CONSTRAINT_OK_FOR_S): Likewise.
9676         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
9677         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
9678         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
9679         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
9680         Likewise.
9681         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
9682         eqne_comparison_operator, signed_comparison_operator):
9683         Likewise.
9684         * config/mips/mips.c (cmp_op, symbolic_expression_p):
9685         Likewise.
9686         * config/mmix/mmix (mmix_foldable_comparison_operator,
9687         mmix_comparison_operator): Likewise.
9688         * config/pa/pa.c (hppa_legitimize_address): Likewise.
9689         * config/rs6000/rs6000.c (stmw_operation,
9690         branch_comparison_operator, trap_comparison_operator,
9691         ccr_bit): Likewise.
9692         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
9693         * config/s390/s390.c (s390_alc_comparison,
9694         s390_slb_comparison):L Likewise.
9695         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
9696         Likewise.
9697         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
9698         noov_compare_op, noov_compare64_op, v9_regcmp_op,
9699         emit_hard_tfmode_operation, reg_unused_after)
9700         * doc/md.texi, doc/rtl.texi: Likewise.
9701
9702         * ra-debug.c: Add 2004 to list of copyright years.
9703         * unroll.c: Likewise.
9704
9705         * combine.c (simplify_logical): Remove dummy test,
9706         (apply_distributive_law): Fix typo in comment.
9707         GET_CODE (x) == AND so x is a commutative binary op.
9708         * jump.c (delete_related_insns): simplify loop
9709         condition, move testing of RTX codes inside the loop.
9710         (rtx_renumbered_equal_p): do not use RTX_CODE.
9711         * rtl.c (rtx_class): Declare as enum rtx_class.
9712         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
9713         Move to RTX_COMM_COMPARE class.
9714         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
9715         Move to RTX_CONST_OBJ class.
9716         * rtl.h (enum rtx_class): New declaration,
9717         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
9718         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
9719         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
9720         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
9721         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
9722         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
9723         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
9724         OBJECT_P): New macros.
9725         * config/sparc/sparc.c (noov_compare_op): Remove register
9726         from parameter.
9727
9728 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
9729
9730         * target.h: Remove texi jargons in comments.
9731
9732 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9733
9734         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
9735         threshold to 0x4f.
9736
9737         Revert:
9738         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
9739         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
9740         as well.
9741         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
9742         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
9743
9744 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9745
9746         * doc/md.texi (cbranchmode4): New.
9747
9748 2004-03-02  Eric Christopher  <echristo@redhat.com>
9749
9750         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
9751         fix_trunc.
9752         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
9753         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
9754         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
9755         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
9756
9757 2004-03-02  Richard Henderson  <rth@redhat.com>
9758
9759         PR middle-end/11767
9760         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
9761         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
9762         before the compare, if flag_non_call_exceptions.
9763
9764 2004-03-02  Richard Henderson  <rth@redhat.com>
9765
9766         PR middle-end/14327
9767         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
9768         emitting the label, not after.
9769
9770 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9771
9772         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
9773         (m68hc11_mov_addr_mode): Likewise.
9774         (m68hc11_override_options): Initialize them based on target.
9775         (register_indirect_p): Allow a MEM for indirect addressing modes and
9776         use flags to control what is allowed.
9777         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
9778         supported addressing modes.
9779         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
9780         (go_if_legitimate_address_internal): Likewise.
9781         (m68hc11_indirect_p): Likewise and check the mode.
9782         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
9783
9784 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9785
9786         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
9787         (expand_builtin_setjmp_setup): Use
9788         targetm.builtin_setjmp_frame_value instead of
9789         BUILTIN_SETJMP_FRAME_VALUE.
9790         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
9791         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
9792         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
9793         * target.h (gcc_target): Add builtin_setjmp_frame_value.
9794         * targhooks.c (default_builtin_setjmp_frame_value): New.
9795         * targhooks.h: Add a prototype for
9796         default_builtin_setjmp_frame_value.
9797         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
9798         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
9799
9800 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9801
9802         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
9803         sequences of moves.
9804         (add peepholes): New peepholes to optimize sequences adding small
9805         constants.
9806         (bset peepholes): New peepholes to transform an OR in a bset form
9807         (bclr peepholes): Likewise for bclr form.
9808         (cmp peepholes): New peepholes to avoid register copies when comparing.
9809
9810 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9811
9812         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
9813         to separate push from moves.
9814         ("*pushdf_internal"): Likewise.
9815         ("*pushsf_internal"): Likewise.
9816         ("*pushsi_internal"): Likewise.
9817         ("movdi_internal"): Use define_insn_and_split; non push operand.
9818         ("movdf_internal"): Likewise.
9819         ("movsf_internal"): Likewise.
9820         ("movsi_internal"): Likewise.
9821         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
9822         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
9823         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
9824
9825 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9826
9827         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
9828         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
9829         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
9830         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
9831         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
9832         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
9833         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
9834         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
9835         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
9836         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
9837         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
9838
9839 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9840
9841         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
9842         (SOFT_XY_REGNUM): Define.
9843         (cmp split): Use the above instead of hard coded numbers.
9844         (8-bit op split): No need to check the mode; allow Q_REG.
9845         (ashift split): Adjust the first operand if it uses the SP and we
9846         are pushing the shifted value.
9847         (plus shift split): Fix when a source is in register D+X.
9848         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
9849
9850 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9851
9852         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
9853         comparing with Z register.
9854
9855 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9856
9857         * cfgloop.h (struct loop_desc): Removed.
9858         (struct loop): Fields simple, desc and has_desc removed.
9859         (simple_loop_p, count_loop_iterations): Declaration removed.
9860         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
9861         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
9862         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
9863         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
9864         simple_loop_exit_p, variable_initial_value, variable_initial_values,
9865         simple_condition_p, simple_increment, count_strange_loop_iterations,
9866         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
9867         Removed.
9868         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
9869
9870 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9871
9872         * genattrtab.c: Don't handle MATCH_INSN.
9873         * genrecog.c: Likewise.
9874         * gensupport.c: Likewise.
9875         * rtl.def (match_insn): Remove.
9876         * doc/md.texi (match_insn, match_insn2): Remove.
9877
9878 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
9879
9880         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
9881         macro results in memory allocation.
9882
9883 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
9884
9885         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
9886         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
9887         %(fbsd_dynamic_linker),
9888         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
9889         config/i386/freebsd.h
9890         * config/arm/freebsd.h: Ditto.
9891         * config/i386/freebsd.h: Ditto.
9892         * config/i386/freebsd64.h: Ditto.
9893         * config/ia64/freebsd.h: Ditto.
9894         * config/rs6000/sysv4.h: Ditto.
9895         * config/sparc/freebsd.h: Ditto.
9896
9897 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
9898
9899         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
9900
9901 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9902
9903         * rtl.def (define_combine): Remove.
9904
9905 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9906
9907         * config/h8300/h8300.md: Tweak formatting.
9908
9909 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9910
9911         * config/h8300/h8300.md (*cmphi_h8300): Rename to
9912         *cmphi_h8300_znvc.
9913         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
9914
9915 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
9916
9917         PR bootstrap/14356
9918         * gcc.c (process_command): Remove const-qualification from argv.
9919         (main): Likewise.
9920
9921 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9922
9923         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
9924         pushqi1_h8300hs_advanced.  Adjust its caller.
9925         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
9926         Adjust its caller.
9927
9928 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
9929
9930         * Makefile.in (install-libgcc, install-multilib): Pass
9931         mkinstalldirs var to libgcc.mk.
9932
9933 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
9934
9935         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
9936         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
9937
9938 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
9939
9940         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
9941         * config/h8300/h8300.md: Split several peephole2's, each into
9942         two.
9943
9944 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9945
9946         * dominance.c (recount_dominator): Handle postdominators.
9947
9948 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
9949
9950         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
9951         (NUM_SYMBOL_TYPES): Likewise.
9952         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
9953         (mips_unspec_address): Declare.
9954         (mips_gotoff_page, mips_gotoff_global): Delete.
9955         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
9956         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
9957         (mips_symbolic_constant_p, mips_symbolic_address_p)
9958         (mips_symbol_insns): Handle new symbol types.
9959         (general_symbolic_operand): New predicate.
9960         (mips_unspec_address): Make extern.
9961         (mips_gotoff_page, mips_gotoff_global): Delete.
9962         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
9963         Handle new symbol types.
9964         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
9965         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
9966         mips_unspec_address directly.
9967         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
9968         the documentation of -mexplicit-relocs.
9969
9970 2004-03-01  Jeff Law  <law@redhat.com>
9971
9972         * fold-const.c (fold): An equality comparison of a non-weak object
9973         against zero has a known result.  Similarly an equality comparison
9974         of the address of two non-weak, unaliased symbols has a known result.
9975
9976         * ggc-page.c (struct page_entry): New field PREV.
9977         (ggc_alloc): Update PREV field appropriately.
9978         (sweep_pages): Likewise.
9979         (ggc_free): Likewise.  Use PREV field rather than loop to
9980         improve ggc_free performance.
9981
9982 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
9983
9984         * config/mips/mips.c (mips_output_division): Use the division
9985         instruction to fill the delay slot of a zero check.
9986         (mips_idiv_insns): Adjust accordingly.
9987
9988 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
9989
9990         * config.gcc: Create a default tmake_file for linux, and use
9991         it in all but two linux clauses.  Comment those two.
9992
9993 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
9994
9995         * combine.c (try_combine):  Do not refer to is_replaced.
9996         (gen_lowpart_for_combine):  Perverse subregs now have a
9997         more politically correct name.
9998         * cse.c (cse_insn): Likewise.
9999         * jump.c: Fix bogus reference to delete_insn.
10000
10001 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
10002
10003         PR debug/14328
10004         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
10005         constants as signed values.
10006
10007         PR middle-end/13448
10008         * c-tree.h (readonly_warning): Rename to ...
10009         (readonly_error): ... this.
10010         * c-typeck.c (build_unary_op): Adjust accordingly.
10011         (readonly_warning): Rename to ...
10012         (readonly_error): ... this and issue errors, not warnings.
10013         (build_modify_expr): Call readonly_error, not readonly_warning.
10014         (c_expand_asm_operands): Likewise.
10015         * tree-inline.c (optimize_inline_calls): Do not inline functions
10016         after errors have occurred.
10017
10018 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
10019
10020         * configure.ac: Rearrange some threading code for clarity;
10021         add section comment.
10022         * configure: Regenerate.
10023
10024 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10025
10026         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
10027         typos.
10028         * doc/cppopts.texi: Fix a typo.
10029
10030 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10031
10032         * config/i386/i386.md: Fix formatting.
10033
10034 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
10035
10036         * configure.ac: Add some comments delineating sections of code.
10037
10038         * doc/install.texi: Note that libada uses autoconf 2.57 also.
10039
10040         * doc/install.texi: Fix idiot typo in previous commit.
10041
10042         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
10043
10044 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10045
10046         * config/h8300/h8300.md: Add comments about peephole2's.
10047
10048 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10049
10050         * config/h8300/h8300.md: Tweak operand numbers of some
10051         peephole2's.
10052
10053 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10054
10055         * config/h8300/h8300.md: Tweak comments about peephole2's.
10056
10057 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
10058
10059         PR middle-end/14203
10060         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
10061         instead of testing whether DECL_RTL is not NULL.
10062
10063 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10064
10065         * config/sh/sh.c: Fix formatting.
10066
10067 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10068
10069         * config/sh/sh.c: Convert to ISO-C.
10070
10071 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
10072
10073         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
10074         my previous patch.
10075
10076         * config/darwin.h (machopic_finish): Output stub even if the
10077         symbol is already defined.
10078
10079 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10080
10081         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
10082
10083 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10084
10085         * genattr.c (main): Don't define
10086         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
10087         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
10088         (DFA_PIPELINE_INTERFACE): Likewise.
10089         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
10090         (DFA_PIPELINE_INTERFACE): Likewise.
10091
10092 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
10093
10094         * config/mips/mips.md (tstsi, tstdi): Delete.
10095
10096 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10097
10098         * config/mips/mips.c (override_options): Remove an obsolete
10099         duplicate definition of the "e" constraint.
10100         * config/mips/mips.h: Update a comment accordingly.
10101
10102 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10103
10104         * config/mips/mips.md: Complete the unfinished R4000
10105         multiply/shift errata workaround.  Improve documentation.
10106         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
10107         has a hilo hazard.
10108         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
10109         (muldi3, muldi3_internal): Likewise.
10110         (muldi3_internal2): Remove, replacing with...
10111         (muldi3_mult3, muldi3_r4000): ...these new patterns.
10112         (mulsidi3): Take the errata into account.
10113         (mulsidi3_32bit): Remove, replacing with...
10114         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
10115         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
10116         (umulsidi3): Take the errata into account.
10117         (umulsidi3_32bit): Remove, replacing with..
10118         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
10119         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
10120         TARGET_FIX_R4000.
10121         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
10122         (smuldi3_highpart, umuldi3_highpart): Likewise.
10123         * doc/invoke.texi: Document the errata workaround.
10124
10125 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10126
10127         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
10128         * config/mips/mips.h (MASK_FIX_SB1): Bump.
10129         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
10130         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
10131         * config/mips/mips.c (mips_idiv_insns): New function.
10132         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
10133         (mips_output_division): Add a workaround for the R4000 divide/shift
10134         errata.
10135         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
10136         the length of an "idiv" instruction.
10137         * doc/invoke.texi: Document the new switches.
10138
10139 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10140
10141         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
10142         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
10143
10144 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10145
10146         PR optimization/14229
10147         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
10148
10149 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
10150
10151         * fold-const.c (fold): Strip NOPs that change the signedness
10152         for RSHIFT too.  Expand comment.
10153
10154 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
10155
10156         PR optimization/7871
10157         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
10158         from or to call insns.
10159
10160 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
10161
10162         PR optimization/7871
10163         * flow.c (propagate_one_insn): Interpret calls as setting global
10164         registers, not merely clobbering them.
10165
10166 2004-02-27  Dale Johannesen  <dalej@apple.com>
10167
10168         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
10169         config/darwin-protos.h:  Ditto.
10170         config/darwin.h:  Remove call to it.
10171         * combine.c (distribute_notes): Do not place a REG_DEAD note
10172         when value is both set and used.
10173
10174 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10175
10176         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
10177         as well.
10178         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
10179         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
10180
10181 2004-02-27  Andrew Pinski  <apinski@apple.com>
10182
10183         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
10184         Speedup common case of the type values being in the same order.
10185
10186 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
10187
10188         * config/ia64/ia64.h (no-inline-float-divide): New option.
10189         * config/ia64/ia64.h (no-inline-int-divide): New option.
10190         * config/ia64/ia64.h (no-inline-sqrt): New option.
10191         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
10192         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
10193         * config/ia64/ia64.c (ia64_override_options): Modify error
10194         checking for inlined division/sqrt.
10195
10196 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10197
10198         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
10199         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
10200         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
10201         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
10202         copyright.
10203
10204 2004-02-27  Paul Brook  <paul@codesourcery.com>
10205
10206         * function.c (assign_parms): Don't count pretend args for alignment.
10207
10208 2004-02-27  Richard Henderson  <rth@redhat.com>
10209
10210         * passes.c: New file.
10211         * Makefile.in (OBJS-common): Add it.
10212         * diagnostic.c (rtl_dump_and_exit): Move decl ...
10213         * flags.h (rtl_dump_and_exit): ... here.
10214         * output.h (size_directive_output, last_assemble_variable_decl):
10215         Move from toplev.c.
10216         * rtl.h (reg_alloc): Move from toplev.c.
10217         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
10218         struct dump_file_info, enum dump_file_index, dump_file_tbl,
10219         open_dump_file, close_dump_file, rest_of_decl_compilation,
10220         rest_of_type_compilation, rest_of_handle_final,
10221         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
10222         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
10223         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
10224         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
10225         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
10226         rest_of_handle_tracer, rest_of_handle_if_conversion,
10227         rest_of_handle_if_after_combine, rest_of_handle_web,
10228         rest_of_handle_branch_prob,
10229         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
10230         rest_of_handle_addressof, rest_of_handle_sibling_calls,
10231         rest_of_handle_jump_bypass, rest_of_handle_inlining,
10232         rest_of_handle_null_pointer, rest_of_handle_combine,
10233         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
10234         rest_of_handle_gcse, rest_of_handle_loop_optimize,
10235         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
10236         (decode_d_option): Use enable_rtl_dump_file.
10237         (compile_file, finalize, do_compile): Move profile+combine+graph
10238         cleanup to finish_optimization_passes.
10239         * toplev.h (init_optimization_passes, finish_optimization_passes,
10240         enable_rtl_dump_file): Declare.
10241
10242 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
10243             Roger Sayle  <roger@eyesopen.com>
10244
10245         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
10246         operands to build a tree with swapped operands.
10247         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
10248         'unsignedp' predicate to specify the signedness.
10249
10250 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10251
10252         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
10253         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
10254         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
10255         comment typos and formatting.  Follow spelling conventions.
10256
10257 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
10258
10259         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
10260         fix_truncsfsi2.
10261
10262         * config/rs6000/spe.md: Delete spe_efsctuiz.
10263         Add spe_fixuns_truncsfsi2.
10264         Add spe_fix_truncsfsi2.
10265
10266 2004-02-26  Eric Christopher  <echristo@redhat.com>
10267
10268         * c-lex.c (c_lex_string_translate): New variable.
10269         (lex_string): Use to determine string translation.
10270         * c-pragma.h: Prototype.
10271         * c-parse.in (start_string_translation): New. Set above.
10272         (stop_string_translation): Ditto.
10273         (attribute, attribute_list, asm_def, asm_stmt,
10274         asm_operand): Use above functions.
10275         * cp/parser.c (cp_parser_declaration): Translate strings
10276         unless token is RID_EXTERN. Set c_lex_string_translate
10277         for recursive use.
10278         (cp_parser_asm_definition): Only translate argument strings
10279         to asms.
10280         (cp_parser_asm_operand_list): Ditto.
10281         (cp_parser_attribute_list): Do not translate attribute strings.
10282
10283 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10284
10285         * stmt.c (expand_start_case_dummy): Remove.
10286         * tree.h: Remove the corresponding prototype.
10287
10288 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10289
10290         * builtins.c (apply_args_register_offset): Remove.
10291         * tree.h: Remove the corresponding prototype.
10292
10293 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10294
10295         * stor-layout.c (is_pending_size): Remove.
10296         * tree.h: Remove the corresponding prototype.
10297
10298 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10299
10300         * recog.c (validate_replace_src): Remove.
10301         * recog.h: Remove the corresponding prototype.
10302
10303 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10304
10305         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
10306         MAYBE_REG_PARM_STACK_SPACE.
10307         * function.c: Likewise.
10308         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
10309         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
10310         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
10311         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
10312
10313 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10314
10315         * c-decl.c (c_expand_deferred_function): Remove.
10316         * c-tree.h: Remove the corresponding prototype.
10317
10318 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10319
10320         * postreload.c (reload_cse_move2add): Generate just a PLUS
10321         instead of an entire SET.
10322
10323 2004-02-26  Jan Hubicka  <jh@suse.cz>
10324
10325         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
10326         /pentium4m.
10327         * i386.c (override_options): Add support for new CPUs.
10328         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
10329         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
10330         constants.
10331         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
10332
10333 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
10334
10335         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
10336
10337 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
10338
10339         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
10340         (sparc_emit_fixunsdi): New prototype.
10341         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
10342         (sparc_emit_fixunsdi): New function.
10343         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
10344         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
10345         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
10346         to sparc_emit_floatunsdi.
10347         (fixuns_truncsfdi2): New expander.
10348         (fixuns_truncdfdi2): Likewise.
10349
10350 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
10351
10352         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
10353         unless HAVE_cc0.
10354
10355 2004-02-25  Richard Henderson  <rth@redhat.com>
10356
10357         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
10358         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
10359         use (op0-op1) == 0 if op0 is a pointer.
10360         * config/alpha/alpha.md (cmpdi): Use some_operand.
10361         (three comparison combine splits): Remove.
10362
10363 2004-02-25  Richard Henderson  <rth@redhat.com>
10364
10365         PR c/12794
10366         * c-common.c (handle_alias_attribute): Reject the attribute if
10367         current_function_decl is set.
10368
10369 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
10370
10371         * config.gcc: Add comment describing extra_gcc_objs.
10372         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
10373         * configure.ac (extra_gcc_objs): New substitution variable.
10374         (host_extra_gcc_objs): Don't substitute.
10375         * configure: Regenerate.
10376         * Makefile.in: Use extra_gcc_objs.
10377
10378 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
10379
10380         * doc/contrib.texi: Add an entry for myself.
10381
10382 2004-02-25  Jan Hubicka  <jh@suse.cz>
10383
10384         * basic-block.h (make_eh_edge, break_superblocks): Declare.
10385         * cfgbuild.c (make_eh_edge):  Make global.
10386         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
10387         * except.c (build_post_landing_pads, connect_post_landing_pads,
10388         dw2_build_landing_pads, sjlj_emit_function_enter,
10389         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
10390         sjlj_build_landing_pads): Update CFG.
10391         (emit_to_new_bb_before): New function.
10392         (finish_eh_generation): Do not rebuild the CFG.
10393
10394 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10395
10396         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
10397         target_cpu_default defines.
10398         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
10399         * pa.h (TARGET_DEFAULT): Likewise.
10400
10401 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
10402
10403         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
10404         comparisons with regard to signedness.
10405
10406 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
10407
10408         * arm.c (thumb_legitimize_address): New function.
10409         * arm-protos.h: Prototype it.
10410         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
10411         (LEGITIMIZE_ADDRESS): Use it.
10412
10413 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
10414
10415         * reload1.c (reload): Only spill eliminable register with multiple
10416         adjacent elimination alternatives if all alternatives fail.
10417
10418 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
10419
10420         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
10421         is -4095...+4095 inclusive.
10422
10423 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
10424
10425         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
10426         the bootstrap failure with Sun CC 5.4 and 5.5.
10427
10428 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
10429
10430         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
10431         which modifies NEWREG.
10432         (cse_condition_code_reg): Update the mode of CC_REG in
10433         CC_SRC_INSN on our own.
10434
10435 2004-02-24  Michael Matz  <matz@suse.de>
10436
10437         * config/i386/i386.c (ix86_comp_type_attributes): Check for
10438         regparm attributes.
10439
10440 2004-02-24  Richard Henderson  <rth@redhat.com>
10441
10442         * toplev.c (dump_file_tbl): Rename from dump_file.
10443         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
10444         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
10445         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
10446         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
10447         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
10448         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
10449         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
10450         s/rtl_dump_file/dump_file/g.
10451
10452 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
10453
10454         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
10455         (spe_fixuns_truncsfsi2): Delete.
10456
10457         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
10458         (fixuns_truncsfsi2): Delete.
10459
10460 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
10461
10462         PR/14240
10463         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
10464
10465 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
10466
10467         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
10468
10469 2004-02-24  Jason Merrill  <jason@redhat.com>
10470
10471         * tree.c (check_qualified_type): New fn.
10472         (get_qualified_type): Use it.  If type already has the desired
10473         quals, just return it.
10474         * tree.h: Declare it.
10475
10476 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
10477
10478         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
10479         TARGET_SCHED_FINISH_GLOBAL): New macros.
10480
10481         * target.h (md_init_global, md_finish_global): Function
10482         declarations corresponding to new target macros.
10483
10484         * haifa-sched.c (sched_init, sched_finish): Allow target to
10485         call the new schedular hooks.
10486
10487         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
10488         call to update_life_info.
10489
10490         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
10491         flag_schedule_insns for SH4.
10492
10493         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
10494         find_set_regmode_weight, find_insn_regmode_weight,
10495         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
10496         sh_variable_issue, high_pressure, ready_reorder,
10497         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
10498         functions used to throttle the insn movement in first
10499         scheduling pass for SH.
10500
10501         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
10502         TARGET_SCHED_FINISH_GLOBAL.
10503
10504 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
10505
10506         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
10507         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
10508         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
10509         symbols in sections named by the user.
10510         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
10511         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
10512         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
10513         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
10514         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
10515         the above.
10516         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
10517         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
10518         one more pseudo to further improve code generation.
10519         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
10520         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
10521         inside UNSPEC.
10522         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
10523         * config/frv/frv.c (frv_legitimate_address_p): Added
10524         allow_double_reg_p argument.  Adjust all callers.  Use it to
10525         decide whether to enable double-register indirect addressing.
10526         (frv_funcdesc_alias_set): Remove.
10527         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
10528         register.  Emit movdi_ldd.
10529         (ldd_address_operand): New.
10530         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
10531         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
10532         (PREDICATE_CODES): Add ldd_address_operand.
10533         * config/frv/frv.md (movdi_ldd): New.
10534         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
10535         intermediate computations if possible.
10536         (symGOTOFF2reg_i): Fix harmless typo.
10537         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
10538         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
10539         relocated p_vaddr to vaddr type.
10540         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
10541         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
10542         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
10543         MEM, or use a funcdesc alias set.  Use regular move instead of
10544         ldd.
10545         (dbl_memory_one_insn_operand): Recognize function descriptors by
10546         type or by alias set, and don't split them.
10547         * config/frv/frv.md (call, call_value): Never use call_internal
10548         for fdpic.
10549         (call_internal, call_value_internal): Never match for FDPIC.
10550         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
10551         call_value_fdpicsi): Require FDPIC.
10552         (ldd): Removed.
10553         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
10554         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
10555         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
10556         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
10557         FDPIC.  Compute data base address.
10558         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
10559         before the other self-specs are processed.
10560         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
10561         Build with -fPIC.
10562         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
10563         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
10564         inhibit_libc is defined.
10565         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
10566         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
10567         __FRV_FDPIC__.
10568         (__RELOC_POINTER): Define.
10569         (_Unwind_IteratePhdrCallback): Use it.
10570         * config/frv/frv.h (Twrite): Define.
10571         (TRANSFER_FROM_TRAMPOLINE): Use it.
10572         * config/frv/linux.h (INVOKE__main): Undefine.
10573         (Twrite): Override.
10574         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
10575         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
10576         (-mlibrary-pic): Emphasize that this option generates EABI code.
10577         (-mcpu): Add fr550.
10578         (-mpack): Remove.
10579         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
10580         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
10581         and CONSTs in FDPIC mode.
10582         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
10583         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
10584         * config/frv/frv.c (move_source_operand): Don't accept symbolic
10585         constants.
10586         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
10587         rather than 'i' constraint for the 2-instruction alternative.
10588         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
10589         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
10590         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
10591         EXTRA_CONSTRAINT_FOR_Y.
10592         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
10593         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
10594         (addsi3): Change 'Y' constraint to 'Q'.
10595         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
10596         * reload.c (CONST_POOL_OK_P): New macro.
10597         (find_reloads): Use it to decide whether a constant can be forced
10598         into memory.
10599         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
10600         constant satisfies got12_operand.
10601         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
10602         (frv_legitimate_address_p): Check for valid unspec offsets using
10603         got12_operand rather than frv_legitimate_fdpic_operand_p.
10604         (frv_legitimate_fdpic_operand_p): Delete.
10605         (frv_emit_movsi): Abort if we try to use the FDPIC register during
10606         or after reload.
10607         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
10608         TARGET_FDPIC.
10609         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
10610         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
10611         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
10612         (frv_fdpic_fptr_operand): Don't declare here.
10613         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
10614         rather than fdpic_got12_operand.
10615         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
10616         got12_operand and const_unspec_operand.
10617         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
10618         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
10619         (symbolic_operand): Remove.
10620         (const_unspec_operand): New predicate.
10621         * config/frv/frv.md (*movsi_got): Use got12_operand.
10622         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
10623         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
10624         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
10625         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
10626         * config/frv/frv.c (frv_unspec): New structure.
10627         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
10628         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
10629         validate CONST indices.  Use frv_output_const_unspec to print them.
10630         (frv_print_operand): Update call to unspec_got_name.  Use
10631         frv_output_const_unspec to print constant unspecs.
10632         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
10633         Reject UNSPECs otherwise.
10634         (unspec_got_name): Take the relocation number as argument, not an
10635         rtx containing it.
10636         (frv_output_addr_const_extra): Remove, replacing with...
10637         (frv_output_const_unspec): ...this new function.
10638         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
10639         (gpr_or_int12_operand): Use fdpic_got12_operand.
10640         (dbl_memory_one_insn_operand): Likewise.
10641         (fdpic_got12_operand): Use frv_const_unspec_p.
10642         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
10643         are already legitimate.  Use frv_small_data_reloc_p when deciding
10644         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
10645         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
10646         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
10647         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
10648         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
10649         label, for real this time.
10650         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
10651         representation of visibility.
10652         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
10653         such.
10654         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
10655         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
10656         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
10657         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
10658         it was explicitly disabled.
10659         (frv_stack_info): There is no need to save the link register in every
10660         frame unless TARGET_LINKED_FP is true.
10661         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
10662         frame pointer if the stack pointer might change value.
10663         (frv_return_addr_rtx): Check and process "count" argument.
10664         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
10665         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
10666         (frv_find_base_term): Declare.
10667         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
10668         (FIND_BASE_TERM): Define.
10669         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
10670         small_data_register_operand, small_data_symbolic_operand.  Add
10671         symbolic_operand.
10672         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
10673         (frv_print_operand_memory_reference, output_move_single): Remove
10674         special handling for unlegitimized sdata addresses.
10675         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
10676         and symbolic addresses.
10677         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
10678         (frv_find_base_term): New function.
10679         (int_2word_operand): Check specifically for symbolic address constants.
10680         (pic_register_operand, pic_symbolic_operand): Delete.
10681         (small_data_register_operand, small_data_symbolic_operand): Delete.
10682         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
10683         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
10684         (move_source_operand): Only accept CONSTs if they're a two-insn
10685         symbolic constant.
10686         (fdpic_got12_operand): Don't require TARGET_FDPIC.
10687         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
10688         using gen_symGOTOFF2reg*.
10689         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
10690         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
10691         themselves a cost of 3 insns.
10692         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
10693         Change predicate to symbolic_operand.
10694         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
10695         (*movsi_lda_sdata): Delete.
10696         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
10697         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
10698         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
10699         frv-*-*linux*.
10700         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
10701         label.
10702         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
10703         -multilib-library-pic.
10704         (LINK_SPEC): Add -z text for -mfdpic.
10705         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
10706         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
10707         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
10708         Override.
10709         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
10710         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
10711         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
10712         crtstuff-generated files.
10713         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
10714         * config.gcc: Add frv-*-*linux*.
10715         * config/frv/linux.h, config/frv/t-linux: New.
10716         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
10717         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
10718         when -mfdpic even if a linker script is explicitly listed.
10719         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
10720         * config/frv/frv.c (frv_override_options): Clear asm_out
10721         unaligned_op for SImode on FDPIC.
10722         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
10723         argument passed to decl_readonly_section.
10724         (frv_assemble_integer): Revert 2003-09-30's change, but make the
10725         whole block run with FDPIC even with -fno-PIC.
10726         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
10727         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
10728         symbol or label plus offset to memory.
10729         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
10730         GOTOFF and GPREL for LABEL_REF.
10731         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
10732         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
10733         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
10734         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
10735         * doc/invoke.texi: Document them.
10736         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
10737         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
10738         (frv_splittable_got_operand): Removed.
10739         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
10740         LO_SUM.  Add comments.
10741         (frv_override_options): Moved enabling of FDPIC to
10742         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
10743         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
10744         (frv_legitimize_fdpic_address): Don't duplicate logic in
10745         frv_emit_movsi.
10746         (frv_gen_GPsym2reg): New.
10747         (unspec_got_name): Added gprel.
10748         (frv_expand_fdpic_call): Add support for inlining PLTs.
10749         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
10750         (gpr_or_int12_operand): Added GPREL12.
10751         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
10752         (small_data_symbolic_operand): Fail if FDPIC.
10753         (fdpic_splittable_got_operand): Removed.
10754         (fdpic_got12_operand): Added GPREL12.
10755         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
10756         when appropriate.  Fix sdata GOTOFF.
10757         (frv_legitimate_constant_p): Require legitimate PIC operand for
10758         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
10759         (frv_assemble_integer): Move FDPIC funcdesc handling out of
10760         flag_pic case.
10761         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
10762         frv_assemble_integer fails.
10763         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
10764         (SUBTARGET_DRIVER_SELF_SPECS): New.
10765         (ASM_SPEC): Don't pass -mno-fdpic.
10766         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
10767         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
10768         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
10769         -multilib-library-pic.
10770         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
10771         condexec_si_media_operator, condexec_sf_add_operator and
10772         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
10773         and condexec_sf_unary_operator.
10774         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
10775         New.
10776         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
10777         movsi_internal.  Give them internal names.  movsi_got has type
10778         int.
10779         (fdpic got splitters): Remove.
10780         (symGPREL2reg, symGPREL2reg_hilo): New.
10781         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
10782         to -mlibrary-pic.  Map -multilib-library-pic to it.
10783         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
10784         Document.
10785         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
10786         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
10787         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
10788         (frv_cannot_force_const_mem): New function.
10789         (const_small_data_p, plus_small_data_p): Update comments on sdata
10790         on FDPIC.
10791         (frv_override_options): Set flag_pie for FDPIC too.
10792         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
10793         call-saved registers on FDPIC.
10794         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
10795         don't force LR to be preserved.
10796         (frv_expand_prologue): Likewise.
10797         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
10798         (frv_frame_pointer_required): Don't force it just because the
10799         FDPIC register is used.
10800         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
10801         operand only if !condexec_p.
10802         (frv_legitimize_address): Return the FDPIC-legitimized address.
10803         Don't match small data here on FDPIC.
10804         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
10805         symbols.  Use TRUE/FALSE instead of 1/0.
10806         (frv_local_funcdesc_p): New.
10807         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
10808         immediates when possible.
10809         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
10810         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
10811         an UNSPEC_GOT.
10812         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
10813         12-bit immediates when possible.
10814         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
10815         are not legitimate pic operands.
10816         (frv_in_small_data_p): Re-enable for FDPIC.
10817         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
10818         (FRV_GLOBAL_P): Removed.
10819         * config/frv/frv.md: Add modes to CONSTs.
10820         (movsi_got): New.
10821         (movsi_lo_sum_got): Use separate matches instead of match_dup.
10822         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
10823         (fdpic splittable operations): Match on flag_pic != 1.
10824         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
10825         * config/frv/frv.c (frv_asm_out_constructor,
10826         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
10827         bytes, not bits.
10828         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
10829         * config/frv/frv.c (frv_assemble_integer): Reject complex
10830         expressions referencing function SYMBOL_REFs.
10831         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
10832         (move_source_operand): Reject CONSTs that reference function
10833         SYMBOL_REFs on FDPIC.
10834         (frv_emit_movsi): If we get such a CONST, break it up.
10835         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
10836         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
10837         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
10838         MEM.
10839         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
10840         (frv_trampoline_size): Increase for FDPIC.
10841         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
10842         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
10843         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
10844         Disable use of GOTOFF for now.
10845         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
10846         Disable use of small data in FDPIC for now.
10847         (frv_asm_output_mi_thunk): Implement for FDPIC.
10848         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
10849         * config/frv/frv.c (frv_asm_out_constructor): Use
10850         frv_assemble_integer for FDPIC pointers.
10851         (frv_asm_out_destructor): Likewise.
10852         * config/frv/frv.md (ldd): Fix order of operands.  Use
10853         address_operand for input.
10854         2003-09-18  DJ Delorie  <dj@redhat.com>
10855         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
10856         (unspec_got_name): Correct typo.
10857         (frv_emit_movsi): Pre-expand splittable GOTs.
10858         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
10859         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
10860         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
10861         * config/frv/t-frv: Add -mfdpic multilibs.
10862         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
10863         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
10864         * config/frv/frv.c (frv_override_options): -mfdpic assumes
10865         flag_pic, default to 32-bit pics, require DWORD ops.
10866         (frv_override_options): Add W and Z constraints.
10867         (frv_expand_prologue): No pic prologue for -mfdpic.
10868         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
10869         (frv_print_operand_memory_reference): Handle GOT constants.
10870         (frv_legitimate_address_p): Allow GOT constants.
10871         (frv_legitimize_address): Handle GOT addresses too.
10872         (frv_legitimate_fdpic_operand_p): New.
10873         (frv_legitimize_fdpic_address): New.
10874         (unspec_got_name): New.
10875         (frv_output_addr_const_extra): New.
10876         (frv_expand_fdpic_call): New.
10877         (frv_fdpic_fptr_operand): New.
10878         (gpr_or_int12_operand): Handle GOT operands.
10879         (int_2word_operand): Handle GOT operands.
10880         (fdpic_operand): New.
10881         (fdpic_splittable_got_operand): New.
10882         (fdpic_got12_operand): New.
10883         (frv_emit_movsi): Handle GOT operands.
10884         (frv_assemble_integer): -mfdpic doesn't use rofixups.
10885         (frv_print_operand): Support 'g' code for GOT operands.
10886         * config/frv/frv-protos.h: Add prototypes as needed.
10887         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
10888         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
10889         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
10890         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
10891         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
10892         R_FRV_GOTOFFLO): New.
10893         (movsi_high_got, movsi_lo_sum_got): New.
10894         (*movsi_pic): Don't use this splitter for -mfdpic.
10895         (addsi3): Allow GOT references also.
10896         (call, call_value): Handle -mfdpic separately.
10897         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
10898         call_value_fdpicsi): New.
10899         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
10900         symGOTOFF2reg_i): New.
10901         * config/frv/frv.h (MASK_FDPIC): New.
10902         (TARGET_FDPIC): New.
10903         (TARGET_SWITCHES): Add -mfdpic.
10904         (FDPIC_FPTR_REGNO): New.
10905         (FDPIC_REGNO): New.
10906         (OUR_FDPIC_REG): New.
10907         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
10908         FDPIC_CALL_REGS.
10909         (REG_CLASS_NAMES): Likewise.
10910         (REG_CLASS_CONTENTS): Likewise.
10911         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
10912         (EXTRA_CONSTRAINT): Add it here.
10913         (FRV_GLOBAL_P): New.
10914         (OUTPUT_ADDR_CONST_EXTRA): New.
10915
10916 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
10917
10918         * config/sparc/sparc.h: Remove commented-out definitions of
10919         TARGET_EDOM and GEN_ERRNO_RTX.
10920
10921 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
10922
10923         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
10924         df_analyse with df_analyze.
10925
10926 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
10927
10928         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
10929         beginning of block.
10930
10931 2004-02-23  James E Wilson  <wilson@specifixinc.com>
10932
10933         * calls.c (precompute_arguments): Update comment.
10934
10935 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
10936
10937         * et-forest.c: Replace et_occurences with et_occurrences.
10938
10939 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
10940
10941         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
10942         with iv_analyze.
10943
10944 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
10945
10946         * config/i386/i386.c: Rename pni to sse3.
10947         * config/i386/i386.h: Likewise.
10948         * config/i386/i386.md: Likewise.
10949         * config/i386/pmmintrin.h: Likewise.
10950         * doc/extend.texi: Likewise.
10951         * doc/invoke.texi: Likewise.
10952
10953 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
10954             Kazu Hirata  <kazu@cs.umass.edu>
10955
10956         Remove -fwritable-strings.
10957         * c-common.c (fix_string_type): Don't check
10958         flag_writable_strings.
10959         (fix_string_type): Likewise.
10960         * c-opts.c (set_std_c89): Don't initialize
10961         flag_writable_strings.
10962         (set_std_c99): Likewise.
10963         * common.opt (fwritable-strings): Remove.
10964         * flags.h: Remove the external declaration of
10965         flag_writable_strings.
10966         * opts.c (common_handle_option) <OPT_fwritable_strings>:
10967         Remove.
10968         * toplev.c (flag_writable_strings): Remove.
10969         (f_options): Remove an entry for writable-strings.
10970         * varasm.c (const_hash_1) <STRING_CST>: Don't check
10971         flag_writable_strings.
10972         (compare_constant) <STRING_CST>: Likewise.
10973         (build_constant_desc): Likewise.
10974         * config/darwin.c (machopic_select_section): Likewise.
10975         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
10976         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
10977         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
10978         * config/mips/mips.c (mips_select_section): Likewise.
10979         (mips_encode_section_info): Likewise.
10980         * config/pa/pa.c (pa_select_section): Likewise.
10981         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
10982         * config/v850/v850.c (v850_select_section): Likewise.
10983         * doc/invoke.texi (-fwritable-strings): Remove.
10984         (-fno-const-strings): Don't mention -fwritable-strings.
10985         * doc/trouble.texi: Don't mention -fwritable-strings.
10986
10987 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
10988
10989         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
10990
10991 2004-02-23  Dale Johannesen  <dalej@apple.com>
10992
10993         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
10994         (movdf_hardfloat64):  Ditto.
10995         (movdf_softfloat64):  Ditto.
10996
10997 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
10998         * config/rs6000/rs6000.c (function_arg): call to
10999         rs6000_mixed_function_arg for DFmode moved to allow
11000         normal DFmode incoming register assignment.
11001
11002 2004-02-23  Dale Johannesen  <dalej@apple.com>
11003
11004         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
11005         (movdf_hardfloat64):  Ditto.
11006
11007 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11008
11009         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
11010         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
11011         copyright.
11012
11013 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
11014
11015         PR c/14156
11016         * c-typeck.c (c_expand_return): Change check for VAR_DECL
11017         to use DECL_P instead.
11018
11019         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
11020         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
11021
11022 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11023
11024         * Makefile.in (opts.o): Depend on target.h.
11025         * opts.c (decode_options): Use targetm.default_short_enums
11026         instead of DEFAULT_SHORT_ENUMS.
11027         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11028         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
11029         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
11030         * target.h (gcc_target): Add default_short_enums.
11031         * config/cris/cris.h: Remove a comment about
11032         DEFAULT_SHORT_ENUMS.
11033         * config/ip2k/ip2k.h: Likewise.
11034         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
11035         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
11036
11037 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
11038             Falk Hueffner  <falk@debian.org>
11039
11040         PR c/14188
11041         * builtins.c (expand_builtin_va_arg): Emit an informative message
11042         if a trap is generated.
11043         * c-typeck.c (build_function_call): Likewise.
11044
11045 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
11046
11047         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
11048         fopen.
11049         * libgcov.c: Include sys/stat.h.
11050         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
11051         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
11052         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
11053         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
11054
11055 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
11056
11057         * reorg.c: Remove comments about dead ports.
11058
11059 2004-02-22  Christopher Faylor  <cgf@redhat.com>
11060
11061         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
11062         extra host object file when targetting cygwin rather than generic
11063         object files.
11064
11065 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
11066
11067         Merge from tree-ssa:
11068         2003-11-20  Richard Henderson  <rth@redhat.com>
11069
11070                 * tree-inline.c (insert_decl_map): New.
11071                 (remap_decl, remap_type, remap_block, copy_body_r,
11072                 initialize_inlined_parameters, declare_return_variable,
11073                 remap_save_expr): Use it.
11074
11075         * function.c (copy_body_r): Add mapping from id->ret_label to
11076         id->ret_label.  Revert test for ret_label.
11077
11078 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
11079
11080         * genoutput.c (process_template): Strip trailing whitespace in @
11081         templates and issue a warning if there was any.
11082
11083 2004-02-21  Christopher Faylor  <cgf@redhat.com>
11084
11085         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
11086         object file when targetting cygwin.
11087         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
11088         overridden by top-level Makefile.
11089
11090 2004-02-21  Roger Sayle  <roger@eyesopen.com>
11091
11092         * config/i386/i386.c (standard_80387_constant_p): Also prefer
11093         the x87's load constant instructions when optimizing for size.
11094
11095 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
11096
11097         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
11098         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
11099         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
11100         * fold-const.c: Likewise.
11101         * simplify-rtx.c: Likewise.
11102
11103 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
11104
11105         * combine.c (can_combine_p): Don't ignore SETs marked with
11106         REG_EH_REGION notes.
11107         (try_combine): When attemting to fix unrecognized insns, don't
11108         split a PARALLEL that contains the original i2.
11109
11110 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
11111
11112         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
11113         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
11114         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
11115         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
11116         (vector, pixel, bool): #define to __vector, __pixel and __bool.
11117         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
11118         portion of header.
11119         (__altivec_link_error_invalid_argument): Remove prototype; will use
11120         __builtin_altivec_compiletime_error("vec_*") instead.
11121         (vec_*): Fix/complete set of available operation overloads given the
11122         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
11123         cv-correctness of pointer arguments; in C, always check for correct
11124         argument types before macro expansion.
11125         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
11126         defining Darwin/PowerPC-specific '-f[no-]altivec' and
11127         '-W[no-]altivec-long-deprecated' switches.
11128         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
11129         '__vector', '__pixel' and '__bool' macros using
11130         '__attribute__((altivec(...)))' types.
11131         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
11132         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
11133         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
11134         New type nodes.
11135         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
11136         handling '-W[no-]altivec-long-deprecated'.
11137         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
11138         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
11139         altivec_expand_dst_builtin): Remove casts from integer literals.
11140         (altivec_expand_builtin): Likewise; handle expansion of new
11141         '__builtin_altivec_compiletime_error' function.
11142         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
11143         types, and make them distinct from other vector types; register
11144         '__builtin_altivec_compiletime_error' function.
11145         (print_operand): For 'P', print a full target register name instead of
11146         merely its number.
11147         (rs6000_attribute_table): Add "altivec" attribute.
11148         (rs6000_handle_altivec_attribute): New function.
11149         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
11150         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
11151         maps to).
11152         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
11153         declare.
11154         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
11155
11156 2004-02-20  James E Wilson  <wilson@specifixinc.com>
11157
11158         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
11159         check.
11160         (shift_mix4left+2): Delete redundant pattern.
11161
11162 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11163
11164         * alias.c (OUTGOING_REGNO): Don't define the default.
11165         * builtins.c (OUTGOING_REGNO): Likewise.
11166         (INCOMING_REGNO): Likewise.
11167         (apply_args_register_offset): Always use OUTGOING_REGNO.
11168         * combine.c (OUTGOING_REGNO): Likewise.
11169         * sibcall.c (OUTGOING_REGNO): Likewise.
11170         * defaults.h (INCOMING_REGNO): Provide the default.
11171         (OUTGOING_REGNO): Likewise.
11172
11173 2004-02-21  Jan Hubicka  <jh@suse.cz>
11174
11175         * params.def (max-peeled-insns, max-completely-peeled-insns,
11176         max-once-peeled-insns): Set to 400.
11177
11178 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11179
11180         PR c++/12007
11181         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
11182         are set for parameters before outputing debugging information.
11183
11184 2004-02-20  Falk Hueffner  <falk@debian.org>
11185
11186         PR target/14201
11187         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
11188         numbers.
11189
11190 2004-02-20  Per Bothner  <per@bothner.com>
11191
11192         * input.h:  Don't #include line-map.h.  It may cause link problems
11193         with undefined linemap_line_start when line-map.h is included but
11194         line-map.o is not linked, as currently happens with gengtype on
11195         compilers that don't support inline.
11196         * toplev.c:  So we do have to explicitly #include line-map.h here.
11197
11198 2004-02-20  Richard Henderson  <rth@redhat.com>
11199
11200         * doc/invoke.texi: Add -Wvariadic-macros.
11201
11202 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11203
11204         * haifa-sched.c (sched_emit_insn): Remove.
11205         * sched-int.h: Remove the corresponding prototype.
11206
11207 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11208
11209         Revert:
11210         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11211         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
11212         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11213         * config/cris/cris.h: Remove a comment about
11214         DEFAULT_SHORT_ENUMS.
11215         * config/ip2k/ip2k.h: Likewise.
11216         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
11217
11218 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
11219             Tom Tromey  <tromey@redhat.com>
11220
11221         * doc/install.texi: Moved --disable-libgcj and
11222         --with-system-zlib documentation to new section for
11223         Java-specific options.
11224         Added explicit Cross-Compiler-Specific Options subheading.
11225         Added section for Java-specific options.
11226
11227 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
11228
11229         * doc/install.texi (Building the Ada compiler): Remove
11230         example.
11231
11232 2004-02-20  James E Wilson  <wilson@specifixinc.com>
11233
11234         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
11235
11236 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11237
11238         * gcc.c (process_command): Allow translation of the copyright
11239         symbol but not the rest of the copyright message.
11240         * gcov.c (print_version): Likewise.  Allow translation of the
11241         message about warranty.
11242
11243 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
11244
11245         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
11246         predicate.
11247         ("*andsi_clear"): Tweak constraints to not match postincrement.
11248         Adjust the predicate to exclude a volatile memory reference.
11249         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
11250         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
11251
11252 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
11253
11254         * move-if-change: Remove.
11255         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
11256         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
11257         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
11258         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
11259         (s-gtyp-gen, s-iov): Use the top level move-if-change.
11260         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
11261
11262 2004-02-19  James E Wilson  <wilson@specifixinc.com>
11263
11264         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
11265         for operand2.  Add condition that requires register_operand operand2
11266         before reload.
11267
11268 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
11269             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11270
11271         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
11272         * config/mips/mips.md: Expand comment above unaligned loads and stores.
11273
11274 2004-02-19  Richard Henderson  <rth@redhat.com>
11275
11276         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
11277         * tree.c (build0, build1, build2, build3, build4): Split out from...
11278         (build): ... here.  Call them.
11279         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
11280
11281         * convert.c (convert_to_integer): Remove extra build argument.
11282         * tree-inline.c (expand_call_inline): Likewise.
11283
11284 2004-02-19  Richard Henderson  <rth@redhat.com>
11285
11286         * c-opts.c (warn_variadic_macros): New.
11287         (c_common_handle_option): Set it.
11288         (sanitize_cpp_opts): Copy it to cpp_opts.
11289         * c.opt (Wvariadic-macros): New.
11290         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
11291         * cppinit.c (cpp_create_reader): Initialize it.
11292         * cppmacro.c (parse_params): Check it.
11293
11294 2004-02-19  David Daney <ddaney@avtrex.com>
11295
11296         PR preprocessor/14198
11297         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
11298         builtin_assert ("machine=mips")
11299
11300 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11301
11302         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
11303         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11304         * config/cris/cris.h: Remove a comment about
11305         DEFAULT_SHORT_ENUMS.
11306         * config/ip2k/ip2k.h: Likewise.
11307         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
11308
11309 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
11310
11311         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
11312         when passing single SFmode quantities in general registers,
11313         put them in the high half.
11314
11315 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
11316
11317         * doc/md.texi (Standard Names): Document additional dependency on
11318         fix pattern.
11319
11320         * optabs.c (ftruncify): Remove.
11321         (expand_fix): Manually inline ftruncify above.
11322         (can_fix_p): Add FIXME note.
11323
11324 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
11325
11326         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
11327         spe_fixuns_truncsfsi2.
11328
11329         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
11330         fixuns_truncsfsi2.
11331
11332 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
11333
11334         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
11335         * testsuite/gcc.dg/20040219-1.c: New test.
11336
11337 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
11338
11339         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
11340         "*subsf3_cconly"): Subtraction is not commutative.
11341
11342 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
11343
11344         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
11345         (sdbout_symbol): If called before sdbout_init, queue DECL for
11346         later and return.
11347         (sdbout_init): Set sdbout_initialized true, process decls
11348         queued earlier by sdbout_symbol.
11349         (sdbout_finish): Use size_t for index variable.
11350
11351 2004-02-19  Jeff Law  <law@redhat.com>
11352
11353         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
11354         for unordered comparison codes.
11355
11356 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
11357
11358         * reload1.c (reload): Correct comment.
11359         (scan_paradoxical_subregs): Remove #if 0 and old comment.
11360         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
11361         register variables are not used by reload.
11362
11363 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
11364
11365         PR target/14209
11366         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
11367         constraints to not match postincrement.  Adjust the predicate to
11368         exclude a volatile memory reference.
11369
11370 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11371
11372         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
11373
11374 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11375
11376         * hooks.c (hook_void_tree_int): Remove.
11377         (hook_void_constcharptr): Likewise.
11378         (hook_int_void_0): Likewise.
11379         * hooks.h: Remove the prototypes for the above three
11380         functions.
11381         * targhooks.c (hook_bool_machine_mode_true): Remove.
11382         * targhooks.h: Remove the prototype for
11383         hook_bool_machine_mode_true.
11384
11385 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11386
11387         * emit-rtl.c (subreg_realpart_p): Remove.
11388         (reorder_insns_with_line_notes): Likewise.
11389         (end_full_sequence): Likewise.
11390         * rtl.h: Remove the prototype for the above functions.
11391
11392 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11393
11394         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
11395         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
11396         config/iq2000/iq2000.h, config/m32r/m32r.h,
11397         config/pdp11/pdp11.h, config/sparc/sparc.h,
11398         config/xtensa/xtensa.h: Remove commented-out or useless
11399         definitions of CASE_VECTOR_PC_RELATIVE.
11400
11401 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11402
11403         * loop.c (all_sets_invariant_p): Remove.
11404
11405 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
11406
11407         PR target/12916
11408         * config/sparc/sparc.h (NPARM_REGS): Delete.
11409         (BASE_RETURN_VALUE_REG): Likewise.
11410         (BASE_OUTGOING_VALUE_REG): Likewise.
11411         (BASE_PASSING_ARG_REG): Likewise.
11412         (BASE_INCOMING_ARG_REG): Likewise.
11413         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
11414         TARGET_ARCH64, not TARGET_V9.
11415         (function_arg_slotno): Dispatch based on the mode class.
11416         Handle vector modes like floating-point modes.
11417         (function_arg_record_value_1): Handle vector types like
11418         floating-point types.
11419         (function_arg_record_value_2): Likewise.
11420         Calculate regno after mode transformation.
11421         (function_arg): Handle vector modes like floating-point modes.
11422         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
11423         If ARCH64, do not recheck alignment.
11424         (function_arg_pass_by_reference): Reorder the conditions.
11425         (sparc_return_in_memory): Move after function_arg_padding.
11426         Implement calling conventions for vector modes.
11427         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
11428         (function_value): Move scope of 'regbase'.
11429         Implement calling conventions for vector modes.
11430         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
11431         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
11432         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
11433         the argument is passed by reference.
11434         (sparc_type_code): Handle vector types.
11435
11436 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
11437
11438         * function.c (assign_parms): When building decl_rtl for
11439         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
11440
11441 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
11442
11443         * expr.c (is_aligning_offset): Check if we are aligning the
11444         expressions's address over BIGGEST_ALIGNMENT in bytes, not
11445         in bits.
11446
11447 2003-02-18  Matt Austern  <austern@apple.com>
11448
11449         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
11450         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
11451         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
11452         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
11453         spec string.
11454         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
11455
11456 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
11457
11458         * dwarf2out.c (loclabel_num): Move outside #ifdef
11459         DWARF2_DEBUGGING_INFO and mark with GTY(()).
11460         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
11461         Mark with GTY(()).
11462         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
11463         Allocate memory with ggc_alloc.  No need to copy anything.
11464         (ia64_hpux_file_end): Update to match.
11465
11466 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
11467
11468         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
11469         by default.
11470
11471 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
11472
11473         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
11474         ("divmodtisi3"): Likewise.
11475         ("udivmoddi4", "udivmodtidi3"): Likewise.
11476         ("divmodsi4", "divmoddisi3"): Likewise.
11477         ("udivmodsi4", "udivmoddisi3"): Likewise.
11478         ("udivsi3", "umodsi3"): Likewise.
11479
11480 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
11481
11482         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
11483         placeholder insn when chunkifying the pool.
11484
11485 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11486
11487         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
11488         generating PIC code.
11489
11490 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11491
11492         * config/h8300/h8300-protos.h: Add a prototype for
11493         h8300_expand_branch.
11494         * config/h8300/h8300.c (h8300_expand_branch): New.
11495         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
11496         bgtu, beq, bne): Call h8300_expand_branch().
11497
11498 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11499
11500         * config/h8300/h8300-protos.h: Add prototypes for
11501         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
11502         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
11503         (h8300_hard_regno_mode_ok): Likewise.
11504         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
11505         h8300_hard_regno_nregs().
11506         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
11507
11508 2004-02-18  Per Bothner  <per@bothner.com>
11509
11510         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
11511         partly reverts my 2003-10-01 change, because we're back to logically
11512         including <command line> inside the main line.
11513         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
11514         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
11515         Fixes PR preprocessor/14103.
11516
11517         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
11518         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
11519         (cpp_push_include):  Don't need to increment pfile's line field.
11520         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
11521
11522         * c-ppoutput.c (print struct):  New first_time field.
11523         (init_pp_output):  Set print.first_time.
11524         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
11525         which is set also for (say) <command line>.  Clear print.first_time.
11526
11527         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
11528         does not match the code, so fix both.
11529         (should_stack_file):  Inline include_pch_p function.
11530         (include_pch_p):  Remove pointless function.
11531
11532         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
11533
11534 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11535
11536         * config/h8300/h8300.md (four define_peephole2's): Use
11537         h8300_regs_ok_for_stm().
11538
11539 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11540
11541         * config/h8300/h8300-protos.h: Update the prototype for
11542         expand_a_rotate().
11543         * config/h8300/h8300.c (expand_a_rotate): Remove the first
11544         argument.
11545         * config/h8300/h8300.md: Update all callers.
11546
11547 2004-02-18  Jan Hubicka  <jh@suse.cz>
11548
11549         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
11550         floats.
11551         (simplify_binary_operation): Deal with logicals on floats.
11552
11553         * i386.md (SSE fabs splitters): Emit new patterns.
11554         (SSE cmov splitters): Likewise.
11555         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
11556         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
11557         subregs.
11558         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
11559         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
11560
11561 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11562
11563         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
11564         by hand.
11565         (output_a_rotate): Tweak a comment.
11566         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
11567         (*rotlhi3_1): Change to rotlhi3_1.
11568         (*rotlsi3_1): Change to rotlsi3_1.
11569
11570 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
11571
11572         PR target/13866
11573         * arm.c (load_multiple_operation): Don't insist that the source reg
11574         of a post-increment component is the same as the destination.
11575         (store_multiple_operation): Likewise.
11576
11577 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11578
11579         * config/h8300/h8300.md: Move movsf patterns into one section
11580         of the file.
11581
11582 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11583
11584         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
11585         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
11586         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
11587         config/mips/linux64.h, config/pa/pa-64.h,
11588         config/rs6000/aix51.h, config/rs6000/aix52.h,
11589         config/rs6000/spe.md, config/sparc/linux.h,
11590         config/sparc/linux64.h: Update copyright.
11591
11592 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11593
11594         * config/h8300/h8300.md: Move push patterns into one
11595         section of the file.
11596
11597 2004-02-18  Mark Mitchell <mark@codesourcery.com>
11598
11599         PR c++/11326
11600         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
11601         fntype.
11602
11603 2004-02-18  Paul Brook  <paul@codesourcery.com>
11604
11605         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
11606
11607 2004-02-18  Paul Brook  <paul@codesourcery.com>
11608
11609         PR debug/12934
11610         * dwarf2out.c (loc_descriptor_from_tree): Handle
11611         EXPR_WITH_FILE_LOCATION.
11612
11613 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
11614
11615         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
11616         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
11617         trailing whitespace from instructions.
11618
11619 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
11620
11621         * configure.ac: When generating auto-build.h, pass
11622         --enable-languages to the sub-configure.
11623         Put quotes around ${program_transform_name} when generating
11624         name of as, ld, nm, objdump.
11625         * configure: Regenerate.
11626
11627 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
11628
11629         * Makefile.in (s-check, s-config, s-conditions, s-flags)
11630         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
11631         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
11632         (s-preds, s-iov): Do not depend on move-if-change.
11633
11634 2004-02-17  James E Wilson  <wilson@specifixinc.com>
11635
11636         * caller-save.c (insert_restore): Pass mem through copy_rtx.
11637         (insert_save): Likewise.
11638
11639 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11640
11641         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
11642         warning.
11643
11644 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11645
11646         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
11647         *one_cmplsi2_h8300.
11648         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
11649
11650 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11651
11652         * config/h8300/h8300-protos.h: Update the prototype of
11653         fix_bit_operand().
11654         * config/h8300/h8300.c (fix_bit_operand): Remove the second
11655         argument "what".
11656         * config/h8300/h8300.md: Update all callers.
11657
11658 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11659
11660         * config/h8300/h8300.c (fix_bit_operand): Change the name of
11661         the last argument to "code" from "type".
11662
11663 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11664
11665         * config/h8300/h8300.c: Remove an extern declaration of
11666         rtx_equal_function_value_matters.
11667
11668 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11669
11670         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
11671         by hand.
11672         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
11673         (*iorqi3_1): Change to iorqi3_1.
11674         (*xorqi3_1): Change to xorqi3_1.
11675
11676 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11677
11678         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
11679         typos.
11680
11681 2004-02-17  Jan Hubicka  <jh@suse.cz>
11682
11683         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
11684
11685 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
11686
11687         PR optimization/14119
11688         * combine.c (try_combine): When attemting to fix unrecognized insns,
11689         don't delete SETs marked with REG_EH_REGION notes.
11690
11691 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
11692
11693         * combine.c (simplify_if_then_else): Do not replace
11694         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
11695         modes differ.
11696
11697 2004-02017  Steven Bosscher  <stevenb@suse.de>
11698
11699         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
11700         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
11701         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
11702         * ada/utils.c: Likewise.
11703         * cp/decl.c: Likewise.
11704         * f/com.c: Likewise.
11705         * java/class.c: Likewise.
11706
11707 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11708
11709         * config/h8300/h8300.md: Fix comment typos.
11710
11711 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11712
11713         * config/mips/t-iris6gld: Renamed to ...
11714         * config/mips/t-irix-gld: ... this.
11715         * config.gcc (mips-sgi-irix6*): Reflect this
11716         (mips-sgi-irix5*): Use it with GNU ld.
11717
11718         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
11719         to ...
11720         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
11721         * config/mips/t-irix-gld: Reflect this.
11722         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
11723
11724         * config/mips/iris5gld.h: New file.
11725         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
11726         Only use collect2 without gas.
11727
11728         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
11729         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
11730         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
11731         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
11732
11733         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
11734         * config/mips/iris5.h: ... here.
11735
11736         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
11737         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
11738         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
11739
11740         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
11741         using irix_startfile_spec, irix_endfile_spec.
11742
11743 2004-02-16  Gunther Nikl  <gni@gecko.de>
11744
11745         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
11746
11747 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11748
11749         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
11750         insns by hand.
11751
11752 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11753
11754         * cfghooks.c (split_edge): Speed up updating of dominators.
11755
11756 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
11757
11758         PR c++/11326
11759         * c-common.c (flag_abi_version): Remove.
11760         * c-common.h (flag_abi_version): Likewise.
11761         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
11762         * c.opt (fabi-version): Remove.
11763         * calls.c (expand_call): Always pass a function type to
11764         struct_value_rtx.  Use convert_memory_address.
11765         * common.opt (fabi-version): Add it.
11766         * flags.h (flag_abi_version): Likewise.
11767         (abi_version_at_least): New macro.
11768         * opts.c (common_handle_option): Add OPT_fabi_version.
11769         * toplev.c (flag_abi_version): Define it.
11770         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
11771         New function.
11772         (ia64_output_mi_thunk): Use it.
11773         (ia64_struct_value_rtx): Likewise.
11774
11775 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11776
11777         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
11778         Don't generate insns by hand.
11779
11780 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
11781
11782         PR c++/14178
11783         * doc/invoke.texi (fabi-version): The default is 2 now.
11784
11785 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11786
11787         * loop-iv.c: New file.
11788         * Makefile.in (loop-iv.o): New.
11789         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
11790         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
11791         num_loop_branches): New functions.
11792         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
11793         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
11794         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
11795         get_simple_loop_desc, free_simple_loop_desc): Declare.
11796         (simple_loop_desc): New inline function.
11797         (struct rtx_iv, struct niter_desc): New.
11798         * cfgloopmanip.c (loopify): Specify semantics more precisely.
11799         * expr.c (force_operand): Handle subregs of expressions created by
11800         loop unroller.
11801         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
11802         parts of the initialization to toplev.c
11803         * loop-unroll.c (loop_exit_at_end_p): New.
11804         (unroll_and_peel_loops): Call iv_analysis_done.
11805         (decide_peel_once_rolling, decide_peel_completely,
11806         decide_unroll_stupid, decide_unroll_constant_iterations,
11807         decide_unroll_runtime_iterations, decide_peel_simple,
11808         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
11809         unroll_loop_runtime_iterations): Use new simple loop analysis.
11810         * loop-unswitch.c (compare_and_jump_seq): New.
11811         (may_unswitch_on_p): Renamed to ...
11812         (may_unswitch_on): Use new iv analysis.
11813         (reversed_condition): Export.
11814         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
11815         * predict.c (estimate_probability): Use new simple loop analysis.
11816         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
11817         canon_condition, simplify_using_condition): Declare.
11818         * stor-layout.c (get_mode_bounds): New.
11819         * toplev.c (rest_of_handle_loop2): Some parts of
11820         initialization/finalization moved here from loop-init.c.
11821
11822 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11823
11824         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
11825         pointer.
11826         (CALL_USED_REGISTERS): Likewise.
11827         (REG_ALLOC_ORDER): Likewise.
11828         (REG_CLASS) <GENERAL_REGS>: Likewise.
11829
11830 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
11831
11832         * doc/md.texi (Insn Canonicalizations): Document left-chaining
11833         in associative operators.
11834         * rtlanal.c (commutative_operand_precedence): Create some new
11835         variables.  Prefer a commutative operand on the left, then
11836         binary expressions, then NEG and NOT.
11837
11838 2004-02-16  Matthias Klose  <doko@debian.org>
11839
11840         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
11841         in terms of SHLIB_SOVERSION.
11842         * config/m68k/t-slibgcc-elf-ver: New file.
11843         * config/pa/t-slibgcc-elf-ver: New file.
11844         * config.gcc (m68k-linux, parisc-linux): Use them when not
11845         sjlj exceptions are not configured.
11846
11847 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
11848
11849         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
11850
11851 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
11852
11853         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
11854
11855 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
11856
11857         * doc/sourcebuild.texi: Mention backends.html.
11858
11859 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
11860
11861         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
11862         line-map.c, line-map.h, var-tracking.c: Fix comment
11863         formatting.
11864
11865 2004-02-16  Richard Henderson  <rth@redhat.com>
11866
11867         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
11868
11869         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
11870
11871 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
11872
11873         * config/h8300/h8300.md: Remove unnecessary parallels from
11874         all define_insn and define_split patterns.
11875
11876 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
11877
11878         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
11879         "clobber").
11880
11881 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
11882
11883         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
11884         '%#'.
11885
11886 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
11887
11888         * config/ia64/ia64.c, config/mips/mips.c,
11889         config/mmix/mmix-modes.def: Fix comment typos.
11890
11891 2004-02-15  Roger Sayle  <roger@eyesopen.com>
11892
11893         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
11894         (get_directive_line): Remove unused function prototype.
11895
11896 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
11897
11898         * tree-inline.c (copy_body_r): Do not replace ret_label.
11899
11900 2004-02-14  Jan Hubicka  <jh@suse.cz>
11901
11902         * i386.c (x86_four_jump_limit): New variable.
11903         (k8_avoid_jump_misspredicts): Rename to ...
11904         (ix86_avoid_jump_misspredicts): .. this one.
11905         (ix86_pad_returns): Break out from ...
11906         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
11907         to.
11908         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
11909
11910 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
11911
11912         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
11913         PARALLEL is NULL.
11914
11915 2004-02-14  Per Bothner  <per@bothner.com>
11916
11917         * fix-header.c (line_table):  Move local variable in main to global.
11918         * scan.h (line_table):  Use it.
11919         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
11920         line (recently renamed to src_loc) before calling recognized_function.
11921
11922 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
11923
11924         * Makefile.in: Fix comment typos.
11925
11926 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
11927
11928         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
11929         for start_value when it is directly moved into reg, and factorize
11930         the retrieval of GET_MODE (reg).
11931
11932 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
11933
11934         * config/mips/mips-protos.h (mips_load_got_page): Delete.
11935         (mips_load_got_global): Delete.
11936         (mips_gotoff_page): Declare.
11937         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
11938         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
11939         UNSPEC_LOAD_GOT pattern rather than a MEM.
11940         (*load_got[sd]i): New patterns.
11941         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
11942         (mips_load_got_page, mips_load_got_global): Delete.
11943         (mips_gotoff_page): New function.
11944         (override_options): Don't initialize mips_got_alias_set.
11945
11946 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
11947
11948         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
11949         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
11950         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
11951         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
11952         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
11953         * config/mips/mips.c: Fix some overly-long lines.
11954         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
11955         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
11956
11957 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11958
11959         * configure.ac: Search for as, ld below libexec/gcc.
11960         * configure: Regenerate.
11961
11962 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
11963
11964         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
11965         __builtin_arm_setwcx ().
11966         * config/arm/arm.c (arm_expand_builtin): Generate operands
11967         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
11968
11969 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
11970
11971         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
11972         and "wmuluh" to "wmulsm" and "wmulum", respectively.
11973         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
11974         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
11975         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
11976         (_mm_mulhi_pu16): Likewise.
11977
11978 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
11979
11980         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
11981         DECL_NAME != 0 before dereferencing.
11982
11983 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
11984
11985         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
11986         (s390_output_addr_const_extra): Declare.
11987         (s390_output_pool_entry): Remove FILE * argument.
11988         * config/s390/s390.c (s390_output_symbolic_const): Remove.
11989         (s390_output_addr_const_extra): New function.
11990         (print_operand_address): Call output_addr_const instead of
11991         s390_output_symbolic_const.
11992         (print_operand): Likewise.
11993         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
11994         Remove FILE * argument.
11995         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
11996         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
11997         call.
11998
11999 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12000
12001         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
12002         (struct edge, struct vertex, struct graph): New.
12003         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
12004         free_graph): New functions.
12005
12006 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
12007
12008         * config/mips/mips.md (casesi_internal, casesi_internal_di):
12009         Use ".set macro" to avoid warnings about multi-instruction
12010         macros, since they're intentional.
12011
12012 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
12013
12014         * config/darwin.h: Add include guards.  Remove old, now incorrect,
12015         comment about STANDARD_EXEC_PREFIX.
12016
12017         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
12018         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
12019         for installing .1 manpages.  Add rules for installing cpp
12020         and gcov manpages under their installed names.
12021
12022 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
12023
12024         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
12025         host, but try LD_FOR_TARGET first.
12026         * configure: Rebuilt.
12027
12028 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12029
12030         * dbxout.c: Move declaration of dbxout_type_decl outside
12031         #ifdef DBX_DEBUGGING_INFO.
12032         * c-parse.in: Don't give the asmdef production a type.
12033
12034 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12035
12036         * debug.h (struct gcc_debug_hooks): Add type_decl field.
12037         (debug_nothing_tree_int): Prototype.
12038         (dwarf_debug_hooks): Delete, unused.
12039         * debug.c (do_nothing_debug_hooks): Update.
12040         (debug_nothing_tree_int): New function.
12041         * langhooks.h (struct lang_hooks_for_decls):
12042         Remove builtin_type_decls field.
12043         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
12044         (LANG_HOOKS_DECLS): Update.
12045         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
12046         Use debug_hooks->type_decl.
12047         * dbxout.c (preinit_symbols): New static.
12048         (dbx_debug_hooks, xcoff_debug_hooks): Update.
12049         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
12050         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
12051         for symbols to output.
12052         (dbxout_type_decl): New function.
12053         (dbxout_symbol): If called before dbxout_init has run, queue
12054         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
12055         to TYPE_DECLs before emitting them.
12056         * xcoffout.c (assign_type_number): Delete.
12057         (xcoff_type_numbers): New static table.
12058         (xcoff_assign_fundamental_type_number): New function.
12059         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
12060         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
12061         * sdbout.c: Include varray.h.
12062         (deferred_global_decls): New static.
12063         (sdb_debug_hooks): Update.
12064         (sdbout_global_decl): If we can't emit something right now,
12065         remember it in deferred_global_decls.
12066         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
12067         (sdbout_init): Initialize deferred_global_decls.
12068         * Makefile.in: Update dependencies of sdbout.o.
12069         * dwarf2out.c (dwarf2out_type_decl): New function.
12070         (dwarf2_debug_hooks): Update.
12071         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
12072         * c-decl.c (getdecls): Just return 0.
12073         (check_for_loop_decls): Don't use getdecls.
12074         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
12075         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
12076
12077 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
12078
12079         * config/s390/s390.c (s390_sched_reorder2): Remove.
12080         (TARGET_SCHED_REORDER2): Do not redefine.
12081
12082 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12083
12084         * c-parse.in (maybe_type_qual): Delete.
12085         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
12086         (asm_argument): New grammar rules.
12087         (extdef_1): Use asmdef.
12088         (maybeasm): Move down with other asm rules; use simple_asm_expr.
12089         (xexpr): Move up with other expression rules.
12090         (stmt): Use asm_stmt.
12091
12092         * c-typeck.c (build_asm_expr): New function - body mostly
12093         pulled from build_asm_stmt.
12094         (build_asm_stmt): Just handle tacking on the volatile qualifier.
12095         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
12096
12097 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
12098
12099         PR bootstrap/13617
12100         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
12101         (mips_declare_object): Make variadic.
12102         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
12103         mips_output_aligned_decl_common.
12104         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
12105         (mips_declare_object): Make variadic.
12106
12107 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12108
12109         * function.c (update_epilogue_consts): Teach about binary operations.
12110
12111         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
12112         previous MEM_VOLATILE in REF.
12113         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
12114         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
12115
12116 2004-02-12  Gunther Nikl  <gni@gecko.de>
12117
12118         * config.gcc: Restore support for m68k-openbsd.
12119
12120 2004-02-12  Jan Hubicka  <jh@suse.cz>
12121
12122         * tree-optimize.c (tree_rest_of_compilation): Do not release
12123         DECL_ARGUMENTS.
12124
12125 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
12126
12127         * doc/install.texi: Fix the spelling of "explicitly".
12128
12129 2004-02-11  Eric Christopher  <echristo@redhat.com>
12130
12131         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
12132         duplicate argument structure of cpp_interpret_string.
12133         * cpphash.h: Move prototype...
12134         * cpplib.h: Here.
12135         * cpplib.c: Fix calls to match new function signature.
12136
12137 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
12138
12139         PR c/456
12140         * cppexp.c (num_binary_op): Don't allow comma operators in #if
12141         constant expressions at all outside C99 mode if pedantic.
12142
12143 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
12144
12145         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
12146         (log10_optab, log2_optab): Define corresponding macros.
12147         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
12148         * genopinit.c (optabs): Implement log10_optab and log2_optab
12149         using log10?f2 and log2?f2 patterns.
12150         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
12151         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
12152         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
12153         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
12154
12155         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
12156         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
12157         log2, log2f and log2l built-ins as inline x87 intrinsics.
12158
12159 2004-02-11  Richard Henderson  <rth@redhat.com>
12160
12161         PR target/1532
12162         * flow.c (insn_dead_p): A clobber of a dead hard register is a
12163         dead insn after reload.
12164
12165 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
12166
12167         * tree.h (frame_base_decl): Add GTY marker.
12168         * var-tracking.c (frame_base_decl): Likewise.
12169
12170 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
12171
12172         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
12173         incorrect, hunk.
12174         (add_location_or_const_value_attribute): Use text_section_label,
12175         not TEXT_SECTION_NAME.
12176
12177 2004-02-11  Per Bothner  <per@bothner.com>
12178
12179         Represent column numbers using line-map's source_location.
12180         The "next available source_location" is now managed internally by
12181         line-maps.c rather than by clients.
12182         * line-map.h (struct line_map):  New field column_bits.
12183         <from_line>:  Rename field to start_location.
12184         (struct line_maps):  New fields highest_location and max_column_hint.
12185         (linemap_check_files_exited):  New declaration.
12186         (linemap_line_start):  New declaration.
12187         (linemap_add):  Remove from_line parameter; use highest_location field.
12188         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
12189         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
12190         (CURRENT_LINE_MAP):  Remove macro.
12191         (linemap_position_for_column):  New inline function.
12192         * line-map.c (linemap_init):  Clear new fields.
12193         (linemap_check_files_exited):  New function, extracted from ...
12194         (linemap_free):  Use linemap_check_files_exited.
12195         (linemap_add):  Remove from_line parameter.  Various updates.
12196         (linemap_line_start):  New function.
12197         (linemap_lookeup):  Update for new field names.
12198         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
12199         linemap_position_for_column may unpredictably change the current map,
12200         it is cleaner and simpler for us to not cache it in cpp_reader.
12201         (struct cpp_buffer):  New sysp field.
12202         Changed warned_cplusplus_comments and from_stage3 to bitfields.
12203         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
12204         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
12205         current map using linemap_lookup.
12206         (do_linemarker):  Also set buffer's sysp field.
12207         (destringize_and_run):  No longer need to decrement current line.
12208         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
12209         (search_path_head, open_file_failed):  Use buffer's sysp.
12210         (cpp_make_system_header):  Get current map using linemap_lookup.
12211         Also set buffer's sysp flag.
12212         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
12213         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
12214         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
12215         (struct cpp_reader):  ... and adding saved_line_base field.
12216         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
12217         Update accordingly.  Don't adjust line.
12218         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
12219         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
12220         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
12221         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
12222         * cpplex.c (_cpp_lex_direct):  Likewise.
12223         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
12224         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
12225         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
12226         Remove col field as it is now subsumed by src_loc.
12227         * cpperror.c:  Update various field, parameter, and macro names.
12228         (print_location):  If col==0, try SOURCE_COLUMN of line.
12229         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
12230         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
12231         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
12232         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
12233         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
12234         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
12235         (_cpp_lex_direct):  Use linemap_position_for_column.
12236         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
12237         parameter.  Instead get it from the line_table global.  Adjust callers.
12238         (print):  Remove map field.  Replace line field to src_line.
12239         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
12240         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
12241         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
12242         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
12243         * cpptrad.c (copy_comment):  Rename variable.
12244         * c-lex.c (map):  Remove static variable, for same reason we removed
12245         cpp_reader's map field.
12246         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
12247         to call linemap_lookup.
12248         (cb_line_change):  Token's line field replaced by src_loc.
12249         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
12250         Don't save new_map.
12251
12252         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
12253         source_location.
12254
12255 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
12256
12257         * config/rs6000/altivec.md (*movv4si_internal): At least one
12258         operand must be register_operand.
12259         (*movv8hi_internal1): Likewise.
12260         (*movv16qi_internal1): Likewise.
12261         (*movv4sf_internal1): Likewise.
12262
12263 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
12264
12265         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
12266         operand.
12267         (movv4hi_internal): Same.
12268         (movv2sf_internal): Same.
12269         (movv1di_internal): Same.
12270
12271 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
12272
12273         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
12274         TARGET_OLDABI consistently.
12275         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
12276         mips_va_arg,override_options,compute_frame_size,
12277         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
12278         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
12279         and TARGET_OLDABI consistently.
12280         * config/mips/mips.md (exception_receiver): Likewise.
12281         * config/mips/linux64.h: Likewise.
12282
12283 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
12284
12285         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
12286         Set AltiVec ABI and vrsave as default for ppc64 linux.
12287         (init_cumulative_args): Post error, if try to return
12288         value in AltiVec register without enable AltiVec.
12289         (function_arg_advance): Ditto for passing arguments.
12290
12291 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
12292
12293         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
12294         a label before updating its usage count.
12295
12296 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
12297
12298         * doc/install.texi: Remove extra cd.
12299
12300 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
12301
12302         * c-common.c (vector_size_helper): Remove; call
12303         reconstruct_complex_type() instead.
12304         * tree.c (reconstruct_complex_type): New function
12305         (formerly vector_size_helper() in c-common.c).
12306         (make_vector): Make externally visible.
12307         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
12308
12309 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
12310
12311         * config/h8300/h8300-protos.h: Add a prototype for
12312         h8300_regs_ok_for_stm.
12313         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
12314         * config/h8300/h8300.md (stm_h8300s_2_advanced,
12315         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
12316         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
12317         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
12318         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
12319         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
12320         ldm_h8300s_4_normal, ldm_h8300s_4): Use
12321         h8300_regs_ok_for_stm().
12322
12323 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
12324
12325         PR c/14088
12326         * real.c (real_from_string): Look for 'X' as well as 'x' in
12327         hexfloat strings.
12328
12329 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
12330
12331         * config/h8300/h8300.md: Remove an incorrect comment about
12332         peephole2.  Add comments.
12333
12334 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
12335
12336         PR/14058
12337         * emit-rtl.c (set_decl_incoming_rtl): New.
12338         * tree.h (set_decl_incoming_rtl): New.
12339         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
12340         DECL_INCOMING_RTL.
12341         * ada/misc.c (adjust_decl_rtl): Likewise.
12342
12343 2004-02-10  Per Bothner  <per@bothner.com>
12344
12345         * c-opts.c (c_common_post_options):   Don't emit working directory
12346         in cpp output if -P was specified.
12347
12348 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
12349
12350         PR c/14092
12351         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
12352         negate_expr back to the original type.
12353
12354 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
12355
12356         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
12357         bump retaddr here.
12358
12359 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
12360
12361         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
12362         gen_lowpart_SUBREG): Move under the file in which they
12363         are actually declared.
12364
12365 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
12366
12367         * doc/sourcebuild.texi: Add libada documentation.
12368
12369         * doc/install.texi: Update documentation on Ada build, now
12370         that the GNAT lib and tools are built automatically.
12371
12372 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
12373
12374         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
12375         && TARGET_IRIX.
12376
12377 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
12378
12379         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
12380         boundaries outside build_component_ref() call (a macro in ObjC++).
12381
12382 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
12383
12384         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
12385         (init_cumulative_args): Likewise.
12386         (a7_overlap_mentioned_p): Delete prototype.
12387         * config/xtensa/xtensa.c (struct machine_function): Replace
12388         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
12389         Add set_frame_ptr_insn field.
12390         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
12391         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
12392         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
12393         at the function entry and replace the operand with the pseudo.
12394         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
12395         argument and record this flag in CUMULATIVE_ARGS.
12396         (function_arg): Remove result_mode and special-case code to handle
12397         arguments in a7.  Instead, set need_a7_copy flag when there is an
12398         incoming argument in a7.
12399         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
12400         and use the value recorded in cfun->machine->set_frame_ptr_insn.
12401         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
12402         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
12403         special-case code.
12404         (a7_overlap_mentioned_p): Delete.
12405         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
12406         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
12407         arguments to init_cumulative_args and pass "incoming" flag instead.
12408         (BLOCK_REG_PADDING): Delete.
12409         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
12410         checks for reload_in_progress and reload_completed.  Update calls to
12411         xtensa_copy_incoming_a7.
12412         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
12413         to call xtensa_copy_incoming_a7.
12414
12415 2004-02-09  DJ Delorie  <dj@redhat.com>
12416
12417         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
12418         longer modify standard_exec_prefix, standard_bindir_prefix, or
12419         standard_startfile_prefix.
12420
12421 2004-02-09  James E Wilson  <wilson@specifixinc.com>
12422
12423         PR c++/11295
12424         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
12425         to expand_expr_real call, and pass in alt_rtl as last argument.
12426
12427         PR libstdc++/5625
12428         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
12429         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
12430         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
12431         * except.c (expand_builtin_extend_pointer): New.
12432         * except.h (expand_builtin_extend_pointer): Declare.
12433
12434 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
12435
12436         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
12437         unaligned loads and stores.
12438
12439 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12440
12441         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
12442         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
12443
12444         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
12445         * config/mips/iris5.h: ... here.
12446         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
12447
12448         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
12449         * config/mips/iris5.h: ... here.
12450
12451 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12452
12453         * configure.ac: Remove default executable files before AC_PROG_CC.
12454         * configure: Regenerate.
12455
12456 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
12457
12458         PR target/13721
12459         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
12460         print a operand other than a register.
12461
12462 2004-02-09  Roger Sayle  <roger@eyesopen.com>
12463
12464         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
12465         tree code rather than call fold_convert, which doesn't specify a
12466         default floating point to integer conversion.
12467
12468 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
12469
12470         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
12471         code to support SGS assembler.  Reformat adjacent code where possible.
12472         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
12473         definition.
12474         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
12475         for '%#'.
12476         * config/m68k/linux.h, config/m68k/m68k.c,
12477         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
12478         macros and asm_printf() format strings.
12479         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
12480         * config/m68k/linux.h: Update copyright.
12481         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
12482
12483 2004-02-08  Andreas Schwab  <schwab@suse.de>
12484             Bernardo Innocenti  <bernie@develer.com>
12485
12486         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
12487         REGISTER_PREFIX.
12488         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
12489         frame pointer register, overridable by OS targets.
12490         * (M68K_REGNAME): Macro to obtain register name for asm output,
12491         eventually replacing %a6 with M68K_FP_REG_NAME.
12492         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
12493         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
12494         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
12495         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
12496         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
12497
12498 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
12499
12500         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
12501         hook_rtx_tree_int_null.
12502         * targhooks.c (default_struct_value_rtx): Remove.
12503         * targhooks.h: Remove the prototype for
12504         default_struct_value_rtx.
12505         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
12506         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
12507         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
12508         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
12509         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
12510         config/rs6000/rs6000.c, config/s390/s390.c,
12511         config/stormy16/stormy16.c, config/v850/v850.c,
12512         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
12513         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
12514
12515 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
12516
12517         * README.Portability: Change "ISO C89" to "ISO C90".
12518         * c-parse.in (primary, initelt): Likewise.
12519
12520 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
12521
12522         * real.c (encode_ibm_extended): Normalize the input value before
12523         converting it to a double.  Handle the case where a normal value
12524         rounds to infinity.
12525
12526 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
12527
12528         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
12529         warning.
12530         * cse.c (preferrable): Change to preferable. Update all of its
12531         callers.
12532         * genautomata.c (ainsn): Change
12533         first_ainsn_with_given_equialence_num to
12534         first_ainsn_with_given_equivalence_num.  Update all of its
12535         references.
12536
12537 2004-02-08  Jan Hubicka  <jh@suse.cz>
12538
12539         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
12540
12541 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
12542
12543         * function.c (assign_parms): Fix formatting.
12544
12545 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12546
12547         * default.h (PROMOTE_PROTOTYPES): Remove.
12548         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
12549         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
12550         EXPAND_BUILTIN_SAVEREGS): Poison.
12551         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
12552         hook_bool_tree_false.
12553         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12554         * target.h: Replace SETUP_INCOMING_VARARGS with
12555         targetm.calls.setup_incoming_varargs().
12556         * targhooks.c (default_promote_function_return): Remove.
12557         (default_promote_prototypes): Likewise.
12558         (default_struct_value_rtx): Always abort().
12559         (default_expand_builtin_saveregs): Always print an error
12560         message.
12561         (default_setup_incoming_varargs): Do nothing.
12562         (default_pretend_outgoing_varargs_named): Don't depend on
12563         SETUP_INCOMING_VARARGS.
12564         * targhooks.h: Remove the prototype for
12565         default_promote_function_return and
12566         default_promote_prototypes.
12567
12568 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12569
12570         * system.h (SHARED_SECTION_ASM_OP): Poison.
12571         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
12572         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
12573
12574 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
12575
12576         Bug 13856
12577         * c-decl.c (diagnose_mismatched_decls): Only give special
12578         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
12579         is also true.
12580         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
12581         DECL_FUNCTION_CODE when defining a built-in function.
12582         Don't update DECL_ESTIMATED_INSNS.
12583         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
12584         FUNCTION_DECLs.
12585         * tree.h: Delete DECL_ESTIMATED_INSNS.
12586         * tree-inline.c (struct inline_data): Delete inlined_insns field.
12587         (expand_call_inline, optimize_inline_calls): Don't update
12588         DECL_ESTIMATED_INSNS nor inlined_insns.
12589         * cgraphunit.c (cgraph_analyze_function): Don't update
12590         DECL_ESTIMATED_INSNS.
12591
12592 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
12593
12594         * c-common.c (shadow_warning): Delete.
12595         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
12596         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
12597         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
12598         * c-parse.in (free_parser_stacks): Delete.
12599
12600 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
12601
12602         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
12603         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
12604         Use the top level mkinstalldirs, not the one in the gcc subdir.
12605         * mkinstalldirs: Remove (from the gcc subdir).
12606
12607 2004-02-07  Roger Sayle  <roger@eyesopen.com>
12608
12609         PR middle-end/13696
12610         * fold-const.c (fold_convert): New function to provide type
12611         conversion to the middle-end without using convert.
12612         (negate_expr, associate_trees, size_diffop, omit_one_operand,
12613         operand_equal_for_comparison_p, pedantic_omit_one_operand,
12614         invert_truthvalue, optimize_bit_field_compare, range_binop,
12615         decode_field_reference, make_range, build_range_check, unextend,
12616         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
12617         fold_binary_op_with_conditional_arg, fold_inf_compare,
12618         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
12619         convert with calls to fold_convert.
12620
12621 2004-02-07  Jan Hubicka  <jh@suse.cz>
12622
12623         * genrecog.c (find_operand): add extra argument stop.
12624         (validate_pattern): Verify that mach_dup is duplicating operand
12625         defined lexically earlier.
12626
12627 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12628
12629         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
12630         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
12631         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
12632         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
12633         config/ia64/ia64.h, config/ip2k/ip2k.h,
12634         config/iq2000/iq2000.h, config/mips/iris5.h,
12635         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
12636         config/rs6000/aix51.h, config/rs6000/aix52.h,
12637         config/rs6000/darwin.h, config/rs6000/rs6000.h,
12638         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
12639         config/sparc/linux.h, config/sparc/linux64.h,
12640         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
12641         config/xtensa/xtensa.h: Remove the definitions of
12642         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
12643         MAX_WCHAR_TYPE_SIZE.
12644         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
12645         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
12646
12647 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
12648
12649         PR bootstrap/13990
12650         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
12651         gen_rtx_NE.
12652
12653 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
12654
12655         * var-tracking.c (vt_add_function_parameters): Surround checkings by
12656         #ifdef ENABLE_CHECKING and #endif.
12657
12658 2004-02-07  Roger Sayle  <roger@eyesopen.com>
12659
12660         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
12661         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
12662         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
12663         integer types and floating point with unsafe_math_optimizations.
12664         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
12665         Optimize A - B as A + (-B), if B is easily negated.
12666
12667 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12668
12669         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
12670         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
12671         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
12672         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
12673         Update copyright.
12674
12675 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12676
12677         * c-ppoutput.c, var-tracking.c: Fix comment typos.
12678
12679 2004-02-06  James E Wilson  <wilson@specifixinc.com>
12680
12681         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
12682         glibc 2.3 or better.
12683
12684 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12685
12686         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
12687         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
12688
12689 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
12690
12691         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
12692         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
12693         (SHLIB_MKMAP_OPTS): Delete.
12694         (TARGET_LIBGCC2_CFLAGS): Add -specs.
12695         (bispecs): Add rule.
12696         * config/rs6000/libgcc-ppc64.ver: New file.
12697         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
12698         (__floatdidf, __floatdisf): Optimize multiply.
12699         (__fixunstfdi): New function.
12700         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
12701         real and imag parts larger than one register.
12702         (function_arg): Correct type of reg used when fp arg split partially
12703         to stack.
12704         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
12705         and __MACH__ or __powerpc64__.
12706
12707 2004-02-06  Roger Sayle  <roger@eyesopen.com>
12708             Ulrich Weigand  <uweigand@de.ibm.com>
12709
12710         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
12711         of gen_highpart or gen_lowpart when the floating point format is
12712         wider than the result mode.
12713
12714 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
12715
12716         * dwarf2out.c (loclabel_num): Move into #ifdef
12717         DWARF2_DEBUGGING_INFO.
12718
12719 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
12720
12721         * objc/objc-act.c (build_super_template) the 'class' field of
12722         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
12723         (get_super_receiver): Likewise.
12724
12725 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12726
12727         * reload1.c (check_eliminable_occurrences): Optimize the reset
12728         of can_eliminate.
12729         (eliminate_regs_in_insn): Likewise.
12730
12731 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
12732             Josef Zlomek  <zlomekj@suse.cz>
12733
12734         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
12735         at the beginning of function, call dwarf2out_var_location for
12736         NOTE_INSN_VAR_LOCATION note.
12737         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
12738         decl_loc_table): New.
12739         (lookup_decl_loc): New function.
12740         (add_var_loc_to_decl): New function.
12741         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
12742         only if can_use_fbreg.
12743         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
12744         functions.
12745         (loc_descriptor): Likewise. Process VAR_LOCATION.
12746         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
12747         (loc_descriptor_from_tree): Call mem_loc_descriptor with
12748         can_use_fbreg == true.
12749         (add_location_or_const_value_attribute): Added parameter enum
12750         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
12751         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
12752         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
12753         with attr == DW_AT_location.
12754         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
12755         if frame_base_decl is defined and has a location list.
12756         (gen_variable_die): Call add_location_or_const_value_attribute with
12757         attr == DW_AT_location.
12758         (dwarf2out_var_location): New function.
12759         (dwarf2out_begin_function): New function.
12760         (dwarf2out_init): Create decl_loc_table.
12761
12762 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
12763
12764         * loop.c (force_movables): Transitively increase the priorities of
12765         all insns forces by an insn, not just the first one.
12766
12767 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
12768             Daniel Berlin <dberlin@dberlin.org>
12769
12770         Josef Zlomek  <zlomekj@suse.cz>
12771         * Makefile.in (var-tracking.o): New.
12772         * common.opt (fvar-tracking): New.
12773         * flags.h (flag_var_tracking): New.
12774         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
12775         * opts.c (common_handle_option): Add OPT_fvar_tracking.
12776         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
12777         * rtl.c (note_insn_name): Likewise.
12778         * rtl.def (VAR_LOCATION): New.
12779         * rtl.h (NOTE_VAR_LOCATION): New.
12780         (NOTE_VAR_LOCATION_DECL): New.
12781         (NOTE_VAR_LOCATION_LOC): New.
12782         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
12783         (variable_tracking_main): New exported function.
12784         * timevar.def (TV_VAR_TRACKING): New.
12785         * toplev.c (enum dump_file_index): Added DFI_vartrack.
12786         (dump_file): "vartrack" was added (-dV).
12787         (flag_var_tracking): New.
12788         (f_options): "var-tracking" was added.
12789         (rest_of_handle_variable_tracking): New function.
12790         (rest_of_compilation): Run variable tracking.
12791         (process_options): If user has not specified flag_var_tracking set it
12792         according to optimize, debug_info_level and debug_hooks.
12793         * tree.h (frame_base_decl): New.
12794         * var-tracking.c: New file.
12795         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
12796         (ia64_override_options): Set flags to run variable tracking in machine
12797         dependent reorg instead of toplev.c.
12798         (ia64_reorg): Run variable tracking if wanted.
12799         * doc/invoke.texi: Mention variable tracking in -dV,
12800         add and -fvar-tracking.
12801         * doc/passes.texi: Added variable tracking pass.
12802
12803         Daniel Berlin <dberlin@dberlin.org>
12804         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
12805         * dbxout.c (dbx_debug_hooks): Likewise.
12806         (xcoff_debug): Likewise.
12807         * debug.c (do_nothing_debug_hooks): Likewise.
12808         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
12809         * dwarfout.c (dwarf_debug_hooks): Likewise.
12810         * sdbout.c (sdb_debug_hooks): Likewise.
12811         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
12812         * final.c (final_scan_insn): Call var_location debug hook for each
12813         NOTE_INSN_VAR_LOCATION.
12814
12815 2004-02-06  Jan Hubicka  <jh@suse.cz>
12816
12817         * flow.c (update_life_info): Allocate reg_deaths when called from
12818         scheudler.
12819         (attempt_auto_inc):  Update life ranges accordingly.
12820
12821 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
12822
12823         PR debug/11816
12824         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
12825
12826 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
12827
12828         * cfganal.c (flow_call_edges_add): Never split a libcall block.
12829
12830 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
12831
12832         * dwarf2out.c (output_loc_list): Don't use deltas if we have
12833         a separate line info table in use.
12834         Use the correct size for terminators.
12835         (output_die): Use offset, not delta.
12836
12837 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
12838
12839         * doc/invoke.texi: Remove the pni option from -mfpmath=.
12840
12841 2004-02-06  Jan Hubicka  <jh@suse.cz>
12842
12843         * recog.c (split_all_insns): Do not update reg info.
12844         * regrename.c (regrename_optimize): Likewise.
12845         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
12846         * flow.c (struct propagate_block_info): Add insn_num field.
12847         (reg_deaths): New array.
12848         (life_analysis): Free reg_deaths info.
12849         (allocate_reg_life_data): Allocate reg_deaths array.
12850         (propagate_one_insn): Use new array.
12851         (init_propagate_block): Initialize it.
12852         (free_propagate_block_info): Finish compuation of
12853         REG_LIVE_LENGTH
12854         (attempt_auto_inc): Sanity check that REG_INFO is not
12855         computed at same time.
12856         (mark_used_regs): Update new array.
12857
12858         * reg-stack.c (subst_stack_regs): Unshare clobbers before
12859         substitution.
12860
12861 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12862
12863         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
12864         *extendqisi2_short_displ.
12865
12866 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
12867
12868         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
12869         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
12870         (emit_library_call_value_1): Likewise pass nargs.
12871         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
12872         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
12873         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
12874         parameter instead of scanning TYPE_ARGS_TYPES to count args.
12875         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
12876         prototype.
12877         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
12878         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
12879         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
12880         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
12881         INIT_CUMULATIVE_ARGS.
12882         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
12883         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
12884         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
12885         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
12886         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
12887         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
12888         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
12889         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
12890         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
12891         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
12892         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
12893         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
12894
12895 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12896
12897         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
12898         possible.
12899
12900 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12901
12902         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
12903         note containing (plus (reg) (const_int)), where reg is an
12904         eliminable reg, then perform the register elimination without
12905         depending on eliminate_regs().
12906
12907 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12908
12909         * config/arc/arc.c (arc_return_in_memory): Check the return
12910         value of int_size_in_bytes against -1.  Don't check
12911         TREE_ADDRESSABLE.
12912         * config/avr/avr.c (avr_return_in_memory): Check the return
12913         value of int_size_in_bytes against -1.
12914         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
12915         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
12916         Likewise.
12917         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
12918         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
12919         Likewise.
12920
12921 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12922
12923         * config/frv/frv-protos.h: Remove the prototype for
12924         frv_setup_incoming_varargs.
12925         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
12926         (frv_setup_incoming_varargs): Make it static.
12927         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
12928
12929 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12930
12931         * config/fr30/fr30-protos.h: Remove the prototype for
12932         fr30_setup_incoming_varargs.
12933         Update the prototypes for fr30_num_arg_regs and
12934         fr30_function_arg_partial_nregs.
12935         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
12936         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12937         (fr30_setup_incoming_varargs): Make it static.
12938         Add argument second_time.  Don't do anything when second_time
12939         is nonzero.
12940         (fr30_num_arg_regs): Change the type of the first argument to
12941         enum machine_mode.
12942         (fr30_function_arg_partial_nregs): Change the type of the
12943         second argument to enum machine_mode.
12944         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
12945         (SETUP_INCOMING_VARARGS): Remove.
12946
12947 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12948
12949         * config/arc/arc-protos.h: Remove the prototype for
12950         arc_setup_incoming_varargs.
12951         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
12952         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12953         (arc_setup_incoming_varargs): Make it static.
12954         (arc_external_libcall): Likewise.
12955         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
12956         Remove the commented-out definition of
12957         ASM_OUTPUT_EXTERNAL_LIBCALL.
12958
12959 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
12960
12961         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
12962         to $$(slibdir) in the installation commands.
12963
12964 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
12965
12966         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
12967         with inner_regno, not regno.
12968         * rtlanal.c (refers_to_regno_p): Same.
12969
12970 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
12971
12972         * config.gcc: Remove i370 support.
12973
12974 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
12975
12976         * doc/install.texi:  Update automake and autoconf version
12977         requirements.  Note where to find gcj automake version.
12978
12979 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
12980
12981         * Makefile.in (generate-manpages): Move dependencies to ...
12982         (man): here.
12983         * doc/makefile.texi: Document new targets.
12984         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
12985
12986 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
12987
12988         PR/13485
12989         Makefile.in (srcextra):  Add a level of indirection to ...
12990         (gcc.srcextra): ... here.
12991         (po-generated): Delete.
12992         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
12993         options.c.
12994         (start.encap): Remove superfluous lang.srcextra dependency.
12995         objc/Make-lang.in (po-generated):  Delete.
12996
12997 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
12998
12999         * config/ia64/ia64.c (REG_GP): Remove.
13000
13001 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13002
13003         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
13004
13005 2004-02-05  Devang Patel  <dpatel@apple.com>
13006
13007         * dwarf2out.c (force_type_die): Look up input type itself
13008         instead of root_type() of type.
13009
13010 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
13011
13012         * config/s390/s390.md ("*tmqidi_ext"): New insn.
13013         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
13014         pre-reload splitters are transformed to post-reload
13015         define_insn_and_split patterns.
13016         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
13017
13018 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13019
13020         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
13021         TARGET_PROMOTE_PROTOTYPES.
13022
13023 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13024
13025         PR middle-end/13750
13026         Revert:
13027         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
13028         PR pch/13361
13029         * c-typeck.c (constructor_asmspec): Delete.
13030         (struct initializer_stack): Delete field 'asmspec'.
13031         (start_init): Delete saving of asmspec.
13032         (finish_init): Don't update constructor_asmspec.
13033         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
13034         * stmt.c (expand_asm): Duplicate strings from tree.
13035         (expand_asm_operands): Likewise.
13036         * tree.c (tree_size): Update computation of size of STRING_CST.
13037         (make_node): Don't make STRING_CST nodes.
13038         (build_string): Allocate string with tree node.
13039         * tree.def (STRING_CST): Update comment.
13040         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
13041         (tree_string): Place contents of string in tree node.
13042         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
13043         from tree.
13044
13045 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13046
13047         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
13048         msgid.
13049
13050 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
13051
13052         * config/rs6000/altivec.md (*movv4si_internal): At least one
13053         operand must be altivec_register_operand.
13054         (*movv8hi_internal1): Likewise.
13055         (*movv16qi_internal1): Likewise.
13056         (*movv4sf_internal1): Likewise.
13057
13058 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
13059
13060         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
13061         * configure: Regenerate.
13062
13063 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
13064
13065         * doc/install.texi: Update description of --gxx-include-dir to
13066         give correct default value.
13067
13068 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13069
13070         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
13071         8 with MAC_REG.
13072
13073 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13074
13075         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
13076         gen_rtx_PARALLEL.
13077
13078 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13079
13080         * emit-rtl.c: Update the comment about the file.
13081
13082 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13083
13084         * sourcebuild.texi (Test Idioms): Update testcase naming
13085         conventions.
13086
13087 2004-02-04  Per Bothner  <per@bothner.com>
13088
13089         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
13090         * c-ppoutput.c (pp_dir_change):  New function.
13091         * c-common.h (pp_dir_change):  New declaration.
13092         * cpplib.h (struct cpp_options):  Remove working_directory field.
13093         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
13094         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
13095         Don't handle -fworking_directory here, but in c_common_post_options.
13096         (read_original_directory): Don't back up when done.
13097         Don't clear no-longer used working_directory flag.
13098         * cpplib.h:  Update declarations to match.
13099         * c-lex.c (cb_dir_change):  Move to c-opts.c.
13100         (init_c_lex):  Don't set dir_change callback here, since we want
13101         to set it even if flag_preprocess_only.
13102         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
13103         (c_common_post_options):  Set dir_change callback.
13104         Call pp_dir_change if approporiate.
13105         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
13106         unneeded parameter and result. Do LC_RENAME for <built-in>.
13107         (c_common_post_options):  Call cpp_read_main_file here instead.
13108         (c_common_init):  Update accordingly.
13109         (push_command_line_include):  Don't cpp_push_main_file.
13110         Do LC_RENAME rather than LC_LEASE to get back to main file.
13111         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
13112         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
13113         files, but call finish_options for all files.
13114         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
13115         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
13116         cpp_find_main_file + cpp_push_main_file.
13117         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
13118         * opts.c (handle_options):  Only set main_input_filename first time.
13119
13120 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
13121
13122         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
13123
13124 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
13125
13126         * reload.c (find_equiv_reg): When checking for register overlap,
13127         don't index hard_regno_nregs with a pseudo-reg.
13128
13129 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13130
13131         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
13132
13133 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
13134
13135         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
13136         against FIRST_PSEUDO_REGISTER.
13137
13138 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13139
13140         * Makefile.in: Move target, host overrides after per-language
13141         fragments.
13142
13143         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
13144         (GNATLIBCFLAGS): Remove -g.
13145
13146 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13147
13148         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
13149         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
13150         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
13151         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
13152         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
13153         config/sparc/sparc.c, config/vax/vax.c: Revert the
13154         replacements of "FALLTHRU" with "Fall through" done in the
13155         previous patch.
13156
13157 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13158
13159         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
13160         config/arm/arm.c, config/arm/arm.md,
13161         config/cris/cris-protos.h, config/fr30/fr30.c,
13162         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
13163         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
13164         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
13165         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
13166         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
13167         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
13168         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
13169         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
13170         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
13171         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
13172         config/s390/s390.md, config/sparc/netbsd-elf.h,
13173         config/sparc/openbsd.h, config/sparc/sparc.c,
13174         config/xtensa/lib2funcs.S: Fix comment formatting.
13175
13176 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13177
13178         * config/alpha/alpha.c, config/arc/arc.c,
13179         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
13180         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
13181         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
13182         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
13183         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
13184         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
13185         config/iq2000/iq2000.c, config/m32r/m32r.c,
13186         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
13187         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
13188         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
13189         config/rs6000/rs6000.h, config/sparc/sparc.c,
13190         config/vax/vax.c: Fix comment typos.  Follow spelling
13191         conventions.
13192
13193 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13194
13195         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
13196         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
13197         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
13198         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
13199         config/arm/fpa.md, config/arm/iwmmxt.md,
13200         config/arm/netbsd-elf.h, config/arm/netbsd.h,
13201         config/m68hc11/m68hc11.md, config/mips/iris5.h,
13202         config/mn10300/mn10300.md, config/rs6000/altivec.md,
13203         config/sparc/netbsd-elf.h: Update copyright.
13204
13205 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
13206
13207         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
13208         for all modes whose size is greater than 8 bytes if ARCH32.
13209         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
13210         by reference if ARCH32.
13211
13212 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
13213
13214         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
13215
13216 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13217
13218         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
13219         to before adddi3 insn patterns.
13220         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
13221         "reload_insi"): Move to before addsi3 insn patterns.
13222
13223 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
13224
13225         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
13226         parameter.  Use it instead of current_function_is_thunk.
13227         * function.h (struct function): Update documentation for is_thunk.
13228         * tree.h (CALL_FROM_THUNK_P): New macro.
13229         * config/alpha/alpha.c (alpha_sa_mask): Do not check
13230         no_new_pseudos when testing current_function_is_thunk.
13231         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
13232
13233 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13234
13235         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
13236         TARGET_SETUP_INCOMING_VARARGS.
13237
13238 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13239
13240         * emit-rtl.c (gen_rtx): Remove.
13241         * genattrtab.c: Don't mention gen_rtx in a comment.
13242         * rtl.h: Remove the prototype for gen_rtx.
13243         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
13244
13245 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13246
13247         * config/arc/arc.h, config/fr30/fr30.h
13248         (SETUP_INCOMING_VARARGS): Remove the target-independent
13249         comments.
13250         * doc/tm.texi: Don't mention deprecated target macros.
13251
13252 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13253
13254         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
13255         target-independent comment.
13256
13257 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13258
13259         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
13260         mention deprecated target macros.
13261
13262 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13263
13264         * config.gcc: Remove obsolete ports and configurations.
13265         * config/linux-aout.h, config/netware.h,
13266         config/t-linux-gnulibc1, config/d30v/abi,
13267         config/d30v/d30v-protos.h, config/d30v/d30v.c,
13268         config/d30v/d30v.h, config/d30v/d30v.md,
13269         config/d30v/libgcc1.asm, config/d30v/t-d30v,
13270         config/dsp16xx/dsp16xx-modes.def,
13271         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
13272         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
13273         config/i370/README, config/i370/i370-c.c,
13274         config/i370/i370-protos.h, config/i370/i370.c,
13275         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
13276         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
13277         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
13278         config/i386/moss.h, config/i386/netware.h,
13279         config/i386/svr3.ifile, config/i386/svr3dbx.h,
13280         config/i386/svr3gas.h, config/i386/svr3z.ifile,
13281         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
13282         config/i960/i960-c.c, config/i960/i960-coff.h,
13283         config/i960/i960-modes.def, config/i960/i960-protos.h,
13284         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
13285         config/i960/rtems.h, config/i960/t-960bare,
13286         config/m68k/hp310.h, config/m68k/hp320.h,
13287         config/m68k/hp320base.h, config/m68k/m68kv4.h,
13288         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
13289         Remove.
13290         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
13291         doc/md.texi: Remove mentions of obsolete ports.
13292
13293 2004-02-04  Jan Hubicka  <jh@suse.cz>
13294
13295         * alias.c (find_base_term, get_addr):  Do not dereference NULL
13296         pointer when all VALUE's locations has been invalidated.
13297         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
13298
13299 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
13300
13301         * doc/invoke.texi (x86 options): Fix spelling/wording.
13302
13303 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
13304
13305         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
13306         put the original string in a comment.
13307         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
13308         * config/mips/mips.c (mips_output_ascii): Likewise.
13309         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
13310
13311 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13312
13313         * system.h (GIV_SORT_CRITERION): Poison.
13314         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
13315         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
13316
13317 2004-02-03  Roger Sayle  <roger@eyesopen.com>
13318
13319         PR target/9348
13320         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
13321         multiplies with a multiplication of the wrong signedness, its the
13322         signedness of the multiplication that we've performed that needs to
13323         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
13324         if expand_mult_highpart_adjust places the result in target.
13325
13326 2004-02-03  Richard Henderson  <rth@redhat.com>
13327
13328         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
13329
13330 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
13331
13332         * config.gcc (sh[234]l): Use little endian fragments.
13333
13334 2004-02-03  Paul Koning  <pkoning@equallogic.com>
13335
13336         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
13337         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
13338         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
13339         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
13340         floating point format.
13341         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
13342         the above functions.
13343         (output_move_quad): Output float values in correct target format.
13344         (legitimate_const_double_p): New function.
13345         * config/pdp11/pdp11.h: Fix typos.
13346         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
13347         (TARGET_FLOAT_FORMAT): Ditto.
13348         (pdp11_f_format, pdp11_d_format): Add external declarations.
13349         (MAX_REGS_PER_ADDRESS): Corrected.
13350         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
13351         (PRINT_OPERAND): Output float literals in target format.
13352
13353 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
13354
13355         PR c++/13975
13356         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
13357         TI_PRIVATE.
13358         (access_public_node): Redefine.
13359         (access_protected_node): Likewise.
13360         (access_private_node): Likewise.
13361         * tree.c (build_common_tree_nodes): Create access_public_node,
13362         access_protected_node, and access_private_node.
13363
13364 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
13365
13366         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
13367         (MASK_INLINE_INT_DIV_THR): Ditto.
13368         (MASK_INLINE_SQRT_LAT): Ditto.
13369         (MASK_INLINE_SQRT_THR): Ditto.
13370         (MASK_DWARF2_ASM): Ditto.
13371         (MASK_EARLY_STOP_BITS): Ditto.
13372
13373 2004-02-02  Paul Brook  <paul@codesourcery.com>
13374
13375         Merge from csl-arm-branch.
13376
13377         2004-01-30  Paul Brook  <paul@codesourcery.com>
13378
13379         * aof.h (REGISTER_NAMES): Add vfp reg names
13380         (ADDITIONAL_REGISTER_NAMES): Ditto.
13381         * aout.h (REGISTER_NAMES): Ditto.
13382         (ADDITIONAL_REGISTER_NAMES): Ditto.
13383         * arm-protos.h: Update/Add Prototypes.
13384         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
13385         Only allow 0.0 for VFP.
13386         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
13387         (values_fp): Rename from values_fpa.  Update Users.
13388         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
13389         Update users.  Only check valid constants for this hardware.
13390         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
13391         Only allow consts for FPA.
13392         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
13393         Only allow consts for FPA.
13394         (use_return_insn): Check for saved VFP regs.
13395         (arm_legitimate_address_p): Handle VFP DFmode addressing.
13396         (arm_legitimize_address): Ditto.
13397         (arm_general_register_operand): New function.
13398         (vfp_mem_operand): New function.
13399         (vfp_compare_operand): New function.
13400         (vfp_secondary_reload_class): New function.
13401         (arm_float_compare_operand): New function.
13402         (vfp_print_multi): New function.
13403         (vfp_output_fstmx): New function.
13404         (vfp_emit_fstm): New function.
13405         (arm_output_epilogue): Output VPF reg restore code.
13406         (arm_expand_prologue): Output VFP reg save code.
13407         (arm_print_operand): Add 'P'.
13408         (arm_hard_regno_mode_ok): Return modes for VFP regs.
13409         (arm_regno_class): Return classes for VFP regs.
13410         (arm_compute_initial_elimination_offset): Include space for VFP regs.
13411         (arm_get_frame_size): Ditto.
13412         * arm.h (FIXED_REGISTERS): Add VFP regs.
13413         (CALL_USED_REGISTERS): Ditto.
13414         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
13415         (FIRST_VFP_REGNUM): Define.
13416         (LAST_VFP_REGNUM): Define.
13417         (IS_VFP_REGNUM): Define.
13418         (FIRST_PSEUDO_REGISTER): Include VFP regs.
13419         (HARD_REGNO_NREGS): Handle VFP regs.
13420         (REG_ALLOC_ORDER): Add VFP regs.
13421         (enum reg_class): Add VFP_REGS.
13422         (REG_CLASS_NAMES): Ditto.
13423         (REG_CLASS_CONTENTS): Ditto.
13424         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
13425         (REG_CLASS_FROM_LETTER): Add 'w'.
13426         (EXTRA_CONSTRAINT_ARM): Add 'U'.
13427         (EXTRA_MEMORY_CONSTRAINT): Define.
13428         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
13429         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
13430         (REGISTER_MOVE_COST): Ditto.
13431         (PREDICATE_CODES): Add arm_general_register_operand,
13432         arm_float_compare_operand and vfp_compare_operand.
13433         * arm.md (various): Rename as above.
13434         (divsf3): Enable when TARGET_VFP.
13435         (divdf3): Ditto.
13436         (movdfcc): Ditto.
13437         (sqrtsf2): Ditto.
13438         (sqrtdf2): Ditto.
13439         (arm_movdi): Disable when TARGET_VFP.
13440         (arm_movsi_insn): Ditto.
13441         (movsi): Only split with general regs.
13442         (cmpsf): Use arm_float_compare_operand.
13443         (push_fp_multi): Restrict to TARGET_FPA.
13444         (vfp.md): Include.
13445         * vfp.md: New file.
13446         * fpa.md (various): Rename as above.
13447         * doc/md.texi: Document ARM w and U constraints.
13448
13449         2004-01-15  Paul Brook  <paul@codesourcery.com>
13450
13451         * config.gcc: Add with_fpu.  Allow with-float=softfp.
13452         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
13453         Break out of loop when we find a float-abi.  Fix typo.
13454         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
13455         Set -mfloat-abi=.
13456         * doc/install.texi: Document --with-fpu.
13457
13458         2003-01-14  Paul Brook  <paul@codesourcery.com>
13459
13460         * config.gcc (with_arch): Add armv6.
13461         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
13462         * config/arm/arm.c (arm_overrride_options): Ditto.
13463
13464         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
13465
13466         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
13467         (FL_ARCH6): Renamed from FL_ARCH6J.
13468         (arm_arch3m): Renamed from arm_fast_multiply.
13469         (arm_arch6): Renamed from arm_arch6j.
13470         * arm.h: Update all uses of above.
13471         * arm-cores.def: Likewise.
13472         * arm.md: Likewise.
13473
13474         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
13475         not arm6j.  Add entry for arch armv6.
13476
13477         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
13478
13479         * arm.c (arm_emit_extendsi): Delete.
13480         * arm-protos.h (arm_emit_extendsi): Delete.
13481         * arm.md (zero_extendhisi2): Also handle zero-extension of
13482         non-subregs.
13483         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
13484         (thumb_zero_extendhisi2): Only match if not v6.
13485         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
13486         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
13487         (thumb_extendqisi2): Likewise.
13488         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
13489         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
13490         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
13491         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
13492         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
13493         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
13494         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
13495         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
13496         (arm_extendqisi2addsi): Likewise.
13497
13498         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
13499
13500         Revert this change:
13501         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
13502         + REG addressing modes.
13503
13504         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
13505         + REG addressing modes.
13506
13507         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
13508
13509         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
13510         CONSTANT_P_RTX.
13511
13512         2003-30-12  Paul Brook  <paul@codesourcery.com>
13513
13514         * longlong.h: protect arm inlines with !defined (__thumb__)
13515
13516         2003-30-12  Paul Brook  <paul@codesourcery.com>
13517
13518         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
13519
13520         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
13521
13522         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
13523         change.
13524
13525         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
13526
13527         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
13528         to the virtual incoming args pointer for downward stacks.
13529
13530         2003-12-29  Paul Brook  <paul@codesourcery.com>
13531
13532         * config/arm/arm-cores.def: Add cost function.
13533         * config/arm/arm.c (arm_*_rtx_costs): New functions.
13534         (arm_rtx_costs): Remove
13535         (struct processors): Add rtx_costs field.
13536         (all_cores, all_architectures): Ditto.
13537         (arm_override_options): Set targetm.rtx_costs.
13538         (thumb_rtx_costs): New function.
13539         (arm_rtx_costs_1): Remove cases handled elsewhere.
13540         * config/arm/arm.h (processor_type): Add COSTS parameter.
13541
13542         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
13543
13544         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
13545         (arm926ejs.md): Include it.
13546         * config/arm/arm926ejs.md: New pipeline description.
13547
13548         2003-12-24  Paul Brook  <paul@codesourcery.com>
13549
13550         * config/arm/arm.c (arm_arch6j): New variable.
13551         (arm_override_options): Set it.
13552         (arm_emit_extendsi): New function.
13553         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
13554         * config/arm/arm.h (arm_arch6j): Declare.
13555         * config/arm/arm.md: Add sign/zero extend insns.
13556
13557         2003-12-23  Paul Brook  <paul@codesourcery.com>
13558
13559         * config/arm/arm.c (all_architectures): Add armv6.
13560         * doc/invoke.texi: Document it.
13561
13562         2003-12-19  Paul Brook  <paul@codesourcery.com>
13563
13564         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
13565         insn patterns to match.
13566         * config/arm/arm-generic.md: Ditto.
13567         * config/arm/cirrus.md: Ditto.
13568         * config/arm/fpa.md: Ditto.
13569         * config/amm/iwmmxt.md: Ditto.
13570         * config/arm/arm1026ejs.md: Ditto.
13571         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
13572         for 11_loadb.
13573
13574         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
13575
13576         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
13577         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
13578         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
13579         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
13580         arm_no_early_mul_dep): Correctly deal with conditional execution,
13581         parallels and single shift operations.
13582         (arm_no_early_alu_shift_value_dep): Define.
13583         * arm.md (attr type): Replace 'normal' with 'alu',
13584         'alu_shift' and 'alu_shift_reg'.
13585         (attr core_cycles): Adjust.
13586         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
13587         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
13588         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
13589         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
13590         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
13591         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
13592         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
13593         attribute appropriately.
13594         * config/arm/arm1026ejs.md (alu_op): Adjust.
13595         (alu_shift_op, alu_shift_reg_op): New.
13596         * config/arm/arm1136.md: Add better bypasses for early
13597         registers. Remove load[234] and store[234] bypasses.
13598         (11_alu_op): Adjust.
13599         (11_alu_shift_op, 11_alu_shift_reg_op): New.
13600
13601         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
13602
13603         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
13604         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
13605         * config/arm/arm.c (arm_no_early_store_addr_dep,
13606         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
13607         * config/arm/arm1026ejs.md: Add load-store bypass.
13608         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
13609         Add bypasses between instructions.
13610
13611         2003-12-10  Paul Brook  <paul@codesourcery.com>
13612
13613         * config/arm/arm.c (arm_fpu_model): New variable.
13614         (arm_fload_abi): New variable.
13615         (target_fpe_name): Rename from target_fp_name.
13616         (target_fpu_name): New variable.
13617         (arm_is_cirrus): Remove.
13618         (fpu_desc): New struct.
13619         (all_fpus): Define.
13620         (pf_model_for_fpu): Define.
13621         (all_loat_abis): Define.
13622         (arm_override_options): Set fp arch flags based on -mfpu=
13623         and -float-abi=.
13624         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
13625         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
13626         (*): Use new TARGET_* flags.
13627         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
13628         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
13629         (TARGET_SOFT_FLOAT): Ditto.
13630         (TARGET_SOFT_FLOAT_ABI): New.
13631         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
13632         TARGET_HARD_FLOAT.
13633         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
13634         (TARGET_OPTIONS): Add -mfpu=.
13635         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
13636         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
13637         (arm_pf_model): Define.
13638         (arm_float_abi_type): Define.
13639         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
13640         * config/arm/arm.md: Use new TARGET_* flags.
13641         * config/arm/cirrus.md: Ditto.
13642         * config/arm/fpa.md: Ditto.
13643         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
13644         * config/arm/semi.h (ASM_SPEC): Ditto.
13645         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
13646         (FPUTYPE_DEFAULT): Set to VFP.
13647         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
13648
13649         2003-11-22  Phil Edwards  <phil@codesourcery.com>
13650
13651         PR target/12476
13652         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
13653         'bx' instead of 'b' to avoid branch range restrictions.  Output
13654         the thunk immediately before the thunked-to function.
13655         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
13656         .thumb_func if a thunk is being generated.  Emit .code 16 along
13657         with .thumb_func if a thunk is not being generated.
13658
13659         2003-11-15  Nicolas Pitre <nico@cam.org>
13660
13661         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
13662         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
13663         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
13664         (lshrdi3_iwmmxt): Renamed from lshrdi3.
13665         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
13666
13667         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
13668             Ian Lance Taylor  <ian@wasabisystems.com>
13669
13670         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
13671         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
13672
13673         2003-11-05  Phil Edwards  <phil@codesourcery.com>
13674
13675         * config/arm/arm.md (insn):  Add new V6 instruction names.
13676         (generic_sched):  New attr.
13677         * config/arm/arm-generic.md:  Use generic_sched here.
13678         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
13679         stages of pipeline.  Adjust latency counts accordingly.
13680         * config/arm/arm1136jfs.md:  New file.
13681
13682         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
13683
13684         * config/arm/arm.h (processor_type): New enumeration type.
13685         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
13686         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
13687         (CPP_CPU_ARCH_SPEC): Likewise.
13688         * config/arm/arm.c (arm_tune): New variable.
13689         (all_cores): Use cores.def.
13690         (all_architectures): Add representative processor.
13691         (arm_override_options): Restructure way in which tuning
13692         information is deduced.
13693         * arm.md: Update "insn" and "type" attributes throughout.
13694         (insn): New attribute.
13695         (type): Compute "mult" from "insn" attribute.  Add load2,
13696         load3, load4 alternatives.
13697         (arm automaton): Move to arm-generic.md.
13698         * config/arm/arm-cores.def: New file.
13699         * config/arm/arm-generic.md: Likewise.
13700         * config/arm/arm1026ejs.md: Likewise.
13701
13702 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
13703
13704         * doc/invoke.texi (SPARC options): Remove -mflat and
13705         all -mxxx (xxx:chip) options.
13706         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
13707         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
13708         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
13709         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
13710         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
13711         * config/sparc/sparc.c: Likewise.
13712         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
13713         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
13714         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
13715         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
13716         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
13717         (sparc_flat_must_save_register_p): Likewise.
13718         (sparc_flat_compute_frame_size): Likewise.
13719         (sparc_flat_save_restore): Likewise.
13720         (sparc_flat_function_prologue): Likewise.
13721         (sparc_flat_function_epilogue): Likewise.
13722         (sparc_flat_epilogue_delay_slots): Likewise.
13723         (sparc_flat_eligible_for_epilogue_delay): Likewise.
13724         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
13725         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
13726         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
13727         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
13728         (CONDITIONAL_REGISTER_USAGE): Likewise.
13729         (FRAME_POINTER_REQUIRED): Likewise.
13730         (INITIAL_ELIMINATION_OFFSET): Likewise.
13731         (BASE_RETURN_VALUE_REG): Likewise.
13732         (BASE_OUTGOING_VALUE_REG): Likewise.
13733         (BASE_PASSING_ARG_REG): Likewise.
13734         (BASE_INCOMING_ARG_REG): Likewise.
13735         (INCOMING_REGNO): Likewise.
13736         (OUTGOING_REGNO): Likewise.
13737         (LOCAL_REGNO): Likewise.
13738         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
13739         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
13740         (EPILOGUE_USES): Likewise.
13741         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
13742         ("flat" attribute): Delete.
13743         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
13744         handling.
13745         (call followed by jump define_peephole's): Delete.
13746         (exception_receiver): Likewise.
13747         (builtin_setjmp_receiver): Likewise.
13748         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
13749
13750 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
13751
13752         PR c/11658
13753         PR c/13994
13754         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
13755         on langhooks.h.
13756         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
13757         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
13758         Include langhooks.h.  Replace c_common_truthvalue_conversion
13759         with the truthvalue_conversion language hook throughout.
13760         (expr_no_commas): Call default_conversion before save_expr
13761         for the first term of the production 'x ? : y'.
13762         * c-common.c (c_common_truthvalue_conversion): Remove
13763         obsolete block.  Invoke recursively the hook instead
13764         of this function.
13765         * c-convert.c (convert): handle ERROR_MARK_NODE.
13766         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
13767         returned by the truthvalue_conversion language hook.
13768         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
13769         c_objc_common_truthvalue_conversion.
13770         * c-objc-common.c (c_objc_common_truthvalue_conversion):
13771         New function.
13772         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
13773         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
13774         c_objc_common_truthvalue_conversion.
13775
13776 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13777
13778         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
13779         of gen_rtx.
13780         (LIBCALL_VALUE): Likewise.
13781         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
13782         gen_rtx_CC0 instead of gen_rtx.
13783         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
13784         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
13785         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
13786         gen_rtx.
13787         (m68hc11_emit_logical): Likewise.
13788
13789 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13790
13791         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
13792         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
13793         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
13794         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
13795         config/mips/mips.md, config/mmix/mmix.c,
13796         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
13797         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
13798         config/rs6000/altivec.md, config/s390/s390.c,
13799         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
13800         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
13801         Use const0_rtx instead of GEN_INT (0).  Do the same for other
13802         constants that are readily available.
13803
13804 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13805
13806         * doloop.c, optabs.c, regmove.c, sched-deps.c,
13807         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
13808         instead of GEN_INT (0).  Do the same for other constants that
13809         are readily available.
13810
13811 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13812
13813         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
13814         gen_rtx.
13815         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
13816         instead of gen_rtx.
13817         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
13818         gen_rtx.
13819         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
13820         gen_rtx_ASHIFT instead of gen_rtx.
13821         (udivmodqi4): Likewise.
13822
13823 2004-02-02  Richard Henderson  <rth@redhat.com>
13824
13825         PR target/13789
13826         * expr.c (store_expr): Use force_operand before emit_move_insn.
13827
13828 2004-02-02  Jeff Law  <law@redhat.com>
13829             Roger Sayle  <roger@eyesopen.com>
13830
13831         * tree.c (commutative_tree_code, associative_tree_code): New
13832         functions.
13833         (iterative_hash_expr): Use commutative_tree_code.
13834         * tree.h (commutative_tree_code, associative_tree_code): Declare.
13835         * fold-const.c (operand_equal_p): Use commutative_tree_code
13836         rather than inlining the commutativity check.
13837         (fold): Likewise.
13838
13839 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
13840
13841         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
13842         * config/frv/frv-protos.h: Remove the prototype for
13843         frv_function_arg_keep_as_reference.
13844         * config/frv/frv.c (frv_function_arg_keep_as_reference):
13845         Remove.
13846         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
13847         * config/stormy16/stormy16.h: Remove the commented-out
13848         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
13849
13850 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
13851
13852         PR target/13914
13853         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
13854         for retaddr_column.
13855
13856 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
13857
13858         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
13859         gen_rtx.
13860
13861 2004-02-02  Eric Christopher  <echristo@redhat.com>
13862             Zack Weinberg  <zack@codesourcery.com>
13863
13864         * c-opts.c (c_common_handle_option): Add -finput-charset.
13865         * c.opt: Ditto.
13866         * cppcharset.c (one_iso88591_to_utf8): Remove.
13867         (convert_iso88591_utf8): Ditto.
13868         (conversion_tab): Remove 8859-1 converter.
13869         (_cpp_input_to_utf8): Remove.
13870         (_cpp_init_iconv_buffer): Ditto.
13871         (_cpp_close_iconv_buffer): Ditto.
13872         (_cpp_convert_input): New function.
13873         (_cpp_default_encoding): Ditto.
13874         * cpphash.h: Add/remove prototypes for above.
13875         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
13876         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
13877         for narrow execution and input character sets.
13878         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
13879         * doc/cppopts.texi: Document -finput-charset.
13880
13881 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
13882
13883         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
13884         against FIRST_PSEUDO_REGISTER.
13885
13886 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
13887
13888         * doc/invoke.texi (SPARC options): Further improve.
13889
13890 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
13891
13892         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
13893         config/h8300/h8300.c, config/ip2k/ip2k.md,
13894         config/iq2000/iq2000.c, config/mips/mips.c,
13895         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
13896         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
13897         config/v850/v850.md: Fix indentation.
13898
13899 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
13900
13901         * config/sparc/sparc.c (function_arg_slotno): Align TImode
13902         arguments on a 16-byte boundary in the parameter array if ARCH64.
13903         Split handling of TFmode.
13904
13905 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
13906
13907         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
13908         Don't test CONSTANT_P (x).
13909         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
13910         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
13911         Fix misindentation.
13912
13913 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
13914
13915         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
13916
13917 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
13918
13919         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
13920         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
13921         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
13922         config/iq2000/iq2000.c, config/m32r/m32r.c,
13923         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
13924         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
13925         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
13926         config/stormy16/stormy16.c, config/v850/v850.md,
13927         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
13928
13929 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
13930
13931         * config/mcore/mcore.c (block_move_sequence): Replace
13932         gen_rtx_CONST_INT with GEN_INT.
13933
13934 2004-02-02  Jan Hubicka  <jh@suse.cz>
13935
13936         * alias.c (record_set): Use hard_regno_nregs.
13937         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
13938         * builtins.c (apply_args_size): Likewise.
13939         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
13940         mark_set_regs, add_stored_regs, mark_referenced_regs,
13941         insert_restore, insert_save, insert_one_insn): Likewise.
13942         * cfgcleanup.c: Include regs.h
13943         (mark_effect, mentions_nonequal_regs): Likewise.
13944         * cfgrtl.c (mark_killed_regs): Likewise
13945         * combine.c (update_table_tick, record_value_for_reg,
13946         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
13947         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
13948         reg_bitfield_target_p, distribute_notes): Likewise.
13949         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
13950         exp_equiv_p, cse_insn): Likewise.
13951         * cselib.c (cselib_lookup): Likewise.
13952         (cselib_invalidate_regno, cselib_record_set): Likewise.
13953         * df.c (df_ref_record): Likewise.
13954         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
13955         Likewise.
13956         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
13957         count_or_remove_death_notes_bb): Likewise.
13958         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
13959         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
13960         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
13961         * integrate.c (mark_stores): Likewise.
13962         * jump.c (delete_prior_computation): Likewise.
13963         * lcm.c (reg_dies, reg_becomes_live): Likewise.
13964         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
13965         * loop.c (LOOP_REGNO_NREGS): Likewise.
13966         * postreload.c (reload_combine, reload_combine_note_store,
13967         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
13968         * ra-colorize.c (combine, color_usable_p, get_free_reg,
13969         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
13970         try_recolor_web, insert_coalesced_conflicts, check_colors,
13971         break_precolored_alias): Likewise.
13972         * ra-debug.c: Include regs.h
13973         (ra_print_rtx_object): Likewise.
13974         * ra-rewrite (choose_spill_colors): Likewise.
13975         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
13976         * ra.c (init_ra): Likewise.
13977         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
13978         peep2_find_free_register): Likewise.
13979         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
13980         * regclass.c (hard_regno_nregs): New array.
13981         (init_reg_modes_once): Initialize it.
13982         (choose_hard_reg_mode): Use it.
13983         (record_reg_classes): Likewise.
13984         * regmove.c (mark_flags_life_zones): Likewise.
13985         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
13986         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
13987         copy_value, maybe_mode_change, find_oldest_value_reg,
13988         copyprop_hardreg_forward_1):
13989         * regs.h (hard_regno_nregs): Declare.
13990         * realod.c (reload_inner_reg_of_subreg): Use it.
13991         (push_reload, combine_reloads, find_dummy_reload,
13992         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
13993         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
13994         reload_adjust_reg_for_mode): Likewise.
13995         * reload1.c (compute_use_by_pseudos, count_pseudo,
13996         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
13997         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
13998         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
13999         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
14000         delete_output_reload): Likewise.
14001         * resource.c (update_live_status, mark_referenced_resources,
14002         mark_set_resources, mark_target_live_regs): Likewise.
14003         * rtlanal.c:  Include regs.h
14004         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
14005         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
14006         subreg_regno_offset, subreg_offset_representable_p,
14007         hoist_test_store): Likewise.
14008         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
14009         * sched-rgn.c (check_live_1, update_live_1): Likewise.
14010         * stmt.c: Include regs.h
14011         (decl_conflicts_with_clobbers_p): Likewise.
14012         * varasm.c (make_decl_rtl): Likewise.
14013         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
14014
14015 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14016
14017         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
14018         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
14019         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
14020         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
14021         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
14022         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
14023         config/iq2000/iq2000.h, config/m32r/m32r.c,
14024         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
14025         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
14026         config/mcore/mcore.c, config/mcore/mcore.h,
14027         config/mcore/mcore.md, config/mips/mips.c,
14028         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
14029         config/rs6000/rs6000.c, config/s390/s390.c,
14030         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
14031         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
14032         "gen_rtx (FOO, " with "gen_rtx_FOO (".
14033
14034 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14035
14036         * config/h8300/h8300.md (two peephole2's): New.
14037
14038 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
14039
14040         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
14041         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
14042         (ASM_CPU_SPEC): Likewise
14043         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
14044         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
14045
14046 2004-02-01  Roger Sayle  <roger@eyesopen.com>
14047
14048         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
14049         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
14050         (expand_builtin): Always call expand_builtin_pow.
14051
14052 2004-02-01  Roger Sayle  <roger@eyesopen.com>
14053
14054         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
14055         BUILT_IN_SIGNBITL): New GCC builtins.
14056         * builtins.c (expand_builtin_signbit): New function to RTL expand
14057         calls to signbit, signbitf and signbitl as inline intrinsics.
14058         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
14059         (fold_builtin_signbit): New function to perform constant folding
14060         of signbit, signbitf and signbitl.
14061         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
14062
14063         * doc/extend.texi: Document new signbit{,f,l} builtins.
14064
14065 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
14066
14067         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
14068
14069 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
14070
14071         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
14072         "mips_const_double_ok" and "simple_memory_operand", which were
14073         removed from the MIPS port with the mips-3_4-rewrite branch merge.
14074         * config/mips/mips.c (mips16_lay_out_constants): Update comment
14075         for removal of simple_memory_operand.
14076
14077 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14078
14079         * config/c4x/c4x.md: Use GEN_INT instead of
14080         gen_rtx (CONST_INT, ...).
14081
14082 2004-01-31  Richard Henderson  <rth@redhat.com>
14083
14084         * varasm.c (output_constant_pool): Don't zap the pool.
14085
14086 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14087
14088         * genrecog.c (decision_type): Add DT_const_int.
14089         (write_cond) [DT_const_int]: Print a comparison against small
14090         constant.
14091         (write_node): Simplify comparisons against small constants
14092         before printing tests.
14093
14094 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14095
14096         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
14097         instead of gen_rtx_CONST_INT.
14098
14099 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14100
14101         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
14102         instead of gen_rtx_CONST_INT.
14103
14104 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14105
14106         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
14107         hook_bool_CUMULATIVE_ARGS_false.
14108         * targhooks.c (default_strict_argument_naming): Rename to
14109         hook_bool_CUMULATIVE_ARGS_false.
14110         * targhooks.h: Update the prototype for
14111         default_strict_argument_naming.
14112
14113 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14114
14115         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
14116         * config/sh/sh.h: Likewise.
14117         * config/sh/sh.md: Likewise.
14118
14119 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
14120
14121         * doc/invoke.texi (SPARC options): Restructure and update.
14122
14123 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14124
14125         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
14126         STRICT_ARGUMENT_NAMING): Poison.
14127         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
14128         hook_bool_tree_false.
14129         * targhooks.c (default_promote_function_args): Remove.
14130         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
14131         Don't check incoming.
14132         (default_strict_argument_naming): Don't use
14133         STRICT_ARGUMENT_NAMING.
14134         * targhooks.h: Remove the prototype for
14135         default_promote_function_args.
14136
14137 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14138
14139         * config/i386/i386-protos.h: Remove the prototype for
14140         ix86_setup_incoming_varargs.
14141         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
14142         (ix86_setup_incoming_varargs): Make it static.
14143         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
14144
14145 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14146
14147         * alloc-pool.c: Fix comment typos.
14148         * builtin-types.def: Likewise.
14149         * builtins.def: Likewise.
14150         * c-pretty-print.c: Likewise.
14151         * df.h: Likewise.
14152         * reload1.c: Likewise.
14153
14154 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14155
14156         * doc/invoke.texi: Follow spelling conventions.
14157         * doc/tm.texi: Likewise.
14158
14159 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14160
14161         * doc/install.texi: Fix typos.
14162         * doc/invoke.texi: Likewise.
14163
14164 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
14165
14166         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
14167         registers as pointers.
14168         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
14169
14170 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
14171
14172         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
14173         and restore it to gen_lowpart_general on exit.
14174         (gen_lowpart_for_combine): Adjust all callers to go through
14175         gen_lowpart.
14176         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
14177         and restore it to gen_lowpart_general on exit.
14178         (gen_lowpart_if_possible): Adjust all callers to go through
14179         gen_lowpart.
14180         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
14181         (gen_lowpart): Declare as pointer to function, initialized to
14182         gen_lowpart_general.
14183         * rtl.h (gen_lowpart): Declare as pointer to function.
14184
14185 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14186
14187         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
14188         * calls.c: Likewise.
14189         * emit-rtl.c: Likewise.
14190         * function.c: Likewise.
14191         * reload1.c: Likewise.
14192         * config/i386/cygming.h: Likewise.
14193         * config/i386/i386.c: Likewise.
14194         * config/i386/winnt.c: Likewise.
14195
14196 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
14197
14198         PR bootstrap/9249
14199         * doc/install.texi: document --enable-__cxa_atexit option.
14200         * configure.ac: Disable __cxa_atexit if not supported.
14201         * configure: Regenerate.
14202
14203 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
14204
14205         * ggc-zone.c (ggc_free): New function.
14206
14207 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14208
14209         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
14210         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
14211         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
14212         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
14213         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
14214         config/alpha/alpha.c, config/alpha/alpha.h,
14215         config/alpha/alpha.md, config/alpha/unicosmk.h,
14216         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
14217         config/c4x/c4x-protos.h, config/c4x/c4x.md,
14218         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
14219         config/frv/frvend.c, config/i386/cygming.h,
14220         config/i386/djgpp.h, config/i386/emmintrin.h,
14221         config/i386/gthr-win32.c, config/i386/i386-interix.h,
14222         config/i386/i386-protos.h, config/i386/openbsd.h,
14223         config/i386/winnt.c, config/i386/xm-mingw32.h,
14224         config/i386/xmmintrin.h, config/ia64/ia64.md,
14225         config/iq2000/iq2000.md, config/m32r/m32r.md,
14226         config/m68k/m68k.md, config/mcore/mcore-elf.h,
14227         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
14228         config/mips/iris5gas.h, config/mips/iris6.h,
14229         config/mips/iris6gas.h, config/mips/linux.h,
14230         config/mips/mips.md, config/mips/netbsd.h,
14231         config/mips/openbsd.h, config/mips/windiss.h,
14232         config/pa/fptr.c, config/rs6000/aix.h,
14233         config/rs6000/altivec.h, config/rs6000/darwin.h,
14234         config/rs6000/xcoff.h, config/s390/s390-protos.h,
14235         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
14236         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
14237         config/sparc/sol2.h: Update copyright.
14238
14239 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
14240
14241         * Makefile.in (abs_docdir, abs_srcdir): Define.
14242         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
14243
14244 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14245
14246         * genconfig.c (main): Have CC0_P check its operand even on a
14247         target without cc0.
14248
14249 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14250
14251         * config/alpha/alpha.c: Remove mentions of deprecates macros
14252         in comments, remove some target-independent comments about target
14253         macros, and/or add minimal function comments for target hook
14254         implementations.
14255         * config/avr/avr.c: Likewise.
14256         * config/ia64/ia64.h: Likewise.
14257         * config/ip2k/ip2k.c: Likewise.
14258         * config/iq2000/iq2000.c: Likewise.
14259         * config/m32r/m32r.h: Likewise.
14260         * config/m68hc11/m68hc11.c: Likewise.
14261         * config/mcore/mcore.c: Likewise.
14262         * config/mmix/mmix.c: Likewise.
14263         * config/mn10300/mn10300.c: Likewise.
14264         * config/pa/pa.c: Likewise.
14265         * config/pdp11/pdp11.c: Likewise.
14266         * config/rs6000/rs6000.h: Likewise.
14267         * config/sh/sh.c: Likewise.
14268         * config/sh/sh.h: Likewise.
14269         * config/sparc/sparc.c: Likewise.
14270         * config/sparc/sparc.h: Likewise.
14271         * config/stormy16/stormy16.c: Likewise.
14272         * config/xtensa/xtensa.c: Likewise.
14273
14274 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
14275
14276         PR optimization/12147
14277         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
14278         RELOAD_FOR_OPADDR_ADDR.
14279         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
14280         might be reused as RELOAD_FOR_OPADDR_ADDR register.
14281
14282 2004-01-30  Jan Hubicka  <jh@suse.cz>
14283
14284         * reload.c (get_secondary_mem): Fix updating of
14285         secondary_memlocs_elim_used.
14286
14287 2004-01-30  Richard Henderson  <rth@redhat.com>
14288
14289         * varasm.c (struct rtx_const, struct pool_constant): Remove.
14290         (MAX_RTX_HASH_TABLE): Remove.
14291         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
14292         (first_pool, last_pool, pool_offset): Remove.
14293         (struct rtx_constant_pool): Split out from ...
14294         (struct varasm_status): ... here.  Reference one via pointer.
14295         (struct constant_descriptor_rtx): Merge struct pool_constant.
14296         (SYMHASH): Remove.
14297         (decode_rtx_const): Remove.
14298         (const_hash_rtx, compare_constant_rtx): Remove.
14299         (record_constant_rtx): Remove.
14300         (const_desc_rtx_hash, const_desc_rtx_eq): New.
14301         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
14302         (const_rtx_hash_1, const_rtx_hash): New.
14303         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
14304         (simplify_subtraction): Use simplify_rtx.
14305         (force_const_mem): Rewrite to use new data structures.
14306         (find_pool_constant): Likewise.
14307         (get_pool_constant, get_pool_constant_mark,
14308         get_pool_constant_for_function, get_pool_mode,
14309         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
14310         (output_constant_pool_2): Split out from output_constant_pool.
14311         (output_constant_pool_1): Likewise.  Use new pool datastructures.
14312         (output_constant_pool): Zap entire pool datastructure.
14313         (mark_constant): Use new pool datastructures.
14314         (mark_constants): Use for_each_rtx.
14315         (mark_constant_pool): Use new pool datastructures.
14316
14317 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
14318
14319         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
14320         Copy operands[1] to pseudo for simplify_gen_subreg.
14321
14322 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14323
14324         * gcse.c (bypass_block): Fix a typo in the previous check-in
14325         to the file.
14326
14327 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
14328
14329         * toplev.c: Include alloc-pool.h.
14330         * Makefile.in (toplev.c): Update dependencies.
14331
14332 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14333
14334         * combine.c (simplify_shift_const, case XOR): Be careful when
14335         commuting XOR with ASHIFTRT.
14336
14337 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14338             Eric Botcazou  <ebotcazou@libertysurf.fr>
14339
14340         * config/sparc/sparc-protos.h: Remove the prototype for
14341         sparc_builtin_saveregs.
14342         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14343         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14344         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14345         (TARGET_STRUCT_VALUE_RTX): Likewise.
14346         (TARGET_RETURN_IN_MEMORY): Likewise.
14347         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14348         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14349         (sparc_builtin_saveregs): Make it static.
14350         (sparc_promote_prototypes): New.
14351         (sparc_struct_value_rtx): Likewise.
14352         (sparc_return_in_memory): Likewise.
14353         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
14354         (PROMOTE_FUNCTION_RETURN): Likewise.
14355         (RETURN_IN_MEMORY): Likewise.
14356         (STRUCT_VALUE): Likewise.
14357         (STRUCT_VALUE_INCOMING): Likewise.
14358         (EXPAND_BUILTIN_SAVEREGS): Likewise.
14359         (STRICT_ARGUMENT_NAMING): Likewise.
14360         (PROMOTE_PROTOTYPES): Likewise.
14361
14362         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
14363
14364 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
14365
14366         PR c/12818
14367         * varasm.c (const_hash_1) <STRING_CST>: Use the
14368         address to compute the hash value if flag_writable_strings.
14369         (compare_constant) <STRING_CST>: Compare the addresses
14370         if flag_writable_strings.
14371         (build_constant_desc): Do not copy the expression for a
14372         STRING_CST if flag_writable_strings.
14373
14374 2004-01-30  Jan Hubicka  <jh@suse.cz>
14375
14376         * alloc-pool.c: Include hashtab.h
14377         (alloc_pool_descriptor): New structure
14378         (alloc_pool_hash): New global variable.
14379         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
14380         (create_alloc_pool): Update statistics.
14381         (free_alloc_pool): Likewise.
14382         (pool_alloc): Likewise.
14383         (output_info): New structure
14384         (print_statistics, dump_alloc_pool_statistics): New function.
14385         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
14386         (dump_alloc_pool_statistics): Declare.
14387         * toplev.c (finalize):  Dump statistics.
14388
14389         * reload.c (secondary_memlocs_elim_used): New static variable.
14390         (get_secondary_mem): Update it.
14391         (find_reloads): Use it.
14392
14393 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
14394
14395         * toplev.c: Fix broken checkin of 2003-12-30, again.
14396
14397 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
14398
14399         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
14400         s390*-*-* targets by specifying a 'nop' insn.
14401         * configure: Regenerate.
14402
14403 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
14404
14405         PR target/11475
14406         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
14407
14408 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
14409
14410         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
14411         of addr when creating MEM copy.
14412
14413 2004-01-29  Devang Patel  <dpatel@apple.com>
14414
14415         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
14416
14417 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
14418
14419         PR inline-asm/6162
14420         * reload.c (find_reloads): Only support one pair of commutative
14421         operands.
14422
14423 2004-01-29  Roger Sayle  <roger@eyesopen.com>
14424
14425         PR java/13824
14426         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
14427         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
14428         recursion.
14429
14430 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
14431
14432         * config/frv/frv.c: Don't mention deprecated macros in
14433         comments.  Remove some target-independent comments about
14434         target macros.
14435         * config/frv/frv.h: Likewise.
14436
14437 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14438
14439         * cfghooks.c (split_block): Set probability and count of the
14440         new edge.
14441
14442 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
14443
14444         * dwarf2out.c (struct die_struct): Added field decl_id.
14445         (decl_die_table): Changed to hash table.
14446         (decl_die_table_allocated): Deleted.
14447         (decl_die_table_in_use): Deleted.
14448         (DECL_DIE_TABLE_INCREMENT): Deleted.
14449         (decl_die_table_hash): New function.
14450         (decl_die_table_eq): New function.
14451         (lookup_decl_die): Lookup in a hash table.
14452         (equate_decl_number_to_die): Insert into a hash table.
14453         (dwarf2out_init): Init hash table decl_die_table.
14454
14455 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
14456
14457         PR optimization/13424
14458         * expr.c (store_constructor): Revert 2003-12-03 change.
14459
14460         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
14461         expected before returning early.  Avoid sharing RTL if they
14462         need to be changed.
14463
14464         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
14465         handling so that memory attributes are preserved.  Don't call
14466         ix86_set_move_mem_attrs.
14467         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
14468         (ix86_expand_clrstr): Rename src argument to
14469         dst.  Rework rep_stos and strset handling so that memory attributes
14470         are preserved.
14471         (ix86_expand_strlen): Pass src argument to
14472         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
14473         memory attributes are preserved.
14474         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
14475         change_address instead of gen_rtx_MEM.
14476         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
14477         expanders.
14478         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
14479         strmovqi, strmovqi_rex64): Remove.
14480         (rep_mov*, strmov*): Prefix insn names with *.
14481         (strset, strset_singleop, rep_stos): New expanders.
14482         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
14483         strsetqi, strsetqi_rex64): Remove.
14484         (rep_stos*, strset*): Prefix insn names with *.
14485         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
14486         to SImode.
14487         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
14488         are preserved.
14489         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
14490         Prefix insn names with *.
14491         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
14492         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
14493         (strlenqi_1): New expander.
14494         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
14495
14496 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14497
14498         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
14499         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
14500         verify_flow_info): Declaration removed.
14501         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
14502         (debug_bb, debug_bb_n): Add argument to dump_bb call.
14503         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
14504         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
14505         instead of delete_block.
14506         * cfghooks.c: Include timevar.h and toplev.h.
14507         (cfg_hooks): Define here.
14508         (verify_flow_info, dump_bb): Moved from cfg.c.
14509         (redirect_edge_and_branch, redirect_edge_and_branch_force,
14510         split_block, split_block_after_labels, move_block_after,
14511         delete_basic_block, split_edge, create_basic_block,
14512         create_empty_bb, can_merge_blocks_p, merge_blocks,
14513         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
14514         New functions.
14515         * cfghooks.h (struct cfg_hooks): Added fields name,
14516         make_forwarder_block, tidy_fallthru_edge and
14517         move_block_after. Changed type of verify_flow_info, dump_bb,
14518         split_block fields. Renamed cfgh_split_edge and delete_block
14519         fields.
14520         (redirect_edge_and_branch, redirect_edge_and_branch_force,
14521         split_block, delete_block, split_edge, create_basic_block,
14522         can_merge_blocks_p, merge_blocks): Macros removed.
14523         (cfg_hooks): Do not export.
14524         (verify_flow_info, dump_bb, redirect_edge_and_branch,
14525         redirect_edge_and_branch_force, split_block, split_block_after_labels,
14526         move_block_after, delete_basic_block, split_edge, create_basic_block,
14527         create_empty_bb, can_merge_blocks_p, merge_blocks,
14528         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
14529         Declare.
14530         (cfg_layout_rtl_cfg_hooks): Declare.
14531         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
14532         New functions.
14533         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
14534         (redirect_edge_with_latch_update): Removed.
14535         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
14536         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
14537         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
14538         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
14539         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
14540         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
14541         cfghooks.c.
14542         (rtl_create_basic_block): Coding style fix.
14543         (rtl_tidy_fallthru_edge, rtl_move_block_after,
14544         rtl_make_forwarder_block): New functions.
14545         (update_cfg_after_block_merging): Removed.
14546         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
14547         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
14548         to dump_bb.
14549         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
14550         find_if_case_2): Don't update dominators.
14551         * timevar.def (TV_CFG_VERIFY): New.
14552         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
14553         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
14554         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
14555         (remove_bbs): Don't call remove_bbs.
14556         (create_preheader): Use make_forwarder_block.
14557         (mfb_keep_just, mfb_update_loops): New static functions.
14558
14559 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
14560
14561         * config/avr/avr.h: Remove target-independent comments about
14562         target macros.
14563
14564 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
14565
14566         * timevar.c (timevar_print): Mention when checking is enabled.
14567
14568 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
14569
14570         * c-lex.c (c_lex): Rename to...
14571         (c_lex_with_flags): Add new parameter to get CPP flags.
14572         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
14573         * c-pragma.h (c_lex_with_flags): Declare.
14574
14575 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14576
14577         * config/mcore/mcore.c (mcore_external_libcall): Add a
14578         comment.
14579         (mcore_return_in_memory): Likewise.
14580
14581 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14582
14583         * config/mcore/mcore-protos.h: Remove the prototype for
14584         mcore_setup_incoming_varargs.
14585         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
14586         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
14587         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14588         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14589         (TARGET_STRUCT_VALUE_RTX): Likewise.
14590         (TARGET_RETURN_IN_MEMORY): Likewise.
14591         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14592         (mcore_setup_incoming_varargs): Make it static.  Receive the
14593         first argument by reference.  Add argument second_time.
14594         (mcore_external_libcall): New.
14595         (mcore_return_in_memory): Likewise.
14596         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
14597         (PROMOTE_FUNCTION_RETURN): Likewise.
14598         (STRUCT_VALUE): Likewise.
14599         (RETURN_IN_MEMORY): Likewise.
14600         (SETUP_INCOMING_VARARGS): Likewise.
14601         (PROMOTE_PROTOTYPES): Likewise.
14602         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
14603
14604 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14605
14606         * config/m32r/m32r-protos.h: Remove the prototype for
14607         m32r_setup_incoming_varargs.
14608         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
14609         (TARGET_STRUCT_VALUE_RTX): Likewise.
14610         (TARGET_RETURN_IN_MEMORY): Likewise.
14611         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14612         (m32r_return_in_memory): New.
14613         (m32r_setup_incoming_varargs): Make it static.
14614         * config/m32r/m32r.h: Remove #undef of
14615         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
14616         definitions of PROMOTE_FUNCTION_ARGS and
14617         PROMOTE_FUNCTION_RETURN.
14618         (PROMOTE_PROTOTYPES): Remove.
14619         (RETURN_IN_MEMORY): Likewise.
14620         (STRUCT_VALUE): Likewise.
14621
14622 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14623
14624         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
14625         (TARGET_STRUCT_VALUE_RTX): Likewise.
14626         (m68k_struct_value_rtx): Likewise.
14627         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
14628         STRUCT_VALUE_REGNUM.
14629         (PROMOTE_PROTOTYPES): Remove.
14630         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
14631         STRUCT_VALUE_REGNUM.
14632         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
14633         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
14634
14635 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14636
14637         * config/stormy16/stormy16.c
14638         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
14639         TARGET_BUILD_BUILTIN_VA_LIST.
14640
14641 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14642
14643         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
14644         (TARGET_STRUCT_VALUE_RTX): Likewise.
14645         (TARGET_RETURN_IN_MEMORY): Likewise.
14646         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14647         (v850_return_in_memory): Likewise.
14648         (v850_setup_incoming_varargs): Likewise.
14649         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
14650         (SETUP_INCOMING_VARARGS): Likewise.
14651         (RETURN_IN_MEMORY): Likewise.
14652         (STRUCT_VALUE): Likewise.
14653
14654 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14655
14656         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
14657         (fr30_setup_incoming_varargs): Don't use
14658         STRICT_ARGUMENT_NAMING.
14659         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
14660         (STRICT_ARGUMENT_NAMING): Likewise.
14661
14662 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14663
14664         * config/frv/frv-protos.h: Remove the prototype for
14665         frv_expand_builtin_saveregs.
14666         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
14667         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14668         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
14669         STRUCT_VALUE_REGNUM.
14670         (frv_expand_builtin_saveregs): Make it static.
14671         (frv_struct_value_rtx): New.
14672         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
14673
14674 2004-01-29  Jan Hubicka  <jh@suse.cz>
14675
14676         PR c++/12850
14677         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
14678         initial pointers.
14679         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
14680         for functions that will be only inlined.
14681         (cgraph_mark_function_to_output): Likewise.
14682         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
14683         do not clear function body.
14684         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
14685         (tree_rest_of_compilation): Reorganize the logic releasing function
14686         body to use callgraph datastructure.
14687
14688 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14689
14690         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
14691         to register_operand.
14692
14693 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
14694
14695         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
14696         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
14697         match_operand expressions so that all match_dups appear
14698         lexically after their corresponding match_operands.
14699
14700 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14701
14702         * config/h8300/h8300.c (WORD_REG_USED): Use
14703         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
14704         (compute_saved_regs): Likewise.
14705         (h8300_expand_prologue): Likewise.  Allocate locals after
14706         saving registers.
14707         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
14708         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
14709         registers.
14710         (h8300_initial_elimination_offset): Adjust for the new frame
14711         layout, which swaps flips the order of locals and saved
14712         registers.
14713         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
14714         (HARD_FRAME_POINTER_REGNUM): New.
14715         (ELIMINABLE_REGS): Add an elimination rule from
14716         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
14717         (REGISTER_NAMES): Add fp.
14718         * config/h8300/h8300.md (FP_REG): Change to 11.
14719         (HFP_REG): New.
14720
14721 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14722
14723         * genrecog.c (write_node): Remove a useless local variable.
14724
14725 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
14726
14727         * Makefile.in (options.c options.h): Use stamp file s-options to
14728         avoid unnecessary rebuilds.
14729         (options.o): New target listing dependencies.
14730         (gtyp-gen.h): Use stamp file s-gtyp-gen.
14731         (STAGESTUFF): Add s-gtyp-gen.
14732
14733 2004-01-28  Richard Henderson  <rth@redhat.com>
14734
14735         * ggc.h (ggc_free): Declare.
14736         * ggc-common.c (ggc_realloc): Use it.
14737         * ggc-page.c: Remove lots of inline markers.
14738         (globals): Add free_object_list.
14739         (ggc_alloc): Tidy.
14740         (ggc_free, validate_free_objects): New.
14741         (poison_pages): Provide default.
14742         (ggc_collect): Call validate_free_objects; emit markers to
14743         the debug file.
14744
14745 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
14746             Jim Wilson  <wilson@specifixinc.com>
14747
14748         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
14749         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
14750         scratch pointer.
14751         (ia64_secondary_reload_class): Delete case GR_REGS.
14752         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
14753         Do not allocate a scratch register.
14754         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
14755
14756 2004-01-28  Jan Hubicka  <jh@suse.cz>
14757
14758         * gcse.c (bypass_block): Prevent edges to be unified when we are
14759         about to emit compenstation code.
14760
14761 2004-01-28  Nick Clifton  <nickc@redhat.com>
14762
14763         * config/arm/arm.c (arm_expand_builtin): Force second argument of
14764         the setcwx insn into a register.
14765
14766 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
14767
14768         * config/fp-bit.c (pack_d): When using paired doubles to implement
14769         a long double, round the high part separately.
14770         (unpack_d): Fix the case in which the high part is a power of two
14771         and the low part is a nonzero value of the opposite sign.
14772
14773 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14774
14775         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
14776         (TARGET_STRUCT_VALUE_RTX): Likewise.
14777         (c4x_external_libcall): Likewise.
14778         (c4x_struct_value_rtx): Likewise.
14779         * config/c4x/c4x.h: Remove.
14780         (STRUCT_VALUE_REGNUM): Likewise.
14781         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
14782
14783 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14784
14785         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
14786         (TARGET_STRUCT_VALUE_RTX): Likewise.
14787         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
14788         (STRUCT_VALUE): Likewise.
14789         (PROMOTE_PROTOTYPES): Likewise.
14790
14791 2004-01-27  Roger Sayle  <roger@eyesopen.com>
14792
14793         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
14794         CONST_INT before using INTVAL.
14795
14796 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
14797
14798         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
14799         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
14800         frame if !TARGET_BACKCHAIN.
14801         * config/s390/s390.md ("allocate_stack"): Use pattern only if
14802         TARGET_BACKCHAIN.
14803         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
14804
14805 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
14806
14807         * ia64.c (ia64_function_arg): When placing HFAs in integer
14808         registers, do not special case the mode used for complex
14809         types.  Do not advance int_regs until the current register
14810         is full.
14811
14812 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
14813
14814         PR target/7297
14815         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
14816
14817 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
14818
14819         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
14820         slow, unaligned loads and stores while debugging.  Fix formatting.
14821
14822 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
14823
14824         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
14825         of computing wmode.
14826         (restore_stack_nonlocal): Same.
14827
14828 2004-01-27  Devang Patel <dpatel@apple.com>
14829
14830         * Makefile.in (dwarf2out.o): Depend on input.h
14831         * dbxout.c (dbx_debug_hooks): Add new empty hook for
14832         imported_module_or_decl.
14833         (xcoff_debug_hooks): Same.
14834         * sdbout.c (sdb_debug_hooks): Same.
14835         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
14836         * debug.c (do_nothing_debug_hooks): Same.
14837         (debug_nothing_tree_tree): New function.
14838         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
14839         * dwarf2out.c: Include input.h.
14840         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
14841         (remove_child_TAG): New function.
14842         (dwarf_tag_name): Handle DW_TAG_imported_module.
14843         (gen_subprogram_die): Equate decl number to declaration die. Do not
14844         remove all children dies while reusing declaration die for definition.
14845         Instead, selectively remove only formal parameters.
14846         (gen_variable_die): Equate variable decl to declaration die.
14847         (gen_field_die): Equate field decl to line number.
14848         (force_namespace_die): Replace it with ...
14849         (force_decl_die): ... this.
14850         (force_type_die): New function.
14851         (setup_namespace_context): Replace use of force_namespace_die() with
14852         force_decl_die().
14853         (gen_namespace_die): Same.
14854         (dwarf2out_imported_module_or_decl): New function.
14855
14856 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
14857
14858         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
14859         on CQImode and CHImode incoming arguments in register a7.
14860         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
14861         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
14862         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
14863         xtensa_copy_incoming_a7 before reload.
14864
14865 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
14866
14867         * coverage.c (get_coverage_counts): Give a different message
14868         if flag_guess_branch_prob is set.
14869         * predict.c (counts_to_freqs): Return an int.
14870         (estimate_bb_frequencies): If counts_to_freqs returns zero,
14871         calculate estimates.
14872
14873 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
14874
14875         * config/iq2000/iq2000-protos.h: Remove the prototype for
14876         iq2000_setup_incoming_varargs.
14877         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14878         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14879         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14880         (TARGET_STRUCT_VALUE_RTX): Likewise.
14881         (TARGET_RETURN_IN_MEMORY): Likewise.
14882         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14883         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14884         (iq2000_return_in_memory): Likewise.
14885         (iq2000_setup_incoming_varargs): Make it static.  Receive the
14886         first argument by reference.
14887         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
14888         (PROMOTE_FUNCTION_RETURN): Likewise.
14889         (PROMOTE_PROTOTYPES): Likewise.
14890         (RETURN_IN_MEMORY): Likewise.
14891         (STRUCT_VALUE): Likewise.
14892         (SETUP_INCOMING_VARARGS): Likewise.
14893         (STRICT_ARGUMENT_NAMING): Likewise.
14894
14895 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
14896
14897         * fixinc/fixinc.c (test_test): Initialize res.
14898         (start_flexer): Initialize pz_cmd_save.
14899
14900 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
14901
14902         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
14903         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
14904
14905 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
14906
14907         PR 7198
14908         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
14909         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
14910         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
14911         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
14912         Possibly rename pattern for consistency.
14913         Remove ??? comments suggesting that this be done.
14914         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
14915         New patterns.
14916         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
14917         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
14918         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
14919         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
14920         Update to match.
14921
14922 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
14923
14924         * config/arm/arm.c (output_return_instruction): Only restore IP
14925         into SP if frame_pointer_needed.
14926
14927 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
14928
14929         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
14930         for SCmode and DCmode if ARCH32.
14931         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
14932         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
14933         if ARCH32.
14934         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
14935         if ARCH32.
14936         (BASE_OUTGOING_VALUE_REG): Likewise.
14937
14938 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
14939
14940         PR target/10904
14941         PR target/13058
14942         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
14943         Forbid mode changes from SImode for lower FP regs if ARCH64.
14944
14945 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
14946
14947         * Makefile.in (bt-load.o): Depend on except.h.
14948         * bt-load.c (except.h): #include.
14949         (compute_defs_uses_and_gen): If insn at end of BB can throw
14950         within this function, consider registers used by it unavailable for
14951         btr migration.
14952         (move_btr_def): If insn at end of BB can throw, insert before rather
14953         than after.
14954
14955         * flags.h (flag_btr_bb_exclusive): Declare.
14956         * toplev.c (flag_btr_bb_exclusive): New variable.
14957         (f_options): Add btr-bb-exclusive.
14958         * bt-load.c (augment_live_range): Restore old behaviour if
14959         flag_btr_bb_exclusive is set.
14960         * common.opt: Add entry for -fbtr-bb-exclusive.
14961         * opts.c (common_handle_options): Same.
14962         * doc/invoke.texi: Document -fbtr-bb-exclusive.
14963
14964         * bt-load.c (btrs_live_at_end): New variable.
14965         (compute_defs_uses_and_gen): Compute its pointed-to array.
14966         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
14967         (augment_live_range): When augmenting with a new dominator,
14968         use only its btrs_live_at_end set, but also add in the full set
14969         of the old dominator.
14970         (btr_def_live_range): Use btrs_live_at_end.
14971         (move_btr_def): Set other_btr_uses_before_def, and move new set
14972         to the end of the basic block, if appropriate.
14973         (migrate_btr_defs): Allocate and free btrs_live_at_end.
14974
14975         * bt-load.c (basic_block_freq): Remove outdated comment.
14976
14977 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
14978
14979         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
14980         (PREDICATE_CODES): Remove duplicate.
14981         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
14982         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
14983         (MASK_PROFILE_KERNEL): Adjust define.
14984
14985 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
14986
14987         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
14988         of long string literals from 32 bytes to sizeof (void *) when !-Os
14989         and to 1 with -Os.
14990
14991 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14992
14993         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
14994         constant addresses in the normal mode.
14995
14996 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14997
14998         * system.h (CHAR_BITFIELD): Delete.
14999         (BOOL_BITFIELD): New.
15000         * c-decl.c (c_scope): Use BOOL_BITFIELD.
15001         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
15002
15003 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15004
15005         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15006         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15007         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15008         (TARGET_STRUCT_VALUE_RTX): Likewise.
15009         (TARGET_RETURN_IN_MEMORY): Likewise.
15010         (arc_return_in_memory): Likewise.
15011         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
15012         (PROMOTE_FUNCTION_RETURN): Likewise.
15013         (RETURN_IN_MEMORY): Likewise.
15014         (STRUCT_VALUE): Likewise.
15015
15016 2004-01-26  Richard Henderson  <rth@redhat.com>
15017
15018         * c-parse.in (extension): Use itype.
15019         (SAVE_EXT_FLAGS): Don't allocate a tree.
15020         (RESTORE_EXT_FLAGS): Don't read a tree.
15021
15022 2004-01-26  Jan Hubicka  <jh@suse.cz>
15023
15024         * cselib.c (discard_useless_values):  Clear out value pointer pointing
15025         to datastructure to be recycled.
15026
15027 2004-01-25  Jan Hubicka  <jh@suse.cz>
15028
15029         * genextract.c (main): Do not output the memset when not checking.
15030
15031 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15032
15033         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
15034         switch statement instead of a chain of if statements.
15035
15036 2004-01-26  Jeff Law  <law@redhat.com>
15037
15038         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
15039         acute accents for Petur Runolfsson's entry.
15040
15041 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15042
15043         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
15044         (TARGET_RETURN_IN_MEMORY): Likewise.
15045         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
15046         (RETURN_IN_MEMORY): Likewise.
15047
15048 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15049
15050          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
15051          unaligned load/store into smaller loads and stores.
15052
15053 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15054
15055         * function.c (assign_parms): Do not assign
15056         long long argument to memory in prologue if
15057         is it loaded into register.
15058
15059 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15060
15061          PR middle-end/13779
15062          * expr.c (emit_group_load): split constant
15063          correctly into register components of PARALLEL insn.
15064
15065 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15066
15067         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
15068         Use adjust_address_nv directly with appropriate mode.
15069         (restore_stack_nonlocal): Ditto.
15070
15071 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15072
15073         * config/xtensa/xtensa-protos.h: Remove the prototype for
15074         xtensa_builtin_saveregs.
15075         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15076         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15077         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15078         (TARGET_STRUCT_VALUE_RTX): Likewise.
15079         (TARGET_RETURN_IN_MEMORY): Likewise.
15080         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15081         (xtensa_builtin_saveregs): Make it static.
15082         (xtensa_return_in_memory): New.
15083         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
15084         (PROMOTE_FUNCTION_RETURN): Likewise.
15085         (PROMOTE_PROTOTYPES): Likewise.
15086         (STRUCT_VALUE): Likewise.
15087         (RETURN_IN_MEMORY): Likewise.
15088         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15089
15090 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15091
15092         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
15093         (arm_setup_incoming_varargs): Likewise.
15094         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
15095
15096 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15097
15098         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
15099         (cris_setup_incoming_varargs): Likewise.
15100         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
15101
15102 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15103
15104         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
15105         (ns32k_struct_value_rtx): Likewise.
15106         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
15107         NS32K_STRUCT_VALUE_REGNUM.
15108
15109 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15110
15111         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15112         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15113         (TARGET_STRUCT_VALUE_RTX): Likewise.
15114         (arm_struct_value_rtx): Likewise.
15115         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
15116         (STRUCT_VALUE): Likewise.
15117         (STRUCT_VALUE_REGNUM): Likewise.
15118         (PROMOTE_PROTOTYPES): Likewise.
15119
15120 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15121
15122         * config/ia64/ia64-protos.h: Remove the prototype for
15123         ia64_setup_incoming_varargs and ia64_return_in_memory.
15124         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
15125         (TARGET_RETURN_IN_MEMORY): Likewise.
15126         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15127         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15128         (ia64_setup_incoming_varargs): Adjust the arguments to meet
15129         the requirement of TARGET_SETUP_INCOMING_VARARGS.
15130         (ia64_return_in_memory): Make it static.  Change the return
15131         type to bool from int.  Add an argument.
15132         (ia64_struct_value_rtx): New.
15133         * config/ia64/ia64.h: Remove commented-out definitions of
15134         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
15135         PROMOTE_PROTOTYPES.
15136         (RETURN_IN_MEMORY): Remove.
15137         (STRUCT_VALUE_REGNUM): Likewise.
15138         (STRICT_ARGUMENT_NAMING): Likewise.
15139
15140 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
15141
15142         PR target/13666
15143         * config/sparc/sparc.c (function_arg_union_value): New function.
15144         (function_arg): Use it to deal with unions.
15145         (function_value): Likewise.  Define 'regbase' only for ARCH64.
15146         Replace a conditional statement by a simpler one.
15147
15148 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
15149
15150         * config/mips/mips.c (mips16_optimize_gp): Delete.
15151         (mips_reorg): Don't call it.
15152
15153 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15154
15155         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
15156         (floatunsqihf2): Remove operand 6.
15157         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
15158         fix patterns.
15159         (ldi_conditional, ldf_conditional): Validate operands.
15160
15161 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15162
15163         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
15164         (HAVE_GAS_HIDDEN): Undefine as interim measure.
15165
15166 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15167
15168         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
15169         memory references if TARGET_EXPOSE_LDP nonzero.
15170
15171 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15172
15173         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
15174
15175 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15176
15177         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
15178         invalid operand combinations.
15179
15180 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15181
15182         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
15183         c4x_legitimate_address_p.  Fix post_modify check.
15184
15185         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
15186         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
15187
15188 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15189
15190         * config/pa/pa-protos.h: Remove the prototype for
15191         hppa_builtin_saveregs.  Add a prototype for
15192         pa_return_in_memory.
15193         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
15194         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15195         (TARGET_STRUCT_VALUE_RTX): Likewise.
15196         (TARGET_RETURN_IN_MEMORY): Likewise.
15197         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15198         (pa_struct_value_rtx): Likewise.
15199         (pa_return_in_memory): Likewise.
15200         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
15201         PA_STRUCT_VALUE_REGNUM.
15202         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
15203         (EXPAND_BUILTIN_SAVEREGS): Remove.
15204         (PROMOTE_PROTOTYPES): Likewise.
15205         (PROMOTE_FUNCTION_RETURN): Likewise.
15206
15207 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15208
15209         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
15210         (TARGET_STRUCT_VALUE_RTX): Likewise.
15211         (vax_struct_value_rtx): Likewise.
15212         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
15213         VAX_STRUCT_VALUE_REGNUM.
15214         (PROMOTE_PROTOTYPES): Remove.
15215
15216 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15217
15218         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
15219
15220 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
15221
15222         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
15223         and MIPS64 have HI/LO interlocks.  Update comment.
15224
15225 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15226
15227         * config/stormy16/stormy16-protos.h: Remove the prototype for
15228         xstormy16_setup_incoming_varargs.
15229         * config/stormy16/stormy16.c
15230         (xstormy16_setup_incoming_varargs): Remove.
15231         (xstormy16_return_in_memory): New.
15232         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
15233         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15234         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15235         (TARGET_STRUCT_VALUE_RTX): Likewise.
15236         (TARGET_RETURN_IN_MEMORY): Likewise.
15237         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
15238         (PROMOTE_FUNCTION_RETURN): Likewise
15239         (PROMOTE_PROTOTYPES): Likewise
15240         (RETURN_IN_MEMORY): Likewise
15241         (STRUCT_VALUE): Likewise
15242         (SETUP_INCOMING_VARARGS): Likewise
15243
15244 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
15245
15246         * config/mips/mips.c (mips_offset_within_object_p): New function.
15247         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
15248         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
15249         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
15250
15251 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15252
15253         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
15254         (PROMOTE_FUNCTION_RETURN): Likewise.
15255
15256 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15257
15258         * config/mn10300/mn10300-protos.h: Remove the prototype for
15259         mn10300_builtin_saveregs.
15260         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
15261         (TARGET_STRUCT_VALUE_RTX): Likewise.
15262         (TARGET_RETURN_IN_MEMORY): Likewise.
15263         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15264         (mn10300_return_in_memory): Likewise.
15265         (mn10300_builtin_saveregs): Make it static.
15266         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
15267         (RETURN_IN_MEMORY): Likewise.
15268         (STRUCT_VALUE): Likewise.
15269         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15270
15271 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
15272
15273         PR bootstrap/13853
15274         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
15275
15276 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15277
15278         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
15279         using ccr.
15280
15281 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15282
15283         * config/i860/i860-protos.h: Remove the prototype for
15284         i860_saveregs.
15285         * config/i860/i860.c (i860_saveregs): Make it static.
15286         (i860_struct_value_rtx): New.
15287         (TARGET_STRUCT_VALUE_RTX): Likewise.
15288         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15289         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
15290         I860_STRUCT_VALUE_REGNUM.
15291         (EXPAND_BUILTIN_SAVEREGS): Remove.
15292
15293 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15294
15295         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
15296         (TARGET_RETURN_IN_MEMORY): Likewise.
15297         (m68hc11_struct_value_rtx): Likewise.
15298         (m68hc11_return_in_memory): Likewise.
15299         * config/m68hc11/m68hc11.h: Remove a commented-out definition
15300         of PROMOTE_PROTOTYPES.
15301         (RETURN_IN_MEMORY): Remove.
15302         (STRUCT_VALUE_REGNUM): Likewise.
15303
15304 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15305
15306         * config/mmix/mmix-protos.h: Remove the prototype for
15307         mmix_setup_incoming_varargs.
15308         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15309         (TARGET_STRUCT_VALUE_RTX): Likewise.
15310         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15311         (mmix_setup_incoming_varargs): Make it static.
15312         (mmix_struct_value_rtx): New.
15313         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
15314         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
15315         (STRUCT_VALUE_REGNUM): Remove.
15316         (SETUP_INCOMING_VARARGS): Likewise.
15317
15318 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15319
15320         * config/mips/mips-protos.h: Remove the prototypes for
15321         mips_setup_incoming_varargs and mips_return_in_memory.
15322         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15323         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15324         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15325         (TARGET_STRUCT_VALUE_RTX): Likewise.
15326         (TARGET_RETURN_IN_MEMORY): Likewise.
15327         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15328         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15329         (mips_setup_incoming_varargs): Match the prototype for
15330         TARGET_SETUP_INCOMING_VARARGS.
15331         (mips_return_in_memory): Make it static.  Add argument fntype.
15332         (mips_strict_argument_naming): New.
15333         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
15334         (PROMOTE_FUNCTION_ARGS): Likewise.
15335         (PROMOTE_FUNCTION_RETURN): Likewise.
15336         (STRUCT_VALUE): Likewise.
15337         (RETURN_IN_MEMORY): Likewise.
15338         (SETUP_INCOMING_VARARGS): Likewise.
15339         (STRICT_ARGUMENT_NAMING): Likewise.
15340
15341 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15342
15343         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
15344         (TARGET_RETURN_IN_MEMORY): Likewise.
15345         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15346         (ip2k_return_in_memory): Likewise.
15347         (ip2k_setup_incoming_varargs): Likewise.
15348         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
15349         (STRUCT_VALUE): Likewise.
15350         (STRUCT_VALUE_INCOMING): Likewise.
15351         (SETUP_INCOMING_VARARGS): Likewise.
15352
15353 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15354
15355         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
15356         (TARGET_RETURN_IN_MEMORY): Likewise.
15357         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15358         (avr_return_in_memory): Remove.
15359         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
15360         (STRUCT_VALUE): Likewise.
15361         (STRUCT_VALUE_INCOMING): Likewise.
15362         (STRICT_ARGUMENT_NAMING): Likewise.
15363
15364 2004-01-25  Jan Hubicka  <jh@suse.cz>
15365
15366         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
15367
15368 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
15369
15370         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
15371         (mips_regno_mode_ok_for_base_p): Declare.
15372         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
15373         (FRAME_POINTER_REGNUM): Renumber to 78.
15374         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
15375         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
15376         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
15377         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
15378         (REG_MODE_OK_FOR_BASE_P): Likewise.
15379         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
15380         entry for 77 to "$arg" and entry for 78 to "$frame".
15381         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
15382         (mips_reg_mode_ok_for_base_p): Remove.
15383         (mips_regno_mode_ok_for_base_p): New function, derived from old
15384         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
15385         restrictions unless we're being strict.
15386         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
15387
15388 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15389
15390         * c-common.h: Fix comment typos.
15391         * c-decl.c: Likewise.
15392         * cgraphunit.c: Likewise.
15393         * combine.c: Likewise.
15394         * et-forest.c: Likewise.
15395         * flow.c: Likewise.
15396         * function.c: Likewise.
15397         * ifcvt.c: Likewise.
15398         * integrate.c: Likewise.
15399         * jump.c: Likewise.
15400         * postreload.c: Likewise.
15401         * varray.c: Likewise.
15402
15403 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15404
15405         * doc/frontends.texi: Update copyright.
15406         * doc/gcov.texi: Likewise.
15407         * doc/gty.texi: Likewise.
15408         * doc/sourcebuild.texi: Likewise.
15409         * doc/standards.texi: Likewise.
15410
15411 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
15412
15413         PR target/12978
15414         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
15415         Remove movstrqi_small because it conflicts with movstrqi_large.
15416
15417 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15418
15419         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15420         (TARGET_STRUCT_VALUE_RTX): Likewise.
15421         (cris_struct_value_rtx): Likewise.
15422         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
15423         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
15424         STRUCT_VALUE_REGNUM.
15425         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
15426
15427 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
15428
15429         PR bootstrap/13848
15430         * cse.c (cse_cc_succs): Change the mode of the source expression
15431         as soon as decide we need a new mode.  Don't permit changing modes
15432         if we found a match in a successor block.
15433         (cse_condition_code_reg): Save original mode of source expression
15434         so that we know whether we have to change the mode in other
15435         insns.
15436
15437 2004-01-24  Jan Hubicka  <jh@suse.cz>
15438
15439         * emit-rtl.c (change_address, adjust_address_1, offset_address,
15440         widen_memory_access):  Return early when there is nothing to change.
15441
15442 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
15443
15444         * simplify-rtx.c (simplify_relational_operation): Don't
15445         simplify address == constant into address + -constant == 0.
15446
15447 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15448
15449         * gcc.c (process_command): Don't internationalize the
15450         Copyright message.
15451         * mips-tfile.c (main): Likewise.
15452
15453 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
15454
15455         * cse.c: (cse_cc_succs) Fix comparison warning.
15456
15457 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15458
15459         * config/h8300/h8300.md: Remove extraneous USE in expanders.
15460
15461 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15462
15463         * config/h8300/h8300-protos.h: Provide prototypes for
15464         h8300_legitimate_constant_p and h8300_legitimate_address_p.
15465         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
15466         (h8300_rtx_ok_for_base_p): Likewise.
15467         (h8300_legitimate_address_p): Likewise.
15468         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
15469         h8300_legitimate_constant_p.
15470         (RTX_OK_FOR_BASE_P): Remove.
15471         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
15472
15473 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15474
15475         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
15476         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
15477         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
15478         (REG_OK_FOR_BASE_STRICT_P): Likewise.
15479         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
15480         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
15481         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
15482         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
15483
15484 2004-01-24  Jan Hubicka  <jh@suse.cz>
15485
15486         * cselib.c (remove_useless_values):  Do not access discarded values.
15487
15488 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
15489
15490         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
15491         arrays.
15492
15493 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
15494
15495         * recog.c: Fix a typo in copyright.
15496
15497 2004-01-23  Andrew Pinski  <apinski@apple.com>
15498
15499         * config/rs6000/rs6000.md (call): Fix misappiled patch.
15500         (call_value): Likewise.
15501
15502 2004-01-23  Richard Henderson  <rth@redhat.com>
15503
15504         PR opt/12941
15505         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
15506         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
15507         if SHIFT_COUNT_TRUNCATED is set.
15508
15509 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
15510
15511         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
15512         separate real and imaginary parts.
15513         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
15514
15515 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
15516
15517         PR target/13674
15518         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
15519         loading into GPR.
15520
15521 2004-01-23  Jan Hubicka  <jh@suse.cz>
15522
15523         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
15524         change.
15525
15526         * alloc-pool.c (align_four): Kill.
15527         (create_alloc_pool): Align size to eight.
15528         (free_alloc_pool, free_pool): Invalidate deallocated data.
15529
15530 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
15531
15532         PR gcc/1532
15533         * cse.c (cse_change_cc_mode): New static function.
15534         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
15535         (cse_condition_code_reg): New function.
15536         * rtl.h (cse_condition_code_reg): Declare.
15537         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
15538         * target.h (struct gcc_target): Add fixed_condition_code_regs and
15539         cc_modes_compatible.
15540         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
15541         (TARGET_CC_MODES_COMPATIBLE): Define.
15542         (TARGET_INITIALIZER): Add new initializers.
15543         * targhooks.c (default_cc_modes_compatible): New function.
15544         * targhooks.c (default_cc_modes_compatible): Declare.
15545         * hooks.c (hook_bool_intp_intp_false): New function.
15546         * hooks.h (hook_bool_intp_intp_false): Declare.
15547         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
15548         (TARGET_CC_MODES_COMPATIBLE): Define.
15549         (ix86_fixed_condition_code_regs): New static function.
15550         (ix86_cc_modes_compatible): Likewise.
15551         * doc/tm.texi (Condition Code): Document new hooks.
15552
15553 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15554
15555         * fixinc/inclhack.def (bad_lval): Renamed to ...
15556         (alpha_bad_lval): ... this.
15557         Removed file list.
15558         Restrict to alpha*-dec-osf*.
15559         * fixinc/fixincl.x: Regenerate.
15560         * fixinc/tests/base/dirent.h: Remove, moving test ...
15561         * fixinc/tests/base/testing.h: ... here, reflecting new name.
15562
15563 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
15564
15565         PR c/13814
15566         * c-decl.c (diagnose_mismatched_decls): Also discard a
15567         built-in if we encounter an old-style definition with the
15568         same name.
15569
15570 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
15571
15572         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
15573         set to default{32,64}.
15574
15575 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
15576
15577         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
15578         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
15579
15580 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
15581             Olivier Hainque  <hainque@act-europe.fr>
15582
15583         * fold-const.c (fold_binary_op_with_conditional_arg): Only
15584         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
15585
15586 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
15587
15588         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
15589         size for minipool references.
15590
15591 2004-01-23  Roger Sayle  <roger@eyesopen.com>
15592
15593         * real.c (real_floor, real_ceil): Tweak to allow input and output
15594         arguments to overlap.
15595         (real_round): New function to implement round(3m) semantics.
15596         * real.h (real_round): Prototype here.
15597         * builtins.c (fold_builtin_round): New function to constant fold
15598         round, roundf and roundl.
15599         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
15600
15601 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
15602
15603         PR optimization/13819
15604         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
15605         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
15606         (sh_handle_sp_switch_attribute): Remove warning.
15607
15608 2003-11-30  Jan Hubicka  <jh@suse.cz>
15609
15610         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
15611
15612 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
15613
15614         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
15615         may or may not return non-NIL.
15616         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
15617         check CANNOT_CHANGE_MODE_CLASS
15618
15619 2004-01-23  Jan Hubicka  <jh@suse.cz>
15620
15621         * basic-block.h (PROP_POSTRELOAD): New macro.
15622         (CLEANUP_LOG_LINKS): New.
15623         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
15624         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
15625
15626         * cselib.c (value_pool): New.
15627         (new_cselib_val): Use pool.
15628         (cselib_init): Initialize value_pool
15629         (cselib_finish): Free pool.
15630
15631 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
15632
15633         * config/sparc/sparc.c (scan_record_type): New function.
15634         (function_arg_slotno): Use it to determine which kinds of
15635         registers the record can be passed in.
15636
15637 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
15638
15639         * config/pa/fptr.c: Fix old-style definition.
15640
15641 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
15642
15643         PR optimization/13724
15644         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
15645         represents the zero bits produced by a ZERO_EXTEND operation.
15646
15647 2004-01-22  Roger Sayle  <roger@eyesopen.com>
15648
15649         PR optimization/13821
15650         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
15651         correctly calculate the lowpart offset of the contracted subreg.
15652
15653 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
15654
15655         * doc/invoke.texi (Optimize Options): Note that --param arguments
15656         are subject to change without notice.
15657
15658 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15659
15660         * config.gcc (mips-sgi-irix6*o32): Removed.
15661         * config/mips/iris6-o32-as.h: Likewise.
15662         * config/mips/iris6-o32-gas.h: Likewise.
15663         * config/mips/iris6-o32.h: Likewise.
15664
15665 2004-01-22  Jan Hubicka  <jh@suse.cz>
15666
15667         * cfgcleanup.c (first_pass): New static variable.
15668         (try_forward_edges):  Add work limiting check for threading.
15669         (try_crossjump_bb):  Add work limiting check for crossjumping.
15670         (try_optimize_cfg):  Maintain first pass variable.
15671
15672 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
15673
15674         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
15675         handles complex and vector modes.
15676
15677 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
15678
15679         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
15680         (REG_OK_FOR_BASE_P_STRICT): Likewise.
15681         (STRICT): Likewise.
15682
15683 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
15684
15685         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
15686         (genrtl_for_stmt): Remove emit_nop calls.
15687
15688 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15689
15690         PR target/13713
15691         PR target/13324
15692         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
15693         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
15694         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
15695
15696 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
15697
15698         * config/arm/arm.c: Include "debug.h".
15699         (thumb_pushpop): Take two new arguments.  Add some commentary.
15700         Output frame information when pushing.
15701         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
15702         thumb_pushpop.
15703         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
15704         offset, and pass it to thumb_pushpop.  Output CFI information.
15705         (thumb_expand_prologue): Add some frame-related markers and notes.
15706
15707 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
15708
15709         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
15710         for TARGET_64BIT.
15711         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
15712         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
15713
15714 2004-01-22  Roger Sayle  <roger@eyesopen.com>
15715             Paolo Bonzini  <bonzini@gnu.org>
15716
15717         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
15718         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
15719         * rtl.h (subreg_lsb_1): Prototype here.
15720         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
15721         sign extensions.
15722
15723 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
15724
15725         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
15726         macro need not be defined if jump-tables should contain
15727         relative addresses only when -fPIC or -fPIC is in effect.
15728
15729 2004-01-22  Jan Hubicka  <jh@suse.cz>
15730
15731         * alias.c (reg_base_value): Turn into varray.
15732         (reg_base_value_size): Kill.
15733         (old_reg_base_value): New deletable varray.
15734         (alias_invariant_size): New variable.
15735         (REG_BASE_VALUE): Update to use varray.
15736         (find_base_value): Likewise.
15737         (record_set): Likewise.
15738         (record_base_value): Likewise.
15739         (memrefs_conflict_p): Likewise.
15740         (record_set): Likewise
15741         (record_base_value): Likewise.
15742         (memrefs_conflict_p): Use alias_invariant_size.
15743         (init_alias_analysis): Use varray; set alias_invariant_size;
15744         rescale other arrays to be sized by maxreg.
15745         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
15746
15747 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
15748
15749         * config/sparc/sparc.c (function_arg_slotno): Use
15750         FLOAT_TYPE_P to detect FP fields in structures.
15751         (function_arg_record_value_1): Likewise.
15752         (function_arg_record_value_2): Likewise.
15753
15754 2004-01-22  Jan Hubicka  <jh@suse.cz>
15755
15756         * function.c (allocate_struct_function): Do not initialize expr, emit
15757         and varasm.
15758         (prepare_function_start): Do it here.
15759         * c-parse.in (maybe_type_qual): Do not produce line number notes.
15760
15761 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
15762
15763         PR target/13559
15764         * config/sparc/sparc.c (function_arg_record_value_3): Revert
15765         to 'word_mode' once the first slot has been filled.
15766
15767 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
15768
15769         * config/sparc/sparc.c (function_arg_record_value_1): Fix
15770         computation of the number of integer registers required.
15771
15772 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
15773
15774         * config/i386/i386.md: Simplify certain comparisons of
15775         const_int.
15776
15777 2004-01-21  Andrew Pinski  <apinski@apple.com>
15778
15779         PR target/13785
15780         * config/rs6000/rs6000.md (call_value): Force operand
15781         1 not operand 0 into a register.
15782
15783 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
15784
15785         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
15786         unwind-dw2-fde.h: Update copyright.
15787
15788 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15789
15790         * pa-protos.h: Update copyright.
15791         * pa.h: Likewise.
15792         * pa.md: Likewise.
15793
15794 2004-01-21  Caroline Tice  <ctice@apple.com>
15795
15796         PR target/12308
15797         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
15798         flags register.
15799         (fix_truncdfdi2): Likewise.
15800         (fix_truncsfdi2): Likewise.
15801         (*fix_truncdi_1): Likewise.
15802         (fix_truncxfsi2): Likewise.
15803         (fix_truncdfsi2): Likewise.
15804         (fix_truncsfsi2): Likewise.
15805         (*fix_truncsi_1): Likewise.
15806         (fix_truncxfhi2): Likewise.
15807         (fix_truncdfhi2): Likewise.
15808         (fix_truncsfhi2): Likewise.
15809         (*fix_trunchi_1): Likewise.
15810
15811 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
15812
15813         * alias.c, basic-block.h, c-common.c, c-common.h,
15814         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
15815         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
15816         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
15817         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
15818         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
15819         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
15820         genautomata.c, genconditions.c, genemit.c, genflags.c,
15821         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
15822         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
15823         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
15824         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
15825         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
15826         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
15827         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
15828         unwind.h, varray.c, varray.h: Update copyright.
15829
15830 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
15831
15832         * config/h8300/coff.h: Update copyright.
15833         * config/h8300/elf.h: Likewise.
15834         * config/h8300/h8300-protos.h: Likewise.
15835         * config/h8300/h8300.c: Likewise.
15836         * config/h8300/h8300.h: Likewise.
15837         * config/h8300/h8300.md: Likewise.
15838
15839 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15840
15841         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
15842         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
15843         ultrix_unistd): New hacks.
15844         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
15845         ULTRIX_CONST2_CHECK): Add checks.
15846         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
15847         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
15848         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
15849         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
15850         * fixinc/tests/base/locale.h: New file.
15851         * fixinc/fixincl.x: Rebuilt.
15852
15853 2004-01-21  Andreas Jaeger  <aj@suse.de>
15854             Michael Matz  <matz@suse.de>
15855
15856         * doc/extend.texi (Extended Asm): Clarify memory clobber.
15857
15858 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
15859
15860         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
15861         _Jv_RegisterClasses through a function pointer.
15862
15863 2004-01-21  Falk Hueffner  <falk@debian.org>
15864
15865         PR target/12898
15866         * config/alpha/alpha.c (alpha_emit_set_const_1): If
15867         no_new_pseudos, use gen_rtx_SET directly for SImode constants
15868         which need multiple instructions to emit.
15869
15870 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
15871
15872         * config/m32r/m32r.h (CPP_SPEC): Define.
15873
15874 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
15875
15876         * c-decl.c (merge_decls): Kill different_binding_level and
15877         different_tu arguments; simplify throughout.
15878         (duplicate_decls): Likewise.
15879         (pushdecl, merge_translation_unit_decls): Update calls to
15880         duplicate_decls.
15881
15882 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15883
15884         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
15885         $(SYSTEM_H).
15886         (print-rtl1.o): Depend on $(SYSTEM_H).
15887
15888 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
15889
15890         PR bootstrap/12730
15891         * configure.ac: Delete definition and subsitution of docdir.
15892         Add info, man, srcman and srcinfo to target hooks. Create doc/
15893         directory.
15894         * configure: Regenerate.
15895         * Makefile.in: Don't substitute docdir and delete all references
15896         throughout.
15897         (MAKEINFOFLAGS): Define.
15898         (stmp-docobjdir): Delete.
15899         (INFOFILES, MANFILES): Define.
15900         (info): Call lang.info, srcinfo and lang.srcinfo.
15901         (generated-manpages): Call lang.man, srcman and lang.srcman.
15902         (srcinfo, srcman): New rules to copy back files to source directory.
15903         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
15904         (install-man): Revamp rule.
15905         (clean): Update dvi directory.
15906         (distclean): Delete TAGS from front end directorys.
15907         (maintainer-clean): Delete all document files in source directory.
15908
15909         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
15910         (objc.srcman, objc.srcinfo): Likewise.
15911
15912 2004-01-20  Bruce Korb  <bkorb@gnu.org>
15913
15914         * fixinc/inclhack.def(math_exception): bypass only for glibc.
15915         (matherr_decl): rename & relocate as exception_structure.
15916         This fix must precede the math_exception fix.
15917
15918 2004-01-20  Roger Sayle  <roger@eyesopen.com>
15919
15920         * fold-const.c (fold_convert): Rename to fold_convert_const.
15921         (fold_convert_const): Change arguments to take a tree_code,
15922         a type and the operand/expression to be converted.  Return
15923         NULL_TREE if no simplification is possible.  Add support for
15924         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
15925         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
15926         Adjust call to fold_convert to match new fold_convert_const.
15927         Avoid modifying the tree passed to fold in-place.
15928
15929 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
15930
15931         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
15932         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
15933         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
15934
15935 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15936
15937         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
15938         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
15939         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
15940         (emit_move_sequence): Check scratch_reg first in various if statements.
15941         Extend source simplification to handle all 64-bit CONST_INTs.
15942         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
15943         frame size.
15944         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
15945         frame offset calculations.
15946         * pa.h (NEW_HP_ASSEMBLER): Add comment.
15947         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
15948         LEGITIMATE_64BIT_CONST_INT_P): Define.
15949         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
15950         any CONST_INT as legitimate during and after reload.
15951         (VAL_32_BITS_P, INT_32_BITS): Define.
15952         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
15953
15954 2004-01-20  Jan Hubicka  <jh@suse.cz>
15955
15956         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
15957         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
15958         containing hard regs are shared.
15959         (gen_hard_reg_clobber): New function.
15960         (hard_reg_clobbers): New array.
15961         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
15962         (copy_rtx): Do not copy clobbers containing hard regs.
15963         * rtl.h (gen_hard_reg_clobber): Declare.
15964
15965 2004-01-20  Jan Hubicka  <jh@suse.cz>
15966
15967         * varray.c:  Include hashtab.h
15968         (varray_descriptor): New structure.
15969         (hash_descriptor, eq_descriptor, varray_descriptor,
15970         print_statistics): New static functions
15971         (varray_init, varray_grow): Update statistics
15972         (dump_varray_statistics): New function.
15973         * varray.h (dump_varray_statistics): Declare.
15974         * toplev.c (finalize): Call it.
15975         * Makefile.in (varray.o): Add dependency.
15976
15977 2004-01-20  Jan Hubicka  <jh@suse.cz>
15978
15979         * cselib.c: Include alloc-pool.h
15980         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
15981         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
15982         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
15983         unchain_one_elt_loc_list_pool, unchain_one_value,
15984         new_cselib_val): Simplify using allocpool.
15985         (cselib_init): Initialize allocpools.
15986         (cselib_finish): Finish allocpools.
15987         * Makefile.in (cselib.o): Depend on alloc-pool.h
15988
15989 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
15990
15991         * config/mips/mips.c (mips_load_call_address): Make the call insn
15992         use $gp if it could be calling a lazy binding stub.
15993
15994 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
15995
15996         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
15997         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15998         (TARGET_STRUCT_VALUE_RTX): Likewise.
15999         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
16000         (PROMOTE_FUNCTION_RETURN): Remove.
16001         (STRUCT_VALUE): Remove.
16002
16003 2004-01-20  Denis Chertykov  <denisc@overta.ru>
16004
16005         PR bootstrap/13735
16006         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
16007         register as pointer after reload.
16008
16009 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16010
16011         PR optimization/12440
16012         * loop.c: Include ggc.h.
16013         (loop_optimize): Run garbage collector between optimization of loops.
16014         * Makefile.in (loop.o): Add GGC_H dependency.
16015
16016 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
16017
16018         * gcc/config/rs6000/rs6000.c (function_arg) Handle
16019         vector register special in function without prototype.
16020         (function_arg_advance): Vector parameters get always
16021         GPRs allocated for the linux64 target.
16022
16023 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16024
16025         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
16026         not TARGET_M32RX_MASK.
16027
16028 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
16029
16030         PR target/13557
16031         * config/sparc/sparc.c (function_arg): Reorder the cases.
16032
16033 2004-01-19  Per Bothner  <per@bothner.com>
16034
16035         Move cpp_reader's line_maps field to a shared global.
16036         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
16037         and change the type to a pointer rather than a struct.
16038         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
16039         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
16040         Likewise.
16041         * cppfiles.c (validate_pch):  Likewise.
16042         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
16043         Likewise.
16044         * cpperror.c (print_location):  Likewise.
16045         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
16046         * cppinit.c (cpp_create_reader):  Handle new parameter.
16047         (cpp_destroy):  Don't free line_maps - that's no longer our job.
16048         * input.h (line_table):  New variable.
16049         * toplev.c (line_table):  Declare variable.
16050         (general_init):  Initialize line_table.
16051         * c-opts.c (c_common_init_options):  Pass line_table to
16052         cpp_create_reader.
16053         * fix-header.c (read_scan_file):  New local variable line_table.
16054         Initialize, and pass it to cpp_create_reader.
16055         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
16056         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
16057
16058 2004-01-19  Per Bothner  <per@bothner.com>
16059
16060         Implement a cache for linemap_lookup.
16061         * line-map.h (struct_line_maps):  Add cache field.
16062         * line-map.c (linemap_init):  Zero cache field.
16063         (linemap_add):  Set cache field to offset of newly allocated map.
16064         (linemap_lookup):  Use and set cache field.
16065
16066 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
16067
16068         PR optimization/13567
16069         * cse.c (cse_basic_block): Call cse_insn with a non-null
16070         libcall_insn for the last SET insn of a no-confilict block.
16071
16072 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
16073
16074         * Makefile.in (target_noncanonical, program_transform_name): Use
16075         immediate define instead of deferred.
16076         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
16077         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
16078         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
16079         deferred backquote.
16080
16081 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
16082
16083         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
16084         true unconditionally.
16085         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
16086         Remove.
16087         (build_unary_op, build_modify_expr): Don't handle extended
16088         lvalues.
16089         (build_component_ref, build_conditional_expr): Call non_lvalue
16090         instead of pedantic_non_lvalue.
16091         (build_c_cast): Don't condition use of non_lvalue on pedantic.
16092         * fold-const.c (fold): Don't check pedantic directly for
16093         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
16094         passed to pedantic_non_lvalue.
16095         * doc/extend.texi: Remove documentation of extended lvalues.
16096
16097 2004-01-19  Roger Sayle  <roger@eyesopen.com>
16098
16099         PR optimization/5263
16100         * simplify-rtx.c (associative_constant_p): Delete.
16101         (simplify_associative_operation): Rewrite to linearize terms, and
16102         attempt to simplify new term against both left and right subterms.
16103         (simplify_binary_operation): Call swap_commutative_operands_p on
16104         op0 and op1, not trueop0 and trueop1.  Move the initialization of
16105         trueop0 and trueop1 down to where first needed.
16106         (simplify_relational_operation): Likewise.
16107         * rtlanal.c (commutative_operand_precedence): Also order constant
16108         operands using avoid_constant_pool_reference.
16109
16110 2004-01-19  Richard Henderson  <rth@redhat.com>
16111
16112         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
16113         don't check memory mode.
16114         (unaligned_memory_operand): Likewise.
16115         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
16116         abort for op0 not MEM.
16117
16118         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
16119         is not a reg, copy to a scratch first.
16120         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
16121         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
16122         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
16123         (reload_inqi, reload_inhi): Fix mode of op0.
16124         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
16125         reload_outhi_help): Likewise.  Use define_insn_and_split.
16126
16127         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
16128         as well as $29 dead.
16129
16130 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
16131
16132         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
16133         "tls_object" for thread-local objects.
16134         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
16135         "#tls" for thread-local sections.
16136         * configure.ac (thread-local checks): Specify --fatal-warnings in
16137         every binutils-specific checks.  For sparc*-*-*, test whether the
16138         OS is Solaris and the tools are native and act accordingly.
16139         * configure: Rebuild.
16140
16141 2004-01-19  Jeff Law  <law@redhat.com>
16142
16143         * contrib.texi: Update Paolo Carlini's entry.  New entries for
16144         Jerry Quinn and Petur Runolfsson.
16145
16146 2004-01-19  Roger Sayle  <roger@eyesopen.com>
16147
16148         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
16149         size, don't use the larger zero-extending loads.
16150
16151 2004-01-19  Richard Henderson  <rth@redhat.com>
16152
16153         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
16154         * alpha.md (UNSPEC_NT_LDA): Remove.
16155         (UNSPEC_CVTLQ, cvtlq): New.
16156         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
16157         (extendsidi2_fix): Remove.
16158         (extendsidi2 splitter): Use cvtlq.
16159         (extendsidi2 fp peepholes): Remove.
16160         (cvtql): Use SFmode instead of SImode.
16161         (fix_trunc?fsi): Update to match.
16162         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
16163         (movsi): Rename from movsi_nofix, remove f alternatives.
16164         (movsi_nt_vms): Similarly.
16165         (movsi_fix, movsi_nt_vms_fix): Remove.
16166         (nt_lda): Remove.
16167         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
16168
16169 2004-01-19  Jan Hubicka  <jh@suse.cz>
16170
16171         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
16172         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
16173         list.
16174         (cgraph_remove_unreachable_nodes): New function
16175         (cgraph_decide_inlining_of_small_function): Fix pasto.
16176         (cgraph_decide_inlining_incrementally): Fix pasto.
16177         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
16178
16179 2004-01-19  Steven Bosscher  <stevenb@suse.de>
16180
16181         * gengtype.c (header_file): Make it static.
16182         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
16183         * gengtype.h (header_file): No longer extern.
16184
16185 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16186
16187         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
16188         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
16189         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
16190
16191 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16192
16193         * stmt.c (HAVE_casesi): Define it not already defined.
16194         (HAVE_tablejump): Likewise.
16195         (expand_end_case_type): Resort to the binary tree method if
16196         neither casesi or tablejump is available.
16197
16198 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
16199
16200         * final.c (final_scan_insn): Make non-static again.
16201         * output.h (final_scan_insn): Re-add prototype.
16202         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
16203         to final_scan_insn call.
16204         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
16205         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
16206         * config/pa/pa.c (output_lbranch, output_call): Likewise.
16207         * config/sh/sh.c (print_slot): Likewise.
16208         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
16209         (output_sibcall, sparc_flat_function_epilogue): Likewise.
16210
16211 2004-01-18  Jan Hubicka  <jh@suse.cz>
16212
16213         * basic-block.h (try_redirect_by_replacing_jump): Declare.
16214         * cfgcleanup.c (try_optimize_cfg): Use it.
16215         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
16216         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
16217         Kill hack.
16218         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
16219
16220         Revert:
16221         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16222
16223                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
16224                 even after reload, just don't remove the actual jump tables.
16225
16226 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16227
16228         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
16229
16230 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16231
16232         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
16233         the size of a pointer in bytes.
16234
16235 2004-01-18  Roger Sayle  <roger@eyesopen.com>
16236
16237         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
16238         live "next" variable, which could lead to an infinite loop.
16239
16240 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
16241
16242         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
16243         block.
16244
16245         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16246         Check for NULL in the chain and remove repeated code.
16247
16248 2004-01-18  Jan Hubicka  <jh@suse.cz>
16249
16250         * coverage.c (checksum_string): Rename to ...
16251         (coverage_checksum_string): ... this one, Use crc32_string; recognize
16252         names containing random number and zero the number out in order to get
16253         match.
16254
16255 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
16256
16257         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
16258
16259 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16260
16261         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
16262         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
16263         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
16264         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
16265         doc/trouble.texi: Remove trailing whitespace.
16266
16267 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
16268
16269         PR target/7618
16270         * config/mips/mips.c: Include cfglayout.h.
16271         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
16272         (mips_unspec_offset_high): Add temporary register argument.
16273         (mips_load_call_address): New function, split out from...
16274         (mips_expand_call): ...here.
16275         (mips_output_cplocal): New function.
16276         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
16277         (mips_emit_loadgp): New function, split out from...
16278         (mips_expand_prologue): ...here.
16279         (mips_output_mi_thunk): New function.
16280
16281 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
16282
16283         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
16284         mcpu32): Remove redundant checks for implied target predefines.
16285
16286 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
16287
16288         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16289         Return type is unsigned int not int.
16290         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
16291         Likewise.
16292
16293 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16294
16295         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
16296         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
16297         "GNU/Linux" and "Microsoft Windows" terminology.
16298
16299 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16300
16301         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
16302         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
16303         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
16304         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
16305         @smallexample instead of @example.
16306
16307 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
16308
16309         * objc/objc-act.c (build_objc_method_call): Use target
16310         hooks instead of macros to determine if ..._stret
16311         dispatchers should be used (NeXT runtime only).
16312
16313 2004-01-17  Roger Sayle  <roger@eyesopen.com>
16314
16315         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
16316         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
16317
16318 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
16319
16320         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
16321         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
16322         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
16323         macros.
16324         * reload1.c (emit_reload_insns): Use them.
16325         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
16326         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
16327         for NULL PATTERN.
16328
16329 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
16330
16331         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
16332         (final_scan_insn): Update to take an additional SEEN argument.  Emit
16333         a line note after the prologue.  Make static.
16334         (line_note_exists): Remove.
16335         (final): Don't initialize line_note_exists.  Update call to
16336         final_scan_insn.
16337         * output.h (final_scan_insn): Remove prologue.
16338         * function.c (set_insn_locators): Update comment.
16339         (thread_prologue_and_epilogue_insns): Add a comment.
16340
16341 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
16342
16343         PR target/10781
16344         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
16345         Prototype.
16346         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16347         New function.
16348         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
16349         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
16350         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
16351
16352 2004-01-17  Jan Hubicka  <jh@suse.cz>
16353
16354         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
16355         commit.
16356
16357         * toplev.c (HAVE_conditional_execution): Provide default.
16358         (rest_of_handle_reorder_blocks): For conditional_execution target
16359         update liveness once after all transformations
16360         (rest_of_compilation): Do crossjumping before ce3.
16361
16362 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
16363
16364         * alias.c (new_alias_set): Mark last_alias_set for PCH.
16365         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
16366         for PCH.
16367         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
16368         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
16369         (get_TOC_alias_set): Mark 'set' for PCH.
16370
16371 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16372
16373         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
16374         even after reload, just don't remove the actual jump tables.
16375
16376 2004-01-17  J. Brobecker  <brobecker@gnat.com>
16377
16378         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
16379         Remove checks for is_ada() and TREE_UNSIGNED.
16380         (subrange_type_die): Emit a byte_size attribute if the subrange
16381         type size is different from the base type size.
16382         (modified_type_die): Replace call to is_ada_subrange_type() by
16383         call to is_subrange_type().
16384
16385 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
16386
16387         * config/sh/sh.c: Include ggc.h.
16388
16389 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16390
16391         * Makefile.in (MD5_H): New.
16392         (fold-const.o): Depend on md5.h.
16393         (dwarf2out.o): Likewise.
16394         (cppfiles.o): Likewise.
16395         * cppfiles.c: Include md5.h.
16396         (should_stack_file): Check against list read from PCH file.
16397         (struct pchf_data): New.
16398         (pchf): New variable.
16399         (struct pchf_adder_info): New.
16400         (pchf_adder): New.
16401         (pchf_save_compare): New.
16402         (_cpp_save_file_entries): New.
16403         (_cpp_read_file_entries): New.
16404         (struct pchf_compare_data): New.
16405         (pchf_compare): New.
16406         (check_file_against_entries): New.
16407         * cpphash.h (_cpp_save_file_entries): Prototype.
16408         (_cpp_read_file_entries): Prototype.
16409         * cpppch.c (cpp_write_pch_state): Write the list of headers.
16410         (cpp_read_state): Read the list of headers.
16411
16412 2004-01-17  Jan Hubicka  <jh@suse.cz>
16413
16414         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
16415         builtin_expect specially.
16416         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
16417         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
16418         * invoke.texi (max-inline-insns-single): Set to 100.
16419         (large-function-insns): Set to 3000.
16420
16421 2004-01-16  Eric Christopher  <echristo@redhat.com>
16422             Chandrakala Chavva <cchavva@redhat.com>
16423
16424         * cppcharset.c (one_iso88591_to_utf8): New function.
16425         (convert_iso88591_utf8): Ditto. Use.
16426         (conversion_tab): Use.
16427         (_cpp_input_to_utf8): New function.
16428         (_cpp_init_iconv_buffer): Ditto.
16429         (_cpp_close_iconv_buffer): Ditto.
16430         * cpphash.h: Prototype new functions.
16431         (cpp_buffer): Add input_cset_desc.
16432         * cppinit.c: Add input_charset default.
16433         * cpplib.c (cpp_push_buffer): Support init and
16434         close of iconv.
16435         * cpplib.h (cpp_options): Add input_charset.
16436
16437 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
16438
16439         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
16440         * config/alpha/unicosmk.h: Remove a commented-out definition
16441         of ASM_OUTPUT_SECTION_NAME.
16442         * config/stormy16/stormy16.h: Likewise.
16443
16444 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16445
16446         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
16447         (alpha___extern_prefix_sys_stat): ... this.
16448         Apply to <sys/mount.h>, too.
16449         Tweak to match more variations.
16450         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
16451
16452         * fixinc/inclhack.def (alpha___extern_prefix,
16453         alpha___extern_prefix_standards): New hacks to obey
16454         __PRAGMA_EXTERN_PREFIX.
16455         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
16456         test.
16457         * fixinc/tests/base/standards.h: Likewise.
16458
16459         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
16460         variations.
16461         New testcase.
16462         * fixinc/tests/base/pthread.h: Handle it.
16463
16464         * fixincl/inclhack.def (bad_lval): Sort file list.
16465         Add many missing files up to Tru64 UNIX V5.1B.
16466         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
16467         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
16468         order.
16469
16470         * fixinc/fixincl.x: Regenerate.
16471
16472 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
16473
16474         * version.c (version_string): Change to 3.5.0.
16475         * doc/include/gcc-common.texi (version-GCC): Likewise.
16476
16477 2004-01-16  Jan Hubicka  <jh@suse.cz>
16478
16479         * i386.md (load_tp_di): Fix pasto.
16480
16481         PR opt/13608
16482         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
16483
16484         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
16485         pp_c_character_constant, pp_c_floating_constant,
16486         pp_c_additive_expression, pp_c_shift_expression,
16487         pp_c_equality_expression, pp_c_and_expression,
16488         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
16489         pp_c_logical_and_expression): Remove inline modifier.
16490         * dwarf2out.c (get_AT): Likewise.
16491         * et-forest.c (et_splay): Likewise.
16492         * ra.h (ra_alloc, ra_calloc): Likewise
16493
16494 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
16495
16496         * config/frv/frv-protos.h: Fix comment formatting.
16497         * config/frv/frv.c: Likewise.
16498         * config/frv/frv.h: Likewise.
16499         * config/frv/frv.md: Likewise.
16500         * config/frv/frvbegin.c: Likewise.
16501         * config/frv/frvend.c: Likewise.
16502
16503 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
16504
16505         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
16506         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
16507         LINKER_DOES_NOT_WORK_WITH_DWARF2.
16508         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
16509
16510 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
16511
16512         PR 11864
16513         * postreload.c (reload_cse_simplify_operands): Don't remove
16514         implicit extension from LOAD_EXTEND_OP.
16515
16516 2004-01-16  Jan Hubicka  <jh@suse.cz>
16517
16518         PR opt/11350
16519         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
16520         after reload.
16521         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
16522         rtl_try_redirect_by_replacing_branch): Likewise.
16523
16524 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
16525
16526         PR pch/13689
16527         * alias.c (struct alias_set_entry): Mark for GC.
16528         (alias_sets): Make static, mark for GC.
16529         (record_alias_subset): Use GC to allocate alias structures.
16530         * varray.c (element): Make generic varrays GCed.
16531
16532         PR pch/13361
16533         * c-typeck.c (constructor_asmspec): Delete.
16534         (struct initializer_stack): Delete field 'asmspec'.
16535         (start_init): Delete saving of asmspec.
16536         (finish_init): Don't update constructor_asmspec.
16537         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
16538         * stmt.c (expand_asm): Duplicate strings from tree.
16539         (expand_asm_operands): Likewise.
16540         * tree.c (tree_size): Update computation of size of STRING_CST.
16541         (make_node): Don't make STRING_CST nodes.
16542         (build_string): Allocate string with tree node.
16543         * tree.def (STRING_CST): Update comment.
16544         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
16545         (tree_string): Place contents of string in tree node.
16546         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
16547         from tree.
16548
16549         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
16550         altivec operands.
16551
16552 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16553
16554         * c-common.h: Fix comment formatting.
16555         * c-cppbuiltin.c: Likewise.
16556         * c-pragma.c: Likewise.
16557         * calls.c: Likewise.
16558         * collect2.c: Likewise.
16559         * cppcharset.c: Likewise.
16560         * cpptrad.c: Likewise.
16561         * dbxout.c: Likewise.
16562         * defaults.h: Likewise.
16563         * dwarf2out.c: Likewise.
16564         * fold-const.c: Likewise.
16565         * genautomata.c: Likewise.
16566         * genconditions.c: Likewise.
16567         * genflags.c: Likewise.
16568         * gengtype.c: Likewise.
16569         * integrate.c: Likewise.
16570         * loop.c: Likewise.
16571         * predict.c: Likewise.
16572         * sdbout.c: Likewise.
16573
16574 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
16575
16576         * config/ia64/ia64.md (*movti_internal): C output template
16577         extracted to ia64.c.
16578         (*movti_internal_reg): Delete.
16579         (reload_inti, reload_outti): Use the correct mode on operand 2
16580         in the first place, don't fix it up in the output template.
16581         (movtf, reload_ointf, reload_outtf): New expanders.
16582         (*movtf_internal): New define_insn_and_split.
16583         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
16584         make static; do not hand TFmode CONST_DOUBLEs to split_double.
16585         (ia64_split_tmode_move): New function, body mostly pulled
16586         from ia64.md:*movti_internal.
16587         (ia64_function_arg_words): New function, extracted common
16588         logic from ia64_function_arg et seq.
16589         (ia64_function_arg_offset): Likewise.  Handle correctly the
16590         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
16591         (ia64_function_arg, ia64_function_arg_partial_nregs)
16592         (ia64_function_arg_advance): Use ia64_function_arg_words and
16593         ia64_function_arg_offset.
16594         (ia64_function_value): TCmode does not go in float regs.
16595         (ia64_secondary_reload_class): Also handle TFmode.
16596         * config/ia64/ia64-protos.h: Remove prototype for
16597         ia64_split_timode; add prototype for ia64_split_tmode_move.
16598
16599 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
16600
16601         * Makefile.in (MAINT): Make it an immediate assignment.
16602
16603 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16604
16605         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
16606
16607 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16608
16609         * config/h8300/coff.h: Replace Hitachi with Renesas.
16610         * config/h8300/elf.h: Likewise.
16611         * config/h8300/h8300-protos.h: Likewise.
16612         * config/h8300/h8300.c: Likewise.
16613         * config/h8300/h8300.h: Likewise.
16614         * config/h8300/h8300.md: Likewise.
16615         * config/h8300/lib1funcs.asm: Likewise.
16616
16617 2004-01-15  Andrew Pinski  <apinski@apple.com>
16618
16619         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
16620         around it.
16621
16622 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16623
16624         * config/h8300/h8300.c (h8300_return_in_memory): New.
16625         (TARGET_STRUCT_VALUE_RTX): Likewise.
16626         (TARGET_RETURN_IN_MEMORY): Likewise.
16627         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
16628         (RETURN_IN_MEMORY): Likewise.
16629
16630 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
16631
16632         PR optimization/13375
16633         * gcse.c (handle_avail_expr): Just return if the source is not a
16634         single set.
16635
16636 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
16637             Daniel Jacobowitz  <drow@mvista.com>
16638
16639         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
16640         (EQUIV): Define.
16641         (ARM_FUNC_ALIAS): New macro.
16642         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
16643         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
16644
16645 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16646
16647         PR optimization/12372
16648         * calls.c (expand_call): Add call_fusage data for stack arguments in
16649         constant calls.
16650
16651 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
16652
16653         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
16654         (rs6000_elf_declare_function_name): Formatting.
16655         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
16656
16657 2004-01-15  Jan Hubicka  <jh@suse.cz>
16658
16659         PR bootstrap/13692
16660         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
16661         previous patch.
16662
16663 2004-01-15  Richard Henderson  <rth@redhat.com>
16664
16665         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
16666         integer regs of the same call-savedness.
16667
16668 2004-01-15  Andreas Schwab  <schwab@suse.de>
16669
16670         PR bootstrap/13562
16671         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
16672         status for NOTB/NOTW/NEGW methods.
16673
16674 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16675
16676         * doc/invoke.texi: Update dump file names.  Fix a typo.
16677
16678 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16679
16680         * builtins.c (expand_builtin_va_end): Don't use
16681         EXPAND_BUILTIN_VA_END.
16682         * system.h (EXPAND_BUILTIN_VA_END): Poison.
16683         * config/d30v/d30v.h: Remove a commented-out definition of
16684         EXPAND_BUILTIN_VA_END.
16685         * config/stormy16/stormy16.h: Likewise.
16686
16687 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16688
16689         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
16690         * targhooks.c (default_struct_value_rtx): Don't use
16691         STRUCT_VALUE_INCOMING_REGNUM.
16692
16693 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
16694
16695         PR bootstrap/12744
16696         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
16697         GENINSRC and not parsedir.  Define srcextra as a langhook.
16698         * configure: Regenerate.
16699         * Makefile.in: Suppress default .l.c rule.  Don't substitute
16700         parsedir and delete all references throughout.  Conditionally define
16701         rule for srcextra dependent on GENINSRC.
16702         (stmp-docobjdir): Delete.
16703         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
16704         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
16705         and gengtype-yacc.h back to source directory.
16706         (maintainer-clean): Delete all parse files in source directory.
16707         (distclean): Delete generated files.
16708
16709         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
16710         (objc-parse.c, objc-parse.y): Don't use parsedir.
16711         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
16712         directory if requested.
16713         (po-generated): Don't use parsedir.
16714         (objc.maintainer-clean): Delete above files from source directory.
16715
16716 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16717
16718         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
16719
16720 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16721
16722         * doc/tm.texi: Replace RETURN_IN_MEMORY with
16723         TARGET_RETURN_IN_MEMORY.
16724
16725 2004-01-15  Jan Hubicka  <jh@suse.cz>
16726
16727         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
16728         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
16729         functions accepting SSE arguments
16730         (function_arg): Warn only when asked to warn.
16731         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
16732
16733 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
16734
16735         * c-parse.in (stmts_and_decls): Make label at end of compound
16736         statement a hard error.
16737
16738 2004-01-14  Jan Hubicka  <jh@suse.cz>
16739
16740         * cgraph.c (create_edge): Use local.redefined_extern_inline.
16741         * cgraph.h (cgraph_local_info): Sort fields by size; add
16742         redefined_extern_inline
16743         (cgraph_global_info): Sort fields by size.
16744         (cgraph_node): Likewise.
16745         * cgraphunit.c (cgraph_finalize_function): Se
16746         local.redefined_extern_inline on redefinition.
16747         (cgraph_analyze_function): Use it; fix formating.
16748
16749 2004-01-14  Jan Hubicka  <jh@suse.cz>
16750
16751         PR c++/10776
16752         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
16753         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
16754         bitmaps
16755         (cache_size): New variable
16756         (add_dependence): Update use; canonize early memory locations
16757         (sched_analyze_1): Likewise.
16758         (sched_analyze_2): Likewise.
16759         (init_dependency_caches): Initialize bitmaps.
16760         (free_dependency_caches): Free bitmaps
16761
16762 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16763
16764         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
16765         targetm.calls.strict_argument_naming().
16766         * target.h: Likewise.
16767
16768 2004-01-14  Richard Henderson  <rth@redhat.com>
16769
16770         PR debug/13231
16771         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
16772         instructions.
16773
16774 2004-01-14  Richard Henderson  <rth@redhat.com>
16775
16776         PR c++/12491
16777         * except.c (struct eh_region): Add u.fixup.resolved.
16778         (resolve_one_fixup_region): Split out from ...
16779         (resolve_fixup_regions): ... here.
16780
16781 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16782
16783         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
16784
16785 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16786
16787         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
16788         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
16789         (STRUCT_VALUE): Remove.
16790
16791 2004-01-14  Steven Bosscher  <stevenb@suse.de>
16792
16793         * system.h: Poison PROMOTED_MODE
16794         * integrate.c (expand_inline_function): Don't mention the
16795         PROMOTED_MODE.
16796         * loop.c (update_giv_derive): Same.
16797         * tree.h (DECL_RTL): Same.
16798
16799 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
16800
16801         PR target/9365
16802         * sh.c (gen_block_redirect): Add special handling of RETURN.
16803         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
16804         far branch target (i.e. it's a return).
16805
16806 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16807
16808         * regrename.c (find_oldest_value_reg): Fix a warning.
16809
16810 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
16811
16812         PR bootstrap/12527
16813         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
16814         Move linux-gas.h and linux-elf.h before aout.h.
16815         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
16816         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
16817
16818 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16819
16820         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
16821         (CONST_INT, VOIDmode, ...).
16822
16823 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
16824
16825         * regrename.c (find_oldest_value_reg): If the replacement uses
16826         multiple hard registers, check that all of them are in CLASS.
16827
16828 2004-01-14  Jan Hubicka  <jh@suse.cz>
16829
16830         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
16831         impossible.
16832
16833 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
16834
16835         * Makefile.in: Define MAINT from --enable-maintainer-mode.
16836
16837 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
16838
16839         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
16840         Calculate always vrsave_mask if TARGET_ALTIVEC.
16841         (rs6000_emit_prologue): Emit code for vrsave
16842         only if TARGET_ALTIVEC_VRSAVE.
16843         (rs6000_emit_epilogue): Likewise.
16844
16845 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
16846
16847         * config/sparc/sparc.md (tie_add32): Fix pasto.
16848         (tie_add64): Likewise.
16849
16850 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16851
16852         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
16853
16854 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16855
16856         * config/iq2000/iq2000-protos.h: Fix comment formatting.
16857         * config/iq2000/iq2000.c: Likewise.
16858         * config/iq2000/iq2000.md: Likewise.
16859
16860 2004-01-14  J. Brobecker  <brobecker@gnat.com>
16861
16862         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
16863         (subrange_type_die): Add handle for nameless subrange types.
16864
16865 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16866
16867         * config/h8300/h8300-protos.h: Replace do_movsi with
16868         h8300_expand_movsi.
16869         * config/h8300/h8300.c (do_movsi): Change to
16870         h8300_expand_movsi.
16871         * config/h8300/h8300.md (movsi): Replace do_movsi with
16872         h8300_expand_movsi.
16873         (movsf): Likewise.
16874
16875 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16876
16877         * config/h8300/h8300.c (dosize): Change to
16878         h8300_emit_stack_adjustment.  Update callers.
16879
16880 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16881
16882         * config/h8300/h8300.md (movstrictqi): Add an alternative with
16883         the source being post_inc.  Tighten the predicate for the
16884         destination to register_operand.
16885         (movstricthi): Likewise.
16886
16887 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16888
16889         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
16890         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
16891         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
16892
16893 2004-01-14  Jan Hubicka  <jh@suse.cz>
16894
16895         Partial fix PR c++/12850
16896         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
16897         at zero nest level.
16898
16899 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
16900
16901         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
16902         pseudo-register.
16903
16904 2004-01-13  Devang Patel <dpatel@apple.com
16905
16906         PR debug/7078
16907         * dbxout.c (dbxout_symbol_name): Emit mangled names for
16908         NAMESPACE_DECL memebers.
16909
16910 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
16911
16912         PR c++/12709
16913         * c-common.c (finish_fname_decls): Use the chain only if the
16914         tree is an expr_stmt.
16915
16916 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
16917
16918         * rtl.def: Add comment about new option in automata_option.
16919
16920         * genautomata.c (PROGRESS_OPTION): New macro.
16921         (progress_flag): New global variable.
16922         (gen_automata_option): Process `progress'.
16923         (transform_insn_regexps, check_unit_distributions_to_automata,
16924         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
16925         expand_automata, write_automata): Print about the progress only if
16926         progress_flag.  Remove fflush.
16927         (initiate_automaton_gen): Process command line flag `-progress'.
16928
16929         * doc/md.texi: Describe the new option.
16930
16931 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16932
16933         * cfg.c (dump_bb): Dump entry edges.
16934
16935 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
16936
16937         * arm.c (thumb_legitimate_address_p): Only allow constant pool
16938         references from SImode.
16939         * arm.md (thumb_movhi_insn): Don't allow minipool references.
16940
16941 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16942
16943         * system.h (TEXT_SECTION): Poison.
16944         * varasm.c (text_section): Don't use TEXT_SECTION.
16945         * config/sh/sh.c (sh_file_start): Fix a comment typo.
16946         * doc/tm.texi (TEXT_SECTION): Remove.
16947
16948 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
16949
16950         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
16951
16952 2004-01-12  James E Wilson  <wilson@specifixinc.com>
16953
16954         * unwind-libunwind.c: Delete.
16955
16956 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
16957
16958         PR 13656
16959         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
16960         oldtype is set, set *newtypep or *oldtypep too.  Do not set
16961         them at the very end.
16962         (validate_proto_after_old_defn): Restructure for comprehensibility;
16963         make error messages clearer.
16964
16965 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
16966
16967         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
16968         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
16969         * varray.c: No need to prototype error.
16970         (varray_check_failed): Wrap long string onto two lines.
16971         (varray_underflow): New function.
16972
16973 2004-01-13  Steven Bosscher  <stevenb@suse.de>
16974
16975         PR c++/13376
16976         * function.h (struct function): Kill `name' field.
16977         (current_function_name): Make it an extern function.
16978         * function.c (current_function_name): New function.
16979         * graph.c: Update all uses of current_function_name.
16980         * gcse.c: Likewise.
16981         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
16982         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
16983         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
16984         instead of a strcmp with "main".
16985
16986 2004-01-13  Jan Hubicka  <jh@suse.cz>
16987
16988         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
16989
16990         * cgraphunit.c (cgraph_optimize_function):  Always do
16991         optimize_inline_calls when there is always_inline callee.
16992         (cgraph_decide_inlining): Fix formating.
16993         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
16994         functions.
16995         (expand_call_inline): Likewise.
16996         * toplev.h (sorry): Fix prototype.
16997
16998 2004-01-12  Roger Sayle  <roger@eyesopen.com>
16999
17000         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
17001         conditional jumps that drop through to unconditional jumps or the
17002         end of the sequence.
17003
17004 2004-01-13  Jan Hubicka  <jh@suse.cz>
17005
17006         * alias.c (new_alias_set): Construct the alias_set varray.
17007         (init_alias_once): Don't do it here.
17008
17009 2004-01-12  Marc Espie <espie@openbsd.org>
17010
17011         * system.h: handle YYBYACC like YYBISON.
17012
17013 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
17014
17015         PR target/10847
17016         * config.gcc: No longer includes conflicting header sparc/sol2.h when
17017         building on sparc64-*-openbsd*.
17018
17019 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
17020
17021         PR debug/13539
17022         * dbxout.c (dbxout_type): Protected inheritance is not
17023         private but protected.
17024
17025 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
17026
17027         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
17028
17029 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
17030
17031         PR optimization/12508.
17032         * combine.c (try_combine): Remove a dead set in a parallel
17033         even if its destination is a subreg.
17034
17035         Revert:
17036         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
17037         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
17038         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
17039
17040 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
17041
17042         * real.c: Update copyright date.
17043         * emit-rtl.c: Likewise.
17044         * rtl.h: Likewise.
17045         * dwarf2out.c: Likewise.
17046         * config/rs6000/darwin-ldouble.c: Likewise.
17047         * config/rs6000/rs6000.md: Likewise.
17048
17049 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
17050
17051         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
17052         TFmode to SImode libfuncs.
17053
17054 2004-01-12  Roger Sayle  <roger@eyesopen.com>
17055
17056         PR middle-end/11397
17057         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
17058
17059 2004-01-12  Jan Hubicka  <jh@suse.cz>
17060
17061         PR opt/12826
17062         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
17063         stored.
17064
17065         PR opt/12863
17066         * cfgcleanup.c (label_is_jump_target_p): Move to...
17067         * rtlanal.c (label_is_jump_target_p): ... here.
17068         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
17069         edges unified with branch edges.
17070
17071 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
17072
17073         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
17074         high word of an integral CONST_DOUBLE.
17075
17076 2004-01-12  Paul Brook  <paul@codesourcery.com>
17077
17078         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
17079
17080 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
17081
17082         PR target/13585
17083         * sh-protos.h (check_use_sfunc_addr): Declare.
17084         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
17085         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
17086
17087 2004-01-12  Jan Hubicka  <jh@suse.cz>
17088
17089         * alias.c:  Invlude varray.h
17090         (alias_sets): Turn into varray.
17091         (get_alias_set_entry): Use VARRAY; mark inline.
17092         (mems_in_disjoint_alias_sets_p): Mark inline.
17093         (record_alias_subset): Use varray.
17094         (init_alias_once): Initialize varray.
17095         (new_alias_set): Grow array.
17096         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
17097
17098 2004-01-12  Jan Hubicka  <jh@suse.cz>
17099
17100         Partial fix for PR opt/10776 II
17101         * cselib.c: Include params.h
17102         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
17103         locations.
17104         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
17105         * Makefile.in (cselib.o): Depend on params.h
17106
17107 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
17108
17109         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
17110         simplify_unary_operation if the operand has a known mode.
17111
17112 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
17113
17114         PR target/13534
17115         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
17116         predicate to handle 'ld' conform addresses.
17117         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
17118         contraint.
17119         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
17120         are memory contraints.
17121         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
17122         New prototype.
17123         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
17124         Change 'o' to 'Y' constraint.
17125         (*movdf_softfloat64): Ditto.
17126
17127 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
17128
17129         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
17130         brace-enclosed syntax in all C output statements.
17131
17132 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
17133
17134         PR target/13401
17135         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
17136         Objective-C language type value is 14.
17137
17138 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
17139
17140         PR c/12148
17141         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
17142         `int' in a number of places to make sure we always have a SImode
17143         and not a HImode.  Add a 'L' suffix to a number of constants.
17144
17145 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17146
17147         * pa.c: Don't include obstack.h.
17148
17149         * pa.md: Correct constraint in pattern for loading PIC label address.
17150
17151 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
17152
17153         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
17154          before defining.
17155
17156 2004-01-11  Steven Bosscher  <stevenb@suse.de>
17157
17158         PR fortran/9972
17159         * toplev.c (rest_of_handle_inline): Also consider functions
17160         for deferral if the language is GNU F77.
17161
17162 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
17163
17164         * c-decl.c (diagnose_arglist_conflict): Add missing space to
17165         diagnostic messages.
17166
17167 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
17168
17169         PR middle-end/13392
17170         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
17171         to drop through label.  Don't fall back to SCC even when conditional
17172         jump has not been found.
17173
17174 2004-01-11  Jan Hubicka  <jh@suse.cz>
17175
17176         * invoke.texi: Fix syntax error in previous patch.
17177
17178         Partial fix for PR opt/10776
17179         * Makefile.in (reload.o): Include param.h
17180         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
17181         * reload.c: Include params.h.
17182         (find_equiv_reg): Work limiting check.
17183         * invoke.texi: Document.
17184
17185 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
17186
17187         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
17188         out-of-bounds accesses to string constants.  Simplify mips16
17189         case accordingly.
17190
17191 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
17192
17193         PR optimization/13469
17194         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
17195         reload_cse_regs (-fnon-call-exceptions only).
17196
17197 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
17198
17199         * config/mcore/lib1.asm: Fix comment formatting.
17200         * config/mcore/mcore-elf.h: Likewise.
17201         * config/mcore/mcore.c: Likewise.
17202         * config/mcore/mcore.h: Likewise.
17203         * config/mcore/mcore.md: Likewise.
17204
17205 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
17206
17207         * c-decl.c (duplicate_decls): Break apart into...
17208         (diagnose_arglist_conflict, validate_proto_after_old_defn)
17209         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
17210         ... these new functions.  Restructure for comprehensibility.
17211         Remove various archaic special cases.  Always report the
17212         location of the previous declaration when a diagnostic is issued.
17213         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
17214         (match_builtin_function_types): Delete unnecessary forward declaration.
17215
17216 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
17217
17218         * genautomata.c (make_automaton, NDFA_to_DFA):
17219         Print progress bars with '.' characters instead of '*'.
17220         (build_automaton): Change notes to match.
17221
17222 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
17223
17224         * config/m32r/m32r.md: Use define_constants for unspec and
17225         unspec_volatile.
17226
17227 2004-01-10  Jan Hubicka  <jh@suse.cz>
17228
17229         PR opt/11635
17230         * expr.c (expand_expr_real):  More curefully expand union casts.
17231
17232 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
17233
17234         * config/m32r/m32r.md (flush_icache): Use 1 for
17235         unspec_volatile.
17236
17237 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
17238             James E Wilson  <wilson@specifixinc.com>
17239
17240         PR debug/12860
17241         * dbxout.c (dbxout_symbol): Remove initialization of
17242         current_sym_code, current_sym_value, and current_sym_addr.
17243         (dbxout_symbol_location): Same.
17244         (dbxout_prepare_symbol): Zero current_sym_code,
17245         current_sym_value, and current_sym_addr.
17246
17247 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
17248
17249         * tree.c (get_unwidened): Reorder conditions so that the null pointer
17250         check is done first.
17251
17252 2004-01-09  Eric Christopher  <echristo@redhat.com>
17253
17254         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
17255         if we're running mark_constant_function.
17256
17257 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
17258
17259         PR target/12561
17260         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
17261
17262 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
17263
17264         PR debug/11231
17265         * dbxout.c (dbxout_type_fields): Return if any item is
17266         error_mark_node or the type is error_mark_node.
17267
17268 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
17269
17270         * config/rs6000/darwin-ldouble.c: Add big comment explaining
17271         exactly what is expected as a 'long double'.
17272         (_xlqadd): When a value to be returned is representable as a
17273         'double', just return it directly, do not construct it using a union.
17274         Also, correct final fixup.
17275         (_xlqmul): Likewise.
17276         (_xlqdiv): Likewise.
17277         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
17278
17279         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
17280
17281 2004-01-09  Richard Henderson  <rth@redhat.com>
17282
17283         * recog.c (constrain_operands): Validate mem operands.
17284
17285 2004-01-09   James E Wilson  <wilson@specifixinc.com>
17286
17287         * gcc.c (init_spec): Remove -lunwind from shared case.
17288         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
17289
17290 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
17291
17292         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
17293         * configure: Regenerate
17294
17295 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
17296
17297         PR c/11234
17298         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
17299         between function and object pointers.
17300         (digest_init): When comparing a pointer to function type to the
17301         target type, only apply TREE_TYPE once to the pointer to function
17302         type.
17303         * except.c (for_each_eh_label_1): Treat data as a pointer to a
17304         function pointer rather than casting it to a function pointer.
17305         (for_each_eh_label): Update caller.
17306         * recog.h (struct insn_data): Use a struct or union for output.
17307         * genoutput.c (output_insn_data): Update.
17308         * final.c (get_insn_template): Update.
17309
17310 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
17311
17312         * expr.h (expand_expr): Make it a macro, not a function.
17313         (expand_expr_real): New function.
17314         * expr.c (store_expr): Adjust logic for deciding whether or not to
17315         copy the value returned by expand_expr.
17316         (expand_expr): Rename to ...
17317         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
17318         calls to language hooks.
17319         * c-common.h (c_expand_expr): Adjust prototype.
17320         * c-common.c (c_expand_expr): Add alt_rtl parameter.
17321         * langhooks-def.h (lhd_expand_expr): Change prototype.
17322         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
17323         * langhooks.h (lang_hooks): Change type of expand_expr.
17324         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
17325         (last_expr_alt_rtl): Likewise.
17326         (expand_expr_stmt_value): Set last_expr_alt_rtl.
17327         (clear_last_expr): Clear it.
17328         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
17329         (expand_end_bindings): Save and restor last_expr_alt_rtl.
17330         * tree.def (RTL_EXPR): Give it an additional operand.
17331         * tree.h (RTL_EXPR_ALT_RTL): New macro.
17332
17333 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17334
17335         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
17336         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
17337
17338 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17339
17340         PR target/13380.
17341         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
17342         or (ne:SI (reg:CC 17) (const_int 0)).
17343         Be specific about modes wherever possible.
17344
17345 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17346
17347         * config/m32r/m32r.c (m32r_expand_block_move): Call
17348         gen_movestrsi_internal with two more arguments.
17349         (m32r_output_block_move): Adjust operand numbers.
17350         Properly update the source and destination pointers.
17351         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
17352         'r+'.  Change the set detinations to match_operand.
17353
17354 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17355
17356         * final.c (FIRST_INSN_ADDRESS): Remove.
17357         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
17358         * system.h (FIRST_INSN_ADDRESS): Poison.
17359         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
17360         * config/m32r/m32r-protos.h: Remove the prototype for
17361         m32r_first_insn_address.
17362         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
17363         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
17364         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
17365
17366 2004-01-09  J. Brobecker  <brobecker@gnat.com>
17367
17368         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
17369         we just created.
17370         (is_ada_subrange_type): DIEs for enumeration subtypes should be
17371         emitted as subrange types too.
17372         (subrange_type_die): Add handling of enumeration subtypes.
17373
17374 2004-01-08  Richard Henderson  <rth@redhat.com>
17375
17376         PR opt/12441
17377         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
17378         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
17379         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
17380         (ix86_address_cost): Be prepared for SUBREGed registers.
17381         (legitimate_address_p): Accept SUBREGed registers.
17382
17383 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
17384
17385         * Makefile.in: Rename configure.in to configure.ac
17386         * doc/sourcebuild.texi: Likewise.
17387         * configure: Regenerate.
17388         * config.in: Regenerate.
17389
17390 2004-01-08  Stuart Hastings  <stuart@apple.com>
17391
17392         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
17393
17394 2004-01-08  Jan Hubicka  <jh@suse.cz>
17395
17396         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
17397
17398 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
17399
17400         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
17401         (UNSPEC_FIX_TRUNC_TF): New constant.
17402         (movtf_internal): Make splitter active only when insn is active.
17403         (extenddftf2): Rewrite to properly load zero into low part.
17404         (extenddftf2_internal): New.
17405         (extendsftf2): Rewrite.
17406         (truncdftf2): Correct length.
17407         (floatditf2): Delete.
17408         (fix_trunc_helper): New.
17409         (fix_trunctfdi2): Use fix_trunc_helper.
17410         (fix_trunctfsi2): Likewise.fix_trunc
17411         (fix_trunctfsi2_internal): New.
17412
17413         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
17414         addresses are legitimate on Darwin even when flag_pic.
17415         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
17416         non-offsettable addresses for loads of TFmode constants.
17417
17418 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17419
17420         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
17421         variables in the appropriate bss section.
17422
17423 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
17424
17425         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
17426         target_flags has MASK_POWERPC64 when -m64.
17427         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
17428         to 620, 630, power3, power4 and rs64a entries.
17429         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
17430
17431 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
17432
17433         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
17434         floating-point constants.
17435
17436 2004-01-08  J. Brobecker  <brobecker@gnat.com>
17437
17438         * dwarf2out.c (subrange_type_die): Add context_die parameter.
17439         Create the subrange_type DIE using the given context DIE.
17440         (modified_type_die): Update call to subrange_type_die.
17441
17442 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
17443
17444         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
17445         Add multiple-include guard.
17446
17447 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
17448
17449         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
17450         all vector constant loadable by vsplt*.
17451         (output_vec_const_move): Likewise.
17452
17453 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
17454
17455         PR c/6024
17456         * c-typeck.c (comptypes): Only treat enumerated types in the same
17457         translation unit as compatible with each other when they are the
17458         same type.
17459         * doc/extend.texi: Update.
17460
17461 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
17462
17463         PR c/12165
17464         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
17465         array type from the array element type.
17466
17467 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
17468
17469         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
17470         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
17471         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
17472         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
17473         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
17474
17475 2004-01-06  Eric Christopher  <echristo@redhat.com>
17476
17477         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
17478         (DWARF2_DEBUGGING_INFO): Define.
17479         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
17480         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
17481         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
17482         for irix as.
17483         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
17484         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
17485         * config/mips/iris5gas.h: Ditto.
17486         (DBX_DEBUGGING_INFO): Remove.
17487         (DWARF2_DEBUGGING_INFO): Ditto.
17488         (MIPS_DEBUGGING_INFO): Ditto.
17489         (PREFERRED_DEBUGGING_TYPE): Ditto.
17490         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
17491         (PREFERRED_DEBUGGING_TYPE): Ditto.
17492         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
17493         * config/mips/elf64.h: Ditto.
17494
17495 2004-01-06  Jan Hubicka  <jh@suse.cz>
17496
17497         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
17498         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
17499
17500 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
17501
17502         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
17503         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
17504         * config/rs6000/darwin-ldouble.c: New.
17505
17506         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
17507         for constants.
17508         (constant_subword): Delete.
17509         * rtl.h (constant_subword): Delete prototype.
17510         (immed_double_const): Is not in varasm.c.
17511         * simplify-rtx.c (simplify_immed_subreg): New.
17512         (simplify_subreg): Use simplify_immed_subreg.
17513
17514         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
17515         than trying to generate RTL directly.
17516         (fix_trunctfsi2): Use expand_fix rather than trying to generate
17517         RTL directly.
17518
17519         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
17520
17521 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
17522
17523         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
17524         function into a separate macro.
17525         (read_only_data_section): Add void argument.
17526         (private_data_section): Same.
17527         (read_only_private_data_section): Same.
17528         (toc_section): Same.
17529
17530 2004-01-06  Jan Hubicka  <jh@suse.cz>
17531
17532         * invoke.texi:  Remove typo in last change.
17533
17534         PR target/10301
17535         * config.gcc: Accept opteron and athlon-64 as variants
17536         of k8.
17537         * i386.c (override_options): Likewise.
17538         * invoke.texi (i386 -mtune): Expand documentation.
17539
17540 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
17541
17542         * alias.c: Fix comment typos.
17543         * builtins.c: Likewise.
17544         * cfg.c: Likewise.
17545         * df.c: Likewise.
17546         * dominance.c: Likewise.
17547         * dwarf2out.c: Likewise.
17548         * emit-rtl.c: Likewise.
17549         * expr.c: Likewise.
17550         * final.c: Likewise.
17551         * fold-const.c: Likewise.
17552         * gcse.c: Likewise.
17553         * genattrtab.c: Likewise.
17554         * genrecog.c: Likewise.
17555         * gensupport.c: Likewise.
17556         * ggc-zone.c: Likewise.
17557         * integrate.c: Likewise.
17558         * local-alloc.c: Likewise.
17559         * loop.c: Likewise.
17560         * recog.c: Likewise.
17561         * regmove.c: Likewise.
17562         * reg-stack.c: Likewise.
17563         * reorg.c: Likewise.
17564         * rtlanal.c: Likewise.
17565         * rtl.h: Likewise.
17566         * sched-ebb.c: Likewise.
17567         * simplify-rtx.c: Likewise.
17568         * toplev.c: Likewise.
17569         * varasm.c: Likewise.
17570
17571 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
17572
17573         * doc/install.texi: Fix typos.
17574         * doc/invoke.texi: Likewise.
17575         * doc/md.texi: Likewise.
17576
17577 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17578
17579         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
17580
17581 2004-01-06  Jan Hubicka  <jh@suse.cz>
17582
17583         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
17584         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
17585         of MMX_REGPARM.
17586         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
17587         add MMX_REGPARM.
17588         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
17589         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
17590         (MMX_REGPARM_MAX): Similarly for -mmmx.
17591
17592 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17593
17594         * config/sh/linux.h: Fix comment formatting.
17595         * config/sh/netbsd-elf.h: Likewise.
17596         * config/sh/sh.c: Likewise.
17597         * config/sh/sh.h: Likewise.
17598         * config/sh/vxworks.h: Likewise.
17599
17600 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17601
17602         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
17603         * toplev.c (output_file_directive): Don't use
17604         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
17605
17606 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
17607
17608         * toplev.c: Fix broken checkin of 2003-12-30.
17609
17610 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
17611
17612         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
17613         (USING_MMAP): We don't support non-mmap.
17614         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
17615         large objects.
17616         (struct page_entry): Remove bytes_free.
17617         (struct page_table_chain): Remove.
17618         (struct globals): Remove page_table member.
17619         (loookup_page_table_entry): Function deleted.
17620         (set_page_table_entry): Ditto.
17621         (ggc_allocated_p): No longer need page table lookups.
17622         (ggc_marked_p): Ditto.
17623         (alloc_small_page): Don't care about bytes_free anymore.
17624         (alloc_large_page): Round up size.
17625         (ggc_alloc_zone_1): Mark large objects as such, and calculate
17626         their size the new way.
17627         Remove page table lookups and setting.
17628         (ggc_get_size): Calculate large object size the new way.
17629         (sweep_pages): Redo to account for fact that we no longer have
17630         bytes_free.
17631         (ggc_collect): No longer need to reincrement bytes_free.
17632         (ggc_pch_alloc_object): Handle new large objects properly.
17633         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
17634
17635 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17636
17637         * doc/invoke.texi: Remove a page break.
17638
17639 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17640
17641         * config/avr/avr.c (avr_output_function_prologue): Remove an
17642         extra pair of curly braces.
17643
17644 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17645
17646         * config/mn10300/mn10300.c: Fix comment formatting.
17647         * config/mn10300/mn10300.h: Likewise.
17648
17649 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17650
17651         * tree.h: Update documentation on nothrow_flag.
17652         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
17653         types.
17654
17655 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17656
17657         * doc/invoke.texi: Remove traces of dead ports.
17658
17659 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
17660
17661         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
17662         option.
17663
17664 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
17665
17666         PR target/12945
17667         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
17668         counter labels.
17669         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
17670         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
17671         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
17672         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
17673         (mips_symbol_insns): Don't trust the local/global classification.
17674         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
17675         (override_options): Make -mabicalls -fno-unit-at-a-time imply
17676         -mno-explicit-relocs.
17677         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
17678         between local and global symbols.
17679
17680 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
17681
17682         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
17683         (mips_preferred_reload_class): Declare.
17684         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
17685         (EXTRA_CONSTRAINT): Update accordingly.
17686         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
17687         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
17688         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
17689         mips_dangerous_for_la25_p.
17690         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
17691         if mips_dangerous_for_la25_p.
17692
17693 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
17694
17695         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
17696         warning.
17697
17698 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
17699
17700         * configure.ac: Use AC_PROG_CPP_WERROR.
17701         * configure: Regenerate.
17702
17703 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
17704
17705         * .cvsignore: Add autom4te.cache.
17706
17707 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
17708
17709         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
17710         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
17711         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
17712         then architecture options, then ABI options.  General rewording.
17713
17714 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
17715
17716         PR c/3414
17717         * doc/extend.texi: Clarify definition of malloc attribute.
17718
17719 2004-01-04  Jan Hubicka  <jh@suse.cz>
17720
17721         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
17722         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
17723         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
17724         (cgraph_inline_p): Add extra argument reason.
17725         * cgraphunit.c: Minor formating fixes.
17726         cgraph_first_inlined_callee): New functions.
17727         (record_call_1): Record builtins too.
17728         (cgraph_analyze_function): Update inline_failed messages.
17729         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
17730         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
17731         (cgraph_check_inline_limits): Likewise; Add argument reason.
17732         (cgraph_set_inline_failed): New static function.
17733         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
17734         reasons.
17735         (cgraph_inline_p): Add new argument reason.
17736         * tree-inline.c (expand_call_inline):  Update warning.
17737
17738 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
17739
17740         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
17741         with modern equivalents.
17742         * configure: Regenerate.
17743
17744         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
17745         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
17746         * configure: Regenerate.
17747
17748         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
17749
17750         * configure.in: Rename to configure.ac.
17751         * configure.ac: Renamed from configure.in; make minimum necessary
17752         changes for autoconf 2.5x.
17753         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
17754         * configure: Regenerate with autoconf 2.57.
17755
17756 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
17757
17758         * config/mips/linux.h: Fix comment formatting.
17759         * config/mips/mips.c: Likewise.
17760         * config/mips/mips.h: Likewise.
17761         * config/mips/mips.md: Likewise.
17762         * config/mips/netbsd.h: Likewise.
17763         * config/mips/windiss.h: Likewise.
17764
17765 2004-01-02  Richard Henderson  <rth@redhat.com>
17766
17767         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
17768         for sse and 387; add suppression for mmx.
17769
17770 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
17771
17772         * loop.c (loop_optimize): Free all loops_info's mems.
17773
17774         * c-typeck.c (finish_init): Free spelling_base before
17775         setting it again.
17776
17777         * cfgloop.c (flow_loops_find): Always free the sbitmap
17778         headers.
17779
17780         * predict.c (estimate_probability): Free bbs after being
17781         done with it.
17782
17783 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
17784
17785         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
17786         const_8bit_operand and call_address_operand.
17787
17788 2004-01-02  Jan Hubicka  <jh@suse.cz>
17789
17790         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
17791         when there is nothing to inline but warnings are requested.
17792         (cgraph_decide_inlining):  Fix memory leak.
17793
17794 2004-01-02  Jan Hubicka  <jh@suse.cz>
17795
17796         * expr.c (store_constructor):  Fix pasto in previous patch.
17797
17798 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
17799
17800         * config/i386/cygming.h: Fix comment formatting.
17801         * config/i386/djgpp.h: Likewise.
17802         * config/i386/gthr-win32.c: Likewise.
17803         * config/i386/i386-interix.h: Likewise.
17804         * config/i386/i386.c: Likewise.
17805         * config/i386/i386.h: Likewise.
17806         * config/i386/openbsd.h: Likewise.
17807         * config/i386/winnt.c: Likewise.
17808         * config/i386/xm-mingw32.h: Likewise.
17809
17810 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
17811
17812         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
17813         copyright and last modification dates.
17814
17815 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
17816
17817         * doc/install.texi (Specific): Mention x86_64.
17818
17819 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
17820
17821         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
17822         Call force_operand on plus_constant result.
17823
17824 2004-01-01  Jan Hubicka  <jh@suse.cz>
17825
17826         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
17827         * expr.c (store_constructor): Use vec_init pattern.
17828         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
17829         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
17830         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
17831         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
17832         New patterns.
17833         (sse2_unpc?pd): Fix pattern.
17834         (sse2_movlpd): Kill.
17835         (sse2_movsd): Deal with movlpd too.
17836         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
17837         (ix86_expand_vector_init): New.
17838         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
17839         * md.texi (vec_set, vec_extract): Document
17840
17841 2003-12-31  Jan Hubicka  <jh@suse.cz>
17842
17843         PR opt/13473
17844         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
17845         ASM input operands
17846
17847         PR opt/12617
17848         * toplev.c (dump_file_index): Reorder ce3 and bbro.
17849         (dump_file): Likewise.
17850         (rest_of_compilation): Likewise.
17851
17852         PR debug/13367
17853         * cgraph.c (cgraph_function_possibly_inlined):  Even with
17854         flag_really_no_inline we inline always_inline functions.
17855         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
17856         for non-always_inline functions when there is flag_really_no_inline.
17857         (cgraph_decide_inlining): Limit work done when not inlining.
17858         (cgraph_decide_inlining_incrementally): Likewise.
17859         (cgraph_optimize_function): Check whether something got inlined.
17860         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
17861         extern inline functions when not inlining.
17862
17863         * opts.c (decode_options):  Disable crossjumping at -O1
17864         * invoke.texi (-O1): Document change.
17865
17866 See ChangeLog.10 for earlier changes.