OSDN Git Service

76fde3d778cb090bc72ba4af5f96652253ac8f0c
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-05-17  Nick Clifton  <nickc@cambridge.redhat.com>
2
3         * config/arm/arm.c (emit_multi_reg_push): Do not set
4         RTX_FRAME_RELATED_P on the SEQUENCE.
5
6 2002-05-16  Richard Henderson  <rth@redhat.com>
7
8         * config/ia64/ia64.c (ia64_reorg): Rebuild bb_for_insn before
9         splitting.  Use split_all_insns; update_life_info_in_dirty_blocks.
10
11 2002-05-16  Richard Henderson  <rth@redhat.com>
12
13         * config/alpha/unicosmk.h (TARGET_OS_CPP_BUILTINS): Fix typo.
14
15         * config/ia64/ia64.c (saveable_obstack): Do not declare.
16
17 2002-05-16  Richard Henderson  <rth@redhat.com>
18
19         * basic-block.h, bb-reorder.c, cfg.c, cfganal.c, cfgbuild.c,
20         cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c, combine.c,
21         conflict.c, df.c, df.h, dominance.c, final.c, flow.c, function.c,
22         gcse.c, global.c, graph.c, haifa-sched.c, ifcvt.c, lcm.c,
23         local-alloc.c, loop.c, predict.c, print-rtl.c, profile.c,
24         recog.c, reg-stack.c, regclass.c, regmove.c, regrename.c,
25         reload1.c, reorg.c, resource.c, sbitmap.c, sched-deps.c,
26         sched-ebb.c, sched-rgn.c, sibcall.c, ssa-ccp.c, ssa-dce.c, ssa.c:
27         Revert "Basic block renumbering removal", and two followup patches.
28
29 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
30
31         * lcm.c (optimize_mode_switching): Revert previous change.
32
33 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
34
35         * sched-rgn.c (schedule_insns): Initialize large_region_blocks
36         with only extant block numbers.
37
38 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
39
40         * lcm.c (optimize_mode_switching): Fix typo.
41
42 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
43
44         * flow.c (calculate_global_regs_live): Queue blocks in program order.
45
46 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
47
48         * doc/install.texi (Configuration): Document PWDCMD.
49
50 2002-05-16  Dale Johannesen  <dalej@apple.com>
51
52         * combine.c (cant_combine_insn_p):  Reenable combinations
53         involving hard regs unless CLASS_LIKELY_SPILLED_P.
54
55 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
56
57         * c-common.c (cb_register_builtins): Handle more built-ins
58         here rather than in gcc.c specs.
59         * gcc.c (cpp_unique_options): Move many built-ins to c-common.c.
60         (cpp_options): Pass -O flags even when only preprocessing.
61         * toplev.c (set_fast_math_flags): New prototype.
62         (fast_math_flags_set_p): New.
63         (set_no_fast_math_flags): Remove.
64         (decode_f_option): Update.
65         * toplev.h (set_fast_math_flags): Update.
66         (fast_math_flags_set_p): New.
67         (set_no_fast_math_flags): Remove.
68 config:
69         * c4x/c4x.c (c4x_override_options): Update.
70
71 2002-05-16  Zack Weinberg  <zack@codesourcery.com>
72
73         * c-common.c (STDC_0_IN_SYSTEM_HEADERS, REGISTER_PREFIX):
74         Default-define here.
75         (builtin_define_with_value): Can now wrap the expansion in
76         quotation marks if such is wanted.
77         (cb_register_builtins): Update calls to builtin_define_with_value.
78         Define __REGISTER_PREFIX__, __USER_LABEL_PREFIX__, and __VERSION__
79         here.
80         (c_common_init): Set options->stdc_0_in_system_headers.
81         * c-lex.h: Update prototype of builtin_define_with_value.
82         * cppdefault.h: Remove default definitions of USER_LABEL_PREFIX
83         and REGISTER_PREFIX.
84
85         * cppinit.c (VERS, ULP, C, X): Kill.
86         (builtin_array): Remove entries for __VERSION__,
87         __USER_LABEL_PREFIX__, __REGISTER_PREFIX__, and
88         __HAVE_BUILTIN_SETJMP__.  Make __STDC__ always a builtin, not
89         a constant.
90         (init_builtins): Kill off a bunch of now-dead code.
91         (COMMAND_LINE_OPTIONS): Remove -fleading-underscore and
92         -fno-leading-underscore.
93         (cpp_handle_option): Remove code to set user_label_prefix.
94         (cpp_post_options): Likewise.
95
96         * cpplib.h (struct cpp_options): Remove user_label_prefix.
97         (stdc_0_in_system_headers): New.
98         * cppmacro.c (builtin_macro): Check CPP_OPTION (pfile,
99         stdc_0_in_system_headers) too to decide the value of __STDC__.
100
101         * tradcpp.c (user_label_prefix): Kill.
102         (main): Remove code handling -f(no-)leading-underscore.
103         (initialize_builtins): Don't define __REGISTER_PREFIX__
104         or __USER_LABEL_PREFIX__.
105         (install_value): Wrap compound statement in dummy loop so the
106         macro works properly in an if statement.
107
108
109 2002-05-16  Janis Johnson  <janis187@us.ibm.com>
110
111         * loop.h (struct loop_info): Add member has_prefetch.
112         * loop.c (PREFETCH_CONDITIONAL): Change default to 1.
113         (prescan_loop): Initialize has_prefetch.
114         (struct prefetch_info): Change prefetch_in_loop and
115         prefetch_before_loop from bit fields to ints.
116         (emit_prefetch_instructions): Several small fixes.
117         (check_dbra_loop): Don't reverse loop that uses prefetch.
118
119 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
120
121         * Makefile.in: Allow for PWDCMD to override hardcoded pwd.
122         * configure.in: Likewise.
123         * fixinc/check.tpl: Likewise.
124         * fixinc/fixinc.dgux: Likewise.
125         * fixinc/fixinc.svr4: Likewise.
126         * fixinc/fixinc.winnt: Likewise.
127         * fixinc/fixincl.sh: Likewise.
128         * fixproto: Likewise.
129         * configure: Regenerate.
130
131 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
132
133         Basic block renumbering removal:
134         * basic_block.h (struct basic_block_def): Renamed index to sindex,
135         added prev_bb and next_bb fields.
136         (n_basic_blocks): Renamed to num_basic_blocks.
137         (last_basic_block): New, index of last basic block.
138         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
139         traversing basic block chain.
140         (BLOCK_NUM): index -> sindex.
141         (create_basic_block_structure, create_basic_block): Declaration changed.
142         (debug_num2bb): Declare.
143         (expunge_block_nocompact): Declaration removed.
144         (link_block, unlink_block, compact_blocks): Declare.
145         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1): Modified.
146         * cfg.c (entry_exit_blocks): Initialize new fields.
147         (clear_edges, alloc_block, expunge_block, cached_make_edge,
148         redirect_edge_pred, dump_flow_info, dump_edge_info,
149         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges,
150         free_aux_for_edges): Modified.
151         (link_block, unlink_block, compact_blocks, debug_num2bb): New.
152         (expunge_block_nocompact): Removed.
153         * cfganal.c (can_fallthru, mark_dfs_back_edges, flow_call_edges_add,
154         find_unreachable_blocks, create_edge_list, print_edge_list,
155         verify_edge_list, flow_edge_list_print, remove_fake_successors,
156         remove_fake_edges, flow_reverse_top_sort_order_compute,
157         flow_depth_first_order_compute, flow_preorder_transversal_compute,
158         flow_dfs_compute_reverse_init, flow_dfs_compute_reverse_add_bb,
159         flow_dfs_compute_reverse_execute): Modified.
160         * cfgbuild.c (make_edges, make_eh_edge, find_basic_blocks_1,
161         find_basic_blocks, find_many_sub_basic_blocks, find_sub_basic_blocks):
162         Modified.
163         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
164         merge_blocks_move_predecessor_nojumps,
165         merge_blocks_move_successor_nojumps, merge_blocks,
166         outgoing_edges_match, try_crossjump_to_edge, try_crossjump_bb,
167         try_optimize_cfg, delete_unreachable_blocks, cleanup_cfg): Modified.
168         * cfglayout.c (skip_insns_after_block, label_for_bb,
169         record_effective_endpoints, scope_to_insns_finalize,
170         fixup_reorder_chain, verify_insn_chain, cleanup_unconditional_jumps,
171         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge,
172         cfg_layout_duplicate_bb): Modified.
173         * cfgloop.c (flow_loops_cfg_dump, flow_loop_dump, flow_loops_dump,
174         flow_loop_entry_edges_find, flow_loop_exit_edges_find,
175         flow_loop_nodes_find, flow_loop_pre_header_find, flow_loop_scan,
176         flow_loops_find, flow_loop_outside_edge_p): Modified.
177         * cfgrtl.c (create_basic_block_structure, create_basic_block,
178         flow_delete_block, compute_bb_for_insn, split_block,
179         try_redirect_by_replacing_jump, redirect_edge_and_branch,
180         force_nonfallthru_and_redirect, tidy_fallthru_edge,
181         back_edge_of_syntactic_loop_p, split_edge, commit_one_edge_insertion,
182         commit_edge_insertions, commit_edge_insertions_watch_calls,
183         dump_bb, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
184         purge_all_dead_edges): Modified.
185         * combine.c (combine_instructions, set_nonzero_bits_and_sign_copies,
186         try_combine, nonzero_bits, num_sign_bit_copies, get_last_value_validate,
187         get_last_value, reg_dead_at_p, distribute_notes, distribute_links):
188         Modified.
189         * conflict.c (conflict_graph_compute): Modified.
190         * df.c (FOR_ALL_BBS): Removed.
191         (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
192         df_modified_p, df_analyse, df_refs_unlink, df_insn_modify,
193         df_dump, hybrid_search_bitmap, iterative_dataflow_sbitmap): Modified.
194         * df.h (DF_BB_INFO, DF_REF_BBNO): Modified.
195         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
196         calc_idoms, idoms_to_doms, calculate_dominance_info): Modified.
197         * final.c (compute_alignments, final_scan_insn): Modified.
198         * flow.c (verify_local_live_at_start, update_life_info,
199         update_life_info_in_dirty_blocks, free_basic_block_vars,
200         delete_noop_moves, calculate_global_regs_live,
201         initialize_uninitialized_subregs, allocate_bb_life_data,
202         regno_uninitialized, regno_clobbered_at_setjmp, mark_set_1,
203         mark_used_reg, count_or_remove_death_notes): Modified.
204         * function.c (thread_prologue_and_epilogue_insns): Modified.
205         * gcse.c (struct null_pointer_info): Change typo of current_block
206         to basic_block.
207         (gcse_main, alloc_gcse_mem, compute_local_properties, compute_sets,
208         oprs_unchanged_p, load_killed_in_block_p, record_last_reg_set_info,
209         compute_hash_table, alloc_rd_mem, handle_rd_kill_set, compute_kill_rd,
210         alloc_avail_expr_mem, expr_killed_p, compute_ae_kill,
211         expr_reaches_here_p_work, expr_reaches_here_p, handle_avail_expr,
212         classic_gcse, one_classic_gcse_pass, compute_transp, cprop,
213         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p_work,
214         pre_expr_reaches_here_p, insert_insn_end_bb, pre_edge_insert,
215         pre_delete, one_pre_gcse_pass, compute_transpout,
216         invalidate_nonnull_info, delete_null_pointer_checks_1,
217         free_code_hoist_mem, compute_code_hoist_vbeinout,
218         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
219         compute_ld_motion_mems, store_ops_ok, find_moveable_store,
220         compute_store_table, build_store_vectors, insert_insn_start_bb,
221         insert_store, replace_store_insn, free_store_memory, store_motion):
222         Modified.
223         * global.c (global_alloc, global_conflicts, mark_elimination,
224         build_insn_chain): Modified.
225         * graph.c (print_rtl_graph_with_bb): Modified.
226         * haifa-sched.c (sched_init): Modified.
227         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
228         (find_if_block, find_cond_trap, find_if_case_1, find_if_case_2,
229         if_convert): Modified.
230         * lcm.c (compute_antinout_edge, compute_earliest, compute_laterin,
231         compute_insert_delete, pre_edge_lcm, compute_available,
232         compute_farthest, compute_nearerout, compute_rev_insert_delete,
233         pre_edge_rev_lcm, make_preds_opaque, optimize_mode_switching):
234         Modified.
235         * local-alloc.c (alloc_qty, local_alloc, update_equiv_regs): Modified.
236         * loop.c (loop_dump_aux): Modified.
237         * predict.c (combine_predictions_for_insn, estimate_probability,
238         last_basic_block_p, process_note_prediction, process_note_predictions,
239         note_prediction_to_br_prob, propagate_freq, counts_to_freqs,
240         expensive_function_p, estimate_bb_frequencies,
241         compute_function_frequency): Modified.
242         * print-rtl.c (print_rtx): Modified.
243         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX, instrument_edges,
244         get_exec_counts, compute_branch_probabilities, compute_checksum,
245         branch_prob, find_spanning_tree): Modified.
246         * recog.c (split_all_insns, peephole2_optimize): Modified.
247         * reg-stack.c (reg_to_stack, convert_regs_entry, compensate_edge,
248         convert_regs_1, convert_regs_2, convert_regs): Modified.
249         * regclass.c (scan_one_insn, regclass): Modified.
250         * regmove.c (mark_flags_life_zones, regmove_optimize,
251         combine_stack_adjustments): Modified.
252         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Modified.
253         * reload1.c (reload, reload_combine, copy_eh_notes): Modified.
254         * reorg.c (dbr_schedule): Modified.
255         * resource.c (find_basic_block, init_resource_info): Modified.
256         * sbitmap.c (sbitmap_intersection_of_succs,
257         sbitmap_intersection_of_preds, sbitmap_union_of_succs,
258         sbitmap_union_of_preds): Modified.
259         * sched-deps.c (init_dependency_caches): Modified.
260         * sched-ebb.c (schedule_ebbs): Modified.
261         * sched-rgn.c (is_cfg_nonregular, build_control_flow, debug_regions,
262         find_rgns, compute_trg_info, init_regions, schedule_insns): Modified.
263         * sibcall.c (optimize_sibling_and_tail_recursive_call): Modified.
264         * ssa-ccp.c (examine_flow_edges, optimize_unexecutable_edges,
265         ssa_ccp_substitute_constants, ssa_ccp_df_delete_unreachable_insns,
266         ssa_const_prop): Modified.
267         * ssa-dce.c (set_control_dependent_block_to_edge_map_,
268         find_control_dependence, find_pdom, ssa_eliminate_dead_code): Modified.
269         * ssa.c (remove_phi_alternative, find_evaluations,
270         compute_dominance_frontiers_1, compute_iterated_dominance_frontiers,
271         insert_phi_node, rename_block, convert_to_ssa, eliminate_phi,
272         make_regs_equivalent_over_bad_edges,
273         make_equivalent_phi_alternatives_equival,
274         compute_conservative_reg_partition,
275         coalesce_regs_in_successor_phi_nodes, compute_coalesced_reg_partition,
276         rename_equivalent_regs, convert_from_ssa, for_each_successor_phi):
277         Modified.
278
279 2002-05-16  Mark Mitchell  <mark@codesourcery.com>
280
281         * cfgrtl.c (purge_dead_edges): Correct handling of EDGE_EH.
282
283 2002-05-16  Nick Clifton  <nickc@cambridge.redhat.com>
284
285         * config/arm/arm.c (arm_rtx_costs): Check for RTX being a
286         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
287         (arm_adjust_cost): Check for RTX being a SYMBOL_REF before
288         calling CONSTANT_POOL_ADDRESS_P.
289         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in code
290         to decide whether to define __arm__ or __thumb.
291         (THUMB_GO_IF_LEGITIMATE_ADDRESS): Check for RTX being a
292         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
293
294 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
295
296         * config/arc/arc.h (CPP_PREDEFINES): Remove.
297         (CPP_SPEC): Update.
298         (TARGET_CPU_CPP_BUILTINS): New.
299
300 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
301
302         * cpphash.h (cpp_macro): Move here, and make expansion a union.
303         * cppmacro.c (cpp_macro): Remove.
304         (enter_macro_context, replace_args, warn_of_redefinition,
305         _cpp_create_definition, cpp_macro_definition): Update.
306
307 2002-05-16  Jason Merrill  <jason@redhat.com>
308
309         * config/mips/mips.c (mips_output_external): Don't do sdata
310         optimization for a variable with DECL_COMDAT set.
311
312 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
313
314         * config/rs6000/altivec.h: Cleanups for tighter typechecking.
315         Cleanups for accepting modifiers on pointers.
316         Fix predicate typos.
317         Allow long pointers as well as int pointers.
318
319 2002-05-15  Richard Henderson  <rth@redhat.com>
320
321         * varasm.c (merge_weak): Remove special case for extern and common.
322
323 2002-05-15  Matt Hiller  <hiller@redhat.com>
324
325         * testsuite/gcc.c-torture/compile/20000804-1.x: Don't return 1 if
326         XFAILing.
327         * testsuite/gcc.c-torture/compile/20001226-1.x: Ditto.
328         * testsuite/gcc.c-torture/compile/920520-1.x: Ditto.
329         * testsuite/gcc.c-torture/compile/mipscop-1.x: XFAIL for now.
330         * testsuite/gcc.c-torture/compile/mipscop-2.x: Ditto.
331         * testsuite/gcc.c-torture/compile/mipscop-3.x: Ditto.
332         * testsuite/gcc.c-torture/compile/mipscop-4.x: Ditto.
333
334 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
335
336         * reload1.c (forget_old_reloads_1): Do not use subreg offset.
337
338 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
339
340         * config/rs6000/rs6000.md ("altivec_mtvscr"): Set VSCR register.
341         ("altivec_mfvscr"): Read from VSCR.
342
343         Add vscr sets for the following insns: altivec_vctuxs,
344         altivec_vaddubs, altivec_vaddsbs, altivec_vadduhs,
345         altivec_vaddshs, altivec_vadduws, altivec_vaddsws, altivec_vctsxs,
346         altivec_vmhaddshs, altivec_vmhraddshs, altivec_vmsumuhs,
347         altivec_vmsumshs, altivec_vpkuhss, altivec_vpkshss,
348         altivec_vpkuwss, altivec_vpkswss, altivec_vpkuhus,
349         altivec_vpkshus, altivec_vpkuwus, altivec_vpkswus,
350         altivec_vsububs, altivec_vsubsbs, altivec_vsubuhs,
351         altivec_vsubshs, altivec_vsubuws, altivec_vsubsws,
352         altivec_vsum4ubs, altivec_vsum4sbs, altivec_vsum4shs,
353         altivec_vsum2sws, altivec_vsumsws.
354
355         * config/rs6000/rs6000.h: Add VSCR fixed register.
356         (CALL_REALLY_USED_REGISTERS): Add vscr.
357         (CALL_USED_REGISTERS): Same.
358         (FIXED_REGISTERS): Same.
359         (REG_ALLOC_ORDER): Same.
360         (reg_class): Add VSCR_REGS.
361         (REG_CLASS_NAMES): Same.
362         (REG_CLASS_CONTENTS): Same.
363         (VSCR_REGNO): New.
364         (REGISTER_NAMES): Add vscr.
365         (DEBUG_REGISTER_NAMES): Same.
366         (ADDITIONAL_REGISTER_NAMES): Same.
367         (FIRST_PSEUDO_REGISTER): Increment.
368         (CONDITIONAL_REGISTER_USAGE): Set VSCR as a global register.
369
370 2002-05-15  Jakub Jelinek  <jakub@redhat.com>
371
372         * fold-const.c (fold): Fix a typo.
373
374 2002-05-15  Eric Botcazou  <ebotcazou@multimania.com>
375
376         * fold-const.c (fold) [LT_EXPR]: Move the transformation of a
377         comparison against the highest or lowest integer value before
378         the 'X >= CST to X > (CST - 1)' and 'X < CST to X <= (CST - 1)'
379         transformation and that of an unsigned comparison against 0
380         right after.
381
382 2002-05-15  Richard Henderson  <rth@redhat.com>
383
384         * varasm.c (merge_weak): Error for any weakening after definition.
385         Adjust weakening after use warning to catch more cases.
386         (assemble_alias): Set TREE_USED and TREE_ASM_WRITTEN consistently.
387         * config/alpha/alpha.c (alpha_encode_section_info): Do not abort.
388
389 Wed May 15 10:38:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
390
391         * invoke.texi (-malign-double): Re-add lost warning.
392
393         * i386-protos.h (x86_output_mi_thunk): Declare.
394         * unix.h (ASM_OUTPUT_MI_THUNK): Move offline to ...
395         * i386.c (x86_output_mi_thunk): ... here; handle 64bits.
396
397         * dwarf2out.c (output_call_frame_info): Do not skip unwind info
398         when flag_asynchronous_unwind_tables is set.
399
400         * flags.h (flag_reorder_functions): Declare.
401         * function.c (prepare_function_start): Initialize frequnecy.
402         * params.def (HOT_BB_COUNT_FRACTION, HOT_BB_FREQUENCY_FRACTION): New.
403         * Makefile.in (predict.o): Add dependency on target.h and params.h
404         * defaults.h (HOT_TEXT_SECTION_NAME,
405         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): New macros.
406         * predict.c (choose_function_section): New function.
407         (estimate_bb_frequencies): Use it.
408         * toplev.c (flag_reorder_functions): New global variable.
409         (lang_independent_options): New.
410         (parse_options_and_default_flags): Set.
411         * varasm.c (assemble_start_function): Bypass functdion alignment
412         for never executed functions.
413         * invoke.texi (-freorder-blocks, -freorder-functions): Document.
414         (param hot-bb-count-fraction, hot-bb-frequency-fraction): New.
415         * tm.texi (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
416         Document.
417
418         Thu Jan  3 21:52:09 CET 2002  Jan Hubicka  <jh@suse.cz>
419
420         * predict.c: Inlude profile.h
421         (MIN_COUNT): Rename to MIN_COUNT_FRACTION
422         (maybe_hot_bb_p, probably_cold_bb_p, probably_never_executed_bb_p):
423         Use the information about maximal counter in the program.
424
425         Thu Dec 20 22:14:00 CET 2001  Jan Hubicka  <jh@suse.cz>
426
427         * basic-block.h (maybe_hot_bb_p, probably_cold_bb_p,
428         probably_never_executed_bb_p): New functions.
429         * cfgcleanup.c (outgoing_edges_match): Use them.
430         * predict.c (MIN_COUNT, MIN_FREQUENCY): New macros.
431         (maybe_hot_bb_p, probably_cold_bb_p,
432         probably_never_executed_bb_p): New functions.
433
434         * function.h (function): Add new field function_frequency.
435         * predict.c (compute_function_frequency): New function.
436         (estimate_probability): Call it.
437
438 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
439
440         PR optimization/5172, optimization/5200
441         * gcse.c (gcse_main): Disable store_motion.
442
443 2002-05-14  Zack Weinberg  <zack@codesourcery.com>
444
445         * c-parse.in (MODIFIED_WCHAR_TYPE): New macro.
446         (c_common_nodes_and_builtins): Use it.
447         (builtin_define_with_value): New function.
448         (cb_register_builtins): Define __SIZE_TYPE__,
449         __PTRDIFF_TYPE__, __WCHAR_TYPE__, and __WINT_TYPE__ here,
450         using builtin_define_with_value.  Use consistent notation when
451         defining __GXX_WEAK__.
452         (WCHAR_TYPE_SIZE): Don't redefine.
453         (combine_strings): Don't use WCHAR_TYPE_SIZE.
454
455         * cppdefault.h: Don't provide defaults for SIZE_TYPE,
456         PTRDIFF_TYPE, WCHAR_TYPE, or WINT_TYPE.
457         * cppinit.c (builtin_array): Remove entries for __SIZE_TYPE__ etc.
458         * tradcpp.c (initialize_builtins): Likewise.
459         * gcc.c (cpp_unique_options): Don't muck with __WCHAR_TYPE__.
460
461         * c-lex.h (builtin_define_with_value): Prototype.
462         * system.h: Poison NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_WCHAR_TYPE,
463         NO_BUILTIN_PTRDIFF_TYPE, and NO_BUILTIN_WINT_TYPE.
464         * doc/tm.texi: Remove mention of NO_BUILTIN_SIZE_TYPE etc.
465
466         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
467         config/ia64/ia64.h, config/mips/dec-osf1.h, config/mips/iris6.h,
468         config/mips/linux.h, config/mips/mips.h, config/mips/netbsd.h,
469         config/mips/osfrose.h, config/mips/sni-svr4.h, config/rs6000/aix51.h,
470         config/s390/linux.h, config/sh/sh.h, config/sh/sh64.h,
471         config/sparc/linux64.h, config/sparc/netbsd-elf.h,
472         config/sparc/sol2-bi.h, config/sparc/sparc.h:
473         Do not define NO_BUILTIN_SIZE_TYPE etc.  Remove all references
474         to __SIZE_TYPE__ etc from all spec strings. When this makes
475         extra specs empty, delete them.
476
477 2002-05-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
478
479         * pa.c (override_options): Override TARGET_JUMP_IN_DELAY when scheduling
480         for PA8000 or generating dwarf2 call frame information.
481         (output_call): Remove DO_FRAME_NOTES check from return pointer
482         optimization.
483         (following_call): Return 0 when scheduling for PA8000 or generating
484         dwarf2 call frame information.  Revise comment.
485
486 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
487
488 config/alpha:
489         * alpha.h (TARGET_CPU_CPP_BUILTINS): Define __IEEE_FP
490         and __IEEE_FP_INEXACT as appropriate.
491         (CPLUSPLUS_CPP_SPEC): Don't define __cplusplus.
492         (CPP_SPEC): Remove ieee defines.
493         * freebsd.h, netbsd.h: Remove ieee defines and cpp_cpu.
494
495 2002-05-14  Richard Henderson  <rth@redhat.com>
496
497         * config/i386/i386.c (ix86_save_reg): Make regno unsigned.
498         (ix86_safe_length, ix86_safe_length_prefix, ix86_safe_memory): Kill.
499
500 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
501
502         * arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define.
503         (CPP_SPEC): Update.
504         (CPP_APCS_PC_SPEC, CPP_APCS_PC_DEFAULT_SPEC,
505         CPP_FLOAT_SPEC, CPP_FLOAT_DEFAULT_SPEC, CPP_ENDIAN_SPEC,
506         CPP_ENDIAN_DEFAULT_SPEC, CPP_INTERWORK_DEFAULT_SPEC,
507         CPP_INTERWORK_SPEC, CPP_PREDEFINES): Remove.
508         (EXTRA_SPECS): Update.
509         * arm/conix-elf.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
510         arm/riscix1-1.h, arm/rtems-elf.h, arm/semiaof.h, arm/unknown-elf.h,
511         arm/unknown-elf-oabi.h, arm/vxarm.h: Remove CPP_PREDEFINES and
512         define TARGET_OS_CPP_BUILTINS if necessary.
513
514 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
515
516         * gcc.c (cpp_options): Must pass -m* and -f* options
517         to the front end even when only preprocessing.
518         (cc1_options): Remove redundant -lang-c.
519         * tradcpp.c (main): Ignore -m options.
520 objc:
521         * lang-specs.h: Similarly.
522
523 2002-05-14  Vladimir Makarov  <vmakarov@redhat.com>
524
525         * genautomata.c (transform_3): Add code for transformation
526         `(A,B,...)+C -> A+C,B,...'.
527
528 Tue May 14 12:48:22 CEST 2002  Jan Hubicka  <jh@suse.cz>
529
530         * final.c (end_final): Do not output profile_arcs constructor, when
531         no functions are instrumented.
532
533 Tue May 14 12:38:30 CEST 2002  Jan Hubicka  <jh@suse.cz>
534
535         * i386.md (testsi to testqi_zext_1 splitter): Fix typo.
536
537 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
538
539         * doc/install.texi: Remove special markup originally required for
540         HTML generation with texi2html.
541
542 2002-05-14  Andreas Schwab  <schwab@suse.de>
543
544         * config/ia64/sysv4.h (DO_SELECT_SECTION): Factored out of
545         SELECT_SECTION.
546         (UNIQUE_SECTION): Define to get small data correctly.
547
548         * varasm.c (resolve_unique_section): Add third parameter
549         flag_function_or_data_sections and use it instead of
550         flag_function_sections.
551         (assemble_start_function): Pass flag_function_sections.
552         (asm_emit_uninitialised): Pass flag_data_sections.
553         (assemble_variable): Likewise.
554
555 2002-05-14  Richard Henderson  <rth@redhat.com>
556
557         * config/i386/i386.md: Use define_constants for unspec numbers.
558         * config/i386/i386.c: Likewise.
559
560 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
561
562         * doc/contrib.texi: Update my entry.
563
564 2002-05-13  Mark Mitchell  <mark@codesourcery.com>
565
566         * fixinc/inclhack.def (winidss_valist): Limit applicability.
567         * fixinc/fixincl.x: Regenerated.
568         * fixinc/tests/base/math.h: Update.
569         * fixinc/tests/base/testing.h: Likewise.
570
571 2002-05-13  Zack Weinberg  <zack@codesourcery.com>
572
573         * genattr.c (gen_attr): Don't emit a comma after the last
574         enumerator.
575
576 2002-05-13  Richard Henderson  <rth@redhat.com>
577
578         * cfgrtl.c (purge_dead_edges): Handle abnormal call edges created
579         by non-local gotos.
580         * recog.c (peephole2_optimize): Likewise.
581
582 2002-05-13  Andris Pavenis  <pavenis@lanet.lv>
583
584         * cppfiles.c (open_file): Change mode (DJGPP only) of redirected
585         input to O_BINARY.
586
587 2002-05-13  Jeffrey A Law  (law@redhat.com)
588
589         * flow.c (invalidate_mems_from_autoinc): Rewrite to use for_each_rtx.
590         Update prototype and callers.
591         (propagate_one_insn): Stack pointer adjustments kill MEMs on
592         the mem_set_list which reference the stack pointer, as do
593         calls to constant functions as they may clobber outgoing
594         argument space.
595
596         * i386.c (ia32_multipass_dfa_lookahead): Prototype.
597
598         * i386.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
599         (ia32_multipass_dfa_lookahead): New function.
600
601 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
602
603         * gcc.c (SWITCH_TAKES_ARG): Remove 'V'.
604         (translate_options): Remove 'V'.
605         (process_command): Similarly.
606 doc:
607         * invoke.texi: Remove documentation of 'V'.
608
609 2002-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
610
611         * config/s390/linux.h: Revert 2002-04-22 changes.
612
613 2002-05-13  Scott Marks <SMarks@mobile-mind.com>
614
615         * config/fr30/fr30.md: Only allow splits of immediate loads
616         if the destination is a register.
617
618 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
619
620         * Makefile.in (c-common.o, cppinit.o): Update.
621         * c-common.c: Include except.h.
622         (cb_register_builtins): Handle __USING_SJLJ_EXCEPTIONS__.
623         Call TARGET_CPU_CPP_BUILTINS and TARGET_OS_CPP_BUILTINS.
624         * cppinit.c (__USING_SJLJ_EXCEPTIONS): Not here.
625         * defaults.h (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS,
626         CPP_PREDEFINES): Handle here.
627 config:
628         * alpha/alpha-interix.h, alpha/gnu.h, alpha/linux.h,
629         alpha/netbsd.h, alpha/openbsd.h, alpha/osf.h, alpha/unicosmk.h,
630         alpha/vms.h, alpha/vxworks.h: Remove CPP_PREDEFINES, define
631         TARGET_OS_CPP_BUILTINS.
632         * alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Define.
633         (CPP_SPEC, EXTRA_SPECS): Update.
634         (CPP_AM_BWX_SPEC, CPP_AM_MAX_SPEC, CPP_AM_FIX_SPEC,
635         CPP_AM_CIX_SPEC, CPP_IM_EV4_SPEC, CPP_IM_EV5_SPEC,
636         CPP_IM_EV6_SPEC, CPP_CPU_EV4_SPEC, CPP_CPU_EV5_SPEC,
637         CPP_CPU_EV56_SPEC, CPP_CPU_PCA56_SPEC, CPP_CPU_EV6_SPEC,
638         CPP_CPU_EV67_SPEC, CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Remove.
639 doc:
640         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Remove.
641         (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS): Define.
642
643 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
644
645         * emit-rtl.c (global_rtl): Update comment.
646         (const_double_htab, const_double_htab_hash,
647         const_double_htab_hash, lookup_const_double): New.
648         (const_int_htab_hash, const_int_htab_eq): Remove const
649         qualifiers, which cause tons of warnings with RTL checking on.
650         (gen_rtx_CONST_DOUBLE): Deleted.
651         (const_double_from_real_value): New function - bears some
652         resemblance to the former immed_real_const_1.
653         (immed_double_const): Moved here from varasm.c and
654         simplified.
655         (gen_rtx_REG): Make REGNO unsigned to squelch warnings.
656         (gen_rtx_SUBREG): Use gen_rtx_raw_SUBREG.
657         (gen_rtx): Use immed_double_const.
658         (init_emit_once): Initialize the const_double_htab.  Use
659         REAL_VALUE_FROM_INT where possible.  Can now use
660         CONST_DOUBLE_FROM_REAL_VALUE when setting up const_tiny_rtx.
661         * varasm.c (struct varasm_status): Remove x_const_double_chain.
662         (const_double_chain, immed_real_const, clear_const_double_mem): Delete.
663         (immed_double_const, immed_real_const_1): Moved to emit-rtl.c.
664         (init_varasm_status, mark_varasm_status): Don't touch
665         x_const_double_chain.
666
667         * output.h: Delete prototype for clear_const_double_mem.
668         * real.h: Make REAL_VALUE_TYPE a macro again.  Remove leading
669         '0' slot from all CONST_DOUBLE_FORMAT definitions.  Prototype
670         const_double_from_real_value, not immed_real_const_1, and use
671         it to define CONST_DOUBLE_FROM_REAL_VALUE.  Define new macro
672         CONST_DOUBLE_ATOF.
673         * rtl.h (CONST_DOUBLE_CHAIN): Kill.
674         (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Adjust.
675         (gen_rtx_CONST_DOUBLE, immed_real_const): Delete prototypes.
676         (gen_rtx_REG): Second arg is unsigned.
677
678         * gengenrtl.c (special_rtx): Take out CONST_DOUBLE.
679         (excluded_rtx): New, return true for CONST_DOUBLE.
680         (genmacro): Write nothing for excluded codes.
681         * combine.c (combine_simplify_rtx): Use CONST_DOUBLE_FROM_REAL_VALUE.
682         * expr.c (expand_expr): Likewise.
683         * ggc-common.c (ggc_mark_rtx_children_1): Don't mark the
684         CONST_DOUBLE_CHAIN.
685         * toplev.c (rest_of_compilation): Don't call
686         clear_const_double_mem.
687
688         * config/rs6000/rs6000.c (rs6000_float_const): Delete.
689         (rs6000_hash_constant): Remove CONST_DOUBLE special case.
690         (toc_hash_eq): Remove CONST_DOUBLE and LABEL_REF special cases.
691         * config/rs6000/rs6000-protos.h: Don't prototype rs6000_float_const.
692         * config/c4x/c4x.md, config/rs6000/rs6000.md: Use CONST_DOUBLE_ATOF.
693         * config/dsp16xx/dsp16xx.md, config/mips/mips.md,
694         config/pa/pa.md: Use CONST_DOUBLE_FROM_REAL_VALUE.
695         * config/sparc/sparc.md, config/sparc/sparc.c: Use immed_double_const.
696
697 2002-05-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
698
699         * mips/iris6.h (CPLUSPLUS_CPP_SPEC): Define.
700
701 2002-05-12  Tom Tromey  <tromey@redhat.com>
702
703         * tree.h (copy_node): Don't mention TREE_PERMANENT.
704
705 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
706
707         * gensupport.c (n_comma_elts): Moved here from genattrtab.c.
708         (scan_comma_elt): New function.  Accepts whitespace in comma lists.
709         * gensupport.h: Prototype new routines.
710         * genattr.c (gen_attr): Use scan_comma_elt.  Avoid unnecessary
711         use of printf.
712         * genattrtab.c (n_comma_elts): Moved to gensupport.c.
713         (next_comma_elt): Use scan_comma_elt.
714
715         * config/i386/i386.md: Use new attribute notation to break up
716         long lines in define_attr forms.
717
718 2002-05-12  Richard Henderson  <rth@redhat.com>
719
720         * expr.c (compress_float_constant): New.
721         (emit_move_insn): Use it.
722         (float_extend_from_mem): New.
723         (init_expr_once): Initialize it.
724         * real.c (exact_real_truncate): New.
725
726         * config/i386/i386.h (CONST_COSTS): Assume CONST_DOUBLE gets
727         dropped into memory; penalize for size.
728         (RTX_COSTS): FLOAT_EXTEND is free.
729         * config/i386/i386.md (extendsfdf2, extendsfxf2, extendsftf2,
730         extenddfxf2, extenddftf2): Accept constants and drop them to memory.
731
732 2002-05-12  Richard Henderson  <rth@redhat.com>
733
734         * profile.h (profile_info): Add missing extern to declaration.
735         * profile.c (profile_info): Define it.
736
737 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
738
739         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Revise sets of general registers
740         used for DImode and TImode.
741
742 2002-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>
743
744         * cpplex.c (_cpp_lex_direct): When in a directive at EOF
745         fake a newline.
746
747 2002-05-11  Zack Weinberg  <zack@codesourcery.com>
748
749         * config/rs6000/rs6000.c (rs6000_default_long_calls,
750         rs6000_longcall_switch, rs6000_set_default_type_attributes): New.
751         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Set it.
752         (rs6000_override_options): Handle -m(no-)longcall.
753         (init_cumulative_args, output_mi_thunk): Check for both
754         longcall and shortcall attributes on the function.
755         (rs6000_attribute_table): Add "shortcall".
756         (rs6000_handle_longcall_attribute): Update comment.
757         (altivec_expand_unop_builtin, altivec_expand_binop_builtin,
758         altivec_expand_ternop_builtin): Add default clauses to switches
759         to silence warnings.
760
761         * config/rs6000/rs6000.h: Declare rs6000_longcall_switch and
762         rs6000_default_long_calls.  Define REGISTER_TARGET_PRAGMAS.
763         (TARGET_OPTIONS): Add longcall and no-longcall.
764
765         * config/rs6000/rs6000.md (call_nonlocal_sysv,
766         call_value_nonlocal_sysv): Split by alternatives.  One pair
767         accepts only SYMBOL_REFs and rejects if CALL_LONG is set in
768         the call cookie.  The other pair accepts only LR/CTR and has
769         no restriction.
770
771         * config.gcc (rs6000-*-* | powerpc*-*-* trailer stanza):
772         Set c_target_objs, cxx_target_objs; add t-rs6000-c-rule to
773         tmake_file.
774         * config/rs6000/rs6000-c.c: New file.
775         * config/rs6000/t-rs6000-c-rule: New file.
776         * config/rs6000/rs6000-protos.c: Add multiple-include guard.
777         Prototype rs6000_pragma_longcall.
778
779         * doc/extend.texi: Document shortcall attribute.
780         * doc/invoke.texi: Document -mlongcall, -mno-longcall.
781
782 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
783
784         * reorg.c (dbr_schedule): Remove unnecessary test.
785
786 Sat May 11 14:34:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
787
788         * i386.md (testsi to testqi spliters): New.
789
790         2002-01-14  Josef Zlomek  <zlomek@matfyz.cz>
791
792         cfg.c (dump_edge_info): added dumping of EDGE_CAN_FALLTHRU.
793
794         Wed Jan  9 2002  Josef Zlomek  <zlomj9am@artax.karlin.mff.cuni.cz>
795
796         * basic-block.h: New flag EDGE_CAN_FALLTHRU
797         * cfganal.c (set_edge_can_fallthru_flag): New function; marks the edges
798         that can be made fallthru.
799
800         Mon Nov 12 16:25:53 CET 2001  Jan Hubicka  <jh@suse.cz>
801
802         * cfglayout.c (cleanup_unconditional_jumps): New static function.
803         (cfg_layout_initialize): Use it.
804
805 2002-05-11  Marek Michalkiewicz  <marekm@amelek.gda.pl>
806
807         * config/avr/avr.c (avr_mcu_types): Update supported devices.
808         * config/avr/avr.h (CPP_SPEC, LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
809         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
810
811 2002-05-11  Kazu Hirata  <kazu@cs.umass.edu>
812
813         * dbxout.c: Fix formatting.
814         * dependence.c: Likewise.
815         * df.c: Likewise.
816         * diagnostic.c: Likewise.
817         * doloop.c: Likewise.
818         * dominance.c: Likewise.
819         * doschk.c: Likewise.
820         * dwarf2asm.c: Likewise.
821         * dwarf2out.c: Likewise.
822         * dwarfout.c: Likewise.
823
824 2002-05-10  Richard Henderson  <rth@redhat.com>
825
826         * final.c (end_final): Tidy whitespace.  Don't honor flag_pack_struct.
827         Convert integers constants as needed.  Replace "nwords" field with
828         "sizeof_bb".
829         (final): Save profile data if cfun->arc_profile, not profile_arc_flag.
830         * function.h: Fix typo in comment.
831         * libgcc2.c (struct bb): Replace "nwords" with "sizeof_bb".
832
833 2002-05-10  Roger Sayle  <roger@eyesopen.com>
834
835         * fold-const.c (build_range_check): Optimize (c>=1) && (c<=127)
836         into the equivalent (signed char)c > 0.
837
838 2002-05-10  Janis Johnson  <janis187@us.ibm.com>
839
840         * loop.c: (PREFETCH_EXTREME_DIFFERENCE, PREFETCH_BEFORE_LOOP): New.
841         (PREFETCH_CONDITIONAL): Renamed from PREFETCH_NOT_ALWAYS.
842         (struct prefetch_info): Fix spelling of member bytes_accessed.
843         (emit_prefetch_instructions): Make dump messages more regular;
844         restructure code to add more dump messages; use new macros for
845         heuristics. (There are no code generation changes in any of this).
846
847 2002-05-10  David S. Miller  <davem@redhat.com>
848
849         * rtl.h (INSN_ANNULLED_BRANCH_P): Accept INSN too, update comment.
850         (struct rtx_def): Update unchanging flag comment.
851         * doc/rtl.texi (INSN_ANNULLED_BRANCH_P): Update description.
852         * reorg.c (delete_from_delay_list): INSN_ANNULLED_BRANCH_P needs
853         to be handled to INSN too.
854         (dbr_schedule): Likewise.
855         * resource.c (next_insn_no_annul): Likewise.
856
857         * cse.c (rtx_cost): Remove multiplication by power of 2 special
858         casing.
859
860 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
861
862         * doc/install.texi (Specific, *-*-solaris2*): Update passus on
863         setting CONFIG_SHELL to /bin/ksh and remove alternate trick to
864         (possibly) work around broken /bin/sh.
865
866 2002-05-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
867
868         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Use mabi=64 and
869         . as N64/N32 libgcc_s.so subdirs.
870
871 2002-05-10  David S. Miller  <davem@redhat.com>
872
873         * config/sparc/sparc.md: Use define_constants for unspec numbers.
874
875         * rtl.h (struct rtx_def): Document unchanging and in_struct flags
876         more accurately.
877         (INSN_ANNULLED_BRANCH_P): Only valid for JUMP_INSN and CALL_INSN, fix
878         comment.
879         (INSN_FROM_TARGET_P): Valid also for CALL_INSN.
880         * doc/rtl.texi: Document these macros more accurately.
881         * recog.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P for
882         JUMP_INSNs and CALL_INSNs.
883         * resource.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P
884         or INSN_FROM_TARGET_P if the code is appropriate.
885
886 2002-05-10  Marek Michalkiewicz  <marekm@amelek.gda.pl>
887
888         * config/avr/avr.c (print_operand): Check that addr is a SYMBOL_REF
889         before using SYMBOL_REF_FLAG (addr).
890
891         * config/avr/avr-protos.h (avr_io_address_p): Declare.
892         * config/avr/avr.c (io_address_p): Rename to avr_io_address_p.
893         Make non-static.  Update all callers.
894         * config/avr/avr.md (*cbi, *sbi, *sbix_branch, *sbix_branch_bit7):
895         New insns to clear/set/test a single bit in I/O address space.
896
897 2002-05-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
898
899         * rtl.h (ENABLE_RTL_FLAG_CHECKING): Also check for gcc >= 2.7.
900
901 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
902
903         * Makefile.in: Update.
904         * c-common.c (flag_iso, flag_undef, cb_register_builtins,
905         builtin_define_std): New.
906         (c_common_init): Register CPP builtins callback.
907         * c-common.h (flag_iso, flag_undef): New.
908         * c-decl.c (c_decode_option): Set flag_iso and flag_undef.
909         * c-lex.c: Don't include target.h.
910         (cb_register_builtins): Move to c-common.c.
911         (init_c_lex): Don't register hook here.
912         * c-lex.h (builtin_define, builtin_assert, builtin_define_std): New.
913         (cpp_define, cpp_assert): Remove.
914         * gcc.c (cc1_options): Pass -undef to front end.
915         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): Remove.
916         (TARGET_INITIALIZER): Update.
917         * target.h (struct cpp_reader): Don't predeclare.
918         (struct gcc_target): Remove cpp builtin hook.
919         * tree.c (default_register_cpp_builtins): Remove.
920 doc:
921         * tm.texi: Update.
922
923 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
924
925         * cppexp.c (_cpp_expand_op_stack): Set op_limit.
926
927 2002-05-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
928
929         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Define.
930         (SHLIB_LINK, SHLIB_INSTALL): Adjust.
931
932 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
933
934         * config/sparc/t-linux64 (SHLIB_MAPFILES): Set.
935         * config/sparc/libgcc-sparc-glibc.ver: New file.
936         * config/cris/t-linux (SHLIB_MAPFILES): Remove.
937         * mklibgcc.in: Preprocess SHLIB_MAPFILES with ml flags.
938
939 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
940
941         PR target/6429
942         * Makefile.in (libgcc.mk): Pass SHLIB_SLIBDIR_SUFFIXES to mklibgcc.
943         * mklibgcc.in: If SHLIB_SLIBDIR_SUFFIXES is defined, put libgcc_s
944         shared libraries into multilib dirs, with SONAME libgcc_s.so.1 for
945         base multilibs.
946         * config/t-slibgcc-elf-ver (SHLIB_LINK): Adjust for the above.
947         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
948         * config/sparc/t-linux64 (SHLIB_SLIBDIR_SUFFIXES): Define.
949         * config/sparc/t-sol2-64 (SHLIB_SLIBDIR_SUFFIXES): Define.
950
951 2002-05-09  Richard Henderson  <rth@redhat.com>
952
953         * config/ia64/ia64.md: Use define_constants for unspec numbers.
954         * config/ia64/ia64.c: Likewise.
955
956 2002-05-09  Richard Sandiford  <rsandifo@redhat.com>
957
958         * config/mips/mips.c (mips_add_large_offset_to_sp): Remove FILE arg.
959         (save_restore_insns): Likewise.
960         (mips_expand_prologue, mips_expand_epilogue): Update callers.
961         (highpart_shift_operator): Attach ATTRIBUTE_UNUSED to mode argument.
962
963 Thu May  9 11:50:09 2002  Jeffrey A Law  (law@cygnus.com)
964
965         * athlon.md, k6.md, pentium.md, ppro.md): New files.
966         * i386.md: Move scheduling information into new files.
967
968         * i386.md (type attribute): Add "rotate" for rotate insns.
969         (rotate insns): Set type to "rotate".
970         (various attributes and function units): Treat rotate like shift.
971         (pent_pair attribute): Only rotates by one bit position are
972         pairable.
973         (sbb insns): Explicitly set pent_pair attribute on a couple
974         that were missing it.
975
976 Thu May  9 18:29:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
977
978         * sh.c (sh_builtin_saveregs): If starting with an odd fp register,
979         make sure that buffer starts on odd word address.
980         (sh_va_arg): Skip odd fp registers when reading a double precision
981         value.
982
983 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
984
985         * tree.h (preserve_data, object_permanent_p, type_precision):
986         Remove.
987
988 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
989
990         * cpplib.c (cpp_init_internal_pragmas): Remove #pragma poison.
991         * cppmacro.c (paste_all_tokens): Bad pastes are a hard error.
992 doc:
993         * cpp.texi: Update for removal of obsolete features.
994
995 Thu May  9 07:46:18 2002  Jan Hubicka <jh@suse.cz>
996                           Jeffrey A Law  (law@redhat.com)
997
998         * i386.c (ia32_use_dfa_pipeline_interface): New function.  Use
999         the DFA interface for Pentium processors.
1000         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): DEFINE.
1001         (attr_pent_pair, ix86_pent_find_pair): Remove.
1002         (ix86_sched_reorder_pentium): Remove.
1003         (ix86_sched_reorder): Remove reordering for Pentium.
1004         * i386.md (Pentium scheduling): Rewrite using DFA description.
1005
1006 Thu May  9 14:55:39 CEST 2002  Jan Hubicka  <jh@suse.cz>
1007
1008         * cfganal.c (can_fallthru): Fix fast path.
1009         * cfgrtl.c (verify_flow_info): Avoid crash on conditionals
1010         with edges to the next block.
1011
1012 Thu May  9 14:52:45 CEST 2002  Jan Hubicka  <jh@suse.cz>
1013                                Pavel Nejedly  <bim@atrey.karlin.mff.cuni.cz>
1014
1015         * final.c (end_final): Use C trees to output data structures for profiling.
1016
1017         * Makefile.in (LIBGCC_DEPS): Added missing dependency on gcov-io.h
1018         (profile.o): New dependency profile.h
1019         (final.o): New dependency profile.h
1020         * profile.h: New file. New global structure profile_info.
1021         * final.h (count_edges_instrumented_now): Declare.
1022         (current_function_cfg_checksum): Declare.
1023         (function_list): New structure.
1024         (functions_head, functions_tail): New static variables.
1025         (end_final): Emits more data, removed some -ax stuff.
1026         (final): Stores function names and chcksums.
1027         * gcov-io.h (__write_gcov_string): New function.
1028         (__read_gcov_string): New function.
1029         * gcov.c (read_profile): New function.
1030         (create_program_flow_graph): Uses read_profile instead of reading
1031         da_file.
1032         (read_files): Removed da_file checking, it's done by read_profile now.
1033         * libgcc2.c (bb_function_info): New structure.
1034         (bb): New field in structure, removed some -ax stuff.
1035         (__bb_exit_func): Changed structure of da_file.
1036         * profile.c (count_edges_instrumented_now): New global variable.
1037         (current_function_cfg_checksum): New global variable.
1038         (max_counter_in_program): New global variable.
1039         (get_exec_counts): New function.
1040         (compute_checksum): New function.
1041         (instrument_edges): Sets count_edges_instrumented_now.
1042         (compute_branch_probabilities): Uses get_exec_counts instead of
1043         reading da_file.
1044         (branch_prob): Calls compute_checksum and writes extra data to bbg_file.
1045         (init_branch_prob): Removed da_file checking, done in get_exec_counts
1046         now.
1047         (end_branch_prob): Removed da_file checking, done in get_exec_counts
1048         now.
1049         * gcov.texi: Updated information about gcov file format.
1050
1051 2002-05-09  Kazu Hirata  <kazu@cs.umass.edu>
1052
1053         * sbitmap.c: Fix formatting.
1054         * scan.c: Likewise.
1055         * scan-decls.c: Likewise.
1056         * sched-deps.c: Likewise.
1057         * sched-ebb.c: Likewise.
1058         * sched-rgn.c: Likewise.
1059         * sched-vis.c: Likewise.
1060         * sdbout.c: Likewise.
1061         * sibcall.c: Likewise.
1062         * simplify-rtx.c: Likewise.
1063         * ssa.c: Likewise.
1064         * ssa-ccp.c: Likewise.
1065         * ssa-dce.c: Likewise.
1066         * stmt.c: Likewise.
1067         * stor-layout.c: Likewise.
1068         * stringpool.c: Likewise.
1069
1070 2002-05-09  David S. Miller  <davem@redhat.com>
1071
1072         * config/sparc/sol2.h (ASM_CPU_SPEC): Handle -mcpu=v9.
1073
1074 2002-05-07  David S. Miller  <davem@redhat.com>
1075
1076         * config/sparc/sparc.h (TARGET_BUGGY_QP_LIB): Define to zero.
1077         * config/sparc/sol2.h (TARGET_BUGGY_QP_LIB): Override to one.
1078         * config/sparc/sparc.c (emit_soft_tfmode_libcall): If the Qp
1079         library implementation clobbers the output before the inputs
1080         are fully consumed, use stack temporary for the output.
1081
1082 2002-05-09  Jason Thorpe  <thorpej@wasabisystems.com>
1083
1084         * config/netbsd.h (CPP_SPEC): Remove.
1085         * config/i386/netbsd-elf.h (CPP_SPEC): Define.
1086         * config/i386/netbsd.h (CPP_SPEC): Define.
1087         * config/ns32k/netbsd.h (CPP_SPEC): Define.
1088         * config/sparc/netbsd-elf.h (CPP_SPEC): Remove.
1089         * config/sparc/netbsd.h (CPP_SPEC): Define.
1090         * config/vax/netbsd.h (CPP_SPEC): Define.
1091
1092 2002-05-08  Kazu Hirata  <kazu@cs.umass.edu>
1093
1094         * read-rtl.c: Fix formatting.
1095         * real.c: Likewise.
1096         * recog.c: Likewise.
1097         * regclass.c: Likewise.
1098         * regmove.c: Likewise.
1099         * reg-stack.c: Likewise.
1100         * reload1.c: Likewise.
1101         * reload.c: Likewise.
1102         * resource.c: Likewise.
1103         * rtlanal.c: Likewise.
1104         * rtl.c: Likewise.
1105         * rtl-error.c: Likewise.
1106
1107 2002-05-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1108
1109         * pa/pa-64.h (MAX_WCHAR_TYPE_SIZE): Delete.
1110         * pa/pa.h (MAX_WCHAR_TYPE_SIZE): Delete.
1111
1112 2002-05-08  Bernd Schmidt  <bernds@redhat.com>
1113
1114         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Tweak previous change to
1115         use __SSE2__ macro instead.
1116         * config/i386/xmmintrin.h: Likewise.
1117
1118 2002-05-08  Janis Johnson  <janis187@us.ibm.com>
1119
1120         * rtl.h (RTL_FLAG_CHECK*): Add an argument for the macro name,
1121         and use it in all invocations of these macros.  Clean up comments.
1122         * rtl.c (rtl_check_failed_flag): Add an argument for the name
1123         of the flag access macro whose check failed.
1124         * doc/rtl.texi (Flags): Document additional flag uses.
1125
1126 2002-05-08  Robert Spier <rspier@pobox.com>
1127             Neil Booth  <neil@daikokuya.demon.co.uk>
1128
1129         PR preprocessor/6521
1130         * cppfiles.c (handle_missing_header): Don't do anything
1131         different for <> includes.
1132 doc:
1133         * cppopts.texi: Update documentation for -MG.
1134
1135 2002-05-08  Neil Booth  <neil@daikokuya.demon.co.uk>
1136
1137         * cpplex.c (cpp_interpret_charconst): Truncate as well as
1138         sign-extend.
1139 doc:
1140         * cpp.texi: Clarify multichar charconst valuation.
1141
1142 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
1143
1144         * doc/invoke.texi: Document -mwindiss option.
1145
1146 2002-05-08  Jason Merrill  <jason@redhat.com>
1147
1148         * dwarf2out.c (output_call_frame_info): Don't emit a CIE with no FDEs.
1149
1150         * dwarf2out.c (gen_type_die): Abort on broken recursion.
1151
1152         PR c++/6381
1153         * dwarf2out.c (rtl_for_decl_location): Only expand INTEGER_CST and
1154         REAL_CST.
1155
1156 2002-05-08  Nick Clifton  <nickc@cambridge.redhat.com>
1157
1158         * config/arm/t-arm-elf (MULTILIB): Do not allow big-endian/
1159         little-endian multilibs to override arm/thumb multilibs.
1160         Do not build hardware floating point multilibs, nor apcs-26
1161         multilibs for the Thumb.
1162
1163 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
1164
1165         PR c/6569.
1166         * varasm.c (mark_weak): New function.
1167         (merge_weak): Use it.  Do not call declare_weak.
1168         (declare_weak): Use merge_weak.
1169
1170 Wed May  8 13:12:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
1171
1172         * cse.c (dead_libcall_p): Update counts.
1173         (delete_trivially_dead_insns): Update call of dead_libcall_p.
1174
1175 Wed May  8 11:08:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
1176
1177         * cfglayout.c (function_tail_eff_head): Rename to ...
1178         (function_footer): ... this one.
1179         (unlink_insn_chain): New functions.
1180         (label_for_bb): Only call block_label and emit debug message.
1181         (record_effective_endpoints): Actually unlink the headers and footers.
1182         (fixup_reorder_cahin): Re-insert the unlinked sequences.
1183         (cfg_layout_duplicate_bb): Use duplicate_insn_chain.
1184         * cfglayout.h (struct reorder_block_def): New fields footer/header;
1185         remove eff_head/eff_end.
1186         * rtl.h (set_first_insn): Declare.
1187         * emit-rtl.c (set_first_insn): New function.
1188
1189         * cfglayout.c (fixup_reorder_chain): Dump duplicated
1190         (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
1191         cfg_layout_duplicate_bb): New global function.
1192         (duplicate_insn_chain): New static function.
1193         * cfglayout.h (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
1194         cfg_layout_duplicate_bb): Declare.
1195         (struct reorder_block_def): Add "original" field.
1196         * emit-rtl.c (emit_copy_of_insn_after): New function.
1197         * rtl.h (emit_copy_of_insn_after): Declare.
1198
1199         * cfglayout.c (fixup_fallthru_exit_predecessor): Kill.
1200         (fixup_reorder_chain): properly handle edges to exit block.
1201
1202 Wed May  8 11:10:31 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1203                                Jan Hubicka  <jh@suse.cz>
1204
1205         * basic-block.h (note_prediction_to_br_prob): declare.
1206         * c-semantics.c: Inlucde predit.h
1207         (expand_stmt): predict GOTO_STMT as not taken.
1208         * cfgcleanup.c: (delete_unreachable_blocks): Make global.
1209         (cleanup_cfg): Do not free tail_recursion_list.
1210         * cfgrtl.c (can_delete_note_p): Delete NOTE_INSN_PREDICTION.
1211         (flow_delete_block): Kill predictions past end of basic block.
1212         * output.h (delete_unreachable_blocks): Declare.
1213         * predict.c (predicted_by_p, process_note_predictions,
1214         process_note_prediction, last_block_p): New function.
1215         (estimate_probability): Bypass loop on PRED_CONTINUE;
1216         do not handle noreturn heuristics; kill PRED_RETURN; add
1217         PRED_EARLY_RETURN.
1218         * predict.def (PRED_CONTINUE, PRED_EARLY_RETURN, PRED_GOTO,
1219         PRED_CONST_RETURN, PRED_NEGATIVE_RETURN, PRED_NULL_RETURN): New.
1220         * predict.h (IS_TAKEN): New constant.
1221         * print-rtl.c (print_rtx): Pretty print NOTE_INSN_PREDICTION.
1222         * rtl.c (NOTE_INSN_PREDICTION): New.
1223         * rtl.h (NOTE_PREDICTION, NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS):
1224         New macro.
1225         (insn_note): add NOTE_INSN_PREDICTION.
1226         * sibcall.c (optimize_sibling_and_tail_recursive_call): Do not build
1227         CFG; free tail_recursion_label_list.
1228         * stmt.c: Include predict.h;
1229         (return_prediction): New.
1230         (expand_value_return): Use it.
1231         * toplev.c: Lower NOTE_INSN_PREDICTION before sibcall.
1232
1233 2002-05-08  Richard Sandiford  <rsandifo@redhat.com>
1234
1235         * config/mips/mips.md: Name the unspecs with define_constant.
1236         (*HILO_delay): Rename to 'hilo_delay' (no star).
1237         (reload_indi): Replace gen_rtx_UNSPEC with gen_hilo_delay.
1238         (reload_outdi, reload_outsi): Likewise.
1239
1240 2002-05-07  Kazu Hirata  <kazu@cs.umass.edu>
1241
1242         * toplev.c: Fix formatting.
1243
1244 2002-05-07  Janis Johnson  <janis187@us.ibm.com>
1245
1246         * config.in (ENABLE_RTL_FLAG_CHECKING): New.
1247         * configure.in (ac_rtlflag_checking): New.
1248         * doc/install.texi (--enable-checking): Document RTL flag checking.
1249
1250 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
1251
1252         * c-common.c (c_common_init): Set options->unsigned_wchar.
1253         * cppinit.c (cpp_create_reader): Default unsigned_wchar,
1254         group target dependencies.
1255         (init_builtins, cpp_handle_option): Update.
1256         * cpplex.c (cpp_interpret_charconst): Update.
1257         * cpplib.h (struct cpp_options): Add unsigned_wchar, rename
1258         signed_char to unsigned_char, group target dependencies.
1259         * defaults.h (WCHAR_UNSIGNED): Remove.
1260         * system.h (WCHAR_UNSIGNED, MAX_CHAR_TYPE_SIZE): Poison.
1261 config:
1262         * freebsd.h, interix.h, alpha/freebsd.h, arm/freebsd.h,
1263         i386/386bsd.h, i386/beos-elf.h, i386/bsd386.h, i386/cygwin.h,
1264         i386/djgpp.h, i386/freebsd-aout.h, i386/i386-interix.h,
1265         i386/win32.h, ia64/freebsd.h, mips/netbsd.h, rs6000/freebsd.h,
1266         sh/elf.h, sh/sh.h, sparc/freebsd.h: Remove WCHAR_UNSIGNED.
1267 doc:
1268         * tm.texi: Remove MAX_CHAR_TYPE_SIZE.
1269
1270 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
1271
1272         * fixinc/inclhack.def (windiss_math1): New fix.
1273         (windiss_math2): Likewise.
1274         (windiss_valist): Likewise.
1275         * fixinc/fixincl.x: Regenerated.
1276
1277 2002-05-07  Andreas Jaeger  <aj@suse.de>
1278
1279         * genautomata.c (output_internal_min_issue_delay_func): Add
1280         ATTRIBUTE_UNUSED to avoid warning with empty dfa.
1281         (output_internal_trans_func): Likewise.
1282
1283 Tue May  7 10:06:22 2002  Jeffrey A Law  (law@redhat.com)
1284
1285         * pa.c (hppa_profile_hook): Use force_reg to get the address
1286         of the profile hook into an appropriate pseudo register.
1287
1288 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
1289
1290         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -mwindiss.
1291         (LINK_START_SPEC): Handle it.
1292         (LINK_OS_SPEC): Likewise.
1293         (CPP_SPEC): Likewise.
1294         (STARTFILE_SPEC): Likewise.
1295         (LIB_SPEC): Likewise.
1296         (ENDFILE_SPEC): Likewise.  Do not assume crtsavres.o is used on
1297         all platforms.
1298         (CRTSAVRES_DEFAULT_SPEC): New macro.
1299         (LIB_WINDISS_SPEC): New macro.
1300         (CPP_OS_WINDISS_SPEC): Likewise.
1301         (STARTFILE_WINDISS_SPEC): Likewise.
1302         (ENDFILE_WINDISS_SPEC): Likewise.
1303         (LINK_START_WINDISS_SPEC): Likewise.
1304         (LINK_OS_WINDISS_SPEC): Likewise.
1305         * config/rs6000/windiss.h: New file.
1306
1307 2002-05-07  Aldy Hernandez  <aldyh@redhat.com>
1308
1309         * config/rs6000/rs6000.c (bdesc_2arg): Fix vmax typos.
1310
1311 2002-05-06  David S. Miller  <davem@redhat.com>
1312
1313         * config/sparc/sparc.md (shift insns): Do not mask off
1314         second operand, 'I' constraint and SHIFT_COUNT_TRUNCATED
1315         take care of it.
1316
1317 2002-05-06  Richard Henderson  <rth@redhat.com>
1318
1319         PR c++/6212
1320         * expr.c (highest_pow2_factor_for_type): New.
1321         (expand_assignment): Use it.
1322
1323 2002-05-06  Aldy Hernandez  <aldyh@redhat.com>
1324
1325         * config/rs6000/rs6000.md ("altivec_mtvscr"): Change to
1326         unspec_volatile.
1327         ("altivec_mfvscr"): Same.
1328
1329 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
1330
1331         * rtl.h (struct rtx_def): Update comments.
1332         (RTL_FLAG_CHECK[12345678]): New.  (rtl_check_failed_flag): Declare.
1333         (RTL_FLAG): New.  (CLEAR_RTX_FLAGS): New.  (flag access macros): Use
1334         RTL_FLAG_CHECK macros with list of expected RTL codes.
1335         * rtl.c (copy_rtx, shallow_copy_rtx): Use RTX_FLAG macro.
1336         (rtl_check_failed_flag): New.
1337         * reload1.c (reload): Use REG macro before changing rtx to MEM.
1338         (reload_cse_noop_set_p): Check rtx code before using access macro.
1339         * config/ia64/ia64.c (process_for_unwind_directive): Check rtx code
1340         before using access macro.
1341
1342 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
1343
1344         * doc/rtl.texi (Flags): Update to reflect current usage.
1345
1346 2002-05-06  Roger Sayle  <roger@eyesopen.com>
1347
1348         PR opt/3995
1349         * fold-const.c (sign_bit_p): New function.
1350         (fold) [EQ_EXPR]: Use this to convert (A & C) == 0 into A >= 0 and
1351         (A & C) != 0 into A < 0, when constant C is the sign bit of A's type.
1352         Reapply fold when converting (A & C) == C into (A & C) != 0.
1353         (fold_binary_op_with_conditional_arg): Fix typo in comment.
1354
1355 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
1356
1357         * c-common.c (warn_multichar): New.
1358         (c_common_init): Set CPP's warn_multichar.
1359         * c-common.h (warn_multichar): New.
1360         * c-decl.c (warn_multichar): Remove.
1361         * c-lex.c (lex_charconst): Update.
1362         * c-tree.h (warn_multichar): Remove.
1363         * cppexp.c (eval_token): Sign-extend charconst value.
1364         * cppinit.c (cpp_create_reader): Set warn_multichar.
1365         * cpplex.c (cpp_interpret_charconst): Don't sign-extend
1366         each character.  Update prototype.  Sign-extend the result.
1367         * cpplib.h: Fix conditions.
1368         (struct cpp_options): Add new warning flag.
1369         (cpp_interpret_charconst): Update prototype.
1370 doc:
1371         * cpp.texi: Update documentation.
1372
1373 2002-05-06  Vladimir Makarov  <vmakarov@redhat.com>
1374
1375         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
1376         Fix typo in usage of allof instead of unit.
1377
1378 2002-05-06  Richard Henderson  <rth@redhat.com>
1379
1380         * recog.c (if_test_bypass_p): Accept multiple set insns for OUT,
1381         and any jump or call for IN.
1382
1383 2002-05-06  Bernd Schmidt  <bernds@redhat.com>
1384
1385         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Define __SSE2_BUILTINS__ if
1386         -msse2.
1387         * config/i386/xmmintrin.h: Use it to conditionalize SSE2 support.
1388
1389 2002-05-06  Roger Sayle  <roger@eyesopen.com>
1390
1391         * fold-const.c (lshift-double): Cast the high word to an unsigned
1392         HOST_WIDE_INT when extracting sign bit to avoid compiler warning.
1393         (div_and_round_double): Cast carry to a signed HOST_WIDE_INT to
1394         avoid compiler warning.  (fold): Remove redundant code from
1395         BIT_AND_EXPR as integer operands are canonicalized to be arg1.
1396
1397 2002-05-06  Jeff Law  <law@redhat.com>
1398
1399         * pa-protos.h (hppa_fpstore_bypass_p): Declare.
1400         * pa.c (pa_adjust_cost): Remove all true dependency cost
1401         adjustments.  Also remove support for non-DFA scheduling.
1402         * pa.md (700, 7100, 7100lc, 7200, 7300): Use bypass mechanism
1403         to adjust true dependency costs.  Update various comments.
1404         (7100lc, 7200, 7300 scheduling): Simplify by combining the
1405         FP ALU & MPY units into a single unit.
1406
1407 2002-05-06  Catherine Moore  <clm@redhat.com>
1408
1409         * config/v850/v850.c (compute_register_save_size): Make sure
1410         to count all of the registers that will be saved.
1411
1412 Mon May  6 18:03:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
1413
1414         * i386.c (q_regs_operand): Use ANY_QI_REGS_P.
1415
1416 2002-05-06  David S. Miller  <davem@redhat.com>
1417
1418         * config/sparc/sparc.c (emit_soft_tfmode_libcall): Do not
1419         allow result to overlap input operands in memory.
1420
1421 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
1422
1423 doc:
1424         * cpp.texi: Update multichar charconst docs.
1425
1426 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
1427
1428         * cpplex.c (cpp_interpret_charconst): Sign-extend each
1429         character.  Don't ignore excess characters.  Treat
1430         multicharacter character constants as signed.
1431         (cpp_parse_escape): Clarify diagnostic.
1432
1433 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
1434
1435         * config/sparc/sparc.md (ashlsi3): If shift count is const1_rtx,
1436         use add instead of shift.
1437         (ashldi3_sp64): Likewise.
1438         (ashlsi3_const1, ashldi3_const1): Remove.
1439         * config/sparc/sparc.h (PREDICATE_CODES): Add const1_operand.
1440         * config/sparc/sparc.c (const1_operand): New.
1441
1442 2002-05-05  Jason Thorpe  <thorpej@wasabisystems.com>
1443
1444         * config.gcc (alpha*-*-netbsd*): Don't use crtstuff.
1445
1446 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
1447
1448         PR target/6561
1449         * config/sparc/sparc.md (muldi3_v8plus): Handle %1 equal to %2.
1450
1451 2002-05-05  Richard Henderson  <rth@redhat.com>
1452
1453         * config/alpha/alpha.c (alpha_adjust_cost): Remove everything but
1454         memory latency adjustments.
1455         (alpha_variable_issue): Remove.
1456         (alpha_use_dfa_pipeline_interface): New.
1457         (alpha_multipass_dfa_lookahead): New.
1458         * config/alpha/alpha.md: Remove define_function_unit scheduling;
1459         include new dfa scheduling.
1460         (attr type): Add none.
1461         (blockage): Use it.
1462         * config/alpha/ev4.md: New.
1463         * config/alpha/ev5.md: New.
1464         * config/alpha/ev6.md: New.
1465
1466 2002-05-05  David S. Miller  <davem@redhat.com>
1467
1468         * recog.c (store_data_bypass_p): Handle CLOBBER inside PARALLEL.
1469
1470 2002-05-05  Kazu Hirata  <kazu@cs.umass.edu>
1471
1472         * cse.c: Fix formatting.
1473         * emit-rtl.c: Likewise.
1474
1475 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
1476
1477         * genautomata.c (initiate_states): Add additional guard to
1478         initialize `units_array'.
1479
1480 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
1481
1482         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp,
1483         process_unit_to_form_the_same_automaton_unit_lists,
1484         form_the_same_automaton_unit_lists
1485         check_unit_distributions_to_automata): New prototypes and
1486         functions.
1487         (check_automata): Rename it into `check_automata_insn_issues'.
1488         (unit_decl): New fields `the_same_automaton_unit' and
1489         `the_same_automaton_message_reported_p'.
1490         (unit_decl_t): New typedef.
1491         (the_same_automaton_lists): New gloval variable.
1492         (unit_regexp, unit_set_el, units_array, units_cmp,
1493         output_get_cpu_unit_code_func): Use the typedef.
1494         (evaluate_max_reserv_cycles): Increment
1495         `description->max_insn_reserv_cycles'.
1496         (initiate_states): Don't increment `max_cycles_num'.
1497         (transform_insn_regexps): Move code around transformation of
1498         regexps from `generate'.
1499         (generate): Remove call of `transform_insn_regexps'.
1500         (expand_automata): Call `transform_insn_regexps' and
1501         `check_unit_distributions_to_automata'.  Check errors before
1502         `generate'.
1503
1504         * config/sparc/ultra3.md (us3_a0, us3_a1): Move the units into
1505         automaton `ultrasparc3_1'.
1506
1507 2002-05-05  Neil Booth  <neil@daikokuya.demon.co.uk>
1508
1509         * c-common.c (c_common_init): Set up CPP arithmetic.
1510         * cppinit.c (cpp_create_reader): Default CPP arithmetic to
1511         something reasonable for the host.
1512         (sanity_checks): Add checks.
1513         (cpp_read_main_file): Call sanity_checks() from here...
1514         (cpp_post_options): ... not here.
1515         * cpplex.c (cpp_interpret_charconst): Get max_chars right.
1516         * cpplib.h (struct cpp_options): New member int_precision.
1517
1518 2002-05-05  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1519
1520         * doc/install.texi (powerpc-*-linux-gnu*): Update build requirements.
1521
1522 2002-05-04  David S. Miller  <davem@redhat.com>
1523
1524         * config/sparc/linux.h, config/sparc/linux64.h
1525         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define twice.
1526
1527         * config/sparc/sparc.c (sparc_rtx_costs): Describe costs of
1528         more RTX codes.
1529         * config/sparc/sparc.h (RTX_COSTS_CASES): List those new codes.
1530
1531         * recog.c (store_data_bypass_p): Handle out_insn being a PARALLEL
1532         of SETs.
1533
1534 2002-05-05  Tim Josling  <tej@melbpc.org.au>
1535
1536         * treelang; New directory for new sample language treelang.
1537
1538 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
1539
1540         * Makefile.in (c-lex.o): Update.
1541         * c-lex.c: Include target.h.
1542         (cb_register_builtins): New.
1543         (init_c_lex): Set builtins callback.
1544         * c-lex.h (cpp_define, cpp_assert): New prototypes.
1545         * cppinit.c (init_builtins): Use callback, including for
1546         GXX_WEAK.
1547         * cpplib.h (struct cpp_callbacks): New member.
1548         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): New.
1549         (TARGET_INITIALIZER): Update.
1550         * target.h (struct gcc_target): New hook.
1551         * tree.c (default_register_cpp_builtins): New.
1552         * tree.h (default_register_cpp_builtins): New.
1553 doc:
1554         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Document.
1555
1556 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
1557
1558         * cppinit.c (MAX_WCHAR_TYPE_SIZE): Move to cpplib.h
1559         (cpp_post_options): Move sanity checks to...
1560         (sanity_checks): New.
1561         * cpplex.c (maybe_read_ucs): Fix prototype.
1562         (parse_string, cpp_parse_escape): Cast for %c format specifier.
1563         * cpplib.h (cppchar_t): Use unsigned long or unsigned long long
1564         if necessary.
1565
1566 2002-05-04  Bernd Schmidt  <bernds@redhat.com>
1567
1568         * config/i386/i386.c (bdesc_2arg): Add a couple of missing SSE2
1569         builtins.  Use V2DI patterns instead of TI for logical operations.
1570         (ix86_init_mmx_sse_builtins): Add a couple of missing SSE2 builtins.
1571         Correct definitions of psadbw, pmovmskb128, movntdq, cvtdq2ps.
1572         (ix86_expand_builtins): Change the pattern used for movntdq.
1573         * config/i386/i386.md (sse2_andv2di3, sse2_iorv2di3, sse2_xorv2di3,
1574         sse2_nandv2di3): New patterns.
1575         (sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3): Correct modes
1576         on operands.
1577         (sse2_movntv2di): Renamed from sse2_movntti and modes adjusted.
1578         (cvtdq2pd): Correct mode on operand 1.
1579         (sse2_umulsidi3): Describe without unspec.
1580         (sse2_psadbw, mmx_psadbw): Describe with unspec; use more appropriate
1581         machine modes.
1582         (lshrv2di3): Renamed from sse2_lshrv2di3 and removed unspec.
1583         (ashlv2di3): Likewise, from sse2_ashlv2di3.
1584         (ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3,
1585         ashlv4si3, ashlv2di3): Use SImode for shift count.
1586         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti, lshrv2di3_ti,
1587         lshrv4si3_ti, lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti):
1588         New patterns.
1589         * config/i386/xmmintrin.h (__v2df, __v2di, __v4si, __v8hi, __v16qi):
1590         New typedefs.
1591         (__m128i, __m128d): New macros.
1592         (_mm_add_pd, _mm_add_sd, _mm_sub_pd, _mm_sub_sd, _mm_mul_pd,
1593         _mm_mul_sd, _mm_div_pd, _mm_div_sd, _mm_sqrt_pd, _mm_sqrt_sd,
1594         _mm_min_pd, _mm_min_sd, _mm_max_sd, _mm_max_pd, _mm_and_pd,
1595         _mm_andnot_pd, _mm_xor_pd, _mm_or_pd, _mm_cmpeq_pd, _mm_cmplt_pd,
1596         _mm_cmple_pd, _mm_cmpgt_pd, _mm_cmpge_pd, _mm_cmpneq_pd,
1597         _mm_cmpnlt_pd, _mm_cmpnle_pd, _mm_cmpngt_pd, _mm_cmpnge_pd,
1598         _mm_cmpord_pd, _mm_cmpunord_pd, _mm_cmpeq_sd, _mm_cmplt_sd,
1599         _mm_cmple_sd, _mm_cmpgt_sd, _mm_cmpge_sd, _mm_cmpneq_sd,
1600         _mm_cmpnlt_sd, _mm_cmpnle_sd, _mm_cmpngt_sd, _mm_cmpnge_sd,
1601         _mm_cmpord_sd, _mm_cmpunord_sd, _mm_comieq_sd, _mm_comilt_sd,
1602         _mm_comile_sd, _mm_comigt_sd, _mm_comige_sd, _mm_comineq_sd,
1603         _mm_ucomieq_sd, _mm_ucomieq_sd, _mm_ucomilt_sd, _mm_ucomile_sd,
1604         _mm_ucomigt_sd, _mm_ucomige_sd, _mm_ucomineq_sd, _mm_cvtepi32_pd,
1605         _mm_cvtepi32_ps, _mm_cvtpd_epi32, _mm_cvtpd_pi32, _mm_cvtpd_ps,
1606         _mm_cvttpd_epi32, _mm_cvttpd_pi32, _mm_cvtpi32_pd, _mm_cvtps_epi32,
1607         _mm_cvttps_epi32, _mm_cvtps_pd, _mm_cvtsd_si32, _mm_cvttsd_si32,
1608         _mm_cvtsd_ss, _mm_cvtsi32_sd, _mm_cvtss_sd, _mm_unpackhi_pd,
1609         _mm_unpacklo_pd, _mm_loadh_pd, _mm_storeh_pd, _mm_storel_pd,
1610         _mm_movemask_pd, _mm_packs_epi16, _mm_packs_epi32, _mm_packus_epi16,
1611         _mm_unpackhi_epi8, _mm_unpackhi_epi16, _mm_unpackhi_epi32,
1612         _mm_unpacklo_epi8, _mm_unpacklo_epi16, _mm_unpacklo_epi32,
1613         _mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
1614         _mm_adds_epi8, _mm_adds_epi16, _mm_adds_epu8, _mm_adds_epu16,
1615         _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
1616         _mm_subs_epi8, _mm_subs_epi16, _mm_subs_epu8, _mm_subs_epu16,
1617         _mm_madd_epi16, _mm_mulhi_epi16, _mm_mullo_epi16, _mm_mul_pu16,
1618         _mm_mul_epu16, _mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64,
1619         _mm_sra_epi16, _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32,
1620         _mm_srl_epi64, _mm_slli_epi16, _mm_slli_epi32, _mm_slli_epi64,
1621         _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
1622         _mm_srli_epi64, _mm_and_si128, _mm_andnot_si128, _mm_or_si128,
1623         _mm_xor_si128, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
1624         _mm_cmpgt_epi8, _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_max_epi16,
1625         _mm_max_epu8, _mm_min_epi16, _mm_min_epu8, _mm_movemask_epi8,
1626         _mm_mulhi_epu16, _mm_maskmoveu_si128, _mm_avg_epu8, _mm_avg_epu16,
1627         _mm_sad_epu8, _mm_stream_si32, _mm_stream_si128, _mm_stream_pd,
1628         _mm_movpi64_epi64, _mm_clflush, _mm_lfence, _mm_mfence): New
1629         functions.
1630         (_mm_shufflehi_epi16, _mm_shufflelo_epi16, _mm_shuffle_epi32,
1631         _mm_extract_epi16, _mm_insert_epi16, _mm_shuffle_pd): New macros.
1632
1633 2002-05-04  Kazu Hirata  <kazu@cs.umass.edu>
1634
1635         * dwarf2out.c: Fix formatting.
1636         * varasm.c: Likewise.
1637
1638 2002-05-04  David Edelsohn  <edelsohn@gnu.org>
1639
1640         PR c/6543
1641         * config/rs6000/rs6000.md (sCC pattern and splitter): Remove
1642         clobber and use result as temporary value.
1643
1644 Sat May  4 13:20:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
1645
1646         * expr.c (force_operand): Use expand_simple_* to handle more
1647         cases.
1648
1649 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
1650
1651         * c-lex.c (lex_string): Let cpp_parse_escape handles truncation
1652         and sign-extension.
1653         (lex_charconst): Update for change in prototype of
1654         cpp_interpret_charconst.  Extend from cppchar_t to HOST_WIDE_INT
1655         appropriately.
1656         * cpphash.h (BITS_PER_CPPCHAR_T): New.
1657         * cppinit.c (cpp_create_reader): Initialize them for no
1658         change in semantics.
1659         (cpp_post_options): Add sanity checks.
1660         * cpplex.c (cpp_parse_escape): Handle precision, sign-extension
1661         and truncation issues.  Calculate in type cppchar_t.
1662         (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Remove.
1663         (cpp_interpret_charconst): Calculate in type cppchar_t.  Handle
1664         run-time dependent precision correctly.  Return whether the
1665         result is signed or not.
1666         * cpplib.c (dequote_string): Use cppchar_t; update.
1667         * cpplib.h (cppchar_signed_t): New.
1668         struct cpp_options): New precision members.
1669         (cpp_interpret_charconst, cpp_parse_escape): Update prototypes.
1670         * cppexp.c (eval_token): Update.
1671
1672 2002-05-03  David S. Miller  <davem@redhat.com>
1673
1674         * config/sparc/sparc-protos.h (sparc_rtx_costs): New.
1675         * config/sparc/sparc.c (sparc_rtx_costs): New function
1676         implementing RTX_COSTS and CONST_COSTS.
1677         * config/sparc/sparc.h (CONST_COSTS): Delete.
1678         (RTX_COSTS_CASES): Define.
1679         (RTX_COSTS): Expand RTX_COSTS_CASES and use sparc_rtx_costs to do
1680         the work.
1681
1682         * config/sparc/sparc.md (DFA schedulers): Split out...
1683         * config/sparc/cypress.md, config/sparc/hypersparc.md,
1684         config/sparc/sparclet.md, config/sparc/supersparc.md,
1685         config/sparc/ultra1_2.md, config/sparc/ultra3.md: ... into here.
1686
1687         * config/sparc/sparc.c (LEAF_REGISTERS): Do not do ifdef
1688         checks on it, always defined for Sparc.
1689
1690         * config/sparc/sparc.h (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER):
1691         Tweak, and add more detailed comments.
1692
1693 2002-05-03  Zack Weinberg  <zack@codesourcery.com>
1694
1695         * Re-apply patch accidentally reverted with
1696         DFA scheduler merge: remove all rules and variables to slurp
1697         source files out of libiberty and rebuild them with HOST_CC.
1698         ($(HOST_PREFIX_1)varray.o): New rule.
1699         (genattrtab rule): Word wrap.
1700
1701 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
1702
1703         * config/i386/netbsd64.h (CPP_LP64_SPEC): Define.
1704         (CPP_SUBTARGET_SPEC): Define.
1705         (SUBTARGET_EXTRA_SPECS): Redefine, adding cpp_lp64 and
1706         cpp_subtarget specs.
1707         (CPP_SPEC): Redefine to include %(cpp_subtarget).
1708
1709 2002-05-03  David S. Miller  <davem@redhat.com>
1710
1711         * target-defs.h (TARGET_SCHED_CYCLE_DISPLAY): Delete.
1712         * target.h (struct gcc_target): Delete cycle_display member.
1713
1714         * config/ia64/ia64.c (ia64_emit_insn_before): Put it back.
1715         (rtx_needs_barrier): Delete reference to cycle_display unspec.
1716         (ia64_sched_reorder2): Mention need for cycle display handling
1717         once such notes exist.
1718
1719 2002-05-03  Richard Henderson  <rth@redhat.com>
1720
1721         * real.c (etoasc): Strip most trailing zeros for clarity.
1722         * sched-vis.c: Include real.h.
1723         (print_value): Use REAL_VALUE_TO_DECIMAL as needed.
1724         * Makefile.in (sched-vis.o): Add real.h.
1725
1726 2002-05-03  David S. Miller  <davem@redhat.com>
1727
1728         * haifa-sched.c (rank_for_schedule): Revert 2002-05-02 change,
1729         no longer needed.
1730
1731 2002-05-03  Aldy Hernandez  <aldyh@redhat.com>
1732
1733         * config/rs6000/rs6000.c (altivec_expand_binop_builtin): Error out
1734         when we get an out of range literal.
1735         (altivec_expand_ternop_builtin): Same.
1736         (altivec_expand_unop_builtin): Same.
1737         (altivec_expand_builtin): Same, for dss.
1738         (altivec_expand_builtin): Use trees instead of rtl when
1739         determining literal argument validity.
1740
1741 2002-05-03  David S. Miller  <davem@redhat.com>
1742
1743         Delete cycle display scheduling hook.
1744         * config/ia64/ia64.c (ia64_cycle_display,
1745         TARGET_SCHED_CYCLE_DISPLAY, ia64_emit_insn_before): Delete.
1746         (ia64_sched_reorder2): Don't check for CODE_FOR_cycle_display
1747         and use emit_insn_before instead of ia64_emit_insn_before.
1748         * config/ia64/ia64.md (unspec usage): Delete cycle display.
1749         (cycle_display): Delete insn pattern.
1750         * config/sparc/sparc.md (unspec usage): Delete cycle display.
1751         (cycle_display): Delete insn pattern.
1752         * config/sparc/sparc.c (sparc_cycle_display,
1753         TARGET_SCHED_CYCLE_DISPLAY): Delete.
1754         * doc/md.texi (cycle_display): Don't mention.
1755         * doc/tm.texi (TARGET_SCHED_CYCLE_DISPLAY): Likewise.
1756
1757 2002-05-03  Richard Henderson  <rth@redhat.com>
1758
1759         * recog.c (store_data_bypass_p, if_test_bypass_p): New.
1760         * recog.h: Declare them.
1761
1762         * config/sparc/sparc.c (ultrasparc_store_bypass_p): Remove.
1763         * config/sparc/sparc.md: Use store_data_bypass_p instead.
1764         * config/sparc/sparc-protos.h: Update.
1765
1766 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
1767
1768         * config/sparc/netbsd-elf.c (CPP_SUBTARGET_SPEC64): Remove
1769         -D__arch64__.  Add -D_LP64.
1770         (CPP_ARCH32_SPEC): Redefine to match the non-bi-arch version
1771         from sparc.h.
1772         (CPP_ARCH64_SPEC): Likewise.
1773         (NO_BUILTIN_PTRDIFF_TYPE): Undef.
1774         (NO_BUILTIN_SIZE_TYPE): Undef.
1775
1776 2002-05-03  Vladimir Makarov  <vmakarov@redhat.com>
1777
1778         * genautomata.c (min_issue_delay_pass_states): Change return type
1779         in the prototype.
1780         (min_issue_delay_pass_states): Change the algorithm.
1781         (min_issue_delay): Set up min_insn_issue_delay for the state.
1782         (output_min_issue_delay_table): Interchange the nested loops and
1783         and initiate min_insn_issue_delay for states.
1784
1785 Fri May  3 22:59:15 CEST 2002  Jan Hubicka  <jh@suse.cz>
1786
1787         * cfgcleanup.c (try_optimize_cfg):  Call merge_block only when
1788         jump is simplejump.
1789
1790 Fri May  3 22:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>
1791
1792         * i386.c  (expand_movstr, expand_clrstr): Fix inline-all-stringops
1793         sequence.
1794
1795 2002-05-03  Richard Henderson  <rth@redhat.com>
1796
1797         PR opt/6534
1798         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
1799         noce_try_store_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
1800         noce_try_cmove_arith, noce_try_minmax, noce_try_abs): Insert new
1801         code before JUMP, not EARLIEST.
1802
1803 2002-05-03  Joseph S. Myers  <jsm28@cam.ac.uk>
1804
1805         * c-format.c (check_format_info_main): Don't check for presence of
1806         parameter for * width until after operand number has been read,
1807         and only check for it if format parameters are available.
1808         Fixes PR c/6547.
1809
1810 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
1811
1812         * config/alpha/netbsd.h (CPP_PREDEFINES): Add -D_LP64.
1813         (LINK_SPEC): Undef before defining.
1814
1815 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
1816
1817         PR preprocessor/6489
1818         * tradcpp.c (fixup_newlines): New.
1819         (main, finclude): Use it.
1820
1821 2002-05-03  Richard Sandiford  <rsandifo@redhat.com>
1822
1823         * config/mips/elf64.h (UNIQUE_SECTION): Use mips_unique_section.
1824         * config/mips/mips.c (mips_unique_section): Strip encoding from
1825         decl name.
1826
1827 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
1828
1829         * config/i386/i386.c (ix86_expand_int_movcc): Truncate to proper
1830         mode.
1831
1832 2002-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1833
1834         * doc/install.texi (Installing): Mention GCC 3.1 buildstats.
1835         (Specific): Removed buildstats references.
1836         (Specific, hppa*-hp-hpux11): Adjust for GCC versions > 3.0.
1837         (Specific, sparc-sun-solaris2*): Update 64-bit hints for GCC 3.1.
1838         Accomodate Solaris versions beyond 8.
1839         (Specific, sparc-sun-solaris2.7): Update as path for GCC 3.1.
1840         (Specific, *-*-solaris2.8): Removed, obsolete.
1841
1842 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
1843
1844         PR target/6542
1845         * config/sparc/sparc.h (leaf_reg_remap): Remove const.
1846         (CONDITIONAL_REGISTER_USAGE): For TARGET_FLAT make
1847         fill leaf_reg_remap with identity.
1848         * config/sparc/sparc.c (leaf_reg_remap): Remove const.
1849
1850 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
1851
1852         * config/h8300/crti.asm: Remove trailing spaces.
1853         * config/h8300/h8300.c: Likewise.
1854         * config/h8300/lib1funcs.asm: Likewise.
1855
1856 2002-05-02  Jason Merrill  <jason@redhat.com>
1857
1858         * defaults.h (BOOL_TYPE_SIZE): Move default here from cp/decl.c.
1859         * c-decl.c (c_init_decl_processing): Use it.
1860         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Define to INT_TYPE_SIZE.
1861         * config/i960/i960.h (BOOL_TYPE_SIZE): Don't define.
1862         * config/mcore/mcore.h (BOOL_TYPE_SIZE): Don't define.
1863
1864 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
1865
1866         * regrename.c: Fix formatting.
1867         * tree.c: Likewise.
1868
1869 Fri May  3 13:34:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
1870
1871         * i386.md (attribute memory): Handle compares properly.
1872
1873 Fri May  3 10:51:38 CEST 2002  Jan Hubicka  <jh@suse.cz>
1874
1875         * i386.md (sse_clrsf, sse_clrsi): Set memory attribute
1876         to none.
1877
1878 2002-05-02  Kazu Hirata  <kazu@cs.umass.edu>
1879
1880         * function.c: Fix formatting.
1881
1882 2002-05-02  Jan Hubicka  <jh@suse.cz>
1883
1884         * haifa-sched.c (schedule_insn): Print table of instructions and
1885         reservations.
1886         (sched_block): Do not print ready list at verbosity level 1.
1887         * sched-vis.c (print_insn): Make global.
1888         * sched-ebb.c (ebb_print_insn): Rename from...
1889         (print_insn): ... this one.
1890         * sched-int.h (print_insn): Declare
1891
1892 2002-05-02  Richard Henderson  <rth@redhat.com>
1893
1894         * haifa-sched.c (rank_for_schedule): Skip past last_scheduled_insn
1895         emitted by cycle_display.
1896
1897 2002-05-02  Loren J. Rittle  <ljrittle@acm.org>
1898
1899         * doc/install.texi (*-*-freebsd*): Update to latest status.
1900
1901 2002-05-02  Jakub Jelinek  <jakub@redhat.com>
1902
1903         PR target/6540
1904         * config.gcc (sparc*-*-solaris2*): Set float_format to i128.
1905         * config/float-sparc.h: Assume 128-bit long double if
1906         __LONG_DOUBLE_128__ is defined.
1907
1908 2002-05-02  Vladimir Makarov  <vmakarov@redhat.com>
1909
1910         * genattrtab.c (write_function_unit_info): Add a dummy element
1911         when num_units == 0.
1912
1913 2002-05-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1914
1915         * predict.c: (propagate_freq, estimate_bb_frequencies): Use
1916         TYPE_MODE (double_type_node) instead of DFmode.
1917
1918 Thu May  2 19:50:04 CEST 2002  Jan Hubicka  <jh@suse.cz>
1919
1920         * cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computed
1921         jumps post reload.
1922         * toplev.c (rest_of_compilation): Revert Richard's patch.
1923
1924 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1925
1926         * pa/x-ada (ADA_CFLAGS): Rename to X_ADA_CFLAGS.
1927
1928 2002-05-02  Catherine Moore  <clm@redhat.com>
1929
1930         * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Change r5 to r20.
1931
1932 2002-05-02  Kazu Hirata  <kazu@hxi.com>
1933
1934         * combine.c: Fix comment typos.
1935         * expr.c: Likewise.
1936         * genautomata.c: Likewise.
1937         * stmt.c: Likewise.
1938         * tree.h: Likewise.
1939
1940 2002-05-02  Joseph S. Myers  <jsm28@cam.ac.uk>
1941
1942         * doc/install.texi: State GNAT version requirements.
1943
1944 2002-05-02  Nick Clifton  <nickc@cambridge.redhat.com>
1945
1946         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Accept any form
1947         of the frame pointer or arg pointer register which strict register
1948         checking is not enabled.
1949
1950 2002-05-02  Aldy Hernandez  <aldyh@redhat.com>
1951
1952         * gcc.dg/altivec-8.c: New.
1953
1954         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
1955         PRE_INC and PRE_DEC for altivec modes.
1956
1957 2002-05-01  Bruce Korb  <bkorb@gnu.org>
1958
1959         * fixinc/check.tpl(set-writable): make sure the function exists first
1960         * fixinc/inclhack.def(alpha_assert): fix test_text
1961         * fixinc/tests/base/assert.h: add in missing result
1962
1963 2002-05-01  Jeff Law  <law@redhat.com>
1964
1965         * pa.h (EXTRA_CONSTRAINT): Don't accept PIC addresses for the
1966         'T' constraint.
1967
1968 2002-05-01  Joel Brobecker  <brobecker@gnat.com>
1969
1970         * dbxout.c (dbxout_type): Emit size information for range types,
1971         as well, but only when using GDB extensions.
1972
1973 2002-05-01  Richard Henderson  <rth@redhat.com>
1974
1975         * configure.in (HAVE_GAS_HIDDEN): Replace SPARC feature test with
1976         target-independent gnu binutils date test.
1977
1978 2002-05-01  Richard Henderson  <rth@redhat.com>
1979
1980         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Emit dump
1981         info before expunging the block.
1982
1983 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
1984
1985         * cppinit.c (cpp_handle_option) [-dM]: Don't set no_output here...
1986         (cpp_post_options): ...but here.  Disable -dD, -dN and -dI when
1987         -M -or -MM is in effect.
1988
1989 2002-05-01  Zack Weinberg  <zack@codesourcery.com>
1990
1991         * config.gcc: Correct test of --enable-obsolete.  Obsolete all
1992         A29k configurations.
1993         * doc/install.texi: Update to match.
1994
1995 2002-05-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1996
1997         PR bootstrap/6514
1998         * varasm.c (globalize_decl): Compare DECL_ASSEMBLER_NAME to check
1999         for duplicates. Always loop over whole list.
2000
2001 Wed May  1 10:32:37 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2002
2003         * reload.c (find_reloads, case 'p'): Set BADOP to 0.
2004
2005 2002-05-01      Joel Sherrill <joel@OARcorp.com>
2006
2007         * config/sparc/t-elf (sparc-rtems, sparc-elf): Build assembly
2008         support routines.
2009
2010 2002-05-01      Joel Sherrill <joel@OARcorp.com>
2011
2012         * config/arm/rtems-elf.h: Add #undef TARGET_VERSION to prevent warning.
2013
2014 2002-05-01  David Edelsohn  <edelsohn@gnu.org>
2015
2016         * rs6000.md (abssi2_nopower): Convert to define_insn_and_split.
2017         (nabs_nopower): Same.
2018         (floatdisf2): New pattern.
2019         (absdi2): Convert to define_insn_and_split.
2020         (nabsdi2): Same.
2021         (trunctfsf2): Same.
2022         (floatditf2): Same.
2023         (floatsitf2): Same.
2024         (fix_trunctfdi2): Same.
2025         (fix_trunctfsi2): Same.
2026
2027 2002-05-01  Joseph S. Myers  <jsm28@cam.ac.uk>
2028
2029         * doc/install.texi: Update Texinfo version requirement
2030         documentation.
2031
2032 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
2033
2034         PR target/6512, PR target/5628
2035         * config/sparc/sparc.md (movdf_insn_v9only_novis): Don't allow >= %f32
2036         when memory is not aligned.
2037         (movdf_insn_v9only_vis): Likewise.
2038         * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Request a FP_REGS
2039         temporary for EXTRA_FP_REGS DFmode load from unaligned memory.
2040         (SECONDARY_OUTPUT_RELOAD_CLASS): Similarly.
2041
2042 2002-05-01  Aldy Hernandez  <aldyh@redhat.com>
2043
2044         * gcc.dg/altivec-7.c: New.
2045
2046         * config/rs6000/altivec.h: Cleanup.
2047
2048 2002-04-30  Aldy Hernandez  <aldyh@redhat.com>
2049
2050         * doc/invoke.texi (Option Summary): Add -mvrsave=.
2051         (RS/6000 and PowerPC Options): Document -mvrsave=.
2052
2053         * config/rs6000/rs6000.c (rs6000_altivec_vrsave): New global.
2054         (rs6000_altivec_vrsave_string): Same.
2055         (rs6000_override_options): Call rs6000_parse_vrsave_option.
2056         (rs6000_parse_vrsave_option): New.
2057         (rs6000_stack_info): Only generate vrsave instructions when
2058         TARGET_ALTIVEC_VRSAVE.
2059
2060         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -mvrsave= option.
2061         (rs6000_altivec_vrsave_string): Define extern.
2062         (rs6000_altivec_vrsave): Same.
2063         (TARGET_ALTIVEC_VRSAVE): New.
2064
2065 2002-04-30  Richard Henderson  <rth@redhat.com>
2066
2067         PR opt/6516
2068         * toplev.c (rest_of_compilation): Don't run cross-jump before
2069         bb-reorder.
2070
2071 2002-04-30  Tom Rix  <trix@redhat.com>
2072
2073         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Sanity
2074         check which_alternative.
2075
2076 2002-04-30  Kazu Hirata  <kazu@hxi.com>
2077
2078         * cpplex.c: Fix comment formatting.
2079         * function.c: Likewise.
2080         * integrate.c: Likewise.
2081         * regrename.c: Likewise.
2082         * sibcall.c: Likewise.
2083         * simplify-rtx.c: Likewise.
2084         * tree-inline.c: Likewise.
2085
2086 2002-04-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2087
2088         * config.gcc (hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-rtems*,
2089         hppa1.0-*-osf*, hppa1.1-*-bsd*, hppa1.1-*-hpux10*, hppa2*-*-hpux10*,
2090         hppa1.0-*-hpux10*, hppa*64*-*-hpux11*, hppa1.1-*-hpux11*,
2091         hppa2*-*-hpux11*, hppa1.0-*-hpux11*, hppa*-*-lites*): Define xmake_file.
2092         * pa/t-linux, pa/t-pa, pa/t-pa64, t-pro (T_ADAFLAGS): Delete.
2093         * pa/x-ada: New file.  Define ADA_CFLAGS.
2094
2095 2002-04-30  Hans-Peter Nilsson  <hp@bitrange.com>
2096
2097         * config/mmix/mmix.h (MMIX_LAST_STACK_REGISTER_REGNUM): Renamed
2098         from MMIX_LAST_REGISTER_FILE_REGNUM.
2099         (NO_IMPLICIT_EXTERN_C): Remove cryptic obsolete comment.
2100         (struct machine_function): New member highest_saved_stack_register
2101         previously static variable in mmix.c.
2102         (MACHINE_DEPENDENT_REORG): Define.
2103         * config/mmix/mmix.c (highest_saved_stack_register): Deleted.
2104         (MMIX_OUTPUT_REGNO): New.
2105         (mmix_target_asm_function_prologue): Move calculation of last used
2106         saved-stack-register into...
2107         (mmix_machine_dependent_reorg): New function.  Update to also handle
2108         !TARGET_ABI_GNU.
2109         (mmix_print_operand): Apply MMIX_OUTPUT_REGNO when emitting
2110         register names, simplify somewhat by new variable regno.
2111         <case 'p'>: Remove fixed FIXME.  Always emit highest used saved
2112         register.
2113         (mmix_print_operand_address): Apply MMIX_OUTPUT_REGNO when
2114         emitting register names.
2115         (mmix_asm_output_reg_push, mmix_asm_output_reg_pop): Ditto.
2116         (mmix_dbx_register_number): Apply MMIX_OUTPUT_REGNO here too.
2117         Remove fixed FIXME.
2118         * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg):
2119         Declare.
2120
2121         * config/mmix/mmix.md ("divmoddi4"): Update head comment.
2122
2123 2002-04-30  Richard Henderson  <rth@redhat.com>
2124
2125         * config/sparc/sparc.c (emit_soft_tfmode_libcall,
2126         emit_soft_tfmode_binop, emit_soft_tfmode_unop, emit_soft_tfmode_cvt,
2127         emit_hard_tfmode_operation, emit_tfmode_binop, emit_tfmode_unop,
2128         emit_tfmode_cvt): New.
2129         * config/sparc/sparc.md (extendsftf2, extenddftf2, trunctfsf2,
2130         trunctfdf2, floatsitf2, floatunssitf2, floatditf2, floatunsditf2,
2131         fix_trunctfsi2, fixuns_trunctfsi2, fix_trunctfdi2, fixuns_trunctfdi2,
2132         addtf3, subtf3, multf3, divtf3, sqrttf2): Use them.
2133         * config/sparc/sparc-protos.h: Update.
2134
2135 2002-04-30  Janis Johnson  <janis187@us.ibm.com>
2136
2137         * install.texi (Final install): Add to the list of info to include
2138         in a report of a successful bootstrap, and add link to 3.1 list.
2139
2140 Tue Apr 30 19:15:36 CEST 2002  Jan Hubicka  <jh@suse.cz>
2141
2142         * i386.md (type): Add new SSE/MMX subtypes, remove usused fop1.
2143         (mode): Add vector modes
2144         (i387): Kill attribute.
2145         (unit): New attribute.
2146         (length_immediate): Grok new types.
2147         (prefix_data16, prefix_rep, prefix_0f): Fix for SSE/MMX.
2148         (modrm): Use "unit".
2149         (memory): Handle MMX/SSE properly.
2150         (scheduling descriptions): Kill uses of fop1.
2151         (sse, mmx, fp patterns): Set type and mode properly.
2152
2153 Tue Apr 30 09:31:59 2002  Jeffrey A Law  (law@cygnus.com)
2154
2155         * pa.c (override_options): Default to PA8000 scheduling.
2156         * doc/invoke.texi (HP-PA options): Mention newly added 7300
2157         scheduling parameter.
2158
2159         * pa.md (7100lc, 7200, 7300 scheduling): Slightly refine
2160         handling of double precision multiplies.
2161
2162         * pa.md (7100lc, 7200, 7300 scheduling): Refine handling of
2163         fpdiv and fpsqrt instructions.
2164         (7200 & 7300 scheduling): Fix typo in handling of
2165         store-load and store-store penalties.
2166
2167 2002-04-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2168
2169         * doc/contrib.texi (Contributors): Use MIPS instead of Mips and
2170         mips.  Add two missing commas.
2171
2172 2002-04-30  Paolo Carlini  <pcarlini@unitus.it>
2173
2174         * doc/contrib.texi (Contributors): Update Paolo Carlini's
2175         and Benjamin Kosnik's entries.
2176
2177 2002-04-29  David S. Miller  <davem@redhat.com>
2178
2179         * config/sparc/sparc.h (BRANCH_COST, PREFETCH_BLOCK,
2180         SIMULTANEOUS_PREFETCHES): Tune for UltraSPARC-III.
2181         * config/sparc/sparc.md (call + jmp 32-bit peepholes): Likewise.
2182         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
2183
2184 2002-04-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2185
2186         * combine.c (find_split_point): Use gen_int_mode.
2187
2188 2002-04-29  Vladimir Makarov  <vmakarov@redhat.com>
2189
2190         Merging code from dfa-branch:
2191
2192         2002-04-24  Vladimir Makarov  <vmakarov@redhat.com>
2193
2194         * genautomata.c (output_reserv_sets): Fix typo.
2195
2196         2002-04-23  Vladimir Makarov  <vmakarov@redhat.com>
2197
2198         * genautomata.c (output_reserv_sets): Remove
2199         next_cycle_output_flag.
2200
2201         Thu Apr 18 08:57:06 2002  Jeffrey A Law  (law@redhat.com)
2202
2203         * sched-rgn.c (init_ready_list): Make the DFA code handle
2204         USE/CLOBBER insns in the same way as the traditional
2205         scheduler.
2206         (new_ready): Similarly..
2207
2208         2002-04-17  Vladimir Makarov  <vmakarov@redhat.com>
2209
2210         * haifa-sched.c (schedule_block): Change the DFA state only after
2211         issuing insn.
2212
2213         Wed Apr 17 15:38:36 2002  Jeffrey A Law  (law@redhat.com)
2214
2215         * pa.c (hppa_use_dfa_pipeline_interface): New function.
2216         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
2217         (override_options): Add PA7300 scheduling support.
2218         (pa_adjust_cost): Update various comments.  Properly
2219         handle anti and output dependencies when using the
2220         DFA scheduler.
2221         (pa_issue_rate): Add PA7300 scheduling support.
2222         (pa_can_combine_p): Call extract_insn before calling
2223         constrain_operands (taken from mainline tree).
2224         * pa.h (enum processor_type): Add PROCESSOR_PA7300.
2225         * pa.md (cpu attr): Add 7300.  Rewrite pipeline
2226         descriptions using DFA descriptions.  Add PA7300
2227         scheduling support.
2228
2229         2002-03-30  David S. Miller  <davem@redhat.com>
2230
2231         Add UltraSPARC-III DFA scheduling support.
2232         * config/sparc/sparc.md (define_attr type): Add fpcrmove.
2233         Update FP conditional move on register insn patterns to use it, as
2234         appropriate.
2235         (define_attr cpu): Add ultrasparc3.
2236         (define_attr us3load_type): New, update integer load patterns to
2237         set it, as appropriate.
2238         (define_automaton): Add ultrasparc3_0 and ultrasparc3_1.
2239         (rest): Add UltraSPARC3 scheduling description.
2240         * config/sparc/sparc.h (TARGET_CPU_ultrasparc3): New.
2241         (PROCESSOR_ULTRASPARC3): New.
2242         ({ASM,CPP}_CPU64_DEFAULT_SPEC): Handle ultrasparc3.
2243         ({ASM,CPP}_CPU_SPEC): Likewise.
2244         (REGISTER_MOVE_COST): Likewise.
2245         (RTX_COSTS): Likewise.
2246         * config/sparc/sparc.c (sparc_override_options,
2247         sparc_initialize_trampoline, sparc64_initialize_trampoline,
2248         sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
2249         sparc_issue_rate): Likewise.
2250         * config/sparc/sol2.h: Likewise.
2251         * config/sparc/sol2-sld-64.h: Likewise.
2252         * config/sparc/linux64.h: Likewise.
2253
2254         2002-03-22  Vladimir Makarov  <vmakarov@redhat.com>
2255
2256         * doc/md.texi: Add comments about usage the latency time for the
2257         different dependencies and about case when two or more conditions
2258         in different define_insn_reservations returns TRUE for an insn.
2259
2260         * doc/md.texi: Add reference for automaton based pipeline
2261         description.
2262
2263         2002-03-04  Vladimir Makarov  <vmakarov@redhat.com>
2264
2265         * doc/passes.texi: Add missed information about genattrtab.
2266
2267         2002-03-01  Vladimir Makarov  <vmakarov@redhat.com>
2268
2269         * genautomata.c (output_automata_list_transition_code): Check
2270         automata_list on NULL.
2271
2272         2002-02-28  Vladimir Makarov  <vmakarov@redhat.com>
2273
2274         * genautomata.c (output_insn_code_cases,
2275         output_automata_list_min_issue_delay_code,
2276         output_automata_list_transition_code,
2277         output_automata_list_state_alts_code): Comment the functions.
2278
2279         2002-02-22  Vladimir Makarov  <vmakarov@redhat.com>
2280
2281         * genautomata.c (automata_list_el_t): New typedef.
2282         (get_free_automata_list_el,free_automata_list_el,
2283         free_automata_list, automata_list_hash, automata_list_eq_p,
2284         initiate_automata_lists, automata_list_start, automata_list_add,
2285         automata_list_finish, finish_automata_lists,
2286         output_insn_code_cases, output_automata_list_min_issue_delay_code,
2287         output_automata_list_transition_code,
2288         output_automata_list_state_alts_code, add_automaton_state,
2289         form_important_insn_automata_lists): New functions and prototypes.
2290         (insn_reserv_decl): Add members important_automata_list and
2291         processed_p.
2292         (ainsn): Add members important_p.
2293         (automata_list_el): New structure.
2294         (first_free_automata_list_el, current_automata_list,
2295         automata_list_table): New global variables.
2296         (create_ainsns): Initiate member important_p.
2297         (output_internal_min_issue_delay_func): Generate the switch and
2298         call output_insn_code_cases.
2299         (output_internal_trans_func, output_internal_state_alts_func):
2300         Ditto.
2301         (generate): Call initiate_automata_lists.
2302         (automaton_states): New global variable.
2303         (expand_automata): Call form_important_insn_automata_lists.
2304         (write_automata): Call finish_automata_lists.
2305
2306         2002-02-21  Vladimir Makarov  <vmakarov@redhat.com>
2307
2308         * genautomata.c (add_excls, add_presence_absence): Check that
2309         cpu units in the sets belong the same automaton.
2310
2311         * rtl.def (EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET): Add comment
2312         about that cpu units in the sets belong the same automaton.
2313
2314         * doc/md.texi: Ditto.
2315
2316         2001-12-20  Naveen Sharma  <naveens@noida.hcltech.com>
2317                     Nitin Gupta  <niting@noida.hcltech.com>
2318
2319         * config/sh/sh.c (sh_use_dfa_interface): New function.
2320
2321         (sh_issue_rate): New Function.
2322         TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE: define.
2323         TARGET_SCHED_ISSUE_RATE: define.
2324
2325         * config/sh/sh.md: Add DFA based pipeline description for SH4.
2326
2327         (define_attr insn_class): New attribute used for DFA
2328          scheduling.
2329         (define_insn cmpgtsi_t): Set attribute insn_class mt_group.
2330         (cmpgesi_t,cmpgtusi_t,cmpgeusi_t,cmpeqsi_t,
2331          cmpeqdi_t): Likewise.
2332
2333         (add,addc1,addsi3,subc,subc1,*subsi3_internal,
2334          negc,negsi2,ashldi3_k,lshrdi3_k,ashrdi3_k): Set insn_class
2335          ex_group.
2336         (iorsi3,rotlsi3_1,rotlsi3_31,rotlsi3_16): Likewise.
2337
2338         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
2339
2340         * haifa-sched.c (queue_to_ready): Remove unnecessary condition for
2341         break.
2342
2343         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
2344
2345         * genautomata.c (DFA_INSN_CODES_LENGTH_VARIABLE_NAME): New macro.
2346         (output_dfa_insn_code_func): Expand dfa_insn_codes if it is
2347         necessary.
2348         (output_dfa_start_func): Initiate new variable insn_codes_length,
2349         (write_automata): Output definition of the new variable.
2350
2351         2001-10-02  David S. Miller  <davem@redhat.com>
2352
2353         * haifa-sched.c (advance_one_cycle): New function.
2354         (schedule_block): Use it.
2355         (queue_to_ready): Use it, and also make sure to advance the DFA
2356         state on all stall cycles, not just those where insn_queue links
2357         are found.
2358
2359         2001-10-02  Richard Sandiford  <rsandifo@redhat.com>
2360
2361         * haifa-sched.c (max_issue): Remove last_p argument.  Only return
2362         non-zero if the highest-priority instruction could be scheduled.
2363         (choose_ready): Remove last argument from max_issue call.
2364
2365         2001-09-28  David S. Miller  <davem@redhat.com>
2366
2367         * config/sparc/sparc.c (sparc_use_sched_lookahead): Use 4 for
2368         ultrasparc and 3 for other multi-issue sparcs.
2369
2370         2001-09-27  David S. Miller  <davem@redhat.com>
2371
2372         * config/sparc/sparc.md (cycle_display): New pattern.
2373         * config/sparc/sparc.c (sparc_cycle_display): New.
2374         (TARGET_SCHED_CYCLE_DISPLAY): Set it.
2375
2376         2001-09-25  David S. Miller  <davem@redhat.com>
2377
2378         Convert all of Sparc scheduling to DFA
2379         * config/sparc/sparc.md: Kill all define_function_unit
2380         directives and replace with DFA equivalent.
2381         * config/sparc/sparc.c (ultrasparc_adjust_cost,
2382         mark_ultrasparc_pipeline_state, ultra_cmove_results_ready_p,
2383         ultra_fpmode_conflict_exists, ultra_find_type,
2384         ultra_build_types_avail, ultra_flush_pipeline,
2385         ultra_rescan_pipeline_state, ultrasparc_sched_reorder,
2386         ultrasparc_variable_issue, ultrasparc_sched_init,
2387         sparc_variable_issue, sparc_sched_reorder, ultra_code_from_mask,
2388         ultra_schedule_insn, ultra_code_names, ultra_pipe_hist,
2389         ultra_cur_hist, ultra_cycles_elapsed): Kill.
2390         (sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
2391         ultrasparc_store_bypass_p): New.
2392         * config/sparc/sparc-protos.h (ultrasparc_store_bypass_p):
2393         Declare.
2394
2395         2001-09-24  David S. Miller  <davem@redhat.com>
2396
2397         * haifa-sched.c (ready_remove): Fix thinko, we want to copy around
2398         ready->vec[foo] not ready[foo].
2399
2400         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
2401
2402         * doc/md.texi: Correct examples for define_insn_reservations
2403         `mult' and `div'.
2404
2405         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
2406
2407         * genautomata.c (create_automata): Print message about creation of
2408         each automaton.
2409         (generate): Remove printing meease about creation of
2410         automata.
2411
2412         2001-09-05  David S. Miller  <davem@redhat.com>
2413
2414         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
2415         * config/sparc/linux64.h: Likewise.
2416
2417         2001-08-31  Vladimir Makarov  <vmakarov@redhat.com>
2418
2419         * haifa-sched.c (insn_cost, schedule_insn, queue_to_ready,
2420         schedule_block, sched_init, sched_finish): Add missed calls of
2421         use_dfa_pipeline_interface.
2422
2423         * sched-rgn.c (init_ready_list, new_ready, debug_dependencies):
2424         Ditto.
2425
2426         * sched-vis.c (get_visual_tbl_length): Ditto.
2427
2428         2001-08-27  Richard Henderson  <rth@redhat.com>
2429
2430         * genattr.c (main): Emit state_t even when not doing scheduling.
2431
2432         2001-08-27  Richard Henderson  <rth@redhat.com>
2433
2434         * genautomata.c (expand_automata): Always create a description.
2435
2436         2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
2437
2438         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
2439         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
2440         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
2441         RTL constructions.
2442
2443         * genattr.c (main): New variable num_insn_reservations.  Increase
2444         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
2445         pipeline hazard recognizer interface.
2446
2447         * genattrtab.h: New file.
2448
2449         * genattrtab.c: Include genattrtab.h.
2450         (attr_printf, check_attr_test, make_internal_attr,
2451         make_numeric_value): Move protypes into genattrtab.h.  Define them
2452         as external.
2453         (num_dfa_decls): New global variable.
2454         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
2455         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
2456         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
2457         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
2458
2459         * genautomata.c: New file.
2460
2461         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
2462
2463         * sched-int.h: (curr_state): Add the external definition for
2464         automaton pipeline interface.
2465         (haifa_insn_data): Add comments for members blockage and units.
2466
2467         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
2468         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
2469         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
2470         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
2471         TARGET_SCHED_DFA_POST_CYCLE_INSN,
2472         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
2473         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
2474         macros.
2475         (TARGET_SCHED): Use the new macros.
2476
2477         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
2478         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
2479         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
2480         dfa_bubble): New members in gcc_target.sched.
2481
2482         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
2483         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
2484         (insn_queue): Redefine it as pointer to array.
2485         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
2486         INSN_QUEUE_SIZE.
2487         (max_insn_queue_index_macro_value): New variable.
2488         (curr_state, dfa_state_size, ready_try): New varaibles for
2489         automaton interface.
2490         (ready_element, ready_remove, max_issue): New function prototypes
2491         for automaton interface.
2492         (choose_ready): New function prototype.
2493         (insn_unit, blockage_range): Add comments.
2494         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
2495         FUNCTION_UNITS_SIZE == 0.
2496         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
2497         actual_hazard, potential_hazard): Add comments.
2498         (insn_cost): Use cost -1 as undefined value.  Remove
2499         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
2500         pipeline interface.
2501         (ready_element, ready_remove): New functions for automaton
2502         interface.
2503         (schedule_insn): Add new code for automaton pipeline interface.
2504         (queue_to_ready): Add new code for automaton pipeline interface.
2505         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
2506         (debug_ready_list): Print newline when the queue is empty.
2507         (max_issue): New function for automaton pipeline interface.
2508         (choose_ready): New function.
2509         (schedule_block): Add new code for automaton pipeline interface.
2510         Print ready list before scheduling each insn.
2511         (sched_init): Add new code for automaton pipeline interface.
2512         Initiate insn cost by -1.
2513         (sched_finish): Free the current automaton state and finalize
2514         automaton pipeline interface.
2515
2516         * sched-rgn.c: Include target.h.
2517         (init_ready_list, new_ready, debug_dependencies): Add new code for
2518         automaton pipeline interface.
2519
2520         * sched-vis.c: Include target.h.
2521         (get_visual_tbl_length): Add code for automaton interface.
2522         (target_units, print_block_visualization):  Add comments.
2523
2524         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
2525         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
2526         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
2527         (getruntime.o, genautomata.o): New entries.
2528         (genattrtab.o): Add new dependency file genattrtab.h.
2529         (genattrtab): Add new dependencies.  Link it with `libm.a'.
2530         (getruntime.o, hashtab.o): New entries for canadian cross.
2531
2532         * doc/md.texi: Description of automaton based model.
2533
2534         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
2535         Add comments.
2536         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
2537         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
2538         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
2539         TARGET_SCHED_DFA_POST_CYCLE_INSN,
2540         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
2541         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
2542         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
2543         hook descriptions.
2544         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
2545         MAX_DFA_ISSUE_RATE): New macro descriptions.
2546
2547         * doc/contrib.texi: Add dfa based scheduler contribution.
2548
2549         * doc/gcc.texi: Add more information about genattrtab.
2550
2551 Mon Apr 29 17:19:10 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2552
2553         * reload1.c (eliminate_regs, case SUBREG): Fix typo in
2554         adjust_address_nv call.
2555
2556 2002-04-29  Janis Johnson  <janis187@us.ibm.com>
2557
2558         * doc/install.texi (Testing): Provide additional information, and
2559         a stronger encouragement, for running the testsuites.
2560
2561 2002-04-29  DJ Delorie  <dj@redhat.com>
2562
2563         * config/mips/mips.c (mips_parse_cpu): Warn if the CPU name is
2564         given in upper case.
2565
2566 2002-04-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2567
2568         * fixinc/inclhack.def (solaris_widec): Include <wchar.h> in
2569         Solaris 2 <widec.h> if missing.
2570         * fixinc/fixincl.x: Regenerate.
2571         * fixinc/tests/base/widec.h: New file.
2572
2573 2002-04-29  Nick Clifton  <nickc@cambridge.redhat.com>
2574
2575         * toplev.c (f_options): Add "profile" switch so that
2576         -fno-profile can be used to disable -p.
2577
2578 2002-04-29  Bernd Schmidt  <bernds@redhat.com>
2579
2580         * c-common.c (type_for_mode): Add support for V2DFmode, V2DImode,
2581         UV2DImode.
2582         * tree.c (build_common_tree_nodes_2): Likewise.
2583         * tree.h (enum tree_index): Likewise.
2584         (V2DF_type_node, V2DI_type_node, unsigned_V2DI_type_node): Define.
2585
2586         * config/i386/i386.c (bdesc_comi, bdesc_2arg, bdesc_1arg): Add SSE2
2587         entries.
2588         (init_mmx_sse_builtins): Initialize SSE2 builtins.
2589         (ix86_expand_builtin): Add support for SSE2 builtins.
2590         * config/i386/i386.h (VALID_SSE2_REG_MODE): New macro.
2591         (VALID_SSE_REG_MODE): Use it.
2592         (VECTOR_MODE_SUPPORTED_P): Allow SSE2 modes here as well.
2593         (enum ix86_builtins): Add SSE2 builtins.
2594         * config/i386/i386.md (movv2df_internal, movv2df, movv8hi_internal,
2595         movv8hi, movv16qi_internal, movv16qi, pushv2df, pushv8hi, pushv16qi,
2596         addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3, vmmulv2df3,
2597         divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3, vmsminv2df3,
2598         sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3, sqrtv2df2,
2599         vmsqrtv2df2, maskcmpv2df3, maskncmpv2df3, vmmaskcmpv2df3,
2600         vmmaskncmpv2df3, sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb,
2601         sse2_maskmovdqu, sse2_movntv2df, sse2_movntti, sse2_movntsi, cvtdq2ps,
2602         cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq, cvtpd2pi,
2603         cvttpd2pi, cvtpi2pd, cvtsd2si, cvttsd2si, cvtsi2sd, cvtsd2ss,
2604         cvtss2sd, cvtpd2ps, cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3,
2605         ssaddv16qi3, ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3,
2606         subv4si3, subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3,
2607         mulv8hi3, smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
2608         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_clrti, sse2_uavgv16qi3,
2609         sse2_uavgv8hi3, sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd,
2610         sse2_pshuflw, sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3,
2611         gtv8hi3, gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3,
2612         ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, sse2_lshrv2di3,
2613         ashlv8hi3, ashlv4si3, sse2_ashlv2di3, sse2_ashlti3, sse2_lshrti3,
2614         sse2_unpckhpd, sse2_unpcklpd, sse2_packsswb, sse2_packssdw,
2615         sse2_packuswb, sse2_punpckhbw, sse2_punpckhwd, sse2_punpckhdq,
2616         sse2_punpcklbw, sse2_punpcklwd, sse2_punpckldq, sse2_movapd,
2617         sse2_movupd, sse2_movdqa, sse2_movdqu, sse2_movdq2q, sse2_movq2dq,
2618         sse2_movhpd, sse2_movlpd, sse2_loadsd, sse2_movsd, sse2_storesd,
2619         sse2_shufpd, sse2_clflush, sse2_mfence, mfence_insn, sse2_lfence,
2620         lfence_insn): New patterns.
2621         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Renamed from
2622         sse_andti3_sse2, sse_nandti3_sse2, sse_iorti3_sse2, sse_xorti3_sse2.
2623
2624 Mon Apr 29 17:03:24 CEST 2002  Jan Hubicka  <jh@suse.cz>
2625
2626         * i386.md (sse_mov?fcc*): Revert patch of Mar 14th.
2627
2628 2002-04-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2629
2630         * doc/contrib.texi (Contributors): Add Paolo Carlini and
2631         Janis Johnson.
2632         Update Richard Henderson, Jakub Jelinek, and Mark Mitchell.
2633         Refer to Objective-C instead of ObjC, SPARC instead of sparc,
2634         and CPU instead of cpu.
2635
2636 Mon Apr 29 13:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
2637
2638         * toplev.c (flag_if_conversion, flag_if_conversion2): New static
2639         variables.
2640         (lang_independent_options): Add -fif-conversion, -fif-conversion2
2641         (rest_of_compilation): Do if conversion only when asked for.
2642         (parse_options_and_default_flags): Set new variables to 1 for -O1
2643         * invoke.texi (-fif-conversion, -fif-conversion2): Document.
2644
2645 Mon Apr 29 13:02:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
2646
2647         * i386.c (dbx64_register_map): Fix typo.
2648
2649 Mon Apr 29 12:18:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
2650
2651         * predict.c (real_zero, real_one, real_almost_one, real_br_prob_base,
2652         real_one_half, real_bb_freq_max): New static variables.
2653         (debug_profile_bbauxs): Kill.
2654         (process_note_predictions): Kill unused variable.
2655         (block_info_def, edge_info_def): Use REAL_VALUE_TYPE instead of
2656         volatile double.
2657         (propagate_freq): Use REAL_ARITHMETICS.
2658         (estimate_bb_frequencies): Likevise; init new static variables.
2659         * Makefile.in (predict.o): Add dependency on real.h
2660
2661 2002-04-28  David S. Miller  <davem@redhat.com>
2662
2663         PR target/6500
2664         * config/sparc/sparc.md (prefetch): Emit properly for 32-bit vs.
2665         64-bit TARGET_V9.  Do not use prefetch page, use prefetch for
2666         several {reads,writes} instead.
2667         * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
2668         Define.
2669
2670 2002-04-27  David S. Miller  <davem@redhat.com>
2671
2672         PR target/6494
2673         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Be mindful
2674         of the stack bias.
2675
2676         * config/sparc/linux.h, config/sparc/linux64.h: Don't bother
2677         including signal.h and sys/ucontext.h, not needed.
2678
2679 2002-04-29  Hans-Peter Nilsson  <hp@bitrange.com>
2680
2681         * varasm.c (output_constant_def): Correct test for not calling
2682         ENCODE_SECTION_INFO for INTEGER_CST.
2683
2684 2002-04-29  Neil Booth  <neil@daikokuya.demon.co.uk>
2685
2686         * cppexp.c (lex): Move some code to _cpp_parse_expr, but
2687         keep most cases as function eval_token.
2688         (eval_token): New function.
2689         (_cpp_parse_expr): Read token here for improved diagnostics.
2690         Don't use op_as_text.  Detect bad ':' here.
2691         (reduce): Don't detect bad ':' here.
2692         (op_as_text): Remove.
2693         * cpphash.h (_cpp_test_assertion): Change prototype.
2694         * cpplib.c (_cpp_test_assertion): Change prototype.
2695
2696 2002-04-28  Richard Henderson  <rth@redhat.com>
2697
2698         PR c/5154
2699         * ggc-common.c (ggc_mark_rtx_children_1): Rename from...
2700         (ggc_mark_rtx_children): New.
2701
2702 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
2703
2704         PR target/6496
2705         * config/sparc/sparc.md (call + jump 32-bit peepholes): Disable jump
2706         after call peepholes for UltraSPARC.
2707         (call + jump 64-bit peepholes): Remove.
2708
2709 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2710
2711         PR c/6497
2712         * config/rs6000/rs6000.md (sCC patterns): Remove clobber and use
2713         result as temporary value.
2714
2715 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
2716
2717         PR c++/6396
2718         * toplev.c (rest_of_compilation): Only run regrename and copy
2719         propagation if optimizing.
2720
2721 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
2722
2723         PR optimization/6475
2724         * reload1.c (alter_reg): Only call set_mem_expr if I is home pseudo
2725         register of REGNO_DECL (i).
2726         * Makefile.in (reload1.o): Add $(TREE_H).
2727
2728 2002-04-28  Neil Booth  <neil@daikokuya.demon.co.uk>
2729
2730         * cppexp.c (lex): Update to use state.skip_eval.
2731         (struct op): Remove prio and flags members.
2732         (FLAG_BITS, FLAG_MASK, PRIO_SHIFT, EXTRACT_PRIO, EXTRACT_FLAGS,
2733         SHORT_CIRCUIT, RIGHT_ASSOC, ..._PRIO, op_to_prio): Remove.
2734         (LEFT_ASSOC): New macro.
2735         (optab): New table of operator priorities and flags.
2736         (SHIFT): Update.
2737         (_cpp_parse_expr): Clean up logic.  Return bool.  Use a
2738         malloc-ed parser stack.
2739         (reduce): New; reduce the operator stack.
2740         (_cpp_expand_op_stack): Expand the operator stack as necessary.
2741         * cpphash.h (struct op): Predeclare.
2742         (struct cpp_reader): New members op_stack, op_limit.
2743         (struct lexer_state): New member skip_eval.
2744         (_cpp_parse_expr): Update.
2745         (_cpp_expand_op_stack): New.
2746         * cpplib.c (do_if): Update.
2747         * cppinit.c (cpp_create_reader): Create op stack.
2748         (cpp_destroy): And destroy it.
2749         * cpplib.h (CPP_LAST_CPP_OP): Correct.
2750         (TTYPE_TABLE): Correct.
2751
2752 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2753
2754         PR c/6343
2755         * c-decl.c (duplicate_decls): Call merge_weak.
2756         * c-pragma.c (apply_pragma_weak): Warn about misuse.
2757         * output.h (merge_weak): Prototype merge_weak.
2758         * varasm.c (merge_weak): New function.
2759         (declare_weak): Make sure we don't give an error on VAR_DECLs.
2760         Mark RTL with SYMBOL_REF_WEAK.
2761
2762 2002-04-27  Kurt Garloff <garloff@suse.de>
2763
2764         * tree-inline.c (inlinable_function_p): Improve heuristics
2765         by using a smoother function to cut down allowable inlinable size.
2766         * param.def: Add parameters max-inline-insns-single,
2767         max-inline-slope, min-inline-insns that determine the exact
2768         shape of the above function.
2769         * param.h: Likewise.
2770
2771 2002-04-26  Richard Henderson  <rth@redhat.com>
2772
2773         * c-parse.in (malloced_yyss, malloced_yyvs): New.
2774         (yyoverflow): Re-add.  Set them.
2775         (free_parser_stacks): New.
2776         * c-common.h: Declare it.
2777         * c-lex.c (c_common_parse_file): Call it.
2778
2779 2002-04-26  Richard Henderson  <rth@redhat.com>
2780
2781         * cfgrtl.c (tidy_fallthru_edge): Don't use next_real_insn
2782         for fallthru search.
2783
2784 2002-04-26  Eric Christopher  <echristo@redhat.com>
2785
2786         PR optimization/3700
2787         * config/mips/mips.c (mips_issue_rate): Define.  New function.
2788         (TARGET_SCHED_ISSUE_RATE): Use.
2789
2790 2002-04-25  David S. Miller  <davem@redhat.com>
2791
2792         PR target/6422
2793         * reorg.c (optimize_skip): Do not allow exception causing
2794         instructions to be considered for delay slots.
2795         (fill_simply_delay_slots, fill_slots_from_thread): Likewise.
2796         (relax_delay_slots): Do not try to consider exception causing
2797         instructions as redundant.
2798
2799 2002-04-26  Richard Henderson  <rth@redhat.com>
2800
2801         PR c/5225
2802         * c-typeck.c (build_unary_op) [CONVERT_EXPR]: Invoke non_lvalue.
2803
2804 2002-04-26  Mark Mitchell  <mark@codesourcery.com>
2805
2806         PR bootstrap/6445
2807         * config/i386/i386.md (untyped_call): Return the value in a float
2808         register if TARGET_FLOAT_RETURNS_IN_80387, not just if
2809         TARGET_80387.
2810
2811 2002-04-26  Alexandre Oliva  <aoliva@redhat.com>
2812
2813         * tree.c (tree_int_cst_lt): Compare constants whose types differ
2814         in unsigned-ness correctly.
2815
2816 2002-04-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2817
2818         * pa.h (FUNCTION_OK_FOR_SIBCALL): Don't do sibcalls when using the
2819         portable runtime model.
2820
2821 2002-04-26  Richard Henderson  <rth@redhat.com>
2822
2823         * c-parse.in (yyoverflow): Revert.
2824
2825 2002-04-26  David Edelsohn  <edelsohn@gnu.org>
2826             Richard Henderson  <rth@redhat.com>
2827
2828         * config/rs6000/rs6000.md (sCC pattern): Remove clobber and use
2829         result as temporary value.
2830
2831 2002-04-26  Richard Henderson  <rth@redhat.com>
2832
2833         PR c/3581
2834         * c-common.c (fix_string_type): Split out of ...
2835         (combine_strings): ... here.  Take a varray, not a tree list.
2836         (c_expand_builtin_printf): Use fix_string_type.
2837         * c-common.h: Update decls.
2838         * c-parse.in (string): Remove.  Update all uses to use STRING
2839         instead, and not call combine_strings.
2840         (yylexstring): New.
2841         (_yylex): Use it.
2842         * c-typeck.c (simple_asm_stmt): Don't call combine_strings.
2843         (build_asm_stmt): Likewise.
2844         * objc/objc-act.c (my_build_string): Use fix_string_type.
2845         (build_objc_string_object): Build varray for combine_strings.
2846
2847 2002-04-26  Bo Thorsen  <bo@suse.co.uk>
2848
2849         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Define for
2850         x86-64.
2851
2852 2002-04-26  Neil Booth  <neil@daikokuya.demon.co.uk>
2853
2854         * cppexp.c (CPP_UMINUS, CPP_UPLUS): New.
2855         (HAVE_NO_R_OPERAND): Remove.
2856         (HAVE_VALUE): Remove.
2857         (op_to_prio): Update.
2858         (UNARY): Don't alter flags.
2859         (_cpp_parse_expr): want_value used to indicate whether
2860         a number or unary operator is expected next.  Distinguish
2861         unary and binary +/-.
2862         (op_as_text): Update for unary operators.
2863
2864 2002-04-25  Richard Henderson  <rth@redhat.com>
2865
2866         PR c/2161
2867         * c-parse.in (yyoverflow): New.
2868
2869 2002-04-25  Richard Henderson  <rth@redhat.com>
2870
2871         PR c/2098
2872         * c-common.c (shorten_compare): Simplfy conditions leading to
2873         the generation of a warning.
2874
2875 2002-04-25  Richard Henderson  <rth@redhat.com>
2876
2877         PR c/2035
2878         * expmed.c (extract_bit_field): Fall through to generic code rather
2879         than aborting on subreg special case.
2880
2881 2002-04-25  David S. Miller  <davem@redhat.com>
2882
2883         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Add back check
2884         for DECL being NULL.
2885
2886 2002-04-25  Steve Christiansen  <smc@us.ibm.com>
2887
2888         * doc/md.texi (Machine Constraints): Add IA-64 constraints.
2889
2890 2002-04-25  Eric Botcazou  <ebotcazou@multimania.com>
2891
2892         * c-decl.c (grokdeclarator): Remove outdated ??? note
2893         on invalid declaration of flexible array members.
2894
2895 2002-04-25  Richard Henderson  <rth@redhat.com>
2896
2897         * doc/invoke.texi: Document -gdwarf{,-2} vs debug level.
2898
2899 2002-04-25  Ulrich Weigand  <uweigand@de.ibm.com>
2900
2901         * config/s390/s390.c (s390_emit_epilogue): Always restore registers
2902         needed by the compiler, even if they are used as global regs.
2903
2904 2002-04-25  Matt Hiller  <hiller@redhat.com>
2905
2906         * mips.c (mips_class_max_nregs, mips_register_move_cost): New
2907         functions.
2908         * mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls
2909         of the corresponding functions.
2910         * mips-protos.h (mips_class_max_nregs, mips_register_move_cost):
2911         New prototypes.
2912
2913 2002-04-25  Matt Hiller  <hiller@redhat.com>
2914
2915         * config/mips/mips.h (mips_sw_reg_names): Declare as extern.
2916
2917         (ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro.
2918         (FIRST_PSEUDO_REGISTER): Redefine considering coprocessor
2919         registers, adjust comment accordingly.
2920         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
2921         reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES,
2922         DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries
2923         for coprocessor registers.
2924         (ADDITIONAL_REGISTER_NAMES): Include
2925         ALL_COP_ADDITIONAL_REGISTER_NAMES.
2926
2927         (COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM,
2928         COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM,
2929         COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM,
2930         COP0_REG_P, COP2_REG_P, COP3_REG_P, ALL_COP_REG_P,
2931         COPNUM_AS_CHAR_FROM_REGNUM, COP_REG_CLASS_P): New macros.
2932
2933         (mips_char_to_class): Adjust comment to include coprocessor
2934         constraint letters.
2935
2936         * config/mips/mips.c (coprocessor_operand, coprocessor2_operand):
2937         New functions.
2938         (mips_reg_names, mips_regno_to_class): Include coprocessor
2939         information.
2940         (mips_sw_reg_names): Ditto, make non-static.
2941         (mips_move_1word): Handle moves to and from coprocessor registers.
2942         (mips_move_2words): Handle moves to and from coprocessor
2943         registers.
2944         (mips_class_max_nregs, mips_register_move_cost): Handle
2945         coprocessor register classes.
2946         (override_options): Initialize mips_char_to_class and
2947         mips_hard_regno_mode_ok properly for coprocessor registers.
2948
2949         * config/mips/mips.md (movdi_internal, movdi_internal2,
2950         movsi_internal1, movsi_internal2): Add constraint-sets for
2951         coprocessor registers.
2952         * testsuite/gcc.c-torture/mipscop-1.c: New testcase.
2953         * testsuite/gcc.c-torture/mipscop-1.x: Disable above if target
2954         isn't mips.
2955         * testsuite/gcc.c-torture/mipscop-2.c: New testcase.
2956         * testsuite/gcc.c-torture/mipscop-2.x: Disable above if target
2957         isn't mips.
2958         * testsuite/gcc.c-torture/mipscop-3.c: New testcase.
2959         * testsuite/gcc.c-torture/mipscop-3.x: Disable above if target
2960         isn't mips.
2961         * testsuite/gcc.c-torture/mipscop-4.c: New testcase.
2962         * testsuite/gcc.c-torture/mipscop-4.x: Disable above if target
2963         isn't mips.
2964
2965         * doc/tm.texi: Document feature.
2966
2967 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
2968
2969         * integrate.c (function_attribute_inlinable_p): Simplify.
2970         Check the table pointer is not NULL.
2971
2972 2002-04-25  Steven Bosscher  <S.Bosscher@student.tudelft.nl>
2973
2974         * doc/c-tree.texi: Fix typo in introduction.
2975
2976 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
2977
2978         * c-common.h (c_common_parse_file): Update.
2979         * c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
2980         * c-lex.c (YYDEBUG): Get from c-lex.h.
2981         (c_common_parse_file): Update.
2982         * c-lex.h (YYDEBUG, yydebug): New.
2983         * c-parse.in (YYDEBUG): Get from c-lex.h.
2984         (c_set_yydebug): Remove.
2985         * c-tree.h (c_set_yydebug): Remove.
2986         * langhooks-def.h (lhd_do_nothing_i): New.
2987         (lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove.
2988         (LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update.
2989         * langhooks.c  (lhd_do_nothing_i): New.
2990         (lhd_set_yydebug): Remove.
2991         * langhooks.h (struct lang_hooks): Update.
2992         * toplev.c (set_yydebug): New.
2993         (compile_file): Update call to parse_file hook.
2994         (decode_d_option): Update.
2995 objc:
2996         * objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
2997
2998 Wed Apr 24 23:45:37 2002  J"orn Rennecke <joern.rennecke@superh.com>
2999
3000         * loop.c (load_mems): Don't change the interface of called functions.
3001
3002         * calls.c (expand_call): Take current_function_pretend_args_size
3003         into account when setting argblock for sibcalls.
3004
3005 2002-04-24  Matt Hiller  <hiller@redhat.com>
3006
3007         * cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
3008         * c-lex.c: Ditto.
3009
3010         * cpplex.c (skip_line_comment): Process comment one multibyte
3011         character at a time rather than one char at a time, if
3012         appropriate.
3013         (parse_string): Process string one multibyte character at a time
3014         rather than one char at a time, if appropriate.
3015         * c-lex.c (lex_string): Lex and copy multibyte strings
3016         appropriately.
3017         * cpplib.h (cppchar_t): Change to unsigned.
3018
3019 2002-04-24  Richard Henderson  <rth@redhat.com>
3020
3021         PR c/3467
3022         * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays
3023         for c99.
3024
3025 Wed Apr 24 21:51:54 2002  J"orn Rennecke <joern.rennecke@superh.com>
3026
3027         * sh.c (sh_va_arg): If argument was passed by reference,
3028         dereference the pointer.
3029
3030         * sh.h (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
3031
3032         * sh.md (divsi3_i4_media): Use match_operand for input values
3033         rather than hard registers.
3034         (divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
3035         unnecessarily through hard registers.  Keep copies of pseudo
3036         registers outside of the libcall sequence.
3037
3038         * sh.md (casesi_shift_media): Add modes.
3039
3040         * sh.h (RETURN_IN_MEMORY): Return variable size BLKmode
3041         values in memory.
3042
3043 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
3044
3045         * attribs.c (c_common_attribute_table): Move table and handlers
3046         to c-common.c.
3047         (format_attribute_table, lang_attribute_table,
3048         lang_attribute_common): Remove.
3049         (init_attributes): Replace NULL pointers with pointers to the
3050         empty table.
3051         (handle_packed_attribute, handle_nocommon_attribute,
3052         handle_common_attribute, handle_noreturn_attribute,
3053         handle_noinline_attribute, handle_always_inline_attribute,
3054         handle_used_attribute, handle_unused_attribute,
3055         handle_const_attribute, handle_transparent_union_attribute,
3056         handle_constructor_attribute, handle_destructor_attribute,
3057         handle_mode_attribute, handle_section_attribute,
3058         handle_aligned_attribute, handle_weak_attribute,
3059         handle_alias_attribute, handle_visibility_attribute,
3060         handle_no_instrument_function_attribute, handle_malloc_attribute,
3061         handle_no_limit_stack_attribute, handle_pure_attribute,
3062         handle_deprecated_attribute, handle_vector_size_attribute,
3063         vector_size_helper): Move to c-common.c.
3064         * c-common.c (c_common_attribute_table,
3065         handle_packed_attribute, handle_nocommon_attribute,
3066         handle_common_attribute, handle_noreturn_attribute,
3067         handle_noinline_attribute, handle_always_inline_attribute,
3068         handle_used_attribute, handle_unused_attribute,
3069         handle_const_attribute, handle_transparent_union_attribute,
3070         handle_constructor_attribute, handle_destructor_attribute,
3071         handle_mode_attribute, handle_section_attribute,
3072         handle_aligned_attribute, handle_weak_attribute,
3073         handle_alias_attribute, handle_visibility_attribute,
3074         handle_no_instrument_function_attribute, handle_malloc_attribute,
3075         handle_no_limit_stack_attribute, handle_pure_attribute,
3076         handle_deprecated_attribute, handle_vector_size_attribute,
3077         vector_size_helper): Move from attribs.c.
3078         * c-common.h (c_common_attribute_table,
3079         c_common_format_attribute_table): New.
3080         * c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
3081         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
3082         * langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
3083         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New.
3084         (LANG_HOOKS_INITIALIZER): Update.
3085         * langhooks.h (struct lang_hooks): 3 new attribute hooks.
3086         * target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL.
3087         * target.h: Update comment.
3088         * tree.c (default_target_attribute_table): Remove.
3089         * tree.h (default_target_attribute_table, format_attribute_table,
3090         lang_attribute_table, lang_attribute_common): Remove.
3091 objc:
3092         * objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
3093         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
3094
3095 2002-04-24  Jason Merrill  <jason@redhat.com>
3096
3097         * dwarf2.h (enum dwarf_attribute): Add DW_AT_GNU_vector.
3098         * dwarf2out.c (dwarf_attr_name): Support it.
3099         (gen_array_type_die): Emit it.
3100         (lookup_type_die): No special handling for VECTOR_TYPE.
3101         (gen_type_die): Hand VECTOR_TYPE off to gen_array_type_die.
3102
3103 2002-04-24  Richard Henderson  <rth@redhat.com>
3104
3105         * config/mips/mips.md (movdi_usd): Renumber.
3106
3107 2002-04-24  David S. Miller  <davem@redhat.com>
3108
3109         PR target/6420
3110         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Return false if
3111         32-bit Sparc and current_function_returns_struct is true.
3112
3113 Wed Apr 24 13:48:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
3114
3115         * loop.c (canonicalize_condition): Use gen_int_mode.
3116
3117 2002-04-24  Aldy Hernandez  <aldyh@redhat.com>
3118
3119         * config/rs6000/altivec.h: Cleanup file.  Add non individual
3120         variants.
3121         (vec_vaddubm): New.
3122         (vec_vadduhm): New.
3123         (vec_vadduwm): New.
3124         (vec_vaddfp): New.
3125         (vec_vaddcuw): New.
3126         (vec_vaddubs): New.
3127         (vec_vaddsbs): New.
3128         (vec_vadduhs): New.
3129         (vec_vadduws): New.
3130         (vec_vaddsws): New.
3131         (vec_vand): New.
3132         (vec_vandc): New.
3133         (vec_vavgub): New.
3134         (vec_vavgsb): New.
3135         (vec_vavguh): New.
3136         (vec_vavgsh): New.
3137         (vec_vavguw): New.
3138         (vec_vavgsw): New.
3139         (vec_vrfip): New.
3140         (vec_vcmpbfp): New.
3141         (vec_vcmpequb): New.
3142         (vec_vcmpequh): New.
3143         (vec_vcmpequw): New.
3144         (vec_vcmpeqfp): New.
3145         (vec_vcmpgefp): New.
3146         (vec_vcmpgtub): New.
3147         (vec_vcmpgtsb): New.
3148         (vec_vcmpgtuh): New.
3149         (vec_vcmpgtsh): New.
3150         (vec_vcmpgtuw): New.
3151         (vec_vcmpgtsw): New.
3152         (vec_vcmpgtfp): New.
3153         (vec_vcmpgefp): New.
3154         (vec_vcfux): New.
3155         (vec_vcfsx): New.
3156         (vec_vctsxs): New.
3157         (vec_vctuxs): New.
3158         (vec_vexptefp): New.
3159         (vec_vrfim): New.
3160         (vec_lvx): New.
3161         (vec_lvebx): New.
3162         (vec_lvehx): New.
3163         (vec_lde): Add vector float variant.
3164         (vec_lvewx): New.
3165         (vec_lvxl): New.
3166         (vec_vlogefp): New.
3167         (vec_vmaddfp): New.
3168         (vec_vmhaddshs): New.
3169         (vec_vmaxub): New.
3170         (vec_vmaxsb): New.
3171         (vec_vmaxuh): New.
3172         (vec_vmaxsh): New.
3173         (vec_vmaxuw): New.
3174         (vec_vmaxsw): New.
3175         (vec_vmaxsw): New.
3176         (vec_vmaxfp): New.
3177         (vec_vmrghb): New.
3178         (vec_vmrghh): New.
3179         (vec_vmrghw): New.
3180         (vec_vmrglb): New.
3181         (vec_vmrglh): New.
3182         (vec_vmrglw): New.
3183         (vec_vminub): New.
3184         (vec_vminsb): New.
3185         (vec_vminuh): New.
3186         (vec_vminsh): New.
3187         (vec_vminuw): New.
3188         (vec_vminsw): New.
3189         (vec_vminfp): New.
3190         (vec_vmladduhm): New.
3191         (vec_vmhraddshs): New.
3192         (vec_msumubm): New.
3193         (vec_vmsummbm): New.
3194         (vec_vmsumuhm): New.
3195         (vec_vmsumshm): New.
3196         (vec_vmsumuhs): New.
3197         (vec_vmsumshs): New.
3198         (vec_vmuleub): New.
3199         (vec_vmulesb): New.
3200         (vec_vmuleuh): New.
3201         (vec_vmulesh): New.
3202         (vec_vmuloub): New.
3203         (vec_mulosb): New.
3204         (vec_vmulouh): New.
3205         (vec_vmulosh): New.
3206         (vec_vnmsubfp): New.
3207         (vec_vnor): New.
3208         (vec_vor): New.
3209         (vec_vpkuhum): New.
3210         (vec_vpkuwum): New.
3211         (vec_vpkpx): New.
3212         (vec_vpkuhus): New.
3213         (vec_vpkshss): New.
3214         (vec_vpkuwus): New.
3215         (vec_vpkswss): New.
3216         (vec_vpkshus): New.
3217         (vec_vpkswus): New.
3218         (vec_vperm): New.
3219         (vec_vrefp): New.
3220         (vec_vrlb): New.
3221         (vec_vrlh): New.
3222         (vec_vrlw): New.
3223         (vec_vrfin): New.
3224         (vec_vrsqrtefp): New.
3225         (vec_vsel): New.
3226         (vec_vslb): New.
3227         (vec_vslh): New.
3228         (vec_vslw): New.
3229         (vec_vsldoi): New.
3230         (vec_vsl): New.
3231         (vec_vslo): New.
3232         (vec_vspltb): New.
3233         (vec_vsplth): New.
3234         (vec_vspltw): New.
3235         (vec_vspltisb): New.
3236         (vec_vspltish): New.
3237         (vec_vspltisw): New.
3238         (vec_vsrb): New.
3239         (vec_vsrh): New.
3240         (vec_vsrw): New.
3241         (vec_vsrab): New.
3242         (vec_vsrah): New.
3243         (vec_vsraw): New.
3244         (vec_vsr): New.
3245         (vec_vsro): New.
3246         (vec_stvx): New.
3247         (vec_stvebx): New.
3248         (vec_stvehx): New.
3249         (vec_stvewx): New.
3250         (vec_stvxl): New.
3251         (vec_vsububm): New.
3252         (vec_vsubuhm): New.
3253         (vec_vsubuwm): New.
3254         (vec_vsubfp): New.
3255         (vec_vsubcuw): New.
3256         (vec_vsububs): New.
3257         (vec_vsubsbs): New.
3258         (vec_vsubuhs): New.
3259         (vec_vsubshs): New.
3260         (vec_vsubuws): New.
3261         (vec_vsubsws): New.
3262         (vec_vsum4ubs): New.
3263         (vec_vsum4sbs): New.
3264         (vec_vsum4shs): New.
3265         (vec_vsum2sws): New.
3266         (vec_vsumsws): New.
3267         (vec_vrfiz): New.
3268         (vec_vupkhsb): New.
3269         (vec_vupkhpx): New.
3270         (vec_vupkhsh): New.
3271         (vec_vupklsb): New.
3272         (vec_vupklpx): New.
3273         (vec_vupklsh): New.
3274         (vec_vxor): New.
3275
3276 2002-04-23  Eric Botcazou  <ebotcazou@multimania.com>
3277
3278         PR c/5430
3279         * fold-const.c (split_tree): Add MINUS_LITP parameter; separate
3280         added literals from substracted literals.
3281         (associate_trees): Don't convert MINUS_EXPR into PLUS_EXPR.
3282         (fold) [associate]: Preserve MINUS_EXPR if needed.
3283
3284 2002-04-23  Zack Weinberg  <zack@codesourcery.com>
3285
3286         * doc/install.texi: Clarify which versions of alpha*-dec-osf*
3287         are obsoleted.
3288
3289 2002-04-23  Tom Tromey  <tromey@redhat.com>
3290
3291         * gcc.c: Added --resource.  For PR java/6314.
3292
3293 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
3294
3295         * cp/g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
3296         * config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of
3297         these libraries.
3298
3299 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
3300
3301         * config/freebsd.h(OBJECT_FORMAT_ELF): Define.
3302
3303 Tue Apr 23 14:24:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
3304
3305         * i386.c (ix86_output_addr_diff_elt): Avoid x86_64 binutils bug
3306         workaround.
3307         (ix86_expand_int_movcc): Avoid x86_64 compilation chrash.
3308         (ix86_expand_clrstr): Fix typo.
3309         * loop.c (gen_load_of_final_value): New.
3310         (loop_givs_rescan, strength_reduce, check_dbra_loop):
3311         Use it.
3312
3313 2002-04-23  Roger Sayle  <roger@eyesopen.com>
3314
3315         * builtins.c (builtin_memset_gen_str): New function.
3316         (expand_builtin_memset): Optimize the case of constant length, but
3317         unknown value.
3318
3319 2002-04-23  Aldy Hernandez  <aldyh@redhat.com>
3320
3321         * config/rs6000/altivec.h (vec_step): Remove extraneous
3322         parentheses.
3323         (vec_ctu): Cast return.
3324
3325 2002-04-23  Alan Modra  <amodra@bigpond.net.au>
3326
3327         PR target/6413
3328         * function.h: (struct function): Add profile_label_no field.
3329         (current_function_profile_label_no): Define.
3330         * function.c: (profile_label_no): New static var.
3331         (expand_function_start): Increment it, and copy to
3332         current_function_profile_label_no.
3333         * output.h (profile_label_no): Delete.
3334         * final.c (profile_label_no): Delete.
3335         (profile_function): Use current_function_profile_label_no.
3336         (final_end_function): Don't increment profile_label_no here.
3337         * config/i386/i386.c (ix86_osf_output_function_prologue): Replace
3338         profile_label_no with current_function_profile_label_no.
3339         * config/pa/pa.c (current_function_number): Delete.
3340         (pa_output_function_prologue): Don't output profile label here.
3341         (hppa_profile_hook): Use label_no param rather than
3342         current_function_number.
3343         (FUNC_BEGIN_PROLOG_LABEL): Move to ..
3344         * config/pa/pa.h: .. here.
3345         (FUNCTION_PROFILER): Output profile label here.
3346
3347 2002-04-22  Eric Christopher  <echristo@redhat.com>
3348
3349         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert
3350         patch of 2002-04-09 due to binutils issues.
3351         (FUNCTION_ARG_REGNO_P): Ensure even numbered float register.
3352
3353 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
3354
3355         * config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm'
3356         constraint to 'o' for m=r and r=m alternatives.
3357         ("*movv8hi_internal1"): Same.
3358         ("*movv16qi_internal1"): Same.
3359         ("*movv4sf_internal1"): Same.
3360
3361 2002-04-22  Janis Johnson  <janis187@us.ibm.com>
3362
3363         * rtl.h (RTX_FLAG): New macro.
3364         * emit-rtl.c (copy_most_rtx): Use macros to access rtx flags.
3365         * final.c (alter_subreg): Use macro to access rtx flag.
3366         * integrate.c (copy_rtx_and_substitute): Use new access macro.
3367         * print-rtl.c (print_rtx): Use new access macro.
3368
3369         * cse.c (insert): Check rtx code before accessing flag.
3370
3371         * genattrtab.c (ATTR_IND_SIMPLIFIED_P, ATTR_CURR_SIMPLIFIED_P,
3372         ATTR_PERMANENT_P, ATTR_EQ_ATTR_P): New.
3373         (attr_hash_add_string, attr_rtx_1, attr_copy_rtx, check_attr_test,
3374         convert_const_symbol_ref, make_canonical, make_alternative_compare,
3375         evaluate_eq_attr, attr_rtx_cost, simplify_test_exp_in_temp,
3376         simplify_test_exp, optimize_attrs, simplify_by_exploding,
3377         find_and_mark_used_attributes, unmark_used_attributes,
3378         add_values_to_cover, simplify_with_current_value,
3379         simplify_with_current_value_aux, clear_struct_flag, walk_attr_value,
3380         copy_rtx_unchanging, main): Use new access macros.
3381
3382 2002-04-22  Tom Rix  <trix@redhat.com>
3383
3384         * expmed.c (init_expmed): Generate shifted constant once.
3385
3386 2002-04-22  Zack Weinberg  <zack@codesourcery.com>
3387
3388         * c-lex.c (lex_charconst): Call convert to get constant in
3389         proper type; don't just smash the type field.
3390         Fixes PR c/6300.
3391
3392         * config.gcc: Add list of obsolete configurations.  Disallow
3393         building these without --enable-obsolete.
3394         * doc/install.texi: Document --enable-obsolete and obsoletion
3395         policy.  Mention obsoletion of individual targets in
3396         appropriate places.
3397
3398 2002-04-22  Richard Henderson  <rth@redhat.com>
3399
3400         * config/sparc/sol2-bi.h (ASM_DEBUG_SPEC): New.
3401
3402 2002-04-22  Mark Mitchell  <mark@codesourcery.com>
3403
3404         PR f/6138.
3405         * function.c (fixup_memory_subreg): Add promoted_mode parameter.
3406         (walk_fixup_memory_subreg): Likewise.
3407         (fixup_var_refs_insn): Adjust accordingly.
3408         (fixup_var_refs_1): Likewise.
3409
3410 2002-04-22  Ulrich Weigand  <uweigand@de.ibm.com>
3411
3412         * config/s390/linux.h: (LIBPATH_SPEC, LIBPATH_ARCH31_SPEC,
3413         LIBPATH_ARCH64_SPEC): Define.
3414         (EXTRA_SPECS): Add libpath, libpath_arch31, libpath_arch64.
3415         (STARTFILE_SPEC, ENDFILE_SPEC): Define; use libpath.
3416         (LINK_ARCH31_SPEC): Add libpath_arch31 to search path.
3417         (LINK_ARCH64_SPEC): Add libpath_arch64 to search path.
3418
3419 2002-04-22      Joel Sherrill <joel@OARcorp.com>
3420
3421         * gthr-rtems.h: Correct prototypes to remove warnings.
3422
3423 2002-04-22  Richard Henderson  <rth@redhat.com>
3424
3425         PR c/6344
3426         * alias.c (canon_true_dependence): Special case (mem:blk (scratch)).
3427
3428         * gcse.c (free_insn_expr_list_list): New.
3429         (clear_modify_mem_tables): Use it.  Fix bit set usage.
3430         (canon_list_insert): Use EXPR_LISTs for expressions.
3431         (record_last_mem_set_info): Factor BLOCK_NUM (insn).
3432
3433 2002-04-22  Neil Booth  <neil@daikokuya.demon.co.uk>
3434
3435         * cppfiles.c (_cpp_pop_file_buffer): Return void.  Move
3436         file change and include code to _cpp_pop_buffer.
3437         * cpphash.h (struct pending_option): Predeclare.
3438         (struct cpp_reader): New member next_include_file.
3439         (_cpp_pop_file_buffer): Update.
3440         (_cpp_push_next_buffer): Update, rename.
3441         * cppinit.c (cpp_destroy): Free include chain and pending here.
3442         (cpp_finish_options): Simplify.
3443         (_cpp_push_next_buffer): Rename and clean up.
3444         * cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer.
3445         Clarify.
3446         * cppmacro.c (cpp_scan_nooutput): Set return_at_eof here.
3447
3448 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
3449
3450         * config/rs6000/altivec.h (vec_xor): Add variant for both args
3451         being vector signed int.
3452         (vec_andc): Same.
3453         (vec_xor): Add variant for both args being vector signed char.
3454         Remove redundant variant.
3455         (vec_andc): Same.
3456
3457 2002-04-21  David S. Miller  <davem@redhat.com>
3458
3459         * config/sparc/sparc.md (set then compare DI mode peephole2): Fix
3460         compare mode in output RTL.
3461
3462 2002-04-22  David Edelsohn  <edelsohn@gnu.org>
3463
3464         * config/rs6000/rs6000.c (rs6000_override_options): Correct
3465         style and formatting of previous patch.
3466
3467 2002-04-22  Alan Modra  <amodra@bigpond.net.au>
3468
3469         * config/rs6000/rs6000.c (rs6000_override_options): Always clear
3470         flag_pic for ABI_AIX.
3471
3472 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
3473
3474         * cppexp.c (struct op, parse_number): Replace U_CHAR with uchar.
3475         * cppfiles.c (read_include_file): Similarly.
3476         * cpphash.h (DSC, U_CHAR, ustrcmp, ustrncmp, ustrlen,
3477         uxstrdup ustrchr, ufputs): Similarly.
3478         * cppinit.c (TRIGRAPH_MAP, cpp_destroy): Similarly.
3479         * cpplex.c (parse_slow, unescaped_terminator_p, save_comment,
3480         cpp_ideq, parse_identifier, parse_number): Similarly.
3481         * cpplib.c (struct directive, dequote_string, D, run_directive,
3482         cpp_push_buffer): Similarly.
3483         * cppmacro.c (new_string_token, builtin_macro, cpp_quote_string,
3484         _cpp_create_definition, check_trad_stringification,
3485         cpp_macro_definition): Similarly.
3486
3487 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
3488
3489         * cppmacro.c (funlike_invocation_p): Don't step back
3490         over CPP_EOF.
3491
3492 2002-04-21  David Edelsohn  <edelsohn@gnu.org>
3493
3494         * config/rs6000/rs6000.c (output_profile_hook): Do not increment
3495         labelno.
3496
3497 2002-04-20  Joseph S. Myers  <jsm28@cam.ac.uk>
3498
3499         * doc/invoke.texi: Remove Chill references.
3500         * doc/gcc.texi: Update last modified date.
3501
3502 2002-04-20  Kazu Hirata  <kazu@hxi.com>
3503
3504         * config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary
3505         push and pop.  Replace add.l with add.w.
3506
3507 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
3508
3509         * config/h8300/lib1funcs.asm (___mulsi3): Use hardware
3510         multiply instructions for H8/300H case.
3511
3512 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
3513
3514         * config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2):
3515         Bum three instructions from each routine.
3516
3517 2002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>
3518
3519         * Makefile.in: Update.
3520         * decl.c (push_c_function_context, pop_c_function_context,
3521         mark_c_function_context): Rename for consistency.
3522         * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
3523         * c-tree.h (push_c_function_context, pop_c_function_context,
3524         mark_c_function_context): Rename for consistency.
3525         * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
3526         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
3527         * function.c (init_lang_status, save_lang_status,
3528         restore_lang_status, mark_lang_status, free_lang_status):
3529         Move to langhooks.h.
3530         (push_function_context_to, pop_function_context_from,
3531         free_after_parsing, prepare_function_start, ggc_mark_struct_function):
3532         Update.
3533         * function.h (init_lang_status, save_lang_status,
3534         restore_lang_status, mark_lang_status, free_lang_status):
3535         Move to langhooks.h.
3536         * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
3537         LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
3538         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
3539         LANG_HOOKS_FUNCTION_INITIALIZER): New.
3540         (LANG_HOOKS_INITIALIZER): Update.
3541         (lhd_do_nothing_f): New.
3542         * langhooks.h (struct lang_hooks_for_functions): New.
3543         (struct lang_hooks): New hooks.
3544         * langhooks.c (lhd_do_nothing_f): New.
3545 objc:
3546         * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
3547         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
3548
3549 2002-04-19  David S. Miller  <davem@redhat.com>
3550
3551         * config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
3552         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise.
3553
3554 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
3555
3556         PR optimization/3756
3557         * config/i386/i386.c (ix86_expand_int_movcc): Optimize
3558         x = ((int) y < 0) ? cst1 : cst2.
3559
3560 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
3561
3562         PR c/6358
3563         * function.c: Reapply patch for c/6358.
3564         (expand_function_end): Copy decl_rtl's mode, not
3565         current_function_return_rtx mode.
3566
3567 2002-04-19  Joel Sherrill  <joel@OARcorp.com>
3568
3569         * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
3570         targets.
3571
3572 2002-04-19  Tom Tromey  <tromey@redhat.com>
3573
3574         * doc/install.texi (Specific): Update status of Solaris 2.8.
3575         For PR libgcj/6158.
3576
3577 2002-04-19  Andreas Schwab  <schwab@suse.de>
3578
3579         * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
3580         (PUT_REAL): Restore old definition.
3581
3582 2002-04-19  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
3583             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3584
3585         * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
3586         binutils 2.11.2 and higher generate smaller binaries than Sun's
3587         native tools.
3588
3589 2002-04-19  Mark Mitchell  <mark@codesourcery.com>
3590
3591         PR c++/6352
3592         * toplev.c (rest_of_compilation): Do not defer functions for which
3593         TREE_SYMBOL_REFERENCED has already been set.
3594
3595 Fri Apr 19 15:53:03 CEST 2002  Jan Hubicka  <jh@suse.cz>
3596
3597         * i386.md (movsi_1, movhi_1): Force reload to use more flexible
3598         alternative.
3599
3600 2002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>
3601
3602         * builtins.c: Include langhooks.h.
3603         (lang_type_promotes_to): Remove.
3604         (expand_builtin_va_arg): Use new hook.
3605         * c-common.c (c_common_nodes_and_builtins): Don't set hook.
3606         (simple_type_promotes_to): Move to c-typeck.c.
3607         * c-common.h (simple_type_promotes_to): Remove.
3608         * c-decl.c (duplicate_decls, grokdeclarator): Update.
3609         * c-format.c: Include langhooks.h.
3610         (check_format_types): Update.
3611         * c-tree.h (c_type_promotes_to): New.
3612         * c-typeck.c (c_type_promotes_to): Move from c-common.c.
3613         (type_lists_compatible_p): Update.
3614         * langhooks-def.h (lhd_type_promotes_to): New.
3615         (LANG_HOOKS_TYPE_PROMOTES_TO): New.
3616         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
3617         * langhooks.c (lhd_type_promotes_to): New.
3618         * langhooks.h (struct lang_hooks_for_types): New hook.
3619         * tree.h (lang_type_promotes_to): Remove.
3620 objc:
3621         * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
3622
3623 2002-04-18  Richard Henderson  <rth@redhat.com>
3624
3625         * function.c: Revert patch for c/6358.
3626
3627 2002-04-18  Richard Henderson  <rth@redhat.com>
3628
3629         * ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN
3630         blocks.  Handle multiple references to the TRAP block.  Handle
3631         non-adjacent THEN and OTHER blocks.
3632
3633 2002-04-18  Richard Henderson  <rth@redhat.com>
3634
3635         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
3636         crash with no type for by-mode libcalls.
3637
3638         * config/ia64/ia64.md (conditional_trap): Fix predicate polarity.
3639
3640 2002-04-18  Bob Wilson  <bob.wilson@acm.org>
3641
3642         * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
3643         __xtensa_nonlocal_goto): Use a syscall instructions to flush
3644         the register windows.
3645
3646 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
3647
3648         * real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
3649         appropriate.  Document need for extended precision even when
3650         MAX_LONG_DOUBLE_TYPE_SIZE is smaller.  Define REAL_WIDTH here,
3651         based on REAL_VALUE_TYPE_SIZE.  Use REAL_WIDTH to size
3652         REAL_VALUE_TYPE.  Define CONST_DOUBLE_FORMAT here.  Use #error
3653         instead of relying on later syntax error when REAL_WIDTH > 5.
3654         * real.c: Define NE based only on whether or not we have a
3655         full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
3656         Require sizeof(REAL_VALUE_TYPE) == 2*NE.  Unconditionally
3657         define GET_REAL and PUT_REAL as simple memcpy operations; no
3658         need to byteswap or round.
3659         Use #error instead of #ifdef-ing out the entire file, for
3660         prompt error detection.
3661
3662         * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.
3663
3664 2002-04-18  David S. Miller  <davem@redhat.com>
3665
3666         * config/sparc/sparc.h (BRANCH_COST): Define.
3667
3668         * fold-const.c (BRANCH_COST): Don't provide default here, expr.h
3669         does it.
3670
3671 2002-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
3672
3673         * flow.c (update_life_info): Ignore return value of cleanup_cfg.
3674         Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in
3675         propagate_block calls after relaxation loop using new variable
3676         stabilized_prop_flags.
3677
3678 2002-04-18  Richard Henderson  <rth@redhat.com>
3679
3680         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
3681         (ia64_va_arg): Expect variable sized types by reference.
3682         * config/ia64/ia64-protos.h: Update.
3683         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
3684         ia64_function_arg_pass_by_reference.
3685
3686 2002-04-18  Richard Henderson  <rth@redhat.com>
3687
3688         * ifcvt.c: Include except.h.
3689         (block_has_only_trap): Break out from find_cond_trap.
3690         (find_cond_trap): Use it.  Always delete the trap block.
3691         (merge_if_block): Allow then block null.  Be less simplistic about
3692         what insns can end a block.
3693         * Makefile.in (ifcvt.o): Depend on except.h.
3694
3695         * config/ia64/ia64.md (trap, conditional_trap): New.
3696
3697 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
3698
3699         PR c/6358
3700         * function.c (assign_parms): Assign hard current_function_return_rtx
3701         register here...
3702         (expand_function_end): ...not here.
3703
3704 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
3705
3706         * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
3707         * c-tree.h (c_incomplete_type_error): New.
3708         * c-typeck.c (require_complete_type, build_component_ref): Update.
3709         (incomplete_type_error): Rename.
3710         * langhooks-def.h (lhd_incomplete_type_error): New.
3711         (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
3712         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
3713         * langhooks.c (lhd_incomplete_type_error): New.
3714         * langhooks.h (struct lang_hooks_for_types): New hook.
3715         * tree.c (size_in_bytes): Use new hook.
3716         * tree.h (incomplete_type_error): Remove.
3717 objc:
3718         * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
3719
3720 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
3721
3722         * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
3723         TARGET_FLOAT_FORMAT blocks.
3724
3725 2002-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3726
3727         * doc/install.texi (Downloading the source): Do not mention Chill
3728         any longer, but mention Ada.
3729         (Configuration): Do not mention Chill any longer.
3730
3731 2002-04-18  Hans-Peter Nilsson  <hp@axis.com>
3732
3733         * config/cris/cris.h (TARGET_VERSION): Remove local version number.
3734
3735 Thu Apr 18 17:14:08 CEST 2002  Jan Hubicka  <jh@suse.cz>
3736
3737         * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
3738         in last patch.
3739
3740 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
3741
3742         * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
3743         instead of unsigned_type.
3744
3745 Thu Apr 18 15:49:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
3746
3747         * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
3748         * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
3749         later.
3750
3751 2002-04-18  Bernd Schmidt  <bernds@redhat.com>
3752
3753         * attribs.c (vector_type_node_list): New static variable.
3754         (handle_vector_size_attribute): Use it to avoid generating a
3755         new type node each time we are called.
3756
3757         * combine.c (subst): Avoid trying to make a vector mode subreg of
3758         an integer constant.
3759         (gen_lowpart_for_combine): Likewise.
3760
3761 2002-04-18  Roger Sayle  <roger@eyesopen.com>
3762             Jakub Jelinek  <jakub@redhat.com>
3763
3764         * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
3765         for integer constant c (if x has unsigned type or sign bit is not
3766         set in c).  This folds the zero/sign extension into the bit-wise and
3767         operation.
3768
3769 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
3770
3771         PR middle-end/6205
3772         * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
3773         otherwise xorps.
3774
3775 2002-04-17  NIIBE Yutaka  <gniibe@m17n.org>
3776
3777         * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.
3778
3779 2002-04-17  Nick Clifton  <nickc@cambridge.redhat.com>
3780
3781         * gcc.c (read_specs): Detect and fail if an attempt is made to
3782         rename a spec string to an already existing string.
3783
3784 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
3785
3786         * config/s390/s390.c (legitimize_pic_address): Do not generate
3787         illegal address constant without CONST.
3788
3789 2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3790
3791         * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
3792         * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
3793
3794 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
3795
3796         PR optimization/6305
3797         * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
3798         to make sure previous reloads are taken into account.  Generate
3799         better code if one operand is an in-range immediate constant.
3800
3801 2002-04-16  Andrew Haley  <aph@cambridge.redhat.com>
3802
3803         * doc/install.texi (Building): libgcj requires GNU make.
3804
3805 2002-04-17  Jakub Jelinek  <jakub@redhat.com>
3806
3807         PR bootstrap/6315
3808         * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
3809         even if hard quad and register is not floating.
3810         (movtf reg<-mem split): Disallow splitting if hard quad and
3811         register is floating.
3812         (movtf mem<-reg split): Likewise.
3813         * config/sparc/sparc.c (fp_register_operand): New predicate.
3814         * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.
3815
3816 2002-04-17  Zack Weinberg  <zack@codesourcery.com>
3817
3818         * Makefile.in (PROTO_OBJS): Add cppdefault.o.
3819         (protoize.o): Take $(PREPROCESSOR_DEFINES) off command line.
3820         (unprotoize.o): Ditto.  Build from protoize.c.  Define
3821         UNPROTOIZE on command line.
3822         * protoize.c: Include cppdefault.h.  Delete include_defaults.
3823         (in_system_include_dir): Use cpp_include_defaults (defined in
3824         cppdefault.o).
3825         * unprotoize.c: Delete file.
3826
3827 2002-04-17  Aldy Hernandez  <aldyh@redhat.com>
3828
3829         * config/rs6000/altivec.h (vec_ld): Add array variants.
3830         (vec_lde): Same.
3831         (vec_ldl): Same.
3832
3833 2002-04-17  Alan Matsuoka  <alanm@redhat.com>
3834             Aldy Hernandez <aldyh@redhat.com>
3835
3836         * config/rs6000/altivec.h: Define __ALTIVEC__.
3837         (bool): New.
3838         (__pixel): New.
3839         (pixel): New.
3840         (vec_cfux): New.
3841         (vec_vmaddfp): New.
3842         (vec_vsldoi): New.
3843         Add parentheses to all macro arguments.
3844
3845 2002-04-16  Richard Henderson  <rth@redhat.com>
3846
3847         PR c++/6320
3848         * except.c (remove_eh_handler): Insert inner regions at beginning
3849         of sibling chain.  Refactor expressions.
3850
3851 2002-04-16  Richard Henderson  <rth@redhat.com>
3852
3853         * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New.
3854         * config/sparc/sol2-gas-bi.h: New file.
3855         * config.gcc (sparc*-solaris): Add it as needed.
3856         * configure.in (AS_SPARC64_FLAG): Remove check.
3857         * config.in, configure: Regenerate.
3858
3859         * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.
3860
3861 2002-04-16  Richard Henderson  <rth@redhat.com>
3862
3863         * config/mips/mips.c (override_options): Don't override N32 for
3864         a 64-bit ISA.
3865
3866         PR 6202
3867         * config/mips/mips.md (can_delay): Split out of existing define_delays.
3868         (HILO_delay): Set can_delay false.
3869
3870 2002-04-16  Dale Johannesen <dalej@apple.com>
3871
3872         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
3873         instruction addresses.
3874         (rs6000_output_function_epilogue): Likewise.
3875
3876 2002-04-16  Paolo Carlini  <pcarlini@unitus.it>
3877
3878         * c-parse.in (poplevel, compstmt_start,
3879         compstmt_primary_start): Add ending ';', in accordance
3880         with POSIX.
3881
3882 2002-04-16  Richard Henderson  <rth@redhat.com>
3883
3884         * config.gcc (sparcv9-solaris): Configure for 64-bit default.
3885         Adjust tm_file order to get TARGET_DEFAULT set properly.
3886         (sparc-solaris): Configure 2.[78] for 64-bit multilibs.
3887         * doc/install.texi (sparc-solaris): Update.
3888
3889 2002-04-16  Dale Johannesen <dalej@apple.com>
3890
3891         * config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of
3892         comparison operands do not match each other or if modes of
3893         conditions do not match result.
3894
3895 2002-04-16  Hartmut Penner <hpenner@de.ibm.com>
3896
3897         PR target/6305
3898         * config/s390/s390.md (mulsidi3): Set both subregs of the
3899         multiword register.
3900
3901 2002-04-16  Aldy Hernandez  <aldyh@redhat.com>
3902
3903         * config/rs6000/altivec.h (vec_addc): Type check.
3904
3905 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
3906
3907         PR middle-end/6279
3908         * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.
3909
3910         * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.
3911
3912 2002-04-15  Richard Henderson  <rth@redhat.com>
3913
3914         * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
3915         call_really_used_regs too.
3916
3917 2002-04-15  Richard Henderson  <rth@redhat.com>
3918
3919         * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.
3920
3921 2002-04-15  David S. Miller  <davem@redhat.com>
3922
3923         * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
3924         as being CLOBBERed.
3925
3926 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
3927
3928         PR c/6290
3929         * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
3930         CONST_VECTOR is { 0, ... 0 }.
3931
3932 2002-04-15  Loren J. Rittle  <ljrittle@acm.org>
3933
3934         * doc/install.texi (Installing GCC: Configuration): Clarify
3935         the only supported ways to configure gcc.
3936
3937 2002-04-15  Roland McGrath  <roland@frob.com>
3938
3939         * config.gcc (alpha*-*-gnu*): New target configuration.
3940         * config/alpha/gnu.h: New file for it.
3941         * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.
3942
3943 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
3944
3945         * c-common.h (STMT_EXPR_NO_SCOPE): New macro.
3946         * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
3947         * tree.h (expand_start_stmt_expr): Update prototype.
3948         * stmt.c (expand_start_stmt_expr): Add has_scope parameter.
3949         * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
3950         on the STMT_EXPR created for the inline function.
3951
3952 2002-04-15  Richard Henderson  <rth@redhat.com>
3953
3954         * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
3955         config/i386/linux-aout.h, config/i386/linux-oldld.h,
3956         config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
3957         config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
3958         config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
3959         config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
3960         config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
3961         Define __gnu_linux__, not gnu_linux.
3962         * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.
3963
3964 2002-04-15  Mark Mitchell  <mark@codesourcery.com>
3965
3966         Remove Chill front end.
3967         * gcc.c (default_compilers): Remove Chill entries.
3968         * ch: Remove directory.
3969         * doc/frontends.texi: Remove information about Chill.
3970         * doc/sourcebuild.texi: Likewise.
3971         * doc/standards.texi: Likewise.
3972
3973 2002-04-15  Douglas B Rupp  <rupp@gnat.com>
3974
3975         * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
3976         (LONGLONG_STANDALONE): Define.
3977
3978 2002-04-15  David S. Miller  <davem@redhat.com>
3979
3980         * config/sparc/sparc.c (sparc_emit_float_lib_cmp):
3981         Call emit_library_call with LCT_NORMAL.
3982         (sparc_initialize_trampoline): Use LCT_foo instead of
3983         magic constant in emit_library_call invocations.
3984         (sparc64_initialize_trampoline): Likewise.
3985         (sparc_profile_hook): Likewise.
3986         * config/sparc/sparc.md: Likewise.
3987
3988         * config/sparc/sparc.c (sparc_extra_constraint_check):
3989         Fix type of argument 'c'.
3990         * config/sparc/sparc-protos.h (sparc_extra_constraint_check):
3991         Likewise.
3992
3993 2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
3994
3995         * diagnostic.h (output_buffer_state): Redefine.
3996         (output_format_decoder): New macro.
3997         (output_prefixing_rule): Likewise.
3998         (output_line_cutoff): Likewise.
3999         (diagnostic_format_decoder): Adjust.
4000         (diagnostic_prefixing_rule): Likewise.
4001         (diagnostic_line_cutoff): Likewise.
4002         (diagnostic_state): Likewise.
4003         (diagnostic_kind_count): Likewise.
4004         (diagnostic_buffer): Now a macro.
4005
4006         * diagnostic.c (diagnostic_buffer): Remove definition.
4007         (output_is_line_wrapping): Adjust.
4008         (set_real_maximum_length): Likewise.
4009         (output_set_maximum_length): Likewise.
4010         (init_output_buffer): Likewise.
4011         (lhd_print_error_function): Likewise.
4012         (output_do_verbatim): Likewise.
4013
4014 2002-04-14  Neil Booth  <neil@daikokuya.demon.co.uk>
4015
4016         * cpperror.c (print_location): Don't print include chain
4017         if line == 0.
4018         (cpp_begin_message): Update to use DL_ macros.
4019         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
4020         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
4021         cpp_notice, cpp_notice_from_errno): Remove.
4022         (cpp_error, cpp_error_with_line): Update to take a diagnostic
4023         level.
4024         (cpp_errno): New.
4025         * cppexp.c (CPP_ICE): Remove.
4026         (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
4027         lex, integer_overflow, _cpp_parse_expr): Update.
4028         * cppfiles.c (read_include_file, find_include_file,
4029         handle_missing_header, _cpp_read_file, remap_filename): Update.
4030         * cpphash.h (enum error_type): Remove.
4031         (_cpp_begin_message): Update.
4032         * cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
4033         cpp_handle_option, cpp_post_options): Update.
4034         * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
4035         skip_whitespace, parse_identifier, parse_slow, parse_string,
4036         _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
4037         cpp_interpret_charconst): Update.
4038         * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
4039         lex_macro_node, do_undef, glue_header_name, parse_include,
4040         do_include_common, read_flag, do_line, do_linemarker, do_ident,
4041         cpp_register_pragma, do_pragma_once, do_pragma_system_header,
4042         do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
4043         do_elif, do_endif, parse_answer, parse_assertion, do_assert,
4044         _cpp_pop_buffer, do_diagnostic): Update.
4045         * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
4046         DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
4047         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
4048         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
4049         cpp_notice, cpp_notice_from_errno): Remove.
4050         (cpp_error, cpp_error_with_line): Update to take a diagnostic
4051         level.
4052         (cpp_errno): New.
4053         * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
4054         collect_args, enter_macro_context, save_parameter, parse_params,
4055         _cpp_create_definition, check_trad_stringification,
4056         cpp_macro_definition): Update.
4057         * cppmain.c (cpp_preprocess_file): Update.
4058         * fix-header.c (read_scan_file): Update.
4059
4060 2002-04-14  Andreas Schwab  <schwab@suse.de>
4061
4062         * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.
4063
4064 2002-04-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
4065
4066         * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.
4067
4068 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
4069
4070         * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
4071         not gnu_hurd.
4072
4073 2002-04-13  Hans-Peter Nilsson  <hp@axis.com>
4074
4075         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.
4076
4077 2002-04-13      Joel Sherrill <joel@OARcorp.com>
4078
4079         * config/sparc/t-elf: Enable v8 multilibs.  Impacts
4080         sparc-elf and sparc-rtems targets.
4081
4082 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
4083
4084         * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
4085         defined, and __gnu_hurd__ wherever __GNU__ is defined.
4086         * arm/linux-elf.h: Likewise.
4087         * cris/aout.h: Likewise.
4088         * cris/linux.h: Likewise.
4089         * i370/linux.h: Likewise.
4090         * i386/gnu.h: Likewise.
4091         * i386/linux-aout.h: Likewise.
4092         * i386/linux-oldld.h: Likewise.
4093         * i386/linux.h: Likewise.
4094         * i386/linux64.h: Likewise.
4095         * ia64/linux.h: Likewise.
4096         * m68k/linux-aout.h: Likewise.
4097         * m68k/linux.h: Likewise.
4098         * mips/linux.h: Likewise.
4099         * pa/pa-linux.h: Likewise.
4100         * pj/linux.h: Likewise.
4101         * rs6000/sysv4.h: Likewise.
4102         * s390/linux.h: Likewise.
4103         * sh/linux.h: Likewise.
4104         * sparc/linux-aout.h: Likewise.
4105         * sparc/linux.h: Likewise.
4106         * sparc/linux64.h: Likewise.
4107         * xtensa/linux.h: Likewise.
4108
4109 2002-04-13  Richard Sandiford  <rsandifo@redhat.com>
4110
4111         * stmt.c (check_unique_operand_names): Expect operand names to
4112         be strings rather than identifiers.  Use simple_cst_equal to
4113         compare them.
4114         (resolve_operand_name_1): Make same identifier to string change here.
4115         * c-parse.in (asm_operand): Convert a named operand into a string.
4116         * cp/parse.y (asm_operand): Likewise.
4117
4118 2002-04-13  Andreas Schwab  <schwab@suse.de>
4119
4120         * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
4121
4122 2002-04-12  Mark Mitchell  <mark@codesourcery.com>
4123
4124         Revert these changes:
4125
4126         2002-04-06  Mark Mitchell  <mark@codesourcery.com>
4127
4128         PR c++/5571
4129         * stor-layout.c (layout_decl): Reset the RTL for the decl.
4130
4131 2002-04-12  Richard Henderson  <rth@redhat.com>
4132
4133         * config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
4134         (sparc*-*-solaris): Clean up header files.
4135         * configure.in (AS_SPARC64_FLAG): Error out if can't find it
4136         and plan on generating 64-bit code.
4137         * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
4138         * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
4139         * config/sparc/sol2-sld-64.h: Rename ...
4140         * config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
4141         for AS_SPARC64_FLAG not defined.
4142         * config/sparc/sol2-gld-bi.h: New.
4143         * config/sparc/sol2-sld.h: Remove.
4144         * config/sparc/sol26-sld.h: New.
4145         * config/sparc/sol2.h: Tidy comments.
4146         * doc/install.texi: Document sparc-solaris configury changes.
4147
4148 2002-04-12  Richard Henderson  <rth@redhat.com>
4149
4150         * recog.c (offsettable_address_p): Match the logic in adjust_address.
4151
4152         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
4153         in 64-bit mode only.  Use only for 32-bit or MEDLOW.
4154
4155 2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4156
4157         * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
4158
4159 Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)
4160
4161         * pa.c (pa_can_combine_p): Call extract_insn before calling
4162         constrain_operands.
4163
4164 2002-04-12  Douglas B Rupp  <rupp@gnat.com>
4165
4166         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
4167         (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
4168         (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
4169         (CPP_PREDEFINES): Handle __declspec.
4170         * config/i386/t-interix (USER_H): Remove.
4171
4172 2002-04-12  DJ Delorie  <dj@redhat.com>
4173
4174         * integrate.c (compare_blocks): Make comparisons safe for when
4175         sizeof(int) < sizeof(char *).
4176         (find_block): Likewise.
4177
4178 2002-04-12  Jan Hubicka  <jh@suse.cz>
4179             David Edelsohn  <edelsohn@gnu.org>
4180
4181         * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
4182         registers.
4183         (symbol_ref_operand): New.
4184         * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
4185         * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.
4186
4187 2002-04-12  Andreas Schwab  <schwab@suse.de>
4188
4189         * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
4190         * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
4191         overrides the definition in config/svr4.h.
4192
4193 2002-04-12      Eric Norum <eric.norum@usask.ca>
4194
4195         * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
4196         config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
4197         config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
4198         config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
4199         config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
4200         config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
4201         config/v850/rtems.h (*-rtems*): Cleanup pass to move common
4202         definitions to config/rtems.h and make the targets more similar.
4203
4204 Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4205
4206         * expr.c (expand_assigment): Remove duplicate conversions #ifdef
4207         POINTERS_EXTEND_UNSIGNED.
4208         (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
4209         (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
4210
4211         * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
4212         not specified.
4213
4214 Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>
4215
4216         * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
4217         depends on TARGET_SHMEDIA, not TARGET_SH5.
4218
4219 2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>
4220
4221         * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
4222         For paradoxical (subreg VAR), replace VAR, don't try the subreg.
4223
4224 Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
4225
4226         * sh.c (broken_move): Constant 0. / 1. load is OK if there is
4227         no r0 clobber.
4228
4229 2002-04-12  Andreas Schwab  <schwab@suse.de>
4230
4231         * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
4232
4233 2002-04-12  Richard Henderson  <rth@redhat.com>
4234
4235         PR bootstrap/4191
4236         * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
4237
4238         * flow.c (mark_used_reg): Manage reg_cond_dead properly for
4239         modes spanning multiple hard regs.
4240
4241         * recog.c (peephole2_optimize): Rebuild jump labels as needed.
4242
4243 2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4244
4245         * pa.c (pa_output_function_prologue): Don't accumulate the total
4246         number of code bytes when using TARGET_64BIT, or gas, SOM and not
4247         the portable runtime.
4248         (output_deferred_plabels): Handle 64bit plabels.
4249         (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
4250         generating pic code using the GAS assembler for object formats that
4251         are not SOM (ie., ELF32 and ELF64).
4252         (output_millicode_call): Check attribute type if attribute length is 28.
4253         Likewise use $PIC_pcrel$0.  Only call get_attr_length and
4254         dbr_sequence_length once.
4255         (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
4256         dbr_sequence_length once.
4257         * pa.h (TARGET_SOM): Define if not defined.
4258         * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
4259         with GAS and not SOM.
4260         (jump, call_internal_reg, call_value_internal_reg): Likewise.
4261         * som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.
4262
4263 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
4264
4265         * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
4266         (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
4267         (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
4268         DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
4269         elfos.h and dbxelf.h values are fine now.
4270         * config/i386/freebsd.h, config/alpha/freebsd.h
4271         (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
4272
4273 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
4274
4275         * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
4276         or set Acpu or Amachine.  Reformat.
4277         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
4278         define.
4279         (LINK_SPEC): Do not need to undef.
4280         * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
4281         * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
4282         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
4283         define.
4284         * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
4285         (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
4286         (LINK_SPEC): Do not need to undef.
4287         (DONT_USE_BUILTIN_SETJMP): Do not define.
4288         * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
4289         (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
4290         (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
4291         Remove trailing spaces.
4292         * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
4293         __ELF__, or set Acpu or Amachine.  Reformat.
4294         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
4295         define.
4296
4297 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
4298
4299         * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
4300         all other *-*-freebsd* targets.
4301
4302 2002-04-11  Richard Henderson  <rth@redhat.com>
4303
4304         * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
4305
4306 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
4307
4308         * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
4309         Include {cpu}/{cpu}.h thru tm_file.
4310         (alpha*-*-linux*ecoff): Remove target.
4311         * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
4312         (LINK_SPEC): Remove, is not OS independent.
4313         * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
4314         (LINK_SPEC): Do not need to #undef any longer.
4315         * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
4316         any longer.
4317         * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
4318         __ELF__.
4319         (LINK_SPEC): Moved here from alpha/elf.h.
4320         * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
4321         SUB_CPP_PREDEFINES.
4322         * config/alpha/linux-ecoff.h: Remove.
4323         * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
4324         (CPP_SPEC): Define _POSIX_SOURCE as needed.
4325         (CPP_SUBTARGET_SPEC): Do not define.
4326         (LINK_SPEC): Do not need to #undef any longer.
4327         * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
4328         * config/alpha/vms.h: Likewise.
4329
4330 2002-04-11  Richard Sandiford  <rsandifo@redhat.com>
4331
4332         * doc/extend.texi: Remove old claim that typedefs cannot have
4333         an alignment attribute.
4334
4335 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
4336
4337         PR optimization/6177
4338         * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
4339         bitpos is 0 and bitsize CONCAT size.
4340
4341 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
4342
4343         PR c/6223
4344         * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
4345
4346 2002-04-10  David O'Brien  <obrien@FreeBSD.org>
4347
4348         * config/alpha/freebsd.h: Minor reformatting.
4349         (CPP_SPEC): Define ELF and add cpp_subtarget.
4350         (ASM_SPEC): No longer needed.
4351
4352 2002-04-11  Richard Henderson  <rth@redhat.com>
4353
4354         * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
4355         (movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
4356         (dimode mem/zero splitter): New.
4357
4358 2002-04-11  Hans-Peter Nilsson  <hp@axis.com>
4359
4360         * config/cris/cris.c (cris_override_options): Tweak error message
4361         for PIC not implemented.
4362
4363         * config/cris/cris.h: Tweak comments related to parameter-passing.
4364
4365         * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
4366
4367 2002-04-10  Richard Henderson  <rth@redhat.com>
4368
4369         * except.c (add_ehl_entry): Allow duplicates after landing pad
4370         creation.
4371
4372 2002-04-10  David Edelsohn  <edelsohn@gnu.org>
4373
4374         * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
4375
4376 2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>
4377
4378         * c-decl.c (c_init_decl_processing): Move generation of
4379         decls for g77_integer_type_node and friends from here ...
4380         * c-common.c (c_common_nodes_and_builtins): ... to here.
4381
4382 2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
4383
4384         * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
4385         is only used as frame pointer when frame_pointer_needed is true.
4386
4387 2002-04-10  Richard Earnshaw  <rearnsha@arm.com>
4388
4389         PR target/817
4390         * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
4391         for the fact that the pool entry uses two words.
4392         (movdf_hard_insn): Similarly.  Also, ADR instruction can span
4393         1k bytes.
4394         (movdf_soft_insn): Similarly.
4395         (movxf_hard_insn): Adjust neg_pool_range attribute to allow
4396         for the fact that the pool entry uses three words.
4397
4398 2002-04-10  Richard Sandiford  <rsandifo@redhat.com>
4399
4400         * config/mips/mips.c (mips_va_arg): When using the struct version
4401         of the EABI va_list, allow arguments in the register save area to
4402         take up less room than a stack argument.
4403
4404 2002-04-10  Richard Henderson  <rth@redhat.com>
4405
4406         * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
4407         if EXPAND_INITIALIZER.
4408
4409 2002-04-09  Richard Henderson  <rth@redhat.com>
4410
4411         * config/alpha/alpha.md (movdi_er_maybe_g): New.
4412         * config/alpha/alpha.c (alpha_expand_mov): Use it.
4413
4414 2002-04-10  Alan Modra  <amodra@bigpond.net.au>
4415
4416         PR optimization/6233
4417         * rtlanal.c (pure_call_p): New function.
4418         * rtl.h (pure_call_p): Declare.
4419         * loop.c (prescan_loop): Use it to set has_nonconst_call.
4420         * gcse.c (store_killed_in_insn): Use pure_call_p here too.
4421
4422 2002-04-09  Eric Christopher  <echristo@redhat.com>
4423
4424         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
4425         information to .comm directive.
4426
4427 2002-04-09  Richard Henderson  <rth@redhat.com>
4428
4429         PR c/5078
4430         * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
4431
4432 2002-04-09  Richard Henderson  <rth@redhat.com>
4433
4434         * basic-block.h (flow_delete_block_noexpunge): Declare.
4435         (expunge_block_nocompact): Declare.
4436         * cfg.c (expunge_block_nocompact): Split out from ...
4437         (expunge_block): ... here.
4438         * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
4439         (flow_delete_block_noexpunge): Split out from ...
4440         (flow_delete_block): ... here.
4441         * cfgcleanup.c (delete_unreachable_blocks): Compact while
4442         removing dead blocks.
4443         * except.c (exception_handler_labels): Remove.
4444         (exception_handler_label_map): New.
4445         (struct eh_region): Add aka member.
4446         (mark_ehl_map_entry, mark_ehl_map, free_region): New.
4447         (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
4448         (for_each_eh_label, for_each_eh_label_1): New.
4449         (init_eh): Register exception_handler_label_map.
4450         (free_eh_status): Use free_region.
4451         (find_exception_handler_labels): Use the map, not the list.
4452         (remove_exception_handler_label): Likewise.
4453         (maybe_remove_eh_handler): Likewise.
4454         (remove_eh_handler): Use the region aka bitmap.
4455         * except.h (exception_handler_labels): Remove.
4456         (for_each_eh_label): Declare.
4457         * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
4458         * loop.c (invalidate_loops_containing_label): New.
4459         (find_and_verify_loops): Use it.  Use for_each_eh_label.
4460         * sched-rgn.c (is_cfg_nonregular): Use
4461         current_function_has_exception_handlers.
4462
4463 2002-04-09  Richard Henderson  <rth@redhat.com>
4464
4465         * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
4466         sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
4467         Do not return changed status.
4468         (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
4469         sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
4470         New functions that do return changed status.
4471         * sbitmap.h: Update decls.
4472         * gcse.c, lcm.c: Use _cg functions as needed.
4473
4474 Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
4475
4476         * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
4477         (sh64-*-elf*, sh-*-rtemself*): Likewise.
4478         * config/sh/embed_bb.c: New file.
4479         * config/sh/embed-elf.h: New file.
4480         * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
4481         if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
4482         (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
4483         __PTRDIFF_TYPE__ .
4484         (SUBTARGET_CPP_PTR_SPEC): Don't define.
4485         (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
4486         Add subtarget_asm_endian_spec.
4487         (ASM_SPEC): Use subtarget_asm_endian_spec.
4488         (SUBTARGET_ASM_ENDIAN_SPEC): Define.
4489         (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
4490         (WCHAR_UNSIGNED): Define.
4491         (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
4492         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
4493         (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
4494         Fix value.
4495         * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
4496         (sh_adjust_cost): Likewise.
4497         sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
4498         __PTRDIFF_TYPE__ .
4499         (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
4500         (WCHAR_TYPE_SIZE): Likewise.
4501         (ASM_SPEC): Use subtarget_asm_endian_spec.
4502         (SH_ELF_WCHAR_TYPE): #undef/ #define.
4503         (MAX_WCHAR_TYPE_SIZE): Don't #undef.
4504         * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
4505         (MAX_WCHAR_TYPE_SIZE): Don't #define .
4506         (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
4507         (USER_LABEL_PREFIX): Don't #undef /#define .
4508         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
4509         * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
4510         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
4511         (ASM_SPEC): Likewise.
4512         (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
4513         (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
4514         * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
4515         (LIB2FUNCS_EXTRA): Define.
4516         * t-sh64 (LIB2FUNCS_EXTRA): Define.
4517         * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
4518         (LIB1ASMFUNCS_CACHE): Define.
4519         (LIB2FUNCS_EXTRA): Redefine empty.
4520
4521 2002-04-08  Richard Henderson  <rth@redhat.com>
4522
4523         * reorg.c (get_branch_condition): Use reversed_comparison_code.
4524
4525 2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4526
4527         * config/m68hc11/larith.asm (__map_data_section): Fix condition
4528         and optimize for size.
4529         (__do_global_ctors): Fix pointer comparison.
4530         (__do_global_dtors): Likewise.
4531
4532 2002-04-09  David S. Miller  <davem@redhat.com>
4533
4534         * config/sparc/sparc.c (sparc_extra_constraint_check): New
4535         function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
4536         allow reloading pseudos.
4537         * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
4538         * config/sparc/sparc-protos.h: Declare it.
4539
4540         * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
4541         unsigned comparison warning.
4542         (output_restore_regs): Mark leaf_function as unused.
4543
4544 Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4545
4546         * expr.c (is_aligning_offset): New function.
4547         (expand_expr, case COMPONENT_EXPR): Call it.
4548
4549 2002-04-08  David S. Miller  <davem@redhat.com>
4550
4551         PR target/6082
4552         * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
4553
4554         Make init_priority work on Sparc when using GNU ld.
4555         * config/sparc/linux.h, config/sparc/linux64.h,
4556         config/sparc/netbsd-elf.h, config/sparc/freebsd.h
4557         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
4558         * config/sparc/sol2-gld.h: New file to do the same.
4559         * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
4560         sparc/sol2-gld.h to tm_file.
4561
4562         PR optimization/4328
4563         * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
4564         * doc/md.texi: Document it.
4565         * config/sparc/sparc.md (movdi_insn_sp64_novis,
4566         movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
4567         movdf_insn_v9only_vis, movdf_insn_sp64_novis,
4568         movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
4569         * config/sparc/sparc.c (mem_min_alignment): Fix comment.
4570
4571 2002-04-08  Andreas Jaeger  <aj@suse.de>
4572
4573         * stmt.c (expand_asm_operands): Revert last patch from Richard
4574         Henderson.
4575
4576 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4577
4578         * doc/contrib.texi (Contributors): Add John David Anglin and Loren
4579         J. Rittle (the latter also to Testers).  Update David O'Brien's entry.
4580
4581 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4582
4583         * doc/contrib.texi (Contributors): Add David O'Brien.
4584
4585 2002-04-08  Alan Modra  <amodra@bigpond.net.au>
4586
4587         * configure.in (auto-build.h): Use target_alias and build_alias
4588         when running configure.
4589         (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
4590         (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
4591         * configure: Regenerate.
4592
4593 2002-04-07  David S. Miller  <davem@redhat.com>
4594
4595         * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
4596
4597 2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4598
4599         PR 5933
4600         * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
4601         generating 32-bit pic code.
4602
4603 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
4604
4605         * cppinit.c (cpp_create_reader): Initialize
4606         discard_comments_in_macro_exp.
4607         (COMMAND_LINE_OPTIONS): Add "-CC" option.
4608         (cpp_handle_option): Handle "-CC" option.
4609         * cpplex.c (save_comment): If saving a C++ comment in
4610         a directive, convert it to a C comment.
4611         (_cpp_lex_direct): Pass second comment start character to
4612         save_comment to indicate comment type.
4613         * cpplib.c (_cpp_handle_directive): If processing
4614         a "#define" directive and discard_comments_in_macro_exp
4615         is false,  re-enable saving of comments.
4616         (lex_macro_node): If discard_comments_in_macro_exp is false,
4617         discard any comments before the macro identifier.
4618         * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
4619         member.
4620         * cppmacro.c (cpp_get_token): If expanding a macro while
4621         processing a directive, discard any comments we might encounter.
4622         (parse_params): If discard_comments_in_macro_exp is false,
4623         ignore comments in the macro parameter list.
4624         * gcc.c (cpp_unique_options): Add "-CC" option.
4625         (option_map): Map "--comments-in-macros" to "-CC".
4626         * doc/cppopts.texi: Document "-CC" option.
4627         * f/lang-specs.h: Add "-CC" option.
4628         * testsuite/gcc.dg/cpp/maccom1.c: New test.
4629         * testsuite/gcc.dg/cpp/maccom2.c: New test.
4630         * testsuite/gcc.dg/cpp/maccom3.c: New test.
4631         * testsuite/gcc.dg/cpp/maccom4.c: New test.
4632         * testsuite/gcc.dg/cpp/maccom5.c: New test.
4633         * testsuite/gcc.dg/cpp/maccom6.c: New test.
4634
4635 2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4636
4637         PR middle-end/6180
4638         * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
4639
4640 2002-04-06  Mark Mitchell  <mark@codesourcery.com>
4641
4642         PR c++/5571
4643         * stor-layout.c (layout_decl): Reset the RTL for the decl.
4644
4645         PR opt/5120
4646         * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
4647         RTX_UNCHANGING_P for the functions arguments when a tail call
4648         is made.
4649
4650 2002-04-06  Jason Merrill  <jason@redhat.com>
4651
4652         * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
4653         (parse_options_and_default_flags): Set them appropriately.
4654         * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
4655
4656 2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>
4657
4658         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
4659         here.
4660
4661         * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
4662         semicolon.
4663
4664         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
4665         types come in by-reference.  Fix typo in comment.
4666
4667 2002-04-05  David S. Miller  <davem@redhat.com>
4668
4669         * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
4670         * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
4671         sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
4672         {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
4673
4674 2002-04-05  David S. Miller  <davem@redhat.com>
4675
4676         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
4677         are not going to emit return instructions, emit at least a nop
4678         for the sake of sane backtraces.
4679
4680 2002-04-05  Richard Henderson  <rth@redhat.com>
4681
4682         * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
4683
4684 2002-04-05  Jakub Jeilnek  <jakub@redhat.com>
4685
4686         * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
4687
4688 2002-04-05  Alexandre Oliva  <aoliva@redhat.com>
4689
4690         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
4691         ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
4692         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
4693
4694 2002-04-05  Andreas Schwab  <schwab@suse.de>
4695
4696         * c-convert.c: Include c-common.h.
4697         * Makefile.in (c-convert.o): Updated.
4698
4699 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
4700
4701         * mklibgcc.in: Use separate libgcc.map for each multilib.
4702         * Makefile.in (distclean): Don't remove libgcc.map here.
4703
4704 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
4705
4706         * Makefile.in (s-mlib): Handle --disable-multilib by separate
4707         genmultilib invocation.
4708
4709 2002-04-04  Richard Sandiford  <rsandifo@redhat.com>
4710
4711         * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
4712         to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
4713         to num_gprs for symmetry.
4714         * config/mips/mips.c: Adjust accordingly.
4715
4716 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
4717
4718         * c-common.c (truthvalue_conversion): Rename, update.
4719         * c-common.h (c_common_truthvalue_conversion): New.
4720         * c-convert.c (convert): Update.
4721         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
4722         * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
4723         * c-typeck.c (build_binary_op, build_unary_op,
4724         build_conditional_expr): Update.
4725         * fold-const.c (constant_boolean_node, fold): Use langhook.
4726         * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
4727         * langhooks.h (struct lang_hooks): New hook.
4728         * stmt.c (expand_decl_cleanup): Use langhook.
4729         * tree.h (truthvalue_conversion): Remove.
4730 objc:
4731         * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
4732
4733 2002-04-05  Alan Modra  <amodra@bigpond.net.au>
4734
4735         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
4736         Add rules to make null object file.
4737
4738 2002-04-04  Jim Blandy  <jimb@redhat.com>
4739
4740         * cppmacro.c (cpp_macro_definition): Do not emit spaces after
4741         macro formal parameter names.
4742
4743 2002-04-04  David S. Miller  <davem@redhat.com>
4744
4745         * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
4746
4747 2002-04-04  Richard Henderson  <rth@redhat.com>
4748
4749         PR middle-end/5099
4750         * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
4751         Support copies into and out of memory.  Don't accept allows_reg
4752         and allows_mem as gospel.
4753
4754 2002-04-04  Richard Henderson  <rth@redhat.com>
4755
4756         PR opt/6165
4757         * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
4758         (write_dependence_p): Likewise.
4759
4760 2002-04-04  Richard Henderson  <rth@redhat.com>
4761
4762         * predict.c (estimate_bb_frequencies): Do frequency calculation
4763         with a volatile temporary.
4764
4765 2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>
4766
4767         * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
4768
4769 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
4770
4771         PR c++/6119
4772         * final.c (final_start_function): Don't bump profile_label_no here...
4773         (final_end_function): ...but here.
4774
4775 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
4776
4777         * config/sparc/sparc.md (pic): New attribute.
4778         (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
4779         into stack slots.
4780         (split after do_builtin_setjmp_setup): New.
4781
4782 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
4783
4784         PR fortran/6106
4785         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
4786         change.
4787
4788 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
4789
4790         * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
4791         UNITS_PER_WORD for zero sized aggregates.
4792
4793 2002-04-03  David S. Miller  <davem@redhat.com>
4794
4795         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
4796         one-character spec for this, just use %(link_gcc_c_sequence).
4797
4798 2002-04-03  David S. Miller  <davem@redhat.com>
4799
4800         * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
4801         handling.
4802
4803 2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4804
4805         * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
4806         (DWARF_FRAME_RETURN_COLUMN): Move.
4807         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
4808         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
4809         * pa.c (except.h, predict.h): Include.
4810         (FRP): Delete.
4811         (store_reg_modify, set_reg_plus_d): Revise prototypes.
4812         (output_ascii): Add cast.
4813         (store_reg_modify): Revise to add frame notes.
4814         (set_reg_plus_d): Likewise.
4815         (compute_frame_size): Include space for eh data registers in frame if
4816         the current function calls eh_return.
4817         (hppa_expand_prologue):  Ensure register %r2 is saved if the current
4818         function calls eh_return.  Save eh data registers if the current
4819         function calls eh_return.  Fix code to add frame notes.  Emit
4820         blockage to prevent insns with frame notes being scheduled in the
4821         delay slot of calls.
4822         (hppa_expand_epilogue): Restore eh data registers and do final stack
4823         adjustment if the current function calls eh_return.  Don't add frame
4824         notes.
4825         (output_call): Revise for change in length of call insn.  Don't do
4826         return pointer adjustment for an unconditional jump in the delay slot
4827         of a call when using frame notes.
4828         * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
4829         (EH_RETURN_HANDLER_RTX): Use saved value on stack.
4830         (ARG_POINTER_CFA_OFFSET): Define.
4831         * pa.md (return_external_pic): New pattern.
4832         (prologue): Correct formatting.  Use return_external_pic if current
4833         function calls eh_return.
4834         (call_internal_symref, call_value_internal_symref,
4835         sibcall_internal_symref, sibcall_value_internal_symref): Change default
4836         lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
4837         respectively.
4838         (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
4839
4840         * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
4841         list of targets to check using "nop" insn.
4842         * configure: Rebuilt.
4843
4844 2002-04-04  Alan Modra  <amodra@bigpond.net.au>
4845
4846         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
4847
4848 2002-04-03  David S. Miller  <davem@redhat.com>
4849
4850         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
4851         library sequence passed to the linker.
4852         (LINK_COMMAND_SPEC): Use it.
4853         * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
4854         a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
4855         * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
4856
4857 2002-04-03  Jason Merrill  <jason@redhat.com>
4858
4859         * except.c (struct eh_status): Remove protect_list.
4860         (begin_protect_partials, end_protect_partials): Remove.
4861         (add_partial_entry): Remove.
4862         * except.h: Remove prototypes.
4863
4864         * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
4865         expand_decl_cleanup_eh.
4866
4867         PR c++/5636
4868         * tree.h (CLEANUP_EH_ONLY): New macro.
4869         * stmt.c (expand_decl_cleanup_eh): New fn.
4870         (expand_cleanups): Check CLEANUP_EH_ONLY.
4871         * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
4872         Use expand_decl_cleanup_eh.
4873         (expand_stmt): Adjust.
4874         * c-common.h: Adjust prototype.
4875
4876 2002-04-04  Hans-Peter Nilsson  <hp@axis.com>
4877
4878         * config/cris/cris.c (cris_target_asm_function_prologue): Cast
4879         uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
4880         (cris_target_asm_function_epilogue): Ditto.
4881         (cris_initial_frame_pointer_offset): Ditto.
4882         (cris_simple_epilogue): Ditto.
4883         (cris_expand_builtin_va_arg): Variable-size types come in
4884         by-reference.
4885
4886 2002-04-03  David S. Miller  <davem@redhat.com>
4887
4888         * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
4889         little-endian.
4890         (set_fast_math): Correct 'fsr' type.
4891
4892 2002-04-03  Richard Henderson  <rth@redhat.com>
4893
4894         PR opt/3569
4895         * langhooks.h (lang_hooks.decls.warn_unused_global): New.
4896         * toplev.c (check_global_declarations): Use it.
4897         * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
4898         (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
4899         (LANG_HOOKS_DECLS): Add it.
4900         * langhooks.c (lhd_warn_unused_global_decl): New.
4901         * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
4902         * c-objc-common.c (c_warn_unused_global_decl): New.
4903         * c-tree.h (c_warn_unused_global_decl): Declare.
4904         * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
4905
4906 2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
4907
4908         * langhooks-def.h (lhd_set_decl_assembler_name,
4909         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
4910         (LANG_HOOKS_INITIALIZER): Update.
4911         * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
4912         * langhooks.h (struct lang_hooks): New hook.
4913         * tree.c (set_decl_assembler_name): Move to langhooks.c.
4914         (lang_set_decl_assembler_name): Remove.
4915         (init_obstacks): Don't set hook.
4916         (decl_assembler_name): New function.
4917         * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
4918         (decl_assembler_name): New.
4919         (lang_set_decl_assembler_name): Remove.
4920
4921 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
4922
4923         * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
4924         works properly with .hidden symbols.
4925         * configure: Rebuilt.
4926         * config.in: Rebuilt.
4927         * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
4928         DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
4929         properly with .hidden symbols.
4930
4931 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
4932
4933         PR middle-end/6102
4934         * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
4935         USE argument.
4936
4937 2002-04-03  Richard Henderson  <rth@redhat.com>
4938
4939         PR opt/4120
4940         * sched-rgn.c (sets_likely_spilled): New.
4941         (sets_likely_spilled_1): New.
4942         (add_branch_dependences): Use it.
4943
4944 2002-04-02  Richard Henderson  <rth@redhat.com>
4945
4946         PR opt/4311
4947         * loop.h (LOOP_FIRST_PASS): New.
4948         * loop.c (strength_reduce): Mind it when deciding to unroll.
4949         * toplev.c (rest_of_compilation): Set it.
4950
4951 2002-04-02  David S. Miller  <davem@redhat.com>
4952
4953         * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
4954         mems_ok_for_ldd_peep when the order of the loads being examined
4955         is reversed.
4956         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
4957         existing comment to increase comprehension of this situation.
4958
4959 2002-04-02  Zack Weinberg  <zack@codesourcery.com>
4960
4961         * config/sh/sh.md: Don't use union real_extract.
4962
4963 2002-04-02  Richard Henderson  <rth@redhat.com>
4964
4965         * libgcc2.c (__bb_exit_func): Revert 03-31 change.
4966
4967 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
4968
4969         * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
4970         i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
4971         i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
4972         i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
4973         i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
4974         i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
4975         i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
4976         i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
4977         i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
4978         i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
4979         i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
4980         i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
4981         i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
4982         i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
4983         Include as many configury headers via tm_file as possible.  This
4984         includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
4985         * config/openbsd-oldgas.h: New file.
4986         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
4987         config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
4988         config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
4989         config/i386/i386-coff.h, config/i386/i386-interix.h,
4990         config/i386/iscdbx.h, config/i386/linux-aout.h,
4991         config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
4992         config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
4993         config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
4994         config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
4995         config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
4996         config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
4997         config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
4998         config/i386/vxi386.h: Do not directly include configury headers.
4999         * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
5000         Directly include configury headers that are no longer automatically
5001         included by the above headers.
5002         * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
5003         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
5004         config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
5005         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
5006         config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
5007         config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
5008         config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
5009         (TARGET_VERSION): Define.
5010         * config/i386/beos-elf.h, config/i386/freebsd.h,
5011         config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
5012         config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
5013         config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
5014         config/i386/sco5.h, config/i386/sysv4.h
5015         (TARGET_VERSION): Do not need to protect.
5016         * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
5017         * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
5018         config/i386/freebsd-aout.h, config/i386/i386-aout.h,
5019         config/i386/i386-interix.h, config/i386/linux-aout.h,
5020         config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
5021         config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
5022         (YES_UNDERSCORES): Do not define - not needed.
5023         * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
5024         ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
5025         USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
5026         * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
5027         (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
5028         USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
5029         * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
5030         * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
5031
5032 2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
5033             Richard Henderson  <rth@redhat.com>
5034
5035         PR c/5484
5036         * function.c (assign_temp): Accept either type or decl argument.
5037         Detect variables whose size is too large to fit into an integer.
5038         * stmt.c (expand_decl): Pass the decl, not the type.
5039
5040 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
5041
5042         * protoize.c: Match include directory usage with cppdefault.c.
5043
5044 2002-04-03  Jeffrey A Law  (law@redhat.com)
5045             Hans-Peter Nilsson  <hp@bitrange.com>
5046
5047         * combine.c (simplify_comparison): Avoid narrowing a comparison
5048         with a paradoxical subreg when doing so would drop signficant bits.
5049
5050 2002-04-02  Steve Ellcey  <sje@cup.hp.com>
5051
5052         * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
5053         if POINTERS_EXTEND_UNSIGNED is defined.
5054
5055 2002-04-02  Richard Henderson  <rth@redhat.com>
5056
5057         PR opt/3967
5058         * local-alloc.c (contains_replace_regs): LO_SUM may contain
5059         replace regs.
5060
5061 2002-04-02  Richard Henderson  <rth@redhat.com>
5062
5063         * doc/standards.texi: Document required freestanding libc entry points.
5064
5065 2002-04-02  Alan Modra  <amodra@bigpond.net.au>
5066
5067         * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
5068         associated splitter.  Remove MQ constraint.
5069         (ctrdi_internal4): Correct CCmode clobber.
5070
5071 2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5072
5073         * milli64.S ($$dyncall): New function.
5074         * t-linux (LIB1ASMFUNCS): Revise module list.
5075         (LIB1ASMSRC): Use pa/milli64.S.
5076
5077 2002-04-02  Richard Henderson  <rth@redhat.com>
5078
5079         * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
5080         rename solaris_sys_varargs_h.
5081
5082 Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5083
5084         * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
5085         the same mode as its component.
5086
5087 2002-04-02  Richard Henderson  <rth@redhat.com>
5088
5089         PR opt/190
5090         * final.c (this_is_asm_operands): Export.
5091         * output.h (this_is_asm_operands): Declare.
5092         * config/i386/i386.c (print_operand): Error odd asm operands.
5093
5094 2002-04-02  Richard Henderson  <rth@redhat.com>
5095
5096         PR opt/420
5097         * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
5098
5099 2002-04-01  Richard Henderson  <rth@redhat.com>
5100
5101         PR target/1538
5102         * fixinc/inclhack.def (solaris_sys_varargs_h): New.
5103         * fixinc/fixincl.x: Rebuild.
5104
5105 2002-04-01  Richard Henderson  <rth@redhat.com>
5106
5107         * config/ia64/unwind-ia64.c: Include ia64intrin.h.
5108         (atomic_alloc, atomic_free): New.
5109         (SIZE, MASK_FOR, PTR_IN): New.
5110         (emergency_reg_state, emergency_reg_state_free): New.
5111         (emergency_labeled_state, emergency_labeled_state_free): New.
5112         (reg_state_alloced, labeled_state_alloced): New.
5113         (alloc_reg_state, free_reg_state): New.
5114         (alloc_label_state, free_label_state, free_label_states): New.
5115         (push, pop, dup_state_stack, free_state_stack): Use them.
5116         (desc_label_state): Likewise.
5117         (uw_frame_state_for): Free label states and state stack.
5118         (uw_update_reg_address): Eliminate warnings.
5119
5120 2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>
5121
5122         * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
5123         ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
5124
5125 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
5126
5127         * c-decl.c (grokdeclarator): Update.
5128         * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
5129         * c-tree.h (c_mark_addressable): New.
5130         * c-typeck.c (default_function_array_conversion, build_unary_op,
5131         build_array_ref, convert_for_assignment): Update.
5132         (mark_addressable): Rename.
5133         * calls.c (try_to_integrate, expand_call): Use langhook.
5134         * expr.c (expand_expr): Use langhook.
5135         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
5136         * langhooks.h (struct lang_hooks): New hook.
5137         * stmt.c (expand_asm_operands): Use langhook.
5138         * tree.h (mark_addressable): Remove.
5139 objc:
5140         * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
5141
5142 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
5143
5144         * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
5145         in previous change.
5146
5147 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
5148
5149         * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
5150         for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
5151
5152 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
5153
5154         * c-common.c (unsigned_conversion_warning, convert_and_check,
5155         unsigned_type, signed_type, shorten_compare,
5156         c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
5157         (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
5158         * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
5159         New.
5160         * c-decl.c (grokdeclarator): Update.
5161         * c-format.c (check_format_types): Update.
5162         * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
5163         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
5164         * c-typeck.c (build_binary_op, convert_for_assignment): Update.
5165         * convert.c (convert_to_integer): Use new hooks.
5166         * expmed.c (make_tree): Use new hooks.
5167         * expr.c (store_expr): Use new hooks.
5168         * fold-const.c (operand_equal_for_comparison_p, build_range_check,
5169         all_ones_mask_p, unextend, fold): Use new hooks.
5170         * langhooks.h (struct lang_hooks_for_types): New hooks.
5171         * tree.h (signed_or_unsigned_type, signed_type,
5172         unsigned_type): Remove.
5173 objc:
5174         * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
5175         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
5176
5177 2002-03-31  Richard Henderson  <rth@redhat.com>
5178
5179         * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
5180         (desc_frgr_mem): Fix reference to f16-f31.
5181
5182 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5183
5184         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
5185         RTVEC_ELT): Const-ify.
5186         * varray.h (VARRAY_CHECK): Const-ify.
5187         * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
5188         ggc_mark_rtvec, ggc_mark): Const-ify.
5189
5190 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
5191
5192         * diagnostic.c: Include langhooks-def.h.
5193         * Makefile.in (diagnostic.o): Update.
5194
5195 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
5196
5197         * c-common.c (c_unsafe_for_reeval): Rename.
5198         * c-common.h (c_unsafe_for_reeval): Rename.
5199         * c-decl.c (finish_incomplete_decl): Rename.
5200         (c_init_decl_processing): Don't set langhook.
5201         * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
5202         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
5203         * c-objc-common.c (c_objc_common_init): Don't set langhook.
5204         * c-tree.h (finish_incomplete_decl): Rename.
5205         * langhooks-def.h (lhd_unsafe_for_reeval): New.
5206         (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
5207         (LANG_HOOKS_INITIALIZER): Update.
5208         * langhooks.c (lhd_unsafe_For_reeval): New.
5209         * langhooks.h (struct langhooks): New hooks.
5210         * toplev.c (incomplete_decl_finalize_hook): Remove.
5211         (wrapup_global_declarations): Update.
5212         * tree.c (lang_unsafe_for_reeval): Remove.
5213         (unsafe_for_reeval): Update.
5214         * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
5215         Remove.
5216 objc:
5217         * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
5218         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
5219
5220 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
5221
5222         * diagnostic.c (print_error_function): Remove.
5223         (default_print_error_function): Rename.
5224         (report_error_function): Update.
5225         * diagnostic.h (print_error_function): Remove.
5226         (default_print_error_function): Remove.
5227         * langhooks-def.h (struct diagnostic_context): Predeclare.
5228         (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
5229         (LANG_HOOKS_INITIALIZER): Update.
5230         * langhooks.h (struct diagnostic context): Predeclare.
5231         (struct lang_hooks): New hook.
5232
5233 2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5234
5235         * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
5236         (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
5237         !flag_pic.
5238         (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
5239         * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
5240         of PIC_OFFSET_TABLE_REGNUM thruout.
5241         * config/rs6000/rs6000.md: Likewise.
5242         * config/rs6000/darwin.h: Likewise.
5243
5244 Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5245
5246         * emit-rtl.c (adjust_address_1, offset_address): Cast value to
5247         unsigned HOST_WIDE_INT, not unsigned int.
5248
5249 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
5250
5251         PR middle-end/6096, middle-end/6098, middle-end/6099
5252         * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
5253         CODE_LABELs.
5254         (fill_slots_from_thread): Likewise.
5255
5256 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
5257
5258         * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
5259         floating fields in float regs.
5260         (function_arg_record_value_2): Likewise.
5261
5262 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
5263
5264         * config/mmix/mmix.md (define_constants): Remove misleading
5265         FIXME.  Add MMIX_fp_rO_OFFSET.
5266         ("nonlocal_goto_receiver"): Don't have stack-frame address of
5267         saved rO as part of the pattern.  Remove FIXME.
5268         ("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
5269         here, at output-time.
5270
5271 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
5272
5273         PR middle-end/6100
5274         * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
5275         REG_BR_PRED.
5276         (output_v9branch): Likewise.
5277
5278 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
5279
5280         * gcc.c: Revert previous patch for now.
5281         * config/i386/djgpp.h: Likewise.
5282
5283 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
5284
5285         * config/mmix/crti.asm (_init): Register _fini with atexit.
5286         * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
5287
5288 2002-03-31  Richard Henderson  <rth@redhat.com>
5289
5290         PR target/3997
5291         * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
5292         (ASM_OUTPUT_DEF_FROM_DECLS): New.
5293
5294 2002-03-31  Richard Henderson  <rth@redhat.com>
5295
5296         * libgcc2.c (__bb_exit_func): Make static.
5297
5298         * config/alpha/alpha.md (trap): New.
5299
5300 2002-03-31  Richard Henderson  <rth@redhat.com>
5301
5302         * builtins.c (expand_builtin_va_arg): Give warnings not errors for
5303         promoted argument types; build trap.
5304         (expand_builtin_trap): New.
5305         (expand_builtin): Use it.
5306         * stmt.c (expand_nl_goto_receivers): Likewise.
5307         * expr.h (expand_builtin_trap): Declare.
5308         * libfuncs.h (LTI_abort, abort_libfunc): New.
5309         * optabs.c (init_optabs): Init abort_libfunc.
5310
5311 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
5312
5313         * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
5314         (LINK_COMMAND_SPEC): ... from here.
5315         (init_gcc_specs): Duplicate it here too, omitting
5316         shared_name in the second copy.
5317         (init_spec): Test for duplicate
5318         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
5319
5320 2002-03-30  David S. Miller  <davem@redhat.com>
5321
5322         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
5323         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
5324
5325 2002-03-30  Roger Sayle <roger@eyesopen.com>
5326             Richard Henderson  <rth@redhat.com>
5327
5328         * regmove.c (combine_stack_adjustments_for_block): Avoid
5329         emitting a stack adjustment of zero bytes.  Let delete_insn
5330         update bb->head.
5331
5332 2002-03-30  Richard Henderson  <rth@redhat.com>
5333
5334         * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
5335         (sparc_emitting_epilogue): New.
5336         (leaf_label, output_return, sparc_return_peephole_ok): Remove.
5337         * config/sparc/sparc-protos.h: Update.
5338         * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
5339         (TARGET_SWITCHES): Update.
5340         * config/sparc/sparc.md (return): Remove.
5341         (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
5342         * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
5343         config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
5344         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
5345         config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
5346         config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
5347         config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
5348         Remove MASK_EPILOGUE.
5349         * doc/invoke.texi: Update.
5350
5351 2002-03-30  Daniel Berlin  <dan@dberlin.org>
5352
5353         * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
5354         CPP will start the file for us.
5355
5356 2002-03-30  Richard Henderson  <rth@redhat.com>
5357
5358         PR target/5446
5359         * config/ia64/ia64.c (group_barrier_needed_p): Special case
5360         prologue_allocate_stack.
5361         (ia64_single_set): Use insn codes for recognition of special
5362         cases, not rtl matching.
5363         * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
5364
5365 Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>
5366
5367         * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
5368
5369 2002-03-30  Richard Henderson  <rth@redhat.com>
5370
5371         PR target/6032
5372         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
5373         or -fomit-frame-pointer with profiling.
5374         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
5375         (FUNCTION_PROFILER): Do nothing.
5376         (PROFILE_HOOK): New.
5377         * config/sparc/sparc.c (sparc_override_options): Don't check
5378         code models for profiling.
5379         (sparc_function_profiler): Remove.
5380         (sparc_profile_hook): New.
5381         * config/sparc/sparc-protos.h: Update.
5382
5383 2002-03-30  Jakub Jelinek  <jakub@redhat.com>
5384
5385         PR optimization/6086
5386         * combine.c (combine_simplify_rtx): If simplify_rtx failed because
5387         of SUBREG of volatile MEM or because the MEM was mode dependent,
5388         return CLOBBER instead of unmodified SUBREG.
5389
5390 Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
5391
5392         * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
5393         when not optimizing.
5394
5395         * toplev.c (rest_of_compilation): Cann mark_constant_function
5396         only when optimizing.
5397
5398         * flow.c (calculate_global_regs_live): Ensure that all AUX fields
5399         are NULL.
5400
5401         * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
5402         (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
5403         (try_optimize_cfg): clear all AUX fields.
5404
5405         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
5406         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
5407         (ix86_address_cost): Be prepared for SUBREGed registers.
5408         (legitimate_address_p): Accept SUBREGed registers.
5409
5410 2002-03-29  Richard Henderson  <rth@redhat.com>
5411
5412         PR target/5672
5413         * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
5414
5415 2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5416
5417         * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
5418         for aggregate and TFmode types.
5419
5420 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
5421
5422         * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
5423
5424 2002-03-29  Richard Henderson  <rth@redhat.com>
5425
5426         PR target/5886
5427         * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
5428         * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
5429
5430 2002-03-29  Richard Henderson  <rth@redhat.com>
5431
5432         PR target/6041
5433         * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
5434         (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
5435         * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
5436         * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
5437         conditional.
5438         * docs/invoke.texi: Update -mno-fancy-math-387 docs.
5439
5440 2002-03-29  Dale Johannesen <dalej@apple.com>
5441
5442         * loop.c (combine_movables): Do allow combination of pseudos.
5443
5444 2002-03-29  Loren J. Rittle  <ljrittle@acm.org>
5445
5446         * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
5447         * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
5448         No functional change except ...
5449         * config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
5450         * doc/install.texi (*-*-freebsd*): Document port configuration.
5451
5452 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
5453
5454         * Makefile.in (convert.o, calls.o, expmed.o): Update.
5455         * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
5456         Use new hooks.
5457         * builtin-types.def (BT_PTRMODE): Update.
5458         * c-common.c (type_for_size): Rename c_common_type_for_size.
5459         (type_for_mode): Similarly.
5460         (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
5461         Use new hook.
5462         * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
5463         * c-decl.c (finish_enum, build_enumerator): Use new hooks.
5464         * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
5465         Redefine.
5466         * c-typeck.c (common_type, comptypes, default_conversion):
5467         Use new hooks.
5468         * calls.c: Include langhooks.h.
5469         (emit_library_call_value_1): Use new hooks.  Avoid redundant
5470         calls.
5471         * convert.c: Include langhooks.h
5472         (convert_to_pointer, convert_to_integer): Use new hooks.
5473         * except.c (init_eh): Similarly.
5474         * expmed.c: Include langhooks.h.
5475         (expand_mult_add): Use new hooks.
5476         * expr.c (store_expr, store_constructor, expand_expr, do_jump,
5477         try_casesi): Similarly.
5478         * fold-const.c (optimize_bit_field_compare, make_range,
5479         decode_field_reference, fold_truthop, fold): Similarly.
5480         * function.c (assign_stack_local_1, assign_stack_temp_for_type,
5481         put_var_into_stack): Similarly.
5482         * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
5483         LANG_HOOKS_TYPE_FOR_SIZE): New.
5484         (LANG_HOOKS_TYPES_INITIALIZER): Update.
5485         * langhooks.h (lang_hooks_for_types): New hooks.
5486         * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
5487         * tree.c (get_unwidened, get_narrower): Similarly.
5488         * tree.h (type_for_mode, type_for_size): Remove.
5489         * varasm.c (force_const_mem): Use new hooks.
5490         * utils2.c (nonbinary_modular_operation): Update.
5491 objc:
5492         * objc-act.c (handle_impent): Update.
5493         * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
5494         Redefine.
5495
5496 2002-03-29  Steve Ellcey  <sje@cup.hp.com>
5497
5498         * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
5499         * config/ia64/ia64.c (basereg_operand): New.
5500         * config/ia64/ia64-protos.h (basereg_operand): Declare.
5501         * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
5502
5503 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
5504
5505         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
5506         unwind information when frame_pointer_needed.
5507         (mmix_assemble_integer): Tweak wording in comment.
5508
5509 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
5510
5511         * Makefile.in (except.o): Update.
5512         * except.c: Include langhooks.h.
5513         (init_eh): Use langhook.
5514         * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
5515         LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
5516         (LANG_HOOKS_INITIALIZER): Update.
5517         * langhooks.h (lang_hooks_for_types): New.
5518         (struct lang_hooks): Add it.
5519         * tree.c (make_lang_type_fn, make_lang_type): Remove.
5520         * tree.h (make_lang_type_fn, make_lang_type): Remove.
5521 config:
5522         * alpha/alpha.c: Include langhooks.h.
5523         (alpha_build_va_list): Use langhook.
5524         * d30v/d30v.c: Include langhooks.h.
5525         (d30v_build_va_list): Use langhook.
5526         * i386/i386.c: Include langhooks.h.
5527         (ix86_build_va_list): Use langhook.
5528         * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
5529         * s390/s390.c: Include langhooks.h.
5530         (s390_build_va_list): Use langhook.
5531         * stormy16/stormy16.c: Include langhooks.h.
5532         (stormy16_build_va_list): Use langhook.
5533
5534 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
5535
5536         PR c++/5964
5537         * config/sparc/sparc.md (empty_delay_slot, branch_type): New
5538         attributes.
5539         (length): Compute variable length for branches/calls/jumps here.
5540         (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
5541         normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
5542         define branch_type attribute.
5543         (divsi3_sp32): Maximum length is 6 not 7.
5544         (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
5545         call_address_untyped_struct_value_sp32,
5546         call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
5547         * config/sparc/sparc.c (empty_delay_slot): New function.
5548         * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
5549         * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
5550
5551 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
5552
5553         * combine.c (set_nonzero_bits_and_sign_copies): Don't call
5554         nonzero_bits if not needed.
5555         (nonzero_bits) [XOR]: Likewise.
5556         (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
5557         reg_last_set_mode and mode are both MODE_INT, but not equal.
5558         (record_value_for_reg): Compute reg_last_set_nonzero_bits
5559         in nonzero_bits_mode for MODE_INT modes.
5560
5561 2002-03-28  Richard Henderson  <rth@redhat.com>
5562
5563         PR target/5715
5564         * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
5565         to GAS.  Correct drift between alternatives.
5566
5567 2002-03-28  Richard Henderson  <rth@redhat.com>
5568
5569         PR target/6087
5570         * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
5571
5572 2002-03-28  Alexandre Oliva  <aoliva@redhat.com>
5573
5574         * config/i386/freebsd.h (LINK_SPEC): Don't pass default
5575         emulation to the linker.
5576
5577 2002-03-28  Loren J. Rittle  <ljrittle@acm.org>
5578
5579         * config/alpha/freebsd.h (LINK_SPEC): Likewise.
5580         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
5581
5582 Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)
5583
5584         * combine.c (simplify_and_const_int): Make sure to apply mask
5585         when force_to_mode returns a constant integer.  PR3311.
5586
5587 2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5588
5589         * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
5590
5591 2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5592
5593         * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
5594         and Objective-C Dialect Options.
5595
5596 2002-03-28  Richard Henderson  <rth@redhat.com>
5597
5598         * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
5599         comparison should be done vs !=0 not >0 return code.  Tidy cases.
5600
5601 2002-03-28  Richard Henderson  <rth@redhat.com>
5602
5603         * c-decl.c (finish_function): New arg can_defer_p.  Pass it
5604         on to c_expand_body.
5605         * c-tree.h (finish_function): Update decl.
5606         * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
5607
5608 Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>
5609
5610         * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
5611
5612 Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>
5613
5614         * rtlanal.c: Include flags.h
5615         (may_trap_p): Do not mark FP operations if trapping
5616         if !flag_trapping_math
5617         * Makefile.in (rtlanal.o): Add dependency on flag.h
5618         * ifcvt.c (noce_operand_ok): Avoid the lameness.
5619
5620 2002-03-27  Zack Weinberg  <zack@codesourcery.com>
5621
5622         * mips.md: Use dconst1, not 1.0, as first argument of
5623         REAL_VALUE_LDEXP.  Don't use union real_extract.
5624
5625 2002-03-28  Alan Modra  <amodra@bigpond.net.au>
5626
5627         * configure.in (gcc_cv_as): Use $target_alias in directory searchs
5628         rather than $target.  Heed program_prefix and
5629         program_transform_name.  Search for gas in cross-compiler case too.
5630         "test -x" rather than "test -f".
5631         (gcc_cv_ld): Likewise.
5632         (gcc_cv_nm): Heed program_prefix and program_transform_name.
5633         (gcc_cv_objdump): Likewise.
5634         * configure: Regenerate.
5635
5636 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
5637
5638         * Makefile.in (attribs.o): Update.
5639         * attribs.c: Include langhooks.h.
5640         (decl_attributes): Use langhook.
5641         * c-decl.c (insert_default_attributes): Rename.
5642         * c-tree.h (c_insert_default_attributes): New.
5643         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
5644         (LANG_HOOKS_INITIALIZER): Update.
5645         * langhooks.h (struct lang_hooks): New hook.
5646         * tree.h (insert_default_attributes): Remove.
5647 objc:
5648         * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
5649
5650 2002-03-27  Andreas Schwab  <schwab@suse.de>
5651
5652         * config/i386/i386.c (classify_argument): Also check for
5653         QUAL_UNION_TYPE.
5654
5655 2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5656
5657         * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
5658         any more.
5659
5660 Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>
5661
5662         * i960.md (ret): Set PC.
5663         (nonlocal_goto): Fix expander.
5664         * builtins.c (epxand_builin_longjmp): Check that we've emitted
5665         some jump or call.
5666
5667 Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>
5668
5669         * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
5670         of libcall regions.
5671
5672 Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
5673
5674         * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
5675         assigning to BLOCK_FOR_INSN directly.
5676
5677 Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>
5678
5679         * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
5680
5681 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
5682
5683         * c-common.c (c_expand_expr): Fix prototype.
5684         * c-common.h (c_expand_expr): Always declare, update.
5685         * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
5686         * c-objc-common.c (c_objc_common_init): No global hook.
5687         * expr.c (expand_expr): Use langhook.
5688         * expr.h (enum expand_modifier): Conditionally declare.
5689         * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
5690         (LANG_HOOKS_INITIALIZER): Update.
5691         * langhooks.c (lhd_expand_expr): New.
5692         * langhooks.h (struct lang_hooks): New hook.
5693         * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
5694         (lang_independent_init): Don't default hook.
5695 objc:
5696         * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
5697
5698 2002-03-27  Richard Henderson  <rth@redhat.com>
5699
5700         PR target/6054
5701         * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
5702         TARGET_CONST_GP.  Simplify conditions.
5703
5704 2002-03-27  Richard Henderson  <rth@redhat.com>
5705
5706         * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
5707         config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
5708         config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
5709
5710 2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>
5711
5712         * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
5713         TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
5714         (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
5715         Remove unnecessary masks.
5716         (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
5717         (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
5718         -mwindows, -mdll switches and their negations.
5719
5720 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
5721
5722         * gcc-common.c (lang_mark_false_label_stack): Remove.
5723         * ggc.h (lang_mark_false_label_stack): Similarly.
5724
5725 2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>
5726
5727         * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
5728
5729         * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
5730         or __rtems_ is defined.
5731
5732 2002-03-26  Richard Henderson  <rth@redhat.com>
5733
5734         * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
5735         if a non-trivial load was emitted.
5736         (alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
5737         in high+extra+low case.
5738
5739 2002-03-26  Richard Henderson  <rth@redhat.com>
5740
5741         * config.gcc (sparc*-solaris): Use float_format=sparc.
5742
5743 2002-03-26  Richard Henderson  <rth@redhat.com>
5744
5745         * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
5746         * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
5747         * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
5748         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
5749         (WINT_TYPE_SIZE): Fix at 32.
5750
5751 2002-03-26  Richard Henderson  <rth@redhat.com>
5752
5753         * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
5754         until after eh landing pad generation.
5755         * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
5756         * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
5757
5758 2002-03-26  Richard Henderson  <rth@redhat.com>
5759
5760         * expr.h (ADD_PARM_SIZE): One more convert for INC.
5761
5762 2002-03-26  Phil Edwards  <pme@gcc.gnu.org>
5763
5764         * gcc.c (cpp_options):  Preserve relative ordering of -pedantic
5765         and warning switches.
5766         (cc1_options):  Likewise.
5767
5768 2002-03-26  Hans Boehm <Hans_Boehm@hp.com>
5769
5770         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
5771         Restore more of the signal context.  Set no_reg_stack_frame.
5772         * config/ia64/unwind-ia64.c (unw_state_record):
5773         Add no_reg_stack_frame, comments.
5774         (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
5775         (uw_update_context): Adjust bsp when unwinding from leaf,
5776         but not signal frame.
5777
5778 2002-03-26  David Edelsohn  <edelsohn@gnu.org>
5779
5780         * config/rs6000/aix51.h (WCHAR_TYPE): Define.
5781
5782 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
5783
5784         * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
5785
5786 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
5787
5788         PR target/5621
5789         * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
5790         "Add a pool_range attribute", which was lost during the ARM/Thumb
5791         merge.
5792
5793 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
5794
5795         * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
5796         a register into the MAC16 accumulator.
5797
5798 2002-03-26  Andrew Cagney  <ac131313@redhat.com>
5799
5800         * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
5801         (Warning Options): Document -Wswitch-enum.
5802         * toplev.c (W_options): Add -Wswitch-enum.  Update comment on
5803         -Wswitch.
5804         (warn_switch_enum): Define variables.
5805         * flags.h (warn_switch_enum): Declare variables.
5806         * stmt.c (expand_end_case_type): When warn_switch_enum /
5807         -Wswitch-enum, perform switch checks.
5808         Fix PR c/5044.
5809
5810 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
5811
5812         * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
5813         (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
5814         (reload_muladdsi_compare0_scratch): Delete.
5815
5816 2002-03-26  Loren J. Rittle  <ljrittle@acm.org>
5817
5818         * doc/install.texi (*-*-freebsd*): Update.
5819
5820 2002-03-26  Richard Henderson  <rth@redhat.com>
5821
5822         * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
5823         (SUB_PARM_SIZE): Cast DEC to ssizetype.
5824
5825         * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
5826         types from the normal argument frame.
5827
5828         * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
5829         variable sized objects by reference.
5830         (sparc_va_arg): Receive them by reference too.
5831
5832 2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>
5833
5834         * config/s390/s390.c (s390_emit_epilogue): Change epilogue
5835         code to not restoring global registers.
5836
5837 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
5838
5839         * Makefile.in (ggc-common.o): Update.
5840         * c-decl.c (lang_mark_tree): Rename c_mark_tree.
5841         * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
5842         * c-tree.h (c_mark_tree): New.
5843         * ggc-common.c: Include langhooks.h.
5844         (gcc_mark_trees): Use new langhook.
5845         * ggc-callbacks.c: Delete file.
5846         * ggc.h (lang_mark_tree): Remove.
5847         * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
5848         (LANG_HOOKS_INITIALIZER): Update.
5849         * langhooks.h (struct lang_hooks): New hook.
5850 objc:
5851         * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
5852
5853 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
5854
5855         * doc/cpp.texi: Exclude entire Top node from printed manual.
5856         Move option index after directive index.  Insert page breaks
5857         before GFDL and concept index.  Index environment variables
5858         with command line options.
5859         * doc/cppenv.texi: Use @vtable for environment variable list.
5860         Add paragraph explaining semantics of empty elements in path
5861         variables.  Exclude a cross-reference to Fishkill from the
5862         manpage.  Remove an unnecessary cross-reference of the entry
5863         right above the referer.  Don't use @anchor in text that goes
5864         into manpage.
5865         * doc/cppopts.texi: Cross-reference the environment variables
5866         section, not the specific environment variable, for consistency.
5867
5868 2002-03-25  Richard Henderson  <rth@redhat.com>
5869
5870         * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
5871         anywhere in the block.  Don't refer to insns that have been
5872         removed from the chain.  Iterate backward through the new insns.
5873         Don't refer to edges that have been removed.
5874
5875 2002-03-26  Alan Modra  <amodra@bigpond.net.au>
5876
5877         * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
5878         test for overflow of constant.
5879
5880 2002-03-25  Richard Earnshaw  <rearnsha@arm.com>
5881
5882         PR target/2623
5883         * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
5884         (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
5885         these patterns on arm_archv4.
5886
5887 2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>
5888
5889         * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
5890         int".
5891
5892 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
5893
5894         * toplev.c: Don't include setjmp.h.  Kill float_handler_set,
5895         float_handled, float_handler, float_signal, set_float_handler,
5896         and do_float_handler.  Set handler for SIGFPE to crash_signal.
5897         * toplev.h: Don't prototype do_float_handler.
5898
5899         * c-lex.c: Fold parse_float into lex_number.  Make warning
5900         about portability of hex float constants more informative, and
5901         don't issue it on top of a syntax error.
5902         * fold-const.c: Fold const_binop_1 and fold_convert_1 into
5903         their callers.
5904         * real.h: Define REAL_VALUE_ABS here...
5905         * simplify-rtx.c: ... not here.  Fold check_fold_consts,
5906         simplify_unary_real, simplify_binary_real, and
5907         simplify_binary_is2orm1 into their callers.
5908         * tree.c: Fold build_real_from_int_cst_1 into caller.
5909
5910         * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
5911
5912         * tsystem.h: Include float.h here...
5913         * libgcc2.c: ... not here.
5914
5915 2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>
5916
5917         Fixes for: PR bootstrap/3591, target/5676
5918         * config/mcore/mcore.h (CC1_SPEC): Define only if not already
5919         defined.  Do not disable exceptions or rtti.
5920         * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
5921         mcore.h.  Disable exceptions and rtti, since they are not
5922         supported by EPOC.
5923
5924 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
5925
5926         * c-decl.c (maybe_build_cleanup): Remove.
5927         * expr.c (expand_expr): Use langhook.
5928         * langhooks-def.h (lhd_return_null_tree,
5929         LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
5930         (LANGHOOKS_INITIALIZER): Update.
5931         * langhooks.c (lhd_return_null_tree): New.
5932         * langhooks.h (struct lang_hooks): New hook.
5933         * tree-inline.c (initialize_inlined_parameters): Use langhook.
5934         * tree.h (maybe_build_cleanup): Remove.
5935
5936 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
5937
5938         * regrename.c (build_def_use): Move recog_memoized
5939         before extract_insn.
5940
5941 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
5942
5943         PR target/6043
5944         * expr.c (emit_group_store): Handle storing into CONCAT.
5945
5946 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
5947
5948         * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
5949         corresponding MATCH_DUP.
5950
5951 2002-03-24  Richard Henderson  <rth@redhat.com>
5952
5953         * unroll.c (unroll_loop): Zero label_map.
5954
5955         * gcse.c: Include except.h.
5956         * Makefile.in (gcse.o): Update.
5957
5958 2002-03-24  Richard Henderson  <rth@redhat.com>
5959
5960         * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
5961         Do resolve_unique_section before shared data clause.
5962
5963 2002-03-24  Richard Henderson  <rth@redhat.com>
5964
5965         * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
5966
5967 2002-03-24  Richard Henderson  <rth@redhat.com>
5968
5969         * recog.c (peephole2_optimize): Split blocks when EH insns are
5970         generated in the middle of a block.  Do global life update if
5971         zapped EH edges.
5972
5973 2002-03-24  Richard Henderson  <rth@redhat.com>
5974
5975         * mips.c (mips_function_value): Only promote_mode for non-libcalls.
5976
5977 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
5978
5979         preprocessor/3951
5980         * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
5981         * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
5982         (init_dependency_output): Don't make no_output decision here.
5983
5984 2002-03-24  Andrew Cagney  <ac131313@redhat.com>
5985
5986         * stmt.c (check_for_full_enumeration_handling): Remove tests of
5987         warn_switch.  Update description.
5988         (expand_end_case_type): Call check_for_full_enumeration_handling
5989         when warn_switch.
5990
5991 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5992
5993         * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
5994         (m68hc11_split_move): Call it to see if the source and destination
5995         operands use the same direction auto inc/dec mode, otherwise make the
5996         source an offsetable memory operand and generate an add.
5997
5998 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5999
6000         * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
6001         register for operand 2.
6002         ("*subsi3_zero_extendqi"): Likewise.
6003         ("*iorhi3_gen"): Do the operation on the upper bits and then lower
6004         bits so that it is compatible with a pop.
6005         ("*andhi3_gen"): Likewise.
6006         ("xorhi3"): Likewise.
6007
6008 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
6009
6010         * cppinit.c (cpp_handle_option): Set warn_endif_labels if
6011         -pedantic here...
6012         (cpp_post_options): ... not here.
6013
6014 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
6015             Aldy Hernandez  <aldyh@redhat.com>
6016
6017         Removal of separate preprocessor cpp0.
6018
6019         * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
6020         cpp0, install-common): Update.
6021         * c-common.c (flag_preprocess_only): New.
6022         (c_common_init): Preprocess for -E.
6023         * c-common.h (flag_preprocess_only): New.
6024         * c-decl.c (c_decode_option): Handle -E and -std=c++98.
6025         * c-objc-common.c (c_init_decl_processing): Exit quickly
6026         for NULL return from c_common_init.
6027         * cpplib.h (cpp_preprocess_file): New.
6028         * cppmain.c (main, general_init, pfile, progname): Remove.
6029         (do_preprocessing): Rename cpp_preprocess_file, don't call
6030         cpp_finish.  Don't close stdout here.
6031         (setup_callbacks): Update prototype.
6032         * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
6033         Update.
6034         * tradcpp.c (main): Ignore -quiet.
6035 objc:
6036         * lang-specs.h (default_compilers): Preprocess with cc1obj.
6037
6038 2002-03-24  Richard Henderson  <rth@redhat.com>
6039
6040         PR optimization/5742
6041         * machmode.def: Add inner mode field to complex modes.
6042         * config/mips/mips.c (mips_function_value): Always define.  Add
6043         new argument to handle libcalls.
6044         * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
6045         (FUNCTION_VALUE): Likewise.
6046         * config/mips/abi64.h (FUNCTION_VALUE): Remove.
6047         * config/mips/mips-protos.h: Update.
6048
6049 2002-03-23  Richard Henderson  <rth@redhat.com>
6050
6051         * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
6052         * config/sparc/sparc-protos.h: Update.
6053         * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
6054
6055 2002-03-23  Richard Henderson  <rth@redhat.com>
6056
6057         * config/sparc/gmon-sol2.c (internal_mcount): Assume either
6058         _start or _init begins the text segment.
6059
6060 2002-03-23  David Edelsohn  <edelsohn@gnu.org>
6061
6062         * config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
6063         not HOST_WIDEST_INT.
6064         (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
6065
6066 2002-03-23  Richard Earnshaw  <rearnsha@arm.com>
6067
6068         PR java/5489
6069         * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
6070         operand argument to output_return_instruction.
6071         * arm.c (arm_print_operand, case 'd'): If the operand is
6072         const_true_rtx then just return.
6073         (arm_print_operand, case 'D'): If the operand is const_true_rtx
6074         then abort.
6075
6076 2002-03-23  Andrew Cagney  <ac131313@redhat.com>
6077
6078         * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
6079         (Warning Options): Document -Wswitch-default.
6080         * toplev.c (W_options): Add -Wswitch-default.  Update comment on
6081         -Wswitch.
6082         (warn_switch_default): Define variable.
6083         (warn_switch): Update comment.
6084         * flags.h (warn_switch_default): Declare variable.
6085         (warn_switch): Update comment.
6086         * stmt.c (expand_end_case): Check for and, when
6087         warn_switch_no_default, warn of a missing default case.
6088
6089 2002-03-23  Alan Modra  <amodra@bigpond.net.au>
6090
6091         * real.h (N): Special case 128 bit doubles.
6092
6093         * combine.c (simplify_comparison): When widening modes, ignore
6094         sign extension on CONST_INTs.
6095
6096 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
6097
6098         * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
6099         passed to adjust_address.  Fix comment formatting.
6100
6101
6102 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
6103
6104         * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
6105         Always make REAL_VALUE_TYPE a struct containing an array of
6106         HOST_WIDE_INT, not a double.  Tidy up the code deciding how
6107         big it is.  Don't declare or use union real_extract.
6108
6109         * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
6110         decode_rtx_const, output_constant_pool), config/a29k/a29k.c
6111         (print_operand), config/arm/arm.c (output_move_double),
6112         config/arm/arm.md (consttable_4, consttable_8),
6113         config/romp/romp.c (output_fpops), config/s390/s390.h
6114         (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
6115         (xtensa_output_literal): Don't use union real_extract.
6116
6117         * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
6118         (sfmode_constant_to_ulong), config/ns32k/merlin.h
6119         (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
6120         config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
6121         (PRINT_OPERAND): Don't use local version of union
6122         real_extract.
6123
6124         * config/convex/convex.c (check_float_value), config/vax/vax.c
6125         (vax_float_literal), config/m88k/m88k.md (divdf3),
6126         config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
6127         config/pdp11/pdp11.c (output_move_quad): Don't do host
6128         arithmetic on target floating point quantities.
6129
6130         * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
6131         (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
6132
6133         * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
6134         Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
6135
6136         * real.c (earith): Test INFINITY rather than REAL_INFINITY;
6137         NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
6138         INFINITY.
6139         * print-rtl.c (print_rtx): Disable code which needs
6140         floating-point emulator.
6141         * libgcc2.c: Include float.h and use DBL_MANT_DIG,
6142         FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
6143         depending on HOST_FLOAT_FORMAT to be defined properly.
6144
6145         * config/1750a/1750a.c (get_double, float_label): Delete.
6146         (print_operand): Delete huge commented-out chunk.  Use
6147         REAL_VALUE_TO_DECIMAL.
6148         * config/1750a/1750a-protos.h: Delete prototypes of deleted
6149         functions.
6150         * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
6151         IEEE_FLOAT_FORMAT.
6152         * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
6153         Use REAL_VALUE_TO_DECIMAL as ELF version does.
6154         * config/m88k/m88k.c (real_power_of_2_operand,
6155         legitimize_operand): Take the REAL_VALUE_TYPE and/or union
6156         real_extract out of the union; run the input through
6157         REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
6158         from that into the union.
6159         * config/pdp11/pdp11.c (output_move_double): Rearrange
6160         parentheses to make automatic indenter happy.
6161
6162         * doc/tm.texi (Cross-compilation): Rename node to "Floating
6163         Point" and rewrite to describe current situation.  Also adjust
6164         documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
6165         match code.
6166         * doc/rtl.texi: Adjust cross reference.
6167
6168 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
6169
6170         * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
6171         (xtensa_valid_move, xtensa_preferred_reload_class): Define.
6172         * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
6173         (xtensa_valid_move, xtensa_preferred_reload_class): Define to
6174         prevent use of sp as a reload register.
6175         (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
6176         non_acc_reg_operand.
6177         * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
6178         (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
6179         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
6180         movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
6181
6182 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
6183
6184         * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
6185         * cpplex.c (unterminated): Delete.
6186         (parse_string): No string literal may extend over multiple
6187         lines.  Suppress the error when preprocessing assembly.
6188         * cppmain.c (scan_translation_unit): Strings are single-line.
6189
6190         * doc/cpp.texi: Update to match.
6191
6192 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
6193
6194         PR optimization/5854
6195         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
6196         Shut up warnings.
6197         (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
6198         (EXTRA_CONSTRAINT): Use S for non-push memory operand.
6199         * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
6200         const0 if scratch register was not allocated.
6201         (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
6202         m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
6203         with GEN_INT (...).
6204         (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
6205         * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
6206         with GEN_INT (...) everywhere.  Remove constraints in define_split
6207         patterns.
6208         (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
6209         require scratch register for setting 0 into regs/non-pushable memory.
6210
6211 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
6212
6213         * config/mips/mips.h (MASK_RETURN_ADDR): Define.
6214         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
6215
6216 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
6217
6218         * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
6219         * cppinit.c (cpp_create_reader):  On by default.
6220         (cpp_handle_option):  Handle -W[no-]endif-labels.
6221         (cpp_post_options):  Also enable if -pedantic.
6222         * cpplib.c (do_else):  Use it.
6223         (do_endif):  Likewise.
6224         * doc/cppopts.texi:  Document new option.
6225         * doc/invoke.texi:  Document new option.
6226
6227 2002-03-22  Lars Brinkhoff  <lars@nocrew.org>
6228
6229         * config/i386/i386.c, config/i386/i386.md: Change all occurences
6230         of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
6231
6232 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
6233
6234         * flow.c (calculate_global_regs_live): Clear aux fields of
6235         ENTRY and EXIT.
6236
6237 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
6238
6239         * config/v850/v850.c (v850_reorg): Only call alter_subreg on
6240         REG or MEM subregs, pass rtx * instead of rtx to it.
6241         * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
6242         rtx * instead of rtx to alter_subreg.
6243         * config/m32r/m32r.c (gen_split_move_double): Likewise.
6244         * config/pj/pj.c (pj_output_rval): Likewise.
6245
6246 2002-03-22  Richard Henderson  <rth@redhat.com>
6247
6248         PR target/3177
6249         * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
6250         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
6251         * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
6252         (ia64_expand_prologue): Look at int_regs, not words, for number
6253         of incomming int regs.
6254
6255 2002-03-22  Andrew MacLeod  <amacleod@redhat.com>
6256
6257         * expr.c (expand_expr): A RESULT_DECL is part of a call.
6258
6259 Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>
6260
6261         * toplev.c (flag_loop_optimize, flag_crossjumping):
6262         New static variables.
6263         (rest_of_compilation): Conditionalize crossjumping and
6264         loop optimizer.
6265         (parse_options_and_default_flags): Default loop_optimize and
6266         crossjumping.
6267         (lang_independent_options): Add -fcrossjumping and -floop-optimize
6268         * invoke.texi (crossjumping, loop-optimize): Document.
6269
6270 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
6271
6272         * real.c (eiisneg): Move outside #ifdef NANS.
6273
6274 Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>
6275
6276         * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
6277         frequencies match; avoid match on different loop depths.
6278         (try_crossjump_to_bb): Kill tests that no longer brings time
6279         savings.
6280         * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
6281         updating code.
6282         (split_edge): Likewise.
6283
6284         * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
6285         variable.
6286
6287         * Makefile.in (cfgrtl): Add insn-config.h depenendency.
6288         * cfgrtl.c: Include insn-config.h
6289         (split_block) Dirtify block in presence of conditional execution
6290
6291 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
6292
6293         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
6294         * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
6295         (function_arg): Constify CUMULATIVE_ARGS.
6296         (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
6297         * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
6298         (UNITS_PER_DOUBLE): New macro.
6299         (SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
6300         (CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
6301         last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
6302         fp_regs and stack_words.
6303         (EABI_FLOAT_VARARGS_P): New macro.
6304         * config/mips/mips.c (struct mips_arg_info): New.
6305         (mips_arg_info): New function.
6306         (function_arg_advance): Use it.  Add adjustment instructions here
6307         rather than in function_arg.
6308         (function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
6309         for VOIDmode at the beginning of the function.
6310         (function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
6311         (function_arg_pass_by_reference): Likewise.
6312         (mips_setup_incoming_varags): New, largely based on old abi64.h code.
6313         (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
6314         (mips_va_start): Likewise.  Use the new stack_words field of
6315         CUMULATIVE_ARGS to set up overflow area.  Reformat.
6316         (mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
6317         doubles and other types, aligning the overflow pointer for non-doubles
6318         too.  Remove some code duplication.  Replace hard-coded constants.
6319
6320 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
6321
6322         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
6323         (CLASS_UNITS): Undefine.
6324         (CLASS_MAX_NREGS): Use FP_INC.
6325         * config/mips/mips.c (compute_frame_size): Likewise.
6326         (override_options): Use FP_INC and UNITS_PER_FPVALUE.
6327
6328 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
6329
6330         * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
6331         prototype, and handle lexing numbers and identifiers.
6332         (parse_identifier): Update to new form of parse_slow.
6333         (parse_number): Fast path only, use parse_slow otherwise.
6334         (_cpp_lex_direct): Update calls to parse_number.
6335
6336 2002-03-21  DJ Delorie  <dj@redhat.com>
6337
6338         * bb-reorder.c (make_reorder_chain_1): Protect against
6339         when redundant edges are omitted.
6340         * predict.c (dump_prediction): Likewise.
6341
6342 2002-03-21  Richard Henderson  <rth@redhat.com>
6343
6344         PR target/5996
6345         * fixinc/inclhack.def (solaris_stdio_tag): New.
6346         * fixinc/fixincl.x: Regenerate.
6347
6348 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
6349
6350         PR c/5597
6351         * c-typeck.c (process_init_element): Flag non-static
6352         initialization of a flexible array member as illegal.
6353
6354 2002-03-22  Alan Modra  <amodra@bigpond.net.au>
6355
6356         * config/rs6000/t-linux64: New.
6357         * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
6358         t-ppccomm.  Use t-rs6000 and t-linux64.
6359         (powerpc64-*-gnu* <tmake_file>): Likewise.
6360         * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
6361         * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
6362         * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
6363
6364 2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
6365
6366         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
6367         flag_really_no_inline instead of optimize == 0.
6368
6369         * c-objc-common.c (c_cannot_inline_tree_fn): Same.
6370
6371         * cp/tree.c (cp_cannot_inline_tree_fn): Same.
6372
6373         * flags.h (flag_really_no_inline): New.
6374
6375         * c-common.c (c_common_post_options): Initialize
6376         flag_really_no_inline.
6377
6378         * toplev.c (flag_really_no_inline): New.
6379
6380 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
6381
6382         * config/avr/avr.md (length): Fix length computation for
6383         conditional branches.
6384
6385 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
6386
6387         * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
6388         sdbout.o, profile.o): Update.
6389         * c-common.c (c_common_nodes_and_builtins): Use pushdecl
6390         langhook.
6391         * c-common.h (gettags): Move here from tree.h.
6392         * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
6393         insert_block, getdecls, kept_level_p, global_bindings_p): New.
6394         * dbxout.c (dbxout_init): Use getdecls langhook.
6395         * expr.c (expand_expr): Use insert_block langhook.
6396         * fold-const.c: Include langhooks.h.
6397         (fold_range_test, fold_binary_op_with_conditional_arg,
6398         fold): Use global_bindings_p langhook.
6399         * integrate.c (expand_inline_function): Use insert_block langhook.
6400         * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
6401         LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
6402         LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
6403         LANG_HOOKS_GETDECLS): New.
6404         (LANG_HOOKS_INITIALIZER): Update.
6405         * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
6406         langhook.
6407         * langhooks.h (struct lang_hooks_for_decls): New.
6408         (struct lang_hooks): Update.
6409         * profile.c: Include langhooks.h.
6410         (output_func_start_profiler): Use new langhooks.
6411         * sdbout.c: Include langhooks.h.
6412         (sdbout_init, sdbout_finish): Use getdecls langhook.
6413         * stmt.c: Include langhooks.h.
6414         (expand_fixup, fixup_gotos): Use new langhooks.
6415         * stor-layout.c: Include langhooks.h.
6416         (variable_size): Use global_bindings_p langhook.
6417         * toplev.c (compile_file): Use getdecls langhook.
6418         * tree-inline.c (remap_block): Use insert_block langhook.
6419         * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
6420         insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
6421
6422 2002-03-21  Richard Henderson  <rth@redhat.com>
6423
6424         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
6425         constants in .data when -fpic.
6426
6427 2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6428
6429         * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
6430         where appropriate.
6431
6432 2002-03-21  Tom Tromey  <tromey@redhat.com>
6433
6434         * config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.
6435
6436 Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6437
6438         * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
6439
6440         * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
6441
6442 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
6443             Richard Henderson  <rth@redhat.com>
6444
6445         PR c/5354
6446         * c-common.c (c_expand_expr): Preserve result of a statement
6447         expression if needed.
6448
6449 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
6450
6451         PR bootstrap/4195
6452         * genrecog.c (maybe_both_true_mode): Remove.
6453         (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
6454         * machmode.def (Pmode): Likewise.
6455
6456 Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)
6457
6458         * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
6459         (nonlocal_mentioned_p_1): New function.
6460         (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
6461         (nonlocal_set_p, nonlocal_set_p_1): Likewise.
6462         (mark_constant_function): Recognize pure functions.
6463         * rtl.h (global_reg_mentioned_p): New prototype.
6464         * rtlanal.c (global_reg_mentioned_p,
6465         global_reg_mentioned_p_1): New function.
6466
6467 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6468
6469         * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
6470         UNIX assert.h.
6471         * fixinc/fixincl.x: Regenerate.
6472
6473 2002-03-20  Jason Merrill  <jason@redhat.com>
6474
6475         * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
6476
6477 2002-03-20  Michael Meissner  <meissner@redhat.com>
6478
6479         * doc/invoke.texi (Optimize Options): Document that -O2 sets
6480         -fstrict-aliasing.
6481
6482 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
6483
6484         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
6485         ".literal_position" directive before the constant pool.
6486
6487 2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6488
6489         * doc/contrib.texi (Contributors): Update Geoffrey Keating.
6490         Add Craig Rodrigues.
6491         Add Brad Lucier to testers.
6492
6493 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
6494
6495         PR target/4792
6496         * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
6497         to if_then_else.
6498         (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
6499         * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
6500         instead of insn_extract.
6501
6502 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
6503
6504         PR bootstrap/4192
6505         * config/fr30/fr30.md (jump): Remove clobber of fixed register.
6506
6507         * genemit.c (output_added_clobbers_hard_reg_p): Only output return
6508         stmt if some case has been output.
6509
6510 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
6511
6512         PR c/5972
6513         * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
6514         movsfcc_1, movdfcc_1): Add %O2.
6515         * config/i386/i386.c (print_operand): Handle %ON.
6516         Print . before float condition codes in Sun as cmov syntax.
6517         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
6518         * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
6519         no longer true.
6520
6521 2002-03-20  Philip Blundell  <pb@nexus.co.uk>
6522
6523         * config/arm/arm.c (arm_output_epilogue): Don't generate separate
6524         return instruction if PC was popped.
6525
6526 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
6527
6528         * config/xtensa/xtensa.md: Remove unused type attributes.
6529         (adddi_carry, subddi_carry): Change type attribute to "multi".
6530
6531 2002-03-19  Dale Johannesen  <dalej@apple.com>
6532
6533         PR optimization/5999, middle-end/5731
6534         * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
6535         multiplications by reciprocals.
6536
6537 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
6538
6539         * Makefile.in: Update.
6540         * c-common.c: Include langhooks.h.
6541         (inline_forbidden_p): Use new hook.
6542         * diagnostic.c: Include langhooks.h.
6543         (format_with_decl, announce_function,
6544         default_print_error_function): Use new hook.
6545         * dwarf2out.c (dwarf2_name): Use new hook.
6546         * function.c: Include langhooks.h.
6547         (init_function_start): Use new hook.
6548         * langhooks-def.h (lhd_decl_printable_name): New.
6549         (LANGHOOKS_DECL_PRINTABLE_NAME): New.
6550         (LANGHOOKS_INITIALIZER): Update.
6551         * langhooks.c (lhd_decl_printable_name): New.
6552         * langhooks.h (struct lang_hooks): New hook.
6553         * toplev.c (decl_name, decl_printable_name): Remove.
6554         (open_dump_file): Use new hook.
6555         (process_options): Remove old hook.
6556         * tree.h (decl_printable_name): Remove.
6557 objc:
6558         * objc-act.c (objc_init): Remove old hook.
6559         (objc_printable_name): Export.
6560         * objc-act.h (objc_printable_name): New.
6561         * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
6562
6563 2002-03-19  Jim Blandy  <jimb@redhat.com>
6564
6565         * c-lex.c (cb_file_change): Pass the #inclusion's line number to
6566         the start_source_file debug hook, not the current line number.
6567
6568 2002-03-19  Richard Henderson  <rth@redhat.com>
6569
6570         * flow.c (EH_USES): Provide default.
6571         (calculate_global_regs_live): Use it for EH edges and noreturn calls.
6572         * doc/tm.texi (EH_USES): New.
6573
6574         * config/ia64/ia64.c (ia64_eh_uses): New.
6575         * config/ia64/ia64-protos.h: Update.
6576         * config/ia64/ia64.h (EH_USES): New.
6577
6578 2002-03-19  Richard Henderson  <rth@redhat.com>
6579
6580         * varasm.c (output_constant_def): Fix stupid typo.
6581
6582 2002-03-19  Richard Henderson  <rth@redhat.com>
6583
6584         PR 5879
6585         * except.c (current_function_has_exception_handlers): New.
6586         * except.h: Declare it.
6587         * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
6588         Combine tests that disable all sibcalls for the function.
6589
6590 2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
6591
6592         * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
6593         for INTEGER_CST.
6594
6595 2002-03-19  Richard Henderson  <rth@redhat.com>
6596
6597         PR 5977, 5991
6598         * config/ia64/ia64.c: Revert 2002-03-01 patch.
6599         * config/ia64/ia64.h (INIT_EXPANDERS): New.
6600
6601 2002-03-19  Jim Blandy  <jimb@redhat.com>
6602
6603         * cppmacro.c (cpp_macro_definition): Emit a space after the macro
6604         name, even if the replacement list contains no tokens, as required
6605         by Dwarf.
6606
6607 2002-03-19  Jason Merrill  <jason@redhat.com>
6608
6609         * varasm.c (globalize_decl): Get the name from the RTL, not
6610         DECL_ASSEMBLER_NAME.
6611
6612         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
6613
6614 2002-03-19  Bob Wilson  <bob.wilson@acm.org>
6615
6616         * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
6617         subdi_carry): Define.
6618
6619 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
6620
6621         * config/rs6000/rs6000.c (rs6000_override_options): Only warn
6622         about -fpic/-fPIC if extra_warnings set.
6623
6624 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
6625
6626         * expr.c (expand_expr): Sign-extend CONST_INT generated from
6627         TREE_STRING_POINTER.
6628         * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
6629
6630 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6631
6632         * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
6633         in favor of SP if FRAME_POINTER_REQUIRED is false.
6634
6635 2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
6636
6637         * emit-rtl.c (gen_int_mode): New function.
6638         * rtl.h: Prototype for it.
6639         * combine.c (make_extraction, simplify_comparison), expmed.c
6640         (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
6641         (convert_modes, store_field), optabs.c (expand_fix),
6642         simplify-rtx.c (neg_const_int, simplify_unary_real),
6643
6644         * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
6645         Use it instead of GEN_INT (trunc_int_for_mode (...)).
6646
6647 2002-03-19  Jakub Jelinek  <jakub@redhat.com>
6648
6649         PR c/5656
6650         * langhooks.h (struct lang_hooks_for_tree_inlining): Add
6651         convert_parm_for_inlining.
6652         * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
6653         Define.
6654         * langhooks-def.h: Likewise.
6655         * objc/objc-lang.c: Likewise.
6656         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
6657         function.
6658         * tree-inline.c (initialize_inlined_parameters):
6659         Call convert_parm_for_inlining lang hook if needed.
6660         * c-typeck.c (c_convert_parm_for_inlining): New function.
6661         * c-tree.h (c_convert_parm_for_inlining): Add prototype.
6662
6663 2002-03-18  Mark Mitchell  <mark@codesourcery.com>
6664
6665         * calls.c (precompute_arguments): Do not assume that temporaries
6666         can be destroyed after expanding the argument.
6667         (expand_call): Likewise.
6668
6669 2002-03-15  Eric Christopher  <echristo@redhat.com>
6670
6671         * config/mips/mips.md (movdf_internal2): Add two new move constraints.
6672         Fix register preference on last change.
6673         * config/mips/mips.c (mips_return_in_memory): New function.
6674         * config/mips/mips.h (RETURN_IN_MEMORY): Use.
6675         * config/mips/mips-protos.h: Declare.
6676         * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
6677         * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
6678
6679 2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
6680
6681         * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
6682         a register too.
6683         (anddi3, iorsi3): Likewise.
6684
6685         * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
6686         use %gprel for symbols that are going to be placed in linkonce
6687         sections.
6688
6689         * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
6690         RETURN_ADDRESS_POINTER_REGNUM to $ra.
6691         (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
6692         not needed.  Disregard leaf_function_p().
6693         (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
6694         mips16 frame pointer.
6695         * config/mips/mips.md (store ra): Only to small SP offsets.
6696         2001-08-22  Graham Stott  <grahams@redhat.com>
6697         * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
6698         return a REG rtx for the return address register.
6699
6700 2002-03-18  Bob Wilson  <bob.wilson@acm.org>
6701
6702         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
6703         constant-pool addresses as "mode-dependent".
6704         (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
6705
6706 2002-03-18  Jakub Jelinek  <jakub@redhat.com>
6707
6708         PR target/5740
6709         * expr.c (emit_group_load): Use extract_bit_field if
6710         needed for CONCAT arguments.
6711
6712 2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
6713
6714         PR target/4863
6715         * arm.md (tablejump): Make this a define_expand.  For PIC add the
6716         offset to the base of the table.
6717         (thumb_tablejump): Matcher for Thumb tablejump insn.
6718         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
6719         as the difference of two labels.
6720         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
6721         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
6722         tables in the code.
6723         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
6724         * arm.c (get_jump_table_size): If the table is not in the text
6725         section, return zero.
6726
6727 2002-03-18  Bernd Schmidt  <bernds@redhat.com>
6728
6729         * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
6730         of gen_rtx_SUBREG.
6731         (arm_reload_out_hi): Use gen_lowpart instead of
6732         gen_rtx_SUBREG to access QImode components.
6733         * config/arm/arm.md: Disable zero_extend split for QImode
6734         subregs in BIG_ENDIAN mode.
6735         (storehi_bigend): Match use of least significant byte.
6736         (storeinthi): Remove extraneous SUBREG.
6737         Add missing construction of operands[2].
6738         (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
6739         (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
6740         Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
6741
6742 2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
6743
6744         * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
6745         any_operand.
6746
6747 2002-03-17  Richard Henderson  <rth@redhat.com>
6748
6749         * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
6750         explicitly.
6751
6752 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
6753
6754         * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
6755         (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
6756
6757 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6758
6759         * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
6760
6761         * predict.c (estimate_bb_frequencies): Delete unused variables.
6762
6763 2002-03-17  Richard Henderson  <rth@redhat.com>
6764
6765         * config/ia64/ia64.c (ia64_attribute_table): Move before
6766         targetm definition.  Make static.
6767
6768 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
6769
6770         * c-common.h (yyparse, c_common_parse_file): New.
6771         * c-lang.c: Include c-common.h.
6772         (LANG_HOOKS_PARSE_FILE): Redefine.
6773         * c-lex.c: Include c-common.h.
6774         (yyparse): Rename c_common_parse_file.  Call yyparse.
6775         * c-parse.in (yyparse): Remove macro.
6776         * c-tree.h (yyparse_1): Remove.
6777         * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
6778         (LANG_HOOKS_INITIALIZER): Update.
6779         * langhooks.h (struct lang_hoooks): New hook parse_file.
6780         * toplev.c (compile_file): Use parse_file hook.
6781         * tree.h (yyparse): Remove.
6782         * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
6783
6784 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
6785
6786         * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
6787         float_truncate, not fix.
6788         ("*truncdfsf2_real"): Ditto.
6789         ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
6790
6791         * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
6792
6793 2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
6794
6795         * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
6796         (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
6797         where appropriate.  Make the second reference to
6798         leaf_function_p a function call, as intended.  Reindented.
6799
6800         * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
6801         * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
6802
6803         * config/mips/mips.md (addsi3, adddi3): Use scratch register to
6804         add register to non-constant into sp.
6805
6806         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
6807         * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
6808         (mips16_gp_pseudo_rtx): Lose.
6809         (INIT_EXPANDERS): Deleted.
6810         * config/mips/mips.c (mips_init_machine_status): New.
6811         (mips_free_machine_status): New.
6812         (mips_mark_machine_status): New.
6813         (override_options): Set them.
6814         (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
6815         (struct machine_function): ... new.  Replaced all references.
6816         (mips_add_gc_roots): Don't mark them.
6817         (embedded_pic_fnaddr_reg): New, extracted from...
6818         (embedded_pic_offset): ... here.
6819         * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
6820         (movsi): Likewise.
6821
6822 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
6823
6824         * cppinit.c: Revert -MD removal.
6825
6826 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
6827
6828         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
6829         soft registers by default for 68HC12.
6830         (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
6831         when compiling with -fomit-frame-pointer.
6832         (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
6833         (expand_epilogue): Likewise.
6834         (m68hc11_gen_rotate): Use exg when rotating by 8.
6835
6836 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
6837
6838         * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
6839         * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
6840         (splits): Remove unused add splits.
6841         ("*addhi3_68hc12"): Tune constraints.
6842         ("addhi_sp"): Try to use X instead of Y in all cases and if the
6843         constant fits in 8-bits and D is dead use abx/aby instructions.
6844         ("*addhi3"): Remove extern declaration of ix_reg.
6845         ("*subsi3"): Optimize and provide new split.
6846         ("subhi3"): Cleanup.
6847         ("*subhi3_sp"): Avoid saving X if we know it is dead.
6848         (arith splits): For 68hc12 save the address register on the stack
6849         and do the arithmetic operation with a pop.
6850
6851 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
6852
6853         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
6854         allocating QImode in address registers.
6855         ("*movqi_m68hc11"): Likewise.
6856
6857 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
6858
6859         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
6860
6861 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
6862
6863         * cppinit.c (print_help): Display -MD and -MMD.
6864         Don't display usage string.  Update assertion syntax and
6865         typo.
6866         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
6867         (cpp_handle_option): Update.
6868
6869 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
6870
6871         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
6872         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
6873         and define it so that regardless of target CPU size,
6874         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
6875         of "int" rather than "long."
6876
6877 2002-03-15  Richard Henderson  <rth@redhat.com>
6878
6879         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
6880         size as a tree.
6881
6882 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
6883
6884         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
6885         ("tstqi" split): Avoid using memory for tstqi on address register.
6886         (splits): Remove constraints.
6887         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
6888         ("cmpdf", "cmpsf"): Remove since not used.
6889         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
6890         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
6891
6892 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
6893
6894         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
6895         ("neghi2"): Tighten constraints.
6896         ("one_cmplsi2"): Optimize and simplify split.
6897         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
6898
6899 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
6900
6901         * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
6902         and split of AND operation to clear the upper bits.
6903         ("*logicalsi3_zextqi"): Likewise.
6904         ("*logicallhi3_zexthi_ashift8"): Likewise.
6905         ("*logicalsi3_silshr16"): Likewise.
6906         ("logicalsi3_silshl16"): Likewise.
6907         ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
6908
6909 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
6910
6911         * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
6912         (m68hc11_indirect_p): New function.
6913         (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
6914         (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
6915         TARGET_M6812.
6916         (asm_print_register): Likewise.
6917         * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
6918         (m68hc11_indirect_p): Declare.
6919         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
6920         (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
6921         (TARGET_SWITCHES): New option -mrelax.
6922         * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
6923         destination.
6924         ("iorsi3", "xorsi3"): Likewise.
6925         ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
6926         ("*andhi3_mem"): New to handle destination in memory with bclr
6927         and a scratch register.
6928         ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
6929         ("*andhi3_const"): New when operand2 is constant.
6930         ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
6931         ("*andhi3_gen"): Cleanup of the old "andhi3".
6932         ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
6933         ("xorqi3"): Update constraints.
6934
6935 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
6936
6937         * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
6938         for reg_equiv_memory_loc when the operand is a register that does
6939         not get a hard register (stack location).
6940         (tst_operand): After reload, accept all memory operand.
6941         (symbolic_memory_operand): Fix detection of symbolic references.
6942         * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
6943         accept symbols and any constant.
6944
6945 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
6946
6947         * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
6948         note on the insn that sets the soft frame register.
6949         (must_parenthesize): ix and iy are also reserved names.
6950         (print_operand_address): One more place where parenthesis are required
6951         to avoid confusion with register names.
6952         (m68hc11_gen_movhi): Allow push of stack pointer.
6953         (m68hc11_check_z_replacement): Fix handling of parallel with a
6954         clobber.
6955         (m68hc11_z_replacement): Must update the REG_INC notes to tell what
6956         the replacement register is.
6957         * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
6958         and D8_REGS classes.
6959         (MODES_TIEABLE_P): All modes are tieable except QImode.
6960
6961 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
6962
6963         * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
6964         (___subdi3): Likewise.
6965         (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
6966         (__map_data_section): Optimize 68hc11 case.
6967
6968 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
6969
6970         * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
6971         than a shift to avoid adding a register with itself.
6972         (m68hc11_memory_move_cost): Take into account NO_REGS.
6973         (m68hc11_register_move_cost): Update and use memory move cost
6974         for soft registers.
6975         (m68hc11_address_cost): Make cost of valid offset not 0 so that
6976         it gives more opportunities to cse to optimize.
6977         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
6978         * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
6979
6980 2002-03-15  Mark Mitchell  <mark@codesourcery.com>
6981
6982         * c-common.c (statement_code_p): Handle CLEANUP_STMT.
6983         * c-common.def (CLEANUP_STMT): New tree node.
6984         * c-common.h (CLEANUP_DECL): New macro.
6985         (CLEANUP_EXPR): Likewise.
6986         * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
6987         * expr.c (expand_expr): Tidy.
6988         * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
6989         * tree-inline.c (initialize_inlined_parameters): Clean up
6990         new local variables.
6991
6992 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
6993
6994         PR bootstrap/4128
6995         * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
6996         before movrXX only, use reg_overlap_mentioned_p.
6997         Only special case NE if just one insn can be generated.
6998
6999 2002-03-15  Jason Merrill  <jason@redhat.com>
7000
7001         * varasm.c (assemble_variable): Call resolve_unique_section before
7002         checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
7003         of error_mark_node.
7004
7005 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
7006
7007         PR target/5170
7008         * arm.md (split pattern for thumb shiftable immediates): Add comment
7009         explaining non-obvious test.
7010
7011 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
7012
7013         PR target/5712
7014         * arm.md (movaddr, movaddr_insn): Delete.
7015
7016 2002-03-15  Jason Merrill  <jason@redhat.com>
7017
7018         * toplev.c (wrapup_global_declarations): Clarify variable handling.
7019         -fkeep-static-consts doesn't apply to comdats.
7020
7021 2002-03-14  Richard Henderson  <rth@redhat.com>
7022
7023         * c-decl.c: Include c-pragma.h.
7024         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
7025         (finish_function): Tidy.
7026         * c-pragma.c: Include c-common.h.
7027         (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
7028         (handle_pragma_weak): Use them.
7029         (init_pragma): Register pending_weaks.
7030         * c-pragma.h (maybe_apply_pragma_weak): Declare.
7031         * print-tree.c (print_node): Print DECL_WEAK.
7032         * varasm.c (mark_weak_decls): Remove.
7033         (remove_from_pending_weak_list): Remove.
7034         (add_weak): Remove.
7035         (asm_emit_uninitialised): Call globalize_decl for weak commons.
7036         (weak_decls): Make a tree_list.
7037         (declare_weak): Cons weak_decls directly.
7038         (globalize_decl): Remove weak_decls elements directly.
7039         (weak_finish): Simplify weak_decls walk.  Don't weaken unused
7040         symbols.  Don't pretend to handle aliases.
7041         (init_varasm_once): Update weak_decls registry.
7042         * Makefile.in: Update dependencies.
7043
7044 2002-03-14  Richard Henderson  <rth@redhat.com>
7045
7046         PR target/5312
7047         * config/ia64/ia64.c: Include tm_p.h last.
7048         (gen_nop_type): Remove duplicate definition.
7049         (cycle_end_fill_slots): Set sched_data for second L slot.
7050         (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
7051         (nop_cycles_until): Fix typos.
7052
7053 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
7054
7055         PR optimization/5891
7056         * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
7057
7058 2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
7059
7060         * config/ia64/unwind-ia64.c: Handle copy_state and label_state
7061           descriptors correctly.
7062
7063 2002-03-14  Michael Meissner  <meissner@redhat.com>
7064
7065         * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
7066         100, allowing MAX_UNROLLED_INSNS to be overridden.
7067
7068         * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
7069         --param.
7070
7071         * unroll.c (params.h): Include.
7072         (MAX_UNROLLED_INSNS): Delete, now in params.h.
7073
7074         * doc/invoke.texi (--param max-unroll-insns): Document.
7075
7076         * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
7077
7078 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
7079
7080         * arm.md: Fix warnings about constraints in peepholes and splits.
7081
7082 2002-03-14  Zack Weinberg  <zack@codesourcery.com>
7083
7084         * cpphash.h (struct lexer_state): Remove line_extension member.
7085         * cpplib.c (dequote_string, do_linemarker): New functions.
7086         (linemarker_dir): New data object.
7087         (DIRECTIVE_TABLE): No longer need to interpret #line in
7088         preprocessed source.  Delete obsolete comment about return
7089         values of handlers.
7090         (end_directive, directive_diagnostics, _cpp_handle_directive):
7091         Don't muck with line_extension.
7092         (directive_diagnostics): No need to issue warnings for
7093         linemarkers here.
7094         (_cpp_handle_directive): Issue warnings for linemarkers here,
7095         when appropriate.  Dispatch linemarkers to do_linemarker, not
7096         do_line.
7097         (do_line): Code to handle linemarkers split out to do_linemarker.
7098         Convert escape sequences in filename argument, both places.
7099
7100         * cppmacro.c (quote_string): Rename cpp_quote_string and
7101         export.  All callers changed.
7102         * cpplib.h (cpp_quote_string): Prototype.
7103         * cppmain.c (print_line): Call cpp_quote_string on to_file
7104         before printing it.
7105
7106         * doc/cpp.texi: Document that escapes are now interpreted in
7107         #line and in linemarkers, and that non-printing characters are
7108         converted to octal escapes when linemarkers are generated.
7109
7110 Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
7111
7112         * emit-rtl.c (try_split): Use delete_insns.
7113         * recog.c (split_all_insns): Fix terminating condition.
7114
7115 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
7116             Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
7117
7118         PR target/5828
7119         * arm.c (arm_output_epilogue): Fix floating-point register save
7120         adjustment when using a frame pointer.
7121
7122 2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
7123
7124         * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
7125         * config/mips/mips.c (compute_frame_size): Retrofit them here.
7126         (save_restore_insns, mips_expand_epilogue): And here.
7127         (build_mips16_call_stub): And here.
7128         (mips_function_value): Use the new macros to decide whether a single
7129         or complex float can be returned in floating-point registers.  Return
7130         a parallel rtx in the complex case.
7131
7132 Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
7133
7134         * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
7135         call after liveness analysis.
7136
7137         * recog.c (split_insn): Use delete_insn_and_edges.
7138
7139         * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
7140         instructions to have branch prediction notes.
7141         * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
7142
7143 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
7144
7145         * configure.in: Don't pass -Wno-long-long to a ADA compiler
7146         that doesn't support it.
7147         * configure: Regenerate.
7148
7149 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
7150
7151         PR target/5626
7152         * config/sparc/sparc.md (normal_branch, inverted_branch,
7153         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
7154         inverted_fp_branch): Adjust calls to output_cbranch.
7155         Set length attribute.
7156         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
7157         output_v9branch.  Set length attribute.
7158         * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
7159         predicates.
7160         (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
7161         (output_cbranch): Likewise.  Handle far branches.
7162         (output_v9branch): Handle far branches.
7163         * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
7164         Adjust prototypes.
7165         * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
7166         noov_compare64_op predicates.
7167
7168 2002-03-13  Jason Merrill  <jason@redhat.com>
7169
7170         * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
7171         into the function and constify it.
7172         * gthr-dce.h, gthr-solaris.h: Likewise.
7173
7174 2002-03-13  David Edelsohn  <edelsohn@gnu.org>
7175
7176         * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
7177         * config/rs6000/rs6000.c (rs6000_va_arg): Use
7178         std_expand_builtin_va_arg if not ABI_V4.
7179
7180 2002-03-13  Jason Merrill  <jason@redhat.com>
7181
7182         * varasm.c (globalize_decl): New fn.
7183         (assemble_start_function): Use it.
7184         (asm_emit_uninitialized): Use it.
7185         (assemble_alias): Use it.
7186         (assemble_variable): Use it.
7187
7188 2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
7189
7190         * config/cris/cris.c (cris_target_asm_function_prologue): Revert
7191         2002-03-12 internal visibility change.
7192         (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
7193         visibility into SYMBOL_REF_FLAG.
7194
7195 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
7196
7197         * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
7198         VOIDmode operand.  Add compile-time optimization for constant results.
7199
7200 2002-03-12  Jason Merrill  <jason@redhat.com>
7201
7202         * c-typeck.c (convert_for_assignment): Don't allow conversions
7203         between pointers and references.  Only allow lvalues to convert to
7204         reference.
7205
7206 2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
7207
7208         * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
7209         before prologue, to avoid scheduling problems.
7210
7211 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
7212
7213         * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
7214         (ELIMINABLE_REGS): Add sfp->sp.
7215         (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
7216
7217 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
7218
7219         PR optimization/5892
7220         * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
7221
7222 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
7223
7224         * loop.c (basic_induction_var): Don't call convert_modes if mode
7225         classes are different.
7226
7227 2002-03-12  Richard Henderson  <rth@redhat.com>
7228
7229         PR optimization/5901
7230         * function.c (reposition_prologue_and_epilogue_notes): Position
7231         the markers after/before the last/first insn not deleted.
7232
7233 2002-03-12  Richard Henderson  <rth@redhat.com>
7234
7235         PR optimization/5878
7236         * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
7237         config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
7238         (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
7239
7240         * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
7241         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
7242         PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
7243
7244         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
7245         * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
7246         (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
7247         also.  Don't set it if not flag_pic.
7248         * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
7249         to be INVALID_REGNUM when not used.
7250
7251 2002-03-13  Aldy Hernandez  <aldyh@redhat.com>
7252
7253         * expmed.c (store_bit_field): Reset alias set for memory.
7254         (extract_bit_field): Same.
7255
7256 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7257
7258         * c-common.c (c_tree_code_type, c_tree_code_length,
7259         c_tree_code_name, add_c_tree_codes): Delete.
7260         * c-common.h (add_c_tree_codes): Delete.
7261         * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
7262         Define.
7263         * c-objc-common.c (c_objc_common_init): Don't call
7264         add_c_tree_codes, instead set lang_unsafe_for_reeval.
7265         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
7266         objc_tree_code_name, add_objc_tree_codes): Delete.
7267         (objc_init): Don't call add_objc_tree_codes.
7268         * objc/objc-lang.c (tree_code_type, tree_code_length,
7269         tree_code_name): Define.
7270         * toplev.c (lang_independent_init): Don't set
7271         tree_code_length[IDENTIFIER_NODE].
7272         * tree.c (tree_code_type, tree_code_length, tree_code_name):
7273         Delete definitions, moved to language front-ends.
7274         * tree.def (IDENTIFIER_NODE): Hardwire the length.
7275         * tree.h (tree_code_type, tree_code_length, tree_code_name):
7276         Const-ify.
7277         (tree_code_length): Change type to unsigned char.
7278
7279 2002-03-12  Richard Henderson  <rth@redhat.com>
7280
7281         * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
7282         internal visibility change.
7283
7284 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
7285
7286         * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
7287         validize_mem() instead of change_address to avoid clobbering
7288         memory attributes.
7289
7290 2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
7291
7292         * c-lex.h (position_after_whitespace): Remove.
7293
7294 2002-03-12  Jakub Jelinek  <jakub@redhat.com>
7295
7296         * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
7297         (lex_string): Use unsigned char pointers.
7298
7299 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
7300
7301         * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
7302         is not a valid memory_operand.
7303
7304 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
7305
7306         * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
7307         * config/xtensa/lib1funcs.asm: Fix copyright to include
7308         special case for libgcc files.
7309         (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
7310         (__divsi3): Likewise.
7311         (__umodsi3): Likewise.
7312         (__modsi3): Likewise.
7313         * config/xtensa/lib2funcs.S: Fix copyright to include
7314         special case for libgcc files.
7315
7316 2002-03-12  Tom Rix  <trix@redhat.com>
7317
7318         * collect2.c (resolve_lib_name): Move outside of
7319         OBJECT_FORMAT_COFF ifdef.
7320         (ignore_library): Same.
7321
7322 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
7323
7324         * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
7325
7326 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
7327
7328         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
7329         to function_section before writing out the constant pool.
7330
7331 2002-03-12  David Edelsohn  <edelsohn@gnu.org>
7332
7333         * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
7334         zero_constant.
7335         * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
7336
7337 2002-03-12  Alan Modra  <amodra@bigpond.net.au>
7338
7339         * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
7340         (adddi3): Likewise.
7341         (movdf): Likewise.
7342         (movdi): Likewise.
7343         (cmpsi splitter): Likewise.
7344         (modsi3): Fail if <= 0.
7345         * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
7346         redundant test when HOST_BITS_PER_WIDE_INT != 32.
7347         (reg_or_sub_cint64_operand): Likewise.
7348         (num_insns_constant_wide): Optimize sign extension.
7349         (rs6000_legitimize_address): Likewise.
7350
7351 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
7352
7353         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
7354         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
7355
7356 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
7357
7358         * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
7359         address calculation.
7360
7361 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
7362
7363         * config/s390/s390.md (reload_insi, reload_indi): Change mode of
7364         scratch register to DImode / TImode.
7365         config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
7366         register used does not overlap the target.
7367
7368 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7369
7370         * Makefile.in (debug.o): Depend on debug.h.
7371         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
7372         * debug.c (do_nothing_debug_hooks): Likewise.
7373         * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
7374         sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
7375         dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
7376         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
7377         * dwarfout.c (dwarf_debug_hooks): Likewise.
7378         * integrate.c (output_inline_function): Likewise.
7379         * objc/objc-act.c (synth_module_prologue): Likewise.
7380         * sdbout.c (sdb_debug_hooks): Likewise.
7381         * toplev.c (debug_hooks): Likewise.
7382         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
7383
7384 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7385
7386         * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
7387         dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
7388         m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
7389         ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
7390         v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
7391         * defaults.h (POINTER_SIZE): Define.
7392         * doc/tm.texi (POINTER_SIZE): Document default.
7393
7394 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7395
7396         * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
7397
7398 2002-03-11  Richard Henderson  <rth@redhat.com>
7399
7400         * toplev.c (rest_of_compilation): Call purge_all_dead_edges
7401         if rebuild_label_notes_after_reload.
7402
7403 2002-03-12  Hans-Peter Nilsson  <hp@axis.com>
7404
7405         * config/cris/cris.c (cris_target_asm_function_prologue):  Do not
7406         emit pic register load if "internal" visibility.
7407         (cris_print_operand): Avoid traditional-warning for 0xffffffff.
7408         (cris_expand_builtin_va_arg): Do all computations on trees.
7409
7410 2002-03-11  Richard Henderson  <rth@redhat.com>
7411
7412         * rtlanal.c: Include recog.h.
7413         (keep_with_call_p): Fix thinko.
7414         * Makefile.in (rtlanal.o): Update dependencies.
7415
7416 2002-03-11  Chris Meyer  <cmeyer@gatan.com>
7417
7418         * genflags.c (gen_insn): Use IS_VSPACE.
7419         * genoutput.c (output_insn_data): Likewise.
7420         (process_template): Likewise.
7421
7422 2002-03-11  Richard Henderson  <rth@redhat.com>
7423
7424         * toplev.c (rest_of_compilation): Don't compile if we've had errors.
7425
7426 2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
7427
7428         * Makefile.in: Update.
7429         * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
7430         Update documentation.
7431         * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
7432         * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
7433
7434 2002-03-11  Zack Weinberg  <zack@codesourcery.com>
7435
7436         * Makefile.in: Give texi2pod its input file as a command line
7437         argument, not on stdin.
7438
7439 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
7440             Daniel Berlin  <dan@dberlin.org>
7441
7442         C++ alias analysis improvement.
7443         * alias.c (record_component_aliases): Record aliases for base
7444         classes too.
7445
7446 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
7447
7448         * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
7449
7450 2002-03-11  Douglas B Rupp  <rupp@gnat.com>
7451
7452         * toplev.c (vms_fopen): Remove, not needed.
7453
7454         * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
7455
7456         * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
7457
7458         * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
7459         for FP, already done later.
7460
7461         * toplev.c (debug_args): Add entry for VMS_DEBUG.
7462         * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
7463
7464 2002-03-11  Richard Sandiford  <rsandifo@redhat.com>
7465
7466         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
7467         (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
7468         LARGEST_EXPONENT_IS_NORMAL for the given mode.
7469         (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
7470         * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
7471         (ediv, emul, eldexp, esqrt): Likewise.
7472         (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
7473         (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
7474         (saturate): New function.
7475         (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
7476         (make_nan): Use a saturation value instead of a NaN if
7477         LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
7478         * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
7479         inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
7480         zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
7481         (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
7482         (_fpmul_parts, _fpdiv_parts): Only round to nearest if
7483         !ROUND_TOWARDS_ZERO.
7484         * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
7485         (ROUND_TOWARDS_ZERO): Document.
7486
7487 2002-03-11  Andreas Jaeger  <aj@suse.de>
7488
7489         * cfg.c (dump_flow_info): Remove unused variable.
7490
7491 2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>
7492
7493         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
7494         computations on trees.
7495
7496 2002-03-10  Richard Henderson  <rth@redhat.com>
7497
7498         PR 5693:
7499         * reload.c (copy_replacements_1): New.
7500         (copy_replacements): Use it to recurse through the rtx.
7501
7502 2002-03-10  Richard Henderson  <rth@redhat.com>
7503
7504         * loop.c (strength_reduce): Compute number of iterations as
7505         unsigned HOST_WIDE_INT.
7506
7507 2002-03-10  Richard Henderson  <rth@redhat.com>
7508
7509         * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
7510         to move away from the end of the block.
7511
7512 2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
7513
7514         PR preprocessor/5899
7515         * cppinit.c (init_dependency_output): Don't ignore -dM etc.
7516
7517 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7518
7519         * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
7520
7521         * attribs.c (decl_attributes): Fix signed/unsigned warning.
7522
7523 2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>
7524
7525         * config/mmix/mmix.c: Improve comments.
7526         (mmix_target_asm_function_prologue): Drop variable
7527         empty_stack_frame.  Don't allocate unused slot above fp.
7528         (mmix_target_asm_function_epilogue): Mirror prologue changes.
7529         * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
7530         brace in first column.
7531         (enum reg_class): Ditto.
7532         (FIRST_PARM_OFFSET): Now 0.
7533         (USER_LABEL_PREFIX): Remove #if 0:d definition.
7534
7535 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7536
7537         * combine.c (make_extraction): Fix error in last change.
7538
7539 2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7540
7541         * c4x.c (c4x_fp_reglist): Const-ify.
7542         * cris.c (cris_print_operand): Likewise.
7543         * i386.c (ix86_va_arg): Likewise.
7544         * ia64/unwind-ia64.c (unw_decode_table): Likewise.
7545         * m32r.c (m32r_hard_regno_mode_ok): Likewise.
7546         * m32r.h (m32r_hard_regno_mode_ok): Likewise.
7547         * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
7548         * mcore.h (regno_reg_class): Likewise.
7549         * mips.c (gen_int_relational): Likewise.
7550         * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
7551         * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
7552         * pdp11.c (move_costs): Likewise.
7553         * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
7554         * s390.c (s390_branch_condition_mnemonic, regclass_map):
7555         Likewise.
7556         * s390.h (regclass_map): Likewise.
7557         * sh.c (shift_amounts): Likewise.
7558         * sh.md (rotlsi3): Likewise.
7559
7560 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
7561
7562         * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
7563         (ne0+5): Use new clobber to generate proper shift pattern.
7564         Patch by Michael Matz <matz@kde.org>.
7565
7566 2002-03-09  Andreas Schwab  <schwab@suse.de>
7567
7568         * gcc.c (validate_all_switches): Also handle `%W{...}'.
7569
7570 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
7571
7572         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
7573
7574 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
7575
7576         PR middle-end/5877
7577         * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
7578         even for non-representable constants.
7579
7580 Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7581
7582         * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
7583         * function.c (fixup_var_refs): Add MAY_SHARE parameter.
7584         (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
7585         (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
7586         (pop_function_context): Compute MAY_SHARE parameter for
7587         fixup_var_refs.
7588         (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
7589         (gen_mem_addressof): Call fixup_var_refs with new parm.
7590
7591         * combine.c (make_extraction): Don't make extension of CONST_INT.
7592
7593 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
7594
7595         * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
7596         in o32 and o64 ABIs.
7597         * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
7598         but getting fixed-size structs passed in registers regardless of
7599         padding in o32 and o64 ABIs.
7600
7601         * config/mips/mips.c (mips_va_arg): Apply big-endianness address
7602         offset before loading address of argument passed by transparent
7603         reference.
7604
7605 2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7606
7607         * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
7608
7609 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
7610
7611         * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
7612         marker such that registers after it are saved.
7613
7614 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7615
7616         * sparc.c (arith_4096_operand): Fix error in last change.
7617
7618 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
7619
7620         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
7621         defaults for MEABI.
7622
7623 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
7624
7625         * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
7626         vectors.
7627
7628 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
7629
7630         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
7631
7632 Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>
7633
7634         * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
7635         removed; fix return value.
7636         * combine.c (combine_instructions): Dirtify blocks where we failed to
7637         update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
7638         * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
7639
7640 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7641
7642         * gcse.c (insert_insn_end_bb): Fix typo in last change.
7643
7644 Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>
7645
7646         * recog.c (peephole2_optimize): Re-distribute EH edges.
7647
7648 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
7649
7650         * expr.c (expand_expr): Use unsave lang hook.
7651         * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
7652         (LANG_HOOKS_INITIALIZER): Update.
7653         * langhooks.h (struct lang_hooks): New hook unsave.
7654         * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
7655         (unsave_expr_1): Remove unused lang_unsave_expr_now.
7656         (unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
7657         (unsave_expr_now): Remove.
7658         * tree.h (unsave_expr_now, lang_unsave,
7659         lang_unsave_expr_now): Remove.
7660         (lhd_unsave): New.
7661
7662 2002-03-08  Andreas Jaeger  <aj@suse.de>
7663
7664         * flow.c (propagate_block_delete_insn): Remove unused variable.
7665
7666 2002-03-08  Kazu Hirata  <kazu@hxi.com>
7667
7668         * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
7669         insn length for memory load/store.
7670
7671 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
7672
7673         * doc/install.texi (--with-libiconv-prefix): Document.
7674
7675 2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>
7676
7677         * doc/sourcebuild.texi: Fix typo.
7678
7679 2002-03-08  Jakub Jelinek  <jakub@redhat.com>
7680
7681         PR c/3711
7682         * builtins.c (std_expand_builtin_va_arg): Do all computations on
7683         trees.
7684
7685 Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7686
7687         * rtl.c (copy_most_rtx): Move from here ...
7688         * emit-rtl.c (copy_most_rtx): ... to here.
7689
7690 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
7691
7692         * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
7693         SUBTARGET_CPP_SIZE_SPEC.
7694         * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
7695
7696         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
7697
7698 2002-03-07  Matt Hiller  <hiller@redhat.com>
7699
7700         * gensupport.c (first_dir_md_include): Renamed from include;
7701         change all references.
7702         (last_dir_md_include): Renamed from last_include; change all
7703         references.
7704         (init_md_reader): Unconditionally initialize base_dir whether or
7705         not filename is a relative path.
7706
7707 2002-03-07  Alexandre Oliva  <aoliva@redhat.com>
7708
7709         * config/fp-bit.c (_unord_f2): Compile it in even if
7710         US_SOFTWARE_GOFAST is enabled.
7711
7712         * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
7713         NULL_RTX.  Set all HFmode operations as NULL_RTX.
7714         * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
7715         NULL_RTX, try reversing the comparison and the operands.
7716
7717 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
7718
7719         * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
7720         genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
7721         and MATCH_OP_DUP.
7722
7723 Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
7724
7725         * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
7726
7727 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
7728
7729         * basic-block.h (fixup_abnormal_edges): Declare.
7730         * reload1.c (fixup_abnormal_edges): New function.
7731         * reg-stack.c (convert_regs): Use it.
7732
7733         * gcse.c (insert_insn_end_bb): Handle trapping insns.
7734
7735         * gcse.c (hash_scan_set): Refuse instructions with EH edges.
7736
7737 2002-03-07  Richard Sandiford  <rsandifo@redhat.com>
7738
7739         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
7740         (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
7741         * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
7742         (HONOR_SIGN_DEPENDENT_ROUNDING): New.
7743         * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
7744         * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
7745         unless x and y could be infinite.
7746         (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
7747         Check that the common type of both arguments is a real, even for
7748         targets without unordered comparisons.  Allow an integer argument
7749         to be compared against a real.
7750         (expand_tree_builtin): Use expand_unordered_cmp.
7751         * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
7752         * cse.c (fold_rtx): Likewise.  Fix indentation.
7753         * fold-const.c (fold_real_zero_addition_p): New.
7754         (fold): Use it, and the new HONOR_... macros.
7755         * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
7756         * jump.c (reversed_comparison_code_parts): After searching for
7757         the true comparison mode, use HONOR_NANS to decide whether it
7758         can be safely reversed.
7759         (reverse_condition_maybe_unordered): Remove IEEE check.
7760         * simplify-rtx.c (simplify_binary_operation): Use the new macros
7761         to decide which simplifications are valid.  Allow the following
7762         simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
7763         and (a - -b) to (a + b).
7764         (simplify_relational_operation): Use HONOR_NANS.
7765         * doc/tm.texi: Document the MODE_HAS_... macros.
7766
7767 2002-03-07  Richard Earnshaw  <rearnsha@arm.com>
7768
7769         * combine.c (simplify_comparison): If simplifying a logical shift
7770         right and compare with constant, force the comparison to unsigned.
7771
7772 2002-03-07  Aldy Hernandez  <aldyh@redhat.com>
7773
7774         * doc/invoke.texi: Add documentation for -mabi=no-altivec.
7775
7776         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
7777         -mabi=no-altivec
7778         (alt_reg_names): Remove % for vrsave.
7779
7780 2002-03-06  Richard Henderson  <rth@redhat.com>
7781
7782         PR optimization/5844
7783         * genemit.c (gen_exp): New argument used.  Invoke copy_rtx
7784         if used indicates we've already emitted one copy of an operand.
7785         (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
7786         (gen_split): Supply a non-null used.
7787
7788 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
7789
7790         * reload1.c (reload): Unshare all rtl after reload is done.
7791
7792         * simplify-rtx.c (simplify_plus_minus): Do not abort,
7793         but simply fail if the expression is too complex to simplify.
7794         (simplify_gen_binary): Handle simplify_plus_minus failures.
7795
7796 Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>
7797
7798         * toplev.c (rest_of_compilation): Do jump threading before SSA path;
7799         consistently call delete_trivially_dead_insns after CSE and GCSE;
7800         fix DFI_life dumping; do jump threading after liveness; do crossjumping
7801         after liveness2; update comment in last crossjumping.
7802         * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
7803
7804 Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)
7805
7806         * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
7807         after completing fast dead code elimination.
7808
7809         * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
7810         COMPARE operator.
7811
7812 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
7813
7814         * version.c:  Fix misplaced leading blanks on first line.
7815
7816 Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>
7817
7818         * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
7819
7820 Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>
7821
7822         * cfgcleanup.c (mentions_nonequal_regs): New function.
7823         (thread_jump): Use it.
7824         * toplev.c (rest_of_compilation): Run jump threading after
7825         liveness.
7826
7827 2002-03-06  Jakub Jelinek  <jakub@redhat.com>
7828
7829         * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
7830         patch.
7831
7832 Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>
7833
7834         * predict.c (estimate_bb_frequencies): Do not reload the
7835         frequencies from notes.
7836
7837 Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>
7838
7839         * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
7840         * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
7841
7842         * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
7843         delete_noop_moves): Return indeger.
7844         * flow.c (ndead): New variable.
7845         (propagate_block_delete_insn): Use delete_insn_and_edges; remove
7846         BB argument; update callers.
7847         (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
7848         (life_analysis): Do not call purge_all_dead_edges.
7849         (update_life_info): Return number of deleted insns; print statistics.
7850         (update_life_info_in_dirty_blocks): likewise.
7851         (delete_noop_moves): Use delete_insn_and_edges; print statistics;
7852         return number of insns deleted.
7853
7854         * cse.c: Include timevar.h
7855         (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
7856         iterate until stabilizes; print statistics; return number of killed
7857         insns.
7858         * Makefile.in: (cse.o): Add timevar.h dependency
7859         * rtl.h (delete_trivially_dead_insns): New.
7860         * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
7861         * toplev.c (rest_of_compilation): Update callers.
7862
7863         * cfgcleanup.c (try_optimize_cfg): Kill blocks.
7864         (try_optimize_cfg): Do not update liveness.
7865         (cleanup-cfg): Loop until try_optimize_cfg and dead code
7866         removal stabilizes; use delete_trivially_dead_insns.
7867
7868         * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
7869
7870 2002-03-05  Zack Weinberg  <zack@codesourcery.com>
7871
7872         * cppmain.c (setup_callbacks): Disable #pragma and #ident
7873         callbacks when processing assembly language.
7874
7875 2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7876
7877         * pa.h (ASM_FILE_END): Define.
7878         * som.h (ASM_FILE_END): Delete.
7879
7880         * pa.c (function_arg): Don't pass floats in general registers in
7881         indirect calls if TARGET_ELF32.
7882
7883 2002-03-05  Richard Henderson  <rth@redhat.com>
7884
7885         * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
7886
7887 2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
7888
7889         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
7890
7891 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
7892
7893         * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
7894         -r command line.  Don't hide any symbols if not building
7895         shared libgcc.
7896
7897 Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>
7898
7899         * cfg.c (dump_flow_info): Warn about profile mismatches.
7900         * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
7901         (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
7902
7903 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
7904
7905         * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
7906         wide volatile memory by parts.
7907
7908 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
7909
7910         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
7911         is NULL.
7912
7913 2002-03-05  Richard Henderson  <rth@redhat.com>
7914
7915         * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
7916
7917 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
7918
7919         * toplev.c (documented_lang_options): Document more
7920         language-specific options.
7921         * doc/invoke.texi (Warning Options): Correct documentation for
7922         -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
7923         * c-decl.c (c_decode_option): Use a table to handle warning options.
7924
7925 2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
7926
7927         * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
7928         parameter to mmix_encode_section_info.
7929         (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
7930         relocatably.  Always produce ELF, not mmo if linking relocatably.
7931         * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
7932         first is non-zero, don't add symbol prefix.
7933         * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
7934         prototype accordingly.
7935
7936 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
7937
7938         * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
7939
7940 2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>
7941
7942         * configure.in: Increase required makeinfo version to 4.1.
7943         * configure: Regenerate.
7944
7945 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
7946
7947         * .cvsignore: Remove *.info* and genrtl*; these files are generated
7948         elsewhere now.
7949
7950 2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>
7951
7952         * doc/include/texinfo.tex: Update to version 2002-03-01.06.
7953         * doc/invoke.texi: Fix @math uses.
7954
7955 Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
7956
7957         * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
7958         removal
7959
7960 2002-03-03  Aldy Hernandez  <aldyh@redhat.com>
7961
7962         * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
7963         (powerpc-*-eabisimaltivec*): Same.
7964
7965         * config/rs6000/t-ppcendian: New.
7966
7967 2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7968
7969         * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
7970         nonimmediate_src_operand and nonimmediate_lsrc_operand to
7971         disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
7972
7973 2002-03-03  Richard Henderson  <rth@redhat.com>
7974
7975         * toplev.c (rest_of_decl_compilation): Revert last two changes.
7976
7977 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
7978
7979         * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
7980         print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
7981         tree.c, config/m68k/m68k.c:
7982         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
7983         REAL_ARITHMETIC blocks unconditional.  Delete some further
7984         #ifdef blocks predicated on REAL_ARITHMETIC.
7985         * flags.h, toplev.c: Delete remaining references to
7986         flag_pretend_float.
7987
7988         * doc/invoke.texi: Remove documentation of -fpretend-float.
7989         * doc/tm.texi: Describe the various REAL_* macros as provided by
7990         real.h, not by the target configuration files.
7991
7992         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
7993         config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
7994         config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
7995         config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
7996         config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
7997         config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
7998         config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
7999         config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
8000         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
8001         config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
8002         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
8003         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
8004         config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
8005         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
8006         config/xtensa/xtensa.h:
8007         Do not define, undefine, or mention in comments any of
8008         REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
8009         REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
8010         REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
8011         REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
8012         REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
8013         REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
8014         REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
8015         REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
8016         REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
8017
8018 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8019
8020         * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
8021         convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
8022         i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
8023         m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
8024         pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
8025         stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
8026         Delete.
8027         * defaults.h (BITS_PER_WORD): Define.
8028         * doc/tm.texi (BITS_PER_WORD): Document default value.
8029
8030         * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
8031         m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
8032         stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
8033
8034 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8035
8036         * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
8037         lieu of explicit sizeof/sizeof.
8038         * i386.c (override_options, ix86_init_mmx_sse_builtins,
8039         ix86_expand_builtin): Likewise.
8040         * mips.c (mips_add_gc_roots): Likewise.
8041         * mmix.c (mmix_output_condition): Likewise.
8042         * rs6000.c (rs6000_override_options, altivec_expand_builtin,
8043         altivec_init_builtins): Likewise.
8044         * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
8045         * cppexp.c (Nsuff, parse_number): Likewise.
8046         * cppinit.c (builtin_array_end): Likewise.
8047         * gcc.c (n_default_compilers, process_command): Likewise.
8048         * genpreds.c (output_predicate_decls): Likewise.
8049         * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
8050         * lcm.c (N_ENTITIES): Likewise.
8051         * stor-layout.c (set_sizetype): Likewise.
8052
8053 2002-03-03  Richard Henderson  <rth@redhat.com>
8054
8055         * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
8056         for types or labels.
8057
8058 2002-03-03  Richard Henderson  <rth@redhat.com>
8059
8060         * c-decl.c (start_decl): Initialized variables are not common.
8061
8062 2002-03-02  Per Bothner  <per@bothner.com>
8063
8064         * gcc.c (option_map):  Suport new --bootclasspath option.
8065         --CLASSPATH is now just an alias for --classpath.
8066
8067 2002-03-02  Richard Henderson  <rth@redhat.com>
8068
8069         * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
8070         load if "internal" visibility.
8071         * doc/extend.texi: Document visibility meanings.
8072
8073 2002-03-02  Richard Henderson  <rth@redhat.com>
8074
8075         * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
8076         to functions as well.
8077
8078 2002-03-02  Richard Henderson  <rth@redhat.com>
8079
8080         * attribs.c (handle_alias_attribute): Don't call assemble_alias.
8081         (handle_visibility_attribute): Don't call assemble_visibility.
8082         * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
8083         without asmspec.  Invoke assemble_alias when needed.
8084         * varasm.c (maybe_assemble_visibility): New.
8085         (assemble_start_function, assemble_variable, assemble_alias): Use it.
8086
8087 2002-03-02  Richard Henderson  <rth@redhat.com>
8088
8089         * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
8090         invoke ENCODE_SECTION_INFO with first call flag.
8091
8092         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
8093         config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
8094         config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
8095         config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
8096         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
8097         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
8098         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
8099         config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
8100         config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
8101         config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
8102         config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
8103         config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
8104         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
8105         config/m68hc11/m68hc11.h, config/m88k/m88k.h,
8106         config/mcore/mcore-protos.h, config/mcore/mcore.c,
8107         config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
8108         config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
8109         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
8110         config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
8111         config/sh/sh.h, config/sparc/sparc.h,
8112         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
8113         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
8114         config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
8115         FIRST argument.  As needed, examine it and do nothing.
8116
8117         * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
8118         config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
8119         config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
8120
8121         * config/arm/t-pe (pe.o): Add dependencies.
8122
8123 2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8124
8125         * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
8126         cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
8127         i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
8128         mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
8129         pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
8130         vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
8131         * defaults.h (BITS_PER_UNIT): Define.
8132         * doc/tm.texi (BITS_PER_UNIT): Document default value.
8133
8134 2002-03-02  Kazu Hirata  <kazu@hxi.com>
8135
8136         * config/h8300/h8300-protos.h: Add a prototype for
8137         compute_a_shift_length.
8138         * config/h8300/h8300.c (h8300_asm_insn_count): New.
8139         (compute_a_shift_length): Likewise.
8140         (h8300_adjust_insn_length): Do not adjust insn length of shift
8141         insns.
8142         * config/h8300/h8300.md (anonymous shift patterns): Use
8143         compute_a_shift_length.
8144
8145 Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8146
8147         * config/sparc/sparc.c (sparc_initialize_trampoline): Use
8148         trunc_int_for_mode.
8149
8150         * emit-rtl.c (offset_address): Call update_temp_slot_address.
8151
8152 2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8153
8154         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
8155         * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
8156         * flags.h (flag_zero_initialized_in_bss): Declare.
8157         * toplev.c (flag_zero_initialized_in_bss): New flag.
8158         (lang_independent_options): Add flag_zero_initialized_in_bss.
8159         * tree.c (initializer_zerop): New function.
8160         * tree.h (initializer_zerop): Declare.
8161         * varasm.c (assemble_variable): If we can emit bss, put zero
8162         initializers in the bss section.
8163
8164 2002-03-02  Alan Modra  <amodra@bigpond.net.au>
8165
8166         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
8167         like more than one symbol per .weak directive.
8168
8169 2002-03-01  Richard Henderson  <rth@redhat.com>
8170
8171         * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
8172         adjust argument_pointer by pretend_args_size.
8173         (ia64_va_start): Adjust va_start address by -pretend_args_size.
8174
8175 2002-03-01  Kazu Hirata  <kazu@hxi.com>
8176
8177         * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
8178
8179 Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
8180
8181         * toplev.c (rest_of_compilation): Delete dead jumptables before
8182         loop.
8183         * flow.c (delete_dead_jumptables): Make global.
8184         * rtl.h (delete_dead_jumptables): Declare.
8185
8186 2002-03-01  David Edelsohn  <edelsohn@gnu.org>
8187
8188         * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
8189         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
8190         * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.
8191
8192 2002-03-01  Kazu Hirata  <kazu@hxi.com>
8193
8194         * config/h8300/h8300-protos.h: Fix formatting.
8195         * config/h8300/h8300.c: Likewise.
8196         * config/h8300/h8300.h: Likewise.
8197
8198 2002-03-01  Kazu Hirata  <kazu@hxi.com>
8199
8200         * config/h8300/h8300.c (print_operand): Support 16-bit
8201         constant addresses.
8202         * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
8203
8204 2002-02-28  Richard Henderson  <rth@redhat.com>
8205
8206         * expmed.c (store_bit_field): Prevent generation of CONCATs;
8207         pun complex values as integers; use gen_lowpart instead of
8208         gen_rtx_SUBREG.
8209         (extract_bit_field): Likewise.
8210
8211 2002-03-01  Alan Modra  <amodra@bigpond.net.au>
8212             David Edelsohn  <edelsohn@gnu.org>
8213
8214         * doc/tm.texi (ASM_WEAKEN_DECL): Document.
8215         (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
8216         (SUPPORTS_WEAK): Likewise.
8217         * output.h (add_weak): Add tree param.
8218         * varasm.c (add_weak): Likewise.  Save decl.
8219         (struct weak_syms): Add decl field.
8220         (mark_weak_decls): New function.
8221         (init_varasm_once): ggc_add_root mark_weak_decls.
8222         (assemble_start_function): Use ASM_WEAKEN_DECL.
8223         (assemble_variable): Likewise.
8224         (assemble_alias): Likewise.
8225         (declare_weak): Pass decl to add_weak.
8226         (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
8227         (remove_from_pending_weak_list): Declare and define for
8228         ASM_WEAKEN_DECL.
8229         * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
8230         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
8231         * defaults.h (SUPPORTS_WEAK): Likewise.
8232         * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
8233         .weak for code sym.  Do emit .size for descriptor sym.
8234         (ASM_DECLARE_FUNCTION_SIZE): Define.
8235         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
8236         (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
8237         .lglobl unless TARGET_XCOFF.  Formatting fixes.
8238         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
8239         .weak for code sym.
8240         (HANDLE_PRAGMA_WEAK): Remove.
8241         (ASM_WEAKEN_LABEL): Remove.
8242         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
8243
8244 2002-03-01  Jason Merrill  <jason@redhat.com>
8245
8246         * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
8247         (TARGET_EXPR_CLEANUP): New macro.
8248
8249 2002-02-28  Steve Ellcey  <sje@cup.hp.com>
8250
8251         * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
8252         to take ptr_extend into account as third type of extension.
8253         (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
8254         fields used by SUBREG_PROMOTED_UNSIGNED_P.
8255         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
8256         (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
8257         * calls.c (precompute_arguments): Use new macro.
8258         (expand_call): Ditto.
8259         * combine.c (nonzero_bits): Ditto.
8260         (record_promoted_value): Ditto.
8261         * expr.c (store_expr): Ditto.
8262         (expand_expr): Ditto.
8263         * function.c (assign_parms): Ditto.
8264
8265 2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
8266
8267         * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
8268         override -shared and -shared-libgcc.
8269
8270 2002-02-28  David O'Brien  <obrien@FreeBSD.org>
8271
8272         * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
8273         of "ultrasparc".
8274         * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
8275         to be broken.
8276
8277 2002-02-28  Richard Henderson  <rth@redhat.com>
8278
8279         * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
8280         4 cycle latency from MM producers.
8281         (ia64_internal_sched_reorder): Likewise with pipeline flush.
8282
8283 2002-02-28  Jakub Jelinek  <jakub@redhat.com>
8284
8285         * mklibgcc.in: Don't use GNU make extension.
8286
8287 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
8288
8289         * c-parse.in (STATIC): New terminal.
8290         (scspec): New non-terminal.  Update productions accordingly.
8291         (program): Remove bogus ifc / end ifc.
8292         (array_declarator): Simplify production using STATIC.
8293
8294 2002-02-28  Jim Meyering  <meyering@lucent.com>
8295
8296         * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
8297         \a still means TARGET_BELL.
8298
8299 2002-02-28  Richard Henderson  <rth@redhat.com>
8300
8301         * haifa-sched.c (sched_emit_insn): New.
8302         (schedule_block): Use last_scheduled_insn to track last insn.
8303         * sched-int.h (sched_emit_insn): Prototype.
8304         * config/ia64/ia64.c (last_issued): Remove.
8305         (ia64_variable_issue): Don't set it.
8306         (nop_cycles_until): Use sched_emit_insn.
8307
8308 2002-02-28  Andrew MacLeod  <amacleod@redhat.com>
8309
8310         * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
8311         extended constants.
8312
8313 2002-02-28  Kazu Hirata  <kazu@hxi.com>
8314
8315         * config/h8300/h8300.c: Fix formatting.
8316         * config/h8300/h8300.h: Likewise.
8317
8318 2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
8319
8320         * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
8321         which may overwrite the high byte of the frame pointer.
8322
8323 2002-02-28  Bo Thorsen  <bo@suse.de>
8324
8325         * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
8326         (STARTFILE_SPEC): Add 64 bit files.
8327         (ENDFILE_SPEC): Likewise.
8328
8329 2002-02-28  Jason Merrill  <jason@redhat.com>
8330
8331         * c-decl.c (finish_function): Only warn about missing return
8332         statement with -Wreturn-type.
8333
8334 Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>
8335
8336         * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
8337
8338         * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
8339         PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
8340
8341 Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>
8342
8343         * basic-block.h (BB_REACHABLE): Renumber.
8344         (BB_DIRTY, BB_NEW): New flags.
8345         (clear_bb_flags): Declare.
8346         (update_life_info_in_dirty_blocks): Declare.
8347         * cfg.c (clear_bb_flags): New function.
8348         * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
8349         * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
8350         reorder_insns, emit_insn_after): Mark block as dirty.
8351         * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
8352         (update_life_info_in_dirty_blocks): New function.
8353         * recog.c (apply_change_group): Dirtify block.
8354
8355         * cse.c (cse_insn): Reorder emitting of jump insn to keep
8356         cfg consistent.
8357         * gcse.c (delete_null_pointer_checks): Likewise.
8358
8359         * toplev.c (dump_file_index): Move cse2 after bp,
8360         add DFI_null
8361         (dump_file_info): Similary.
8362         (rest_of_compilation): Avoid most of CFG rebuilds;
8363         do first if converision after null pointer checks, do cse2
8364         after branch prediction; avoid full liveness rebuild after
8365         initializing subregs.
8366         * invoke.texi (-d options): Document -du, renumber.
8367
8368         * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
8369         (notice_new_block): Do not set BB_UPDATE_LIFE.
8370         (try_forward_edges, merge_blocks_move_predecessor_nojumps,
8371          merge_blocks_move_successor_nojumps, merge_blocks,
8372          try_crossjump_to_edge): Likewise.
8373         (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
8374         * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
8375         * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
8376         (merge_of_block): Do not use life_data_ok.
8377         (find_if_case_1): Do not use SET_UPDATE_LIFE.
8378         (if_convert): Use BB_DIRTY mechanizm to update life.
8379         * lcm.c (optimize_mode_switching): Update
8380         update_life_info_in_dirty_blocks
8381
8382 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
8383
8384         * Makefile.in (integrate.o): Update.
8385         * c-decl.c (copy_lang_decl): Rename.
8386         * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
8387         * integrate.c: Include langhooks.h.
8388         (copy_decl_for_inlining): Update to use langhook.
8389         * langhooks-def.h (lhd_do_nothing_t,
8390         LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
8391         (LANG_HOOKS_INITIALIZER): Update.
8392         * langhooks.c (lhd_do_nothing_t): New.
8393         * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
8394         * tree.h (copy_lang_decl): Remove.
8395 objc:
8396         * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
8397
8398 2002-02-27  Andrew MacLeod  <amacleod@redhat.com>
8399
8400         * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
8401         POST_DEC, and POST_MODIFY.
8402
8403 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
8404
8405         * c-typeck.c (digest_init): Remove unused parameter; all
8406         callers changed.
8407
8408 2002-02-27  Geoffrey Keating  <geoffk@redhat.com>
8409
8410         * expmed.c (expand_shift): Correctly test for low part of a
8411         subreg.
8412
8413 2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>
8414
8415         * config/s390/s390.c (s390_chunkify_pool): Do not confuse
8416         insn UIDs with insn addresses.
8417
8418 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
8419
8420         * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
8421         c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
8422         cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
8423         builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
8424         gcc.c, toplev.c: Delete code implementing -traditional mode.
8425
8426         * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
8427         doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
8428         Document removal of -traditional mode for compilation, and
8429         remove documentation only relevant to that mode.
8430
8431         * config/nextstep.h, config/ptx4.h, config/svr4.h,
8432         config/convex/convex.h, config/d30v/d30v.h,
8433         config/i386/dgux.h, config/i386/osf1elf.h,
8434         config/i386/osfelf.h, config/i386/osfrose.h,
8435         config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
8436         config/m68k/hp310.h, config/m88k/dgux.h,
8437         config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
8438         config/m88k/m88k.h, config/m88k/openbsd.h,
8439         config/mips/abi64.h, config/mips/osfrose.h,
8440         config/mips/svr4-5.h, config/mips/svr4-t.h,
8441         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
8442         config/stormy16/stormy16.h: Remove all references to
8443         -traditional from target specs.  Delete all mention of the
8444         no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
8445         delete a couple of commented-out definitions of
8446         DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
8447         to -traditional.
8448
8449         * system.h: Poison TRADITIONAL_RETURN_FLOAT.
8450         * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
8451
8452 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
8453
8454         * mklibgcc.in: Don't use \n in a line subject to
8455         interpretation by echo.
8456
8457 2002-02-27  Graham Stott  <grahams@redhat.com>
8458
8459         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
8460         Constify NAME.
8461
8462         * loop.c (prescan_loop): Handle PARALLEL.
8463
8464         * unroll.c (loop_iterations): Return 0 if the add_val for
8465         a BIV is REG.
8466
8467         * final.c (output_operand_lossage): Constify PFX_STR.
8468
8469         * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
8470
8471 Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>
8472
8473         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
8474         * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
8475
8476 Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>
8477
8478         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
8479
8480 2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>
8481
8482         * cpplex.c (_cpp_lex_token): Handle directives in macro
8483         arguments.
8484         * cpplib.c (_cpp_handle_directive): Save and restore state
8485         if parsing macro args when entering a directive.
8486         * cppmacro.c (collect_args): No need to handle directives
8487         in macro arguments.
8488         (enter_macro_context, replace_args): Use the original macro
8489         definition in case it was redefined whilst collecting arguments.
8490 doc:
8491         * cpp.texi: Update.
8492
8493 2002-02-26  David Edelsohn  <edelsohn@gnu.org>
8494
8495         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
8496         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
8497         * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
8498         method on AIX.
8499         * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
8500         (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
8501         (load_toc_v4_PIC_2): Same.
8502
8503 2002-02-26  Alan Modra  <amodra@bigpond.net.au>
8504
8505         * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
8506
8507 2002-02-26  Richard Henderson  <rth@redhat.com>
8508
8509         * config/alpha/alpha.md (ashldi_se): Re-enable.
8510
8511 2002-02-26  Richard Henderson  <rth@redhat.com>
8512
8513         * config/alpha/alpha.c (alpha_encode_section_info): Examine
8514         MODULE_LOCAL_P; improve commentary.
8515
8516 2002-02-26  Zack Weinberg  <zack@codesourcery.com>
8517
8518         * doc/cpp.texi: Clarify documentation of relationship between
8519         #line and #include.
8520
8521 2002-02-26  Kazu Hirata  <kazu@hxi.com>
8522
8523         * config/h8300/h8300-protos.h: Update the prototype for
8524         compute_logical_op_length.  Add the prototype for
8525         compute_logical_op_cc.
8526         * config/h8300/h8300.c (compute_logical_op_length): Figure out
8527         code from operands.
8528         (compute_logical_op_cc): New.
8529         * config/h8300/h8300.md: Combine all the logical op patterns
8530         in HImode and SImode.  Use compute_logical_op_cc.
8531
8532 2002-02-26  Kelley Cook  <kelleycook@comcast.net>
8533
8534         * config/i386/i386.c (print_operand): Don't append ATT-style
8535         length suffixs to x87 opcodes when in Intel mode.
8536
8537 2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>
8538
8539         * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
8540         (init_emit_once): Update calls.
8541         * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
8542         (init_syntax_once): Prototype.
8543
8544 2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8545
8546         * pa-linux.h (LIB_SPEC): Update definition.
8547         * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
8548
8549 2002-02-26  Richard Henderson  <rth@redhat.com>
8550
8551         * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
8552         if we emitted a stop bit.
8553
8554 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
8555
8556         * configure.in (libgcc_visibility): Substitute.
8557         * configure: Rebuilt.
8558         * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
8559         defined symbols .hidden.
8560
8561 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
8562
8563         * attribs.c (c_common_attribute_table): Add visibility.
8564         (handle_visibility_attribute): New function.
8565         * varasm.c (assemble_visibility): New function.
8566         * output.h (assemble_visibility): Add prototype.
8567         * tree.h (MODULE_LOCAL_P): Define.
8568         * crtstuff.c (__dso_handle): Use visibility attribute.
8569         * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
8570         for MODULE_LOCAL_P symbols too.
8571         * config/ia64/ia64.c (ia64_encode_section_info): Handle
8572         MODULE_LOCAL_P symbols the same way as local symbols.
8573         Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
8574         into .sdata/.sbss by the user.
8575         * doc/extend.texi (Function Attributes): Document visibility
8576         attribute.
8577
8578 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
8579
8580         PR debug/5770
8581         * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
8582         STRING_CST initializer spanning the whole variable without
8583         embedded zeros.
8584         If expand_expr returned MEM, don't use it.
8585
8586 2002-02-26  Alexandre Oliva  <aoliva@redhat.com>
8587
8588         * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
8589         generate a die for the lexical block.
8590
8591 2002-02-26  Kazu Hirata  <kazu@hxi.com>
8592
8593         * config/h8300/h8300-protos.h: Add a prototype for
8594         compute_logical_op_length.
8595         * config/h8300/h8300.c (compute_logical_op_length): New.
8596         * config/h8300/h8300.md (anonymous logical patterns): Use
8597         compute_logical_op_length for length.
8598
8599 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
8600
8601         * dwarf2out.c (modified_type_die): Do not call type_main_variant
8602         for vectors.
8603         (gen_type_die): Same.
8604
8605         * attribs.c (handle_vector_size_attribute): Set debug information.
8606
8607 2002-02-26  Daniel Egger  <degger@fhm.edu>
8608
8609         * config/rs6000/rs6000.md: Swap define_insn attributes to
8610         fix incorrect generation of merge high instructions instead
8611         of merge low.
8612
8613 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
8614
8615         * c-typeck.c (really_start_incremental_init): Use
8616         bitsize_zero_node for vectors.
8617
8618 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
8619
8620         * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
8621         ("*set_vrsave_internal"): Same.
8622
8623 2002-02-25  Richard Henderson  <rth@redhat.com>
8624
8625         * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
8626         in EXPAND_SUM case.  Use host_integerp/tree_low_cst.
8627
8628 2002-02-25  Jakub Jelinek  <jakub@redhat.com>
8629
8630         PR target/5755
8631         * config/i386/i386.c (ix86_return_pops_args): Only pop
8632         fake structure return argument if it was passed on the stack.
8633
8634 2002-02-25  Jason Merrill  <jason@redhat.com>
8635
8636         * attribs.c (decl_attributes): Also re-layout PARM_DECL and
8637         RESULT_DECL.
8638
8639 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
8640
8641         * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
8642         link with shared_name only.
8643         * doc/invoke.texi (Link Options): Document new behavior.
8644
8645 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
8646
8647         * c-typeck.c (push_init_level): Handle vectors.
8648
8649 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
8650
8651         * config/sparc/sparc.c (const64_high_operand): Zero-extend
8652         operands of SPARC_SETHI_P.
8653         (input_operand): Likewise.
8654         (sparc_emit_set_const32): Likewise.
8655         * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
8656         (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
8657         (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
8658         * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
8659         (movdi_insn_sp64_vis): Likewise.
8660         (movdi split, movdf split): Use SETHI32.
8661         * doc/md.texi: Document SPARC constraints L, M and N.
8662
8663 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
8664
8665         * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
8666         ("*set_vrsave_internal"): use mfspr for Darwin.
8667
8668         * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
8669         gen_get_vrsave_internal.
8670
8671 Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8672
8673         * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
8674
8675 2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>
8676
8677         * cpplex.c (cpp_interpret_charconst): Get signedness or
8678         otherwise of wide character constants correct.
8679         * cppexp.c (lex): Get signedness of wide charconsts correct.
8680
8681 Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8682
8683         * optabs.c (widen_operand): Only call convert_modes for
8684         promoted SUBREG if signedness matches.
8685         * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
8686
8687 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
8688
8689         * cpplib.c (glue_header_name): Use local buffer to build up
8690         header name.
8691
8692 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
8693
8694         * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
8695
8696 2002-02-23  Kazu Hirata  <kazu@hxi.com>
8697
8698         * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
8699         H8/300[HS] separately.
8700         * config/h8300/h8300.md: Remove the early clobber constraint
8701         from bit field patterns.
8702
8703 2002-02-23  Kazu Hirata  <kazu@hxi.com>
8704
8705         * config/h8300/h8300.md (mulqihi3): Tighten predicates to
8706         register_operand.
8707         (mulhisi3): Likewise.
8708         (umulqisi3): Likewise.
8709         (umulhisi3): Likewise.
8710
8711 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
8712
8713         * cppinit.c (output_deps): Correct test for stdout output.
8714         (init_dependency_output): Cure warning.
8715
8716 Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8717
8718         * expr.c (store_expr): When converting expression to promoted
8719         equivalent type, allow using SUBREG_REG of TARGET as the target
8720         of the expansion of EXP.
8721         * loop.c (basic_induction_var, case SUBREG): Always look inside.
8722         * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
8723         (alpha_emit_set_const): Handle SImode when can't make new pseudos.
8724         (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
8725         * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
8726
8727 2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>
8728
8729         * doc/contribute.texi, doc/extend.texi, doc/install.texi,
8730         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
8731         doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
8732
8733 2002-02-23  Jakub Jelinek  <jakub@redhat.com>
8734
8735         PR optimization/5747
8736         * loop.c (scan_loop): Update reg info if move_movables created new
8737         pseudos.
8738
8739 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
8740
8741         * gcc.c (init_gcc_spec): Revert last change.
8742
8743 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
8744
8745         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
8746         gpc_reg_operand constraint.
8747
8748 2002-02-23  Alan Modra  <amodra@bigpond.net.au>
8749
8750         * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
8751         Simplify comparison of `low'.
8752         (add_operand): Fix formatting.
8753         (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
8754         (mask_operand): Disallow mask to wrap in 64-bit mode.
8755         (rs6000_stack_info): Remove redundant test setting push_p.
8756         (output_toc): Fix formatting.
8757         * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
8758         cc_reg_not_cr0_operand constraint.
8759         (booldi3, boolcdi3 splitters): Same.
8760
8761 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
8762
8763         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
8764
8765 2002-02-22  David Edelsohn  <edelsohn@gnu.org>
8766
8767         * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
8768         gcc invoked with -shared-libgcc.
8769
8770 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
8771
8772         PR c++/5748
8773         * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
8774         decl if any of elements was TREE_USED.
8775
8776 2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
8777
8778         * config/sparc/sol2.h: Don't include sys/mman.h.
8779         * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
8780         (arith_4096_operand): Don't throw high bits away.
8781         (const64_operand): Take sign extension of CONST_INTs into account.
8782         (const64_high_operand, sparc_emit_set_const32): Likewise.
8783         (GEN_HIGHINT64): Likewise.
8784         (sparc_emit_set_const64_quick1): Likewise.
8785         (const64_is_2insns): Likewise.
8786         (print_operand): Use trunc_int_for_mode for sign extension.
8787         * config/sparc/sparc.h (SMALL_INT32): Likewise.
8788         * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
8789         chars.  Assume CONST_INT is already properly sign-extended.
8790         (movdi split): Sign-extend each SImode part.
8791         (andsi3 split): Don't mask high bits off, so that result
8792         remains properly sign-extend.
8793         (iorsi3 split): Likewise.
8794         (xorsi3 split): Likewise.
8795
8796 2002-02-22  Richard Sandiford  <rsandifo@redhat.com>
8797
8798         * fold-const.c (fold): Fix typo in comments.
8799
8800 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
8801
8802         * Makefile.in (langhooks.o): Update dependencies.
8803
8804 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
8805
8806         * langhooks.c: Include flags.h.
8807
8808 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
8809
8810         * testsuite/gcc.dg/attr-alwaysinline.c: New.
8811
8812         * c-common.c (c_common_post_options): Set inline trees by
8813         default.
8814
8815         * doc/extend.texi (Function Attributes): Document always_inline
8816         attribute.
8817         Update documentation about inlining when not optimizing.
8818
8819         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
8820
8821         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
8822         unless DECL_ALWAYS_INLINE.
8823
8824         * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
8825         unless DECL_ALWAYS_INLINE.
8826         (c_disregard_inline_limits): Disregard if always_inline set.
8827
8828         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
8829         Disregard if always_inline set.
8830         (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
8831         unless DECL_ALWAYS_INLINE.
8832
8833         * attribs.c (handle_always_inline_attribute): New.
8834         (c_common_attribute_table): Add always_inline.
8835
8836         * config/rs6000/altivec.h: Add prototypes for builtins
8837         requiring the always_inline attribute.
8838
8839 2002-02-21  Eric Christopher  <echristo@redhat.com>
8840
8841         * expmed.c (store_bit_field): Try to simplify the subreg
8842         before generating a new one when when the mode size of
8843         value is less than maxmode.
8844
8845 2002-02-21  Richard Henderson  <rth@redhat.com>
8846
8847         * emit-rtl.c (offset_address): Use simplify_gen_binary rather
8848         than gen_rtx_PLUS to form the sum.
8849         * explow.c (force_reg): Rearrange to not allocate new pseudo
8850         when force_operand returns a register.
8851         * expr.c (expand_assignment): Allow offset_rtx expansion to
8852         return a sum.  Do not force addresses into registers.
8853         (expand_expr): Likewise.
8854         * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
8855         to canonicalize arithmetic that didn't simpify.
8856         (simplify_plus_minus): New argument force; update
8857         all callers.  Don't split CONST unless we can do something with it,
8858         and wouldn't lose the constness of the operands.
8859
8860         * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
8861         that we generated earlier.
8862
8863 2002-02-21  Tom Tromey  <tromey@redhat.com>
8864
8865         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
8866         (output_line_info): Use constant `1', with a long explanatory
8867         comment.
8868         * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
8869
8870 Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
8871
8872         * jump.c (redirect_jump): If old label has no UID, don't try to
8873         delete it.
8874
8875 Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>
8876
8877         * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
8878         If input is constant, do shifts at compile time.
8879
8880 2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>
8881
8882         * doc/extend.texi: Fix some more overfull hboxes.
8883
8884 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
8885
8886         PR optimization/4994
8887         * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
8888         register moves.
8889
8890 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
8891
8892         PR c++/4574
8893         * expr.h (expand_and): Add mode argument.
8894         * expmed.c (expand_and): Add mode argument.
8895         (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
8896         * expr.c (store_field, expand_expr, do_store_flag): Likewise.
8897         * except.c (expand_builtin_extract_return_addr): Likewise.
8898         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
8899         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
8900         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
8901         Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
8902         * config/c4x/c4x.md: Use GEN_INT (x) instead of
8903         gen_rtx (CONST_INT, VOIDmode, x).
8904
8905 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
8906
8907         PR c/4697:
8908         * stmt.c (warn_if_unused_value): Move side effects test once more.
8909
8910 2002-02-20  Torbjorn Granlund  <tege@swox.com>
8911
8912         * config/avr/avr.md: Add more patterns for mized-mode add and subtract
8913         (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
8914
8915 Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>
8916
8917         * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
8918         SUBREG or ZERO_EXTEND.
8919
8920 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
8921
8922         * sh.h (current_function_anonymous_args): Remove.
8923         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
8924         of current_function_varargs and current_function_stdarg is set.
8925         * sh.c (sh_expand_prologue): Check current_function_varargs /
8926         current_function_stdarg / TARGET_SH5 instead of
8927         current_function_anonymous_args.
8928
8929         * sh64.h (TARGET_VERSION): Define.
8930
8931 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
8932
8933         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
8934         VRSAVE_REGNO on TARGET_ALTIVEC.
8935
8936 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
8937
8938         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
8939         bits of SImode const_int.
8940         (includes_rshift_p): Likewise.
8941         (print_operand): Call mask_operand and mask64_operand with correct
8942         mode.
8943         (rs6000_output_function_epilogue): Pad traceback table to word.
8944         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
8945         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
8946         mask64_operand with correct mode.
8947         (FUNCTION_ARG_REGNO_P): Correct parentheses.
8948
8949 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
8950
8951         PR debug/4461
8952         * varasm.c (get_pool_constant_mark): New.
8953         * rtl.h (get_pool_constant_mark): Add prototype.
8954         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
8955         be represented if it has not been output.
8956
8957 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
8958
8959         * combine.c (do_SUBST): Sanity check substitutions of
8960         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
8961         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
8962         CONST_INT into its operand.
8963         (known_cond): Likewise, for ZERO_EXTEND.
8964         * simplify-rtx.c (simplify_unary_operation): Fix condition to
8965         allow for simplification of wide modes.  Reject CONST_INTs in
8966         ZERO_EXTEND when their actual mode is not given.
8967
8968 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
8969
8970         * c-decl.c (pushdecl): If no global declaration is found for an
8971         extern declaration in block scope, try a limbo one.
8972
8973 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
8974
8975         PR c++/4401
8976         * c-common.c (pointer_int_sum): Moved from...
8977         * c-typeck.c (pointer_int_sum): ...here.
8978         * c-common.h (pointer_int_sum): Add prototype.
8979
8980 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
8981
8982         PR c++/5713
8983         * c-decl.c (duplicate_decls): Return 0 if issued error about
8984         redeclaration.
8985
8986 2002-02-20  Roger Sayle  <roger@eyesopen.com>
8987             Jakub Jelinek  <jakub@redhat.com>
8988
8989         PR c/4389
8990         * tree.c (host_integerp): Ensure that the constant integer is
8991         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
8992         when pos is zero or non-zero respectively.  Clarify comment.
8993         * c-format.c (check_format_info_recurse): Fix host_integerp
8994         usage; the pos argument should be zero when assigning to a
8995         signed HOST_WIDE_INT.
8996
8997 2002-02-20  Richard Henderson  <rth@redhat.com>
8998
8999         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
9000         of the operand, rather than assuming TImode.
9001         (ix86_expand_binop_builtin): Cope with commutative patterns
9002         using nonimmediate_operand for both operands.
9003         (ix86_expand_timode_binop_builtin): Likewise.
9004         (ix86_expand_store_builtin): Validate operand 1.
9005         (ix86_expand_unop1_builtin): Likewise.
9006
9007 2002-02-20  Philip Blundell  <philb@gnu.org>
9008
9009         PR 5705
9010         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
9011
9012 2002-02-20  Richard Henderson  <rth@redhat.com>
9013
9014         PR c/5615
9015         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
9016
9017 2002-02-20  Tom Tromey  <tromey@redhat.com>
9018
9019         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
9020         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
9021         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
9022         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
9023         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
9024         unconditionally.
9025
9026 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
9027
9028         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
9029           for (const_int 0) in X not just INTVAL.
9030
9031 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
9032
9033         * doc/extend.texi: Avoid or reduce overfull hboxes.
9034
9035 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
9036
9037         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
9038         operations if the field does not start at a mode boundary.
9039
9040 2001-02-20      Joel Sherrill <joel@OARcorp.com>
9041
9042         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
9043         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
9044         Also done for -Acpu and -Amachine.
9045
9046 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
9047
9048         * cppinit.c (init_dependency_output): Take deps output file
9049         from -o if none given with -MF.  Suppress normal output.
9050         * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
9051         * doc/cpp.texi, doc/invoke.texi: Update.
9052
9053 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
9054
9055         * toplev.c (output_quoted_string): Write unprintable
9056         characters with octal escapes.
9057
9058 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
9059
9060         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
9061         really_call_used[VRSAVE_REGNO] if not Altivec.
9062
9063 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
9064
9065         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
9066         MODE_MASK.
9067         (constant_pool_expr_1): Fix formatting.
9068         (rs6000_legitimize_reload_address): Likewise.
9069
9070 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9071
9072         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
9073         now that we have one.
9074
9075 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
9076
9077         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
9078         end of first block of bitfields (which was only seven bits);
9079         rename dummy to unused_1; remove comment which is no longer true.
9080
9081 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
9082
9083         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
9084
9085 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
9086
9087         PR 5399
9088         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
9089         if generating PIC.
9090
9091         PR 5054
9092         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
9093         arm_is_longcall_p rather than inspecting call-type cookie
9094         directly.
9095         (call_value_insn) [TARGET_THUMB]: Likewise.
9096
9097 2002-02-19  Graham Stott  <grahams@redhat.com>
9098
9099         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
9100
9101 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
9102
9103         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
9104         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
9105         (FP_SAVE_INLINE): Delete.
9106
9107         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
9108         * config/rs6000/eabi.asm: Remove ABI save restore routines.
9109         * config/rs6000/t-ppccomm: Build crtsavres.o.
9110         * config/rs6000/crtsavres.asm: New file.
9111
9112 2002-02-19  Philip Blundell  <philb@gnu.org>
9113
9114         * config/arm/arm.c (use_return_insn): Don't reject interrupt
9115         functions.
9116         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
9117         (output_return_instruction): Allow interrupt functions to return with
9118         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
9119         (arm_expand_prologue): Subtract 4 before stacking LR in an
9120         interrupt function.
9121
9122 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
9123
9124         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
9125         decl, not just FUNCTION_DECL.
9126         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
9127         (arm_assemble_integer): Likewise.
9128         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
9129         marked local.
9130
9131 2002-02-19  matthew green  <mrg@eterna.com.au>
9132
9133         * config.gcc (sparc-*-netbsdelf*): Enable target.
9134         (sparc64-*-netbsd*): New target.
9135         * config/sparc/netbsd-elf.h: New file.
9136         * config/sparc/t-netbsd64: New file.
9137
9138 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
9139
9140         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
9141
9142 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
9143
9144         * doc/invoke.texi: explicitly list the style guidelines that
9145         -Weffc++ checks for.
9146
9147 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
9148
9149         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
9150
9151 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
9152
9153         PR other/5718
9154         * gcc.c (cpp_unique_options): Treat -o as indicating object file
9155         only if not -E.  If -E, pass -o through to the preprocessor.
9156
9157 2002-02-19  Kazu Hirata  <kazu@hxi.com>
9158
9159         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
9160         register number with an appropriate macro.
9161
9162 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
9163
9164         * doc/rtl.texi (Constants): Close @code tag.
9165
9166 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
9167
9168         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
9169         ("mmx_uavgv4hi3"): Same.
9170         ("pmulhrwv4hi3"): Same.
9171
9172         * tree-inline.c (walk_tree): Handle vectors.
9173
9174         * c-common.c (constant_expression_warning): Handle vectors.
9175         (overflow_warning): Same.
9176
9177         * sched-deps.c (sched_analyze_2): Handle vectors.
9178
9179         * rtlanal.c (rtx_unstable_p): Handle vectors.
9180         (rtx_varies_p): Same.
9181         (count_occurrences): Same.
9182         (regs_set_between_p): Same.
9183         (modified_between_p): Same.
9184         (modified_in_p): Same.
9185         (volatile_insn_p): Same.
9186         (volatile_refs_p): Same.
9187         (side_effects_p): Same.
9188         (may_trap_p): Same.
9189         (inequality_comparisons_p): Same.
9190         (replace_regs): Same.
9191         (computed_jump_p_1): Same.
9192
9193         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
9194         argument.
9195         (inner_mode_array): New.
9196         (copy_rtx): Handle vectors.
9197         (copy_most_rtx): Same.
9198         (rtx_equal_p): Same.
9199         (get_mode_alignment): Adjust for vectors.
9200
9201         * resource.c (mark_referenced_resources): Handle vectors.
9202         (mark_set_resources): Same.
9203
9204         * reload1.c (eliminate_regs): Handle vectors.
9205         (elimination_effects): Same.
9206         (scan_paradoxical_subregs): Same.
9207
9208         * reload.c (subst_reg_equivs): Handle vectors.
9209
9210         * regrename.c (scan_rtx): Handle vectors.
9211
9212         * regclass.c (reg_scan_mark_refs): Handle vectors.
9213
9214         * recog.c (find_single_use_1): Handle vectors.
9215
9216         * local-alloc.c (equiv_init_varies_p): Handle vectors.
9217         (contains_replace_regs): Same.
9218         (memref_referenced_p): Same.
9219
9220         * integrate.c (copy_rtx_and_substitute): Handle vectors.
9221         (subst_constants): Same.
9222
9223         * genattrtab.c (attr_copy_rtx): Handle vectors.
9224         (encode_units_mask): Same.
9225         (clear_struct_flag): Same.
9226         (count_sub_rtxs): Same.
9227
9228         * gcse.c (want_to_gcse_p): Handle vectors.
9229         (oprs_unchanged_p): Same.
9230         (hash_expr_1): Same.
9231         (oprs_not_set_p): Same.
9232         (expr_killed_p): Same.
9233         (compute_transp): Same.
9234         (store_ops_ok): Same.
9235
9236         * function.c (purge_addressof_1): Do not allow paradoxical subregs
9237         of vectors.
9238         (fixup_var_refs_1): Same.
9239         (instantiate_virtual_regs_1): Same.
9240
9241         * fold-const.c (operand_equal_p): Handle vectors.
9242         (fold): Same.
9243         (rtl_expr_nonnegative_p): Same.
9244
9245         * flow.c (mark_used_regs): Handle vectors.
9246
9247         * df.c (df_uses_record): Handle vectors.
9248
9249         * cselib.c (cselib_subst_to_values): Handle vectors.
9250         (cselib_mem_conflict_p): Same.
9251         (hash_rtx): Same.
9252
9253         * cse.c (canon_reg): Handle vectors.
9254         (fold_rt): Same.
9255         (cse_process_notes): Same.
9256         (count_reg_usage): Same.
9257         (canon_hash): Same.
9258
9259         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
9260
9261         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
9262
9263         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
9264         (gen_rtx): Handle CONST_VECTOR.
9265         (gen_const_vector_0): New.
9266         (copy_rtx_if_shared): CONST_VECTORs can be shared.
9267         (reset_used_flags): Same.
9268         (copy_insn_1): Same.
9269         (initializer_constant_valid_p): Handle VECTOR_CST.
9270
9271         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
9272
9273         * doc/rtl.texi (Constants): Document const_vector.
9274         (CONST0_RTX): Update for vectors.
9275         (RTL sharing): Same.
9276
9277         * print-tree.c (print_node): Add case for VECTOR_CST.
9278
9279         * tree.h (TREE_VECTOR_CST_ELTS): New.
9280         (struct tree_vector): New.
9281         (union tree_node): Add vector node.
9282         (build_vector): Add prototype.
9283
9284         * tree.def (VECTOR_CST): New.
9285
9286         * tree.c (build_vector): New.
9287
9288         * expmed.c (make_tree): Handle CONST_VECTOR.
9289
9290         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
9291         (CONST_VECTOR_ELT): New.
9292         (CONST_VECTOR_NUNITS): New.
9293
9294         * machmode.h (GET_MODE_INNER): New.
9295         (DEF_MACHMODE): Accept 8th arg.
9296
9297         * machmode.def: Add 8th argument for vector inner mode.
9298         Add inner vector modes for vectors.
9299
9300         * rtl.def (VEC_CONST): Remove.
9301         (CONST_VECTOR): New.
9302
9303         * expr.c (clear_storage): Allow vectors.
9304         (is_zeros_p): Handle VECTOR_CST.
9305
9306         * varasm.c (output_constant_pool): Handle vectors.
9307         (rtx_const): Add veclo and vechi fields.
9308         (kind): Add RTX_VECTOR.
9309         (decode_rtx_const): Add case for vector.
9310
9311         * config/rs6000/rs6000-protos.h: Add zero_constant.
9312
9313         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
9314         constants.  Force easy vector constants into memory.
9315         (easy_vector_constant): New.
9316         (emit_easy_vector_constant): New.
9317         (rs6000_legitimize_reload_address): Do not generate bad reloads on
9318         darwin.
9319
9320         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
9321         instruction does.
9322         ("altivec_lvxl"): Same.
9323         (altivec_lvebx): Same.
9324         (altivec_lvehx): Same.
9325         (altivec_lvewx): Same.
9326         ("*movv4si_const0"): New.
9327         ("*movv4sf_const0"): New.
9328         ("*movv8hi_const0"): New.
9329         ("*movv16qi_const0"): New.
9330
9331 2002-02-18  Kazu Hirata  <kazu@hxi.com>
9332
9333         * config/h8300/h8300.c (notice_update_cc): Use
9334         cc_status.value2.
9335
9336 2002-02-18  Kazu Hirata  <kazu@hxi.com>
9337
9338         * config/h8300/h8300.md (divmod patterns): Change the
9339         constraints for operands[1] to register_operand.
9340
9341 2002-02-18  Kazu Hirata  <kazu@hxi.com>
9342
9343         * config/h8300/h8300-protos.h: Remove the prototype for
9344         p_operand.
9345         * config/h8300/h8300.c (p_operand): Remove.
9346         * config/h8300/h8300.md: Replace p_operand with
9347         const_int_operand.
9348
9349 2002-02-18 Philip Blundell <pb@nexus.co.uk>
9350
9351         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
9352         comment.
9353         (output_return_instruction): Allow use of LDR to unstack
9354         return addresss even for interrupt handlers or when
9355         interworking.  If compiling for ARMv5, use interworking-safe
9356         return instructions by default.  Remove duplicated code and
9357         lengthy "strcat" sequences.
9358
9359 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
9360
9361         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
9362         (LINK_EH_SPEC): Define.
9363         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
9364
9365 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
9366
9367         * config/s390/s390.c (s390_emit_prologue): Do not set the
9368         frame_related flag for call-clobbered registers.
9369
9370 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
9371
9372         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
9373         (construct_container): Fix handling of SSE operands.
9374         (ix86_expand_builtin): Fix handling of 64bit pointers.
9375         (mmx_maskmovq_rex): New pattern.
9376
9377 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
9378
9379         * regrename.c (kill_set_value): Handle subregs properly.
9380
9381 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
9382
9383         * objc/objc-act.c (handle_impent): Remove leading '*'
9384         from objc_class_name.
9385
9386 2002-02-17  Richard Henderson  <rth@redhat.com>
9387
9388         * config/alpha/alpha.c (some_small_symbolic_operand,
9389         some_small_symbolic_operand_1, split_small_symbolic_operand,
9390         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
9391         Handle small SYMBOL_REFs anywhere, not just inside memories.
9392         * config/alpha/alpha-protos.h: Update.
9393         * config/alpha/alpha.h (PREDICATE_CODES): Update.
9394         * config/alpha/alpha.md (small symbolic operand splitter): Update.
9395
9396 2002-02-17  Roland McGrath  <roland@frob.com>
9397
9398         * config.gcc (powerpc-*-gnu-gnualtivec*,
9399         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
9400         * config/rs6000/gnu.h: New file.
9401         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
9402         Grok "gnu" in rs6000_abi_name.
9403         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
9404         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
9405         Grok -mcall-gnu analogous to -mcall-linux et al.
9406         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
9407         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
9408         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
9409
9410 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
9411
9412         PR c/3444:
9413         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
9414         shortening.
9415
9416 2002-02-17  Philipp Thomas  <pthomas@suse.de>
9417
9418         * config/cris/cris.h: Undefine STARTFILE_SPEC and
9419         ENDFILE_SPEC before (re)defining them.
9420
9421 2002-02-17  Kazu Hirata  <kazu@hxi.com>
9422
9423         * config/h8300/h8300.c: Fix formatting.
9424         * config/h8300/h8300.h: Likewise.
9425
9426 2002-02-17  Philipp Thomas  <pthomas@suse.de>
9427
9428         * doc/tm.texi: Explain why empty strings should not be
9429         marked for translation.
9430
9431 2002-02-17  Philipp Thomas  <pthomas@suse.de>
9432
9433         * final.c (output_operand_lossage): Changed to accept
9434         printf style arguments. Change calls where necessary.
9435         * output.h (output_operand_lossage): Change declaration
9436         accordingly. Update copyright.
9437         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
9438         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
9439         Update copyright date where necessary.
9440
9441         * config/i386/i386.c (print_operand): Likewise. Remove use of
9442         sprintf.
9443
9444         * config/cris/cris.c (cris_operand_lossage): Likewise.
9445         Rename parameter so that exgettext recognizes it as
9446         translatable message.
9447         (LOSE_AND_RETURN): Rename parameter to msgid.
9448
9449 2002-02-17  Kazu Hirata  <kazu@hxi.com>
9450
9451         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
9452         hard coded register number with an appropriate macro.
9453         (HARD_REGNO_MODE_OK): Likewise.
9454         (ARG_POINTER_REGNUM): Likewise.
9455         (STATIC_CHAIN_REGNUM): Likewise.
9456         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
9457         * config/h8300/h8300.md (define_constants): Define more
9458         register numbers.
9459
9460 2002-02-17  Philipp Thomas  <pthomas@suse.de>
9461
9462         * config/i386/i386.h: Don't mark empty strings for translation.
9463
9464 2002-02-16  H.J. Lu <hjl@gnu.org>
9465
9466         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
9467
9468 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
9469
9470         * cppinit.c (merge_include_chains): Check for brack being
9471         NULL before attempting to merge it with qtail.
9472
9473 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
9474
9475         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
9476         DBX_DEBUG.
9477
9478 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9479
9480         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
9481
9482 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9483
9484         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
9485         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
9486         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
9487
9488 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9489
9490         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
9491         now only if !TARGET_FIX.
9492         (*movsi_nt_vms_fix): New pattern.
9493
9494 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
9495
9496         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
9497         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
9498         (alpha_sa_mask, alpha_sa_size): Reflect above change.
9499         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
9500         (alpha_start_function, alpha_expand_epilogue): Likewise.
9501         (unicosmk_gen_dsib): Likewise.
9502
9503 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9504
9505         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
9506
9507 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
9508
9509         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
9510         check_and_change_labels, s390_final_chunkify): Delete.
9511         (s390_split_branches, s390_chunkify_pool): New functions.
9512         (s390_function_prologue): Call them.
9513
9514         * config/s390/s390.h (S390_REL_MAX): Delete.
9515         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
9516
9517         * config/s390/s390.md (cjump, icjump, jump): Fix length
9518         attribute calculation.
9519
9520
9521 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
9522
9523         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
9524         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
9525
9526 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9527
9528         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
9529         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
9530         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
9531
9532 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
9533
9534         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
9535
9536 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
9537
9538         * reload.c (find_dummy_reload): Check that an output register
9539         is valid for its mode.
9540
9541 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
9542
9543         * combine.c (known_cond): After replacing the REG of a SUBREG, try
9544         to simplify it.
9545
9546         * function.c (assign_parms): Demote promoted argument passed by
9547         transparent reference.
9548
9549 2001-02-14      Joel Sherrill <joel@OARcorp.com>
9550
9551         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
9552         -Acpu() and -Amachine() to eliminate warnings.
9553
9554 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
9555
9556         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
9557
9558 2002-02-14  Kazu Hirata  <kazu@hxi.com>
9559
9560         * config/h8300/h8300-protos.h: Update the prototype for
9561         const_costs.
9562         * config/h8300/h8300.c (const_costs): Treat SET as a little
9563         more expensive operation.
9564         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
9565         reference to const_costs.
9566
9567 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
9568
9569         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
9570
9571 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
9572
9573         PR c/5503:
9574         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
9575         use arguments from newtype.
9576
9577 2002-02-13  Eric Christopher  <echristo@redhat.com>
9578
9579         * config/mips/mips.c (override_options): Add check for march/mipsX
9580         on the same command line. Fix error message in cpu processing.
9581         Remove architecture and ISA checks.
9582
9583 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
9584
9585         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
9586
9587         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
9588
9589 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
9590
9591         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
9592         alternatives.
9593         ("*movv8hi_internal1"): Same.
9594         ("*movv16qi_internal1"): Same.
9595         ("*movv4sf_internal1"): Same.
9596
9597         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
9598         not push_reload for altivec modes.
9599
9600 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
9601
9602         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
9603         all RTEMS targets including removal of #includes from config/*/rtems*.h
9604         file and adding them to tm_file setting. Added xm_defines=POSIX to
9605         many targets.
9606         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
9607         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
9608         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
9609         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
9610         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
9611         config/m68k/rtemself.h: Ditto.
9612         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
9613         config/mips/rtems64.h: Ditto.
9614         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
9615         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
9616         Ditto.
9617         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
9618         config/sparc/rtemself.h: Ditto.
9619         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
9620         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
9621         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
9622         more like arm-elf.
9623         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
9624         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
9625         target made more similar to i386-elf.
9626         * config/i386/t-rtems-i386: Added soft float support and multilibs.
9627         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
9628         be similar to config/m68k/t-m68kelf.
9629         * gthr-rtems.h: Encapsulate with extern "C" for C++.
9630
9631 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
9632
9633         * regmove.c (kill_value): Handle subregs.
9634
9635 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
9636
9637         * i386.md (mul patterns): Allow memory operand to be first;
9638         add expanders where needed; fix constraints.
9639         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
9640         Allow memory operand to be the first.
9641
9642         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
9643         operands.
9644
9645 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
9646
9647         PR c/5681:
9648         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
9649         GET_MODE (x).
9650
9651 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
9652
9653         PR optimization/5547:
9654         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
9655         all valid IA-32 address modes involving non-scaled %ebx and
9656         GOT/GOTOFF as displacement.
9657
9658 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
9659
9660         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
9661         after emitting ltorg insns.
9662
9663         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
9664         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
9665         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
9666         *abssf2): Fix "op_type" attribute.
9667
9668 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
9669
9670         * mkconfig.sh: Avoid using a subshell redirect.
9671         ($output.T): Change to $(output)T.
9672         (ENABLE_NLS): Remove unneeded undef.
9673
9674         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
9675         * config/alpha/x-vms (libsubdir): Define.
9676
9677         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
9678         register frame procedures. Optimize retrieving context.
9679
9680         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
9681         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
9682         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
9683
9684 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9685
9686         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
9687         Make same change as for find_base_value.
9688
9689 2002-02-13  Kazu Hirata  <kazu@hxi.com>
9690
9691         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
9692         of QImode and SImode.
9693
9694 2002-02-13  Kazu Hirata  <kazu@hxi.com>
9695
9696         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
9697         length computation of movsi.
9698         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
9699
9700 2002-02-13  Kazu Hirata  <kazu@hxi.com>
9701
9702         * config/h8300/h8300.md (subqi3): Tighten the predicate for
9703         operands[2] to register_operand.
9704
9705 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
9706
9707         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
9708
9709 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
9710
9711         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
9712         for altivec_lvx* and altivec_stvx*.
9713         ("*movv4si_internal"): Add constraint for loading from GPRs.
9714         ("*movv8hi_internal1"): Same.
9715         ("*movv16qi_internal1"): Same.
9716         ("*movv4sf_internal1"): Same.
9717
9718         * config/rs6000/rs6000.c (altivec_register_operand): New.
9719
9720         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
9721         altivec_register_operand.
9722
9723 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
9724
9725         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
9726         handle SYMBOL_REF.
9727
9728 2002-02-13  Stan Shebs  <shebs@apple.com>
9729
9730         * c-typeck.c (digest_init): Handle vectors.
9731         (really_start_incremental_init): Same.
9732         (pop_init_level): Same.
9733         (process_init_element): Same.
9734
9735         * varasm.c (output_constant): Same.
9736
9737         * expr.c (clear_storage): Same.
9738         (store_constructor): Same.
9739
9740 2002-02-12  Eric Christopher  <echristo@redhat.com>
9741
9742         * explow.c (hard_function_value): Add comment explaining
9743         signed/unsigned comparison.
9744
9745 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
9746
9747         * jump.c (never_reached_warning): Add finish argument.
9748         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
9749         real insn after end.
9750         * rtl.h (never_reached_warning): Adjust prototype.
9751         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
9752         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
9753         never_reached_warning.
9754
9755 2002-02-12  Graham Stott  <grahams@redhat.com>
9756
9757         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
9758
9759 2002-02-12  Kazu Hirata  <kazu@hxi.com>
9760
9761         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
9762         logical shifts on H8/300.
9763         (shift_alg_si): Improve several shifts on H8/300.
9764         (get_shift_alg): Likewise.
9765
9766 2002-02-12  Graham Stott  <grahams@redhat.com>
9767
9768         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
9769
9770 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9771
9772         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
9773         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
9774
9775 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
9776
9777         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
9778         non-CONST_INT through default_assemble_integer.
9779         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
9780         <case 8>: Abort for CONST_DOUBLE.
9781
9782 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9783
9784         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
9785         is specified.
9786         * config/pa/pa-linux.h (LIB_SPEC): Delete.
9787         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
9788
9789 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
9790
9791         * config/stormy16/stormy16.md (zero_extendqihi2): New.
9792
9793 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
9794
9795         * regrename.c (regrename_optimize): Don't accept a
9796         part-clobbered register if the replaced register is not part
9797         clobbered.
9798
9799         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
9800         take padding into account when computing the argument value.
9801
9802         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
9803
9804         * combine.c (try_combine): Apply substitutions in
9805         CALL_INSN_FUNCTION_USAGE too.
9806
9807 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
9808
9809         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
9810         __builtin_altivec_abs*.
9811         (bdesc_abs): New.
9812
9813         * config/rs6000/rs6000.h (rs6000_builtins): Add
9814         ALTIVEC_BUILTIN_ABS*.
9815
9816         * config/rs6000/altivec.h: Use const char for builtins expecting
9817         literals.
9818         (vec_abs): New versions for C and C++.
9819         (vec_abss): Same.
9820
9821 2002-02-10  Kazu Hirata  <kazu@hxi.com>
9822
9823         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
9824         using Pmode.
9825
9826 2002-02-10  Kazu Hirata  <kazu@hxi.com>
9827
9828         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
9829         constant definition from h8300.md.
9830         (FRAME_POINTER_REGNUM): Likewise.
9831         * config/h8300/h8300.md (define_constants): Add FP_REG.
9832
9833 2002-02-10  Kazu Hirata  <kazu@hxi.com>
9834
9835         * config/h8300/h8300.c (print_operand): Remove redundant code.
9836
9837 2002-02-10  Kazu Hirata  <kazu@hxi.com>
9838
9839         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
9840         * config/h8300/h8300.c (byte_reg): Make it static.
9841
9842 2002-02-10  Richard Henderson  <rth@redhat.com>
9843
9844         PR c/5623
9845         * c-typeck.c (incomplete_type_error): Handle flexible array members.
9846
9847 2002-02-10  Richard Henderson  <rth@redhat.com>
9848
9849         PR c++/5624
9850         * tree.c (append_random_chars): Don't abort if main_input_filename
9851         does not exist.
9852
9853 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
9854
9855         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
9856
9857 2002-02-10  Kazu Hirata  <kazu@hxi.com>
9858
9859         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
9860         (pushhi1): Likewise.
9861
9862 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9863
9864         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
9865         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
9866
9867 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
9868
9869         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
9870         remove MASK_VIS.
9871         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
9872
9873 2002-02-09  Kazu Hirata  <kazu@hxi.com>
9874
9875         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
9876         a half of an SImode register on H8/300.
9877
9878 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
9879
9880         * i386.md (movdi_2): Add missing '!'.
9881
9882 2002-02-09  Kazu Hirata  <kazu@hxi.com>
9883
9884         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
9885         definitions.
9886
9887 2002-02-09  Kazu Hirata  <kazu@hxi.com>
9888
9889         * config/h8300/h8300.md (length): Correct the distance valid
9890         for the short branch.
9891
9892 2002-02-09  Kazu Hirata  <kazu@hxi.com>
9893
9894         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
9895
9896 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
9897
9898         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
9899         registers in SImode.
9900         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
9901         part-clobbered.
9902
9903         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
9904         patch.
9905
9906         Contribute sh64-elf.
9907         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
9908         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
9909         (sh_cannot_modify_jumps_p): New function.
9910         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
9911         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
9912         (sh_ms_bitfield_layout_p): New function.
9913         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
9914                     Zack Weinberg  <zack@codesourcery.com>
9915         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
9916         expand_simple_binop instead of expand_binop.
9917         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
9918         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
9919         use of .quad and .uaquad.
9920         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
9921         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
9922         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
9923         * config/sh/sh.md (movdi_const, movdi_const_32bit,
9924         movdi_const_16bit): Make sure all CONSTs have modes.
9925         (sym2PIC): Ditto, but by adjusting all callers.
9926         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
9927         if the prologue calls the SHmedia argument decoder or register
9928         saver.
9929         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
9930         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
9931         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
9932         (sh_expand_epilogue): Don't emit USE of return target register.
9933         (prepare_move_operands): Legitimize DImode PIC addresses.
9934         (sh_media_register_for_return): Skip tr0, used to initialize the
9935         PIC register.
9936         (sh_expand_prologue): Remove explicit USE of return register.
9937         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
9938         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
9939         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
9940         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
9941         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
9942         EXTRA_CONSTRAINT_T.
9943         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
9944         (MOVI_SHORI_BASE_OPERAND_P): New.
9945         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
9946         (EXTRA_CONSTRAINT_T): Define in terms of them.
9947         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
9948         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
9949         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
9950         alternatives supporting TARGET_REGS.
9951         (UNSPEC_GOTPLT): New constant.
9952         (movdi split): Move incrementing of LABEL_NUSES...
9953         (movdi_const, movdi_const_32bit): Here.  Use
9954         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
9955         (movdi_const_16bit): New.
9956         (call, call_value) [flag_pic]: Use GOTPLT.
9957         (call_pop, call_value_pop): New expands.
9958         (call_pop_compact, call_pop_rettramp): New insns.
9959         (call_value_pop_compact, call_value_pop_rettramp): New insns.
9960         (sibcall) [flag_pic]: Use GOT.
9961         (builtint_setjmp_receiver): Remove bogus, unused expand.
9962         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
9963         (*pt, *ptb, ptrel): New insns.
9964         (sym2GOT): Handle DImode GOT.
9965         (sym2GOTPLT, symGOTPLT2reg): New expands.
9966         (sym2PIC): New expand.
9967         (shcompact_return_tramp): Use GOTPLT to return trampoline.
9968         (shcompact_return_tramp_i): Use return register explicitly.
9969         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
9970         disable flag_reorder_blocks.
9971         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
9972         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
9973         clobbers, for clarity.
9974         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
9975         restoring of r0 in macl as MAYBE_DEAD.
9976         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
9977         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
9978         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
9979         alter_subreg all over.
9980         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
9981         reload, instead of emitting instructions that would require
9982         reloading.
9983         (casesi_load_media): Add missing modes.
9984         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
9985         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
9986         as used if the argument decoder is called.
9987         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
9988         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
9989         Pmode, then extend it to DImode if necessary.
9990         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
9991         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
9992         constants in FPU-enabled SHmedia, let them be loaded from memory.
9993         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
9994         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
9995         Adjust whitespace in assembly output templates.
9996         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
9997         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
9998         mode of if_then_else.
9999         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
10000         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
10001         sh.h.
10002         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
10003                     Joern Rennecke <amylaar@redhat.com>
10004         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
10005         (SUBTARGET_CPP_PTR_SPEC): New.
10006         (SUBTARGET_CPP_SPEC): Remove.
10007         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
10008         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
10009         Fix typo in previous checkin.
10010         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
10011         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
10012         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
10013                     Alexandre Oliva  <aoliva@redhat.com>
10014         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
10015         what single FP register can hold for SHmedia target.
10016         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
10017                     Alexandre Oliva  <aoliva@redhat.com>
10018         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
10019         Do not split into SUBREG.
10020         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
10021         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
10022         and added new functions as specified in SH5 ABI r9.
10023         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
10024         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
10025         8-byte boundary.
10026         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
10027         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
10028         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
10029         and consttable_window_ends.
10030         2001-06-03  Graham Stott  <grahams@redhat,com>
10031         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
10032         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
10033         * config/sh/sh.c (print_operand): Handle floating-point pair,
10034         vector and matrix registers.
10035         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
10036         vector modes into account.
10037         * config/sh/sh.md (movv2sf): Split move between registers into
10038         movdf.
10039         (movv4sf, movv16sf): Introduce insns that get split only after
10040         reload.
10041         * config/sh/shmedia.h: Fix Copyright dates.
10042         * config/sh/ushmedia.h: Likewise.  Move loop counter
10043         declarations into conditionals that uses them.
10044         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
10045         loop boundary.
10046         * config/sh/sshmedia.h: Fix Copyright dates.
10047         (sh_media_PUTCFG): Fix constraints.
10048         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
10049         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
10050         ptrmemfunc_vbit_in_delta for SH5.
10051         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
10052         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
10053         * invoke.texi: Likewise.
10054         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
10055         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
10056         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
10057         GCC_pop_shmedia_regs_nofpu): New global symbols.
10058         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
10059         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
10060         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
10061         compact function with nonlocal labels.
10062         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
10063         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
10064         (initial_elimination_offset): Account for their stack space.
10065         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
10066         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
10067         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
10068         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
10069         least one of the operands to be a register.
10070         (movv2sf): Likewise.  Renamed to movv2sf_i.
10071         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
10072         prepare_move_operands() before emitting SHmedia insns.
10073         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
10074         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
10075         Don't save nor initialize r12.  Don't mis-align the stack.
10076         Pad the code with a nop.
10077         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
10078         stack.
10079         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
10080         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
10081         [__SHMEDIA__]: Implement.
10082         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
10083         * config/sh/sh.md: Set latency of `pt' closer to reality.
10084         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
10085         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
10086         Set move, load and store type attributes.
10087         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
10088         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
10089         profiling.
10090         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
10091         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
10092         * config/sh/sh.c (sh_media_register_for_return): New function.
10093         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
10094         branch-target register.
10095         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
10096         * config/sh/sh.md (return_media_i): Use any call-clobbered
10097         branch-target register.
10098         (return_media): If r18 wasn't copied in the prologue, copy it
10099         here.
10100         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
10101         Clear class FP0_REGS.
10102         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
10103         from elf.h.
10104         2001-03-08  DJ Delorie  <dj@redhat.com>
10105         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
10106         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
10107         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
10108         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
10109         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
10110         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
10111         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
10112         return value correctly for call_cookie.
10113         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
10114         * config/sh/crt1.asm (start): Modified so as to call
10115         ___setup_argv_and_call_main.
10116         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
10117         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
10118         SHmedia mode.
10119         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
10120         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
10121         (STRIP_NAME_ENCODING): Use it.
10122         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
10123         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
10124         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
10125         prepare_scc_operands().
10126         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
10127         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
10128         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
10129         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
10130         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
10131         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
10132         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
10133         used in shcompact_incoming_args.
10134         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
10135         change.
10136         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
10137         mode.
10138         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
10139         Adjust accordingly.
10140         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
10141         Simplify.  Adjust.  Add sanity check.
10142         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
10143         FPU_SINGLE_BIT.
10144         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
10145         TARGET_SHCOMPACT.
10146         (udivsi3, divsi3): Use them.
10147         (force_mode_for_call): New insn.
10148         (call, call_value, sibcall_value): Emit it before SHcompact
10149         calls.
10150         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
10151         * config/sh/sh.md (call, call_value, sibcall): Make sure the
10152         call cookie is non-NULL before taking its value.
10153         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
10154         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
10155         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
10156         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
10157         block.
10158         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
10159         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
10160         temporary for stack adjusts.  Use MACL and MACH to pass
10161         arguments to shcompact_incoming_args.
10162         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
10163         clobber r1.
10164         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
10165         (nested_trampoline): Load static chain address into r1.
10166         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
10167         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
10168         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
10169         fp_arith_reg_operand().
10170         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
10171         * config/sh/sh.md (casesi): Sign-extend the first two operands,
10172         and use signed compares for them.
10173         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
10174         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
10175         ones properly aligned.
10176         (find_barrier): Account for extra alignment needed for 8-byte wide
10177         constants.
10178         (machine_dependent_reorg): Require a label for the second 4-byte
10179         constant after an 8-byte one.
10180         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
10181         change.
10182         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
10183         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
10184         last_float when switching float modes.
10185         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
10186         auto-increment for general-purpose registers.
10187         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
10188         result.
10189         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
10190         for stack adjust.
10191         * config/sh/sh.c (sh_builtin_saveregs): Support using all
10192         registers for varargs.
10193         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
10194         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
10195         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
10196         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
10197         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
10198         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
10199         call_cookie accordingly.
10200         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
10201         (SHCOMPACT_BYREF): Likewise.
10202         (SHCOMPACT_FORCE_ON_STACK): New macro.
10203         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
10204         (sh_builtin_saveregs): Likewise.
10205         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
10206         shcompact_incoming_args): Use new shift values.  Support
10207         sequences of consecutive and non-consecutive pushes/pops.
10208         * config/sh/sh.md (return): Don't explicitly use PR_REG.
10209         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
10210         * config/sh/sh.h (TEXT_SECTION): Define.
10211         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
10212         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
10213         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
10214         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
10215         return values on FPU-enabled SHmedia.
10216         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
10217         FPU-enabled SHmedia.
10218         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
10219         value is returned in a non-FP reg and is not returned by
10220         reference.
10221         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
10222         jump_ind.
10223         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
10224         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
10225         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
10226         quad-aligned to be passed by callee-copy reference.
10227         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
10228         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
10229         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
10230         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
10231         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
10232         copying low-numbered FP regs to r7 and r8.
10233         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
10234         FP regs to general-purpose regs only if the copy was passed on the
10235         stack.
10236         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
10237         copying FP reg to r9.
10238         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
10239         copy FP regs to general-purpose regs only in outgoing calls.
10240         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
10241         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
10242         HOST_WIDE_INT.
10243         * config/sh/sh.h (struct sh_args): Document all fields.
10244         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
10245         passed partially on the stack should not consider making
10246         sibcalls.
10247         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
10248         stack_regs only for incoming calls.  When passing FP args,
10249         make sure there are FP regs available before modifying
10250         call_cookie.
10251         (SHCOMPACT_BYREF): Pass double args in general-purpose
10252         registers by reference.
10253         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
10254         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
10255         attempt to generate sibcalls if the caller got any arguments
10256         by reference.
10257         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
10258         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
10259         to 8-byte boundaries.
10260         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
10261         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
10262         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
10263         stored in the stack.
10264         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
10265         for the offsets to have the ISA bit set.
10266         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
10267         invocation.  Use beq instead of bgt to mark end of sequence of
10268         loads.
10269         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
10270         bgt to mark end of sequence of stores.
10271         * config/sh/sh.c (arith_operand): Don't check whether
10272         CONST_OK_FOR_J for now.
10273         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
10274         instead of long for conversion.
10275         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
10276         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
10277         before passing it to fprintf.
10278         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
10279         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
10280         Call set_fpscr before reading/writing SR.
10281         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
10282         Call set_fpscr.
10283         * config/sh/lib1funcs.asm: Add `.align 2' directives before
10284         SHmedia code.
10285         (FMOVD_WORKS): Define on SH5 with FPU.
10286         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
10287         setting.
10288         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
10289         _fpscr_values.
10290         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
10291         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
10292         address.
10293         (ia_main_table): Ditto.
10294         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
10295         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
10296         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
10297         the definitions from sh.h.
10298         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
10299         TARGET_SH5.
10300         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
10301         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
10302         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
10303         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
10304         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
10305         Increment LABEL_NUSES.
10306
10307         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
10308         TARGET_SH5.
10309         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
10310         defined.
10311         * config/sh/elf.h (SIZE_TYPE): Likewise.
10312         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
10313         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
10314         shcompact_incoming_args): Load switch table addresses using
10315         datalabel.
10316         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
10317         (NO_BUILTIN_SIZE_TYPE): Define.
10318         (SIZE_TYPE): Don't define.
10319         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
10320         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
10321         definition of __SH5__=32 for -m5-compact-nofpu.
10322         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
10323         ADDR_DIFF_VEC.
10324         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
10325         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
10326         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
10327         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
10328         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
10329         (INSN_LENGTH_ALIGNMENT): Likewise.
10330         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
10331         * config/sh/sh.md (call, call_value, sibcall): Simplify
10332         copying of non-branch-target register.
10333         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
10334         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
10335         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
10336         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
10337         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
10338         floating-point values as structs.
10339         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
10340         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
10341         general-purpose register.
10342         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
10343         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
10344         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
10345         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
10346         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
10347         (ENCODE_SECTION_INFO): Enclose variables and constants in
10348         DATALABEL unspecs.
10349         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
10350         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
10351         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
10352         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
10353         only for LABEL_REFs.  For SYMBOL_REFs, prepend
10354         SH_DATALABEL_ENCODING to the symbol name.
10355         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
10356         convert_mode().
10357         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
10358         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
10359         UNSPEC_DATALABEL.
10360         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
10361         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
10362         (DATALABEL_REF_P): Don't require CONST.
10363         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
10364         REL label.
10365         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
10366         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
10367         right.
10368         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
10369         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
10370         Use shallow_copy_rtx and PUT_MODE to change the mode of
10371         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
10372         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
10373         on SHmedia using GENERAL_REGs.
10374         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
10375         bltu_media_i): Fix reversion of conditions.
10376         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
10377         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
10378         * config/sh/sh.c (output_far_jump): Save r13 in macl.
10379         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
10380         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
10381         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
10382         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
10383         (GCC_nested_trampoline): Likewise.
10384         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
10385         * config/sh/sh.c (gen_datalabel_ref): Define.
10386         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
10387         (INITIALIZE_TRAMPOLINE): Likewise.
10388         (TRAMPOLINE_ADJUST_ADDRESS): Define.
10389         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
10390         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
10391         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
10392         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
10393         (ic_invalidate): Adjust for SH5.
10394         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
10395         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
10396         _nested_trampoline.
10397         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
10398         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
10399         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
10400         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
10401         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
10402         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
10403         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
10404         * config/sh/sh.c (target_reg_operand): Match only target-branch
10405         registers and pseudos that aren't virtual registers.
10406         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
10407         Copy operands that don't match target_reg_operand to pseudos.
10408         (call_media, call_value_media, sibcall_media): Use
10409         target_reg_operand instead of target_operand.
10410         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
10411         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
10412         * config/sh/sh.c (target_reg_operand): Match hardware registers
10413         other than branch-target registers.
10414         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
10415         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
10416         (fpscr_values) [SH5 == 32]: Define.
10417         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
10418         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
10419         Handle function addresses coming in SUBREGs.
10420         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
10421         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
10422         shcompact_return_trampoline): Use datalabel where appropriate.
10423         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
10424         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
10425         general-purpose register to copy one branch-target register to
10426         another.
10427         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
10428         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
10429         SYMBOL_REFs with VOIDmode.
10430         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
10431         bltu_media_i): New insns.
10432         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
10433         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
10434         (INIT_CUMULATIVE_ARGS): Likewise.
10435         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
10436         * machmode.def (V16SFmode): New mode.
10437         * c-common.c (type_for_mode): Support V2SF and V16SF.
10438         * tree.c (build_common_tree_nodes_2): Likewise.
10439         * tree.h (tree_index): Likewise.
10440         * calls.c (emit_call_1): Take args_so_far.  Adjust all
10441         callers.  Introduce CALL_POPS_ARGS.
10442         * tm.texi (CALL_POPS_ARGS): Document.
10443         * config/sh/crt1.asm: Implement in SHmedia mode.
10444         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
10445         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
10446         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
10447         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
10448         Implement divsi and udivsi in SHmedia mode.  Introduce
10449         SHcompact trampolines.
10450         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
10451         only in SHmedia64.
10452         (regno_reg_class): Rewrite.
10453         (fp_reg_names): Remove.
10454         (sh_register_names, sh_additional_register_names): New.
10455         (print_operand): Added `u'.  Support SUBREGs in addresses.
10456         Add parentheses around shifted CONSTs.
10457         (output_file_start): Output .mode and .abi directives.
10458         (shiftcosts, addsubcosts, multcosts): Adjust.
10459         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
10460         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
10461         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
10462         bytes, not registers.  Take into account the need for the
10463         SHcompact incoming args trampoline.  Adjust all callers.
10464         (sh_expand_prologue): Take stack_regs into account.  Call
10465         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
10466         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
10467         stack aligned as per SH5 ABI.
10468         (sh_builtin_saveregs): Support SH5 ABI.
10469         (sh_build_va_list, sh_va_start): Likewise.
10470         (initial_elimination_offset): Take alignment into account.
10471         Compute location of PR according to the SH5 stack frame.
10472         (arith_reg_operand): Reject branch-target registers.
10473         (shmedia_6bit_operand): New.
10474         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
10475         (target_reg_operand): Match DImode only.  Accept SUBREGs.
10476         (target_operand): New.
10477         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
10478         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
10479         SIBCALL_REGS for SHmedia.
10480         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
10481         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
10482         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
10483         (TARGET_SWITCHES): New SH5 flags.
10484         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
10485         VALID_REGISTER_P to disable unsupported registers.
10486         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
10487         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
10488         (FUNCTION_ARG_PADDING): Define.
10489         (FASTEST_ALIGNMENT): Adjust.
10490         (SH_REGISTER_NAMES_INITIALIZER): New.
10491         (sh_register_names): Declare.
10492         (DEBUG_REGISTER_NAMES): Define.
10493         (REGISTER_NAMES): Define based on sh_register_names.
10494         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
10495         (sh_additional_register_names): Declare.
10496         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
10497         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
10498         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
10499         (REGISTER_NATURAL_MODE): Define.
10500         (FIRST_PSEUDO_REGISTER): Adjust.
10501         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
10502         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
10503         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
10504         (VECTOR_MODE_SUPPORTED_P): Define.
10505         (REG_CLASS_CONTENTS): Adjust.
10506         (SMALL_REGISTER_CLASSES): Adjust.
10507         (REG_ALLOC_ORDER): Adjust.
10508         (INDEX_REG_CLASS): Adjust.
10509         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
10510         (CONST_OK_FOR_LETTER_P): Adjust.
10511         (PREFERRED_RELOAD_CLASS): Adjust.
10512         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
10513         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
10514         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
10515         (FIRST_FP_PARM_REG): Adjust.
10516         (CALL_POPS_ARGS): Define.
10517         (FUNCTION_ARG_REGNO_P): Adjust.
10518         (struct sh_args): New fields.
10519         (GET_SH_ARG_CLASS): Adjust.
10520         (INIT_CUMULATIVE_ARGS): Adjust.
10521         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
10522         (FUNCTION_ARG_ADVANCE): Adjust.
10523         (FUNCTION_ARG): Adjust.
10524         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
10525         (FUNCTION_ARG_CALLEE_COPIES): Define.
10526         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
10527         (STRICT_ARGUMENT_NAMING): Define.
10528         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
10529         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
10530         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
10531         (SETUP_INCOMING_VARARGS): Adjust.
10532         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
10533         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
10534         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
10535         (SUBREG_OK_FOR_INDEX_P): Adjust.
10536         (EXTRA_CONSTRAINT_S): Update.
10537         (EXTRA_CONSTRAINT_T): New.
10538         (EXTRA_CONSTRAINT): Adjust.
10539         (GO_IF_LEGITIMATE_INDEX): Adjust.
10540         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
10541         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
10542         (MOVE_MAX): Adjust.
10543         (MAX_MOVE_MAX): Define.
10544         (Pmode): Adjust.
10545         (CONST_COSTS): Adjust.
10546         (REGISTER_MOVE_COST): Adjust.
10547         (BRANCH_COST): Adjust.
10548         (TEXT_SECTION_ASM_OP): Adjust.
10549         (DBX_REGISTER_NUMBER): Adjust.
10550         (ASM_OUTPUT_DOUBLE_INT): New.
10551         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
10552         (PREDICATE_CODES): Adjust.
10553         (PROMOTE_MODE): Adjust.
10554         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
10555         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
10556         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
10557         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
10558         (DR0_REG, DR2_REG, DR4_REG): Renumber.
10559         (TR0_REG, TR1_REG, TR2_REG): New.
10560         (XD0_REG): Renumber.
10561         (UNSPEC_COMPACT_ARGS): New.
10562         (type): Added pt and ptabs.
10563         (length): Default to 4 on SHmedia.  Default pt length to 12
10564         and     20 on SHmedia32 and SHmedia64, respectively.
10565         (pt): New function unit.
10566         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
10567         Add whitespace between operands of SHmedia instructions.
10568         (movdicc): Fix.
10569         (adddi3_media, addsi3_media): Adjust constraints.
10570         (subsi3) [SHmedia]: Force operand 1 into a register.
10571         (udivsi3_i1_media, udivsi3_i4_media): New.
10572         (udivsi3): Support SHmedia.
10573         (divsi3_i1_media, divsi3_i4_media): New.
10574         (divsi3): Support SHmedia.
10575         (anddi3, iordi3, xordi3): Adjust constraints.
10576         (zero_extendhidi2, zero_extendqidi2): New.
10577         (extendsidi2, extendhidi2, extendqidi2): New.
10578         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
10579         (pop_e, pop_fpul, pop_4): Likewise.
10580         (movsi_media): Support FP and BT registers.
10581         (movsi_media_nofpu): New.  Adjust splits to DImode.
10582         (lduw, ldub): Renamed to zero_extend* above.
10583         (movqi_media): Fix typo.
10584         (movdi_media): Support FP and BT registers.
10585         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
10586         (movdi_const_32bit): New.
10587         (shori_media): Require immediate operand.  Use `u' for output.
10588         (movdf_media, movsf_media): Simplified.
10589         (movdf_media_nofpu, movsf_media_nofpu): New.
10590         (movdf, movsf): Adjust
10591         (movv2sf, movv2sf, movv16sf): New.
10592         (beq_media, beq_media_i): Adjust constraints.  Don't use
10593         scratch BT register.
10594         (bne_media, bne_media_i): Likewise.
10595         (bgt_media, bgt_media_i): Likewise.
10596         (bge_media, bge_media_i): Likewise.
10597         (bgtu_media, bgtu_media_i): Likewise.
10598         (bgeu_media, bgeu_media_i): Likewise.
10599         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
10600         bunordered): Emit jump insn.  Force operands to registers when
10601         needed.
10602         (jump_media, jump): Simplify.
10603         (call_compact, call_compact_rettramp): New.
10604         (call_value_compact, call_value_compact_rettramp): New.
10605         (call_media, call_value_media): Simplify.
10606         (sibcall_compact, sibcall_media): New.
10607         (call, call_value): Adjust for SHmedia and SHcompact.
10608         (sibcall, sibcall_value, untyped_call): Likewise.
10609         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
10610         (indirect_jump): Adjust for SHmedia.
10611         (casesi_jump_media): New.
10612         (nop): Re-enable for SHmedia.
10613         (call_site): Restrict to SH1.
10614         (casesi): Adjust for SHmedia.
10615         (casesi_shift_media, casesi_load_media): New.
10616         (return): Explicitly use PR register.  Call return trampoline
10617         on SHcompact.
10618         (return_i): Explicitly use PR register.
10619         (shcompact_return_tramp, shcompact_return_tramp_i): New.
10620         (return_media): Adjust.
10621         (shcompact_incoming_args): New.
10622         (epilogue): Adjust.
10623         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
10624         (movstrsi): Disable on SH5.
10625         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
10626         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
10627         (subsf3, subsf3_media): Likewise.
10628         (mulsf3, mulsf3_media, mac_media): Likewise.
10629         (divsf3, divsf3_media): Likewise.
10630         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
10631         (floatsisf2, fux_truncsfsi2): Likewise.
10632         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
10633         constraints.
10634         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
10635         (cmpunsf_media, cmpsf): Likewise.
10636         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
10637         (abssf2, abssf2_media): Likewise.
10638         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
10639         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
10640         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
10641         (floatsidf2, fix_truncdfsi2): Likewise.
10642         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
10643         constraints.
10644         (cmpeqdf_media, cmpgtdf_media): Likewise.
10645         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
10646         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
10647         (absdf2, absdf2_media): Likewise.
10648         (extendsfdf2, extendsfdf2_media): Likewise.
10649         (truncsfdf2, truncsfdf2_media): Likewise.
10650         * config/sh/sh64.h: New file.
10651         * config/sh/t-sh64: New file.
10652         * config/sh/shmedia.h: New file.
10653         * config/sh/ushmedia.h: New file.
10654         * config/sh/sshmedia.h: New file.
10655         * configure.in: Added sh64-*-elf.
10656         * configure: Rebuilt.
10657         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
10658         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
10659         (reg_class_from_letter): Use `b' for TARGET_REGS.
10660         (print_operand): Support `%M', `%m', `AND' and
10661         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
10662         (andcosts): Adjust for SHmedia.
10663         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
10664         Likewise.
10665         (target_reg_operand): New function.
10666         * config/sh/sh-protos.h (target_reg_operand): Declare.
10667         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
10668         FP registers on SH5.
10669         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
10670         on SH4.
10671         (TARGET_REGISTER_P): New macro.
10672         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
10673         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
10674         (EXTRA_CONSTRAINT_S): New macro.
10675         (EXTRA_CONSTRAINT): Adjust.
10676         (FLOAT_TYPE_SIZE): Define to 32.
10677         (Pmode): DImode on SHmedia.
10678         (CONST_COSTS): Adjust for SHmedia literals.
10679         (PREDICATE_CODES): Added target_reg_operand.
10680         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
10681         * config/sh/sh.md: Remove all attrs from SHmedia insns.
10682         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
10683         (cmpdi): Accept SHmedia.
10684         (movdicc_false, movdicc_true): New insns.
10685         (movdicc): New expand.
10686         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
10687         no_new_pseudos.
10688         (addsi3_media): Match `S' constraint.
10689         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
10690         (negdi2): Expand for SHmedia.
10691         (one_cmpldi2): New expand.
10692         (zero_extendsidi2): Change from expand to insn.
10693         (extendsidi2): Add constraints.
10694         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
10695         LD/ST address.  Fix SI immediate loading split.
10696         (movhi_media, movqi_media, lduw, ldub): New insns.
10697         (movhi, movqi): Accept SHmedia.
10698         (shori_media, movdi_media): Relax input constraints.  Split
10699         symbolic constants.
10700         (movdf_media, movsf_media): New insn.  New split to movdi.
10701         (movdf, movsf): Match on SHmedia.
10702         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
10703         bgeu_media): New insns and splits.  New insns with `_i' suffix.
10704         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
10705         (bunordered): New expand.
10706         (jump_compact): Renamed from `jump'.
10707         (jump_media): New insn.
10708         (jump): New expand.
10709         (call_media, call_value_media): New insns.
10710         (call, call_value): Adjust.
10711         (indirect_jump_compact): Renamed from `indirect_jump'.
10712         (indirect_jump_media): New insn.
10713         (indirect_jump): New expand.
10714         (untyped_call, return): Accept SHmedia.
10715         (return_media): New insn.
10716         (prologue, epilogue, blockage): Accept SHmedia.
10717         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
10718         (sunordered): New expand.
10719         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
10720         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
10721         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
10722         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
10723         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
10724         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
10725         abssf2_media): New insns.
10726         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
10727         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
10728         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
10729         floatdidf2, floatsidf2_media, fix_truncdfdi2,
10730         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
10731         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
10732         absdf2_media): New insns.
10733         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
10734         (extendsfdf2_media, truncdfsf2_media): New insns.
10735         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
10736         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
10737         * config/sh/sh.h (CONST_OK_FOR_J): Document.
10738         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
10739         * config/sh/sh.md (adddi3): New expand.
10740         (adddi3_media, adddi3z_media): New insns.
10741         (adddi3_compact): Renamed from adddi3.
10742         (addsi3_media): Use add.l r63 to add constant zero.
10743         (subdi3): New expand.
10744         (subdi3_media): New insn.
10745         (subdi3_compact): Renamed from subdi3.
10746         (mulsidi3): New expand.
10747         (mulsidi3_media): New insn.
10748         (mulsidi3_compact): Renamed from mulsidi3.
10749         (umulsidi3): New expand.
10750         (umulsidi3_media): New insn.
10751         (umulsidi3_compact): Renamed from umulsidi3.
10752         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
10753         (ashlsi3, ashrsi3, lshrsi3): Use them.
10754         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
10755         (ashldi3, ashrdi3, lshrdi3): Use them.
10756         (zero_extendsidi2): New expand.
10757         (extendsidi2): New insn.
10758         (movsi_media): New insn.  Split to movdi to load constants.
10759         (movsi): Enable for shmedia.
10760         (movdi_media): New insn.  Use shori_media to load wide constants.
10761         (short_media): New insn.
10762         (movdi): Enable for shmedia.
10763         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
10764         * config/sh/sh.h (CPP_SPEC): Added `m5'.
10765         (SUBTARGET_CPP_SPEC): Added `!m5'.
10766         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
10767         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
10768         to all other SH variants.
10769         (TARGET_DEFAULT): Set to SH1_BIT.
10770         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
10771         (BITS_PER_WORD): Raise to 64 on shmedia.
10772         (MAX_BITS_PER_WORD): Change to 64.
10773         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
10774         (INT_TYPE_SIZE): Keep as 32.
10775         (UNITS_PER_WORD): Raise to 8 on shmedia.
10776         (MIN_UNITS_PER_WORD): Keep as 4.
10777         (POINTER_SIZE): Raise to 64 on shmedia.
10778         (CONST_OK_FOR_J): New macro.
10779         (CONST_OK_FOR_LETTER_P): Use it.
10780         (processor_type): Add PROCESSOR_SH5.
10781         * config/sh/sh.md: Conditionalize all expands, insns and
10782         splits to TARGET_SH1.
10783         (cpu): Added sh5.
10784         (addsi3_compact): Renamed from...
10785         (addsi3): Now an expand.
10786         (addsi3_media, subsi3_media): New insns.
10787         (subsi3): Don't negate constants with SHmedia.
10788
10789         * hooks.c: New file.
10790         * hooks.h: New file.
10791         * Makefile.in (HOOKS_H): New.
10792         (TARGET_DEF_H): Added $(HOOKS_H).
10793         (OBJS): Added hooks.o.
10794         (cfgcleanup.o, bb-reorder.o): Added target.h.
10795         (hooks.o): Added dependencies.
10796         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
10797         (TARGET_INITIALIZER): this.
10798         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
10799         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
10800         * bb-reorder.c: Include target.h.
10801         (reorder_basic_blocks): Skip if cannot modify jumps.
10802         * cfgcleanup.c: Include target.h.
10803         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
10804
10805 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
10806
10807         * config/mips/mips.md (casesi_internal, casesi_internal_di):
10808         Protect jump delay slot instructions with .set noreorder and
10809         .set nomacro.
10810
10811 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
10812
10813         * config/mips/mips.md (casesi_internal_di): Calculate
10814         the index into the target offset table correctly.
10815
10816 2002-02-08  Richard Henderson  <rth@redhat.com>
10817
10818         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
10819         * final.c (output_addr_const): Accept and discard SUBREG.
10820         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
10821         mark them unknown instead.
10822         (simplify_subtraction): Handle RTX_UNKNOWN.
10823         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
10824
10825 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
10826
10827         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
10828
10829 2002-02-08  Richard Henderson  <rth@redhat.com>
10830
10831         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
10832
10833 2002-02-08  Andreas Jaeger  <aj@suse.de>
10834
10835         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
10836         * config/i386/t-linux64: New file.
10837
10838 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
10839
10840         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
10841         * c-parse.in (compstmt): Clear last_expr_type.
10842
10843 2002-02-07  Richard Henderson  <rth@redhat.com>
10844
10845         * loop.c (strength_reduce): Sink final_value when not
10846         eliminating a biv.
10847
10848 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
10849
10850         * config/sparc/freebsd.h: Fix mismatched spec {.
10851
10852 2002-02-07  Richard Henderson  <rth@redhat.com>
10853
10854         * cfgrtl.c: Include recog.h and insn-config.h.
10855         (keep_with_call_p): Fix general_operand invocation.
10856         * Makefile.in (cfgrtl.o): Update dependencies.
10857
10858 2002-02-07  Kazu Hirata  <kazu@hxi.com>
10859
10860         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
10861         comment.  Accept HImode only if TARGET_H8300.
10862
10863 2002-02-07  Eric Christopher  <echristo@redhat.com>
10864
10865         * config/mips/crtn.asm: Cleanup #ifdefs.
10866
10867 2002-02-07  Eric Christopher  <echristo@redhat.com>
10868
10869         * config/mips/crti.asm: Add changes for mips16. mips16 uses
10870         register 7 as RA instead of $31.
10871         * config/mips/crtn.asm: Ditto.
10872         * config/mips/mips.c (mips_move_2words): Add case for
10873         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
10874         (compute_frame_size): Fix typo.
10875         (save_restore_insns): Ditto.  Make documentation about using
10876         register $7 as return register more precise.
10877         (mips_expand_epilogue): Fix comment. Add code to work around not
10878         being able to add to the stack pointer directly.
10879         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
10880         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
10881         epilogue.
10882
10883 2002-02-07  Tom Rix  <trix@redhat.com>
10884
10885         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
10886         immediates in ldu and stdu DS opcode field.
10887         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
10888         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
10889         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
10890
10891 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
10892
10893         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
10894         offset for stack bias.
10895
10896 2002-02-07  H.J. Lu <hjl@gnu.org>
10897
10898         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
10899
10900 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
10901
10902         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
10903
10904 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
10905
10906         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
10907         * i386.c (x86_order_regs_for_local_alloc): New global function.
10908         * i386.h (REG_ALLOC_ORDER): CLeanup.
10909         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
10910
10911 2002-02-07  Richard Henderson  <rth@redhat.com>
10912
10913         PR optimization/2463
10914         * alias.c (find_base_value): Recall base values for fixed hard regs.
10915         * loop.c (loop_regs_update): Don't use single_set on non-insns.
10916
10917 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
10918
10919         * config/mips/mips.md (define_delay) [mips16]: Adjust required
10920         length.
10921
10922 2002-02-06  Richard Henderson  <rth@redhat.com>
10923
10924         PR c/5609
10925         * stmt.c (resolve_operand_name_1): Take more care with mixed
10926         named and unnamed operands.
10927
10928 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
10929             Jan Hubicka  <jh@suse.cz>
10930
10931         * loop.c (remove_constant_addition): Avoid clobbering a shared
10932         CONST expression.
10933
10934 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
10935
10936         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
10937         * config/s390/t-linux64: New file.
10938         * config/s390/libgcc-glibc.ver: New file.
10939
10940 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
10941
10942         * config/s390/linux64.h: Delete file.
10943         * config/s390/s390x.h: New file.
10944         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
10945         as target header file.
10946         * config/s390/linux.h (TARGET_VERSION): Define depending on
10947         DEFAULT_TARGET_64BIT.
10948         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
10949         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
10950         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
10951         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
10952         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
10953         (EXTRA_SPEC): New define.
10954         * config/s390/s390.h (TARGET_VERSION): Define depending on
10955         DEFAULT_TARGET_64BIT.
10956         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
10957
10958 2002-02-06  Jason Merrill  <jason@redhat.com>
10959
10960         * c-decl.c (finish_function): Warn about a non-void function with
10961         no return statement and no abnormal exit.
10962         (current_function_returns_abnormally): New variable.
10963         (start_function): Clear it.
10964         (struct c_language_function): Add returns_abnormally.
10965         (push_c_function_context): Save it.
10966         (pop_c_function_context): Restore it.
10967         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
10968         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
10969         an explicit return type.
10970         * c-tree.h: Declare current_function_returns_abnormally.
10971         (C_FUNCTION_IMPLICIT_INT): New macro.
10972         * c-typeck.c (build_function_call): Set it.
10973         (c_expand_return): Set current_function_returns_value even if the
10974         value is erroneous.
10975
10976 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
10977
10978         PR c/5420:
10979         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
10980         unsafe for reevaluation.
10981
10982 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
10983
10984         PR c/5482:
10985         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
10986         EXPR_STMT, but COMPOUND_STMT, recurse into it.
10987
10988 2002-02-06  Richard Henderson  <rth@redhat.com>
10989
10990         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
10991         be a general_operand.  Dest for function value must be a pseudo.
10992
10993 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
10994
10995         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
10996         as SYMBOL_REFs from the constant pool.
10997
10998 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
10999
11000         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
11001         passed by invisible reference.
11002
11003 2002-02-05  Richard Henderson  <rth@redhat.com>
11004
11005         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
11006
11007 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
11008
11009         Implement using "base addresses" in insn operands as default.
11010         * config/mmix/mmix.c (mmix_conditional_register_usage): if
11011         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
11012         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
11013         used to read the rtx value.
11014         (mmix_target_asm_function_epilogue): Fix spacing.
11015         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
11016         (mmix_legitimate_address): Ditto.
11017         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
11018         should be loaded with a GETA insn.  Don't allocate needless extra
11019         char for nul termination and fix misleading comment.
11020         (mmix_print_operand_address): Handle constants if
11021         TARGET_BASE_ADDRESSES.
11022         (mmix_output_register_setting): Use base addressing if
11023         TARGET_BASE_ADDRESSES and the number of insns is 3.
11024         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
11025         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
11026         to use R as constraint, add LDA to match s.
11027         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
11028         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
11029         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
11030         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
11031         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
11032         order with other fixed registers.
11033         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
11034         other parameter/call-clobbered registers.
11035         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
11036         -mbase-addresses, -mno-base-addresses.
11037         (MMIX Options): Ditto.
11038
11039 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11040
11041         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
11042
11043 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
11044
11045         * config/rs6000/altivec.h: Change elem to _S_elem.
11046
11047 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
11048
11049         * config/netbsd.h (WCHAR_TYPE): Define.
11050         (WCHAR_TYPE_SIZE): Ditto.
11051         (WINT_TYPE): Ditto.
11052         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
11053         (WCHAR_UNSIGNED): Ditto.
11054         (WCHAR_TYPE_SIZE): Ditto.
11055         (WINT_TYPE): Ditto.
11056         * config/arm/netbsd.h: Likewise.
11057         * config/i386/netbsd-elf.h: Likewise.
11058         * config/i386/netbsd.h: Likewise.
11059         * config/m68k/netbsd-elf.h: Likewise.
11060         * config/m68k/netbsd.h: Likewise.
11061         * config/ns32k/netbsd.h: Likewise.
11062         * config/sparc/netbsd.h: Likewise.
11063         * config/vax/netbsd.: Likewise.
11064
11065 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
11066
11067         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
11068         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
11069         (TARGET_INITIALIZER): this.
11070         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
11071         (BITFIELD_NBYTES_LIMITED): Markup fix.
11072         * tree.h (default_ms_bitfield_layout_p): Declare.
11073         (record_layout_info): Added prev_field.
11074         * tree.c (default_ms_bitfield_layout_p): New fn.
11075         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
11076         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
11077         * stor-layout.c: Include target.h.
11078         (start_record_layout): Initialize prev_field.
11079         (place_field): Handle MS bit-field layout, and disregard
11080         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
11081         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
11082         * Makefile.in (stor-layout.o): Adjust dependencies.
11083
11084 2002-02-05  Jason Merrill  <jason@redhat.com>
11085
11086         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
11087
11088 2002-02-05  Andreas Jaeger  <aj@suse.de>
11089
11090         * crtstuff.c: Fix comments.
11091
11092 2002-02-05  Richard Henderson  <rth@redhat.com>
11093
11094         PR fortran/3393
11095         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
11096         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
11097
11098         PR fortran/3392
11099         * config/mips/mips.c (function_arg): Handle TImode.
11100         (function_arg_advance): Likewise.
11101
11102 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
11103
11104         * config/rs6000/altivec.h (vec_step_help): Rename to
11105         __vec_step_help.
11106
11107 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
11108
11109         * config/rs6000/altivec.h: Fix typos.
11110
11111 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
11112
11113         * config/arm/netbsd.h: Correct a comment.
11114
11115 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
11116
11117         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
11118         building void typed builtins.
11119
11120         * config/rs6000/altivec.h (vec_ld*): Fix typos.
11121         (vec_step): Implement for C++.
11122
11123 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11124
11125         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
11126
11127 2002-02-04  Richard Henderson  <rth@redhat.com>
11128
11129         * combine.c (nonzero_bits): Re-introduce special case for
11130         sp/fp/ap wrt REGNO_POINTER_ALIGN.
11131
11132 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
11133
11134         * doc/extend.texi: Warn about unsupported usage of altivec
11135         builtins.
11136
11137         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
11138         (altivec_predicate_*): New.
11139
11140         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
11141         Add C++ version of vec_*() functions.
11142
11143         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
11144         (bdesc_2arg): Remove altivec predicates.
11145         (altivec_expand_builtin): Handle predicates.
11146         (altivec_init_builtins): Handle predicates.
11147         (altivec_expand_predicate_builtin): New.
11148
11149 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11150
11151         * pa.c (DO_FRAME_NOTES): Move forward.
11152         (store_reg): Revise handling of frame notes.
11153         (load_reg): Likewise.
11154         (set_reg_plus_d): Likewise.
11155         (hppa_expand_prologue): Likewise.
11156         (hppa_expand_epilogue): Likewise.
11157
11158 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11159
11160         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
11161
11162 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
11163
11164         PR c/4475, c++/3780:
11165         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
11166         * c-common.h (SWITCH_TYPE): Define.
11167         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
11168         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
11169         Rename spareness variable to sparseness.
11170         (expand_end_case_type): Renamed from expand_end_case, use orig_type
11171         if non-NULL instead of TREE_TYPE (orig_index).
11172         * tree.h (expand_end_case_type): Renamed from expand_end_case.
11173         (expand_end_case): Define using expand_end_case_type.
11174         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
11175         to expand_end_case_type.
11176         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
11177
11178 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11179
11180         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
11181         (BIGGEST_ALIGNMENT): Change to 128.
11182
11183 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11184
11185         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
11186
11187 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11188
11189         * pa.md (call_internal_reg_64bit): Remove unused variable.
11190
11191 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
11192
11193         * config/arm/arm.h (machine_function): Add uses_anonymous_args
11194         field.
11195         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
11196         * config/arm/arm.c (current_function_anonymous_args): Delete,
11197         replace uses with cfun->machine->uses_anonymous_args.
11198         (arm_reorg): Do not reset uses_anonymous_args.
11199
11200         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
11201         any geenral register.
11202
11203 2001-02-04  Bernd Schmidt  <bernds@redhat.com>s
11204
11205         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
11206         the entry block.
11207
11208 2002-02-04  Richard Henderson  <rth@redhat.com>
11209
11210         * combine.c (force_to_mode): Remove STACK_BIAS code.
11211         (nonzero_bits): Likewise.  Replace sp/fp special case with
11212         REGNO_POINTER_ALIGN.
11213
11214         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
11215         (HARD_FRAME_POINTER_REGNUM): New.
11216         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
11217         (FIXED_REGS, CALL_USED_REGS): Update.
11218         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
11219         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
11220         (HARD_REGNO_NREGS): Update for SFP.
11221         (STACK_POINTER_OFFSET): Include bias here ...
11222         (FIRST_PARM_OFFSET): ... not here.
11223         (STACK_BIAS): Remove.
11224         (INIT_EXPANDERS): New.
11225         (STARTING_FRAME_OFFSET): Do not include bias.
11226         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
11227         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
11228         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
11229         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
11230         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
11231         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
11232         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
11233         (MUST_SAVE_REGISTER): Likewise.
11234         (sparc_flat_function_prologue): Likewise.
11235         (sparc_flat_function_epilogue): Likewise.
11236         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
11237         (sparc_init_modes): SFP is GENERAL_REGS.
11238         (sparc_builtin_saveregs): SFP does not have bias applied.
11239
11240 2002-02-04  Richard Henderson  <rth@redhat.com>
11241
11242         * config/alpha/alpha.c (current_function_is_thunk): Don't check
11243         current_function_is_thunk.
11244         (alpha_sa_mask): Distinguish between current_function_is_thunk
11245         called from ASM_OUTPUT_MI_THUNK and not.
11246         (alpha_does_function_need_gp): Thunks always need gp.
11247         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
11248         (alpha_output_mi_thunk_osf): New.
11249         * config/alpha/alpha-protos.h: Update.
11250         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
11251
11252 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
11253
11254         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
11255         function types, not when they're taken away.
11256
11257 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
11258
11259         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
11260         CODE_LABEL and jump table when replacing a table jump with a
11261         simple jump.
11262
11263 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
11264
11265         * config/s390/s390-protos.h (legitimize_la_operand,
11266         s390_secondary_input_reload_class, s390_plus_operand,
11267         s390_expand_plus_operand): Add prototypes.
11268
11269         config/s390/s390.c (s390_secondary_input_reload_class,
11270         s390_plus_operand, s390_expand_plus_operand): New functions.
11271
11272         (struct s390_address): New member 'pointer'.
11273         (s390_decompose_address): Compute it.
11274         (legitimate_la_operand_p): Use it.
11275         (legitimize_la_operand): New function.
11276         (movti, movdi, movdf splitters): Call it.
11277
11278         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
11279         (PREDICATE_CODES): Add s390_plus_operand.
11280
11281         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
11282         (la_ccclobber): Allow GENERAL_REGS as output operand.
11283
11284         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
11285         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
11286         (*la_64, *la_31, reload_indi, reload_insi): ... these.
11287
11288 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
11289
11290         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
11291         register names for regular asm () construct.
11292
11293 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
11294
11295         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
11296         registers.
11297
11298 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
11299
11300         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
11301         pat for recog.
11302
11303 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
11304
11305         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
11306         constant pool to be identical by string address and index.
11307
11308 2002-02-04  Anthony Green  <green@redhat.com>
11309
11310         * output.h (SECTION_OVERRIDE): Define.
11311         * varasm.c (named_section): Obey SECTION_OVERRIDE.
11312
11313 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
11314
11315         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
11316         by existing arm*-*-netbsd* (a.out) target.
11317         (ns32k-*-netbsdelf*): Likewise.
11318         (sparc-*-netbsdelf*): Likewise.
11319         (vax-*-netbsdelf*): Likewise.
11320
11321 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
11322
11323         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
11324         headers and libobjc headers.
11325
11326 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
11327
11328         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
11329         (_mingw.h): Remove duplicate include.
11330
11331 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
11332
11333         * config.gcc: Set cpu_type to m68k for 68010, as well.
11334         (m68010-*-netbsdelf*): New...
11335         (m68k*-*-netbsdelf*): ...targets.
11336         * config/m68k/netbsd-elf.h: New file.
11337
11338 2002-02-02  Kazu Hirata  <kazu@hxi.com>
11339
11340         * config/h8300/h8300.c (hand_list): Move inside function_arg.
11341
11342 2002-02-02  Kazu Hirata  <kazu@hxi.com>
11343
11344         * config/h8300/h8300.c (h8_push_ops): Move inside
11345         h8300_init_once.
11346         (h8_pop_ops): Likewise.
11347         (h8_move_ops): Likewise.
11348
11349 2002-02-02  Kazu Hirata  <kazu@hxi.com>
11350
11351         * config/h8300/h8300.c (os_task): Make it static.
11352         (monitor): Likewise.
11353         (pragma_saveall): Likewise.
11354
11355 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
11356
11357         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
11358         constant is a valid sign-extension for Pmode.
11359
11360 2002-02-02  Kazu Hirata  <kazu@hxi.com>
11361
11362         * config/h8300/h8300.c: Fix formatting.
11363
11364 2002-02-02  Kazu Hirata  <kazu@hxi.com>
11365
11366         * config/h8300/h8300.md: Fix formatting.
11367
11368 2002-02-02  Kazu Hirata  <kazu@hxi.com>
11369
11370         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
11371         predicates of operands[1].  Split the patterns for each
11372         processor variant.
11373
11374 2002-02-02  Kazu Hirata  <kazu@hxi.com>
11375
11376         * config/h8300/h8300.md (xor patterns): Tighten the predicates
11377         of operands[1] to register_operand.
11378
11379 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
11380
11381         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
11382         * cpphash.c (_cpp_init_hashtable): Similarly.
11383         * cppinit.c (cpp_create_reader): Default the signed_char flag.
11384         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
11385         (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
11386         (cpp_handle_option): Handle the new options.
11387         * cpplex.c (cpp_interpret_charconst): Use new flag.
11388         * cpplib.h (struct cpp_options): New member signed_char.
11389         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
11390         (cpp_options): Handle -fsigned-char and -funsigned-char.
11391         (static_specs): Remove signed_char_spec.
11392         (do_spec1): Don't handle %c.
11393         * system.h: Poison SIGNED_CHAR_SPEC.
11394         * tradcif.y (yylex): Use flag_signed_char.
11395         * tradcpp.h (flag_signed_char): New.
11396         * tradcpp.c (flag_signed_char): New.
11397         (main): Handle new command-line options.
11398         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
11399 config:
11400         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
11401         * avr/avr.h: Remove old comments.
11402         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
11403         (CC1_SPEC): Pass -fsigned-char if -mic*.
11404         (SIGNED_CHAR_SPEC): Remove.
11405 doc:
11406         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
11407
11408 2002-02-01  Eric Christopher  <echristo@redhat.com>
11409
11410         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
11411         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
11412         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
11413         (ASM_OUTPUT_REG_POP): Ditto.
11414
11415 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
11416
11417         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
11418         patch.
11419
11420 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
11421
11422         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
11423
11424 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
11425
11426         PR c/5304:
11427         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
11428         unconditionally.
11429
11430 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
11431
11432         * cfganal.c: Include tm_p.h.
11433         (keep_with_call_p): Fix the test that determines if a register holds
11434         the return value of a call.
11435
11436 2002-02-01  DJ Delorie  <dj@redhat.com>
11437
11438         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
11439         we are given conflicting registers, switch to the other one we
11440         had allocated for us.
11441         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
11442         as TImode so we know when the "other" register is available.
11443
11444 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
11445
11446         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
11447         sparc/sparc_bi.h.
11448
11449 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
11450
11451         * cfganal.c (keep_with_call_p): New function.
11452         (flow_call_edges_add): Prevent splitting a block between a call and
11453         a single-set instruction that should be kept in the same block.
11454
11455 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
11456
11457         * doc/install.texi (avr): Update outdated URL.
11458
11459 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
11460
11461         * config/stormy16/stormy16.md (pushqi): New.
11462         (popqi): New.
11463         (pushhi): New.
11464         (pophi): New.
11465         (movhi): Remove stack operands.
11466         (movqi): Likewise.
11467         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
11468         nonimmediate_nonstack_operand.
11469         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
11470         New.
11471         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
11472         New.
11473
11474 2002-01-31  Jason Merrill  <jason@redhat.com>
11475
11476         * Makefile.in (c-parse.c): Handle .output file.
11477         * objc/Make-lang.in (objc-parse.c): Likewise.
11478
11479 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
11480
11481         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
11482         the -me[lb] option is given.  Don't output the default flag
11483         twice.
11484
11485 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
11486
11487         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
11488         the primary source file; this has not been done yet.
11489         * c-decl.c (c_expand_body): Reset input_filename from
11490         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
11491
11492 2002-01-31  Kazu Hirata  <kazu@hxi.com>
11493
11494         * rtlanal.c (subreg_regno_offset): Do not use
11495         SUBREG_REGNO_OFFSET.
11496         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
11497         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
11498
11499 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
11500
11501         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
11502         version rather than GNATS version in --version output.
11503
11504 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
11505
11506         * ifcvt.c (noce_process_if_block): Make a copy of the destination
11507         when copying back from a temporary.
11508
11509 2002-01-30  Richard Henderson  <rth@redhat.com>
11510
11511         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
11512         and new_dest are the same.
11513
11514 2002-01-30  Richard Henderson  <rth@redhat.com>
11515
11516         PR opt/5076
11517         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
11518         * rtl.c (note_insn_name): Update.
11519         * emit-rtl.c (remove_unnecessary_notes): Kill it.
11520         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
11521         to perform loop rotation.
11522         (expand_exit_loop_top_cond): New.
11523         * tree.h (expand_exit_loop_top_cond): Declare it.
11524         * c-semantics.c (genrtl_while_stmt): Use it.
11525         (genrtl_for_stmt): Likewise.
11526
11527 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
11528
11529         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
11530         arguments to 64-bit boundaries on 64-bit ABIs.
11531
11532 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
11533
11534         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
11535
11536 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
11537
11538         * c-decl.c (grokdeclarator): Handle type being a typedef for an
11539         invalid type.
11540
11541 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
11542
11543         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
11544         * config/sparc/sparc_bi.h: Remove file.
11545         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
11546
11547 2002-01-30  Richard Henderson  <rth@redhat.com>
11548
11549         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
11550
11551 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
11552
11553         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
11554
11555 2002-01-30  Jason Merrill  <jason@redhat.com>
11556
11557         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
11558         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
11559         (reg_save): Use DW_CFA_offset_extended_sf instead.
11560
11561         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
11562
11563 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
11564
11565         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
11566         in cselib_lookup.
11567
11568 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
11569
11570         * rs6000.md ("*call_value_local32"): Remove constraints.
11571         ("*call_value_local64"): Same.
11572         ("*call_value_indirect_nonlocal_aix32"): Same.
11573         ("*call_value_nonlocal_aix32"): Same.
11574         ("*call_value_indirect_nonlocal_aix64"): Same.
11575         ("*call_value_nonlocal_aix64"): Same.
11576         ("*call_value_nonlocal_sysv"): Same.
11577
11578 2002-01-29  Richard Henderson  <rth@redhat.com>
11579
11580         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
11581
11582 2002-01-29  Richard Henderson  <rth@redhat.com>
11583
11584         * expr.c (force_operand): Ignore flag_pic for detecting pic
11585         address loads.
11586         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
11587         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
11588         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
11589         instead of open-coded loop.
11590         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
11591         be fixed when in use.
11592
11593 2002-01-29  Richard Henderson  <rth@redhat.com>
11594
11595         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
11596         * sched-rgn.c (propagate_deps): Update them.
11597         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
11598         clobbers list when either gets too long.
11599
11600 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
11601
11602         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
11603         and INDEX_REGS the same as GENERAL_REGS.
11604         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
11605
11606 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
11607
11608         * tree.c (build_nonstandard_integer_type): Correct prototype.
11609
11610 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
11611
11612         * config/s390/s390.md (movstrsico, movstrdix_64,
11613         movstrsix_31): Remove, replace by ...
11614         (movstrdi_short, movstrsi_short, movstrdi_long,
11615         movstrsi_long): ... these.  New.
11616         (movstrdi, movstrsi): Adapt.
11617
11618         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
11619         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
11620         Remove unnecessary CC clobber.
11621         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
11622         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
11623
11624         (divmoddi4): Don't partially initialize TImode register.
11625
11626 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
11627
11628         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
11629
11630 2002-01-29  Richard Henderson  <rth@redhat.com>
11631
11632         * flow.c (print_rtl_and_abort): Remove.
11633         (print_rtl_and_abort_fcn): Remove.
11634         (verify_local_live_at_start): Use dump_bb instead.
11635         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
11636         (verify_wide_reg_1): Return 2 on mode test failure.
11637
11638 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
11639
11640         PR c/3325, c/3326, c/2511, c/3347
11641         * c-decl.c (enum_decl_context): Remove BITFIELD.
11642         (grokdeclarator): Take bitfield width as an input.
11643         Ensure bitfields are given the correct type.  Perform
11644         bitfield width validation with build_bitfield_integer_type
11645         rather than waiting for finish_struct.
11646         (grok_typename, grok_typename_in_parm_context, start_decl,
11647         push_parmdecl, grokfield, start_function): Update calls to
11648         grokdeclarator.
11649         (build_bitfield_integer_type): New function.
11650         (finish_struct): Move bitfield validation to grokdeclarator
11651         and build_bitfield_integer_type.
11652         * tree.c (build_nonstandard_integer_type): New function.
11653         * tree.h (build_nonstandard_integer_type): New prototype.
11654 objc:
11655         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
11656
11657 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
11658
11659         PR other/1502:
11660         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
11661         don't ignore unrecognized -W* options.
11662         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
11663         * cpplib.h (cpp_handle_option): Adjust prototype.
11664         * c-decl.c (c_decode_options): Pass 0 as last argument to
11665         cpp_handle_option.
11666
11667         PR c/2896:
11668         * gcc.c (cpp_unique_options): Split from cpp_options.
11669         (cpp_options): Source cpp_unique_options.
11670         (default_compilers): Use cpp_unique_options instead of cpp_options
11671         when used together with cc1_options.
11672         (static_specs): Add cpp_unique_options.
11673         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
11674         when used together with cc1_options.
11675
11676 2002-01-29  Kazu Hirata  <kazu@hxi.com>
11677
11678         * config/h8300/h8300-protos.h: Update the prototype of
11679         output_a_shift.
11680         * config/h8300/h8300.c (output_a_shift): Remove an unused
11681         argument 'insn'.  Remove redundant code.
11682         * config/h8300/h8300.md: Adust to the new prototype of
11683         output_a_shift.
11684
11685 2002-01-29  Kazu Hirata  <kazu@hxi.com>
11686
11687         * config/h8300/h8300-protos.h: Update the prototypes of
11688         emit_a_rotate and expand_a_rotate.
11689         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
11690         first argument to 'enum rtx_code'.
11691         (expand_a_rotate): Likewise.
11692
11693 2002-01-28  Kazu Hirata  <kazu@hxi.com>
11694
11695         * config/h8300/h8300-protos.h: Update the prototype of
11696         output_simode_bld.
11697         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
11698         'log2'.
11699         * config/h8300/h8300.md: Adjust to the new prototype.
11700
11701 2002-01-28  Kazu Hirata  <kazu@hxi.com>
11702
11703         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
11704         redundant code.
11705
11706 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11707
11708         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
11709         is a fixed register before returning pic_offset_table_rtx.
11710         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
11711         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
11712
11713 2002-01-28  Jason Merrill  <jason@redhat.com>
11714
11715         * dwarf2.h: Sync with src version.
11716
11717 2002-01-28  Paul Koning  <pkoning@equallogic.com>
11718
11719         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
11720         BT_FN_VOID_PTR_VAR.
11721         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
11722         * doc/extend.texi (__builtin_prefetch): Update documentation:
11723         first argument is now const void ptr.
11724
11725 2002-01-28  Kazu Hirata  <kazu@hxi.com>
11726
11727         * config/h8300/h8300-protos.h: Remove an unused prototype.
11728
11729 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
11730
11731         * toplev.c (lang_independent_init): Round up identifier size.
11732
11733 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
11734
11735         * config.gcc: Revert previous change.
11736
11737 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
11738
11739         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
11740
11741 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
11742
11743         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
11744         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
11745         other non-elf netbsd config frags.
11746         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
11747         collect2 will does that.
11748         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
11749         shared-lib frobbing will work.
11750
11751 2002-01-28  Kazu Hirata  <kazu@hxi.com>
11752
11753         * config/h8300/h8300.h: Fix formatting.
11754         * config/h8300/h8300.md: Likewise.
11755
11756 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
11757
11758         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
11759         the old, removed AAA_standards fix.
11760         * fixinc/fixincl.x: Rebuilt.
11761
11762 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
11763
11764         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
11765         atexit call in crtbegin, hooked in after call to frame_dummy;
11766         register EH before registering __fini__start.
11767
11768 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
11769
11770         * config/rs6000/altivec.h: Remove spurious semicolons.
11771
11772 2002-01-27  Kazu Hirata  <kazu@hxi.com>
11773
11774         * config/h8300/h8300.md: Replace dead bit extraction patterns
11775         with ones that work.
11776
11777 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11778
11779         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
11780         if not STRICT_ALIGNMENT.
11781         * rtl.h (MEM_ALIGN): Likewise.
11782
11783 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
11784
11785         * doc/invoke.texi (-fdump-translation-unit): Revert this
11786         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
11787
11788 2002-01-27  Kazu Hirata  <kazu@hxi.com>
11789
11790         * config/h8300/h8300.md (define_constants): New.
11791         (anonymous patterns) Use defined constants appropriately.
11792
11793 2002-01-27  Kazu Hirata  <kazu@hxi.com>
11794
11795         * config/h8300/h8300.c (function_arg): Remove redundant code.
11796
11797 2002-01-26  Richard Henderson  <rth@redhat.com>
11798
11799         * sched-deps.c (reg_pending_uses_head): New.
11800         (reg_pending_barrier): Rename from reg_pending_sets_all.
11801         (find_insn_list): Don't mark inline.
11802         (find_insn_mem_list): Remove.
11803         (add_dependence_list, add_dependence_list_and_free): New.
11804         (flush_pending_lists): Replace only_write param with separate
11805         for_read and for_write parameters.  Update all callers.  Use
11806         add_dependence_list_and_free.
11807         (sched_analyze_1): Do not add reg dependencies here; just set
11808         the pending bits.  Use add_dependence_list.
11809         (sched_analyze_2): Likewise.
11810         (sched_analyze_insn): Replace schedule_barrier_found with
11811         reg_pending_barrier.  Add all dependencies for pending reg
11812         uses, sets, and clobbers.
11813         (sched_analyze): Don't add reg dependencies for calls, just
11814         set pending bits.  Use regs_invalidated_by_call.  Treat
11815         sched_before_next_call as a normal list, not a fake insn.
11816         (init_deps): No funny init for sched_before_next_call.
11817         (free_deps): Free pending mems lists.  Don't zero reg_last.
11818         (init_deps_global): Init reg_pending_uses.
11819         (finish_deps_global): Free it.
11820         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
11821         (find_insn_mem_list): Remove.
11822         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
11823         (propagate_deps): Use them.  Zero temp mem lists.
11824
11825 2002-01-26  Richard Henderson  <rth@redhat.com>
11826
11827         * Makefile.in (CRTSTUFF_CFLAGS): New.
11828         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
11829         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
11830         crtstuff.c instead of alpha assembly version.
11831         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
11832         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
11833         not FORCE_{INIT,FINI}_SECTION_ALIGN.
11834         (__do_global_dtors_aux): Mark used.
11835         (frame_dummy, __do_global_ctors_aux): Mark used.
11836         (fini_dummy, init_dummy): Remove.
11837
11838         * config/alpha/crtbegin.asm: Remove file.
11839         * config/alpha/crtend.asm: Remove file.
11840         * config/alpha/t-crtbe: Remove file.
11841         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
11842         (LINK_EH_SPEC): New.
11843
11844         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
11845         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
11846         calling constructors.
11847         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
11848
11849         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
11850         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
11851         CRT_END_INIT_DUMMY hack.
11852         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
11853         FORCE_{INIT,FINI}_SECTION_ALIGN.
11854
11855         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
11856         FORCE_{INIT,FINI}_SECTION_ALIGN.
11857
11858         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
11859         invocation sequence.
11860         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
11861
11862         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
11863         (FORCE_CODE_SECTION_ALIGN): New.
11864
11865 2002-01-26  Richard Henderson  <rth@redhat.com>
11866
11867         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
11868
11869 2002-01-26  Richard Henderson  <rth@redhat.com>
11870
11871         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
11872         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
11873
11874 2002-01-26  Kazu Hirata  <kazu@hxi.com>
11875
11876         * config/h8300/h8300.md: Remove bit extraction patterns that
11877         cannot be triggered.
11878         Restrict each bit extraction pattern to a variant on which the
11879         pattern is tested.
11880
11881 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
11882
11883         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
11884
11885 2002-01-26  Kazu Hirata  <kazu@hxi.com>
11886
11887         * config/h8300/h8300.md: Remove bit test patterns that cannot
11888         be triggered.
11889         Restrict each bit test pattern to a variant on which the
11890         pattern is tested.
11891
11892 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11893
11894         * builtins.c (expand_builtin_strncat): Remove redundant check for
11895         INTEGER_CST.
11896
11897 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
11898
11899         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
11900         default setting.
11901         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
11902         existing setting.
11903
11904 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
11905
11906         * dbxout.c (dbxout_init): Use assemble_name rather than just
11907         stripping off the first character.
11908         (dbxout_source_file): Likewise.
11909
11910 2002-01-25  DJ Delorie  <dj@redhat.com>
11911
11912         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
11913         using rtx_equal_p, not by comparing pointers.
11914
11915 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
11916
11917         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
11918         for PIC_OFFSET_TABLE_REGNUM.
11919         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
11920
11921 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
11922
11923         * config.gcc (x86_64-*-freebsd*): New target.
11924         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
11925         value.
11926         (i[34567]86-*-freebsd*): Don't include svr4.h.
11927         * config/i386/freebsd64.h: New file.
11928
11929 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
11930
11931         * config/alpha/x-vms (version): Make static.
11932
11933         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
11934         in previous checkin.
11935
11936         * Makefile.in (install-headers-cp): New target.
11937         * config.gcc (alpha-dec-*vms*): Install headers with
11938         install-headers-cp
11939
11940 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
11941
11942         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
11943         avoid it's copies.
11944
11945 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11946
11947         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
11948         of compare_tree_int.
11949         (expand_builtin_strncat): Likewise.
11950         * c-decl.c (finish_struct): Use tree_low_cst.
11951         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
11952         * tree.c (compare_tree_int): Likewise.
11953
11954 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
11955
11956         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
11957         adjustments even if they are implemented by more than two insns.
11958
11959 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
11960
11961         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
11962         * df.h (struct ref): Kill B.
11963         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
11964
11965         * basic-block.h (PROP_EQUAL_NOTES): New flag.
11966         * flow.c (propagate_one_insn): Use it.
11967         (mark_used_regs): Handle NIL.
11968
11969 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
11970
11971         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
11972         to help folding.
11973
11974 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
11975
11976         * rs6000.md (prefetch): Make address V4SI mode so that the address
11977         is restricted to legitimate form for instruction.
11978
11979 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
11980
11981         * doc/install.texi (xtensa-*-elf): New target.
11982         (xtensa-*-linux*): New target.
11983         * doc/contrib.texi: Add myself.
11984
11985 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
11986
11987         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
11988         purpose register to hold an SImode (or smaller) value.
11989
11990 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
11991
11992         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
11993         registry only.
11994         * crtstuff.c: Likewise.
11995
11996 2002-01-25  Kazu Hirata  <kazu@hxi.com>
11997
11998         * config/h8300/h8300.md (negation patterns): Tighten
11999         predicates to register_operand.
12000
12001 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
12002
12003         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
12004         mode, not Pmode.
12005
12006         * builtins.c (expand_builtin_prefetch): Same.
12007
12008 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
12009
12010         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
12011         modes.
12012
12013 2002-01-24  Kazu Hirata  <kazu@hxi.com>
12014
12015         * config/h8300/h8300.c (print_operand): Remove support for
12016         operand character 'A'.
12017         * config/h8300/h8300.md (three anonymous patterns): Replace
12018         operand character 'A' with either 'T' or 'S'.
12019
12020 2002-01-24  Kazu Hirata  <kazu@hxi.com>
12021
12022         * config/h8300/h8300.c (print_operand): Remove support for
12023         operand character 'U'.
12024
12025 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
12026
12027         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
12028
12029 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
12030
12031         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
12032         values to be assigned to the stack pointer.
12033
12034 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
12035
12036         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
12037         to const_double needs to be done right for big-endian systems.
12038
12039 2002-01-24  Jason Merrill  <jason@redhat.com>
12040
12041         PR c++/2432
12042         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
12043         to can_throw_internal.
12044
12045 2002-01-23  Richard Henderson  <rth@redhat.com>
12046
12047         * fold-const.c (fold): Change UINT_MAX test to check vs precision
12048         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
12049
12050 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
12051
12052         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
12053         (symGOT2reg): Use them, then set as GOT value as unchanging.
12054         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
12055         as a temporary, if possible.
12056         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
12057         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
12058
12059 2002-01-23  Kazu Hirata  <kazu@hxi.com>
12060
12061         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
12062         accept to accept 0x80 as operands[2].
12063
12064 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
12065
12066         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
12067
12068 2002-01-23  Richard Henderson  <rth@redhat.com>
12069
12070         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
12071
12072 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
12073
12074         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
12075         (parmlist_or_identifiers_1): Verify that only a parmlist follows
12076         an attribute.
12077
12078 2002-01-23  Richard Henderson  <rth@redhat.com>
12079
12080         * expr.c (move_by_pieces_1): Extend size before negation.
12081
12082         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
12083         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
12084         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
12085         * config/m68k/t-m68kelf: Likewise.
12086
12087 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
12088
12089         * config/xtensa/elf.h: New file.
12090         * config/xtensa/lib1funcs.asm: New file.
12091         * config/xtensa/lib2funcs.S: New file.
12092         * config/xtensa/linux.h: New file.
12093         * config/xtensa/t-xtensa: New file.
12094         * config/xtensa/xtensa-config.h: New file.
12095         * config/xtensa/xtensa-protos.h: New file.
12096         * config/xtensa/xtensa.c: New file.
12097         * config/xtensa/xtensa.h: New file.
12098         * config/xtensa/xtensa.md: New file.
12099         * config.gcc (xtensa-*-elf*): New target.
12100         (xtensa-*-linux*): New target.
12101         * cse.c (canon_hash): Compare rtx pointers instead of register
12102         numbers.  This is required for the Xtensa port.
12103         * integrate.c (copy_insn_list): Handle case where the static
12104         chain is in memory and the memory address has to be copied to
12105         a register.
12106         * doc/invoke.texi (Option Summary): Add Xtensa options.
12107         (Xtensa Options): New node.
12108         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
12109
12110 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
12111
12112         * diagnostic.c (internal_error): Do ICE suppression only
12113         when ENABLE_CHECKING is not defined.
12114
12115         * c-typeck.c (require_complete_type): Return error_mark_node
12116         if type is error_mark_node.
12117
12118 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
12119
12120         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
12121         -Os and issue a warning.
12122
12123 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
12124
12125         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
12126         current (lack of) need for host configuration by hand.
12127
12128         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
12129         references.  Documentation of some target macros moved from
12130         hostconfig.texi to tm.texi.
12131
12132 2002-01-23  Will Cohen  <wcohen@redhat.com>
12133
12134         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
12135         defined.
12136
12137 2002-01-23  Kazu Hirata  <kazu@hxi.com>
12138
12139         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
12140         operand[3].
12141
12142 2002-01-23  Jason Merrill  <jason@redhat.com>
12143
12144         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
12145
12146         * function.c (assign_parms): Don't put args of inline functions
12147         into registers when not optimizing.
12148
12149 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
12150
12151         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
12152         (prologue_use): New pattern.
12153         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
12154         preference to gen_rtx_USE.
12155         (thumb_expand_prologue): Use gen_prologue_use in preference to
12156         gen_rtx_USE.
12157         (thumb_expand_epilogue): Use gen_prologue_use in preference to
12158         gen_rtx_USE.
12159
12160 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
12161
12162         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
12163
12164 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
12165
12166         PR c/3504
12167         * doc/extend.texi: Correct documentation of __alignof__.
12168
12169 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
12170
12171         * params.h: Rename arguments of DEFPARAM so that it will be
12172         recognized as a translation keyword.
12173
12174 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
12175
12176         * extend.texi: Document altivec functions.
12177         Fix N-bit adjectives in X86 builtin documentation.
12178
12179 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
12180
12181         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
12182         auto_inc_dec values.
12183
12184 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
12185
12186         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
12187         after backslash.
12188         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
12189
12190 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
12191
12192         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
12193
12194 2002-01-22  Richard Henderson  <rth@redhat.com>
12195
12196         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
12197         copy_insn not copy_rtx.
12198
12199 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
12200
12201         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
12202         "nonzero" as that might add "1" bits.  Ensure "constop" is
12203         properly sign extened.
12204         (force_to_mode): Tweak for sign extended constop.
12205
12206 2002-01-22  Richard Henderson  <rth@redhat.com>
12207
12208         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
12209         for_each_rtx instead of assuming we're already looking at the MEM.
12210         (split_small_symbolic_mem_operand): Likewise.
12211         * config/alpha/alpha.h (PREDICATE_CODES): Update.
12212         * config/alpha/alpha.md (small symbolic memory splitters): Update.
12213
12214 2002-01-22  Richard Henderson  <rth@redhat.com>
12215
12216         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
12217         sequence number for the literal.
12218         (divmoddi_internal_er): Likewise.
12219
12220 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
12221
12222         PR java/4972
12223         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
12224         in LIBICONV variable.
12225         * configure: Regenerated.
12226
12227 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
12228
12229         * dependence.c (build_def_use): Remove array_idx.
12230
12231         * dwarfout.c (last_filename): Remove.
12232         (output_compile_unit_die): Remove last_filename.
12233
12234 2002-01-22  Roger Sayle  <roger@eyesopen.com>
12235             Richard Henderson  <rth@redhat.com>
12236
12237         PR opt/3640
12238         * fold-const.c (fold): Optimize unsigned comparisons against
12239         UINT_MAX (and similar unsigned constants).
12240
12241 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
12242
12243         * Makefile.in (loop.o): Depend on OPTABS_H.
12244         * loop.c (emit_prefetch_instructions): Check the prefetch operand
12245         against the predicate.
12246
12247         PR target/5379
12248         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
12249         for the address operand.
12250
12251 2002-01-22  Richard Henderson  <rth@redhat.com>
12252
12253         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
12254
12255 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
12256
12257         PR other/5450
12258         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
12259         preprocessor flags.
12260
12261 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
12262
12263         * config.gcc (x86_64-*-netbsd*): New target.
12264         * config/i386/netbsd64.h: New file.
12265
12266 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
12267
12268         * regrename.c (kill_value): Fix typo.
12269
12270 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
12271
12272         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
12273
12274         * config/rs6000/rs6000.h: Same.
12275
12276         * function.c (instantiate_virtual_regs): Remove
12277         STARTING_FRAME_PHASE.
12278         (assign_stack_local_1): Same.
12279         Calculate frame phase.
12280
12281 2002-01-22  Nick Clifton  <nickc@redhat.com>
12282
12283         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
12284         variable declaration to outer scope in order to simplify
12285         future extensions.
12286         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
12287         arm_hard_regno_mode_ok.
12288         * config/arm/arm-protos.h: Add a prototype for
12289         arm_hard_regno_mode_ok.
12290         * config/arm/arm.c (soft_df_operand): Remove now redundant
12291         check for DImode values using IP_REGNUM.
12292         (nonimmediate_soft_df_operand): Remove now redundant check for
12293         DImode values using IP_REGNUM.
12294         (arm_hard_regno_mode_ok): New function. New check: make sure
12295         that DImode values are not stored in IP_REGNUM.
12296
12297         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
12298         note with a USE.
12299         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
12300
12301 2002-01-22  Jason Merrill  <jason@redhat.com>
12302
12303         * c-semantics.c (genrtl_compound_stmt): Only check nesting
12304         consistency if this COMPOUND_STMT is scoped.
12305
12306 2002-01-22  Kazu Hirata  <kazu@hxi.com>
12307
12308         * predict.c: Fix formatting.
12309         * print-tree.c: Likewise.
12310         * protoize.c: Likewise.
12311         * real.h: Likewise.
12312         * rtl.h: Likewise.
12313         * sbitmap.h: Likewise.
12314         * scan.c: Likewise.
12315         * sched-deps.c: Likewise.
12316         * sched-vis.c: Likewise.
12317         * sdbout.c: Likewise.
12318         * sibcall.c: Likewise.
12319         * ssa.c: Likewise.
12320         * ssa-ccp.c: Likewise.
12321         * ssa-dce.c: Likewise.
12322         * stmt.c: Likewise.
12323         * stor-layout.c: Likewise.
12324         * system.h: Likewise.
12325
12326 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12327
12328         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
12329         if fits in bounds of base type.
12330
12331         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
12332         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
12333         (add_bound_info, default): If can't find a context, make a
12334         SAVE_EXPR.
12335         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
12336
12337 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
12338
12339         * c-typeck.c (parser_build_binary_op): If result from
12340         build_binary_op is ERROR_MARK just return error_mark_node without
12341         further processing.
12342
12343 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
12344
12345         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
12346         Split a.out-specific bits into...
12347         * config/netbsd-aout.h: ...this.
12348         * config/netbsd-elf.h: New file.
12349         * config/alpha/netbsd-elf.h: Remove.
12350         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
12351         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
12352         (STARTFILE_SPEC): Remove redundant definition.
12353         (ENDFILE_SPEC): Likewise.
12354         (LINK_SPEC): Likewise.
12355         (CPP_SPEC): Likewise.
12356         (ASM_SPEC): Likewise.
12357         (LIB_SPEC): Likewise.
12358         (SWITCH_TAKES_ARG): Likewise.
12359         (TARGET_MEM_FUNCTIONS): Likewise.
12360         (CPP_PREDEFINES): Redefine.
12361         (ASM_FINAL_SPEC): Remove redefinition.
12362         (ASM_COMMENT_START): Redefine.
12363         (FUNCTION_PROFILER): Define.
12364         (TARGET_VERSION): Redefine.
12365         Comment and formatting cleanup.
12366         * config/i386/netbsd.h: Include <netbsd-aout.h>.
12367         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
12368         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
12369         big- or little-endian.
12370         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
12371         * config.gcc (*-*-netbsd*): Add definitions common to all
12372         NetBSD configs.
12373         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
12374         gnu_ld definitions.  Add netbsd-elf.h to and remove
12375         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
12376         tmake_file, and don't lose previous tmake_file contents.
12377         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
12378         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
12379         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
12380         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
12381         (mipsel-*-netbsd*): Rename this to...
12382         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
12383         mips/little.h to tm_file for mips*el-*.
12384         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
12385         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
12386         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
12387
12388 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12389
12390         * pa-protos.h (reg_before_reload_operand): New function prototype.
12391         * pa.c (reg_before_reload_operand): New function implementation.
12392         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
12393         contraints to "*m".
12394
12395 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
12396
12397         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
12398
12399 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12400
12401         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
12402         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
12403         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
12404         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
12405         (ENDFILE_SPEC): Undefine.
12406         (STARTFILE_SPEC): Redefine for PA.
12407
12408 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
12409
12410         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
12411
12412 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
12413
12414         * config.gcc: Add entries to supported PowerPC --with-cpu
12415         types.
12416
12417 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
12418
12419         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
12420         true for 64-bit mode only SSE registers in 32-bit mode.
12421
12422 2002-01-21  Kazu Hirata  <kazu@hxi.com>
12423
12424         * unwind-dw2.c: Fix formatting.
12425         * unwind-dw2-fde.c: Likewise.
12426         * unwind-dw2-fde.h: Likewise.
12427         * unwind-pe.h: Likewise.
12428         * varasm.c: Likewise.
12429         * varray.h: Likewise.
12430
12431 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
12432
12433         Remove workaround for register stack overwrite bug in mmix.
12434         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
12435         support for TARGET_REG_STACK_FILL_BUG.
12436         * config/mmix/mmix.h: Remove member has_call_without_parameters.
12437         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
12438         Delete.
12439         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
12440         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
12441         -mno-reg-stack-fill-bug-workaround.
12442         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
12443         machine member has_call_without_parameters.
12444         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
12445         -mreg-stack-fill-bug-workaround and
12446         -mno-reg-stack-fill-bug-workaround.
12447         (MMIX Options): Ditto.
12448
12449 2002-01-21  Kazu Hirata  <kazu@hxi.com>
12450
12451         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
12452         as appropriate.
12453         Remove redundant code.
12454
12455 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
12456
12457         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
12458         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
12459         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
12460         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
12461         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
12462         out target macro definitions and non-target-specific comments
12463         mostly taken from old versions of the manual.
12464
12465 2002-01-20  Kazu Hirata  <kazu@hxi.com>
12466
12467         * config/h8300/h8300.h: Fix comment formatting.
12468         * config/ia64/aix.h: Likewise.
12469         * config/ia64/ia64-protos.h: Likewise.
12470         * config/ia64/ia64.c: Likewise.
12471         * config/ia64/ia64.h: Likewise.
12472         * config/ia64/ia64intrin.h: Likewise.
12473         * config/ia64/linux.h: Likewise.
12474         * config/ia64/unwind-aix.c: Likewise.
12475         * config/ia64/unwind-ia64.c: Likewise.
12476
12477 2002-01-20  Kazu Hirata  <kazu@hxi.com>
12478
12479         * config/h8300/h8300.c: Revise comments about shift code.
12480
12481 2002-01-20  Kazu Hirata  <kazu@hxi.com>
12482
12483         * config/h8300/h8300.c (function_arg): Update a comment.
12484
12485 2002-01-20  Kazu Hirata  <kazu@hxi.com>
12486
12487         * config/h8300/h8300.md: Update the comments at the beginning
12488         of the file.
12489
12490 2002-01-20  Kazu Hirata  <kazu@hxi.com>
12491
12492         * config/i370/i370.c: Fix comment formatting.
12493         * config/i370/i370.h: Likewise.
12494         * config/i370/i370.md: Likewise.
12495         * config/i370/linux.h: Likewise.
12496
12497 Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12498
12499         * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
12500
12501         * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
12502         (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
12503         in incomplete case.
12504
12505 2002-01-20  Graham Stott  <grahams@redhat.com>
12506
12507         * cfgloop.c (flow_loop_preheader_scan): Fix typo.
12508
12509 2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12510
12511         * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
12512
12513 2002-01-19  Tom Rix  <trix@redhat.com>
12514
12515         * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
12516
12517 2002-01-18  Aldy Hernandez  <aldyh@redhat.com>
12518
12519         * doc/tm.texi (STARTING_FRAME_PHASE): Document.
12520
12521         * function.c (assign_stack_local_1): Adjust x_frame_offset with
12522         STARTING_FRAME_PHASE.
12523         (STARTING_FRAME_PHASE): New.
12524         (instantiate_virtual_regs): Check saneness of
12525         STARTING_FRAME_PHASE.
12526
12527         * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
12528
12529 2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
12530
12531         * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
12532
12533 2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>
12534
12535         * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
12536         be used for bootstrapping GCC 3.0.
12537
12538 2002-01-18  Kazu Hirata  <kazu@hxi.com>
12539
12540         * config/h8300/h8300.md: Fix an insn length.
12541
12542 2002-01-18  Kazu Hirata  <kazu@hxi.com>
12543
12544         * bitmap.h: Fix comment formatting.
12545         * combine.c: Likewise.
12546         * cppfiles.c: Likewise.
12547         * c-pragma.h: Likewise.
12548         * c-typeck.c: Likewise.
12549         * df.c: Likewise.
12550         * dwarf2out.c: Likewise.
12551         * function.c: Likewise.
12552         * gcc.c: Likewise.
12553         * genattrtab.c: Likewise.
12554         * gthr-win32.h: Likewise.
12555         * haifa-sched.c: Likewise.
12556         * predict.c: Likewise.
12557         * rtlanal.c: Likewise.
12558         * rtl.h: Likewise.
12559         * unwind-dw2-fde.h: Likewise.
12560         * unwind-pe.h: Likewise.
12561         * vmsdbgout.c: Likewise.
12562
12563 Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12564
12565         * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
12566         if type_required and passed decl.
12567
12568 2002-01-17  Aldy Hernandez  <aldyh@redhat.com>
12569
12570         * config.gcc (cpu_type): Include altivec.h in powerpc
12571         extra_headers.
12572         Same for darwin.
12573
12574         * config/rs6000/altivec.h: New.
12575
12576 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
12577
12578         * doc/install.texi (*-ibm-aix*): Update assembler and exception
12579         handling information.
12580         * doc/trouble.texi (Interoperation): Add libstdc++ information
12581         for AIX.
12582         (Misunderstandings): Add template instantiation and static template
12583         member information for AIX.
12584
12585 2002-01-17  Jason Merrill  <jason@redhat.com>
12586
12587         * dbxout.c (dbxout_type): Support const and volatile.
12588
12589         * except.c (add_partial_entry): Remove backwards compatibility code.
12590         (end_protect_partials): Likewise.
12591
12592 2002-01-17  Jakub Jelinek  <jakub@redhat.com>
12593
12594         * config/ia64/ia64.md (prologue_use): New.
12595         * config/ia64/ia64.c (ia64_expand_prologue): Use
12596         gen_prologue_use instead of gen_rtx_USE.
12597         (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
12598         as CODE_FOR_pred_rel_mutex.
12599         (ia64_sched_reorder2): Likewise.
12600
12601 2002-01-16  Eric Christopher  <echristo@redhat.com>
12602
12603         * config/mips/r3900.h: Reformat.
12604         (SUBTARGET_CPP_SIZE_SPEC): Remove.
12605         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
12606         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
12607         (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
12608         * config/mips/t-elf: Remove mips3 multilib.
12609
12610 2002-01-16  H.J. Lu <hjl@gnu.org>
12611
12612         * config/mips/linux.h: Include "mips/abi64.h".
12613
12614 2002-01-16  H.J. Lu <hjl@gnu.org>
12615
12616         * config/mips/t-linux: New.
12617
12618         * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
12619
12620         * config/mips/linux.h: Don't include "gofast.h".
12621         (INIT_SUBTARGET_OPTABS): Removed.
12622
12623 2002-01-16  Kazu Hirata  <kazu@hxi.com>
12624
12625         * config/h8300/h8300-protos.h: Replace emit_a_shift with
12626         output_a_shift.
12627         * config/h8300/h8300.c: Likewise.
12628         * config/h8300/h8300.md: Likewise.
12629
12630 2002-01-16  Kazu Hirata  <kazu@hxi.com>
12631
12632         * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
12633         spaces after an opcode name.
12634         (pushqi1_h8300hs): Likewise.
12635         (pushhi1_h8300hs): Likewise.
12636
12637 2002-01-16  Kazu Hirata  <kazu@hxi.com>
12638
12639         * doc/extend.texi: Replace "option" with "attribute"
12640         appropriately.
12641
12642 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
12643
12644         * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
12645         (and:DI () (const_int -8)).
12646         (split_small_symbolic_mem_operand): Split
12647         (mem (and:DI () (const_int -8)).
12648
12649 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
12650
12651         PR target/5309:
12652         * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
12653         same way as TYPE_IMUL.
12654         (ultrasparc_sched_reorder): Likewise.
12655         * config/sparc/sparc.md (type): Add comment to update
12656         ultrasparc_sched_reorder when making changes.
12657
12658 2002-01-16  Kazu Hirata  <kazu@hxi.com>
12659
12660         * doc/invoke.texi: Change the dump file name of block
12661         reordering pass from 28.bbro to 29.bbro.
12662         Mention -dk option.
12663
12664 Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>
12665
12666         * i386.md (minsf splitter): Fix pasto.
12667
12668 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
12669
12670         * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
12671         to frame pointer initialisation instruction.
12672         (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
12673         initialisation instruction.
12674         (soft_df_operand): Do not accept the IP register.
12675         (nonimmediate_soft_df_operand): Do not accept the IP register.
12676
12677 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
12678
12679         PR target/5357:
12680         * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
12681         MASK_V8 being both set.
12682
12683 2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>
12684
12685         * config/s390/s390.c (s390_emit_prologue): Do not emit USE
12686         insn for GOT register; add REG_MAYBE_DEAD notes instead.
12687         config/s390/s390.md (call, call_value): Add GOT register to
12688         CALL_INSN_FUNCTION_USAGE where needed.
12689         (call_exp, call_value_exp): New.
12690
12691 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
12692
12693         * config/arm/arm.c: General formatting tidy up.
12694
12695 2002-01-16  Graham Stott  <grahams@redhat.com>
12696
12697         * calls.c (try_to_integrate): Use "(size_t)" intermediate
12698         cast and when casting an integer literal to "rtx" pointer.
12699         (expand_call): Likewise.
12700         * flow.c (try_pre_increment): Likewise.
12701         (find_use_as_address): Likewise.
12702         * integrate.c (expand_iline_function): Likewise.
12703         * regmove.c (try_auto_increment): Likewise.
12704
12705 2002-01-16  Graham Stott  <grahams@redhat.com>
12706
12707         * sched-rgn.c (passed): Use sbitmap_free.
12708         (header): Likewise.
12709         (inner): Likewise.
12710         (in_queue): Likewise.
12711         (in_stack): Likewise.
12712
12713 2002-01-15  Eric Christopher  <echristo@redhat.com>
12714
12715         * flow.c (propagate_one_insn): Change to use fatal_insn.
12716
12717 2002-01-15  Kazu Hirata  <kazu@hxi.com>
12718
12719         * expmed.c (extract_fixed_bit_field): Remove unused code.
12720         * system.h: Poison SLOW_ZERO_EXTEND.
12721         * doc/tm.texi: Remove.
12722         * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
12723         * config/arm/arm.h: Likewise.
12724         * config/avr/avr.h: Likewise.
12725         * config/clipper/clipper.h: Likewise.
12726         * config/convex/convex.h: Likewise.
12727         * config/d30v/d30v.h: Likewise.
12728         * config/dsp16xx/dsp16xx.h: Likewise.
12729         * config/elxsi/elxsi.h: Likewise.
12730         * config/fr30/fr30.h: Likewise.
12731         * config/h8300/h8300.h: Likewise.
12732         * config/i370/i370.h: Likewise.
12733         * config/i386/i386.h: Likewise.
12734         * config/m68k/m68k.h: Likewise.
12735         * config/mips/mips.h: Likewise.
12736         * config/ns32k/ns32k.h: Likewise.
12737         * config/pdp11/pdp11.h: Likewise.
12738         * config/pj/pj.h: Likewise.
12739         * config/s390/s390.h: Likewise.
12740         * config/sh/sh.h: Likewise.
12741         * config/stormy16/stormy16.h: Likewise.
12742         * config/v850/v850.h: Likewise.
12743         * config/vax/vax.h: Likewise.
12744         * config/we32k/we32k.h: Likewise.
12745
12746 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
12747
12748         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
12749         (altivec_lvsl): Change constraint to b.
12750         (altivec_lvsr): Same.
12751         (altivec_lvebx): Same.
12752         (altivec_lvehx): Same.
12753         (altivec_lvewx): Same.
12754         (altivec_lvxl): Same.
12755         (altivec_lvx): Same.
12756         (altivec_stvx): Add parallel.
12757         (altivec_stvxl): Same.
12758         (altivec_stvehx): Same.
12759         (altivec_stvebx): Same.
12760         (altivec_stvebx): Same.
12761
12762 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
12763
12764         * config.gcc: Change altivec.h to altivec-defs.h.
12765
12766         * config/rs6000/altivec.h: Delete.
12767
12768         * config/rs6000/altivec-defs.h: Add.
12769
12770 2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12771
12772         * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
12773         and UMOD modes.
12774
12775         * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
12776         less than or equal to eight bytes.
12777
12778         * vax.md (andsi3): Remove constraints and change SET destination
12779         operand type to nonimmediate_operand.
12780         (andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
12781         when it is a CONST_INT.
12782
12783 2002-01-15  Jason Merrill  <jason@redhat.com>
12784
12785         * c-common.def (FILE_STMT): New code.
12786         * c-common.c (statement_code_p): It's a statement.
12787         * c-common.h (stmt_tree_s): Add x_last_filename.
12788         (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
12789         (last_expr_filename): New macro.
12790         * c-semantics.c (begin_stmt_tree): Initialize it.
12791         (add_stmt): If the filename changed, also insert a
12792         FILE_STMT.
12793         (expand_stmt): Handle seeing one.
12794
12795 2002-01-15  Eric Christopher  <echristo@redhat.com>
12796
12797         * flow.c (propagate_one_insn): Add error message and print out
12798         insn for debugging.
12799
12800 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
12801
12802         * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
12803         ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
12804         * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
12805         TRAMPOLINE_ALIGNMENT.
12806         * config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
12807         to be in bits.
12808         * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
12809         PCC_BITFIELD_TYPE_MATTERS.
12810         * config/interix.h (STDC_VALUE): Remove.  Use
12811         STDC_0_IN_SYSTEM_HEADERS.
12812         * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
12813         (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
12814         ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
12815
12816 2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>
12817
12818         * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
12819         not work on this platform currently.
12820
12821 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
12822
12823         * c-typeck.c (build_unary_op): Don't wrap msgid argument of
12824         readonly_warning in _().
12825
12826 2002-01-15  Douglas B Rupp  <rupp@gnat.com>
12827
12828         * gcc.c (delete_if_ordinary): Backout previous change.
12829
12830 2002-01-15  Kazu Hirata  <kazu@hxi.com>
12831
12832         * config/h8300/h8300.c (print_operand): Remove support for
12833         unused operand characters.
12834
12835         * read-rtl.c: Fix formatting.
12836         * real.c: Likewise.
12837         * recog.c: Likewise.
12838         * regclass.c: Likewise.
12839         * regmove.c: Likewise.
12840         * reg-stack.c: Likewise.
12841         * reload1.c: Likewise.
12842         * rtlanal.c: Likewise.
12843
12844 2002-01-15  Kazu Hirata  <kazu@hxi.com>
12845
12846         * config/i386/i386.c: Fix formatting.
12847
12848 2002-01-15  Jakub Jelinek  <jakub@redhat.com>
12849
12850         * c-typeck.c (process_init_element): Don't save_expr
12851         COMPOUND_LITERAL_EXPR if just its initializer will be used.
12852
12853 2002-01-15  David Edelsohn  <edelsohn@gnu.org>
12854
12855         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
12856         emit optional traceback table if optimize_size or TARGET_ELF.
12857         * config/rs6000/rs6000.md (prefetch): New.
12858
12859 2002-01-15  Andreas Jaeger  <aj@suse.de>
12860
12861         * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
12862
12863 2002-01-15  Kazu Hirata  <kazu@hxi.com>
12864
12865         * mips-tfile.c: Fix formatting.
12866
12867 Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>
12868
12869         * unroll.c (final_reg_note_copy): Fix previous commit.
12870
12871 2002-01-14  Kazu Hirata  <kazu@hxi.com>
12872
12873         * config/h8300/h8300-protos.h: Remove the prototype for
12874         eq_operator.
12875         * config/h8300/h8300.c (eq_operator): Remove.
12876
12877 2002-01-14  Richard Henderson  <rth@redhat.com>
12878
12879         * config/i386/i386.md (prefetch): Tidy.
12880         (prefetch_3dnow): Fix locality operand.
12881
12882 2002-01-14  Richard Henderson  <rth@redhat.com>
12883
12884         * config/mips/mips.h (HI_AND_FP_REGS): New register class.
12885         (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
12886
12887 2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>
12888
12889         * reload1.c (reload_combine): Pass reg_sum replacement through
12890         copy_rtx in loop performing multiple changes.
12891
12892 2002-01-14  Jakub Jelinek  <jakub@redhat.com>
12893
12894         * except.c (remove_unreachable_regions): New.
12895         (free_eh_status): Clear exception_handler_labels.
12896         (convert_from_eh_region_ranges): Call remove_unreachable_regions.
12897         (find_exception_handler_labels): Don't add the same label more than
12898         once.
12899         (remove_exception_handler_label): Don't die if
12900         find_exception_handler_labels hasn't been called for the current
12901         function yet.
12902
12903 Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>
12904
12905         * toplev.c (rest_of_compilation): Rebuild jump labels after
12906         gcse.
12907
12908 2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
12909
12910         * doc/extend.texi: Move documentation of X86 built-in functions
12911         here.
12912         * doc/invoke.texi: From here.
12913         * doc/sourcebuild.texi: Document location of documentation for
12914         machine built-in functions.
12915
12916 2002-01-13  Christopher Faylor  <cgf@redhat.com>
12917
12918         * cppfiles.c (TEST_THRESHOLD): New macro.
12919         (SHOULD_MMAP): Ditto.
12920         (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
12921         be used.
12922
12923 Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>
12924
12925         * unroll.c (final_reg_note_copy): Properly handle
12926         REG_LABEL
12927         (unroll_loops): Fix LOOP_CONDITION heuristics.
12928
12929 2002-01-14  Geoffrey Keating  <geoffk@redhat.com>
12930
12931         * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
12932         * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
12933
12934 Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>
12935
12936         * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
12937         threaded loop.
12938
12939 2002-01-14  Tom Rix  <trix@redhat.com>
12940
12941         * config/rs6000/rs6000.md: Fix typo with sradi.
12942
12943 2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>
12944
12945         * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
12946         movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
12947         (clrstrdi, clrstrsi): Adapt callers.
12948
12949         (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
12950
12951         (movti splitter): Never use register 0 as base register.
12952
12953 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
12954
12955         * combine.c (simplify_shift_const): Always generate new rtx
12956         for shift expression instead of reusing given expression.
12957
12958 Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12959
12960         * config/alpha/alpha.c (alpha_expand_mov): Don't call
12961         alpha_legitimize_address unless mode is Pmode.
12962
12963 2002-01-13  Geoffrey Keating  <geoffk@redhat.com>
12964
12965         * doc/md.texi (Modifiers): Document the '*' constraint for the
12966         user.
12967
12968         * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
12969         * doc/extend.texi (Function Attributes): 'interrupt' is valid
12970         for xstormy16 too.
12971
12972 2002-01-13  Richard Henderson  <rth@redhat.com>
12973
12974         * reload.c (find_reloads): Use a hard reg destination as reload reg
12975         for an input reload of the source.
12976
12977 2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12978
12979         * doc/install.texi (Binaries): Make link to ftp.writtenword.com
12980         more generic.
12981
12982 Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>
12983
12984         * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
12985         * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
12986
12987         * config/alpha/x-vms (USE_COLLECT2): Set to empty.
12988
12989 Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12990
12991         * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
12992
12993 2002-01-12  Tom Rix  <trix@redhat.com>
12994
12995         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
12996         TARGET_POWERPC64.
12997
12998 2002-01-12  Richard Henderson  <rth@redhat.com>
12999
13000         * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
13001
13002         * doc/invoke.texi: Update Alpha options.
13003
13004         * doc/invoke.texi: Update i386 built-in function lists.
13005
13006 Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>
13007
13008         * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
13009         referencing outside.
13010
13011 Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13012
13013         * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
13014         * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
13015         offsets, and change line folding.
13016         * optabs.c (expand_binop): Remove warnings.
13017         * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
13018
13019 2002-01-12  Graham Stott <grahams@redhat.com>
13020
13021         * attribs.c (handle_deprecated_attribute): constify WHAT.
13022         * diagnostic.c (warn_deprecated_use): Add braces, fixes
13023         dangling else warning and constify WHAT.
13024         * except.h (struct function, struct inline_remap): Move
13025         struct tag forward defs before all prototypes.
13026         (duplicate_eh_regions): Whitespace.
13027
13028 2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>
13029
13030         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
13031         MODE_BASE_REG_CLASS.
13032         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
13033
13034 2002-01-12  Richard Henderson  <rth@redhat.com>
13035
13036         * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
13037         (ix86_expand_vector_move): New.
13038         (bdesc_2arg): Remove andps, andnps, orps, xorps.
13039         (ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
13040         Remove old prefetch builtins.  Special case the logicals removed above.
13041         (ix86_expand_builtin): Likewise.
13042         (safe_vector_operand): Use V4SFmode, not TImode.
13043         (ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
13044         (ix86_expand_timode_binop_builtin): New.
13045         * config/i386/i386-protos.h: Update.
13046         * config/i386/i386.h (enum ix86_builtins): Update.
13047         * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
13048         Use ix86_expand_vector_move in vector move expanders.
13049         (movti_internal, movti_rex64): Add xorps alternative.
13050         (sse_clrv4sf): Rename and adjust from sse_clrti.
13051         (prefetch): Don't work so hard.
13052         (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
13053         * config/i386/xmmintrin.h (__m128): Use V4SFmode.
13054         (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
13055
13056 2002-01-11  Richard Henderson  <rth@redhat.com>
13057
13058         * config/i386/mmintrin.h: New file.
13059         * config/i386/xmmintrin.h: New file.
13060         * config.gcc (i?86-*-*): Add extra_headers.
13061         * simplify-rtx.c (simplify_unary_operation): Handle saturating
13062         truncation codes.
13063         (simplify_binary_operation): Handle saturating arithmetic codes.
13064         * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
13065         not the lowpart subreg.
13066         (ix86_expand_builtin): Return a TImode dummy register instead of 0
13067         on error.
13068         * config/i386/i386.md (mmx_clrdi): Override memory attribute.
13069
13070 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13071
13072         * conflict.c (conflict_graph_compute): Free regsets when finished.
13073         * ssa.c (compute_coalesced_reg_partition): Likewise.
13074
13075 2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
13076
13077         * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
13078         every where we allocate a register.
13079
13080 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13081
13082         * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
13083         * lcm.c (compute_earliest, compute_farthest): Likewise.
13084
13085 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
13086
13087         * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
13088
13089 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
13090
13091         * doc/rtl.texi (Insns): Fix 2 typos.
13092
13093 2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>
13094
13095         * doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
13096         options.  Use @table @gcctabopt for MMIX options.  Add index
13097         entries for MMIX options.  Start new paragraph with first
13098         heading of the machine-dependent options.
13099
13100 2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>
13101
13102         PR other/5299
13103         * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
13104         * combine.c (force_to_mode): Same.
13105         * reload1.c (clear_reload_reg_in_use): Same.
13106
13107 2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>
13108
13109         * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
13110         and 'subtargets'.
13111
13112 2002-01-11  Andreas Jaeger  <aj@suse.de>,
13113             Brad Lucier <lucier@math.purdue.edu>
13114
13115         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
13116         mcpu.
13117
13118 Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>
13119
13120         * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
13121         Protect with IN_LIBGCC.
13122         (LINK_EH_SPEC): Add required trailing space.
13123
13124 Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>
13125
13126         * c-tree.h: Move function declarations so that they are listed
13127         under the filename which contains them.
13128         (check_identifier, finish_decl_top_level,
13129         lookup_name_current_level_global, shadow_record_fields): Remove.
13130
13131 2002-01-11  Andreas Jaeger  <aj@suse.de>
13132
13133         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
13134         march.
13135
13136 2002-01-10  Richard Henderson  <rth@redhat.com>
13137
13138         * config/alpha/alpha.c (print_operand): Add 'J'.
13139         * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
13140         new operand with the sequence number for the lituse.  When splitting
13141         the insns, use gen_movdi_er_high_g and generate a sequence number.
13142         (gen_movdi_er_high_g): Print the sequence number if non-zero.
13143
13144 2002-01-10  Aldy Hernandez  <aldyh@redhat.com>
13145
13146         * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
13147         lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
13148         stvxl.
13149         (altivec_expand_builtin): Same.
13150         (altivec_expand_stv_builtin): New.
13151
13152         * config/rs6000/rs6000.h (rs6000_builtins): Same.
13153
13154         * config/rs6000/rs6000.md ("altivec_lvebx"): New.
13155         ("altivec_lvehx"): New.
13156         ("altivec_lvewx"): New.
13157         ("altivec_lvxl"): New.
13158         ("altivec_lvx"): New.
13159         ("altivec_stvx"): New.
13160         ("altivec_stvebx"): New.
13161         ("altivec_stvehx"): New.
13162         ("altivec_stvewx"): New.
13163         ("altivec_stvxl"): New.
13164
13165 2002-01-10  Richard Henderson  <rth@redhat.com>
13166
13167         * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
13168         * reload1.c (delete_output_reload): Zap spill_reg_store.  Take
13169         care not to delete instructions twice.
13170
13171 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
13172
13173         * toplev.c: Don't declare environ (it's not used anywhere).
13174         * configure.in: Don't check for declaration of environ.
13175         * config/i386/xm-mingw32.h: Don't #define environ.
13176         * config.in, configure: Regenerate.
13177
13178 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
13179
13180         * configure.in: Set stage1_cflags for powerpc-*-darwin*.
13181         * configure: Regenerate.
13182
13183         * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
13184         DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
13185         * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
13186         alpha/xm-vms.h.
13187         * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
13188         LIMITS_H_TEST here, not in m68k/x-next.
13189         * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
13190         SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
13191
13192         * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
13193         LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
13194         * config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.
13195
13196         * config/i386/x-djgpp: Renamed i386/t-djgpp.
13197         * config/m88k/x-dolph: Renamed m88k/t-dolph.
13198         * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
13199         * config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
13200         replacement of quadlib.asm with quadlib.c.
13201
13202         * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
13203         config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
13204         config/rs6000/xm-beos.h: Delete file.
13205
13206         * config.gcc: Update to match above changes.
13207
13208 2002-01-10  Kazu Hirata  <kazu@hxi.com>
13209
13210         * config/h8300/h8300.h: Fix comment typos.
13211         * config/h8300/h8300.md: Likewise.
13212         * config/h8300/lib1funcs.asm: Likewise.
13213
13214 2002-01-10  Dale Johannesen  <dalej@apple.com>
13215
13216         PR optimization/5269
13217         * unroll.c (precondition_loop_p): Make *increment be the correct
13218         sign when n_iterations known, to avoid confusing caller.
13219
13220 2002-01-10  Kazu Hirata  <kazu@hxi.com>
13221
13222         * doc/extend.texi (deprecated): Fix a typo.
13223
13224 Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>
13225
13226         * basic-block.h (update_br_prob_note): Declare.
13227         * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
13228         (try_forward_edges): Care negative frequencies and update note.
13229         (outgoing_edges_match): Tweek conditional merging heuristics.
13230         (try_crossjump_to_edge): use update_br_prob_note.
13231         * cfglayout.c (fixup_reorder_chain): Likewise.
13232         * cfrtl.c (update_br_prob_note): New.
13233         * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
13234
13235         * i386.c (ix86_decompose_address): Return -1 if address contains
13236         shift.
13237         (legitimate_address_p): Require ix86_decompose_address to return 1.
13238
13239         * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
13240         (cprop_insn): Likewise.
13241
13242 2002-01-10  Kazu Hirata  <kazu@hxi.com>
13243
13244         * toplev.c: Fix formatting.
13245         * tree.c: Likewise.
13246         * tree-dump.c: Likewise.
13247         * unroll.c: Likewise.
13248         * unwind-dw2.c: Likewise.
13249         * unwind-dw2-fde.c: Likewise.
13250         * unwind-dw2-fde-glibc.c: Likewise.
13251         * unwind-sjlj.c: Likewise.
13252
13253 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
13254
13255         * doc/invoke.texi: Document PDP-11 options.
13256
13257 2002-01-10  Kazu Hirata  <kazu@hxi.com>
13258
13259         * config/h8300/h8300.h: Fix formatting.
13260
13261 2002-01-10  Ira Ruben   <ira@apple.com>
13262
13263         Add __attribute__ ((deprecated)).
13264         * extend.texi: Document __attribute__ ((deprecated)).
13265         * invoke.texi: Document -Wno-deprecated-declarations.
13266         * testsuite/g++.dg/other/deprecated.C: New C++ test.
13267         * testsuite/gcc.dg/deprecated.c: New C test.
13268         * attribs.c (enum attrs): Declare handle_deprecated_attribute().
13269         (c_common_attribute_table): Add "deprecated" entry.
13270         (handle_deprecated_attribute): New function.
13271         * c-decl.c (deprecated_states): New enum.
13272         deprecated_state: State of "deprecated" handling.
13273         (start_decl): Set deprecated_state based on attributes.
13274         (grokdeclarator): Test for deprecated uses, propagate attribute.
13275         * c-typeck.c (build_component_ref): Test for deprecated fields.
13276         (build_external_ref): Test for deprecated primaries.
13277         * diagnostic.c (warn_deprecated_use) New function to issue
13278         warnings about __attribute__ ((depricated)) references.
13279         * flags.h (warn_deprecated_decl): Extern declared for
13280         -W[no-]deprecated-declarations option.
13281         * print-tree.c (print_node): Show deprecated flag status.
13282         * toplev.c (warn_deprecated_decl): Defined.
13283         (W_options): Added "deprecated-declaration".
13284         * toplev.h (warn_deprecated_use): Extern declared.
13285         * tree.h (struct tree_common): Define deprecated_flag.
13286         (TREE_DEPRECATED): New macro to access flag.
13287         * cp/call.c (build_call): Test for deprecated calls.
13288         * cp/class.c (add_implicitly_declared_members): Set global
13289         flag to tell grokdeclarator to not issue deprecated warnings.
13290         * cp/cp-tree.h: Add extern for adding_implicit_members.
13291         * cp/decl.c (deprecated_states): New enum.
13292         (start_decl): Set deprecated_state based on attributes.
13293         (grokdeclarator): Test for deprecated uses, propagate attribute.
13294         * cp/lex.c (do_identifier): Test for deprecated primaries.
13295         * cp/typeck.c (build_component_ref): Test for deprecated fields.
13296
13297 2002-01-10  Ira Ruben   <ira@apple.com>
13298
13299         Fix to assign attributes to inline member functions.
13300         * cp/decl.c (start_method): Handle attrlist.
13301
13302 2002-01-10  Kazu Hirata  <kazu@hxi.com>
13303
13304         * combine.c (expand_field_assignment): Use subreg_lsb().
13305
13306 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
13307
13308         * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
13309         POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
13310         (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
13311         Recurse for any operand of AND as long as constant is non-zero.
13312
13313 2002-01-10  Kazu Hirata  <kazu@hxi.com>
13314
13315         * config/h8300/h8300.md: Remove constraints from expanders.
13316
13317 2002-01-10  Kazu Hirata  <kazu@hxi.com>
13318
13319         * varasm.c: Fix formatting.
13320         * varray.c: Likewise.
13321         * vmsdbgout.c: Likewise.
13322         * xcoffout.c: Likewise.
13323
13324 Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>
13325
13326         * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
13327         update edge probabilities to match.
13328
13329 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
13330
13331         * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
13332         dependencies.
13333         * doc/languages.texi, doc/sourcebuild.texi: New files.
13334         * doc/configfiles.texi: Make a subsubsection.  Update.
13335         * doc/configterms.texi: Add @node.  Remove warning that this isn't
13336         instructions for building GCC.
13337         * doc/makefile.texi: Make a subsection.
13338         * doc/gccint.texi: Update.
13339
13340 Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>
13341
13342         * i386.md (sse_mov?fcc_const0_?): Fix constraints.
13343
13344 Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>
13345
13346         * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
13347
13348 Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>
13349
13350         * optabs.c (expand_fix): Look for wider integer modes first.
13351
13352         * i386.md (mov?f): Avoid the fake const double trick for medium
13353         memory model.
13354         (min?f*/max?f*): Prohibit memory operands for i387 variant.
13355         (fop_df_4): Disable for SSE compilation.
13356
13357 2002-01-10  Graham Stott  <grahams@redhat.com>
13358
13359         * dwarf2out.c (indirect_string_alloc, output_indirect_string):
13360         Move prototype into DWARF2_DEBUGGING_INFO conditional block.
13361
13362 2002-01-10  Richard Henderson  <rth@redhat.com>
13363
13364         * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
13365
13366 2002-01-10  Richard Henderson  <rth@redhat.com>
13367
13368         * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
13369         (copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.
13370
13371 2002-01-10  Kazu Hirata  <kazu@hxi.com>
13372
13373         * combine.c (can_combine_p): Fix a comment typo.
13374
13375 2002-01-09  Zack Weinberg  <zack@codesourcery.com>
13376
13377         * Makefile.in (s-gencheck, s-options, s-specs): Handle an
13378         empty list correctly.  Change loop index $t to $f for
13379         consistency with rest of Makefile.
13380
13381 2002-01-08  Aldy Hernandez  <aldyh@redhat.com>
13382
13383         * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
13384         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
13385
13386         * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
13387         mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
13388         (altivec_init_builtins): Same.
13389         (altivec_expand_unop_builtin): Return NULL_RTX on error.
13390         (altivec_expand_binop_builtin): Same.
13391         (altivec_expand_ternop_builtin): Same.
13392         (bdesc_dst): New.
13393
13394         * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
13395         ("altivec_vctuxs"): Fix typo.
13396         ("altivec_vnmsubfp"): Same.
13397         ("altivec_dssall"): New.
13398         ("altivec_mfvscr"): New.
13399         ("altivec_dss"): New.
13400         ("altivec_lvsl"): New.
13401         ("altivec_lvsr"): New.
13402         ("altivec_dstt"): New.
13403         ("altivec_dstst"): New.
13404         ("altivec_dststt"): New.
13405         ("altivec_dst"): New.
13406
13407         * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
13408         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
13409
13410 2002-01-09  Richard Henderson  <rth@redhat.com>
13411
13412         * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
13413
13414 2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>
13415
13416         * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
13417         function.
13418         * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
13419         prototype.
13420         * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
13421
13422 2002-01-09  Kazu Hirata  <kazu@hxi.com>
13423
13424         * read-rtl.c: Fix formatting.
13425         * real.c: Likewise.
13426         * regclass.c: Likewise.
13427         * regrename.c: Likewise.
13428         * reg-stack.c: Likewise.
13429         * reload1.c: Likewise.
13430         * reload.c: Likewise.
13431         * rtl.c: Likewise.
13432
13433 2002-01-09  Kazu Hirata  <kazu@hxi.com>
13434
13435         * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
13436         to extract items in the expr_list chain.
13437
13438 2002-01-09  Richard Henderson  <rth@redhat.com>
13439
13440         * config/vax/vax.c (vax_rtx_cost): Never abort.
13441
13442         * config/vax/vax.h (REAL_ARITHMETIC): Define.
13443
13444 2002-01-09  Jan Hubicka  <jh@suse.cz>
13445
13446         * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
13447
13448 2002-01-09  Richard Henderson  <rth@redhat.com>
13449
13450         * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
13451         Unify code from various alternatives.
13452
13453 2002-01-09  Richard Henderson  <rth@redhat.com>
13454
13455         * regrename.c (copy_value): Ignore the copy if the source register
13456         is present in the value chain with a narrower mode.
13457
13458 2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
13459
13460         * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
13461         for the c4x target. Also improve layout.
13462
13463 2002-01-09  Richard Henderson  <rth@redhat.com>
13464
13465         * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
13466         * config/m32r/m32r.md (and ior xor splitters): Swap operands
13467         to match insn patterns.
13468
13469 2002-01-09  Richard Henderson  <rth@redhat.com>
13470
13471         * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
13472         (copyprop_hardreg_forward_1): Likewise.
13473
13474 2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13475
13476         * pa.md (decrement_and_branch_until_zero): Change predicate for
13477         operand 0 from register_operand to reg_or_nonsymb_mem_operand.
13478
13479 2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
13480
13481         * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
13482         gets undefined. For Darwin.
13483
13484 2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
13485
13486         * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
13487
13488 2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13489
13490         * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
13491
13492 2002-01-08  Richard Henderson  <rth@redhat.com>
13493
13494         * regrename.c (copy_value): Ignore overlapping copies.
13495
13496 2002-01-08  Richard Henderson  <rth@redhat.com>
13497
13498         * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
13499         as needed to avoid shared structure.
13500
13501 2002-01-08  Kazu Hirata  <kazu@hxi.com>
13502
13503         * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
13504         H8/300H and H8/S.
13505
13506 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
13507
13508         * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
13509         LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
13510         documentation of obsolete macros.
13511         * system.h: Poison these macros.
13512         * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
13513         config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
13514         config/c4x/c4x.h, config/clipper/clipper.h,
13515         config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
13516         config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
13517         config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
13518         config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
13519         config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
13520         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
13521         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
13522         config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
13523         config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
13524         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
13525         config/sparc/sparc.h, config/stormy16/stormy16.h,
13526         config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
13527         definitions and commented out definitions of obsolete macros.
13528         * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
13529         of MAX_INT_TYPE_SIZE.
13530
13531 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
13532
13533         * config/s390/s390.c (s390_preferred_reload_class): Never
13534         return ADDR_REGS if it isn't a subset of the given class.
13535         * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
13536         FP_REGS, but all superclasses as well.
13537
13538         * config/s390/s390.c (s390_function_profiler): Fix thinko.
13539
13540         * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
13541         cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
13542         must not be a const_int.
13543
13544 2002-01-08  Richard Henderson  <rth@redhat.com>
13545
13546         * Makefile.in (toplev.o): Depend on options.h.
13547         (gcc.o): Depend on specs.h.
13548
13549 2002-01-08  Jakub Jelinek  <jakub@redhat.com>
13550
13551         * expr.c (store_expr): Convert VOIDmode constants back to target's
13552         mode.
13553
13554 2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
13555
13556         * doc/invoke.texi: Markup gcc as @command.  Refer to
13557         http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
13558         of http://gcc.gnu.org/thanks.html.
13559
13560 2002-01-08  Dale Johannesen  <dalej@apple.com>
13561
13562         * config/rs6000/rs6000.md: Add missing int register
13563         target case to movdf_low.
13564
13565 2002-01-08  Zack Weinberg  <zack@codesourcery.com>
13566
13567         * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
13568         except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
13569         (cppinit.o): Depend on except.h.
13570         (gencheck.h, options.h, specs.h, s-gencheck, s-options,
13571         s-specs): New rules.
13572
13573         * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
13574         Don't create specs.h/options.h/gencheck.h here.  Remove
13575         unnecessary variable settings from last argument of AC_OUTPUT.
13576         * config.in, configure: Regenerate.
13577         * intl.c: Hardcode package name as "gcc".
13578
13579         * cppinit.c: Include except.h.
13580         (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
13581         appropriate.
13582         * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
13583         Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
13584         (!)USING_SJLJ_EXCEPTIONS.
13585         * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
13586
13587 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
13588
13589         * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
13590         ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
13591         OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
13592         documentation of obsolete macros.
13593         * system.h: Poison these macros.
13594         * config/d30v/d30v.h, config/ns32k/encore.h,
13595         config/stormy16/stormy16.h: Remove definitions and commented out
13596         definitions of obsolete macros.
13597
13598 Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>
13599
13600         * objc/objc-act.c (handle_class_ref): Mark the declaration of
13601         %sobjc_class_ref_%s as used - to prevent unwanted compiler
13602         warnings.
13603
13604 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
13605
13606         * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
13607         * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
13608         to insn adjusting stack/frame pointer.
13609         * config/s390/s390.md (reload_la_64, reload_la_31): Do not
13610         accept operands that cause the insn to be non-splittable.
13611
13612 2002-01-08  Graham Stott  <grahams@redhat.com>
13613
13614         * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
13615         (C_TYPE_FIELDS_VOLATILE): Likewise.
13616         (C_TYPE_BEING_DEFINED): Likewise.
13617         (C_IS_RESERVED_WORD): Likewise.
13618         (C_TYPE_VARIABLE_SIZE): Likewise.
13619         (C_DECL_VARIABLE_SIZE): Likewise.
13620         (C_MISSING_PROTOTYPE_WARNED): Likewise.
13621         (C_SET_EXP_ORIGINAL_CODE): Likewise.
13622         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
13623         parenthesis.
13624         (C_DECL_ANTICIPATED): Likewise.
13625         (c_build_type_variant): Add parenthesis.
13626
13627 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
13628
13629         * gcc.c (option_map): Remove --version.
13630         (process_command): Handle -fversion following the GNU Coding
13631         Standards.  Partially addresses PR other/704.
13632
13633 2002-01-08  Graham Stott  <grahams@redhat.com>
13634
13635         * combine.c (combine_instructions): Fix typo.
13636
13637 2002-01-08  Graham Stott  <grahams@redhat.com>
13638
13639         * debug.h: Use "tree" and "rtx" throughout.
13640
13641         * debug.c: Likewise.
13642
13643 2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>
13644
13645         * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
13646         constant pool, use the pool's version of the symbol instead.
13647
13648 2002-01-07  Richard Henderson  <rth@redhat.com>
13649
13650         * regrename.c (find_oldest_value_reg): Ignore the value chain if
13651         the original register was copied in a mode with a fewer number of
13652         hard registers than the desired mode.
13653         (copyprop_hardreg_forward_1): Likewise.
13654         (debug_value_data): Fix loop test.
13655         * toplev.c (parse_options_and_default_flags): Reenable
13656         -fcprop-registers at -O1.
13657
13658 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
13659
13660         * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
13661         (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
13662
13663         * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
13664         predicates.
13665
13666         * config/rs6000/rs6000.md: Add altivec predicate patterns.
13667
13668 2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13669
13670         * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
13671         (pa_output_function_prologue): Output local label at the beginning of
13672         the prologue when profiling.
13673         (hppa_profile_hook): Use the local label rather than the function label.
13674         * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
13675
13676 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
13677
13678         * config/rs6000/rs6000.c (print_operand): Remove extra space.
13679         (altivec_expand_unop_builtin): Fix thinko.
13680         (altivec_expand_binop_builtin): Same.
13681         (altivec_expand_ternop_builtin): Same.
13682         (altivec_expand_builtin): Same.
13683
13684 2002-01-07  Richard Henderson  <rth@redhat.com>
13685
13686         * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
13687
13688 2002-01-07  Jason Merrill  <jason@redhat.com>
13689
13690         * unwind-dw2.c (execute_cfa_program): Use < again.
13691
13692 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
13693
13694         * predict.c (combine_predictions_for_insn): Avoid division by zero.
13695
13696 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
13697
13698         * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
13699         Don't allow -1 - x -> ~x simplifications in the first pass.
13700
13701 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
13702
13703         * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
13704         arguments.
13705         (altivec_expand_binop_builtin): Same.
13706         (altivec_expand_unop_builtin): Same.
13707         (print_operand): Fix typo.
13708         (bdesc_1arg): Add vupk* variants.
13709
13710         * rs6000.h (rs6000_builtins): Add vupk* enums.
13711
13712         * rs6000.md: Add altivec_vupk* variants.
13713
13714 2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
13715
13716         * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
13717         doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
13718         and last update dates.
13719
13720 2002-01-07  Janis Johnson  <janis187@us.ibm.com>
13721
13722         * doc/rtl.texi (Flags): Clean up documentation of RTL flags
13723
13724 2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>
13725
13726         * config/avr/avr.c (avr_mcu_types): Add new MCU types.
13727         * config/avr/avr.h (CPP_SPEC): Likewise.
13728         (LINK_SPEC): Likewise.
13729         (CRT_BINUTILS_SPECS): Likewise.
13730         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
13731         * doc/invoke.texi (AVR Options): Document them.
13732
13733 Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>
13734
13735         * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
13736         LABEL_NUSES.
13737
13738 2002-01-07  Graham Stott  <grahams@redhat.com>
13739
13740         * config/i386/i386.h: Update copyright date.
13741         (HALF_PIC_PTR): Add parenthesis.
13742         (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
13743         (CONSTANT_ALIGNMENT): Add parenthesis.
13744         (DATA_ALIGNMENT): Likewise.
13745         (LOCAL_ALIGNMENT): Likewise.
13746         (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
13747         (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
13748         (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
13749         (HARD_REGNO_NREGS): Add paranethesis.
13750         (VALID_SSE_REG_MODE): Whitespace.
13751         (VALID_MMX_REG_MODE): Whitespace.
13752         (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
13753         (ix86_hard_regno_mode_ok): Add parenthesis.
13754         (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
13755         (RETURN_IN_MEMORY): Whitespace.
13756         (N_REG_CLASSES): Add parenthesis.
13757         (INTEGER_CLASS_P): Add parenthesis and wrap.
13758         (FLOAT_CLASS_P): Likewise.
13759         (SSE_CLASS_P): Likewise.
13760         (MMX_CLASS_P): Likewise.
13761         (MAYBE_INTEGER_CLASS_P): Likewise.
13762         (MAYBE_FLOAT_CLASS_P): Likewise.
13763         (MAYBE_SSE_CLASS_P): Likewise.
13764         (MAYBE_MMX_CLASS_P): Likewise.
13765         (Q_CLASS_P): Likewise.
13766         (GENERAL_REGNO_P): Uppercase macro parameter.
13767         (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
13768         (FP_REGNO_P): Likewise.
13769         (ANY_FP_REGNO_P): Uppercase macro parameter.
13770         (SSE_REGNO_P): Likewise.
13771         (SSE_REGNO): Likewise.
13772         (SSE_REG_P): Likewise.
13773         (SSE_FLOAT_MODE_P): Likewise.
13774         (MMX_REGNO_P): Likewise.
13775         (MMX_REG_P):Likewise.
13776         (STACK_REG_P): Likewise.
13777         (NON_STACK_REG_P): Likewise.
13778         (STACK_TOP_P): Likewise.
13779         (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
13780         (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
13781         (SECONDARY_MEMORY_NEEDED): Likewise.
13782         (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
13783         (MD_ASM_CLOBBERS): Whitespace and wrap.
13784         (MUST_PASS_IN_STACK): Whitespace and wrap.
13785         (RETURN_POPS_ARGS): Add parenthesis.
13786         (INIT_CUMULATIVE_ARGS): Likewise.
13787         (FUNCTION_ARG): Likewise.
13788         (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
13789         (SETUP_INCOMING_VARARGS): Likewise.
13790         (BUILD_VA_LIST_TYPE):  Add parenthesis.
13791         (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
13792         parenthsis.
13793         (EXPAND_BUILTIN_VA_ARG): Likewise.
13794         (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
13795         (INITIALIZE_TRAMPOLINE): Add parenthesis.
13796         (INITIAL_ELIMINATION_OFFSET): Likewise.
13797         (REGNO_OK_FOR_INDEX_P): Add parenthesis.
13798         (REGNO_OK_FOR_BASE_P): Likewise.
13799         (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
13800         (REGNO_OK_FOR_DIREG_P): Likewise.
13801         (REG_OK_FOR_INDEX_P): Whitespace.
13802         (REG_OK_FOR_BASE_P): Whitespace.
13803         (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
13804         parenthesis.
13805         (FIND_BASE_TERM): Fix typo.
13806         (LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
13807         (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
13808         (SYMBOLIC_CONST; Whitespace.
13809         (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
13810         (ENCODE_SECTION_INFO): Whitespace.
13811         (FINALIZE_PIC): Remove do { ... } while (0).
13812         (PROMOTE_MODE): Wrap in do { ... } while (0).
13813         (CONST_COSTS): Whitespace.
13814         (RTX_COSTS): Add paramethesis, whitespace and wrap.
13815         (REGISTER_MOVE_COST): Add parenthesis.
13816         (MEMORY_MOVE_COST): Likewise.
13817         (EXTRA_CC_MODES): Whitespace.
13818         (SELECT_CC_MODE): Add parenthesis and whitespace.
13819         (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
13820         (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
13821         (ASM_OUTPUT_LABEL): Add paramethesis.
13822         (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
13823         (ASM_OUTPUT_REG_POP): Likewise.
13824         (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
13825         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
13826
13827         * config/i386/i386.c: Update copyright.
13828         (CHECK_STACK_LIMIT): Add parenthesis.
13829         (AT_BP): Uppercase macro parameter.
13830         (x86_64_int_parameter_registers): Constify.
13831         (x86_64_int_return_registers): Likewise.
13832         (ix86_compare_op0): Use rtx.
13833         (construct_container): Constify INTREG parameter.
13834         (function_arg): Use rtx.
13835
13836         * diagnostic.h: Update copyright date.
13837         (output_buffer_state): Add parenthesis.
13838         (output_buffer_format_args): Likewise.
13839
13840         * combine.c (combine_instructions): Replace XEXP (links, 0)
13841         with link.
13842
13843 2002-01-06  H.J. Lu <hjl@gnu.org>
13844
13845         * cfgcleanup.c (thread_jump): Fix 2 typos.
13846
13847 2002-01-06  Aldy Hernandez  <aldyh@redhat.com>
13848
13849         * config.gcc: Add support for --enable-altivec.
13850
13851 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
13852
13853         * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
13854
13855 2002-01-06  Jakub Jelinek  <jakub@redhat.com>
13856
13857         * objc/objc-act.c (handle_impent): Use assemble_variable to emit
13858         __objc_class_name_*.
13859
13860 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
13861
13862         * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
13863
13864 2002-01-06  Richard Henderson  <rth@redhat.com>
13865
13866         * reorg.c (emit_delay_sequence): Remove death notes, not merely
13867         nop them out.  Increment label reference count for REG_LABEL.
13868         (fill_slots_from_thread): Frob label reference count around
13869         delete_related_insns.
13870
13871 2002-01-05  Richard Henderson  <rth@redhat.com>
13872
13873         * cfgcleanup.c (try_forward_edges): Detect infinite loops while
13874         jump threading.
13875
13876 2002-01-05  Richard Henderson  <rth@redhat.com>
13877
13878         * c-decl.c (c_expand_body): Don't call outlining_inline_function.
13879         * integrate.c (output_inline_function): Likewise.
13880         * toplev.c (rest_of_compilation): Do it here instead.  Move call
13881         to remove_unnecessary_notes after emitting abstract instance.
13882         Force an emitted nested function to have its parent emited as well.
13883         * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
13884         for null.
13885         (rtl_for_decl_location): Do not look at reload data structures
13886         before reload has run.
13887
13888 2002-01-05  Kazu Hirata  <kazu@hxi.com>
13889
13890         * cse.c: Fix formatting.
13891         * dwarf2asm.c: Likewise.
13892         * dwarf2out.c: Likewise.
13893         * explow.c: Likewise.
13894         * expmed.c: Likewise.
13895         * function.c: Likewise.
13896         * gcov.c: Likewise.
13897         * gencheck.c: Likewise.
13898         * genrecog.c: Likewise.
13899         * ggc-common.c: Likewise.
13900         * ggc-page.c: Likewise.
13901         * global.c: Likewise.
13902
13903 2002-01-05  Kazu Hirata  <kazu@hxi.com>
13904
13905         * combine.c: Fix formatting.
13906
13907 2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>
13908
13909         PR middle-end/1557
13910         * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
13911
13912 2002-01-05  David Edelsohn  <edelsohn@gnu.org>
13913
13914         * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
13915         as 1 for __powerpc64__ as well.
13916
13917         * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
13918
13919         * alias.c (find_base_value, PLUS/MINUS): If we found a base,
13920         return it.
13921
13922 2002-01-05  Daniel Berlin  <dan@dberlin.org>
13923
13924         * lcm.c: Revert change, due to performance regression it causes on
13925         SPEC because it's slightly more conservative (sigh, I hate
13926         edge-based LCM).
13927
13928 Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>
13929
13930         * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
13931
13932 2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
13933
13934         * doc/cppinternals.texi: Update.
13935
13936 2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>
13937
13938         * doc/invoke.texi (Option Summary) <MMIX Options>: Document
13939         -mbranch-predict, -mreg-stack-fill-bug-workaround and their
13940         negatives.
13941         (MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
13942         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
13943         kludge for pre-october-14th mmix versions to handle new-found bug
13944         with PUSHJ/PUSHGO and the register stack.
13945         * config/mmix/mmix.h (struct machine_function): Rename member
13946         has_call_value_without_parameters to has_call_without_parameters.
13947         All referers changed.
13948         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
13949         TARGET_MASK_BRANCH_PREDICT): New macros.
13950         (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
13951         -mno-reg-stack-fill-bug-workaround.
13952         * config/mmix/mmix.md ("call"): Set struct machine member
13953         has_call_without_parameters.
13954
13955 Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>
13956
13957         * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
13958
13959 Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>
13960
13961         * cfgcleanup.c: Include tm_p.h
13962         (mark_effect): Fix handling of hard register; fix handling of SET
13963
13964 2002-01-04  Kazu Hirata  <kazu@hxi.com>
13965
13966         * config/h8300/h8300.md (anonymous patterns): Check that
13967         operands are registers before using REGNO on them.
13968
13969 2002-01-03  Roland McGrath  <roland@frob.com>
13970
13971         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
13972
13973 2002-01-04  Jakub Jelinek  <jakub@redhat.com>
13974
13975         * tree.h (expand_expr_stmt_value): Add maybe_last argument.
13976         * c-common.h (genrtl_expr_stmt_value): Likewise.
13977         * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
13978         (expand_expr_stmt_value): Add maybe_last argument.
13979         Don't warn about statement with no effect if it is the last statement
13980         in expression statement.
13981         * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
13982         (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
13983         expand_expr_stmt_value.
13984         (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
13985         genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
13986         * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
13987         as maybe_last to expand_expr_stmt_value.
13988
13989 Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)
13990
13991         * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
13992         be passed in, do not build it.
13993         (c_begin_if_stmt): New function.
13994         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
13995         * c-common.h (c_expand_start_cond): Update prototype.
13996         (c_begin_if_stmt): Prototype new function.
13997         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
13998         * c-parse.in (if_prefix): Use c_begin_if_stmt,
13999         c_begin_while_stmt and c_finish_while_stmt_cond.
14000
14001 2002-01-04  William Cohen  <wcohen@redhat.com>
14002
14003         * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
14004         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
14005         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
14006         * config/pa/som.h (ASM_FILE_START): Likewise.
14007
14008 2002-01-04  Daniel Berlin  <dan@cgsoftware.com>
14009
14010         * lcm.c: Include df.h.
14011         Add available_transfer_function prototype.
14012         (compute_available): Rework to use iterative dataflow framework.
14013         (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
14014         with bb_info in df.h
14015         (available_transfer_function): New function.
14016
14017         * Makefile.in (lcm.o): add df.h to dependencies.
14018
14019 2002-01-04  Richard Henderson  <rth@redhat.com>
14020
14021         * config/alpha/alpha.c (some_operand): Accept HIGH.
14022         (input_operand): Likewise; accept simple references to globals.
14023         (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
14024         (alpha_const_double_ok_for_letter_p): Likewise.
14025         (alpha_extra_constraint): Likewise.
14026         (alpha_preferred_reload_class): Likewise.  Do not force
14027         symbolic constants to memory.
14028         (alpha_legitimate_address_p): Accept simple references
14029         to small_symbolic_operand.
14030         (alpha_legitimize_address): New arg scratch.  Be prepared to be
14031         called when no_new_pseudos.  Emit simple symbolic references.
14032         Split integers into low, high, and rest.
14033         (alpha_expand_mov): Use alpha_legitimize_address.
14034         (some_small_symbolic_mem_operand): New.
14035         (split_small_symbolic_mem_operand): New.
14036         * config/alpha/alpha-protos.h: Update.
14037         * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
14038         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
14039         (EXTRA_CONSTRAINT): Likewise.
14040         (PREFERRED_RELOAD_CLASS): Likewise.
14041         (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
14042         (PREDICATE_CODES): Update.
14043         * config/alpha/alpha.md: New post-reload splitters to convert
14044         simplfied symbolic operands to the form that references $29.
14045         (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
14046         (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
14047
14048 2002-01-03  Richard Henderson  <rth@redhat.com>
14049
14050         * local-alloc.c (function_invariant_p): Update commentary.
14051
14052 2002-01-04  H.J. Lu <hjl@gnu.org>
14053
14054         * toplev.c (rest_of_compilation): Fix a typo when calling
14055         cleanup_cfg.
14056
14057 2002-01-03  Kazu Hirata  <kazu@hxi.com>
14058
14059         * c-common.c: Fix formatting.
14060         * diagnostic.c: Likewise.
14061         * doloop.c: Likewise.
14062         * dwarf2out.c: Likewise.
14063
14064 2002-01-03  Kazu Hirata  <kazu@hxi.com>
14065
14066         * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
14067         of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
14068
14069 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
14070
14071         * cpperror.c: Update comments and copyright.
14072         * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
14073         cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
14074
14075 2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14076
14077         * collect2.c (main): Use strcmp when testing for "-shared".
14078
14079 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
14080
14081         * cppmacro.c: Don't include intl.h.  Update comments.
14082         (new_number_token): Allocate enough buffer for 64-bit unsigned
14083         integers; update prototype.
14084         * cppmain.c: Update comments.
14085
14086 2002-01-03  William Cohen  <wcohen@redhat.com>
14087
14088         * function.h (struct function): Add profile.
14089         (current_function_profile): New.
14090         doc/extend.texi: Update documentation.
14091         * final.c (final_start_function): Use current_function_profile
14092         instead of profile_flag.
14093         (profile_after_prologue): Likewise.
14094         * function.c (expand_function_start): Likewise.
14095         (expand_function_start): Likewise.
14096         * config/alpha/alpha.c (direct_call_operand):
14097         (alpha_does_function_need_gp): Likewise.
14098         (alpha_expand_prologue): Likewise.
14099         * config/arm/arm.c (arm_expand_prologue): Likewise.
14100         thumb_expand_prologue: Likewise.
14101         * config/d30v/d30v.c (d30v_stack_info): Likewise.
14102         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
14103         (fr30_expand_prologue): Likewise.
14104         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
14105         * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
14106         * config/i386/i386.h (FINALIZE_PIC): Likewise.
14107         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
14108         * config/i960/i960.c (i960_output_function_prologue): Likewise.
14109         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
14110         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
14111         (m32r_expand_prologue): Likewise.
14112         * config/m88k/m88k.c (m88k_layout_frame): Likewise.
14113         (m88k_expand_prologue): Likewise.
14114         * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
14115         * config/mips/mips.c (compute_frame_size): Likewise.
14116         (mips_expand_prologue): Likewise.
14117         (mips_can_use_return_insn): Likewise.
14118         * config/pa/elf.h (ASM_FILE_START): Likewise.
14119         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
14120         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
14121         * config/pa/som.h (ASM_FILE_START): Likewise.
14122         * config/romp/romp.c (romp_using_r14): Likewise.
14123         * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
14124         (rs6000_stack_info): Likewise.
14125         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
14126         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
14127         * config/v850/v850.c (compute_register_save_size): Likewise.
14128
14129 2002-01-03  Jakub Jelinek  <jakub@redhat.com>
14130
14131         * simplify-rtx.c (simplify_binary_operation) [DIV]: If
14132         gen_lowpart_common fails, use gen_lowpart_SUBREG.
14133
14134 2002-01-03  Turly O'Connor  <turly@apple.com>
14135
14136         * darwin.c (machopic_output_possible_stub_label): Don't generate
14137         stub routines for pseudo-stubs which we've just defined.
14138
14139 2002-01-03  Kazu Hirata  <kazu@hxi.com>
14140
14141         * builtins.c: Fix formatting.
14142         * c-typeck.c: Likewise.
14143         * combine.c: Likewise.
14144         * expr.c: Likewise.
14145         * loop.c: Likewise.
14146
14147 2002-01-03  Andreas Schwab  <schwab@suse.de>
14148
14149         * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
14150         and return true if _cpp_push_next_buffer pushed a new include
14151         file.
14152         * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
14153         _cpp_pop_file_buffer did not push a new file.
14154         * cpphash.h (_cpp_pop_file_buffer): Update declaration.
14155
14156 2002-01-02  Eric Christopher  <echristo@redhat.com>
14157
14158         * final.c (final_scan_insn): Change 0 -> NULL_RTX in
14159         FIND_REG_INC_NOTE call. Update copyright.
14160         * loop.c (canonicalize_condition): Ditto.
14161         * reorg.c (delete_scheduled_jump): Ditto.
14162
14163 2002-01-03  Kazu Hirata  <kazu@hxi.com>
14164
14165         * gcse.c: Fix formatting.
14166
14167 2002-01-03  Graham Stott  <grahams@redhat.com>
14168
14169         * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
14170         forward defs for struct tags rtx_def, union_tree, rtvec_def
14171         also output corresponding typedefs for rtx, tree, and rtvec.
14172
14173         * system.h: Move forward defs for struct tags rtx_def, union_tree,
14174         rtvec_def along with corresponding typedefs for rtx, tree, and
14175         rtvec to config.h, hconfig.h, tconfig.h.
14176
14177 2002-01-03  Graham Stott  <grahams@redhat.com>
14178
14179         * tree.h: Update copyright date.
14180         (IS_EXPR_CODE_CLASS): Add parenthesis.
14181         (TREE_SET_CODE): Add whitespace.
14182         (TREE_CHECK): Add parenthesis.
14183         (TREE_CLASS_CODE): Add parenthesis and wrap long line.
14184         (CST_OR_CONSTRUCTOR_CHECK):
14185         (EXPR_CHECK): Add parenthis, whitespace and wrap line.
14186         (TREE_SYMBOL_REFERENCED): Whitespace.
14187         (INT_CST_LT): Likewise.
14188         (INT_CST_LT_UNSIGNED): Likewise.
14189         (tree_real_cst): Unwrap comment.
14190         (tree_string): Likewise.
14191         (tree_complex): Likewise.
14192         (IDENTIFIER_POINTER): correct cast.
14193         (SAVE_EXPR_CONTEXT): Whitespace.
14194         (EXPR_WFL_FILENAME_NODE): Likewise.
14195         (EXPR_WFL_FILENAME): Remove parenthesis.
14196         (DECL_ORIGIN): Add parenthesis.
14197         (DECL_FROM_INLINE): Use NULL_TREE.
14198         (build_int_2): Whitespace.
14199         (build_type_variant): Add parenthesis.
14200
14201         * gcc/jcf-parse.c: Update copyright date.
14202         (yyparse): Constify resource_filename.
14203
14204 2002-01-03  Graham Stott  <grahams@redhat.com>
14205
14206         * rtl.h: Update copyright date.
14207         (RTL_CHECK1): Wrap long line.
14208         (RTL_CHECK2): Likewise.
14209         (RTL_CHECKC1): Wrap long line and whitespace.
14210         (RTL_CHECKC2): Likewise.
14211         (XWINT): Whitespace.
14212         (XINT): Likewise.
14213         (XSTR): Likewise.
14214         (XEXP): Likewise.
14215         (XVEC): Likewise.
14216         (XMODE): Likewise.
14217         (XBITMAP): Likewise.
14218         (XTREE): Likewise.
14219         (XBBDEF): Likewise.
14220         (XTMPL): Likewise.
14221         (X0WINT): Likewise.
14222         (X0INT):Likewise.
14223         (X0UINT): Likewise.
14224         (X0STR): Likewise.
14225         (X0EXP): Likewise.
14226         (X0VEC): Likewise.
14227         (X0MODE): Likewise.
14228         (X0BITMAP): Likewise.
14229         (X0TREE): Likewise.
14230         (X0BBDEF): Likewise.
14231         (X0ADVFLAGS): Likewise.
14232         (X0CSELIB): Likewise.
14233         (X0MEMATTR): Likewise.
14234         (XCWINT): Likewise.
14235         (XCINT): Likewise.
14236         (XCUINT): Likewise.
14237         (XCSTR): Likewise.
14238         (XCEXP): Likewise.
14239         (XCVEC): Likewise.
14240         (XCMODE): Likewise.
14241         (XCBITMAP): Likewise.
14242         (XCTREE): Likewise.
14243         (XCBBDEF): Likewise.
14244         (XCADVFLAGS): Likewise.
14245         (XCCSELIB): Likewise.
14246         (XC2EXP): Likewise.
14247         (INSN_UID): Likewise.
14248         (PREV_INSN): Likewise.
14249         (PATTERN): Likewise.
14250         (INSN_CODE): Likewise.
14251         (PUT_REG_NOTE_KIND): Likewise.
14252         (CODE_LABEL_NUMBER): Likewise.
14253         (NOTE_SOURCE_FILE): Likewise.
14254         (NOTE_BLOCK): Likewise.
14255         (NOTE_EH_HANDLER): Likewise.
14256         (NOTE_RANGE_INFO): Likewise.
14257         (NOTE_LIVE_INFO): Likewise.
14258         (NOTE_BASIC_BLOCK): Likewise.
14259         (NOTE_EXPECTED_VALUE): Likewise.
14260         (NOTE_LINE_NUMBER): Likewise.
14261         (LABEL_NAME): Likewise.
14262         (LABEL_NUSES): Likewise.
14263         (LABEL_ALTERNATE_NAME): Likewise.
14264         (ADDRESSOF_DECL): Likewise.
14265         (JUMP_LABEL): Likewise.
14266         (LABEL_NEXTREF): Likewise.
14267         (REGNO): Likewise.
14268         (ORIGINAL_REGNO: Likewise.
14269         (HARD_REGISTER_NUM_P): Add parenthesis.
14270         (SUBREG_REG): Whitespace.
14271         (SUBREG_BYTE): Likewise.
14272         (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
14273         (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
14274         (ASM_OPERANDS_OUTPUT_IDX): Likewise.
14275         (ASM_OPERANDS_INPUT_VEC): Likewise.
14276         (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
14277         (ASM_OPERANDS_INPUT): Likewise.
14278         (ASM_OPERANDS_INPUT_LENGTH): Likewise.
14279         (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
14280         (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
14281         (ASM_OPERANDS_INPUT_MODE): Likewise.
14282         (ASM_OPERANDS_SOURCE_FILE): Likewise.
14283         (ASM_OPERANDS_SOURCE_LINE): Likewise.
14284         (MEM_SET_IN_STRUCT_P): Minor reformat.
14285         (TRAP_CONDITION): Whitespace.
14286         (TRAP_CODE): Likewise.
14287         (COND_EXEC_TEST): Likewise.
14288         (COND_EXEC_CODE): Likewise.
14289         (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
14290         (PHI_NODE_P): Add parenthesis.
14291         (plus_constant): Whitespace and add parenthesis.
14292
14293 2002-01-03  Kazu Hirata  <kazu@hxi.com>
14294
14295         * config/avr/avr.c: Fix comment typos.
14296         * config/c4x/c4x.md: Likewise.
14297         * config/dsp16xx/dsp16xx.h: Likewise.
14298         * config/dsp16xx/dsp16xx.md: Likewise.
14299         * config/i386/i386.md: Likewise.
14300         * config/ia64/ia64.c: Likewise.
14301         * config/m32r/m32r.h: Likewise.
14302         * config/m68hc11/m68hc11.md: Likewise.
14303         * config/mmix/mmix.c: Likewise.
14304         * config/mn10200/mn10200.c: Likewise.
14305         * config/romp/romp.c: Likewise.
14306         * config/sh/sh.c: Likewise.
14307         * config/stormy16/stormy16.c: Likewise.
14308         * config/stormy16/stormy16.h: Likewise.
14309         * config/stormy16/stormy16.md: Likewise.
14310
14311 2002-01-03  Graham Stott  <grahams@redhat.com>
14312
14313         * loop.h: Update copyright date.
14314         (LOOP_MOVABLES): Fix typo.
14315         (LOOP_REGS): Likewise.
14316         (LOOP_IVS): Likewise.
14317
14318 2002-01-03  Graham Stott  <grahams@redhat.com>
14319
14320         * cppinit.c: Update copyright date.
14321         Don't include output.h
14322         * Makefile.in: Update copyright date.
14323         Update dependency.
14324
14325 2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
14326
14327         PR c/5226
14328         * invoke.texi (-mthreads): Remove from documented RS/6000 options.
14329         (-pthread) Add to RS/6000 options.
14330
14331 2002-01-02  Kazu Hirata  <kazu@hxi.com>
14332
14333         * except.c: Fix comment typos.
14334         * loop.c: Likewise.
14335         * varasm.c: Likewise.
14336         * doc/tm.texi: Fix a typo.
14337
14338 2002-01-02  Jakub Jelinek  <jakub@redhat.com>
14339
14340         * c-typeck.c (output_init_element): Allow initializing static storage
14341         duration objects with compound literals.
14342
14343 2002-01-02  Richard Henderson  <rth@redhat.com>
14344
14345         * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
14346         after abusing it.
14347
14348 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14349
14350         * gcc.c (default_compilers): Const-ify.
14351         * mips-tdump.c (stab_names): Likewise.
14352         * mips-tfile.c (map_coff_types, map_coff_storage,
14353         map_coff_sym_type, map_coff_derived_type, stabs_symbol,
14354         pseudo_ops_t, pseudo_ops): Likewise.
14355         * protoize.c (default_include): Likewise
14356
14357         * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
14358         (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
14359         Add array size in declaration.
14360         (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
14361         emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
14362         esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
14363         etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
14364         eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
14365         efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
14366         c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
14367         emtens, make_nan): Const-ify.
14368         (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
14369         DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
14370
14371 2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>
14372
14373         * config.gcc (ia64-*-*): Set extra_headers.
14374         (alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
14375         * config/alpha/t-osf: Remove.
14376         * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
14377
14378 2002-01-02  David Edelsohn  <edelsohn@gnu.org>
14379
14380         * config/rs6000/t-aix43: Revert previous change.
14381
14382 2002-01-02  Jason Merrill  <jason@redhat.com>
14383
14384         * c-decl.c (c_expand_body): Call outlining_inline_function when
14385         emitting an inline function out of line.
14386
14387 2002-01-02  Richard Henderson  <rth@redhat.com>
14388
14389         * dwarf2out.c (limbo_die_node): Add created_for member.
14390         (new_die): New argument created_for.  Update all callers.
14391         (mark_limbo_die_list): New.
14392         (dwarf2out_init): Register limbo_die_list as a root.
14393         (dwarf2out_finish): Force insert limbo dies into their function
14394         context.
14395
14396 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
14397
14398         PR c++/5089
14399         * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
14400
14401 2002-01-02  Kazu Hirata  <kazu@hxi.com>
14402
14403         * config/h8300/fixunssfsi.c: Update copyright.
14404         Fix comment typos.
14405         Fix formatting.
14406         * config/h8300/h8300.c: Update copyright.
14407         Eliminate warnings.
14408
14409 2002-01-02  Kazu Hirata  <kazu@hxi.com>
14410
14411         * config/romp/romp.c: Fix comment formatting.
14412         * config/romp/romp.h: Likewise.
14413         * config/romp/romp.md: Likewise.
14414         * config/s390/s390.c: Likewise.
14415         * config/stormy16/stormy16.c: Likewise.
14416         * config/stormy16/stormy16.h: Likewise.
14417
14418 2002-01-02  Alexandre Oliva  <aoliva@redhat.com>
14419
14420         * c-common.h (genrtl_expr_stmt_value): Declare.
14421         * c-semantics.c (genrtl_goto_stmt): Redirect to...
14422         (genrtl_goto_stmt_value): ... this new function.  Pass new
14423         argument down to expand_expr_stmt_value, taking
14424         TREE_ADDRESSABLE into account.
14425         * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
14426         STMT_EXPR as addressable, i.e., one whose result we want.
14427         * expr.c (expand_expr): Don't save expression statement value
14428         of labeled_blocks or loop_exprs.
14429         * stmt.c (expand_expr_stmt): Redirect to...
14430         (expand_expr_stmt_value): ... this new function.  Use new
14431         argument to tell whether to save expression value.
14432         (expand_end_stmt_expr): Reset last_expr_type and
14433         last_expr_value if we don't have either.
14434         * tree-inline.c (declare_return_variable): Mark its use
14435         statement as addressable.
14436         * tree.h: Document new use of TREE_ADDRESSABLE.
14437         (expand_expr_stmt_value): Declare.
14438
14439 2002-01-01  Tom Rix  <trix@redhat.com>
14440
14441         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
14442         rs6000_emit_allocate_stack.
14443
14444 2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
14445
14446         * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
14447         ${srcdir}/ginclude/ to every entry in extra_headers.
14448         * configure: Regenerate.
14449         * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
14450         * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
14451         * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
14452         * ginclude/proto.h: Rename to config/convex/proto.h.
14453
14454 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14455
14456         * attribs.c (handle_vector_size_attribute): Use host_integerp
14457         and tree_int_cst; remove warnings.
14458         * caller-save.c (insert_restore): Add cast to get rid of warning.
14459         (insert_save): Likewise.
14460         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
14461         * regmove.c (find_matches): Add temporary var to kill a warning.
14462
14463 2002-01-01  Douglas B Rupp  <rupp@gnat.com>
14464
14465         * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
14466         LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
14467         * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
14468         (vms-dwarf2eh.o): Add Makefile rule.
14469         * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
14470         * config/alpha/vms-dwarf2eh.asm: New file.
14471
14472         * gcc.c (delete_if_ordinary): Delete all versions.
14473
14474 2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
14475
14476         * config/mmix/mmix.md: Update FIXME to not mention
14477         define_constants.
14478         (MMIX_rJ_REGNUM): New define_constants constant.
14479         ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
14480         "*movdicc_real"): Adjust contraints formatting.
14481         ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
14482         for branch prediction.
14483         ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
14484         output template.
14485         ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
14486         "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
14487         number.  Delete related FIXMEs.
14488         * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
14489         from number to MMIX_rJ_REGNUM.
14490         (TARGET_MASK_BRANCH_PREDICT): New.
14491         (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
14492         (TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
14493         value.  Add -mbranch-predict and -mno-branch-predict.
14494         (TARGET_VERSION): Drop date.
14495         (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
14496         * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
14497         for finding out global symbols.
14498         (mmix_asm_output_labelref): Revert condition for global symbol.
14499         (mmix_print_operand): <case '+'>: Emit P for a likely branch.
14500         (mmix_print_operand_punct_valid_p): A '+' is valid.
14501
14502 See ChangeLog.6 for earlier changes.