* config/rs6000/rs6000.c (output_toc): Mask longs to 32 bits.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2002-05-24  Alan Modra  <amodra@bigpond.net.au>
2
3         * config/rs6000/rs6000.c (output_toc): Mask longs to 32 bits.
4
5 2002-05-23  Vladimir Makarov  <vmakarov@redhat.com>
6
7         * genautomata.c (reserv_sets_hash_value): Use shift equal to 3/4
8         of size of unsigned.
9
10 2002-05-23  Richard Henderson  <rth@redhat.com>
11
12         * configure.in (HAVE_AS_TLS): New test.
13         * config.in, configure: Rebuild.
14         * config/i386/i386.c (TARGET_HAVE_TLS): Set if HAVE_AS_TLS.
15         (ix86_tls_dialect_string, ix86_tls_dialect): New.
16         (override_options): Set it.
17         (tls_model_chars, tls_symbolic_operand): New.
18         (tls_symbolic_operand_1, global_dynamic_symbolic_operand): New.
19         (local_dynamic_symbolic_operand, initial_exec_symbolic_operand): New.
20         (local_exec_symbolic_operand): New.
21         (get_pic_label_name): Merge into output_set_got.
22         (ix86_asm_file_end): Emit pic_label_name if defined.
23         (legitimate_constant_p, constant_address_p): New.
24         (legitimate_pic_operand_p): New.
25         (legitimate_pic_address_disp_p): Handle GOTTPOFF, NTPOFF, DTPOFF.
26         (legitimate_address_p): Likewise.
27         (ix86_encode_section_info): Rename from i386_; handle tls decls.
28         (ix86_strip_name_encoding): New.
29         (get_thread_pointer): New.
30         (legitimize_address): Handle tls symbols.
31         (output_pic_addr_const): Handle GOTTPOFF, TPOFF, NTPOFF, DTPOFF.
32         Remove UNSPEC_PLT.
33         (struct machine_function): Add some_ld_name.
34         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Set it.
35         (print_operand) [&]: Use it.  Handle UNSPEC_TP.
36         (output_addr_const_extra): New.
37         (maybe_get_pool_constant): New.
38         (ix86_split_to_parts): Use it.
39         (ix86_expand_move): Handle tls symbols.
40         (ix86_tls_get_addr): New.
41         * config/i386/i386.h (TARGET_GNU_TLS, TARGET_SUN_TLS): New.
42         (TARGET_OPTIONS): Add tls-dialect.
43         (CONSTANT_ADDRESS_P): Use new out-of-line function.
44         (LEGITIMATE_CONSTANT_P): Likewise.
45         (LEGITIMATE_PIC_OPERAND_P): Likewise.
46         (TARGET_STRIP_NAME_ENCODING): New.
47         (ASM_OUTPUT_LABELREF): New.
48         (PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
49         (OUTPUT_ADDR_CONST_EXTRA): New.
50         (PREDICATE_CODES): Update.
51         (ix86_tls_dialect, ix86_tls_dialect_string): New.
52         * config/i386/i386.md: Regroup and renumber unspec constants.
53         (tls_global_dynamic_gnu, tls_global_dynamic_sun): New.
54         (tls_local_dynamic_base_gnu, tls_local_dynamic_base_sun): New.
55         (tls_global_dynamic, tls_local_dynamic_base): New.
56         (tls_local_dynamic_once): New.
57         * config/i386/i386-protos.h: Update.
58
59 2002-05-23  Richard Henderson  <rth@redhat.com>
60
61         * genemit.c (gen_insn): Print file:lineno comment before function.
62         (main): likewise.
63         * gensupport.c (struct queue_elem): Add filename member.
64         (queue_pattern): Initialize it; update all callers.
65         (process_include): Don't free filename.
66         (read_md_rtx): Set read_rtx_filename.
67
68 2002-05-23  Hans Boehm  <Hans_Boehm@hp.com>
69
70         * config/ia64/linux.h (IA64_GATE_AREA_END): Adjust for 64K pages.
71
72 2002-05-23  Richard Henderson  <rth@redhat.com>
73
74         * config/i386/i386.c (output_set_got): Fix typo in pic no-deep case.
75
76 2002-05-23  Richard Henderson  <rth@redhat.com>
77
78         * doc/extend.texi (C++98 Thread-Local Edits): Update with
79         commentary from Mark.
80
81 2002-05-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
82
83         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1):
84         Use FOR_EACH_BB macros to iterate over basic block chain.
85         * cfg.c (clear_edges, clear_bb_flags, dump_flow_info,
86         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges):
87         Likewise.
88         * cfganal.c (set_edge_can_fallthru_flag, flow_call_edges_add,
89         find_unreachable_blocks, create_edge_list, verify_edge_list,
90         remove_fake_edges, add_noreturn_fake_exit_edges,
91         flow_preorder_transversal_compute, flow_dfs_compute_reverse_execute):
92         Likewise.
93         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
94         find_sub_basic_blocks): Likewise.
95         * cfgcleanup.c (try_optimize_cfg, delete_unreachable_blocks):
96         Likewise.
97         * cfglayout.c (record_effective_endpoints, cleanup_unconditional_jumps):
98         Likewise.
99         * cfgloop.c (flow_loops_cfg_dump, flow_loops_find):
100         Likewise.
101         * cfgrtl.c (compute_bb_for_insn, tidy_fallthru_edges,
102         commit_edge_insertions, commit_edge_insertions_watch_calls,
103         print_rtl_with_bb, verify_flow_info, purge_all_dead_edges): Likewise.
104         * combine.c (combine_instructions, reg_dead_at_p): Likewise.
105         * conflict.c (conflict_graph_compute): Likewise.
106         * df.c (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
107         df_modified_p, df_refs_unlink, df_dump): Likewise.
108         * dominance.c (calc_dfs_tree, calculate_dominance_info): Likewise.
109         * final.c (compute_alignments): Likewise.
110         * flow.c (update_life_info, update_life_info_in_dirty_blocks,
111         delete_noop_moves, calculate_global_regs_live, allocate_bb_life_data,
112         count_or_remove_death_notes): Likewise.
113         * gcse.c (oprs_unchanged_p, record_last_reg_set_info,
114         compute_hash_table, compute_kill_rd, compute_rd, compute_ae_kill,
115         classic_gcse, compute_transp, cprop, compute_pre_data,
116         compute_transpout, invalidate_nonnull_info,
117         delete_null_pointer_checks_1, delete_null_pointer_checks,
118         compute_code_hoist_vbeinout, hoist_code, compute_ld_motion_mems,
119         compute_store_table, build_store_vectors, store_motion): Likewise.
120         * global.c (global_conflicts, mark_elimination): Likewise.
121         * graph.c (print_rtl_graph_with_bb): Likewise.
122         * haifa-sched.c (sched_init): Likewise.
123         * ifcvt.c (if_convert): Likewise.
124         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
125         compute_available, compute_nearerout, compute_rev_insert_delete,
126         optimize_mode_switching): Likewise.
127         * local-alloc.c (local_alloc, update_equiv_regs): Likewise.
128         * predict.c (estimate_probability, note_prediction_to_br_prob,
129         propagate_freq, counts_to_freqs, expensive_function_p,
130         estimate_bb_frequencies): Likewise.
131         * profile.c (instrument_edges, get_exec_counts,
132         compute_branch_probabilities, compute_checksum, branch_prob,
133         find_spanning_tree): Likewise.
134         * recog.c (split_all_insns, peephole2_optimize): Likewise.
135         * reg-stack.c (reg_to_stack, convert_regs_entry, convert_regs):
136         Likewise.
137         * regclass.c (scan_one_insn, regclass): Likewise.
138         * regmove.c (mark_flags_life_zones, regmove_optimize,
139         record_stack_memrefs): Likewise.
140         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Likewise.
141         * reload1.c (reload, reload_combine, fixup_abnormal_edges): Likewise.
142         * resource.c (find_basic_block): Likewise.
143         * sched-ebb.c (schedule_ebbs): Likewise.
144         * sched-rgn.c (is_cfg_nonregular, build_control_flow,
145         find_single_block_region, find_rgns, schedule_insns)
146         * sibcall.c (optimize_sibling_and_tail_recursive_call)
147         * ssa-ccp.c (optimize_unexecutable_edges,
148         ssa_ccp_df_delete_unreachable_insns): Likewise.
149         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
150         * ssa.c (find_evaluations, compute_dominance_frontiers_1,
151         rename_block, convert_to_ssa, compute_conservative_reg_partition,
152         compute_coalesced_reg_partition, rename_equivalent_regs,
153         convert_from_ssa): Likewise.
154         * config/ia64/ia64.c (emit_predicate_relation_info, process_epilogue,
155         process_for_unwind_directive): Likewise.
156
157         * df.c (FOR_ALL_BBS): Removed.
158         * gcse.c (struct null_pointer_info): Type of current_block field
159         changed.
160         (struct reg_avail_info): Type of last_bb field changed.
161         * config/ia64/ia64.c (block_num): Removed.
162         (need_copy_state): Type changed.
163         (last_block): New.
164
165 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
166
167         * cppinit.c (mark_named_operators): Split out from init_builtins.
168         (cpp_finish_options): Call it from here instead.
169
170 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
171
172         * builtin-attrs.def: Update copyright years.
173         (ATTR_NONNULL): New attribute identifier.
174         (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_3): New
175         attribute tree lists.
176         (DEF_FORMAT_ATTRIBUTE): Chain a nonnull attribute for the
177         format operand.
178         (ATTR_FORMAT_ARG_1, ATTR_FORMAT_ARG_2): Use...
179         (DEF_FORMAT_ARG_ATTRIBUTE): ...this to generate format_arg
180         attribute lists.  Chain the appropriate nonnull attribute.
181         * c-format.c (check_format_arg): Remove null format string
182         warning.
183         * testsuite/gcc.dg/format/null-1.c: New test.
184
185 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
186
187         * Makefile.in (ADAC): Define.
188         (SYSLIBS): Define.
189         (.SUFFIXES): Move before language makefile fragments.
190         (STAGE2_FLAGS_TO_PASS): Use stage CC as ADAC.
191
192 2002-05-23  Mark Mitchell  <mark@codesourcery.com>
193
194         * varasm.c (make_decl_rtl): Don't allow weak variables to be
195         placed in common.
196
197 Thu May 23 19:43:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
198
199         * cfg.c (dump_flow_info): Print results of
200         maybe_hot/probably_never_executed predicates.
201         * toplev.c (open_dump_file): Print function frequency.
202
203 2002-05-23  David S. Miller  <davem@redhat.com>
204
205         * cse.c (approx_reg_cost_1, approx_reg_cost): Recode to not use
206         regsets.
207
208 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
209
210         * c-common.c (warn_nonnull): Declare.
211         (c_common_attribute_table): Add "nonnull" attribute.
212         (handle_nonnull_attribute, check_function_nonnull, nonnull_check_p,
213         check_nonnull_arg, get_nonnull_operand, check_function_arguments,
214         check_function_arguments_recurse): New functions.
215         * c-common.h (warn_nonnull): Declare extern.
216         (check_function_arguments, check_function_arguments_recurse): New
217         prototypes.
218         * c-decl.c (c_decode_option): Add -Wnonnull option.
219         * c-format.c (set_Wformat): Set warn_nonnull if enabling
220         format checking.
221         (format_check_context): New structure.
222         (check_format_info_recurse): Remove recursion and rename to...
223         (check_format_arg): ...this.  Update comment.
224         (check_format_info): Use check_function_arguments_recurse.
225         * c-typeck.c (build_function_call): Call check_function_arguments
226         instead of check_function_format.
227         * doc/extend.texi: Document "nonnull" attribute.
228         * doc/invoke.texi: Docuemnt -Wnonnull option.
229         * testsuite/gcc.dg/nonnull-1.c: New test.
230         * testsuite/gcc.dg/nonnull-2.c: New test.
231
232 2002-05-23  David S. Miller  <davem@redhat.com>
233
234         * basic-block.h (CLEANUP_NO_INSN_DEL): Define it.
235         * cfgcleanup.c (cleanup_cfg): If it is set do not
236         attempt to delete trivially dead insns.
237         * except.c (finish_eh_generation): Pass it to cleanup_cfg.
238         * toplev.c (rest_of_compilation): Document non-trivial aspect
239         the RTL before optimize_save_area_alloca is run.
240
241 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
242
243         * c-lex.c (indent_level): Remove.
244         (cb_file_change, c_lex): Remove indent level handling.
245         * c-lex.h (indent_level): Remove.
246         * input.h (struct file_stack): Remove indent_level.
247         * toplev.c (push_srcloc): Remove indent_level handling.
248
249 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
250
251         PR target/6753
252         * config/i386/i386.md (sse_movdfcc, sse_movdfcc_eq): Use Y instead
253         of x in constraints for clarity.
254         (sse_mov?fcc split): abort if op2 == op3.
255         (sse_movsfcc_const0_1, sse_movsfcc_const0_2, sse_movsfcc_const0_3,
256         sse_movsfcc_const0_4): Add earlyclobber.
257         (sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
258         sse_movdfcc_const0_4): Likewise.  Use DFmode, not SFmode.
259         Use Y instead of x in constraints.
260
261 2002-05-23  Richard Henderson  <rth@redhat.com>
262
263         * doc/extend.texi (C99 Thread-Local Edits): New subsection.
264         (C++98 Thread-Local Edits): New subsection.
265
266         * config/i386/i386.c, config/i386/i386.h: Tidy comments and whitespace.
267         (ix86_arch): Set type to enum processor_type.
268
269         * config/i386/i386.md (movsi_1, movdi_1_rex64): Use 
270         LEGITIMATE_PIC_OPERAND_P not SYMBOLIC_CONST.
271
272 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
273
274         * configure.in: Fix as version test for binutils 2.12.1 releases
275         (without dates).
276         * configure: Rebuilt.
277
278 2002-05-23  Richard Henderson  <rth@redhat.com>
279
280         * config/i386/i386.c (get_pic_label_name): New.
281         (load_pic_register): Remove.
282         (output_set_got): New.
283         (ix86_expand_prologue): Use gen_set_got; mark insn REG_MAYBE_DEAD.
284         * config/i386/i386.md (UNSPEC_SET_GOT): New.
285         (UNSPECV_PROLOGUE_SET_GOT, UNSPECV_PROLOGUE_GET_PC): Remove.
286         (prologue_set_got, prologue_get_pc): Remove.
287         (set_got, set_got_nopic, set_got_deep, set_got_nodeep): New.
288         (builtin_setjmp_receiver): Use gen_set_got.
289         * config/i386/i386-protos.h: Update.
290
291 Thu May 23 09:22:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
292
293         * gcse.c (hash_expr): Do not use alias set for hashing.
294
295 2002-05-22  Kevin Buettner  <kevinb@redhat.com>
296
297         * dbxout.c (dbxout_class_name_qualifiers): New function.
298         (dbxout_symbol): Output class/struct qualifiers for a .stabs entry.
299
300 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
301
302         * cpperror.c (_cpp_begin_message): No special casing
303         of CPP_FATAL_LIMIT.
304         * cppinit.c (sanity_checks): s/DL_FATAL/DL_ICE/.
305         (output_deps, cpp_handle_option, cpp_post_options): Use DL_ERROR.
306         * cpplib.c (do_include_common): Use DL_ERROR.
307         * cpplib.h (CPP_FATAL_LIMIT, CPP_FATAL_ERRORS, DL_FATAL): Remove.
308         (DL_ICE): Renumber.
309         * fix-header.c (read_scan_file): Update.
310
311 2002-05-22  Richard Henderson  <rth@redhat.com>
312
313         * config/i386/i386.c (ix86_expand_call): New function, extracted
314         from md call patterns.  Add pic_offset_table_rtx to
315         CALL_INSN_FUNCTION_USAGE when needed.
316         * config/i386/i386.md (call_pop, call): Use ix86_expand_call.
317         (call_value_pop, call_value, untyped_call): Likewise.
318         (call_exp, call_value_exp): Remove.
319         * config/i386/i386-protos.h: Update.
320
321 2002-05-22  Richard Henderson  <rth@redhat.com>
322
323         * varasm.c (default_section_type_flags): Check for VAR_DECL
324         before using DECL_THREAD_LOCAL.
325
326 2002-05-22  David Edelsohn  <edelsohn@gnu.org>
327
328         * config/rs6000/aix43.h (LINK_SPEC): Add PE initializer.
329         (STARTFILE_SPEC): Delete PE crt0.o.
330         * config/rs6000/aix51.h: Same.
331         * config/rs6000/rs6000.c: Use TARGET_XCOFF, not OBJECT_FORMAT_COFF.
332         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Append [DS] to
333         function descriptor symbol.  Use RS6000_OUTPUT_BASENAME.
334         (ASM_OUTPUT_DEF_FROM_DECLS): Use RS6000_OUTPUT_BASENAME.
335         * config/rs6000/xcoff.h (ASM_OUTPUT_DEF): Define.
336
337 2002-05-22  Richard Henderson  <rth@redhat.com>
338
339         * varasm.c (default_section_type_flags): Handle tls data and
340         default sections.
341         (default_unique_section): Handle tls sections.
342
343 2002-05-23  Alan Modra  <amodra@bigpond.net.au>
344
345         * configure.in (CROSS): Define NATIVE_CROSS.
346         * configure: Regenerate.
347         * gcc.c (STARTFILE_PREFIX_SPEC): Define.
348         (startfile_prefix_spec): New var.
349         (static_specs): Add startfile_prefix_spec.
350         (do_spec_2): Split out from..
351         (do_spec): ..here.
352         (main): Process startfile_prefix_spec.
353         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC) Change name of
354         dynamic linker.
355         (STARTFILE_PREFIX_SPEC): Define.
356         (STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Rewrite without
357         absolute paths.
358
359 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
360
361         * cpperror.c: Fix formatting.
362         * cppexp.c: Likewise.
363         * cppfiles.c: Likewise.
364         * cpphash.c: Likewise.
365         * cpphash.h: Likewise.
366         * cppinit.c: Likewise.
367         * cpplex.c: Likewise.
368         * cpplib.c: Likewise.
369         * cppmacro.c: Likewise.
370         * cppmain.c: Likewise.
371         * cppspec.c: Likewise.
372
373 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
374
375         * combine.c (force_to_mode): Use gen_int_mode.
376         Don't clear CONST_INT bits outside of mode.
377
378 2002-05-22  Richard Henderson  <rth@redhat.com>
379
380         * fixinc/inclhack.def (thread_keyword): Match __thread as last arg.
381         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
382
383 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
384
385         PR c/6643
386         * emit-rtl.c (widen_memory_access): Only call compare_tree_int
387         if DECL_SIZE_UNIT is INTEGER_CST.
388
389 2002-05-22  Richard Henderson  <rth@redhat.com>
390
391         * flow.c (life_analysis): Delete broken reg_label check.
392
393 2002-05-22  Richard Henderson  <rth@redhat.com>
394
395         * fixinc/inclhack.def (thread_keyword): Allow as any prototype arg.
396         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
397
398 Wed May 22 18:39:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
399
400         * t-sh (LIB2FUNCS_EXTRA): Now embed-bb.c.
401         (embed-bb.c): New rule.
402         * t-sh64 (LIB2FUNCS_EXTRA): Don't change.
403         * config/sh/embed_bb.c: Delete.
404
405 Wed May 22 18:25:29 2002  J"orn Rennecke <joern.rennecke@superh.com>
406
407         * c-common.c (cb_register_builtins): Don't indent '#' of #define.
408
409 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
410
411         * config/h8300/h8300.md (*andorqi3): New.
412
413 2002-05-22  Neil Booth  <neil@daikokuya.demon.co.uk>
414
415         PR preprocessor/6517
416         * Makefile.in: Update.
417         * c-common.c (c_common_post_options): Add preprocessor
418         errors to the error count.
419         * c-lang.c (c_post_options): Kill.
420         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
421         * hooks.h: Add header guards.
422         * langhooks-def.h: Include hooks.h.
423         (LANG_HOOKS_POST_OPTIONS): Update.
424         * langhooks.h (struct lang_hooks): Update post_options.
425         * toplev.c (parse_options_and_default_flags): Update.
426 objc:
427         * objc-lang.c (objc_post_options): Kill.
428         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
429
430 2002-05-21  Bruce Korb  <bkorb@gnu.org>
431
432         * fixinc/tests/base/pthread.h(THREAD_KEYWORD_CHECK): add fix check
433         * fixinc/inclhack.def(thread_keyword): use c_fix = format.
434         * fixinc/fixincl.x: regen.
435
436 2002-05-21  Kazu Hirata  <kazu@cs.umass.edu>
437
438         * cfgbuild.c: Fix formatting.
439         * cfg.c: Likewise.
440         * cfgcleanup.c: Likewise.
441         * cfglayout.c: Likewise.
442         * cfgloop.c: Likewise.
443         * cfgrtl.c: Likewise.
444
445 2002-05-21  Richard Henderson  <rth@redhat.com>
446
447         * c-common.h (enum rid): Add RID_THREAD.
448         * c-decl.c (start_decl): Do not set DECL_COMMON for tls variables.
449         (grokdeclarator): Grok __thread.
450         * c-parse.in (reswords): Add __thread.
451         (rid_to_yy): Add RID_THREAD.
452
453         * tree.h (DECL_THREAD_LOCAL): New.
454         (struct tree_decl): Add thread_local_flag.
455         * print-tree.c (print_node): Dump DECL_THREAD_LOCAL.
456         * tree.c (staticp): TLS variables are not static.
457
458         * target-def.h (TARGET_HAVE_TLS): New.
459         * target.h (have_tls): New.
460         * output.h (SECTION_TLS): New.
461         * varasm.c (assemble_variable): TLS variables can't be common for now.
462         (default_section_type_flags): Handle .tdata and .tbss.
463         (default_elf_asm_named_section): Handle SECTION_TLS.
464         (categorize_decl_for_section): Handle DECL_THREAD_LOCAL.
465
466         * flags.h (flag_tls_default): Declare.
467         * toplev.c (flag_tls_default): Define.
468         (display_help): Display help for it.
469         (decode_f_option): Set it.
470
471         * doc/extend.texi (Thread-Local): New node describing language-level
472         thread-local storage.
473         * doc/invoke.texi (-ftls-model): Document.
474
475         * fixinc/inclhack.def (thread_keyword): New.
476         * fixinc/fixincl.x: Rebuild.
477
478 2002-05-21  Jeffrey A Law  <law@redhat.com>
479
480         * optabs.c (expand_binop): For double-word integer multiplies,
481         do not compute intermediate results into something that is
482         not a register (such as a SUBREG or MEM).
483
484         * i386.c (ix86_sched_reorder_ppro): Fix typo/thinko.
485         (ix86_sched_reorder): Make sure to initialize scheduling
486         data even when there's only one insn in the ready queue.
487
488 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
489
490         * genautomata.c (reserv_sets_hash_value): Fix a typo.
491
492 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
493
494         * genautomata.c (reserv_sets_hash_value): Define hash_value as
495         set_el_t.  Transform the hash value into unsigned.
496         (output_cycle_reservs): Fix bug with output of repeated `nothing'.
497         (transform_3): Add code to process `(A,B)+(D,E)'.
498
499 2002-05-21  NIIBE Yutaka  <gniibe@m17n.org>
500
501         * reload1.c (do_output_reload): Run delete_output_reload
502         only if optimizing.
503
504 2002-05-21  Roger Sayle  <roger@eyesopen.com>
505
506         PR middle-end/6600
507         * expr.c (STORE_MAX_PIECES): New macro to avoid immediate constants
508         larger than INTEGER_CST.  (store_by_pieces_1): Use it here...
509         (can_store_by_pieces): ... and here to limit the largest mode used.
510         Add a comment to document this function.
511
512 2002-05-21  Richard Henderson  <rth@redhat.com>
513
514         * flow.c (life_analysis): Fix test for deleted label.
515
516 2002-05-21  Neil Booth  <neil@daikokuya.demon.co.uk>
517
518         * doc/tm.texi: Fix typo.
519
520 2002-05-21  Zack Weinberg  <zack@codesourcery.com>
521
522         * c-common.c (c_common_init): Set options->unsigned_char from
523         flag_signed_char.
524         (cb_register_builtins): Define __STRICT_ANSI__ and
525         __CHAR_UNSIGNED__ here...
526         * cppinit.c (init_builtins): Not here.
527         (cpp_create_reader): unsigned_char option defaults to 0, not
528         !DEFAULT_SIGNED_CHAR.
529         (COMMAND_LINE_OPTIONS, cpp_handle_option): Lose -fsigned-char
530         and -funsigned-char.
531
532         * cpphash.h (struct spec_nodes): Kill n__STRICT_ANSI__.
533         * cpphash.c (_cpp_init_hashtable): Don't set it.
534         * cppmacro.c (builtin_macro) [BT_STDC]: Use the language setting
535         directly.  Clarify comment.
536
537 2002-05-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
538
539         * bb-reorder.c (make_reorder_chain_1): Use prev_bb/next_bb to get to
540         neighbouring basic blocks.  Use ENTRY_BLOCK_PTR->next_bb instead of
541         BASIC_BLOCK (0).  Use EXIT_BLOCK_PTR->prev_bb instead of
542         BASIC_BLOCK (n_basic_blocks - 1).
543         * cfganal.c (can_fallthru, flow_call_edges_add,
544         flow_preorder_transversal_compute): Too.
545         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
546         find_sub_basic_blocks): Too.
547         * cfgcleanup.c (try_simplify_condjump, try_optimize_cfg): Too.
548         * cfglayout.c (skip_insns_after_block, fixup_reorder_chain,
549         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge): Too.
550         * cfgrtl.c (tidy_fallthru_edges, verify_flow_info): Too.
551         * combine.c (this_basic_block): Type changed to basic_block.
552         (combine_instructions, set_nonzero_bits_and_sign_copies, try_combine,
553         nonzero_bits, num_sign_bit_copies, get_last_value_validate,
554         get_last_value, distribute_notes, distribute_links): Too.
555         * final.c (compute_alignments): Too.
556         * flow.c (regno_uninitialized, regno_clobbered_at_setjmp): Too.
557         * function.c (thread_prologue_and_epilogue_insns): Too.
558         * gcse.c (compute_code_hoist_vbeinout): Too.
559         * global.c (build_insn_chain): Too.
560         * ifcvt.c (find_if_block, find_cond_trap): Too.
561         * predict.c (last_basic_block_p, note_prediction_to_br_prob): Too.
562         * regmove.c (regmove_optimize): Too.
563         * resource.c (find_basic_block): Too.
564         * sched-ebb.c (schedule_ebbs): Too.
565         * ssa-dce.c (find_control_dependence, find_pdom): Too.
566
567 2002-05-21  Andreas Jaeger  <aj@suse.de>
568
569         * cppinit.c (sanity_checks): Avoid printf mismatch warnings.
570
571 2002-05-21  Richard Henderson  <rth@redhat.com>
572
573         * reg-stack.c (swap_rtx_condition, subst_stack_regs_pat): Use
574         unspec names, not numbers.
575
576 2002-05-21  Joseph S. Myers  <jsm28@cam.ac.uk>
577
578         * doc/sourcebuild.texi: Mention snapshot-README and
579         snapshot-index.html as needing updating for new front ends.
580
581 2002-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
582
583         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Avoid warnings when
584         disabling checking, and avoid multiple evaluation of RTX.
585
586 2002-05-21  Richard Earnshaw  <rearnsha@arm.com>
587
588         * bitmap.c (bitmap_find_bit): Return early if we have the correct
589         element cached.
590
591 Tue May 21 10:51:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
592
593         * profile.c (gen_edge_profiler):  Set alias set before the memory is
594         used.
595
596 2002-05-20  David S. Miller  <davem@redhat.com>
597
598         * cselib.c (max_value_regs): New.
599         (cselib_lookup, cselib_invalidate_regno): Initialize it when
600         adding new entries to the REG_VALUES table and we are dealing with
601         a hard register.
602         (clear_table): Initialize it.
603         (cselib_invalidate_regno): Use it to determine which hard
604         registers to scan when mode is not VOIDmode.
605
606 2002-05-20  Duraid Madina   <duraid@fl.net.au>
607
608         * tradcpp.c (fixup_newlines): Use old-style function header.
609
610 2002-05-20  Krister Walfridsson  <cato@df.lth.se>
611
612         * reload1.c (reload_cse_simplify): Fix typo in rtx code check.
613
614 2002-05-20  H.J. Lu  (hjl@gnu.org)
615
616         Base on suggestions from Zhang Fuxin <fxzhang@ict.ac.cn>:
617
618         * config/mips/mips.h (DFMODE_NAN): Defined.
619         (SFMODE_NAN): Likewise.
620
621 2002-05-20  Dale Johannesen  <dalej@apple.com>
622
623         * combine.c (cant_combine_insn_p):  Back out my
624         previous patch.
625
626 2002-05-20  Kazu Hirata  <kazu@cs.umass.edu>
627
628         * params.c: Fix formatting.
629         * params.h: Likewise.
630         * predict.c: Likewise.
631         * prefix.c: Likewise.
632         * print-rtl.c: Likewise.
633         * print-tree.c: Likewise.
634         * profile.c: Likewise.
635
636 2002-05-20  H.J. Lu  (hjl@gnu.org)
637
638         * gcc/config/mips/linux.h (SDB_DEBUGGING_INFO): Undefine.
639
640 2002-05-20  Nick Clifton  <nickc@cambridge.redhat.com>
641
642         * config/arm/arm-wince-pe.h (ASM_SPEC): Pass -mcpu and -march
643         switches straight on to the assembler, do not abbreviate them.
644         * config/arm/elf.h (ASM_SPEC): As above.
645         * config/arm/semi.h (ASM_SPEC): As above.
646         * config/arm/unknown-elf-oabi.h (ASM_SPEC): As above.
647         * config/arm/xscale-coff.h (SUBTARGET_ASM_SPEC): Pass
648         -mcpu=xscale on to the assembler by default.
649         * config/arm/xscale-elf.h (SUBTARGET_ASM_SPEC): As above.
650
651 2002-05-20  Richard Henderson  <rth@redhat.com>
652
653         * cse.c (canon_hash): Reorder do_not_record test.  Always
654         allow pic_offset_table_rtx.
655
656 2002-05-19  Toon Moene  <toon@moene.indiv.nluug.nl>
657
658         * optabs.c (expand_cmplxdiv_wide): Use complex_part_zero_p.
659         (expand_binop): Ditto (3 times).
660
661 2002-05-19  Mark Mitchell  <mitchell@doubledemon.codesourcery.com>
662
663         * Makefile.in (distclean): Remove QMTest stuff.
664         (QMTEST_PATH): New variable.
665         (QMTESTFLAGS): Likewise.
666         (QMTESTRUNFLAGS): Likewise.
667         (QMTEST): Likewise.
668         (QMTEST_GPP_TESTS): Likewise.
669         (QMTEST_DIR): Likewise.
670         (QMTEST_DIR/context): New target.
671         (qmtest-g++): Likeise.
672         (qmtest-gui): Likewise.
673         (QMTEST_DIR/gpp-expected.qmr): Likewise.
674
675 2002-05-19  Aldy Hernandez  <aldyh@redhat.com>
676
677         * config/rs6000/rs6000.h (FUNCTION_VALUE): Only return vectors in
678         an altivec register if TARGET_ALTIVEC.
679
680         * config/rs600/rs6000.c (rs6000_emit_move): Change VECTOR_MODE_P
681         to ALTIVEC_VECTOR_MODE.
682         (rs6000_va_arg): Only vectors of type AltiVec are 16 byte aligned.
683         (rs6000_va_arg): Vectors may go in registers if they are not
684         altivec vectors.
685
686 2002-05-19  Kazu Hirata  <kazu@cs.umass.edu>
687
688         * protoize.c: Fix formatting.
689
690 2002-05-19  Richard Henderson  <rth@redhat.com>
691
692         * gensupport.c (init_include_reader): Merge into ...
693         (process_include): ... here.  Simplify composite path creation.
694         Plug memory leaks.  Fix file/line number tracking.  Do not
695         process_define_cond_exec.  Return void.
696         (process_rtx): Don't check process_include return value.
697
698 2002-05-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
699
700         * basic_block.h (struct basic_block_def): Added prev_bb and next_bb
701         fields.
702         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
703         traversing basic block chain.
704         (create_basic_block_structure, create_basic_block): Declaration changed.
705         (link_block, unlink_block): Declare.
706         * cfg.c (entry_exit_blocks): Initialize new fields.
707         (link_block, unlink_block): New.
708         (expunge_block_nocompact): Unlink basic block.
709         (dump_flow_info): Print prev_bb/next_bb fields.
710         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Modified.
711         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Modified.
712         * cfglayout.c (fixup_reorder_chain, cfg_layout_duplicate_bb): Modified.
713         * cfgrtl.c (create_basic_block_structure, create_basic_block,
714         split_block, force_nonfallthru_and_redirect, split_edge): Modified.
715         (verify_flow_info): Check that list agrees with numbering.
716
717 2002-05-19  Neil Booth  <neil@daikokuya.demon.co.uk>
718
719         * c-common.c (preprocessing_asm): New macro.
720         * c-lex.h (builtin_define, builtin_assert): Use pfile.
721 doc:
722         * tm.texi: Update.
723 config/alpha:
724         * alpha.h (CPLUSPLUS_CPP_SPEC): Remove.
725         (CPP_SPEC): Simplify.
726         (TARGET_CPU_CPP_BUILTINS): Update.
727         * freebsd.h (TARGET_OS_CPP_BUILTINS): New.
728         (CPP_SPEC): Simplify.
729         * linux.h (CPLUSPLUS_CPP_SPEC): Remove.
730         (TARGET_OS_CPP_BUILTINS): Update.
731         * osf.h (CPP_XFLOAT_SPEC): Kill.
732         (TARGET_OS_CPP_BUILTINS): Update.
733         (CPP_SUBTARGET_SPEC, SUBTARGET_EXTRA_SPECS): Simplify.
734         * osf5.h (CPP_XFLOAT_SPEC): Kill.
735         * vms.h (CPP_SUBTARGET_SPEC): Kill.
736         (TARGET_OS_CPP_BUILTINS): Update.
737
738 2002-05-19  Richard Henderson  <rth@redhat.com>
739
740         * varasm.c (default_binds_local_p): Fix typo.
741
742 2002-05-19  Marek Michalkiewicz  <marekm@amelek.gda.pl>
743
744         * config/avr/avr.c (machine_dependent_reorg): Sign extend the
745         CONST_INT operand to the correct mode after adding 1 to it.
746
747 2002-05-19  Mark Mitchell  <mark@codesourcery.com>
748
749         * config.gcc (powerpc-wrs-windiss*): New target.
750
751 2002-05-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
752
753         * config/rs6000/rs6000.md (ashrdi3_no_power): New.
754         (ashrdi3): Use it.
755
756 2002-05-18  Mark Mitchell  <mark@codesourcery.com>
757
758         * configure.in (AC_CHECK_FUNCS): Add checks for scandir and
759         alphasort.
760         * config.in: Regenerated.
761         * configure: Regenerated.
762
763 2002-05-19  Richard Henderson  <rth@redhat.com>
764
765         * target-def.h (TARGET_BINDS_LOCAL_P): New.
766         * target.h (struct gcc_target): Move boolean fields to the end.
767         Add binds_local_p.
768         * varasm.c (default_binds_local_p): New.
769         * output.h: Declare it.
770
771         * config/alpha/alpha.c (alpha_encode_section_info): Use the new hook.
772         * config/cris/cris.c (cris_encode_section_info): Likewise.
773         * config/i386/i386.c (i386_encode_section_info): Likewise.
774         * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
775         * config/sh/sh.c (sh_encode_section_info): Likewise.
776
777         * doc/tm.texi (TARGET_IN_SMALL_DATA_P): New.
778         (TARGET_BINDS_LOCAL_P): New.
779
780 2002-05-19  Richard Henderson  <rth@redhat.com>
781
782         * system.h (BLOCK_PROFILER, BLOCK_PROFILER_CODE,
783         FUNCTION_BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT,
784         MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Poison.
785
786         * toplev.c (display_help): Kill -a -ax help.
787
788         * config/1750a/1750a.h, config/alpha/alpha.h,
789         config/clipper/clipper.h, config/dsp16xx/dsp16xx.h,
790         config/h8300/h8300.h, config/i960/i960.h, config/m68k/tower-as.h,
791         config/m88k/m88k.h, config/vax/vax.h, config/we32k/we32k.h:
792         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Kill.
793
794         * libgcc2.c [L_bb] (BLOCK_PROFILER_CODE): Kill.
795         * config/m68k/sun3.h (BLOCK_PROFILER_CODE): Kill.
796
797         * config/i386/i386-protos.h (ix86_output_block_profiler): Kill.
798         (ix86_output_function_block_profiler): Kill.
799         * config/m68hc11/m68hc11.c (m68hc11_block_profiler): Kill.
800         (m68hc11_function_block_profiler): Kill.
801         * config/m68hc11/m68hc11-protos.h: Update.
802         * config/m88k/m88k.c (output_block_profiler): Kill.
803         (output_function_block_profiler): Kill.
804         * config/m88k/m88k-protos.h: Update.
805
806 2002-05-19  Richard Henderson  <rth@redhat.com>
807
808         * system.h (STRIP_NAME_ENCODING): Poison it.
809         * output.h (STRIP_NAME_ENCODING): Remove.
810         (default_strip_name_encoding): Declare.
811         * target-def.h (TARGET_STRIP_NAME_ENCODING): New.
812         * target.h (strip_name_encoding): New.
813         * varasm.c (default_strip_name_encoding): New.
814
815         * dwarf2asm.c, varasm.c, config/darwin.c, config/darwin.h,
816         config/alpha/alpha.c, config/arm/pe.c, config/avr/avr.c,
817         config/cris/cris.c, config/i386/cygwin.h, config/i386/interix.c,
818         config/i386/winnt.c, config/m32r/m32r.h, config/mcore/mcore-elf.h,
819         config/mcore/mcore-pe.h, config/mcore/mcore.c, config/mcore/mcore.h,
820         config/mips/mips.c, config/mn10200/mn10200.h, config/mn10300/mn10300.h,
821         config/pa/pa.c, config/pa/pa.h, config/pa/som.h,
822         config/rs6000/rs6000.c, config/rs6000/sysv4.h, config/rs6000/xcoff.h,
823         config/v850/v850.h: Use the hook, not the macro.
824
825         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
826         config/alpha/alpha.c, config/alpha/alpha.h, config/h8300/h8300.c,
827         config/h8300/h8300.h, config/i386/cygwin.h, config/i386/i386-interix.h,
828         config/i386/i386-protos.h, config/i386/win32.h, config/i386/winnt.c,
829         config/ia64/ia64.c, config/ia64/ia64.h, config/m32r/m32r.c,
830         config/m32r/m32r.h, config/mcore/mcore.c, config/mcore/mcore.h,
831         config/pa/pa.c, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
832         config/rs6000/xcoff.h, config/sh/sh.c, config/sh/sh.h,
833         config/v850/v850.c, config/v850/v850.h:
834         Move STRIP_NAME_ENCODING to out-of-line function and add
835         TARGET_STRIP_NAME_ENCODING.
836
837         * config/arm/arm.c, config/arm/arm.h, config/mmix/mmix-protos.h,
838         config/mmix/mmix.c, config/mmix/mmix.h: Replace STRIP_NAME_ENCODING
839         with TARGET_STRIP_NAME_ENCODING referencing existing function;
840         make function static.
841
842         * xcoffout.c: Include target.h
843         * Makefile.in (xcoffout.o): Update.
844
845         * config/avr/avr.c (avr_encode_section_info): Correct prototype.
846         * config/avr/avr.h (STRIP_NAME_ENCODING): Remove.
847         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Mark
848         reloc argument unused.
849         * config/sh/sh.c (TARGET_ENCODE_SECTION_INFO): New.
850
851         * doc/tm.texi (TARGET_STRIP_NAME_ENCODING): Update from previous
852         STRIP_NAME_ENCODING docs.
853
854 2002-05-19  Andreas Jaeger  <aj@suse.de>
855
856         * gengenrtl.c: Add prototype for excluded_rtx.
857
858         * real.h: Add prototype for exact_real_truncate.
859
860 2002-05-18  Richard Henderson  <rth@redhat.com>
861
862         * system.h (ENCODE_SECTION_INFO): Poison it.
863         * target-def.h (TARGET_ENCODE_SECTION_INFO): New.
864         * target.h (encode_section_info): New.
865         * varasm.c (make_decl_rtl, output_constant_def): Use it.
866         * hooks.c (hook_tree_int_void): New.
867         * hooks.h: Declare it.
868
869         * config/darwin.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
870         config/alpha/alpha.h, config/arm/pe.h, config/avr/avr-protos.h,
871         config/avr/avr.c, config/avr/avr.h, config/c4x/c4x-protos.h,
872         config/c4x/c4x.c, config/c4x/c4x.h, config/cris/cris-protos.h,
873         config/cris/cris.c, config/cris/cris.h, config/i386/cygwin.h,
874         config/i386/win32.h, config/ia64/ia64-protos.h, config/ia64/ia64.c,
875         config/ia64/ia64.h, config/m32r/m32r-protos.h, config/m32r/m32r.c,
876         config/m32r/m32r.h, config/m68hc11/m68hc11-protos.h,
877         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
878         config/mcore/mcore-protos.h, config/mcore/mcore.c,
879         config/mcore/mcore.h, config/mmix/mmix-protos.h, config/mmix/mmix.c,
880         config/mmix/mmix.h, config/rs6000/rs6000-protos.h,
881         config/rs6000/sysv4.h, config/stormy16/stormy16-protos.h,
882         config/stormy16/stormy16.c, config/stormy16/stormy16.h:
883         Replace ENCODE_SECTION_INFO with TARGET_ENCODE_SECTION_INFO
884         referencing existing function.  Make function static.
885
886         * config/a29k/a29k.c, config/a29k/a29k.h, config/arc/arc.c,
887         config/arc/arc.h, config/arm/arm.c, config/arm/arm.h,
888         config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
889         config/i370/i370.h, config/i386/i386-interix.h, config/i386/i386.c,
890         config/i386/i386.h, config/i386/interix.c, config/m88k/m88k.c,
891         config/m88k/m88k.h, config/mips/mips.c, config/mips/mips.h,
892         config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa.c,
893         config/pa/pa.h, config/romp/romp.c, config/romp/romp.h,
894         config/rs6000/linux64.h, config/rs6000/xcoff.h, config/s390/s390.c,
895         config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
896         config/sparc/sparc.c, config/sparc/sparc.h, config/v850/v850.c,
897         config/v850/v850.h, config/vax/vax.c, config/vax/vms.h,
898         config/xtensa/xtensa.c, config/xtensa/xtensa.h:
899         Move ENCODE_SECTION_INFO to out-of-line function and add
900         TARGET_ENCODE_SECTION_INFO.
901
902         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use hook, not macro.
903         (ASM_DECLARE_OBJECT_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
904
905         * config/arm/pe.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Rename
906         from SUBTARGET_*
907         (switch_to_section): Replace in_rdata case with in_readonly_data.
908
909         * config/h8300/h8300.c (h8300_encode_label): Make static.
910         * config/h8300/h8300-protos.h: Update.
911
912         * config/rs6000/rs6000.c (rs6000_elf_encode_section_info): Rename
913         from rs6000_encode_section_info; make static.
914         (rs6000_xcoff_encode_section_info): New.
915
916         * config/v850/v850.c (v850_encode_data_area): Make static.
917         * config/v850/v850-protos.h: Update.
918
919         * config/vax/vax.c: Include flags.h.
920         (vms_select_section): Fix typo.
921
922         * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update from previous
923         ENCODE_SECTION_INFO docs.
924
925 2002-05-18  Richard Henderson  <rth@redhat.com>
926
927         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Rename from
928         REGISTER_TARGET_PRAGMAS.
929         * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Redefine.
930
931         * config.gcc: Do not use rs6000-c.c on powerpc-darwin.
932
933 2002-05-18  Richard Henderson  <rth@redhat.com>
934
935         * system.h (SELECT_RTX_SECTION): Poison.
936         * target-def.h (TARGET_ASM_SELECT_RTX_SECTION): New.
937         * target.h (select_rtx_section): New.
938         * varasm.c (output_constant_pool): Use it.
939         (default_select_rtx_section, default_elf_select_rtx_section): New.
940         * output.h: Declare them.
941
942         * config/darwin.h (SELECT_RTX_SECTION): Move ...
943         * config/darwin.c (machopic_select_rtx_section): ... here.
944         * config/darwin-protos.h: Update.
945
946         * config/nextstep.h (SELECT_RTX_SECTION): Move ...
947         * config/nextstep.c (machopic_select_rtx_section): ... here.
948         (nextstep_select_section): Rename variable to avoid macro clash.
949         * config/nextstep-protos.h: Update.
950
951         * config/elfos.h, config/svr3.h, config/arm/aof.h, config/c4x/c4x.h,
952         config/i386/dgux.h, config/i386/osfrose.h, config/i386/sco5.h,
953         config/i386/svr3gas.h, config/i860/paragon.h, config/ia64/aix.h,
954         config/m32r/m32r.h, config/m68k/dpx2.h, config/m68k/lynx.h,
955         config/m68k/m68k.h, config/m68k/tower-as.h, config/m88k/dgux.h,
956         config/mcore/mcore-pe.h, config/mips/mips.h, config/mmix/mmix.h,
957         config/pa/pa-linux.h, config/pa/pa.h, config/romp/romp.h,
958         config/rs6000/lynx.h, config/rs6000/sysv4.h, config/s390/linux.h,
959         config/sparc/sysv4.h, config/xtensa/elf.h, config/xtensa/linux.h
960         (SELECT_RTX_SECTION): Remove.
961
962         * config/darwin.h, config/elfos.h, config/nextstep.h,
963         config/ia64/aix.h, config/ia64/sysv4.h, config/alpha/alpha.c,
964         config/mips/mips.c, config/romp/romp.c, config/rs6000/sysv4.h,
965         config/rs6000/xcoff.h, config/s390/s390.c, config/sparc/aout.h,
966         config/sparc/lynx.h, config/xtensa/xtensa.c
967         (TARGET_ASM_SELECT_RTX_SECTION): New.
968
969         * config/alpha/elf.h (SELECT_RTX_SECTION): Move ...
970         * config/alpha/alpha.c (alpha_elf_select_rtx_section): ... here.
971         * config/ia64/sysv4.h (SELECT_RTX_SECTION): Move ...
972         * config/ia64/ia64.c (ia64_select_rtx_section): ... here.
973         (ia64_aix_select_rtx_section): New.
974         * config/mips/iris6.h (READONLY_DATA_SECTION_ASM_OP): Undef before
975         redefining.
976         * config/mips/mips.c (mips_select_rtx_section): Make static.
977         Support ELF SHF_MERGE features.
978         * config/mips/mips-protos.h: Update.
979         * config/rs6000/xcoff.h (SELECT_RTX_SECTION): Move ...
980         * config/rs6000/rs6000.c (rs6000_xcoff_select_rtx_section): ... here.
981         (rs6000_elf_select_rtx_section): Rename from rs6000_select_rtx_section;
982         make static, fall back to default_elf_select_rtx_section.
983         * config/rs6000/rs6000-protos.h: Update.
984         * config/sparc/sparc.h (SELECT_RTX_SECTION): Move ...
985         * config/sparc/sparc.c (sparc_aout_select_rtx_section): ... here.
986         * config/sparc/sunos4.h (on_exit): Declare only if IN_LIBGCC2.
987         * config/romp/romp.c (romp_select_rtx_section): New.
988         * config/s390/s390.c (s390_select_rtx_section): New.
989         * config/xtensa/xtensa.c: Include output.h.  Shuffle local function
990         declarations before target macro definition.
991         (xtensa_emit_call): Use static buffer.
992         (xtensa_select_rtx_section): New.
993         * config/xtensa/xtensa.h (MAX_INT_TYPE_SIZE): Remove.
994         (IMPLICIT_FIX_EXPR, EASY_DIV_EXPR): Remove.
995         (ASM_OUTPUT_POOL_PROLOGUE): Update call to resolve_unique_section.
996
997         * doc/tm.texi (TARGET_ASM_SELECT_RTX_SECTION): Update from
998         SELECT_RTX_SECTION docs.
999
1000 Sun May 19 00:24:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
1001
1002         * i386.md (movsi/movdi): Fix template.
1003         (sse2 patterns): Set attributes consistently.
1004
1005         * i386.md (pushqi2, ashrqi_*): Fix constraint.
1006
1007 2002-05-18  Toon Moene  <toon@moene.indiv.nluug.nl>
1008
1009         * optabs.c (complex_part_zero_p): New.
1010         * (expand_cmplxdiv_straight): Use it.
1011         * (expand_cmplxdiv_wide): Ditto.
1012         * (expand_binop): Ditto.
1013
1014 2002-05-18  Richard Henderson  <rth@redhat.com>
1015
1016         * final.c (HAVE_READONLY_DATA_SECTION): New.
1017         (shorten_branches): Use it instead of ifdefs.
1018         * varasm.c (enum in_section): Add in_readonly_data.
1019         (text_section, data_section): Tidy.
1020         (readonly_data_section): Use READONLY_DATA_SECTION_ASM_OP if present.
1021
1022         * config/darwin.h, config/nextstep.h, config/h8300/elf.h,
1023         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h
1024         (READONLY_DATA_SECTION): Don't undef.
1025
1026         * config/alpha/unicosmk.h, config/h8300/elf.h, config/i386/aix386ng.h,
1027         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h,
1028         config/rs6000/lynx.h (READONLY_DATA_SECTION_ASM_OP): Undef.
1029
1030         * config/elfos.h, config/svr3.h, config/alpha/alpha-interix.h,
1031         config/alpha/elf.h, config/c4x/c4x.h, config/i386/i386-interix.h,
1032         config/i386/sco5.h, config/i386/svr3gas.h, config/i860/sysv3.h,
1033         config/m88k/m88k.h, config/pa/pa64-hpux.h (USE_CONST_SECTION): Remove.
1034
1035         * config/elfos.h, config/netware.h, config/alpha/alpha-interix.h,
1036         config/alpha/elf.h, config/alpha/vms.h, config/arc/arc.h,
1037         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
1038         config/i386/dgux.h, config/i386/i386-interix.h, config/i386/sco5.h,
1039         config/ia64/hpux.h, config/m32r/m32r.h, config/m68k/tower-as.h,
1040         config/m88k/m88k.h, config/mcore/mcore-pe.h, config/mips/iris6.h,
1041         config/mips/mips.h, config/mmix/mmix.h, config/pa/pa64-hpux.h,
1042         config/sparc/sysv4.h (READONLY_DATA_SECTION_ASM_OP): Rename from
1043         CONST_SECTION_ASM_OP/READONLY_SECTION_ASM_OP/RDATA_SECTION_ASM_OP.
1044
1045         * config/elfos.h, config/netware.h, config/1750a/1750a.h,
1046         config/a29k/a29k.h, config/alpha/alpha-interix.h, config/alpha/alpha.h,
1047         config/arm/coff.h, config/h8300/h8300.h, config/i386/aix386ng.h,
1048         config/i386/i386-interix.h, config/i386/osfrose.h, config/mmix/mmix.h,
1049         config/pa/pa64-hpux.h, config/sparc/litecoff.h
1050         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.
1051
1052         * config/elfos.h, config/netware.h, config/svr3.h,
1053         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
1054         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
1055         config/h8300/h8300.h, config/i386/i386-interix.h,
1056         config/i386/osfrose.h, config/i386/svr3gas.h, config/mmix/mmix.h,
1057         config/pa/pa64-hpux.h (READONLY_DATA_SECTION): Remove.
1058
1059         * config/elfos.h, config/netware.h, config/svr3.h,
1060         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
1061         config/c4x/c4x.h, config/i386/aix386ng.h, config/i386/i386-interix.h,
1062         config/i386/sco5.h, config/i386/svr3gas.h, config/mmix/mmix.h,
1063         config/pa/pa64-hpux.h (CONST_SECTION_FUNCTION): Remove.
1064
1065         * config/lynx.h, config/svr3.h, config/alpha/elf.h, config/alpha/vms.h,
1066         config/c4x/c4x.h, config/dsp16xx/dsp16xx.h, config/i386/sco5.h,
1067         config/i386/svr3gas.h, config/i860/sysv3.h, config/i860/sysv4.h,
1068         config/ia64/sysv4.h, config/m32r/m32r.h, config/m88k/m88k.h,
1069         config/mcore/mcore-elf.h, config/mcore/mcore-pe.h, config/mips/elf.h,
1070         config/mips/elf64.h, config/mips/iris6.h, config/mips/linux.h,
1071         config/mips/mips.h, config/mips/rtems64.h, config/mips/vxworks.h,
1072         config/rs6000/sysv4.h, config/v850/v850.h
1073         (EXTRA_SECTIONS): Remove in_const/in_rdata.
1074         (EXTRA_SECTION_FUNCTIONS): Remove accompanying function.
1075
1076         * config/svr3.h, config/c4x/c4x.h, config/i386/dgux.h,
1077         config/i386/sco5.h, config/i386/svr3gas.h, config/ia64/aix.h,
1078         config/m88k/dgux.h, config/mcore/mcore-pe.h, config/mmix/mmix.h,
1079         config/sparc/sysv4.h (SELECT_RTX_SECTION): Use readonly_data_section.
1080         * config/alpha/alpha.c (alpha_start_function): Likewise.
1081         (alpha_write_linkage): Likewise.
1082         * config/m32r/m32r.c (m32r_select_section): Likewise.
1083         * config/m88k/m88k.c (m88k_select_section): Likewise.
1084         * config/mips/mips.c (mips_select_rtx_section): Likewise.
1085         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Likewise.
1086         (rs6000_elf_select_section): Likewise.
1087         * config/v850/v850.c (v850_select_section): Likewise.
1088
1089         * config/1750a/1750a.h, config/i860/sysv3.h
1090         (READONLY_DATA_SECTION_ASM_OP): New.
1091         READONLY_DATA_SECTION_ASM_OP.
1092         * config/i386/interix.c, config/i386/winnt.c
1093         (i386_pe_unique_section): Always use .rdata prefix.
1094         * config/pa/som.h (readonly_data): Always switch to read-only section.
1095         (READONLY_DATA_SECTION): Predicate on flag_pic.
1096         * config/we32k/we32k.h (READONLY_DATA_SECTION): Remove parenthesis.
1097         * doc/tm.texi (READONLY_DATA_SECTION_ASM_OP): New.
1098         (READONLY_DATA_SECTION): Update.
1099
1100 2002-05-18  Jason Thorpe  <thorpej@wasabisystems.com>
1101
1102         * c-common.c (c_common_post_options): Warn if -Wformat-zero-length
1103         is used without -Wformat.
1104         * c-common.h (warn_format_zero_length): Declare extern.
1105         * c-decl.c (warn_options): Add "format-zero-length".
1106         * c-format.c (warn_format_zero_length): Declare.
1107         (set_Wformat): Set warn_format_zero_length for -Wformat.
1108         (check_format_info): Only warn about zero-length formats if
1109         warn_format_zero_length is true.  Include the format type
1110         name in the warning message.
1111         * doc/invoke.texi: Document -Wformat-zero-length.
1112         * testsuite/gcc.dg/format/zero-length-1.c: New test.
1113
1114 2002-05-18  Kazu Hirata  <kazu@cs.umass.edu>
1115
1116         * timevar.c: Fix formatting.
1117         * tlink.c: Likewise.
1118         * toplev.c: Likewise.
1119         * tree-dump.c: Likewise.
1120         * tree-inline.c: Likewise.
1121
1122 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
1123
1124         * cppinit.c (cpp_post_options): If preprocessed, turn off
1125         traditional.  If traditional, turn off column numbers.
1126         * cpplib.c (cpp_push_buffer): Lex from stage 3 if traditional.
1127         * cpptrad.c (handle_newline): Update line_base.
1128         (skip_comment): Handle -Wcomment.
1129
1130 2002-05-17  Zack Weinberg  <zack@codesourcery.com>
1131
1132         * cppinit.c (struct builtin): Remove unused fields.
1133         (CPLUS, BUILTIN, OPERATOR, O, builtin_array_end): Kill.
1134         (operator_array): New - was second half of builtin_array.
1135         (init_builtins): Simplify loop over builtin_array/operator_array.
1136
1137 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
1138
1139         * defaults.h (UNIQUE_SECTION): Remove.
1140         * system.h (UNIQUE_SECTION, SELECT_SECTION): Poison.
1141
1142 2002-05-17  Richard Henderson  <rth@redhat.com>
1143
1144         * expr.c (init_expr_once): Don't use start/end_sequence.
1145         Use rtx_alloc instead of emit_insn.
1146         * toplev.c (lang_dependent_init): Run init_expr_once here ...
1147         (lang_independent_init): ... not here.
1148
1149 2002-05-17  Jason Thorpe  <thorpej@wasabisystems.com>
1150
1151         * config/sh/lib1funcs.asm (GLOBAL): Use __USER_LABEL_PREFIX__.
1152
1153 2002-05-17  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1154
1155         * config/avr/avr.c (avr_regs_to_save): New function.  Also check
1156         for fixed registers, possibly used for global register variables.
1157         (initial_elimination_offset, avr_output_function_prologue,
1158         avr_output_function_epilogue):  Move common code to avr_regs_to_save.
1159
1160 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
1161
1162         * Makefile.in: Update for cpptrad.c.
1163         * cpphash.h (struct cpp_buffer): New members for buffer
1164         overlays.
1165         (struct cpp_reader): New members for traditional output.
1166         (_cpp_read_logical_line, _cpp_overlay_buffer): New.
1167         * cppinit.c (cpp_create_reader): Set trad_line.
1168         (cpp_destroy): Free trad_out_base if used.
1169         (cpp_read_main_file): Overlay an empty buffer if traditional.
1170         (cpp_finish_options): Don't do builtins.
1171         (COMMAND_LINE_OPTIONS): Add -traditional-cpp.
1172         (cpp_handle_option): Handle it.
1173         * cpplex.c (continue_after_nul): New.
1174         (_cpp_lex_direct): Use handle_nul.
1175         * cpplib.h (struct cpp_options): New traditional option.
1176         * cpptrad.c: New file.
1177
1178 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
1179
1180         * c-common.c (c_common_init_options): Use C89 for Objective-C,
1181         and set the options flag.
1182         * cppinit.c (lang_flags): Remove objc.
1183         (lang_defaults): Remove OBJC and OBJCXX.
1184         (set_lang): Update.
1185         (COMMAND_LINE_OPTIONS): Remove -+ and -lang-objc++.
1186         (cpp_handle_option): Remove -+ and -lang-objc++.
1187         For ObjC, just set a flag.
1188         (print_help): Update.
1189         * cpplib.h (enum c_lang): Remove CLK_OBJC and CLK_OBJCXX.
1190
1191 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1192
1193         * doc/install.texi (Specific, mips-sgi-irix6): Document need to
1194         bootstrap with -mips3.
1195
1196 2002-05-17  Kazu Hirata  <kazu@cs.umass.edu>
1197
1198         * final.c: Fix formatting.
1199         * fix-header.c: Likewise.
1200         * flow.c: Likewise.
1201         * fold-const.c: Likewise.
1202         * function.c: Likewise.
1203
1204 2002-05-17  David S. Miller  <davem@redhat.com>
1205
1206         PR c/6689, PR optimization/6615
1207         * local-alloc.c (struct equivalence): Rename 'src' to 'src_p'
1208         and make it a pointer to rtx.  Update comments.
1209         (update_equiv_regs): When scanning for equivalences, record
1210         address of SET_SRC (set) in reg_equiv[].src_p.  Dereference
1211         it while making the equiv replacements.
1212
1213 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1214
1215         * config/sparc/sparc.c (sparc_aout_select_section): Fixed typo.
1216
1217 2002-05-17  kaz Kojima  <kkojima@rr.iij4u.or.jp>
1218
1219         * config/sh/sh.h (ENCODE_SECTION_INFO): Consider MODULE_LOCAL_P
1220         when encoding visibility into SYMBOL_REF_FLAG.
1221
1222 2002-05-17  Richard Sandiford  <rsandifo@redhat.com>
1223
1224         * expr.c (force_operand): Fix reversed move.
1225
1226 2002-05-17  Kurt Wall <kwall@kurtwerks.com>
1227
1228         * doc/install.texi (Testing): Mention two common DejaGnu warnings
1229         that can be ignored.
1230
1231 2002-05-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1232
1233         * doc/install.texi (Final install): Recommend to install into a
1234         "clean" target directory.
1235
1236 2002-05-17  Richard Henderson  <rth@redhat.com>
1237
1238         * config/ia64/ia64.md: Use braced strings instead of quoted strings
1239         for code blocks.  Tidy whitespace.
1240
1241 2002-05-17  Richard Henderson  <rth@redhat.com>
1242
1243         * hooks.c (hook_tree_bool_false): New.
1244         * hooks.h: Declare it.
1245         * target-def.h (TARGET_ASM_SELECT_SECTION): New.
1246         (TARGET_ASM_UNIQUE_SECTION, TARGET_IN_SMALL_DATA_P): New.
1247         * target.h (select_section, unique_section): New.
1248         (in_small_data_p): New.
1249         * varasm.c (resolve_unique_section): Use hooks instead of macros.
1250         (variable_section, output_constant_def_contents): Likewise.
1251         (default_select_section, default_unique_section): New.
1252         (categorize_decl_for_section, default_elf_select_section): New.
1253         * output.h: Declare them.
1254
1255         * config/darwin.h (ALIAS_SECTION, try_section_alias): Remove.
1256         (TARGET_ASM_SELECT_SECTION): New.
1257         (SELECT_SECTION): Move ...
1258         * config/darwin.c (machopic_select_section): ... here.
1259         * config/darwin-protos.h: Update.
1260
1261         * config/nextstep.h (TARGET_ASM_SELECT_SECTION): New.
1262         (SELECT_SECTION): Move ...
1263         * config/nextstep.c (nextstep_select_section): ... here.
1264         * config/nextstep-protos.h: Update.
1265
1266         * config/elfos.h (UNIQUE_SECTION, SELECT_SECTION): Remove.
1267         (TARGET_ASM_SELECT_SECTION): New.
1268         * config/svr3.h (SELECT_SECTION): Remove.
1269
1270         * config/alpha/alpha.c (unicosmk_unique_section): Make static.
1271         (TARGET_ASM_UNIQUE_SECTION) [UNICOS]: New.
1272         (TARGET_IN_SMALL_DATA_P, alpha_in_small_data_p): New.
1273         (alpha_encode_section_info): Use it.
1274         * config/alpha/alpha-protos.h: Update.
1275         * config/alpha/elf.h (DO_SELECT_SECTION): Remove.
1276         (SELECT_SECTION, UNIQUE_SECTION): Remove.
1277         (TARGET_ASM_SELECT_SECTION): New.
1278         * config/alpha/unicosmk.h (UNIQUE_SECTION): Remove.
1279
1280         * config/arm/pe.h (UNIQUE_SECTION): Remove.
1281         (TARGET_ASM_UNIQUE_SECTION): New.
1282
1283         * config/avr/avr.c (TARGET_ASM_UNIQUE_SECTION): New.
1284         (avr_unique_section): Rename from unique_section; make static.
1285         * config/avr/avr-protos.h: Update.
1286         * config/avr/avr.h (UNIQUE_SECTION): Remove.
1287
1288         * config/c4x/c4x.h (SELECT_SECTION): Remove.
1289
1290         * config/i386/cygwin.h (UNIQUE_SECTION): Remove.
1291         (TARGET_ASM_UNIQUE_SECTION): New.
1292         * config/i386/i386-interix.h: Likewise.
1293         * config/i386/win32.h: Likewise.
1294         * config/i386/djgpp.h (UNIQUE_SECTION): Remove.
1295         * config/i386/i386.c (ix86_asm_file_end): Use target hook not macro.
1296         * config/i386/sco5.h (SELECT_SECTION): Remove.
1297         (TARGET_ASM_SELECT_SECTION): New.
1298         * config/i386/svr3gas.h (SELECT_SECTION): Remove.
1299
1300         * config/i860/paragon.h: Undef TARGET_ASM_SELECT_SECTION
1301         instead of SELECT_SECTION.
1302         * config/m68k/dpx2.h: Likewise.
1303         * config/rs6000/lynx.h: Likewise.
1304
1305         * config/ia64/aix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
1306         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
1307         * config/ia64/ia64.c (TARGET_IN_SMALL_DATA_P): New.
1308         (ia64_in_small_data_p): New.
1309         (ia64_encode_section_info): Use it.  Reorganize overlarge conditional.
1310         (ia64_aix_select_section, ia64_aix_unique_section): New.
1311         * config/ia64/sysv4.h (DO_SELECT_SECTION): Remove.
1312         (SELECT_SECTION, UNIQUE_SECTION): Remove.
1313
1314         * config/m32r/m32r.h (SELECT_SECTION): Remove.
1315         (TARGET_ASM_SELECT_SECTION): New.
1316         * config/m32r/m32r.c (m32r_select_section): Take align argument.
1317         * config/m32r/m32r-protos.h: Update.
1318
1319         * config/m88k/m88k.h (TARGET_ASM_SELECT_SECTION): New.
1320         (SELECT_SECTION): Move ...
1321         * config/m88k/m88k.c (m88k_select_section): ... here.
1322
1323         * config/mcore/mcore-pe.h (SELECT_SECTION): Remove.
1324         * config/mcore/mcore.h (UNIQUE_SECTION): Remove.
1325         * config/mcore/mcore.c (TARGET_ASM_UNIQUE_SECTION): New.
1326         (mcore_unique_section): Make static.
1327         * config/mcore/mcore-protos.h: Update.
1328
1329         * config/mips/elf.h (UNIQUE_SECTION): Remove.
1330         (TARGET_ASM_UNIQUE_SECTION): New.
1331         * config/mips/elf64.h: Likewise.
1332         * config/mips/iris6gld.h: Likewise.
1333         * config/mips/linux.h: Likewise.
1334         * config/mips/mips-protos.h: Update.
1335         * config/mips/mips.c (mips_select_section): Add align argument.
1336         * config/mips/mips.h (SELECT_SECTION): Remove.
1337         (TARGET_ASM_SELECT_SECTION): New.
1338
1339         * config/mmix/mmix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
1340         * config/mmix/mmix.c (mmix_select_section): Remove.
1341         (mmix_unique_section): Remove.
1342         * config/mmix/mmix-protos.h: Update.
1343
1344         * config/pa/pa.h (TARGET_ASM_SELECT_SECTION): New.
1345         (SELECT_SECTION): Move ...
1346         * config/pa/pa.c (pa_select_section): ... here.
1347         * config/pa/pa64-hpux.h (UNIQUE_SECTION): Remove.
1348
1349         * config/rs6000/rs6000.c (rs6000_elf_select_section): Rename
1350         from rs6000_select_section and make static.
1351         (rs6000_elf_unique_section): Similarly.
1352         (rs6000_xcoff_select_section): From xcoff.h.
1353         (rs6000_xcoff_unique_section): Likewise.
1354         * config/rs6000/rs6000-protos.h: Update.
1355         * config/rs6000/sysv4.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
1356         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
1357         * config/rs6000/xcoff.h: Likewise.
1358
1359         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): New.
1360         (SELECT_SECTION): Move ...
1361         * config/sparc/sparc.c (sparc_aout_select_section): ... here.
1362
1363         * config/v850/v850.h (SELECT_SECTION): Move ...
1364         * config/v850/v850.c (v850_select_section): ... here.
1365         (TARGET_ASM_SELECT_SECTION): New.
1366
1367         * config/vax/vms.h (SELECT_SECTION): Move ...
1368         * config/vax/vax.c (vms_select_section): ... here.
1369         (TARGET_ASM_SELECT_SECTION): New.
1370
1371         * doc/tm.texi: Update SELECT_SECTION and UNIQUE_SECTION docs
1372         for the target hooks.
1373
1374 2002-05-17  Nick Clifton  <nickc@cambridge.redhat.com>
1375
1376         * config/arm/arm.c (emit_multi_reg_push): Do not set
1377         RTX_FRAME_RELATED_P on the SEQUENCE.
1378
1379 2002-05-16  Richard Henderson  <rth@redhat.com>
1380
1381         * config/ia64/ia64.c (ia64_reorg): Rebuild bb_for_insn before
1382         splitting.  Use split_all_insns; update_life_info_in_dirty_blocks.
1383
1384 2002-05-16  Richard Henderson  <rth@redhat.com>
1385
1386         * config/alpha/unicosmk.h (TARGET_OS_CPP_BUILTINS): Fix typo.
1387
1388         * config/ia64/ia64.c (saveable_obstack): Do not declare.
1389
1390 2002-05-16  Richard Henderson  <rth@redhat.com>
1391
1392         * basic-block.h, bb-reorder.c, cfg.c, cfganal.c, cfgbuild.c,
1393         cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c, combine.c,
1394         conflict.c, df.c, df.h, dominance.c, final.c, flow.c, function.c,
1395         gcse.c, global.c, graph.c, haifa-sched.c, ifcvt.c, lcm.c,
1396         local-alloc.c, loop.c, predict.c, print-rtl.c, profile.c,
1397         recog.c, reg-stack.c, regclass.c, regmove.c, regrename.c,
1398         reload1.c, reorg.c, resource.c, sbitmap.c, sched-deps.c,
1399         sched-ebb.c, sched-rgn.c, sibcall.c, ssa-ccp.c, ssa-dce.c, ssa.c:
1400         Revert "Basic block renumbering removal", and two followup patches.
1401
1402 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
1403
1404         * lcm.c (optimize_mode_switching): Revert previous change.
1405
1406 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1407
1408         * sched-rgn.c (schedule_insns): Initialize large_region_blocks
1409         with only extant block numbers.
1410
1411 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
1412
1413         * lcm.c (optimize_mode_switching): Fix typo.
1414
1415 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1416
1417         * flow.c (calculate_global_regs_live): Queue blocks in program order.
1418
1419 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1420
1421         * doc/install.texi (Configuration): Document PWDCMD.
1422
1423 2002-05-16  Dale Johannesen  <dalej@apple.com>
1424
1425         * combine.c (cant_combine_insn_p):  Reenable combinations
1426         involving hard regs unless CLASS_LIKELY_SPILLED_P.
1427
1428 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
1429
1430         * c-common.c (cb_register_builtins): Handle more built-ins
1431         here rather than in gcc.c specs.
1432         * gcc.c (cpp_unique_options): Move many built-ins to c-common.c.
1433         (cpp_options): Pass -O flags even when only preprocessing.
1434         * toplev.c (set_fast_math_flags): New prototype.
1435         (fast_math_flags_set_p): New.
1436         (set_no_fast_math_flags): Remove.
1437         (decode_f_option): Update.
1438         * toplev.h (set_fast_math_flags): Update.
1439         (fast_math_flags_set_p): New.
1440         (set_no_fast_math_flags): Remove.
1441 config:
1442         * c4x/c4x.c (c4x_override_options): Update.
1443
1444 2002-05-16  Zack Weinberg  <zack@codesourcery.com>
1445
1446         * c-common.c (STDC_0_IN_SYSTEM_HEADERS, REGISTER_PREFIX):
1447         Default-define here.
1448         (builtin_define_with_value): Can now wrap the expansion in
1449         quotation marks if such is wanted.
1450         (cb_register_builtins): Update calls to builtin_define_with_value.
1451         Define __REGISTER_PREFIX__, __USER_LABEL_PREFIX__, and __VERSION__
1452         here.
1453         (c_common_init): Set options->stdc_0_in_system_headers.
1454         * c-lex.h: Update prototype of builtin_define_with_value.
1455         * cppdefault.h: Remove default definitions of USER_LABEL_PREFIX
1456         and REGISTER_PREFIX.
1457
1458         * cppinit.c (VERS, ULP, C, X): Kill.
1459         (builtin_array): Remove entries for __VERSION__,
1460         __USER_LABEL_PREFIX__, __REGISTER_PREFIX__, and
1461         __HAVE_BUILTIN_SETJMP__.  Make __STDC__ always a builtin, not
1462         a constant.
1463         (init_builtins): Kill off a bunch of now-dead code.
1464         (COMMAND_LINE_OPTIONS): Remove -fleading-underscore and
1465         -fno-leading-underscore.
1466         (cpp_handle_option): Remove code to set user_label_prefix.
1467         (cpp_post_options): Likewise.
1468
1469         * cpplib.h (struct cpp_options): Remove user_label_prefix.
1470         (stdc_0_in_system_headers): New.
1471         * cppmacro.c (builtin_macro): Check CPP_OPTION (pfile,
1472         stdc_0_in_system_headers) too to decide the value of __STDC__.
1473
1474         * tradcpp.c (user_label_prefix): Kill.
1475         (main): Remove code handling -f(no-)leading-underscore.
1476         (initialize_builtins): Don't define __REGISTER_PREFIX__
1477         or __USER_LABEL_PREFIX__.
1478         (install_value): Wrap compound statement in dummy loop so the
1479         macro works properly in an if statement.
1480
1481
1482 2002-05-16  Janis Johnson  <janis187@us.ibm.com>
1483
1484         * loop.h (struct loop_info): Add member has_prefetch.
1485         * loop.c (PREFETCH_CONDITIONAL): Change default to 1.
1486         (prescan_loop): Initialize has_prefetch.
1487         (struct prefetch_info): Change prefetch_in_loop and
1488         prefetch_before_loop from bit fields to ints.
1489         (emit_prefetch_instructions): Several small fixes.
1490         (check_dbra_loop): Don't reverse loop that uses prefetch.
1491
1492 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1493
1494         * Makefile.in: Allow for PWDCMD to override hardcoded pwd.
1495         * configure.in: Likewise.
1496         * fixinc/check.tpl: Likewise.
1497         * fixinc/fixinc.dgux: Likewise.
1498         * fixinc/fixinc.svr4: Likewise.
1499         * fixinc/fixinc.winnt: Likewise.
1500         * fixinc/fixincl.sh: Likewise.
1501         * fixproto: Likewise.
1502         * configure: Regenerate.
1503
1504 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1505
1506         Basic block renumbering removal:
1507         * basic_block.h (struct basic_block_def): Renamed index to sindex,
1508         added prev_bb and next_bb fields.
1509         (n_basic_blocks): Renamed to num_basic_blocks.
1510         (last_basic_block): New, index of last basic block.
1511         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
1512         traversing basic block chain.
1513         (BLOCK_NUM): index -> sindex.
1514         (create_basic_block_structure, create_basic_block): Declaration changed.
1515         (debug_num2bb): Declare.
1516         (expunge_block_nocompact): Declaration removed.
1517         (link_block, unlink_block, compact_blocks): Declare.
1518         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1): Modified.
1519         * cfg.c (entry_exit_blocks): Initialize new fields.
1520         (clear_edges, alloc_block, expunge_block, cached_make_edge,
1521         redirect_edge_pred, dump_flow_info, dump_edge_info,
1522         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges,
1523         free_aux_for_edges): Modified.
1524         (link_block, unlink_block, compact_blocks, debug_num2bb): New.
1525         (expunge_block_nocompact): Removed.
1526         * cfganal.c (can_fallthru, mark_dfs_back_edges, flow_call_edges_add,
1527         find_unreachable_blocks, create_edge_list, print_edge_list,
1528         verify_edge_list, flow_edge_list_print, remove_fake_successors,
1529         remove_fake_edges, flow_reverse_top_sort_order_compute,
1530         flow_depth_first_order_compute, flow_preorder_transversal_compute,
1531         flow_dfs_compute_reverse_init, flow_dfs_compute_reverse_add_bb,
1532         flow_dfs_compute_reverse_execute): Modified.
1533         * cfgbuild.c (make_edges, make_eh_edge, find_basic_blocks_1,
1534         find_basic_blocks, find_many_sub_basic_blocks, find_sub_basic_blocks):
1535         Modified.
1536         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
1537         merge_blocks_move_predecessor_nojumps,
1538         merge_blocks_move_successor_nojumps, merge_blocks,
1539         outgoing_edges_match, try_crossjump_to_edge, try_crossjump_bb,
1540         try_optimize_cfg, delete_unreachable_blocks, cleanup_cfg): Modified.
1541         * cfglayout.c (skip_insns_after_block, label_for_bb,
1542         record_effective_endpoints, scope_to_insns_finalize,
1543         fixup_reorder_chain, verify_insn_chain, cleanup_unconditional_jumps,
1544         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge,
1545         cfg_layout_duplicate_bb): Modified.
1546         * cfgloop.c (flow_loops_cfg_dump, flow_loop_dump, flow_loops_dump,
1547         flow_loop_entry_edges_find, flow_loop_exit_edges_find,
1548         flow_loop_nodes_find, flow_loop_pre_header_find, flow_loop_scan,
1549         flow_loops_find, flow_loop_outside_edge_p): Modified.
1550         * cfgrtl.c (create_basic_block_structure, create_basic_block,
1551         flow_delete_block, compute_bb_for_insn, split_block,
1552         try_redirect_by_replacing_jump, redirect_edge_and_branch,
1553         force_nonfallthru_and_redirect, tidy_fallthru_edge,
1554         back_edge_of_syntactic_loop_p, split_edge, commit_one_edge_insertion,
1555         commit_edge_insertions, commit_edge_insertions_watch_calls,
1556         dump_bb, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
1557         purge_all_dead_edges): Modified.
1558         * combine.c (combine_instructions, set_nonzero_bits_and_sign_copies,
1559         try_combine, nonzero_bits, num_sign_bit_copies, get_last_value_validate,
1560         get_last_value, reg_dead_at_p, distribute_notes, distribute_links):
1561         Modified.
1562         * conflict.c (conflict_graph_compute): Modified.
1563         * df.c (FOR_ALL_BBS): Removed.
1564         (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
1565         df_modified_p, df_analyse, df_refs_unlink, df_insn_modify,
1566         df_dump, hybrid_search_bitmap, iterative_dataflow_sbitmap): Modified.
1567         * df.h (DF_BB_INFO, DF_REF_BBNO): Modified.
1568         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
1569         calc_idoms, idoms_to_doms, calculate_dominance_info): Modified.
1570         * final.c (compute_alignments, final_scan_insn): Modified.
1571         * flow.c (verify_local_live_at_start, update_life_info,
1572         update_life_info_in_dirty_blocks, free_basic_block_vars,
1573         delete_noop_moves, calculate_global_regs_live,
1574         initialize_uninitialized_subregs, allocate_bb_life_data,
1575         regno_uninitialized, regno_clobbered_at_setjmp, mark_set_1,
1576         mark_used_reg, count_or_remove_death_notes): Modified.
1577         * function.c (thread_prologue_and_epilogue_insns): Modified.
1578         * gcse.c (struct null_pointer_info): Change typo of current_block
1579         to basic_block.
1580         (gcse_main, alloc_gcse_mem, compute_local_properties, compute_sets,
1581         oprs_unchanged_p, load_killed_in_block_p, record_last_reg_set_info,
1582         compute_hash_table, alloc_rd_mem, handle_rd_kill_set, compute_kill_rd,
1583         alloc_avail_expr_mem, expr_killed_p, compute_ae_kill,
1584         expr_reaches_here_p_work, expr_reaches_here_p, handle_avail_expr,
1585         classic_gcse, one_classic_gcse_pass, compute_transp, cprop,
1586         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p_work,
1587         pre_expr_reaches_here_p, insert_insn_end_bb, pre_edge_insert,
1588         pre_delete, one_pre_gcse_pass, compute_transpout,
1589         invalidate_nonnull_info, delete_null_pointer_checks_1,
1590         free_code_hoist_mem, compute_code_hoist_vbeinout,
1591         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
1592         compute_ld_motion_mems, store_ops_ok, find_moveable_store,
1593         compute_store_table, build_store_vectors, insert_insn_start_bb,
1594         insert_store, replace_store_insn, free_store_memory, store_motion):
1595         Modified.
1596         * global.c (global_alloc, global_conflicts, mark_elimination,
1597         build_insn_chain): Modified.
1598         * graph.c (print_rtl_graph_with_bb): Modified.
1599         * haifa-sched.c (sched_init): Modified.
1600         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
1601         (find_if_block, find_cond_trap, find_if_case_1, find_if_case_2,
1602         if_convert): Modified.
1603         * lcm.c (compute_antinout_edge, compute_earliest, compute_laterin,
1604         compute_insert_delete, pre_edge_lcm, compute_available,
1605         compute_farthest, compute_nearerout, compute_rev_insert_delete,
1606         pre_edge_rev_lcm, make_preds_opaque, optimize_mode_switching):
1607         Modified.
1608         * local-alloc.c (alloc_qty, local_alloc, update_equiv_regs): Modified.
1609         * loop.c (loop_dump_aux): Modified.
1610         * predict.c (combine_predictions_for_insn, estimate_probability,
1611         last_basic_block_p, process_note_prediction, process_note_predictions,
1612         note_prediction_to_br_prob, propagate_freq, counts_to_freqs,
1613         expensive_function_p, estimate_bb_frequencies,
1614         compute_function_frequency): Modified.
1615         * print-rtl.c (print_rtx): Modified.
1616         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX, instrument_edges,
1617         get_exec_counts, compute_branch_probabilities, compute_checksum,
1618         branch_prob, find_spanning_tree): Modified.
1619         * recog.c (split_all_insns, peephole2_optimize): Modified.
1620         * reg-stack.c (reg_to_stack, convert_regs_entry, compensate_edge,
1621         convert_regs_1, convert_regs_2, convert_regs): Modified.
1622         * regclass.c (scan_one_insn, regclass): Modified.
1623         * regmove.c (mark_flags_life_zones, regmove_optimize,
1624         combine_stack_adjustments): Modified.
1625         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Modified.
1626         * reload1.c (reload, reload_combine, copy_eh_notes): Modified.
1627         * reorg.c (dbr_schedule): Modified.
1628         * resource.c (find_basic_block, init_resource_info): Modified.
1629         * sbitmap.c (sbitmap_intersection_of_succs,
1630         sbitmap_intersection_of_preds, sbitmap_union_of_succs,
1631         sbitmap_union_of_preds): Modified.
1632         * sched-deps.c (init_dependency_caches): Modified.
1633         * sched-ebb.c (schedule_ebbs): Modified.
1634         * sched-rgn.c (is_cfg_nonregular, build_control_flow, debug_regions,
1635         find_rgns, compute_trg_info, init_regions, schedule_insns): Modified.
1636         * sibcall.c (optimize_sibling_and_tail_recursive_call): Modified.
1637         * ssa-ccp.c (examine_flow_edges, optimize_unexecutable_edges,
1638         ssa_ccp_substitute_constants, ssa_ccp_df_delete_unreachable_insns,
1639         ssa_const_prop): Modified.
1640         * ssa-dce.c (set_control_dependent_block_to_edge_map_,
1641         find_control_dependence, find_pdom, ssa_eliminate_dead_code): Modified.
1642         * ssa.c (remove_phi_alternative, find_evaluations,
1643         compute_dominance_frontiers_1, compute_iterated_dominance_frontiers,
1644         insert_phi_node, rename_block, convert_to_ssa, eliminate_phi,
1645         make_regs_equivalent_over_bad_edges,
1646         make_equivalent_phi_alternatives_equival,
1647         compute_conservative_reg_partition,
1648         coalesce_regs_in_successor_phi_nodes, compute_coalesced_reg_partition,
1649         rename_equivalent_regs, convert_from_ssa, for_each_successor_phi):
1650         Modified.
1651
1652 2002-05-16  Mark Mitchell  <mark@codesourcery.com>
1653
1654         * cfgrtl.c (purge_dead_edges): Correct handling of EDGE_EH.
1655
1656 2002-05-16  Nick Clifton  <nickc@cambridge.redhat.com>
1657
1658         * config/arm/arm.c (arm_rtx_costs): Check for RTX being a
1659         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
1660         (arm_adjust_cost): Check for RTX being a SYMBOL_REF before
1661         calling CONSTANT_POOL_ADDRESS_P.
1662         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in code
1663         to decide whether to define __arm__ or __thumb.
1664         (THUMB_GO_IF_LEGITIMATE_ADDRESS): Check for RTX being a
1665         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
1666
1667 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
1668
1669         * config/arc/arc.h (CPP_PREDEFINES): Remove.
1670         (CPP_SPEC): Update.
1671         (TARGET_CPU_CPP_BUILTINS): New.
1672
1673 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
1674
1675         * cpphash.h (cpp_macro): Move here, and make expansion a union.
1676         * cppmacro.c (cpp_macro): Remove.
1677         (enter_macro_context, replace_args, warn_of_redefinition,
1678         _cpp_create_definition, cpp_macro_definition): Update.
1679
1680 2002-05-16  Jason Merrill  <jason@redhat.com>
1681
1682         * config/mips/mips.c (mips_output_external): Don't do sdata
1683         optimization for a variable with DECL_COMDAT set.
1684
1685 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
1686
1687         * config/rs6000/altivec.h: Cleanups for tighter typechecking.
1688         Cleanups for accepting modifiers on pointers.
1689         Fix predicate typos.
1690         Allow long pointers as well as int pointers.
1691
1692 2002-05-15  Richard Henderson  <rth@redhat.com>
1693
1694         * varasm.c (merge_weak): Remove special case for extern and common.
1695
1696 2002-05-15  Matt Hiller  <hiller@redhat.com>
1697
1698         * testsuite/gcc.c-torture/compile/20000804-1.x: Don't return 1 if
1699         XFAILing.
1700         * testsuite/gcc.c-torture/compile/20001226-1.x: Ditto.
1701         * testsuite/gcc.c-torture/compile/920520-1.x: Ditto.
1702         * testsuite/gcc.c-torture/compile/mipscop-1.x: XFAIL for now.
1703         * testsuite/gcc.c-torture/compile/mipscop-2.x: Ditto.
1704         * testsuite/gcc.c-torture/compile/mipscop-3.x: Ditto.
1705         * testsuite/gcc.c-torture/compile/mipscop-4.x: Ditto.
1706
1707 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
1708
1709         * reload1.c (forget_old_reloads_1): Do not use subreg offset.
1710
1711 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
1712
1713         * config/rs6000/rs6000.md ("altivec_mtvscr"): Set VSCR register.
1714         ("altivec_mfvscr"): Read from VSCR.
1715
1716         Add vscr sets for the following insns: altivec_vctuxs,
1717         altivec_vaddubs, altivec_vaddsbs, altivec_vadduhs,
1718         altivec_vaddshs, altivec_vadduws, altivec_vaddsws, altivec_vctsxs,
1719         altivec_vmhaddshs, altivec_vmhraddshs, altivec_vmsumuhs,
1720         altivec_vmsumshs, altivec_vpkuhss, altivec_vpkshss,
1721         altivec_vpkuwss, altivec_vpkswss, altivec_vpkuhus,
1722         altivec_vpkshus, altivec_vpkuwus, altivec_vpkswus,
1723         altivec_vsububs, altivec_vsubsbs, altivec_vsubuhs,
1724         altivec_vsubshs, altivec_vsubuws, altivec_vsubsws,
1725         altivec_vsum4ubs, altivec_vsum4sbs, altivec_vsum4shs,
1726         altivec_vsum2sws, altivec_vsumsws.
1727
1728         * config/rs6000/rs6000.h: Add VSCR fixed register.
1729         (CALL_REALLY_USED_REGISTERS): Add vscr.
1730         (CALL_USED_REGISTERS): Same.
1731         (FIXED_REGISTERS): Same.
1732         (REG_ALLOC_ORDER): Same.
1733         (reg_class): Add VSCR_REGS.
1734         (REG_CLASS_NAMES): Same.
1735         (REG_CLASS_CONTENTS): Same.
1736         (VSCR_REGNO): New.
1737         (REGISTER_NAMES): Add vscr.
1738         (DEBUG_REGISTER_NAMES): Same.
1739         (ADDITIONAL_REGISTER_NAMES): Same.
1740         (FIRST_PSEUDO_REGISTER): Increment.
1741         (CONDITIONAL_REGISTER_USAGE): Set VSCR as a global register.
1742
1743 2002-05-15  Jakub Jelinek  <jakub@redhat.com>
1744
1745         * fold-const.c (fold): Fix a typo.
1746
1747 2002-05-15  Eric Botcazou  <ebotcazou@multimania.com>
1748
1749         * fold-const.c (fold) [LT_EXPR]: Move the transformation of a
1750         comparison against the highest or lowest integer value before
1751         the 'X >= CST to X > (CST - 1)' and 'X < CST to X <= (CST - 1)'
1752         transformation and that of an unsigned comparison against 0
1753         right after.
1754
1755 2002-05-15  Richard Henderson  <rth@redhat.com>
1756
1757         * varasm.c (merge_weak): Error for any weakening after definition.
1758         Adjust weakening after use warning to catch more cases.
1759         (assemble_alias): Set TREE_USED and TREE_ASM_WRITTEN consistently.
1760         * config/alpha/alpha.c (alpha_encode_section_info): Do not abort.
1761
1762 Wed May 15 10:38:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
1763
1764         * invoke.texi (-malign-double): Re-add lost warning.
1765
1766         * i386-protos.h (x86_output_mi_thunk): Declare.
1767         * unix.h (ASM_OUTPUT_MI_THUNK): Move offline to ...
1768         * i386.c (x86_output_mi_thunk): ... here; handle 64bits.
1769
1770         * dwarf2out.c (output_call_frame_info): Do not skip unwind info
1771         when flag_asynchronous_unwind_tables is set.
1772
1773         * flags.h (flag_reorder_functions): Declare.
1774         * function.c (prepare_function_start): Initialize frequnecy.
1775         * params.def (HOT_BB_COUNT_FRACTION, HOT_BB_FREQUENCY_FRACTION): New.
1776         * Makefile.in (predict.o): Add dependency on target.h and params.h
1777         * defaults.h (HOT_TEXT_SECTION_NAME,
1778         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): New macros.
1779         * predict.c (choose_function_section): New function.
1780         (estimate_bb_frequencies): Use it.
1781         * toplev.c (flag_reorder_functions): New global variable.
1782         (lang_independent_options): New.
1783         (parse_options_and_default_flags): Set.
1784         * varasm.c (assemble_start_function): Bypass functdion alignment
1785         for never executed functions.
1786         * invoke.texi (-freorder-blocks, -freorder-functions): Document.
1787         (param hot-bb-count-fraction, hot-bb-frequency-fraction): New.
1788         * tm.texi (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
1789         Document.
1790
1791         Thu Jan  3 21:52:09 CET 2002  Jan Hubicka  <jh@suse.cz>
1792
1793         * predict.c: Inlude profile.h
1794         (MIN_COUNT): Rename to MIN_COUNT_FRACTION
1795         (maybe_hot_bb_p, probably_cold_bb_p, probably_never_executed_bb_p):
1796         Use the information about maximal counter in the program.
1797
1798         Thu Dec 20 22:14:00 CET 2001  Jan Hubicka  <jh@suse.cz>
1799
1800         * basic-block.h (maybe_hot_bb_p, probably_cold_bb_p,
1801         probably_never_executed_bb_p): New functions.
1802         * cfgcleanup.c (outgoing_edges_match): Use them.
1803         * predict.c (MIN_COUNT, MIN_FREQUENCY): New macros.
1804         (maybe_hot_bb_p, probably_cold_bb_p,
1805         probably_never_executed_bb_p): New functions.
1806
1807         * function.h (function): Add new field function_frequency.
1808         * predict.c (compute_function_frequency): New function.
1809         (estimate_probability): Call it.
1810
1811 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
1812
1813         PR optimization/5172, optimization/5200
1814         * gcse.c (gcse_main): Disable store_motion.
1815
1816 2002-05-14  Zack Weinberg  <zack@codesourcery.com>
1817
1818         * c-parse.in (MODIFIED_WCHAR_TYPE): New macro.
1819         (c_common_nodes_and_builtins): Use it.
1820         (builtin_define_with_value): New function.
1821         (cb_register_builtins): Define __SIZE_TYPE__,
1822         __PTRDIFF_TYPE__, __WCHAR_TYPE__, and __WINT_TYPE__ here,
1823         using builtin_define_with_value.  Use consistent notation when
1824         defining __GXX_WEAK__.
1825         (WCHAR_TYPE_SIZE): Don't redefine.
1826         (combine_strings): Don't use WCHAR_TYPE_SIZE.
1827
1828         * cppdefault.h: Don't provide defaults for SIZE_TYPE,
1829         PTRDIFF_TYPE, WCHAR_TYPE, or WINT_TYPE.
1830         * cppinit.c (builtin_array): Remove entries for __SIZE_TYPE__ etc.
1831         * tradcpp.c (initialize_builtins): Likewise.
1832         * gcc.c (cpp_unique_options): Don't muck with __WCHAR_TYPE__.
1833
1834         * c-lex.h (builtin_define_with_value): Prototype.
1835         * system.h: Poison NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_WCHAR_TYPE,
1836         NO_BUILTIN_PTRDIFF_TYPE, and NO_BUILTIN_WINT_TYPE.
1837         * doc/tm.texi: Remove mention of NO_BUILTIN_SIZE_TYPE etc.
1838
1839         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
1840         config/ia64/ia64.h, config/mips/dec-osf1.h, config/mips/iris6.h,
1841         config/mips/linux.h, config/mips/mips.h, config/mips/netbsd.h,
1842         config/mips/osfrose.h, config/mips/sni-svr4.h, config/rs6000/aix51.h,
1843         config/s390/linux.h, config/sh/sh.h, config/sh/sh64.h,
1844         config/sparc/linux64.h, config/sparc/netbsd-elf.h,
1845         config/sparc/sol2-bi.h, config/sparc/sparc.h:
1846         Do not define NO_BUILTIN_SIZE_TYPE etc.  Remove all references
1847         to __SIZE_TYPE__ etc from all spec strings. When this makes
1848         extra specs empty, delete them.
1849
1850 2002-05-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1851
1852         * pa.c (override_options): Override TARGET_JUMP_IN_DELAY when scheduling
1853         for PA8000 or generating dwarf2 call frame information.
1854         (output_call): Remove DO_FRAME_NOTES check from return pointer
1855         optimization.
1856         (following_call): Return 0 when scheduling for PA8000 or generating
1857         dwarf2 call frame information.  Revise comment.
1858
1859 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
1860
1861 config/alpha:
1862         * alpha.h (TARGET_CPU_CPP_BUILTINS): Define __IEEE_FP
1863         and __IEEE_FP_INEXACT as appropriate.
1864         (CPLUSPLUS_CPP_SPEC): Don't define __cplusplus.
1865         (CPP_SPEC): Remove ieee defines.
1866         * freebsd.h, netbsd.h: Remove ieee defines and cpp_cpu.
1867
1868 2002-05-14  Richard Henderson  <rth@redhat.com>
1869
1870         * config/i386/i386.c (ix86_save_reg): Make regno unsigned.
1871         (ix86_safe_length, ix86_safe_length_prefix, ix86_safe_memory): Kill.
1872
1873 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
1874
1875         * arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define.
1876         (CPP_SPEC): Update.
1877         (CPP_APCS_PC_SPEC, CPP_APCS_PC_DEFAULT_SPEC,
1878         CPP_FLOAT_SPEC, CPP_FLOAT_DEFAULT_SPEC, CPP_ENDIAN_SPEC,
1879         CPP_ENDIAN_DEFAULT_SPEC, CPP_INTERWORK_DEFAULT_SPEC,
1880         CPP_INTERWORK_SPEC, CPP_PREDEFINES): Remove.
1881         (EXTRA_SPECS): Update.
1882         * arm/conix-elf.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
1883         arm/riscix1-1.h, arm/rtems-elf.h, arm/semiaof.h, arm/unknown-elf.h,
1884         arm/unknown-elf-oabi.h, arm/vxarm.h: Remove CPP_PREDEFINES and
1885         define TARGET_OS_CPP_BUILTINS if necessary.
1886
1887 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
1888
1889         * gcc.c (cpp_options): Must pass -m* and -f* options
1890         to the front end even when only preprocessing.
1891         (cc1_options): Remove redundant -lang-c.
1892         * tradcpp.c (main): Ignore -m options.
1893 objc:
1894         * lang-specs.h: Similarly.
1895
1896 2002-05-14  Vladimir Makarov  <vmakarov@redhat.com>
1897
1898         * genautomata.c (transform_3): Add code for transformation
1899         `(A,B,...)+C -> A+C,B,...'.
1900
1901 Tue May 14 12:48:22 CEST 2002  Jan Hubicka  <jh@suse.cz>
1902
1903         * final.c (end_final): Do not output profile_arcs constructor, when
1904         no functions are instrumented.
1905
1906 Tue May 14 12:38:30 CEST 2002  Jan Hubicka  <jh@suse.cz>
1907
1908         * i386.md (testsi to testqi_zext_1 splitter): Fix typo.
1909
1910 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1911
1912         * doc/install.texi: Remove special markup originally required for
1913         HTML generation with texi2html.
1914
1915 2002-05-14  Andreas Schwab  <schwab@suse.de>
1916
1917         * config/ia64/sysv4.h (DO_SELECT_SECTION): Factored out of
1918         SELECT_SECTION.
1919         (UNIQUE_SECTION): Define to get small data correctly.
1920
1921         * varasm.c (resolve_unique_section): Add third parameter
1922         flag_function_or_data_sections and use it instead of
1923         flag_function_sections.
1924         (assemble_start_function): Pass flag_function_sections.
1925         (asm_emit_uninitialised): Pass flag_data_sections.
1926         (assemble_variable): Likewise.
1927
1928 2002-05-14  Richard Henderson  <rth@redhat.com>
1929
1930         * config/i386/i386.md: Use define_constants for unspec numbers.
1931         * config/i386/i386.c: Likewise.
1932
1933 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
1934
1935         * doc/contrib.texi: Update my entry.
1936
1937 2002-05-13  Mark Mitchell  <mark@codesourcery.com>
1938
1939         * fixinc/inclhack.def (winidss_valist): Limit applicability.
1940         * fixinc/fixincl.x: Regenerated.
1941         * fixinc/tests/base/math.h: Update.
1942         * fixinc/tests/base/testing.h: Likewise.
1943
1944 2002-05-13  Zack Weinberg  <zack@codesourcery.com>
1945
1946         * genattr.c (gen_attr): Don't emit a comma after the last
1947         enumerator.
1948
1949 2002-05-13  Richard Henderson  <rth@redhat.com>
1950
1951         * cfgrtl.c (purge_dead_edges): Handle abnormal call edges created
1952         by non-local gotos.
1953         * recog.c (peephole2_optimize): Likewise.
1954
1955 2002-05-13  Andris Pavenis  <pavenis@lanet.lv>
1956
1957         * cppfiles.c (open_file): Change mode (DJGPP only) of redirected
1958         input to O_BINARY.
1959
1960 2002-05-13  Jeffrey A Law  (law@redhat.com)
1961
1962         * flow.c (invalidate_mems_from_autoinc): Rewrite to use for_each_rtx.
1963         Update prototype and callers.
1964         (propagate_one_insn): Stack pointer adjustments kill MEMs on
1965         the mem_set_list which reference the stack pointer, as do
1966         calls to constant functions as they may clobber outgoing
1967         argument space.
1968
1969         * i386.c (ia32_multipass_dfa_lookahead): Prototype.
1970
1971         * i386.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
1972         (ia32_multipass_dfa_lookahead): New function.
1973
1974 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
1975
1976         * gcc.c (SWITCH_TAKES_ARG): Remove 'V'.
1977         (translate_options): Remove 'V'.
1978         (process_command): Similarly.
1979 doc:
1980         * invoke.texi: Remove documentation of 'V'.
1981
1982 2002-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
1983
1984         * config/s390/linux.h: Revert 2002-04-22 changes.
1985
1986 2002-05-13  Scott Marks <SMarks@mobile-mind.com>
1987
1988         * config/fr30/fr30.md: Only allow splits of immediate loads
1989         if the destination is a register.
1990
1991 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
1992
1993         * Makefile.in (c-common.o, cppinit.o): Update.
1994         * c-common.c: Include except.h.
1995         (cb_register_builtins): Handle __USING_SJLJ_EXCEPTIONS__.
1996         Call TARGET_CPU_CPP_BUILTINS and TARGET_OS_CPP_BUILTINS.
1997         * cppinit.c (__USING_SJLJ_EXCEPTIONS): Not here.
1998         * defaults.h (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS,
1999         CPP_PREDEFINES): Handle here.
2000 config:
2001         * alpha/alpha-interix.h, alpha/gnu.h, alpha/linux.h,
2002         alpha/netbsd.h, alpha/openbsd.h, alpha/osf.h, alpha/unicosmk.h,
2003         alpha/vms.h, alpha/vxworks.h: Remove CPP_PREDEFINES, define
2004         TARGET_OS_CPP_BUILTINS.
2005         * alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Define.
2006         (CPP_SPEC, EXTRA_SPECS): Update.
2007         (CPP_AM_BWX_SPEC, CPP_AM_MAX_SPEC, CPP_AM_FIX_SPEC,
2008         CPP_AM_CIX_SPEC, CPP_IM_EV4_SPEC, CPP_IM_EV5_SPEC,
2009         CPP_IM_EV6_SPEC, CPP_CPU_EV4_SPEC, CPP_CPU_EV5_SPEC,
2010         CPP_CPU_EV56_SPEC, CPP_CPU_PCA56_SPEC, CPP_CPU_EV6_SPEC,
2011         CPP_CPU_EV67_SPEC, CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Remove.
2012 doc:
2013         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Remove.
2014         (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS): Define.
2015
2016 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
2017
2018         * emit-rtl.c (global_rtl): Update comment.
2019         (const_double_htab, const_double_htab_hash,
2020         const_double_htab_hash, lookup_const_double): New.
2021         (const_int_htab_hash, const_int_htab_eq): Remove const
2022         qualifiers, which cause tons of warnings with RTL checking on.
2023         (gen_rtx_CONST_DOUBLE): Deleted.
2024         (const_double_from_real_value): New function - bears some
2025         resemblance to the former immed_real_const_1.
2026         (immed_double_const): Moved here from varasm.c and
2027         simplified.
2028         (gen_rtx_REG): Make REGNO unsigned to squelch warnings.
2029         (gen_rtx_SUBREG): Use gen_rtx_raw_SUBREG.
2030         (gen_rtx): Use immed_double_const.
2031         (init_emit_once): Initialize the const_double_htab.  Use
2032         REAL_VALUE_FROM_INT where possible.  Can now use
2033         CONST_DOUBLE_FROM_REAL_VALUE when setting up const_tiny_rtx.
2034         * varasm.c (struct varasm_status): Remove x_const_double_chain.
2035         (const_double_chain, immed_real_const, clear_const_double_mem): Delete.
2036         (immed_double_const, immed_real_const_1): Moved to emit-rtl.c.
2037         (init_varasm_status, mark_varasm_status): Don't touch
2038         x_const_double_chain.
2039
2040         * output.h: Delete prototype for clear_const_double_mem.
2041         * real.h: Make REAL_VALUE_TYPE a macro again.  Remove leading
2042         '0' slot from all CONST_DOUBLE_FORMAT definitions.  Prototype
2043         const_double_from_real_value, not immed_real_const_1, and use
2044         it to define CONST_DOUBLE_FROM_REAL_VALUE.  Define new macro
2045         CONST_DOUBLE_ATOF.
2046         * rtl.h (CONST_DOUBLE_CHAIN): Kill.
2047         (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Adjust.
2048         (gen_rtx_CONST_DOUBLE, immed_real_const): Delete prototypes.
2049         (gen_rtx_REG): Second arg is unsigned.
2050
2051         * gengenrtl.c (special_rtx): Take out CONST_DOUBLE.
2052         (excluded_rtx): New, return true for CONST_DOUBLE.
2053         (genmacro): Write nothing for excluded codes.
2054         * combine.c (combine_simplify_rtx): Use CONST_DOUBLE_FROM_REAL_VALUE.
2055         * expr.c (expand_expr): Likewise.
2056         * ggc-common.c (ggc_mark_rtx_children_1): Don't mark the
2057         CONST_DOUBLE_CHAIN.
2058         * toplev.c (rest_of_compilation): Don't call
2059         clear_const_double_mem.
2060
2061         * config/rs6000/rs6000.c (rs6000_float_const): Delete.
2062         (rs6000_hash_constant): Remove CONST_DOUBLE special case.
2063         (toc_hash_eq): Remove CONST_DOUBLE and LABEL_REF special cases.
2064         * config/rs6000/rs6000-protos.h: Don't prototype rs6000_float_const.
2065         * config/c4x/c4x.md, config/rs6000/rs6000.md: Use CONST_DOUBLE_ATOF.
2066         * config/dsp16xx/dsp16xx.md, config/mips/mips.md,
2067         config/pa/pa.md: Use CONST_DOUBLE_FROM_REAL_VALUE.
2068         * config/sparc/sparc.md, config/sparc/sparc.c: Use immed_double_const.
2069
2070 2002-05-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2071
2072         * mips/iris6.h (CPLUSPLUS_CPP_SPEC): Define.
2073
2074 2002-05-12  Tom Tromey  <tromey@redhat.com>
2075
2076         * tree.h (copy_node): Don't mention TREE_PERMANENT.
2077
2078 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
2079
2080         * gensupport.c (n_comma_elts): Moved here from genattrtab.c.
2081         (scan_comma_elt): New function.  Accepts whitespace in comma lists.
2082         * gensupport.h: Prototype new routines.
2083         * genattr.c (gen_attr): Use scan_comma_elt.  Avoid unnecessary
2084         use of printf.
2085         * genattrtab.c (n_comma_elts): Moved to gensupport.c.
2086         (next_comma_elt): Use scan_comma_elt.
2087
2088         * config/i386/i386.md: Use new attribute notation to break up
2089         long lines in define_attr forms.
2090
2091 2002-05-12  Richard Henderson  <rth@redhat.com>
2092
2093         * expr.c (compress_float_constant): New.
2094         (emit_move_insn): Use it.
2095         (float_extend_from_mem): New.
2096         (init_expr_once): Initialize it.
2097         * real.c (exact_real_truncate): New.
2098
2099         * config/i386/i386.h (CONST_COSTS): Assume CONST_DOUBLE gets
2100         dropped into memory; penalize for size.
2101         (RTX_COSTS): FLOAT_EXTEND is free.
2102         * config/i386/i386.md (extendsfdf2, extendsfxf2, extendsftf2,
2103         extenddfxf2, extenddftf2): Accept constants and drop them to memory.
2104
2105 2002-05-12  Richard Henderson  <rth@redhat.com>
2106
2107         * profile.h (profile_info): Add missing extern to declaration.
2108         * profile.c (profile_info): Define it.
2109
2110 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2111
2112         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Revise sets of general registers
2113         used for DImode and TImode.
2114
2115 2002-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>
2116
2117         * cpplex.c (_cpp_lex_direct): When in a directive at EOF
2118         fake a newline.
2119
2120 2002-05-11  Zack Weinberg  <zack@codesourcery.com>
2121
2122         * config/rs6000/rs6000.c (rs6000_default_long_calls,
2123         rs6000_longcall_switch, rs6000_set_default_type_attributes): New.
2124         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Set it.
2125         (rs6000_override_options): Handle -m(no-)longcall.
2126         (init_cumulative_args, output_mi_thunk): Check for both
2127         longcall and shortcall attributes on the function.
2128         (rs6000_attribute_table): Add "shortcall".
2129         (rs6000_handle_longcall_attribute): Update comment.
2130         (altivec_expand_unop_builtin, altivec_expand_binop_builtin,
2131         altivec_expand_ternop_builtin): Add default clauses to switches
2132         to silence warnings.
2133
2134         * config/rs6000/rs6000.h: Declare rs6000_longcall_switch and
2135         rs6000_default_long_calls.  Define REGISTER_TARGET_PRAGMAS.
2136         (TARGET_OPTIONS): Add longcall and no-longcall.
2137
2138         * config/rs6000/rs6000.md (call_nonlocal_sysv,
2139         call_value_nonlocal_sysv): Split by alternatives.  One pair
2140         accepts only SYMBOL_REFs and rejects if CALL_LONG is set in
2141         the call cookie.  The other pair accepts only LR/CTR and has
2142         no restriction.
2143
2144         * config.gcc (rs6000-*-* | powerpc*-*-* trailer stanza):
2145         Set c_target_objs, cxx_target_objs; add t-rs6000-c-rule to
2146         tmake_file.
2147         * config/rs6000/rs6000-c.c: New file.
2148         * config/rs6000/t-rs6000-c-rule: New file.
2149         * config/rs6000/rs6000-protos.c: Add multiple-include guard.
2150         Prototype rs6000_pragma_longcall.
2151
2152         * doc/extend.texi: Document shortcall attribute.
2153         * doc/invoke.texi: Document -mlongcall, -mno-longcall.
2154
2155 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2156
2157         * reorg.c (dbr_schedule): Remove unnecessary test.
2158
2159 Sat May 11 14:34:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
2160
2161         * i386.md (testsi to testqi spliters): New.
2162
2163         2002-01-14  Josef Zlomek  <zlomek@matfyz.cz>
2164
2165         cfg.c (dump_edge_info): added dumping of EDGE_CAN_FALLTHRU.
2166
2167         Wed Jan  9 2002  Josef Zlomek  <zlomj9am@artax.karlin.mff.cuni.cz>
2168
2169         * basic-block.h: New flag EDGE_CAN_FALLTHRU
2170         * cfganal.c (set_edge_can_fallthru_flag): New function; marks the edges
2171         that can be made fallthru.
2172
2173         Mon Nov 12 16:25:53 CET 2001  Jan Hubicka  <jh@suse.cz>
2174
2175         * cfglayout.c (cleanup_unconditional_jumps): New static function.
2176         (cfg_layout_initialize): Use it.
2177
2178 2002-05-11  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2179
2180         * config/avr/avr.c (avr_mcu_types): Update supported devices.
2181         * config/avr/avr.h (CPP_SPEC, LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
2182         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2183
2184 2002-05-11  Kazu Hirata  <kazu@cs.umass.edu>
2185
2186         * dbxout.c: Fix formatting.
2187         * dependence.c: Likewise.
2188         * df.c: Likewise.
2189         * diagnostic.c: Likewise.
2190         * doloop.c: Likewise.
2191         * dominance.c: Likewise.
2192         * doschk.c: Likewise.
2193         * dwarf2asm.c: Likewise.
2194         * dwarf2out.c: Likewise.
2195         * dwarfout.c: Likewise.
2196
2197 2002-05-10  Richard Henderson  <rth@redhat.com>
2198
2199         * final.c (end_final): Tidy whitespace.  Don't honor flag_pack_struct.
2200         Convert integers constants as needed.  Replace "nwords" field with
2201         "sizeof_bb".
2202         (final): Save profile data if cfun->arc_profile, not profile_arc_flag.
2203         * function.h: Fix typo in comment.
2204         * libgcc2.c (struct bb): Replace "nwords" with "sizeof_bb".
2205
2206 2002-05-10  Roger Sayle  <roger@eyesopen.com>
2207
2208         * fold-const.c (build_range_check): Optimize (c>=1) && (c<=127)
2209         into the equivalent (signed char)c > 0.
2210
2211 2002-05-10  Janis Johnson  <janis187@us.ibm.com>
2212
2213         * loop.c: (PREFETCH_EXTREME_DIFFERENCE, PREFETCH_BEFORE_LOOP): New.
2214         (PREFETCH_CONDITIONAL): Renamed from PREFETCH_NOT_ALWAYS.
2215         (struct prefetch_info): Fix spelling of member bytes_accessed.
2216         (emit_prefetch_instructions): Make dump messages more regular;
2217         restructure code to add more dump messages; use new macros for
2218         heuristics. (There are no code generation changes in any of this).
2219
2220 2002-05-10  David S. Miller  <davem@redhat.com>
2221
2222         * rtl.h (INSN_ANNULLED_BRANCH_P): Accept INSN too, update comment.
2223         (struct rtx_def): Update unchanging flag comment.
2224         * doc/rtl.texi (INSN_ANNULLED_BRANCH_P): Update description.
2225         * reorg.c (delete_from_delay_list): INSN_ANNULLED_BRANCH_P needs
2226         to be handled to INSN too.
2227         (dbr_schedule): Likewise.
2228         * resource.c (next_insn_no_annul): Likewise.
2229
2230         * cse.c (rtx_cost): Remove multiplication by power of 2 special
2231         casing.
2232
2233 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2234
2235         * doc/install.texi (Specific, *-*-solaris2*): Update passus on
2236         setting CONFIG_SHELL to /bin/ksh and remove alternate trick to
2237         (possibly) work around broken /bin/sh.
2238
2239 2002-05-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2240
2241         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Use mabi=64 and
2242         . as N64/N32 libgcc_s.so subdirs.
2243
2244 2002-05-10  David S. Miller  <davem@redhat.com>
2245
2246         * config/sparc/sparc.md: Use define_constants for unspec numbers.
2247
2248         * rtl.h (struct rtx_def): Document unchanging and in_struct flags
2249         more accurately.
2250         (INSN_ANNULLED_BRANCH_P): Only valid for JUMP_INSN and CALL_INSN, fix
2251         comment.
2252         (INSN_FROM_TARGET_P): Valid also for CALL_INSN.
2253         * doc/rtl.texi: Document these macros more accurately.
2254         * recog.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P for
2255         JUMP_INSNs and CALL_INSNs.
2256         * resource.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P
2257         or INSN_FROM_TARGET_P if the code is appropriate.
2258
2259 2002-05-10  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2260
2261         * config/avr/avr.c (print_operand): Check that addr is a SYMBOL_REF
2262         before using SYMBOL_REF_FLAG (addr).
2263
2264         * config/avr/avr-protos.h (avr_io_address_p): Declare.
2265         * config/avr/avr.c (io_address_p): Rename to avr_io_address_p.
2266         Make non-static.  Update all callers.
2267         * config/avr/avr.md (*cbi, *sbi, *sbix_branch, *sbix_branch_bit7):
2268         New insns to clear/set/test a single bit in I/O address space.
2269
2270 2002-05-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2271
2272         * rtl.h (ENABLE_RTL_FLAG_CHECKING): Also check for gcc >= 2.7.
2273
2274 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
2275
2276         * Makefile.in: Update.
2277         * c-common.c (flag_iso, flag_undef, cb_register_builtins,
2278         builtin_define_std): New.
2279         (c_common_init): Register CPP builtins callback.
2280         * c-common.h (flag_iso, flag_undef): New.
2281         * c-decl.c (c_decode_option): Set flag_iso and flag_undef.
2282         * c-lex.c: Don't include target.h.
2283         (cb_register_builtins): Move to c-common.c.
2284         (init_c_lex): Don't register hook here.
2285         * c-lex.h (builtin_define, builtin_assert, builtin_define_std): New.
2286         (cpp_define, cpp_assert): Remove.
2287         * gcc.c (cc1_options): Pass -undef to front end.
2288         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): Remove.
2289         (TARGET_INITIALIZER): Update.
2290         * target.h (struct cpp_reader): Don't predeclare.
2291         (struct gcc_target): Remove cpp builtin hook.
2292         * tree.c (default_register_cpp_builtins): Remove.
2293 doc:
2294         * tm.texi: Update.
2295
2296 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
2297
2298         * cppexp.c (_cpp_expand_op_stack): Set op_limit.
2299
2300 2002-05-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2301
2302         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Define.
2303         (SHLIB_LINK, SHLIB_INSTALL): Adjust.
2304
2305 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
2306
2307         * config/sparc/t-linux64 (SHLIB_MAPFILES): Set.
2308         * config/sparc/libgcc-sparc-glibc.ver: New file.
2309         * config/cris/t-linux (SHLIB_MAPFILES): Remove.
2310         * mklibgcc.in: Preprocess SHLIB_MAPFILES with ml flags.
2311
2312 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
2313
2314         PR target/6429
2315         * Makefile.in (libgcc.mk): Pass SHLIB_SLIBDIR_SUFFIXES to mklibgcc.
2316         * mklibgcc.in: If SHLIB_SLIBDIR_SUFFIXES is defined, put libgcc_s
2317         shared libraries into multilib dirs, with SONAME libgcc_s.so.1 for
2318         base multilibs.
2319         * config/t-slibgcc-elf-ver (SHLIB_LINK): Adjust for the above.
2320         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
2321         * config/sparc/t-linux64 (SHLIB_SLIBDIR_SUFFIXES): Define.
2322         * config/sparc/t-sol2-64 (SHLIB_SLIBDIR_SUFFIXES): Define.
2323
2324 2002-05-09  Richard Henderson  <rth@redhat.com>
2325
2326         * config/ia64/ia64.md: Use define_constants for unspec numbers.
2327         * config/ia64/ia64.c: Likewise.
2328
2329 2002-05-09  Richard Sandiford  <rsandifo@redhat.com>
2330
2331         * config/mips/mips.c (mips_add_large_offset_to_sp): Remove FILE arg.
2332         (save_restore_insns): Likewise.
2333         (mips_expand_prologue, mips_expand_epilogue): Update callers.
2334         (highpart_shift_operator): Attach ATTRIBUTE_UNUSED to mode argument.
2335
2336 Thu May  9 11:50:09 2002  Jeffrey A Law  (law@cygnus.com)
2337
2338         * athlon.md, k6.md, pentium.md, ppro.md): New files.
2339         * i386.md: Move scheduling information into new files.
2340
2341         * i386.md (type attribute): Add "rotate" for rotate insns.
2342         (rotate insns): Set type to "rotate".
2343         (various attributes and function units): Treat rotate like shift.
2344         (pent_pair attribute): Only rotates by one bit position are
2345         pairable.
2346         (sbb insns): Explicitly set pent_pair attribute on a couple
2347         that were missing it.
2348
2349 Thu May  9 18:29:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
2350
2351         * sh.c (sh_builtin_saveregs): If starting with an odd fp register,
2352         make sure that buffer starts on odd word address.
2353         (sh_va_arg): Skip odd fp registers when reading a double precision
2354         value.
2355
2356 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
2357
2358         * tree.h (preserve_data, object_permanent_p, type_precision):
2359         Remove.
2360
2361 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
2362
2363         * cpplib.c (cpp_init_internal_pragmas): Remove #pragma poison.
2364         * cppmacro.c (paste_all_tokens): Bad pastes are a hard error.
2365 doc:
2366         * cpp.texi: Update for removal of obsolete features.
2367
2368 Thu May  9 07:46:18 2002  Jan Hubicka <jh@suse.cz>
2369                           Jeffrey A Law  (law@redhat.com)
2370
2371         * i386.c (ia32_use_dfa_pipeline_interface): New function.  Use
2372         the DFA interface for Pentium processors.
2373         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): DEFINE.
2374         (attr_pent_pair, ix86_pent_find_pair): Remove.
2375         (ix86_sched_reorder_pentium): Remove.
2376         (ix86_sched_reorder): Remove reordering for Pentium.
2377         * i386.md (Pentium scheduling): Rewrite using DFA description.
2378
2379 Thu May  9 14:55:39 CEST 2002  Jan Hubicka  <jh@suse.cz>
2380
2381         * cfganal.c (can_fallthru): Fix fast path.
2382         * cfgrtl.c (verify_flow_info): Avoid crash on conditionals
2383         with edges to the next block.
2384
2385 Thu May  9 14:52:45 CEST 2002  Jan Hubicka  <jh@suse.cz>
2386                                Pavel Nejedly  <bim@atrey.karlin.mff.cuni.cz>
2387
2388         * final.c (end_final): Use C trees to output data structures for profiling.
2389
2390         * Makefile.in (LIBGCC_DEPS): Added missing dependency on gcov-io.h
2391         (profile.o): New dependency profile.h
2392         (final.o): New dependency profile.h
2393         * profile.h: New file. New global structure profile_info.
2394         * final.h (count_edges_instrumented_now): Declare.
2395         (current_function_cfg_checksum): Declare.
2396         (function_list): New structure.
2397         (functions_head, functions_tail): New static variables.
2398         (end_final): Emits more data, removed some -ax stuff.
2399         (final): Stores function names and chcksums.
2400         * gcov-io.h (__write_gcov_string): New function.
2401         (__read_gcov_string): New function.
2402         * gcov.c (read_profile): New function.
2403         (create_program_flow_graph): Uses read_profile instead of reading
2404         da_file.
2405         (read_files): Removed da_file checking, it's done by read_profile now.
2406         * libgcc2.c (bb_function_info): New structure.
2407         (bb): New field in structure, removed some -ax stuff.
2408         (__bb_exit_func): Changed structure of da_file.
2409         * profile.c (count_edges_instrumented_now): New global variable.
2410         (current_function_cfg_checksum): New global variable.
2411         (max_counter_in_program): New global variable.
2412         (get_exec_counts): New function.
2413         (compute_checksum): New function.
2414         (instrument_edges): Sets count_edges_instrumented_now.
2415         (compute_branch_probabilities): Uses get_exec_counts instead of
2416         reading da_file.
2417         (branch_prob): Calls compute_checksum and writes extra data to bbg_file.
2418         (init_branch_prob): Removed da_file checking, done in get_exec_counts
2419         now.
2420         (end_branch_prob): Removed da_file checking, done in get_exec_counts
2421         now.
2422         * gcov.texi: Updated information about gcov file format.
2423
2424 2002-05-09  Kazu Hirata  <kazu@cs.umass.edu>
2425
2426         * sbitmap.c: Fix formatting.
2427         * scan.c: Likewise.
2428         * scan-decls.c: Likewise.
2429         * sched-deps.c: Likewise.
2430         * sched-ebb.c: Likewise.
2431         * sched-rgn.c: Likewise.
2432         * sched-vis.c: Likewise.
2433         * sdbout.c: Likewise.
2434         * sibcall.c: Likewise.
2435         * simplify-rtx.c: Likewise.
2436         * ssa.c: Likewise.
2437         * ssa-ccp.c: Likewise.
2438         * ssa-dce.c: Likewise.
2439         * stmt.c: Likewise.
2440         * stor-layout.c: Likewise.
2441         * stringpool.c: Likewise.
2442
2443 2002-05-09  David S. Miller  <davem@redhat.com>
2444
2445         * config/sparc/sol2.h (ASM_CPU_SPEC): Handle -mcpu=v9.
2446
2447 2002-05-07  David S. Miller  <davem@redhat.com>
2448
2449         * config/sparc/sparc.h (TARGET_BUGGY_QP_LIB): Define to zero.
2450         * config/sparc/sol2.h (TARGET_BUGGY_QP_LIB): Override to one.
2451         * config/sparc/sparc.c (emit_soft_tfmode_libcall): If the Qp
2452         library implementation clobbers the output before the inputs
2453         are fully consumed, use stack temporary for the output.
2454
2455 2002-05-09  Jason Thorpe  <thorpej@wasabisystems.com>
2456
2457         * config/netbsd.h (CPP_SPEC): Remove.
2458         * config/i386/netbsd-elf.h (CPP_SPEC): Define.
2459         * config/i386/netbsd.h (CPP_SPEC): Define.
2460         * config/ns32k/netbsd.h (CPP_SPEC): Define.
2461         * config/sparc/netbsd-elf.h (CPP_SPEC): Remove.
2462         * config/sparc/netbsd.h (CPP_SPEC): Define.
2463         * config/vax/netbsd.h (CPP_SPEC): Define.
2464
2465 2002-05-08  Kazu Hirata  <kazu@cs.umass.edu>
2466
2467         * read-rtl.c: Fix formatting.
2468         * real.c: Likewise.
2469         * recog.c: Likewise.
2470         * regclass.c: Likewise.
2471         * regmove.c: Likewise.
2472         * reg-stack.c: Likewise.
2473         * reload1.c: Likewise.
2474         * reload.c: Likewise.
2475         * resource.c: Likewise.
2476         * rtlanal.c: Likewise.
2477         * rtl.c: Likewise.
2478         * rtl-error.c: Likewise.
2479
2480 2002-05-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2481
2482         * pa/pa-64.h (MAX_WCHAR_TYPE_SIZE): Delete.
2483         * pa/pa.h (MAX_WCHAR_TYPE_SIZE): Delete.
2484
2485 2002-05-08  Bernd Schmidt  <bernds@redhat.com>
2486
2487         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Tweak previous change to
2488         use __SSE2__ macro instead.
2489         * config/i386/xmmintrin.h: Likewise.
2490
2491 2002-05-08  Janis Johnson  <janis187@us.ibm.com>
2492
2493         * rtl.h (RTL_FLAG_CHECK*): Add an argument for the macro name,
2494         and use it in all invocations of these macros.  Clean up comments.
2495         * rtl.c (rtl_check_failed_flag): Add an argument for the name
2496         of the flag access macro whose check failed.
2497         * doc/rtl.texi (Flags): Document additional flag uses.
2498
2499 2002-05-08  Robert Spier <rspier@pobox.com>
2500             Neil Booth  <neil@daikokuya.demon.co.uk>
2501
2502         PR preprocessor/6521
2503         * cppfiles.c (handle_missing_header): Don't do anything
2504         different for <> includes.
2505 doc:
2506         * cppopts.texi: Update documentation for -MG.
2507
2508 2002-05-08  Neil Booth  <neil@daikokuya.demon.co.uk>
2509
2510         * cpplex.c (cpp_interpret_charconst): Truncate as well as
2511         sign-extend.
2512 doc:
2513         * cpp.texi: Clarify multichar charconst valuation.
2514
2515 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
2516
2517         * doc/invoke.texi: Document -mwindiss option.
2518
2519 2002-05-08  Jason Merrill  <jason@redhat.com>
2520
2521         * dwarf2out.c (output_call_frame_info): Don't emit a CIE with no FDEs.
2522
2523         * dwarf2out.c (gen_type_die): Abort on broken recursion.
2524
2525         PR c++/6381
2526         * dwarf2out.c (rtl_for_decl_location): Only expand INTEGER_CST and
2527         REAL_CST.
2528
2529 2002-05-08  Nick Clifton  <nickc@cambridge.redhat.com>
2530
2531         * config/arm/t-arm-elf (MULTILIB): Do not allow big-endian/
2532         little-endian multilibs to override arm/thumb multilibs.
2533         Do not build hardware floating point multilibs, nor apcs-26
2534         multilibs for the Thumb.
2535
2536 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
2537
2538         PR c/6569.
2539         * varasm.c (mark_weak): New function.
2540         (merge_weak): Use it.  Do not call declare_weak.
2541         (declare_weak): Use merge_weak.
2542
2543 Wed May  8 13:12:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
2544
2545         * cse.c (dead_libcall_p): Update counts.
2546         (delete_trivially_dead_insns): Update call of dead_libcall_p.
2547
2548 Wed May  8 11:08:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
2549
2550         * cfglayout.c (function_tail_eff_head): Rename to ...
2551         (function_footer): ... this one.
2552         (unlink_insn_chain): New functions.
2553         (label_for_bb): Only call block_label and emit debug message.
2554         (record_effective_endpoints): Actually unlink the headers and footers.
2555         (fixup_reorder_cahin): Re-insert the unlinked sequences.
2556         (cfg_layout_duplicate_bb): Use duplicate_insn_chain.
2557         * cfglayout.h (struct reorder_block_def): New fields footer/header;
2558         remove eff_head/eff_end.
2559         * rtl.h (set_first_insn): Declare.
2560         * emit-rtl.c (set_first_insn): New function.
2561
2562         * cfglayout.c (fixup_reorder_chain): Dump duplicated
2563         (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
2564         cfg_layout_duplicate_bb): New global function.
2565         (duplicate_insn_chain): New static function.
2566         * cfglayout.h (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
2567         cfg_layout_duplicate_bb): Declare.
2568         (struct reorder_block_def): Add "original" field.
2569         * emit-rtl.c (emit_copy_of_insn_after): New function.
2570         * rtl.h (emit_copy_of_insn_after): Declare.
2571
2572         * cfglayout.c (fixup_fallthru_exit_predecessor): Kill.
2573         (fixup_reorder_chain): properly handle edges to exit block.
2574
2575 Wed May  8 11:10:31 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2576                                Jan Hubicka  <jh@suse.cz>
2577
2578         * basic-block.h (note_prediction_to_br_prob): declare.
2579         * c-semantics.c: Inlucde predit.h
2580         (expand_stmt): predict GOTO_STMT as not taken.
2581         * cfgcleanup.c: (delete_unreachable_blocks): Make global.
2582         (cleanup_cfg): Do not free tail_recursion_list.
2583         * cfgrtl.c (can_delete_note_p): Delete NOTE_INSN_PREDICTION.
2584         (flow_delete_block): Kill predictions past end of basic block.
2585         * output.h (delete_unreachable_blocks): Declare.
2586         * predict.c (predicted_by_p, process_note_predictions,
2587         process_note_prediction, last_block_p): New function.
2588         (estimate_probability): Bypass loop on PRED_CONTINUE;
2589         do not handle noreturn heuristics; kill PRED_RETURN; add
2590         PRED_EARLY_RETURN.
2591         * predict.def (PRED_CONTINUE, PRED_EARLY_RETURN, PRED_GOTO,
2592         PRED_CONST_RETURN, PRED_NEGATIVE_RETURN, PRED_NULL_RETURN): New.
2593         * predict.h (IS_TAKEN): New constant.
2594         * print-rtl.c (print_rtx): Pretty print NOTE_INSN_PREDICTION.
2595         * rtl.c (NOTE_INSN_PREDICTION): New.
2596         * rtl.h (NOTE_PREDICTION, NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS):
2597         New macro.
2598         (insn_note): add NOTE_INSN_PREDICTION.
2599         * sibcall.c (optimize_sibling_and_tail_recursive_call): Do not build
2600         CFG; free tail_recursion_label_list.
2601         * stmt.c: Include predict.h;
2602         (return_prediction): New.
2603         (expand_value_return): Use it.
2604         * toplev.c: Lower NOTE_INSN_PREDICTION before sibcall.
2605
2606 2002-05-08  Richard Sandiford  <rsandifo@redhat.com>
2607
2608         * config/mips/mips.md: Name the unspecs with define_constant.
2609         (*HILO_delay): Rename to 'hilo_delay' (no star).
2610         (reload_indi): Replace gen_rtx_UNSPEC with gen_hilo_delay.
2611         (reload_outdi, reload_outsi): Likewise.
2612
2613 2002-05-07  Kazu Hirata  <kazu@cs.umass.edu>
2614
2615         * toplev.c: Fix formatting.
2616
2617 2002-05-07  Janis Johnson  <janis187@us.ibm.com>
2618
2619         * config.in (ENABLE_RTL_FLAG_CHECKING): New.
2620         * configure.in (ac_rtlflag_checking): New.
2621         * doc/install.texi (--enable-checking): Document RTL flag checking.
2622
2623 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
2624
2625         * c-common.c (c_common_init): Set options->unsigned_wchar.
2626         * cppinit.c (cpp_create_reader): Default unsigned_wchar,
2627         group target dependencies.
2628         (init_builtins, cpp_handle_option): Update.
2629         * cpplex.c (cpp_interpret_charconst): Update.
2630         * cpplib.h (struct cpp_options): Add unsigned_wchar, rename
2631         signed_char to unsigned_char, group target dependencies.
2632         * defaults.h (WCHAR_UNSIGNED): Remove.
2633         * system.h (WCHAR_UNSIGNED, MAX_CHAR_TYPE_SIZE): Poison.
2634 config:
2635         * freebsd.h, interix.h, alpha/freebsd.h, arm/freebsd.h,
2636         i386/386bsd.h, i386/beos-elf.h, i386/bsd386.h, i386/cygwin.h,
2637         i386/djgpp.h, i386/freebsd-aout.h, i386/i386-interix.h,
2638         i386/win32.h, ia64/freebsd.h, mips/netbsd.h, rs6000/freebsd.h,
2639         sh/elf.h, sh/sh.h, sparc/freebsd.h: Remove WCHAR_UNSIGNED.
2640 doc:
2641         * tm.texi: Remove MAX_CHAR_TYPE_SIZE.
2642
2643 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
2644
2645         * fixinc/inclhack.def (windiss_math1): New fix.
2646         (windiss_math2): Likewise.
2647         (windiss_valist): Likewise.
2648         * fixinc/fixincl.x: Regenerated.
2649
2650 2002-05-07  Andreas Jaeger  <aj@suse.de>
2651
2652         * genautomata.c (output_internal_min_issue_delay_func): Add
2653         ATTRIBUTE_UNUSED to avoid warning with empty dfa.
2654         (output_internal_trans_func): Likewise.
2655
2656 Tue May  7 10:06:22 2002  Jeffrey A Law  (law@redhat.com)
2657
2658         * pa.c (hppa_profile_hook): Use force_reg to get the address
2659         of the profile hook into an appropriate pseudo register.
2660
2661 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
2662
2663         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -mwindiss.
2664         (LINK_START_SPEC): Handle it.
2665         (LINK_OS_SPEC): Likewise.
2666         (CPP_SPEC): Likewise.
2667         (STARTFILE_SPEC): Likewise.
2668         (LIB_SPEC): Likewise.
2669         (ENDFILE_SPEC): Likewise.  Do not assume crtsavres.o is used on
2670         all platforms.
2671         (CRTSAVRES_DEFAULT_SPEC): New macro.
2672         (LIB_WINDISS_SPEC): New macro.
2673         (CPP_OS_WINDISS_SPEC): Likewise.
2674         (STARTFILE_WINDISS_SPEC): Likewise.
2675         (ENDFILE_WINDISS_SPEC): Likewise.
2676         (LINK_START_WINDISS_SPEC): Likewise.
2677         (LINK_OS_WINDISS_SPEC): Likewise.
2678         * config/rs6000/windiss.h: New file.
2679
2680 2002-05-07  Aldy Hernandez  <aldyh@redhat.com>
2681
2682         * config/rs6000/rs6000.c (bdesc_2arg): Fix vmax typos.
2683
2684 2002-05-06  David S. Miller  <davem@redhat.com>
2685
2686         * config/sparc/sparc.md (shift insns): Do not mask off
2687         second operand, 'I' constraint and SHIFT_COUNT_TRUNCATED
2688         take care of it.
2689
2690 2002-05-06  Richard Henderson  <rth@redhat.com>
2691
2692         PR c++/6212
2693         * expr.c (highest_pow2_factor_for_type): New.
2694         (expand_assignment): Use it.
2695
2696 2002-05-06  Aldy Hernandez  <aldyh@redhat.com>
2697
2698         * config/rs6000/rs6000.md ("altivec_mtvscr"): Change to
2699         unspec_volatile.
2700         ("altivec_mfvscr"): Same.
2701
2702 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
2703
2704         * rtl.h (struct rtx_def): Update comments.
2705         (RTL_FLAG_CHECK[12345678]): New.  (rtl_check_failed_flag): Declare.
2706         (RTL_FLAG): New.  (CLEAR_RTX_FLAGS): New.  (flag access macros): Use
2707         RTL_FLAG_CHECK macros with list of expected RTL codes.
2708         * rtl.c (copy_rtx, shallow_copy_rtx): Use RTX_FLAG macro.
2709         (rtl_check_failed_flag): New.
2710         * reload1.c (reload): Use REG macro before changing rtx to MEM.
2711         (reload_cse_noop_set_p): Check rtx code before using access macro.
2712         * config/ia64/ia64.c (process_for_unwind_directive): Check rtx code
2713         before using access macro.
2714
2715 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
2716
2717         * doc/rtl.texi (Flags): Update to reflect current usage.
2718
2719 2002-05-06  Roger Sayle  <roger@eyesopen.com>
2720
2721         PR opt/3995
2722         * fold-const.c (sign_bit_p): New function.
2723         (fold) [EQ_EXPR]: Use this to convert (A & C) == 0 into A >= 0 and
2724         (A & C) != 0 into A < 0, when constant C is the sign bit of A's type.
2725         Reapply fold when converting (A & C) == C into (A & C) != 0.
2726         (fold_binary_op_with_conditional_arg): Fix typo in comment.
2727
2728 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
2729
2730         * c-common.c (warn_multichar): New.
2731         (c_common_init): Set CPP's warn_multichar.
2732         * c-common.h (warn_multichar): New.
2733         * c-decl.c (warn_multichar): Remove.
2734         * c-lex.c (lex_charconst): Update.
2735         * c-tree.h (warn_multichar): Remove.
2736         * cppexp.c (eval_token): Sign-extend charconst value.
2737         * cppinit.c (cpp_create_reader): Set warn_multichar.
2738         * cpplex.c (cpp_interpret_charconst): Don't sign-extend
2739         each character.  Update prototype.  Sign-extend the result.
2740         * cpplib.h: Fix conditions.
2741         (struct cpp_options): Add new warning flag.
2742         (cpp_interpret_charconst): Update prototype.
2743 doc:
2744         * cpp.texi: Update documentation.
2745
2746 2002-05-06  Vladimir Makarov  <vmakarov@redhat.com>
2747
2748         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
2749         Fix typo in usage of allof instead of unit.
2750
2751 2002-05-06  Richard Henderson  <rth@redhat.com>
2752
2753         * recog.c (if_test_bypass_p): Accept multiple set insns for OUT,
2754         and any jump or call for IN.
2755
2756 2002-05-06  Bernd Schmidt  <bernds@redhat.com>
2757
2758         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Define __SSE2_BUILTINS__ if
2759         -msse2.
2760         * config/i386/xmmintrin.h: Use it to conditionalize SSE2 support.
2761
2762 2002-05-06  Roger Sayle  <roger@eyesopen.com>
2763
2764         * fold-const.c (lshift-double): Cast the high word to an unsigned
2765         HOST_WIDE_INT when extracting sign bit to avoid compiler warning.
2766         (div_and_round_double): Cast carry to a signed HOST_WIDE_INT to
2767         avoid compiler warning.  (fold): Remove redundant code from
2768         BIT_AND_EXPR as integer operands are canonicalized to be arg1.
2769
2770 2002-05-06  Jeff Law  <law@redhat.com>
2771
2772         * pa-protos.h (hppa_fpstore_bypass_p): Declare.
2773         * pa.c (pa_adjust_cost): Remove all true dependency cost
2774         adjustments.  Also remove support for non-DFA scheduling.
2775         * pa.md (700, 7100, 7100lc, 7200, 7300): Use bypass mechanism
2776         to adjust true dependency costs.  Update various comments.
2777         (7100lc, 7200, 7300 scheduling): Simplify by combining the
2778         FP ALU & MPY units into a single unit.
2779
2780 2002-05-06  Catherine Moore  <clm@redhat.com>
2781
2782         * config/v850/v850.c (compute_register_save_size): Make sure
2783         to count all of the registers that will be saved.
2784
2785 Mon May  6 18:03:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
2786
2787         * i386.c (q_regs_operand): Use ANY_QI_REGS_P.
2788
2789 2002-05-06  David S. Miller  <davem@redhat.com>
2790
2791         * config/sparc/sparc.c (emit_soft_tfmode_libcall): Do not
2792         allow result to overlap input operands in memory.
2793
2794 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
2795
2796 doc:
2797         * cpp.texi: Update multichar charconst docs.
2798
2799 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
2800
2801         * cpplex.c (cpp_interpret_charconst): Sign-extend each
2802         character.  Don't ignore excess characters.  Treat
2803         multicharacter character constants as signed.
2804         (cpp_parse_escape): Clarify diagnostic.
2805
2806 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
2807
2808         * config/sparc/sparc.md (ashlsi3): If shift count is const1_rtx,
2809         use add instead of shift.
2810         (ashldi3_sp64): Likewise.
2811         (ashlsi3_const1, ashldi3_const1): Remove.
2812         * config/sparc/sparc.h (PREDICATE_CODES): Add const1_operand.
2813         * config/sparc/sparc.c (const1_operand): New.
2814
2815 2002-05-05  Jason Thorpe  <thorpej@wasabisystems.com>
2816
2817         * config.gcc (alpha*-*-netbsd*): Don't use crtstuff.
2818
2819 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
2820
2821         PR target/6561
2822         * config/sparc/sparc.md (muldi3_v8plus): Handle %1 equal to %2.
2823
2824 2002-05-05  Richard Henderson  <rth@redhat.com>
2825
2826         * config/alpha/alpha.c (alpha_adjust_cost): Remove everything but
2827         memory latency adjustments.
2828         (alpha_variable_issue): Remove.
2829         (alpha_use_dfa_pipeline_interface): New.
2830         (alpha_multipass_dfa_lookahead): New.
2831         * config/alpha/alpha.md: Remove define_function_unit scheduling;
2832         include new dfa scheduling.
2833         (attr type): Add none.
2834         (blockage): Use it.
2835         * config/alpha/ev4.md: New.
2836         * config/alpha/ev5.md: New.
2837         * config/alpha/ev6.md: New.
2838
2839 2002-05-05  David S. Miller  <davem@redhat.com>
2840
2841         * recog.c (store_data_bypass_p): Handle CLOBBER inside PARALLEL.
2842
2843 2002-05-05  Kazu Hirata  <kazu@cs.umass.edu>
2844
2845         * cse.c: Fix formatting.
2846         * emit-rtl.c: Likewise.
2847
2848 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
2849
2850         * genautomata.c (initiate_states): Add additional guard to
2851         initialize `units_array'.
2852
2853 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
2854
2855         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp,
2856         process_unit_to_form_the_same_automaton_unit_lists,
2857         form_the_same_automaton_unit_lists
2858         check_unit_distributions_to_automata): New prototypes and
2859         functions.
2860         (check_automata): Rename it into `check_automata_insn_issues'.
2861         (unit_decl): New fields `the_same_automaton_unit' and
2862         `the_same_automaton_message_reported_p'.
2863         (unit_decl_t): New typedef.
2864         (the_same_automaton_lists): New gloval variable.
2865         (unit_regexp, unit_set_el, units_array, units_cmp,
2866         output_get_cpu_unit_code_func): Use the typedef.
2867         (evaluate_max_reserv_cycles): Increment
2868         `description->max_insn_reserv_cycles'.
2869         (initiate_states): Don't increment `max_cycles_num'.
2870         (transform_insn_regexps): Move code around transformation of
2871         regexps from `generate'.
2872         (generate): Remove call of `transform_insn_regexps'.
2873         (expand_automata): Call `transform_insn_regexps' and
2874         `check_unit_distributions_to_automata'.  Check errors before
2875         `generate'.
2876
2877         * config/sparc/ultra3.md (us3_a0, us3_a1): Move the units into
2878         automaton `ultrasparc3_1'.
2879
2880 2002-05-05  Neil Booth  <neil@daikokuya.demon.co.uk>
2881
2882         * c-common.c (c_common_init): Set up CPP arithmetic.
2883         * cppinit.c (cpp_create_reader): Default CPP arithmetic to
2884         something reasonable for the host.
2885         (sanity_checks): Add checks.
2886         (cpp_read_main_file): Call sanity_checks() from here...
2887         (cpp_post_options): ... not here.
2888         * cpplex.c (cpp_interpret_charconst): Get max_chars right.
2889         * cpplib.h (struct cpp_options): New member int_precision.
2890
2891 2002-05-05  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2892
2893         * doc/install.texi (powerpc-*-linux-gnu*): Update build requirements.
2894
2895 2002-05-04  David S. Miller  <davem@redhat.com>
2896
2897         * config/sparc/linux.h, config/sparc/linux64.h
2898         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define twice.
2899
2900         * config/sparc/sparc.c (sparc_rtx_costs): Describe costs of
2901         more RTX codes.
2902         * config/sparc/sparc.h (RTX_COSTS_CASES): List those new codes.
2903
2904         * recog.c (store_data_bypass_p): Handle out_insn being a PARALLEL
2905         of SETs.
2906
2907 2002-05-05  Tim Josling  <tej@melbpc.org.au>
2908
2909         * treelang; New directory for new sample language treelang.
2910
2911 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
2912
2913         * Makefile.in (c-lex.o): Update.
2914         * c-lex.c: Include target.h.
2915         (cb_register_builtins): New.
2916         (init_c_lex): Set builtins callback.
2917         * c-lex.h (cpp_define, cpp_assert): New prototypes.
2918         * cppinit.c (init_builtins): Use callback, including for
2919         GXX_WEAK.
2920         * cpplib.h (struct cpp_callbacks): New member.
2921         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): New.
2922         (TARGET_INITIALIZER): Update.
2923         * target.h (struct gcc_target): New hook.
2924         * tree.c (default_register_cpp_builtins): New.
2925         * tree.h (default_register_cpp_builtins): New.
2926 doc:
2927         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Document.
2928
2929 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
2930
2931         * cppinit.c (MAX_WCHAR_TYPE_SIZE): Move to cpplib.h
2932         (cpp_post_options): Move sanity checks to...
2933         (sanity_checks): New.
2934         * cpplex.c (maybe_read_ucs): Fix prototype.
2935         (parse_string, cpp_parse_escape): Cast for %c format specifier.
2936         * cpplib.h (cppchar_t): Use unsigned long or unsigned long long
2937         if necessary.
2938
2939 2002-05-04  Bernd Schmidt  <bernds@redhat.com>
2940
2941         * config/i386/i386.c (bdesc_2arg): Add a couple of missing SSE2
2942         builtins.  Use V2DI patterns instead of TI for logical operations.
2943         (ix86_init_mmx_sse_builtins): Add a couple of missing SSE2 builtins.
2944         Correct definitions of psadbw, pmovmskb128, movntdq, cvtdq2ps.
2945         (ix86_expand_builtins): Change the pattern used for movntdq.
2946         * config/i386/i386.md (sse2_andv2di3, sse2_iorv2di3, sse2_xorv2di3,
2947         sse2_nandv2di3): New patterns.
2948         (sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3): Correct modes
2949         on operands.
2950         (sse2_movntv2di): Renamed from sse2_movntti and modes adjusted.
2951         (cvtdq2pd): Correct mode on operand 1.
2952         (sse2_umulsidi3): Describe without unspec.
2953         (sse2_psadbw, mmx_psadbw): Describe with unspec; use more appropriate
2954         machine modes.
2955         (lshrv2di3): Renamed from sse2_lshrv2di3 and removed unspec.
2956         (ashlv2di3): Likewise, from sse2_ashlv2di3.
2957         (ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3,
2958         ashlv4si3, ashlv2di3): Use SImode for shift count.
2959         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti, lshrv2di3_ti,
2960         lshrv4si3_ti, lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti):
2961         New patterns.
2962         * config/i386/xmmintrin.h (__v2df, __v2di, __v4si, __v8hi, __v16qi):
2963         New typedefs.
2964         (__m128i, __m128d): New macros.
2965         (_mm_add_pd, _mm_add_sd, _mm_sub_pd, _mm_sub_sd, _mm_mul_pd,
2966         _mm_mul_sd, _mm_div_pd, _mm_div_sd, _mm_sqrt_pd, _mm_sqrt_sd,
2967         _mm_min_pd, _mm_min_sd, _mm_max_sd, _mm_max_pd, _mm_and_pd,
2968         _mm_andnot_pd, _mm_xor_pd, _mm_or_pd, _mm_cmpeq_pd, _mm_cmplt_pd,
2969         _mm_cmple_pd, _mm_cmpgt_pd, _mm_cmpge_pd, _mm_cmpneq_pd,
2970         _mm_cmpnlt_pd, _mm_cmpnle_pd, _mm_cmpngt_pd, _mm_cmpnge_pd,
2971         _mm_cmpord_pd, _mm_cmpunord_pd, _mm_cmpeq_sd, _mm_cmplt_sd,
2972         _mm_cmple_sd, _mm_cmpgt_sd, _mm_cmpge_sd, _mm_cmpneq_sd,
2973         _mm_cmpnlt_sd, _mm_cmpnle_sd, _mm_cmpngt_sd, _mm_cmpnge_sd,
2974         _mm_cmpord_sd, _mm_cmpunord_sd, _mm_comieq_sd, _mm_comilt_sd,
2975         _mm_comile_sd, _mm_comigt_sd, _mm_comige_sd, _mm_comineq_sd,
2976         _mm_ucomieq_sd, _mm_ucomieq_sd, _mm_ucomilt_sd, _mm_ucomile_sd,
2977         _mm_ucomigt_sd, _mm_ucomige_sd, _mm_ucomineq_sd, _mm_cvtepi32_pd,
2978         _mm_cvtepi32_ps, _mm_cvtpd_epi32, _mm_cvtpd_pi32, _mm_cvtpd_ps,
2979         _mm_cvttpd_epi32, _mm_cvttpd_pi32, _mm_cvtpi32_pd, _mm_cvtps_epi32,
2980         _mm_cvttps_epi32, _mm_cvtps_pd, _mm_cvtsd_si32, _mm_cvttsd_si32,
2981         _mm_cvtsd_ss, _mm_cvtsi32_sd, _mm_cvtss_sd, _mm_unpackhi_pd,
2982         _mm_unpacklo_pd, _mm_loadh_pd, _mm_storeh_pd, _mm_storel_pd,
2983         _mm_movemask_pd, _mm_packs_epi16, _mm_packs_epi32, _mm_packus_epi16,
2984         _mm_unpackhi_epi8, _mm_unpackhi_epi16, _mm_unpackhi_epi32,
2985         _mm_unpacklo_epi8, _mm_unpacklo_epi16, _mm_unpacklo_epi32,
2986         _mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
2987         _mm_adds_epi8, _mm_adds_epi16, _mm_adds_epu8, _mm_adds_epu16,
2988         _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
2989         _mm_subs_epi8, _mm_subs_epi16, _mm_subs_epu8, _mm_subs_epu16,
2990         _mm_madd_epi16, _mm_mulhi_epi16, _mm_mullo_epi16, _mm_mul_pu16,
2991         _mm_mul_epu16, _mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64,
2992         _mm_sra_epi16, _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32,
2993         _mm_srl_epi64, _mm_slli_epi16, _mm_slli_epi32, _mm_slli_epi64,
2994         _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
2995         _mm_srli_epi64, _mm_and_si128, _mm_andnot_si128, _mm_or_si128,
2996         _mm_xor_si128, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
2997         _mm_cmpgt_epi8, _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_max_epi16,
2998         _mm_max_epu8, _mm_min_epi16, _mm_min_epu8, _mm_movemask_epi8,
2999         _mm_mulhi_epu16, _mm_maskmoveu_si128, _mm_avg_epu8, _mm_avg_epu16,
3000         _mm_sad_epu8, _mm_stream_si32, _mm_stream_si128, _mm_stream_pd,
3001         _mm_movpi64_epi64, _mm_clflush, _mm_lfence, _mm_mfence): New
3002         functions.
3003         (_mm_shufflehi_epi16, _mm_shufflelo_epi16, _mm_shuffle_epi32,
3004         _mm_extract_epi16, _mm_insert_epi16, _mm_shuffle_pd): New macros.
3005
3006 2002-05-04  Kazu Hirata  <kazu@cs.umass.edu>
3007
3008         * dwarf2out.c: Fix formatting.
3009         * varasm.c: Likewise.
3010
3011 2002-05-04  David Edelsohn  <edelsohn@gnu.org>
3012
3013         PR c/6543
3014         * config/rs6000/rs6000.md (sCC pattern and splitter): Remove
3015         clobber and use result as temporary value.
3016
3017 Sat May  4 13:20:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
3018
3019         * expr.c (force_operand): Use expand_simple_* to handle more
3020         cases.
3021
3022 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
3023
3024         * c-lex.c (lex_string): Let cpp_parse_escape handles truncation
3025         and sign-extension.
3026         (lex_charconst): Update for change in prototype of
3027         cpp_interpret_charconst.  Extend from cppchar_t to HOST_WIDE_INT
3028         appropriately.
3029         * cpphash.h (BITS_PER_CPPCHAR_T): New.
3030         * cppinit.c (cpp_create_reader): Initialize them for no
3031         change in semantics.
3032         (cpp_post_options): Add sanity checks.
3033         * cpplex.c (cpp_parse_escape): Handle precision, sign-extension
3034         and truncation issues.  Calculate in type cppchar_t.
3035         (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Remove.
3036         (cpp_interpret_charconst): Calculate in type cppchar_t.  Handle
3037         run-time dependent precision correctly.  Return whether the
3038         result is signed or not.
3039         * cpplib.c (dequote_string): Use cppchar_t; update.
3040         * cpplib.h (cppchar_signed_t): New.
3041         struct cpp_options): New precision members.
3042         (cpp_interpret_charconst, cpp_parse_escape): Update prototypes.
3043         * cppexp.c (eval_token): Update.
3044
3045 2002-05-03  David S. Miller  <davem@redhat.com>
3046
3047         * config/sparc/sparc-protos.h (sparc_rtx_costs): New.
3048         * config/sparc/sparc.c (sparc_rtx_costs): New function
3049         implementing RTX_COSTS and CONST_COSTS.
3050         * config/sparc/sparc.h (CONST_COSTS): Delete.
3051         (RTX_COSTS_CASES): Define.
3052         (RTX_COSTS): Expand RTX_COSTS_CASES and use sparc_rtx_costs to do
3053         the work.
3054
3055         * config/sparc/sparc.md (DFA schedulers): Split out...
3056         * config/sparc/cypress.md, config/sparc/hypersparc.md,
3057         config/sparc/sparclet.md, config/sparc/supersparc.md,
3058         config/sparc/ultra1_2.md, config/sparc/ultra3.md: ... into here.
3059
3060         * config/sparc/sparc.c (LEAF_REGISTERS): Do not do ifdef
3061         checks on it, always defined for Sparc.
3062
3063         * config/sparc/sparc.h (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER):
3064         Tweak, and add more detailed comments.
3065
3066 2002-05-03  Zack Weinberg  <zack@codesourcery.com>
3067
3068         * Re-apply patch accidentally reverted with
3069         DFA scheduler merge: remove all rules and variables to slurp
3070         source files out of libiberty and rebuild them with HOST_CC.
3071         ($(HOST_PREFIX_1)varray.o): New rule.
3072         (genattrtab rule): Word wrap.
3073
3074 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
3075
3076         * config/i386/netbsd64.h (CPP_LP64_SPEC): Define.
3077         (CPP_SUBTARGET_SPEC): Define.
3078         (SUBTARGET_EXTRA_SPECS): Redefine, adding cpp_lp64 and
3079         cpp_subtarget specs.
3080         (CPP_SPEC): Redefine to include %(cpp_subtarget).
3081
3082 2002-05-03  David S. Miller  <davem@redhat.com>
3083
3084         * target-defs.h (TARGET_SCHED_CYCLE_DISPLAY): Delete.
3085         * target.h (struct gcc_target): Delete cycle_display member.
3086
3087         * config/ia64/ia64.c (ia64_emit_insn_before): Put it back.
3088         (rtx_needs_barrier): Delete reference to cycle_display unspec.
3089         (ia64_sched_reorder2): Mention need for cycle display handling
3090         once such notes exist.
3091
3092 2002-05-03  Richard Henderson  <rth@redhat.com>
3093
3094         * real.c (etoasc): Strip most trailing zeros for clarity.
3095         * sched-vis.c: Include real.h.
3096         (print_value): Use REAL_VALUE_TO_DECIMAL as needed.
3097         * Makefile.in (sched-vis.o): Add real.h.
3098
3099 2002-05-03  David S. Miller  <davem@redhat.com>
3100
3101         * haifa-sched.c (rank_for_schedule): Revert 2002-05-02 change,
3102         no longer needed.
3103
3104 2002-05-03  Aldy Hernandez  <aldyh@redhat.com>
3105
3106         * config/rs6000/rs6000.c (altivec_expand_binop_builtin): Error out
3107         when we get an out of range literal.
3108         (altivec_expand_ternop_builtin): Same.
3109         (altivec_expand_unop_builtin): Same.
3110         (altivec_expand_builtin): Same, for dss.
3111         (altivec_expand_builtin): Use trees instead of rtl when
3112         determining literal argument validity.
3113
3114 2002-05-03  David S. Miller  <davem@redhat.com>
3115
3116         Delete cycle display scheduling hook.
3117         * config/ia64/ia64.c (ia64_cycle_display,
3118         TARGET_SCHED_CYCLE_DISPLAY, ia64_emit_insn_before): Delete.
3119         (ia64_sched_reorder2): Don't check for CODE_FOR_cycle_display
3120         and use emit_insn_before instead of ia64_emit_insn_before.
3121         * config/ia64/ia64.md (unspec usage): Delete cycle display.
3122         (cycle_display): Delete insn pattern.
3123         * config/sparc/sparc.md (unspec usage): Delete cycle display.
3124         (cycle_display): Delete insn pattern.
3125         * config/sparc/sparc.c (sparc_cycle_display,
3126         TARGET_SCHED_CYCLE_DISPLAY): Delete.
3127         * doc/md.texi (cycle_display): Don't mention.
3128         * doc/tm.texi (TARGET_SCHED_CYCLE_DISPLAY): Likewise.
3129
3130 2002-05-03  Richard Henderson  <rth@redhat.com>
3131
3132         * recog.c (store_data_bypass_p, if_test_bypass_p): New.
3133         * recog.h: Declare them.
3134
3135         * config/sparc/sparc.c (ultrasparc_store_bypass_p): Remove.
3136         * config/sparc/sparc.md: Use store_data_bypass_p instead.
3137         * config/sparc/sparc-protos.h: Update.
3138
3139 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
3140
3141         * config/sparc/netbsd-elf.c (CPP_SUBTARGET_SPEC64): Remove
3142         -D__arch64__.  Add -D_LP64.
3143         (CPP_ARCH32_SPEC): Redefine to match the non-bi-arch version
3144         from sparc.h.
3145         (CPP_ARCH64_SPEC): Likewise.
3146         (NO_BUILTIN_PTRDIFF_TYPE): Undef.
3147         (NO_BUILTIN_SIZE_TYPE): Undef.
3148
3149 2002-05-03  Vladimir Makarov  <vmakarov@redhat.com>
3150
3151         * genautomata.c (min_issue_delay_pass_states): Change return type
3152         in the prototype.
3153         (min_issue_delay_pass_states): Change the algorithm.
3154         (min_issue_delay): Set up min_insn_issue_delay for the state.
3155         (output_min_issue_delay_table): Interchange the nested loops and
3156         and initiate min_insn_issue_delay for states.
3157
3158 Fri May  3 22:59:15 CEST 2002  Jan Hubicka  <jh@suse.cz>
3159
3160         * cfgcleanup.c (try_optimize_cfg):  Call merge_block only when
3161         jump is simplejump.
3162
3163 Fri May  3 22:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>
3164
3165         * i386.c  (expand_movstr, expand_clrstr): Fix inline-all-stringops
3166         sequence.
3167
3168 2002-05-03  Richard Henderson  <rth@redhat.com>
3169
3170         PR opt/6534
3171         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
3172         noce_try_store_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
3173         noce_try_cmove_arith, noce_try_minmax, noce_try_abs): Insert new
3174         code before JUMP, not EARLIEST.
3175
3176 2002-05-03  Joseph S. Myers  <jsm28@cam.ac.uk>
3177
3178         * c-format.c (check_format_info_main): Don't check for presence of
3179         parameter for * width until after operand number has been read,
3180         and only check for it if format parameters are available.
3181         Fixes PR c/6547.
3182
3183 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
3184
3185         * config/alpha/netbsd.h (CPP_PREDEFINES): Add -D_LP64.
3186         (LINK_SPEC): Undef before defining.
3187
3188 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
3189
3190         PR preprocessor/6489
3191         * tradcpp.c (fixup_newlines): New.
3192         (main, finclude): Use it.
3193
3194 2002-05-03  Richard Sandiford  <rsandifo@redhat.com>
3195
3196         * config/mips/elf64.h (UNIQUE_SECTION): Use mips_unique_section.
3197         * config/mips/mips.c (mips_unique_section): Strip encoding from
3198         decl name.
3199
3200 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
3201
3202         * config/i386/i386.c (ix86_expand_int_movcc): Truncate to proper
3203         mode.
3204
3205 2002-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3206
3207         * doc/install.texi (Installing): Mention GCC 3.1 buildstats.
3208         (Specific): Removed buildstats references.
3209         (Specific, hppa*-hp-hpux11): Adjust for GCC versions > 3.0.
3210         (Specific, sparc-sun-solaris2*): Update 64-bit hints for GCC 3.1.
3211         Accomodate Solaris versions beyond 8.
3212         (Specific, sparc-sun-solaris2.7): Update as path for GCC 3.1.
3213         (Specific, *-*-solaris2.8): Removed, obsolete.
3214
3215 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
3216
3217         PR target/6542
3218         * config/sparc/sparc.h (leaf_reg_remap): Remove const.
3219         (CONDITIONAL_REGISTER_USAGE): For TARGET_FLAT make
3220         fill leaf_reg_remap with identity.
3221         * config/sparc/sparc.c (leaf_reg_remap): Remove const.
3222
3223 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
3224
3225         * config/h8300/crti.asm: Remove trailing spaces.
3226         * config/h8300/h8300.c: Likewise.
3227         * config/h8300/lib1funcs.asm: Likewise.
3228
3229 2002-05-02  Jason Merrill  <jason@redhat.com>
3230
3231         * defaults.h (BOOL_TYPE_SIZE): Move default here from cp/decl.c.
3232         * c-decl.c (c_init_decl_processing): Use it.
3233         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Define to INT_TYPE_SIZE.
3234         * config/i960/i960.h (BOOL_TYPE_SIZE): Don't define.
3235         * config/mcore/mcore.h (BOOL_TYPE_SIZE): Don't define.
3236
3237 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
3238
3239         * regrename.c: Fix formatting.
3240         * tree.c: Likewise.
3241
3242 Fri May  3 13:34:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
3243
3244         * i386.md (attribute memory): Handle compares properly.
3245
3246 Fri May  3 10:51:38 CEST 2002  Jan Hubicka  <jh@suse.cz>
3247
3248         * i386.md (sse_clrsf, sse_clrsi): Set memory attribute
3249         to none.
3250
3251 2002-05-02  Kazu Hirata  <kazu@cs.umass.edu>
3252
3253         * function.c: Fix formatting.
3254
3255 2002-05-02  Jan Hubicka  <jh@suse.cz>
3256
3257         * haifa-sched.c (schedule_insn): Print table of instructions and
3258         reservations.
3259         (sched_block): Do not print ready list at verbosity level 1.
3260         * sched-vis.c (print_insn): Make global.
3261         * sched-ebb.c (ebb_print_insn): Rename from...
3262         (print_insn): ... this one.
3263         * sched-int.h (print_insn): Declare
3264
3265 2002-05-02  Richard Henderson  <rth@redhat.com>
3266
3267         * haifa-sched.c (rank_for_schedule): Skip past last_scheduled_insn
3268         emitted by cycle_display.
3269
3270 2002-05-02  Loren J. Rittle  <ljrittle@acm.org>
3271
3272         * doc/install.texi (*-*-freebsd*): Update to latest status.
3273
3274 2002-05-02  Jakub Jelinek  <jakub@redhat.com>
3275
3276         PR target/6540
3277         * config.gcc (sparc*-*-solaris2*): Set float_format to i128.
3278         * config/float-sparc.h: Assume 128-bit long double if
3279         __LONG_DOUBLE_128__ is defined.
3280
3281 2002-05-02  Vladimir Makarov  <vmakarov@redhat.com>
3282
3283         * genattrtab.c (write_function_unit_info): Add a dummy element
3284         when num_units == 0.
3285
3286 2002-05-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
3287
3288         * predict.c: (propagate_freq, estimate_bb_frequencies): Use
3289         TYPE_MODE (double_type_node) instead of DFmode.
3290
3291 Thu May  2 19:50:04 CEST 2002  Jan Hubicka  <jh@suse.cz>
3292
3293         * cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computed
3294         jumps post reload.
3295         * toplev.c (rest_of_compilation): Revert Richard's patch.
3296
3297 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3298
3299         * pa/x-ada (ADA_CFLAGS): Rename to X_ADA_CFLAGS.
3300
3301 2002-05-02  Catherine Moore  <clm@redhat.com>
3302
3303         * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Change r5 to r20.
3304
3305 2002-05-02  Kazu Hirata  <kazu@hxi.com>
3306
3307         * combine.c: Fix comment typos.
3308         * expr.c: Likewise.
3309         * genautomata.c: Likewise.
3310         * stmt.c: Likewise.
3311         * tree.h: Likewise.
3312
3313 2002-05-02  Joseph S. Myers  <jsm28@cam.ac.uk>
3314
3315         * doc/install.texi: State GNAT version requirements.
3316
3317 2002-05-02  Nick Clifton  <nickc@cambridge.redhat.com>
3318
3319         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Accept any form
3320         of the frame pointer or arg pointer register which strict register
3321         checking is not enabled.
3322
3323 2002-05-02  Aldy Hernandez  <aldyh@redhat.com>
3324
3325         * gcc.dg/altivec-8.c: New.
3326
3327         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
3328         PRE_INC and PRE_DEC for altivec modes.
3329
3330 2002-05-01  Bruce Korb  <bkorb@gnu.org>
3331
3332         * fixinc/check.tpl(set-writable): make sure the function exists first
3333         * fixinc/inclhack.def(alpha_assert): fix test_text
3334         * fixinc/tests/base/assert.h: add in missing result
3335
3336 2002-05-01  Jeff Law  <law@redhat.com>
3337
3338         * pa.h (EXTRA_CONSTRAINT): Don't accept PIC addresses for the
3339         'T' constraint.
3340
3341 2002-05-01  Joel Brobecker  <brobecker@gnat.com>
3342
3343         * dbxout.c (dbxout_type): Emit size information for range types,
3344         as well, but only when using GDB extensions.
3345
3346 2002-05-01  Richard Henderson  <rth@redhat.com>
3347
3348         * configure.in (HAVE_GAS_HIDDEN): Replace SPARC feature test with
3349         target-independent gnu binutils date test.
3350
3351 2002-05-01  Richard Henderson  <rth@redhat.com>
3352
3353         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Emit dump
3354         info before expunging the block.
3355
3356 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
3357
3358         * cppinit.c (cpp_handle_option) [-dM]: Don't set no_output here...
3359         (cpp_post_options): ...but here.  Disable -dD, -dN and -dI when
3360         -M -or -MM is in effect.
3361
3362 2002-05-01  Zack Weinberg  <zack@codesourcery.com>
3363
3364         * config.gcc: Correct test of --enable-obsolete.  Obsolete all
3365         A29k configurations.
3366         * doc/install.texi: Update to match.
3367
3368 2002-05-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3369
3370         PR bootstrap/6514
3371         * varasm.c (globalize_decl): Compare DECL_ASSEMBLER_NAME to check
3372         for duplicates. Always loop over whole list.
3373
3374 Wed May  1 10:32:37 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3375
3376         * reload.c (find_reloads, case 'p'): Set BADOP to 0.
3377
3378 2002-05-01      Joel Sherrill <joel@OARcorp.com>
3379
3380         * config/sparc/t-elf (sparc-rtems, sparc-elf): Build assembly
3381         support routines.
3382
3383 2002-05-01      Joel Sherrill <joel@OARcorp.com>
3384
3385         * config/arm/rtems-elf.h: Add #undef TARGET_VERSION to prevent warning.
3386
3387 2002-05-01  David Edelsohn  <edelsohn@gnu.org>
3388
3389         * rs6000.md (abssi2_nopower): Convert to define_insn_and_split.
3390         (nabs_nopower): Same.
3391         (floatdisf2): New pattern.
3392         (absdi2): Convert to define_insn_and_split.
3393         (nabsdi2): Same.
3394         (trunctfsf2): Same.
3395         (floatditf2): Same.
3396         (floatsitf2): Same.
3397         (fix_trunctfdi2): Same.
3398         (fix_trunctfsi2): Same.
3399
3400 2002-05-01  Joseph S. Myers  <jsm28@cam.ac.uk>
3401
3402         * doc/install.texi: Update Texinfo version requirement
3403         documentation.
3404
3405 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
3406
3407         PR target/6512, PR target/5628
3408         * config/sparc/sparc.md (movdf_insn_v9only_novis): Don't allow >= %f32
3409         when memory is not aligned.
3410         (movdf_insn_v9only_vis): Likewise.
3411         * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Request a FP_REGS
3412         temporary for EXTRA_FP_REGS DFmode load from unaligned memory.
3413         (SECONDARY_OUTPUT_RELOAD_CLASS): Similarly.
3414
3415 2002-05-01  Aldy Hernandez  <aldyh@redhat.com>
3416
3417         * gcc.dg/altivec-7.c: New.
3418
3419         * config/rs6000/altivec.h: Cleanup.
3420
3421 2002-04-30  Aldy Hernandez  <aldyh@redhat.com>
3422
3423         * doc/invoke.texi (Option Summary): Add -mvrsave=.
3424         (RS/6000 and PowerPC Options): Document -mvrsave=.
3425
3426         * config/rs6000/rs6000.c (rs6000_altivec_vrsave): New global.
3427         (rs6000_altivec_vrsave_string): Same.
3428         (rs6000_override_options): Call rs6000_parse_vrsave_option.
3429         (rs6000_parse_vrsave_option): New.
3430         (rs6000_stack_info): Only generate vrsave instructions when
3431         TARGET_ALTIVEC_VRSAVE.
3432
3433         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -mvrsave= option.
3434         (rs6000_altivec_vrsave_string): Define extern.
3435         (rs6000_altivec_vrsave): Same.
3436         (TARGET_ALTIVEC_VRSAVE): New.
3437
3438 2002-04-30  Richard Henderson  <rth@redhat.com>
3439
3440         PR opt/6516
3441         * toplev.c (rest_of_compilation): Don't run cross-jump before
3442         bb-reorder.
3443
3444 2002-04-30  Tom Rix  <trix@redhat.com>
3445
3446         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Sanity
3447         check which_alternative.
3448
3449 2002-04-30  Kazu Hirata  <kazu@hxi.com>
3450
3451         * cpplex.c: Fix comment formatting.
3452         * function.c: Likewise.
3453         * integrate.c: Likewise.
3454         * regrename.c: Likewise.
3455         * sibcall.c: Likewise.
3456         * simplify-rtx.c: Likewise.
3457         * tree-inline.c: Likewise.
3458
3459 2002-04-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3460
3461         * config.gcc (hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-rtems*,
3462         hppa1.0-*-osf*, hppa1.1-*-bsd*, hppa1.1-*-hpux10*, hppa2*-*-hpux10*,
3463         hppa1.0-*-hpux10*, hppa*64*-*-hpux11*, hppa1.1-*-hpux11*,
3464         hppa2*-*-hpux11*, hppa1.0-*-hpux11*, hppa*-*-lites*): Define xmake_file.
3465         * pa/t-linux, pa/t-pa, pa/t-pa64, t-pro (T_ADAFLAGS): Delete.
3466         * pa/x-ada: New file.  Define ADA_CFLAGS.
3467
3468 2002-04-30  Hans-Peter Nilsson  <hp@bitrange.com>
3469
3470         * config/mmix/mmix.h (MMIX_LAST_STACK_REGISTER_REGNUM): Renamed
3471         from MMIX_LAST_REGISTER_FILE_REGNUM.
3472         (NO_IMPLICIT_EXTERN_C): Remove cryptic obsolete comment.
3473         (struct machine_function): New member highest_saved_stack_register
3474         previously static variable in mmix.c.
3475         (MACHINE_DEPENDENT_REORG): Define.
3476         * config/mmix/mmix.c (highest_saved_stack_register): Deleted.
3477         (MMIX_OUTPUT_REGNO): New.
3478         (mmix_target_asm_function_prologue): Move calculation of last used
3479         saved-stack-register into...
3480         (mmix_machine_dependent_reorg): New function.  Update to also handle
3481         !TARGET_ABI_GNU.
3482         (mmix_print_operand): Apply MMIX_OUTPUT_REGNO when emitting
3483         register names, simplify somewhat by new variable regno.
3484         <case 'p'>: Remove fixed FIXME.  Always emit highest used saved
3485         register.
3486         (mmix_print_operand_address): Apply MMIX_OUTPUT_REGNO when
3487         emitting register names.
3488         (mmix_asm_output_reg_push, mmix_asm_output_reg_pop): Ditto.
3489         (mmix_dbx_register_number): Apply MMIX_OUTPUT_REGNO here too.
3490         Remove fixed FIXME.
3491         * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg):
3492         Declare.
3493
3494         * config/mmix/mmix.md ("divmoddi4"): Update head comment.
3495
3496 2002-04-30  Richard Henderson  <rth@redhat.com>
3497
3498         * config/sparc/sparc.c (emit_soft_tfmode_libcall,
3499         emit_soft_tfmode_binop, emit_soft_tfmode_unop, emit_soft_tfmode_cvt,
3500         emit_hard_tfmode_operation, emit_tfmode_binop, emit_tfmode_unop,
3501         emit_tfmode_cvt): New.
3502         * config/sparc/sparc.md (extendsftf2, extenddftf2, trunctfsf2,
3503         trunctfdf2, floatsitf2, floatunssitf2, floatditf2, floatunsditf2,
3504         fix_trunctfsi2, fixuns_trunctfsi2, fix_trunctfdi2, fixuns_trunctfdi2,
3505         addtf3, subtf3, multf3, divtf3, sqrttf2): Use them.
3506         * config/sparc/sparc-protos.h: Update.
3507
3508 2002-04-30  Janis Johnson  <janis187@us.ibm.com>
3509
3510         * install.texi (Final install): Add to the list of info to include
3511         in a report of a successful bootstrap, and add link to 3.1 list.
3512
3513 Tue Apr 30 19:15:36 CEST 2002  Jan Hubicka  <jh@suse.cz>
3514
3515         * i386.md (type): Add new SSE/MMX subtypes, remove usused fop1.
3516         (mode): Add vector modes
3517         (i387): Kill attribute.
3518         (unit): New attribute.
3519         (length_immediate): Grok new types.
3520         (prefix_data16, prefix_rep, prefix_0f): Fix for SSE/MMX.
3521         (modrm): Use "unit".
3522         (memory): Handle MMX/SSE properly.
3523         (scheduling descriptions): Kill uses of fop1.
3524         (sse, mmx, fp patterns): Set type and mode properly.
3525
3526 Tue Apr 30 09:31:59 2002  Jeffrey A Law  (law@cygnus.com)
3527
3528         * pa.c (override_options): Default to PA8000 scheduling.
3529         * doc/invoke.texi (HP-PA options): Mention newly added 7300
3530         scheduling parameter.
3531
3532         * pa.md (7100lc, 7200, 7300 scheduling): Slightly refine
3533         handling of double precision multiplies.
3534
3535         * pa.md (7100lc, 7200, 7300 scheduling): Refine handling of
3536         fpdiv and fpsqrt instructions.
3537         (7200 & 7300 scheduling): Fix typo in handling of
3538         store-load and store-store penalties.
3539
3540 2002-04-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3541
3542         * doc/contrib.texi (Contributors): Use MIPS instead of Mips and
3543         mips.  Add two missing commas.
3544
3545 2002-04-30  Paolo Carlini  <pcarlini@unitus.it>
3546
3547         * doc/contrib.texi (Contributors): Update Paolo Carlini's
3548         and Benjamin Kosnik's entries.
3549
3550 2002-04-29  David S. Miller  <davem@redhat.com>
3551
3552         * config/sparc/sparc.h (BRANCH_COST, PREFETCH_BLOCK,
3553         SIMULTANEOUS_PREFETCHES): Tune for UltraSPARC-III.
3554         * config/sparc/sparc.md (call + jmp 32-bit peepholes): Likewise.
3555         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
3556
3557 2002-04-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3558
3559         * combine.c (find_split_point): Use gen_int_mode.
3560
3561 2002-04-29  Vladimir Makarov  <vmakarov@redhat.com>
3562
3563         Merging code from dfa-branch:
3564
3565         2002-04-24  Vladimir Makarov  <vmakarov@redhat.com>
3566
3567         * genautomata.c (output_reserv_sets): Fix typo.
3568
3569         2002-04-23  Vladimir Makarov  <vmakarov@redhat.com>
3570
3571         * genautomata.c (output_reserv_sets): Remove
3572         next_cycle_output_flag.
3573
3574         Thu Apr 18 08:57:06 2002  Jeffrey A Law  (law@redhat.com)
3575
3576         * sched-rgn.c (init_ready_list): Make the DFA code handle
3577         USE/CLOBBER insns in the same way as the traditional
3578         scheduler.
3579         (new_ready): Similarly..
3580
3581         2002-04-17  Vladimir Makarov  <vmakarov@redhat.com>
3582
3583         * haifa-sched.c (schedule_block): Change the DFA state only after
3584         issuing insn.
3585
3586         Wed Apr 17 15:38:36 2002  Jeffrey A Law  (law@redhat.com)
3587
3588         * pa.c (hppa_use_dfa_pipeline_interface): New function.
3589         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
3590         (override_options): Add PA7300 scheduling support.
3591         (pa_adjust_cost): Update various comments.  Properly
3592         handle anti and output dependencies when using the
3593         DFA scheduler.
3594         (pa_issue_rate): Add PA7300 scheduling support.
3595         (pa_can_combine_p): Call extract_insn before calling
3596         constrain_operands (taken from mainline tree).
3597         * pa.h (enum processor_type): Add PROCESSOR_PA7300.
3598         * pa.md (cpu attr): Add 7300.  Rewrite pipeline
3599         descriptions using DFA descriptions.  Add PA7300
3600         scheduling support.
3601
3602         2002-03-30  David S. Miller  <davem@redhat.com>
3603
3604         Add UltraSPARC-III DFA scheduling support.
3605         * config/sparc/sparc.md (define_attr type): Add fpcrmove.
3606         Update FP conditional move on register insn patterns to use it, as
3607         appropriate.
3608         (define_attr cpu): Add ultrasparc3.
3609         (define_attr us3load_type): New, update integer load patterns to
3610         set it, as appropriate.
3611         (define_automaton): Add ultrasparc3_0 and ultrasparc3_1.
3612         (rest): Add UltraSPARC3 scheduling description.
3613         * config/sparc/sparc.h (TARGET_CPU_ultrasparc3): New.
3614         (PROCESSOR_ULTRASPARC3): New.
3615         ({ASM,CPP}_CPU64_DEFAULT_SPEC): Handle ultrasparc3.
3616         ({ASM,CPP}_CPU_SPEC): Likewise.
3617         (REGISTER_MOVE_COST): Likewise.
3618         (RTX_COSTS): Likewise.
3619         * config/sparc/sparc.c (sparc_override_options,
3620         sparc_initialize_trampoline, sparc64_initialize_trampoline,
3621         sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
3622         sparc_issue_rate): Likewise.
3623         * config/sparc/sol2.h: Likewise.
3624         * config/sparc/sol2-sld-64.h: Likewise.
3625         * config/sparc/linux64.h: Likewise.
3626
3627         2002-03-22  Vladimir Makarov  <vmakarov@redhat.com>
3628
3629         * doc/md.texi: Add comments about usage the latency time for the
3630         different dependencies and about case when two or more conditions
3631         in different define_insn_reservations returns TRUE for an insn.
3632
3633         * doc/md.texi: Add reference for automaton based pipeline
3634         description.
3635
3636         2002-03-04  Vladimir Makarov  <vmakarov@redhat.com>
3637
3638         * doc/passes.texi: Add missed information about genattrtab.
3639
3640         2002-03-01  Vladimir Makarov  <vmakarov@redhat.com>
3641
3642         * genautomata.c (output_automata_list_transition_code): Check
3643         automata_list on NULL.
3644
3645         2002-02-28  Vladimir Makarov  <vmakarov@redhat.com>
3646
3647         * genautomata.c (output_insn_code_cases,
3648         output_automata_list_min_issue_delay_code,
3649         output_automata_list_transition_code,
3650         output_automata_list_state_alts_code): Comment the functions.
3651
3652         2002-02-22  Vladimir Makarov  <vmakarov@redhat.com>
3653
3654         * genautomata.c (automata_list_el_t): New typedef.
3655         (get_free_automata_list_el,free_automata_list_el,
3656         free_automata_list, automata_list_hash, automata_list_eq_p,
3657         initiate_automata_lists, automata_list_start, automata_list_add,
3658         automata_list_finish, finish_automata_lists,
3659         output_insn_code_cases, output_automata_list_min_issue_delay_code,
3660         output_automata_list_transition_code,
3661         output_automata_list_state_alts_code, add_automaton_state,
3662         form_important_insn_automata_lists): New functions and prototypes.
3663         (insn_reserv_decl): Add members important_automata_list and
3664         processed_p.
3665         (ainsn): Add members important_p.
3666         (automata_list_el): New structure.
3667         (first_free_automata_list_el, current_automata_list,
3668         automata_list_table): New global variables.
3669         (create_ainsns): Initiate member important_p.
3670         (output_internal_min_issue_delay_func): Generate the switch and
3671         call output_insn_code_cases.
3672         (output_internal_trans_func, output_internal_state_alts_func):
3673         Ditto.
3674         (generate): Call initiate_automata_lists.
3675         (automaton_states): New global variable.
3676         (expand_automata): Call form_important_insn_automata_lists.
3677         (write_automata): Call finish_automata_lists.
3678
3679         2002-02-21  Vladimir Makarov  <vmakarov@redhat.com>
3680
3681         * genautomata.c (add_excls, add_presence_absence): Check that
3682         cpu units in the sets belong the same automaton.
3683
3684         * rtl.def (EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET): Add comment
3685         about that cpu units in the sets belong the same automaton.
3686
3687         * doc/md.texi: Ditto.
3688
3689         2001-12-20  Naveen Sharma  <naveens@noida.hcltech.com>
3690                     Nitin Gupta  <niting@noida.hcltech.com>
3691
3692         * config/sh/sh.c (sh_use_dfa_interface): New function.
3693
3694         (sh_issue_rate): New Function.
3695         TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE: define.
3696         TARGET_SCHED_ISSUE_RATE: define.
3697
3698         * config/sh/sh.md: Add DFA based pipeline description for SH4.
3699
3700         (define_attr insn_class): New attribute used for DFA
3701          scheduling.
3702         (define_insn cmpgtsi_t): Set attribute insn_class mt_group.
3703         (cmpgesi_t,cmpgtusi_t,cmpgeusi_t,cmpeqsi_t,
3704          cmpeqdi_t): Likewise.
3705
3706         (add,addc1,addsi3,subc,subc1,*subsi3_internal,
3707          negc,negsi2,ashldi3_k,lshrdi3_k,ashrdi3_k): Set insn_class
3708          ex_group.
3709         (iorsi3,rotlsi3_1,rotlsi3_31,rotlsi3_16): Likewise.
3710
3711         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
3712
3713         * haifa-sched.c (queue_to_ready): Remove unnecessary condition for
3714         break.
3715
3716         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
3717
3718         * genautomata.c (DFA_INSN_CODES_LENGTH_VARIABLE_NAME): New macro.
3719         (output_dfa_insn_code_func): Expand dfa_insn_codes if it is
3720         necessary.
3721         (output_dfa_start_func): Initiate new variable insn_codes_length,
3722         (write_automata): Output definition of the new variable.
3723
3724         2001-10-02  David S. Miller  <davem@redhat.com>
3725
3726         * haifa-sched.c (advance_one_cycle): New function.
3727         (schedule_block): Use it.
3728         (queue_to_ready): Use it, and also make sure to advance the DFA
3729         state on all stall cycles, not just those where insn_queue links
3730         are found.
3731
3732         2001-10-02  Richard Sandiford  <rsandifo@redhat.com>
3733
3734         * haifa-sched.c (max_issue): Remove last_p argument.  Only return
3735         non-zero if the highest-priority instruction could be scheduled.
3736         (choose_ready): Remove last argument from max_issue call.
3737
3738         2001-09-28  David S. Miller  <davem@redhat.com>
3739
3740         * config/sparc/sparc.c (sparc_use_sched_lookahead): Use 4 for
3741         ultrasparc and 3 for other multi-issue sparcs.
3742
3743         2001-09-27  David S. Miller  <davem@redhat.com>
3744
3745         * config/sparc/sparc.md (cycle_display): New pattern.
3746         * config/sparc/sparc.c (sparc_cycle_display): New.
3747         (TARGET_SCHED_CYCLE_DISPLAY): Set it.
3748
3749         2001-09-25  David S. Miller  <davem@redhat.com>
3750
3751         Convert all of Sparc scheduling to DFA
3752         * config/sparc/sparc.md: Kill all define_function_unit
3753         directives and replace with DFA equivalent.
3754         * config/sparc/sparc.c (ultrasparc_adjust_cost,
3755         mark_ultrasparc_pipeline_state, ultra_cmove_results_ready_p,
3756         ultra_fpmode_conflict_exists, ultra_find_type,
3757         ultra_build_types_avail, ultra_flush_pipeline,
3758         ultra_rescan_pipeline_state, ultrasparc_sched_reorder,
3759         ultrasparc_variable_issue, ultrasparc_sched_init,
3760         sparc_variable_issue, sparc_sched_reorder, ultra_code_from_mask,
3761         ultra_schedule_insn, ultra_code_names, ultra_pipe_hist,
3762         ultra_cur_hist, ultra_cycles_elapsed): Kill.
3763         (sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
3764         ultrasparc_store_bypass_p): New.
3765         * config/sparc/sparc-protos.h (ultrasparc_store_bypass_p):
3766         Declare.
3767
3768         2001-09-24  David S. Miller  <davem@redhat.com>
3769
3770         * haifa-sched.c (ready_remove): Fix thinko, we want to copy around
3771         ready->vec[foo] not ready[foo].
3772
3773         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
3774
3775         * doc/md.texi: Correct examples for define_insn_reservations
3776         `mult' and `div'.
3777
3778         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
3779
3780         * genautomata.c (create_automata): Print message about creation of
3781         each automaton.
3782         (generate): Remove printing meease about creation of
3783         automata.
3784
3785         2001-09-05  David S. Miller  <davem@redhat.com>
3786
3787         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
3788         * config/sparc/linux64.h: Likewise.
3789
3790         2001-08-31  Vladimir Makarov  <vmakarov@redhat.com>
3791
3792         * haifa-sched.c (insn_cost, schedule_insn, queue_to_ready,
3793         schedule_block, sched_init, sched_finish): Add missed calls of
3794         use_dfa_pipeline_interface.
3795
3796         * sched-rgn.c (init_ready_list, new_ready, debug_dependencies):
3797         Ditto.
3798
3799         * sched-vis.c (get_visual_tbl_length): Ditto.
3800
3801         2001-08-27  Richard Henderson  <rth@redhat.com>
3802
3803         * genattr.c (main): Emit state_t even when not doing scheduling.
3804
3805         2001-08-27  Richard Henderson  <rth@redhat.com>
3806
3807         * genautomata.c (expand_automata): Always create a description.
3808
3809         2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
3810
3811         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
3812         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
3813         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
3814         RTL constructions.
3815
3816         * genattr.c (main): New variable num_insn_reservations.  Increase
3817         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
3818         pipeline hazard recognizer interface.
3819
3820         * genattrtab.h: New file.
3821
3822         * genattrtab.c: Include genattrtab.h.
3823         (attr_printf, check_attr_test, make_internal_attr,
3824         make_numeric_value): Move protypes into genattrtab.h.  Define them
3825         as external.
3826         (num_dfa_decls): New global variable.
3827         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
3828         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
3829         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
3830         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
3831
3832         * genautomata.c: New file.
3833
3834         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
3835
3836         * sched-int.h: (curr_state): Add the external definition for
3837         automaton pipeline interface.
3838         (haifa_insn_data): Add comments for members blockage and units.
3839
3840         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
3841         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
3842         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
3843         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
3844         TARGET_SCHED_DFA_POST_CYCLE_INSN,
3845         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
3846         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
3847         macros.
3848         (TARGET_SCHED): Use the new macros.
3849
3850         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
3851         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
3852         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
3853         dfa_bubble): New members in gcc_target.sched.
3854
3855         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
3856         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
3857         (insn_queue): Redefine it as pointer to array.
3858         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
3859         INSN_QUEUE_SIZE.
3860         (max_insn_queue_index_macro_value): New variable.
3861         (curr_state, dfa_state_size, ready_try): New varaibles for
3862         automaton interface.
3863         (ready_element, ready_remove, max_issue): New function prototypes
3864         for automaton interface.
3865         (choose_ready): New function prototype.
3866         (insn_unit, blockage_range): Add comments.
3867         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
3868         FUNCTION_UNITS_SIZE == 0.
3869         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
3870         actual_hazard, potential_hazard): Add comments.
3871         (insn_cost): Use cost -1 as undefined value.  Remove
3872         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
3873         pipeline interface.
3874         (ready_element, ready_remove): New functions for automaton
3875         interface.
3876         (schedule_insn): Add new code for automaton pipeline interface.
3877         (queue_to_ready): Add new code for automaton pipeline interface.
3878         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
3879         (debug_ready_list): Print newline when the queue is empty.
3880         (max_issue): New function for automaton pipeline interface.
3881         (choose_ready): New function.
3882         (schedule_block): Add new code for automaton pipeline interface.
3883         Print ready list before scheduling each insn.
3884         (sched_init): Add new code for automaton pipeline interface.
3885         Initiate insn cost by -1.
3886         (sched_finish): Free the current automaton state and finalize
3887         automaton pipeline interface.
3888
3889         * sched-rgn.c: Include target.h.
3890         (init_ready_list, new_ready, debug_dependencies): Add new code for
3891         automaton pipeline interface.
3892
3893         * sched-vis.c: Include target.h.
3894         (get_visual_tbl_length): Add code for automaton interface.
3895         (target_units, print_block_visualization):  Add comments.
3896
3897         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
3898         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
3899         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
3900         (getruntime.o, genautomata.o): New entries.
3901         (genattrtab.o): Add new dependency file genattrtab.h.
3902         (genattrtab): Add new dependencies.  Link it with `libm.a'.
3903         (getruntime.o, hashtab.o): New entries for canadian cross.
3904
3905         * doc/md.texi: Description of automaton based model.
3906
3907         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
3908         Add comments.
3909         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
3910         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
3911         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
3912         TARGET_SCHED_DFA_POST_CYCLE_INSN,
3913         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
3914         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
3915         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
3916         hook descriptions.
3917         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
3918         MAX_DFA_ISSUE_RATE): New macro descriptions.
3919
3920         * doc/contrib.texi: Add dfa based scheduler contribution.
3921
3922         * doc/gcc.texi: Add more information about genattrtab.
3923
3924 Mon Apr 29 17:19:10 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3925
3926         * reload1.c (eliminate_regs, case SUBREG): Fix typo in
3927         adjust_address_nv call.
3928
3929 2002-04-29  Janis Johnson  <janis187@us.ibm.com>
3930
3931         * doc/install.texi (Testing): Provide additional information, and
3932         a stronger encouragement, for running the testsuites.
3933
3934 2002-04-29  DJ Delorie  <dj@redhat.com>
3935
3936         * config/mips/mips.c (mips_parse_cpu): Warn if the CPU name is
3937         given in upper case.
3938
3939 2002-04-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3940
3941         * fixinc/inclhack.def (solaris_widec): Include <wchar.h> in
3942         Solaris 2 <widec.h> if missing.
3943         * fixinc/fixincl.x: Regenerate.
3944         * fixinc/tests/base/widec.h: New file.
3945
3946 2002-04-29  Nick Clifton  <nickc@cambridge.redhat.com>
3947
3948         * toplev.c (f_options): Add "profile" switch so that
3949         -fno-profile can be used to disable -p.
3950
3951 2002-04-29  Bernd Schmidt  <bernds@redhat.com>
3952
3953         * c-common.c (type_for_mode): Add support for V2DFmode, V2DImode,
3954         UV2DImode.
3955         * tree.c (build_common_tree_nodes_2): Likewise.
3956         * tree.h (enum tree_index): Likewise.
3957         (V2DF_type_node, V2DI_type_node, unsigned_V2DI_type_node): Define.
3958
3959         * config/i386/i386.c (bdesc_comi, bdesc_2arg, bdesc_1arg): Add SSE2
3960         entries.
3961         (init_mmx_sse_builtins): Initialize SSE2 builtins.
3962         (ix86_expand_builtin): Add support for SSE2 builtins.
3963         * config/i386/i386.h (VALID_SSE2_REG_MODE): New macro.
3964         (VALID_SSE_REG_MODE): Use it.
3965         (VECTOR_MODE_SUPPORTED_P): Allow SSE2 modes here as well.
3966         (enum ix86_builtins): Add SSE2 builtins.
3967         * config/i386/i386.md (movv2df_internal, movv2df, movv8hi_internal,
3968         movv8hi, movv16qi_internal, movv16qi, pushv2df, pushv8hi, pushv16qi,
3969         addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3, vmmulv2df3,
3970         divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3, vmsminv2df3,
3971         sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3, sqrtv2df2,
3972         vmsqrtv2df2, maskcmpv2df3, maskncmpv2df3, vmmaskcmpv2df3,
3973         vmmaskncmpv2df3, sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb,
3974         sse2_maskmovdqu, sse2_movntv2df, sse2_movntti, sse2_movntsi, cvtdq2ps,
3975         cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq, cvtpd2pi,
3976         cvttpd2pi, cvtpi2pd, cvtsd2si, cvttsd2si, cvtsi2sd, cvtsd2ss,
3977         cvtss2sd, cvtpd2ps, cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3,
3978         ssaddv16qi3, ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3,
3979         subv4si3, subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3,
3980         mulv8hi3, smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
3981         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_clrti, sse2_uavgv16qi3,
3982         sse2_uavgv8hi3, sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd,
3983         sse2_pshuflw, sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3,
3984         gtv8hi3, gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3,
3985         ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, sse2_lshrv2di3,
3986         ashlv8hi3, ashlv4si3, sse2_ashlv2di3, sse2_ashlti3, sse2_lshrti3,
3987         sse2_unpckhpd, sse2_unpcklpd, sse2_packsswb, sse2_packssdw,
3988         sse2_packuswb, sse2_punpckhbw, sse2_punpckhwd, sse2_punpckhdq,
3989         sse2_punpcklbw, sse2_punpcklwd, sse2_punpckldq, sse2_movapd,
3990         sse2_movupd, sse2_movdqa, sse2_movdqu, sse2_movdq2q, sse2_movq2dq,
3991         sse2_movhpd, sse2_movlpd, sse2_loadsd, sse2_movsd, sse2_storesd,
3992         sse2_shufpd, sse2_clflush, sse2_mfence, mfence_insn, sse2_lfence,
3993         lfence_insn): New patterns.
3994         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Renamed from
3995         sse_andti3_sse2, sse_nandti3_sse2, sse_iorti3_sse2, sse_xorti3_sse2.
3996
3997 Mon Apr 29 17:03:24 CEST 2002  Jan Hubicka  <jh@suse.cz>
3998
3999         * i386.md (sse_mov?fcc*): Revert patch of Mar 14th.
4000
4001 2002-04-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4002
4003         * doc/contrib.texi (Contributors): Add Paolo Carlini and
4004         Janis Johnson.
4005         Update Richard Henderson, Jakub Jelinek, and Mark Mitchell.
4006         Refer to Objective-C instead of ObjC, SPARC instead of sparc,
4007         and CPU instead of cpu.
4008
4009 Mon Apr 29 13:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
4010
4011         * toplev.c (flag_if_conversion, flag_if_conversion2): New static
4012         variables.
4013         (lang_independent_options): Add -fif-conversion, -fif-conversion2
4014         (rest_of_compilation): Do if conversion only when asked for.
4015         (parse_options_and_default_flags): Set new variables to 1 for -O1
4016         * invoke.texi (-fif-conversion, -fif-conversion2): Document.
4017
4018 Mon Apr 29 13:02:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
4019
4020         * i386.c (dbx64_register_map): Fix typo.
4021
4022 Mon Apr 29 12:18:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
4023
4024         * predict.c (real_zero, real_one, real_almost_one, real_br_prob_base,
4025         real_one_half, real_bb_freq_max): New static variables.
4026         (debug_profile_bbauxs): Kill.
4027         (process_note_predictions): Kill unused variable.
4028         (block_info_def, edge_info_def): Use REAL_VALUE_TYPE instead of
4029         volatile double.
4030         (propagate_freq): Use REAL_ARITHMETICS.
4031         (estimate_bb_frequencies): Likevise; init new static variables.
4032         * Makefile.in (predict.o): Add dependency on real.h
4033
4034 2002-04-28  David S. Miller  <davem@redhat.com>
4035
4036         PR target/6500
4037         * config/sparc/sparc.md (prefetch): Emit properly for 32-bit vs.
4038         64-bit TARGET_V9.  Do not use prefetch page, use prefetch for
4039         several {reads,writes} instead.
4040         * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
4041         Define.
4042
4043 2002-04-27  David S. Miller  <davem@redhat.com>
4044
4045         PR target/6494
4046         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Be mindful
4047         of the stack bias.
4048
4049         * config/sparc/linux.h, config/sparc/linux64.h: Don't bother
4050         including signal.h and sys/ucontext.h, not needed.
4051
4052 2002-04-29  Hans-Peter Nilsson  <hp@bitrange.com>
4053
4054         * varasm.c (output_constant_def): Correct test for not calling
4055         ENCODE_SECTION_INFO for INTEGER_CST.
4056
4057 2002-04-29  Neil Booth  <neil@daikokuya.demon.co.uk>
4058
4059         * cppexp.c (lex): Move some code to _cpp_parse_expr, but
4060         keep most cases as function eval_token.
4061         (eval_token): New function.
4062         (_cpp_parse_expr): Read token here for improved diagnostics.
4063         Don't use op_as_text.  Detect bad ':' here.
4064         (reduce): Don't detect bad ':' here.
4065         (op_as_text): Remove.
4066         * cpphash.h (_cpp_test_assertion): Change prototype.
4067         * cpplib.c (_cpp_test_assertion): Change prototype.
4068
4069 2002-04-28  Richard Henderson  <rth@redhat.com>
4070
4071         PR c/5154
4072         * ggc-common.c (ggc_mark_rtx_children_1): Rename from...
4073         (ggc_mark_rtx_children): New.
4074
4075 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
4076
4077         PR target/6496
4078         * config/sparc/sparc.md (call + jump 32-bit peepholes): Disable jump
4079         after call peepholes for UltraSPARC.
4080         (call + jump 64-bit peepholes): Remove.
4081
4082 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4083
4084         PR c/6497
4085         * config/rs6000/rs6000.md (sCC patterns): Remove clobber and use
4086         result as temporary value.
4087
4088 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
4089
4090         PR c++/6396
4091         * toplev.c (rest_of_compilation): Only run regrename and copy
4092         propagation if optimizing.
4093
4094 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
4095
4096         PR optimization/6475
4097         * reload1.c (alter_reg): Only call set_mem_expr if I is home pseudo
4098         register of REGNO_DECL (i).
4099         * Makefile.in (reload1.o): Add $(TREE_H).
4100
4101 2002-04-28  Neil Booth  <neil@daikokuya.demon.co.uk>
4102
4103         * cppexp.c (lex): Update to use state.skip_eval.
4104         (struct op): Remove prio and flags members.
4105         (FLAG_BITS, FLAG_MASK, PRIO_SHIFT, EXTRACT_PRIO, EXTRACT_FLAGS,
4106         SHORT_CIRCUIT, RIGHT_ASSOC, ..._PRIO, op_to_prio): Remove.
4107         (LEFT_ASSOC): New macro.
4108         (optab): New table of operator priorities and flags.
4109         (SHIFT): Update.
4110         (_cpp_parse_expr): Clean up logic.  Return bool.  Use a
4111         malloc-ed parser stack.
4112         (reduce): New; reduce the operator stack.
4113         (_cpp_expand_op_stack): Expand the operator stack as necessary.
4114         * cpphash.h (struct op): Predeclare.
4115         (struct cpp_reader): New members op_stack, op_limit.
4116         (struct lexer_state): New member skip_eval.
4117         (_cpp_parse_expr): Update.
4118         (_cpp_expand_op_stack): New.
4119         * cpplib.c (do_if): Update.
4120         * cppinit.c (cpp_create_reader): Create op stack.
4121         (cpp_destroy): And destroy it.
4122         * cpplib.h (CPP_LAST_CPP_OP): Correct.
4123         (TTYPE_TABLE): Correct.
4124
4125 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4126
4127         PR c/6343
4128         * c-decl.c (duplicate_decls): Call merge_weak.
4129         * c-pragma.c (apply_pragma_weak): Warn about misuse.
4130         * output.h (merge_weak): Prototype merge_weak.
4131         * varasm.c (merge_weak): New function.
4132         (declare_weak): Make sure we don't give an error on VAR_DECLs.
4133         Mark RTL with SYMBOL_REF_WEAK.
4134
4135 2002-04-27  Kurt Garloff <garloff@suse.de>
4136
4137         * tree-inline.c (inlinable_function_p): Improve heuristics
4138         by using a smoother function to cut down allowable inlinable size.
4139         * param.def: Add parameters max-inline-insns-single,
4140         max-inline-slope, min-inline-insns that determine the exact
4141         shape of the above function.
4142         * param.h: Likewise.
4143
4144 2002-04-26  Richard Henderson  <rth@redhat.com>
4145
4146         * c-parse.in (malloced_yyss, malloced_yyvs): New.
4147         (yyoverflow): Re-add.  Set them.
4148         (free_parser_stacks): New.
4149         * c-common.h: Declare it.
4150         * c-lex.c (c_common_parse_file): Call it.
4151
4152 2002-04-26  Richard Henderson  <rth@redhat.com>
4153
4154         * cfgrtl.c (tidy_fallthru_edge): Don't use next_real_insn
4155         for fallthru search.
4156
4157 2002-04-26  Eric Christopher  <echristo@redhat.com>
4158
4159         PR optimization/3700
4160         * config/mips/mips.c (mips_issue_rate): Define.  New function.
4161         (TARGET_SCHED_ISSUE_RATE): Use.
4162
4163 2002-04-25  David S. Miller  <davem@redhat.com>
4164
4165         PR target/6422
4166         * reorg.c (optimize_skip): Do not allow exception causing
4167         instructions to be considered for delay slots.
4168         (fill_simply_delay_slots, fill_slots_from_thread): Likewise.
4169         (relax_delay_slots): Do not try to consider exception causing
4170         instructions as redundant.
4171
4172 2002-04-26  Richard Henderson  <rth@redhat.com>
4173
4174         PR c/5225
4175         * c-typeck.c (build_unary_op) [CONVERT_EXPR]: Invoke non_lvalue.
4176
4177 2002-04-26  Mark Mitchell  <mark@codesourcery.com>
4178
4179         PR bootstrap/6445
4180         * config/i386/i386.md (untyped_call): Return the value in a float
4181         register if TARGET_FLOAT_RETURNS_IN_80387, not just if
4182         TARGET_80387.
4183
4184 2002-04-26  Alexandre Oliva  <aoliva@redhat.com>
4185
4186         * tree.c (tree_int_cst_lt): Compare constants whose types differ
4187         in unsigned-ness correctly.
4188
4189 2002-04-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4190
4191         * pa.h (FUNCTION_OK_FOR_SIBCALL): Don't do sibcalls when using the
4192         portable runtime model.
4193
4194 2002-04-26  Richard Henderson  <rth@redhat.com>
4195
4196         * c-parse.in (yyoverflow): Revert.
4197
4198 2002-04-26  David Edelsohn  <edelsohn@gnu.org>
4199             Richard Henderson  <rth@redhat.com>
4200
4201         * config/rs6000/rs6000.md (sCC pattern): Remove clobber and use
4202         result as temporary value.
4203
4204 2002-04-26  Richard Henderson  <rth@redhat.com>
4205
4206         PR c/3581
4207         * c-common.c (fix_string_type): Split out of ...
4208         (combine_strings): ... here.  Take a varray, not a tree list.
4209         (c_expand_builtin_printf): Use fix_string_type.
4210         * c-common.h: Update decls.
4211         * c-parse.in (string): Remove.  Update all uses to use STRING
4212         instead, and not call combine_strings.
4213         (yylexstring): New.
4214         (_yylex): Use it.
4215         * c-typeck.c (simple_asm_stmt): Don't call combine_strings.
4216         (build_asm_stmt): Likewise.
4217         * objc/objc-act.c (my_build_string): Use fix_string_type.
4218         (build_objc_string_object): Build varray for combine_strings.
4219
4220 2002-04-26  Bo Thorsen  <bo@suse.co.uk>
4221
4222         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Define for
4223         x86-64.
4224
4225 2002-04-26  Neil Booth  <neil@daikokuya.demon.co.uk>
4226
4227         * cppexp.c (CPP_UMINUS, CPP_UPLUS): New.
4228         (HAVE_NO_R_OPERAND): Remove.
4229         (HAVE_VALUE): Remove.
4230         (op_to_prio): Update.
4231         (UNARY): Don't alter flags.
4232         (_cpp_parse_expr): want_value used to indicate whether
4233         a number or unary operator is expected next.  Distinguish
4234         unary and binary +/-.
4235         (op_as_text): Update for unary operators.
4236
4237 2002-04-25  Richard Henderson  <rth@redhat.com>
4238
4239         PR c/2161
4240         * c-parse.in (yyoverflow): New.
4241
4242 2002-04-25  Richard Henderson  <rth@redhat.com>
4243
4244         PR c/2098
4245         * c-common.c (shorten_compare): Simplfy conditions leading to
4246         the generation of a warning.
4247
4248 2002-04-25  Richard Henderson  <rth@redhat.com>
4249
4250         PR c/2035
4251         * expmed.c (extract_bit_field): Fall through to generic code rather
4252         than aborting on subreg special case.
4253
4254 2002-04-25  David S. Miller  <davem@redhat.com>
4255
4256         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Add back check
4257         for DECL being NULL.
4258
4259 2002-04-25  Steve Christiansen  <smc@us.ibm.com>
4260
4261         * doc/md.texi (Machine Constraints): Add IA-64 constraints.
4262
4263 2002-04-25  Eric Botcazou  <ebotcazou@multimania.com>
4264
4265         * c-decl.c (grokdeclarator): Remove outdated ??? note
4266         on invalid declaration of flexible array members.
4267
4268 2002-04-25  Richard Henderson  <rth@redhat.com>
4269
4270         * doc/invoke.texi: Document -gdwarf{,-2} vs debug level.
4271
4272 2002-04-25  Ulrich Weigand  <uweigand@de.ibm.com>
4273
4274         * config/s390/s390.c (s390_emit_epilogue): Always restore registers
4275         needed by the compiler, even if they are used as global regs.
4276
4277 2002-04-25  Matt Hiller  <hiller@redhat.com>
4278
4279         * mips.c (mips_class_max_nregs, mips_register_move_cost): New
4280         functions.
4281         * mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls
4282         of the corresponding functions.
4283         * mips-protos.h (mips_class_max_nregs, mips_register_move_cost):
4284         New prototypes.
4285
4286 2002-04-25  Matt Hiller  <hiller@redhat.com>
4287
4288         * config/mips/mips.h (mips_sw_reg_names): Declare as extern.
4289
4290         (ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro.
4291         (FIRST_PSEUDO_REGISTER): Redefine considering coprocessor
4292         registers, adjust comment accordingly.
4293         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
4294         reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES,
4295         DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries
4296         for coprocessor registers.
4297         (ADDITIONAL_REGISTER_NAMES): Include
4298         ALL_COP_ADDITIONAL_REGISTER_NAMES.
4299
4300         (COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM,
4301         COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM,
4302         COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM,
4303         COP0_REG_P, COP2_REG_P, COP3_REG_P, ALL_COP_REG_P,
4304         COPNUM_AS_CHAR_FROM_REGNUM, COP_REG_CLASS_P): New macros.
4305
4306         (mips_char_to_class): Adjust comment to include coprocessor
4307         constraint letters.
4308
4309         * config/mips/mips.c (coprocessor_operand, coprocessor2_operand):
4310         New functions.
4311         (mips_reg_names, mips_regno_to_class): Include coprocessor
4312         information.
4313         (mips_sw_reg_names): Ditto, make non-static.
4314         (mips_move_1word): Handle moves to and from coprocessor registers.
4315         (mips_move_2words): Handle moves to and from coprocessor
4316         registers.
4317         (mips_class_max_nregs, mips_register_move_cost): Handle
4318         coprocessor register classes.
4319         (override_options): Initialize mips_char_to_class and
4320         mips_hard_regno_mode_ok properly for coprocessor registers.
4321
4322         * config/mips/mips.md (movdi_internal, movdi_internal2,
4323         movsi_internal1, movsi_internal2): Add constraint-sets for
4324         coprocessor registers.
4325         * testsuite/gcc.c-torture/mipscop-1.c: New testcase.
4326         * testsuite/gcc.c-torture/mipscop-1.x: Disable above if target
4327         isn't mips.
4328         * testsuite/gcc.c-torture/mipscop-2.c: New testcase.
4329         * testsuite/gcc.c-torture/mipscop-2.x: Disable above if target
4330         isn't mips.
4331         * testsuite/gcc.c-torture/mipscop-3.c: New testcase.
4332         * testsuite/gcc.c-torture/mipscop-3.x: Disable above if target
4333         isn't mips.
4334         * testsuite/gcc.c-torture/mipscop-4.c: New testcase.
4335         * testsuite/gcc.c-torture/mipscop-4.x: Disable above if target
4336         isn't mips.
4337
4338         * doc/tm.texi: Document feature.
4339
4340 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
4341
4342         * integrate.c (function_attribute_inlinable_p): Simplify.
4343         Check the table pointer is not NULL.
4344
4345 2002-04-25  Steven Bosscher  <S.Bosscher@student.tudelft.nl>
4346
4347         * doc/c-tree.texi: Fix typo in introduction.
4348
4349 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
4350
4351         * c-common.h (c_common_parse_file): Update.
4352         * c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
4353         * c-lex.c (YYDEBUG): Get from c-lex.h.
4354         (c_common_parse_file): Update.
4355         * c-lex.h (YYDEBUG, yydebug): New.
4356         * c-parse.in (YYDEBUG): Get from c-lex.h.
4357         (c_set_yydebug): Remove.
4358         * c-tree.h (c_set_yydebug): Remove.
4359         * langhooks-def.h (lhd_do_nothing_i): New.
4360         (lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove.
4361         (LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update.
4362         * langhooks.c  (lhd_do_nothing_i): New.
4363         (lhd_set_yydebug): Remove.
4364         * langhooks.h (struct lang_hooks): Update.
4365         * toplev.c (set_yydebug): New.
4366         (compile_file): Update call to parse_file hook.
4367         (decode_d_option): Update.
4368 objc:
4369         * objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
4370
4371 Wed Apr 24 23:45:37 2002  J"orn Rennecke <joern.rennecke@superh.com>
4372
4373         * loop.c (load_mems): Don't change the interface of called functions.
4374
4375         * calls.c (expand_call): Take current_function_pretend_args_size
4376         into account when setting argblock for sibcalls.
4377
4378 2002-04-24  Matt Hiller  <hiller@redhat.com>
4379
4380         * cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
4381         * c-lex.c: Ditto.
4382
4383         * cpplex.c (skip_line_comment): Process comment one multibyte
4384         character at a time rather than one char at a time, if
4385         appropriate.
4386         (parse_string): Process string one multibyte character at a time
4387         rather than one char at a time, if appropriate.
4388         * c-lex.c (lex_string): Lex and copy multibyte strings
4389         appropriately.
4390         * cpplib.h (cppchar_t): Change to unsigned.
4391
4392 2002-04-24  Richard Henderson  <rth@redhat.com>
4393
4394         PR c/3467
4395         * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays
4396         for c99.
4397
4398 Wed Apr 24 21:51:54 2002  J"orn Rennecke <joern.rennecke@superh.com>
4399
4400         * sh.c (sh_va_arg): If argument was passed by reference,
4401         dereference the pointer.
4402
4403         * sh.h (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
4404
4405         * sh.md (divsi3_i4_media): Use match_operand for input values
4406         rather than hard registers.
4407         (divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
4408         unnecessarily through hard registers.  Keep copies of pseudo
4409         registers outside of the libcall sequence.
4410
4411         * sh.md (casesi_shift_media): Add modes.
4412
4413         * sh.h (RETURN_IN_MEMORY): Return variable size BLKmode
4414         values in memory.
4415
4416 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
4417
4418         * attribs.c (c_common_attribute_table): Move table and handlers
4419         to c-common.c.
4420         (format_attribute_table, lang_attribute_table,
4421         lang_attribute_common): Remove.
4422         (init_attributes): Replace NULL pointers with pointers to the
4423         empty table.
4424         (handle_packed_attribute, handle_nocommon_attribute,
4425         handle_common_attribute, handle_noreturn_attribute,
4426         handle_noinline_attribute, handle_always_inline_attribute,
4427         handle_used_attribute, handle_unused_attribute,
4428         handle_const_attribute, handle_transparent_union_attribute,
4429         handle_constructor_attribute, handle_destructor_attribute,
4430         handle_mode_attribute, handle_section_attribute,
4431         handle_aligned_attribute, handle_weak_attribute,
4432         handle_alias_attribute, handle_visibility_attribute,
4433         handle_no_instrument_function_attribute, handle_malloc_attribute,
4434         handle_no_limit_stack_attribute, handle_pure_attribute,
4435         handle_deprecated_attribute, handle_vector_size_attribute,
4436         vector_size_helper): Move to c-common.c.
4437         * c-common.c (c_common_attribute_table,
4438         handle_packed_attribute, handle_nocommon_attribute,
4439         handle_common_attribute, handle_noreturn_attribute,
4440         handle_noinline_attribute, handle_always_inline_attribute,
4441         handle_used_attribute, handle_unused_attribute,
4442         handle_const_attribute, handle_transparent_union_attribute,
4443         handle_constructor_attribute, handle_destructor_attribute,
4444         handle_mode_attribute, handle_section_attribute,
4445         handle_aligned_attribute, handle_weak_attribute,
4446         handle_alias_attribute, handle_visibility_attribute,
4447         handle_no_instrument_function_attribute, handle_malloc_attribute,
4448         handle_no_limit_stack_attribute, handle_pure_attribute,
4449         handle_deprecated_attribute, handle_vector_size_attribute,
4450         vector_size_helper): Move from attribs.c.
4451         * c-common.h (c_common_attribute_table,
4452         c_common_format_attribute_table): New.
4453         * c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
4454         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
4455         * langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
4456         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New.
4457         (LANG_HOOKS_INITIALIZER): Update.
4458         * langhooks.h (struct lang_hooks): 3 new attribute hooks.
4459         * target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL.
4460         * target.h: Update comment.
4461         * tree.c (default_target_attribute_table): Remove.
4462         * tree.h (default_target_attribute_table, format_attribute_table,
4463         lang_attribute_table, lang_attribute_common): Remove.
4464 objc:
4465         * objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
4466         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
4467
4468 2002-04-24  Jason Merrill  <jason@redhat.com>
4469
4470         * dwarf2.h (enum dwarf_attribute): Add DW_AT_GNU_vector.
4471         * dwarf2out.c (dwarf_attr_name): Support it.
4472         (gen_array_type_die): Emit it.
4473         (lookup_type_die): No special handling for VECTOR_TYPE.
4474         (gen_type_die): Hand VECTOR_TYPE off to gen_array_type_die.
4475
4476 2002-04-24  Richard Henderson  <rth@redhat.com>
4477
4478         * config/mips/mips.md (movdi_usd): Renumber.
4479
4480 2002-04-24  David S. Miller  <davem@redhat.com>
4481
4482         PR target/6420
4483         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Return false if
4484         32-bit Sparc and current_function_returns_struct is true.
4485
4486 Wed Apr 24 13:48:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
4487
4488         * loop.c (canonicalize_condition): Use gen_int_mode.
4489
4490 2002-04-24  Aldy Hernandez  <aldyh@redhat.com>
4491
4492         * config/rs6000/altivec.h: Cleanup file.  Add non individual
4493         variants.
4494         (vec_vaddubm): New.
4495         (vec_vadduhm): New.
4496         (vec_vadduwm): New.
4497         (vec_vaddfp): New.
4498         (vec_vaddcuw): New.
4499         (vec_vaddubs): New.
4500         (vec_vaddsbs): New.
4501         (vec_vadduhs): New.
4502         (vec_vadduws): New.
4503         (vec_vaddsws): New.
4504         (vec_vand): New.
4505         (vec_vandc): New.
4506         (vec_vavgub): New.
4507         (vec_vavgsb): New.
4508         (vec_vavguh): New.
4509         (vec_vavgsh): New.
4510         (vec_vavguw): New.
4511         (vec_vavgsw): New.
4512         (vec_vrfip): New.
4513         (vec_vcmpbfp): New.
4514         (vec_vcmpequb): New.
4515         (vec_vcmpequh): New.
4516         (vec_vcmpequw): New.
4517         (vec_vcmpeqfp): New.
4518         (vec_vcmpgefp): New.
4519         (vec_vcmpgtub): New.
4520         (vec_vcmpgtsb): New.
4521         (vec_vcmpgtuh): New.
4522         (vec_vcmpgtsh): New.
4523         (vec_vcmpgtuw): New.
4524         (vec_vcmpgtsw): New.
4525         (vec_vcmpgtfp): New.
4526         (vec_vcmpgefp): New.
4527         (vec_vcfux): New.
4528         (vec_vcfsx): New.
4529         (vec_vctsxs): New.
4530         (vec_vctuxs): New.
4531         (vec_vexptefp): New.
4532         (vec_vrfim): New.
4533         (vec_lvx): New.
4534         (vec_lvebx): New.
4535         (vec_lvehx): New.
4536         (vec_lde): Add vector float variant.
4537         (vec_lvewx): New.
4538         (vec_lvxl): New.
4539         (vec_vlogefp): New.
4540         (vec_vmaddfp): New.
4541         (vec_vmhaddshs): New.
4542         (vec_vmaxub): New.
4543         (vec_vmaxsb): New.
4544         (vec_vmaxuh): New.
4545         (vec_vmaxsh): New.
4546         (vec_vmaxuw): New.
4547         (vec_vmaxsw): New.
4548         (vec_vmaxsw): New.
4549         (vec_vmaxfp): New.
4550         (vec_vmrghb): New.
4551         (vec_vmrghh): New.
4552         (vec_vmrghw): New.
4553         (vec_vmrglb): New.
4554         (vec_vmrglh): New.
4555         (vec_vmrglw): New.
4556         (vec_vminub): New.
4557         (vec_vminsb): New.
4558         (vec_vminuh): New.
4559         (vec_vminsh): New.
4560         (vec_vminuw): New.
4561         (vec_vminsw): New.
4562         (vec_vminfp): New.
4563         (vec_vmladduhm): New.
4564         (vec_vmhraddshs): New.
4565         (vec_msumubm): New.
4566         (vec_vmsummbm): New.
4567         (vec_vmsumuhm): New.
4568         (vec_vmsumshm): New.
4569         (vec_vmsumuhs): New.
4570         (vec_vmsumshs): New.
4571         (vec_vmuleub): New.
4572         (vec_vmulesb): New.
4573         (vec_vmuleuh): New.
4574         (vec_vmulesh): New.
4575         (vec_vmuloub): New.
4576         (vec_mulosb): New.
4577         (vec_vmulouh): New.
4578         (vec_vmulosh): New.
4579         (vec_vnmsubfp): New.
4580         (vec_vnor): New.
4581         (vec_vor): New.
4582         (vec_vpkuhum): New.
4583         (vec_vpkuwum): New.
4584         (vec_vpkpx): New.
4585         (vec_vpkuhus): New.
4586         (vec_vpkshss): New.
4587         (vec_vpkuwus): New.
4588         (vec_vpkswss): New.
4589         (vec_vpkshus): New.
4590         (vec_vpkswus): New.
4591         (vec_vperm): New.
4592         (vec_vrefp): New.
4593         (vec_vrlb): New.
4594         (vec_vrlh): New.
4595         (vec_vrlw): New.
4596         (vec_vrfin): New.
4597         (vec_vrsqrtefp): New.
4598         (vec_vsel): New.
4599         (vec_vslb): New.
4600         (vec_vslh): New.
4601         (vec_vslw): New.
4602         (vec_vsldoi): New.
4603         (vec_vsl): New.
4604         (vec_vslo): New.
4605         (vec_vspltb): New.
4606         (vec_vsplth): New.
4607         (vec_vspltw): New.
4608         (vec_vspltisb): New.
4609         (vec_vspltish): New.
4610         (vec_vspltisw): New.
4611         (vec_vsrb): New.
4612         (vec_vsrh): New.
4613         (vec_vsrw): New.
4614         (vec_vsrab): New.
4615         (vec_vsrah): New.
4616         (vec_vsraw): New.
4617         (vec_vsr): New.
4618         (vec_vsro): New.
4619         (vec_stvx): New.
4620         (vec_stvebx): New.
4621         (vec_stvehx): New.
4622         (vec_stvewx): New.
4623         (vec_stvxl): New.
4624         (vec_vsububm): New.
4625         (vec_vsubuhm): New.
4626         (vec_vsubuwm): New.
4627         (vec_vsubfp): New.
4628         (vec_vsubcuw): New.
4629         (vec_vsububs): New.
4630         (vec_vsubsbs): New.
4631         (vec_vsubuhs): New.
4632         (vec_vsubshs): New.
4633         (vec_vsubuws): New.
4634         (vec_vsubsws): New.
4635         (vec_vsum4ubs): New.
4636         (vec_vsum4sbs): New.
4637         (vec_vsum4shs): New.
4638         (vec_vsum2sws): New.
4639         (vec_vsumsws): New.
4640         (vec_vrfiz): New.
4641         (vec_vupkhsb): New.
4642         (vec_vupkhpx): New.
4643         (vec_vupkhsh): New.
4644         (vec_vupklsb): New.
4645         (vec_vupklpx): New.
4646         (vec_vupklsh): New.
4647         (vec_vxor): New.
4648
4649 2002-04-23  Eric Botcazou  <ebotcazou@multimania.com>
4650
4651         PR c/5430
4652         * fold-const.c (split_tree): Add MINUS_LITP parameter; separate
4653         added literals from substracted literals.
4654         (associate_trees): Don't convert MINUS_EXPR into PLUS_EXPR.
4655         (fold) [associate]: Preserve MINUS_EXPR if needed.
4656
4657 2002-04-23  Zack Weinberg  <zack@codesourcery.com>
4658
4659         * doc/install.texi: Clarify which versions of alpha*-dec-osf*
4660         are obsoleted.
4661
4662 2002-04-23  Tom Tromey  <tromey@redhat.com>
4663
4664         * gcc.c: Added --resource.  For PR java/6314.
4665
4666 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
4667
4668         * cp/g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
4669         * config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of
4670         these libraries.
4671
4672 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
4673
4674         * config/freebsd.h(OBJECT_FORMAT_ELF): Define.
4675
4676 Tue Apr 23 14:24:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
4677
4678         * i386.c (ix86_output_addr_diff_elt): Avoid x86_64 binutils bug
4679         workaround.
4680         (ix86_expand_int_movcc): Avoid x86_64 compilation chrash.
4681         (ix86_expand_clrstr): Fix typo.
4682         * loop.c (gen_load_of_final_value): New.
4683         (loop_givs_rescan, strength_reduce, check_dbra_loop):
4684         Use it.
4685
4686 2002-04-23  Roger Sayle  <roger@eyesopen.com>
4687
4688         * builtins.c (builtin_memset_gen_str): New function.
4689         (expand_builtin_memset): Optimize the case of constant length, but
4690         unknown value.
4691
4692 2002-04-23  Aldy Hernandez  <aldyh@redhat.com>
4693
4694         * config/rs6000/altivec.h (vec_step): Remove extraneous
4695         parentheses.
4696         (vec_ctu): Cast return.
4697
4698 2002-04-23  Alan Modra  <amodra@bigpond.net.au>
4699
4700         PR target/6413
4701         * function.h: (struct function): Add profile_label_no field.
4702         (current_function_profile_label_no): Define.
4703         * function.c: (profile_label_no): New static var.
4704         (expand_function_start): Increment it, and copy to
4705         current_function_profile_label_no.
4706         * output.h (profile_label_no): Delete.
4707         * final.c (profile_label_no): Delete.
4708         (profile_function): Use current_function_profile_label_no.
4709         (final_end_function): Don't increment profile_label_no here.
4710         * config/i386/i386.c (ix86_osf_output_function_prologue): Replace
4711         profile_label_no with current_function_profile_label_no.
4712         * config/pa/pa.c (current_function_number): Delete.
4713         (pa_output_function_prologue): Don't output profile label here.
4714         (hppa_profile_hook): Use label_no param rather than
4715         current_function_number.
4716         (FUNC_BEGIN_PROLOG_LABEL): Move to ..
4717         * config/pa/pa.h: .. here.
4718         (FUNCTION_PROFILER): Output profile label here.
4719
4720 2002-04-22  Eric Christopher  <echristo@redhat.com>
4721
4722         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert
4723         patch of 2002-04-09 due to binutils issues.
4724         (FUNCTION_ARG_REGNO_P): Ensure even numbered float register.
4725
4726 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
4727
4728         * config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm'
4729         constraint to 'o' for m=r and r=m alternatives.
4730         ("*movv8hi_internal1"): Same.
4731         ("*movv16qi_internal1"): Same.
4732         ("*movv4sf_internal1"): Same.
4733
4734 2002-04-22  Janis Johnson  <janis187@us.ibm.com>
4735
4736         * rtl.h (RTX_FLAG): New macro.
4737         * emit-rtl.c (copy_most_rtx): Use macros to access rtx flags.
4738         * final.c (alter_subreg): Use macro to access rtx flag.
4739         * integrate.c (copy_rtx_and_substitute): Use new access macro.
4740         * print-rtl.c (print_rtx): Use new access macro.
4741
4742         * cse.c (insert): Check rtx code before accessing flag.
4743
4744         * genattrtab.c (ATTR_IND_SIMPLIFIED_P, ATTR_CURR_SIMPLIFIED_P,
4745         ATTR_PERMANENT_P, ATTR_EQ_ATTR_P): New.
4746         (attr_hash_add_string, attr_rtx_1, attr_copy_rtx, check_attr_test,
4747         convert_const_symbol_ref, make_canonical, make_alternative_compare,
4748         evaluate_eq_attr, attr_rtx_cost, simplify_test_exp_in_temp,
4749         simplify_test_exp, optimize_attrs, simplify_by_exploding,
4750         find_and_mark_used_attributes, unmark_used_attributes,
4751         add_values_to_cover, simplify_with_current_value,
4752         simplify_with_current_value_aux, clear_struct_flag, walk_attr_value,
4753         copy_rtx_unchanging, main): Use new access macros.
4754
4755 2002-04-22  Tom Rix  <trix@redhat.com>
4756
4757         * expmed.c (init_expmed): Generate shifted constant once.
4758
4759 2002-04-22  Zack Weinberg  <zack@codesourcery.com>
4760
4761         * c-lex.c (lex_charconst): Call convert to get constant in
4762         proper type; don't just smash the type field.
4763         Fixes PR c/6300.
4764
4765         * config.gcc: Add list of obsolete configurations.  Disallow
4766         building these without --enable-obsolete.
4767         * doc/install.texi: Document --enable-obsolete and obsoletion
4768         policy.  Mention obsoletion of individual targets in
4769         appropriate places.
4770
4771 2002-04-22  Richard Henderson  <rth@redhat.com>
4772
4773         * config/sparc/sol2-bi.h (ASM_DEBUG_SPEC): New.
4774
4775 2002-04-22  Mark Mitchell  <mark@codesourcery.com>
4776
4777         PR f/6138.
4778         * function.c (fixup_memory_subreg): Add promoted_mode parameter.
4779         (walk_fixup_memory_subreg): Likewise.
4780         (fixup_var_refs_insn): Adjust accordingly.
4781         (fixup_var_refs_1): Likewise.
4782
4783 2002-04-22  Ulrich Weigand  <uweigand@de.ibm.com>
4784
4785         * config/s390/linux.h: (LIBPATH_SPEC, LIBPATH_ARCH31_SPEC,
4786         LIBPATH_ARCH64_SPEC): Define.
4787         (EXTRA_SPECS): Add libpath, libpath_arch31, libpath_arch64.
4788         (STARTFILE_SPEC, ENDFILE_SPEC): Define; use libpath.
4789         (LINK_ARCH31_SPEC): Add libpath_arch31 to search path.
4790         (LINK_ARCH64_SPEC): Add libpath_arch64 to search path.
4791
4792 2002-04-22      Joel Sherrill <joel@OARcorp.com>
4793
4794         * gthr-rtems.h: Correct prototypes to remove warnings.
4795
4796 2002-04-22  Richard Henderson  <rth@redhat.com>
4797
4798         PR c/6344
4799         * alias.c (canon_true_dependence): Special case (mem:blk (scratch)).
4800
4801         * gcse.c (free_insn_expr_list_list): New.
4802         (clear_modify_mem_tables): Use it.  Fix bit set usage.
4803         (canon_list_insert): Use EXPR_LISTs for expressions.
4804         (record_last_mem_set_info): Factor BLOCK_NUM (insn).
4805
4806 2002-04-22  Neil Booth  <neil@daikokuya.demon.co.uk>
4807
4808         * cppfiles.c (_cpp_pop_file_buffer): Return void.  Move
4809         file change and include code to _cpp_pop_buffer.
4810         * cpphash.h (struct pending_option): Predeclare.
4811         (struct cpp_reader): New member next_include_file.
4812         (_cpp_pop_file_buffer): Update.
4813         (_cpp_push_next_buffer): Update, rename.
4814         * cppinit.c (cpp_destroy): Free include chain and pending here.
4815         (cpp_finish_options): Simplify.
4816         (_cpp_push_next_buffer): Rename and clean up.
4817         * cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer.
4818         Clarify.
4819         * cppmacro.c (cpp_scan_nooutput): Set return_at_eof here.
4820
4821 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
4822
4823         * config/rs6000/altivec.h (vec_xor): Add variant for both args
4824         being vector signed int.
4825         (vec_andc): Same.
4826         (vec_xor): Add variant for both args being vector signed char.
4827         Remove redundant variant.
4828         (vec_andc): Same.
4829
4830 2002-04-21  David S. Miller  <davem@redhat.com>
4831
4832         * config/sparc/sparc.md (set then compare DI mode peephole2): Fix
4833         compare mode in output RTL.
4834
4835 2002-04-22  David Edelsohn  <edelsohn@gnu.org>
4836
4837         * config/rs6000/rs6000.c (rs6000_override_options): Correct
4838         style and formatting of previous patch.
4839
4840 2002-04-22  Alan Modra  <amodra@bigpond.net.au>
4841
4842         * config/rs6000/rs6000.c (rs6000_override_options): Always clear
4843         flag_pic for ABI_AIX.
4844
4845 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
4846
4847         * cppexp.c (struct op, parse_number): Replace U_CHAR with uchar.
4848         * cppfiles.c (read_include_file): Similarly.
4849         * cpphash.h (DSC, U_CHAR, ustrcmp, ustrncmp, ustrlen,
4850         uxstrdup ustrchr, ufputs): Similarly.
4851         * cppinit.c (TRIGRAPH_MAP, cpp_destroy): Similarly.
4852         * cpplex.c (parse_slow, unescaped_terminator_p, save_comment,
4853         cpp_ideq, parse_identifier, parse_number): Similarly.
4854         * cpplib.c (struct directive, dequote_string, D, run_directive,
4855         cpp_push_buffer): Similarly.
4856         * cppmacro.c (new_string_token, builtin_macro, cpp_quote_string,
4857         _cpp_create_definition, check_trad_stringification,
4858         cpp_macro_definition): Similarly.
4859
4860 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
4861
4862         * cppmacro.c (funlike_invocation_p): Don't step back
4863         over CPP_EOF.
4864
4865 2002-04-21  David Edelsohn  <edelsohn@gnu.org>
4866
4867         * config/rs6000/rs6000.c (output_profile_hook): Do not increment
4868         labelno.
4869
4870 2002-04-20  Joseph S. Myers  <jsm28@cam.ac.uk>
4871
4872         * doc/invoke.texi: Remove Chill references.
4873         * doc/gcc.texi: Update last modified date.
4874
4875 2002-04-20  Kazu Hirata  <kazu@hxi.com>
4876
4877         * config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary
4878         push and pop.  Replace add.l with add.w.
4879
4880 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
4881
4882         * config/h8300/lib1funcs.asm (___mulsi3): Use hardware
4883         multiply instructions for H8/300H case.
4884
4885 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
4886
4887         * config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2):
4888         Bum three instructions from each routine.
4889
4890 2002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>
4891
4892         * Makefile.in: Update.
4893         * decl.c (push_c_function_context, pop_c_function_context,
4894         mark_c_function_context): Rename for consistency.
4895         * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
4896         * c-tree.h (push_c_function_context, pop_c_function_context,
4897         mark_c_function_context): Rename for consistency.
4898         * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
4899         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
4900         * function.c (init_lang_status, save_lang_status,
4901         restore_lang_status, mark_lang_status, free_lang_status):
4902         Move to langhooks.h.
4903         (push_function_context_to, pop_function_context_from,
4904         free_after_parsing, prepare_function_start, ggc_mark_struct_function):
4905         Update.
4906         * function.h (init_lang_status, save_lang_status,
4907         restore_lang_status, mark_lang_status, free_lang_status):
4908         Move to langhooks.h.
4909         * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
4910         LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
4911         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
4912         LANG_HOOKS_FUNCTION_INITIALIZER): New.
4913         (LANG_HOOKS_INITIALIZER): Update.
4914         (lhd_do_nothing_f): New.
4915         * langhooks.h (struct lang_hooks_for_functions): New.
4916         (struct lang_hooks): New hooks.
4917         * langhooks.c (lhd_do_nothing_f): New.
4918 objc:
4919         * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
4920         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
4921
4922 2002-04-19  David S. Miller  <davem@redhat.com>
4923
4924         * config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
4925         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise.
4926
4927 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
4928
4929         PR optimization/3756
4930         * config/i386/i386.c (ix86_expand_int_movcc): Optimize
4931         x = ((int) y < 0) ? cst1 : cst2.
4932
4933 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
4934
4935         PR c/6358
4936         * function.c: Reapply patch for c/6358.
4937         (expand_function_end): Copy decl_rtl's mode, not
4938         current_function_return_rtx mode.
4939
4940 2002-04-19  Joel Sherrill  <joel@OARcorp.com>
4941
4942         * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
4943         targets.
4944
4945 2002-04-19  Tom Tromey  <tromey@redhat.com>
4946
4947         * doc/install.texi (Specific): Update status of Solaris 2.8.
4948         For PR libgcj/6158.
4949
4950 2002-04-19  Andreas Schwab  <schwab@suse.de>
4951
4952         * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
4953         (PUT_REAL): Restore old definition.
4954
4955 2002-04-19  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
4956             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4957
4958         * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
4959         binutils 2.11.2 and higher generate smaller binaries than Sun's
4960         native tools.
4961
4962 2002-04-19  Mark Mitchell  <mark@codesourcery.com>
4963
4964         PR c++/6352
4965         * toplev.c (rest_of_compilation): Do not defer functions for which
4966         TREE_SYMBOL_REFERENCED has already been set.
4967
4968 Fri Apr 19 15:53:03 CEST 2002  Jan Hubicka  <jh@suse.cz>
4969
4970         * i386.md (movsi_1, movhi_1): Force reload to use more flexible
4971         alternative.
4972
4973 2002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>
4974
4975         * builtins.c: Include langhooks.h.
4976         (lang_type_promotes_to): Remove.
4977         (expand_builtin_va_arg): Use new hook.
4978         * c-common.c (c_common_nodes_and_builtins): Don't set hook.
4979         (simple_type_promotes_to): Move to c-typeck.c.
4980         * c-common.h (simple_type_promotes_to): Remove.
4981         * c-decl.c (duplicate_decls, grokdeclarator): Update.
4982         * c-format.c: Include langhooks.h.
4983         (check_format_types): Update.
4984         * c-tree.h (c_type_promotes_to): New.
4985         * c-typeck.c (c_type_promotes_to): Move from c-common.c.
4986         (type_lists_compatible_p): Update.
4987         * langhooks-def.h (lhd_type_promotes_to): New.
4988         (LANG_HOOKS_TYPE_PROMOTES_TO): New.
4989         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
4990         * langhooks.c (lhd_type_promotes_to): New.
4991         * langhooks.h (struct lang_hooks_for_types): New hook.
4992         * tree.h (lang_type_promotes_to): Remove.
4993 objc:
4994         * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
4995
4996 2002-04-18  Richard Henderson  <rth@redhat.com>
4997
4998         * function.c: Revert patch for c/6358.
4999
5000 2002-04-18  Richard Henderson  <rth@redhat.com>
5001
5002         * ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN
5003         blocks.  Handle multiple references to the TRAP block.  Handle
5004         non-adjacent THEN and OTHER blocks.
5005
5006 2002-04-18  Richard Henderson  <rth@redhat.com>
5007
5008         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
5009         crash with no type for by-mode libcalls.
5010
5011         * config/ia64/ia64.md (conditional_trap): Fix predicate polarity.
5012
5013 2002-04-18  Bob Wilson  <bob.wilson@acm.org>
5014
5015         * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
5016         __xtensa_nonlocal_goto): Use a syscall instructions to flush
5017         the register windows.
5018
5019 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
5020
5021         * real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
5022         appropriate.  Document need for extended precision even when
5023         MAX_LONG_DOUBLE_TYPE_SIZE is smaller.  Define REAL_WIDTH here,
5024         based on REAL_VALUE_TYPE_SIZE.  Use REAL_WIDTH to size
5025         REAL_VALUE_TYPE.  Define CONST_DOUBLE_FORMAT here.  Use #error
5026         instead of relying on later syntax error when REAL_WIDTH > 5.
5027         * real.c: Define NE based only on whether or not we have a
5028         full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
5029         Require sizeof(REAL_VALUE_TYPE) == 2*NE.  Unconditionally
5030         define GET_REAL and PUT_REAL as simple memcpy operations; no
5031         need to byteswap or round.
5032         Use #error instead of #ifdef-ing out the entire file, for
5033         prompt error detection.
5034
5035         * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.
5036
5037 2002-04-18  David S. Miller  <davem@redhat.com>
5038
5039         * config/sparc/sparc.h (BRANCH_COST): Define.
5040
5041         * fold-const.c (BRANCH_COST): Don't provide default here, expr.h
5042         does it.
5043
5044 2002-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
5045
5046         * flow.c (update_life_info): Ignore return value of cleanup_cfg.
5047         Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in
5048         propagate_block calls after relaxation loop using new variable
5049         stabilized_prop_flags.
5050
5051 2002-04-18  Richard Henderson  <rth@redhat.com>
5052
5053         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
5054         (ia64_va_arg): Expect variable sized types by reference.
5055         * config/ia64/ia64-protos.h: Update.
5056         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
5057         ia64_function_arg_pass_by_reference.
5058
5059 2002-04-18  Richard Henderson  <rth@redhat.com>
5060
5061         * ifcvt.c: Include except.h.
5062         (block_has_only_trap): Break out from find_cond_trap.
5063         (find_cond_trap): Use it.  Always delete the trap block.
5064         (merge_if_block): Allow then block null.  Be less simplistic about
5065         what insns can end a block.
5066         * Makefile.in (ifcvt.o): Depend on except.h.
5067
5068         * config/ia64/ia64.md (trap, conditional_trap): New.
5069
5070 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
5071
5072         PR c/6358
5073         * function.c (assign_parms): Assign hard current_function_return_rtx
5074         register here...
5075         (expand_function_end): ...not here.
5076
5077 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
5078
5079         * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
5080         * c-tree.h (c_incomplete_type_error): New.
5081         * c-typeck.c (require_complete_type, build_component_ref): Update.
5082         (incomplete_type_error): Rename.
5083         * langhooks-def.h (lhd_incomplete_type_error): New.
5084         (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
5085         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
5086         * langhooks.c (lhd_incomplete_type_error): New.
5087         * langhooks.h (struct lang_hooks_for_types): New hook.
5088         * tree.c (size_in_bytes): Use new hook.
5089         * tree.h (incomplete_type_error): Remove.
5090 objc:
5091         * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
5092
5093 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
5094
5095         * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
5096         TARGET_FLOAT_FORMAT blocks.
5097
5098 2002-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5099
5100         * doc/install.texi (Downloading the source): Do not mention Chill
5101         any longer, but mention Ada.
5102         (Configuration): Do not mention Chill any longer.
5103
5104 2002-04-18  Hans-Peter Nilsson  <hp@axis.com>
5105
5106         * config/cris/cris.h (TARGET_VERSION): Remove local version number.
5107
5108 Thu Apr 18 17:14:08 CEST 2002  Jan Hubicka  <jh@suse.cz>
5109
5110         * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
5111         in last patch.
5112
5113 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
5114
5115         * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
5116         instead of unsigned_type.
5117
5118 Thu Apr 18 15:49:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
5119
5120         * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
5121         * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
5122         later.
5123
5124 2002-04-18  Bernd Schmidt  <bernds@redhat.com>
5125
5126         * attribs.c (vector_type_node_list): New static variable.
5127         (handle_vector_size_attribute): Use it to avoid generating a
5128         new type node each time we are called.
5129
5130         * combine.c (subst): Avoid trying to make a vector mode subreg of
5131         an integer constant.
5132         (gen_lowpart_for_combine): Likewise.
5133
5134 2002-04-18  Roger Sayle  <roger@eyesopen.com>
5135             Jakub Jelinek  <jakub@redhat.com>
5136
5137         * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
5138         for integer constant c (if x has unsigned type or sign bit is not
5139         set in c).  This folds the zero/sign extension into the bit-wise and
5140         operation.
5141
5142 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
5143
5144         PR middle-end/6205
5145         * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
5146         otherwise xorps.
5147
5148 2002-04-17  NIIBE Yutaka  <gniibe@m17n.org>
5149
5150         * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.
5151
5152 2002-04-17  Nick Clifton  <nickc@cambridge.redhat.com>
5153
5154         * gcc.c (read_specs): Detect and fail if an attempt is made to
5155         rename a spec string to an already existing string.
5156
5157 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
5158
5159         * config/s390/s390.c (legitimize_pic_address): Do not generate
5160         illegal address constant without CONST.
5161
5162 2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5163
5164         * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
5165         * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
5166
5167 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
5168
5169         PR optimization/6305
5170         * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
5171         to make sure previous reloads are taken into account.  Generate
5172         better code if one operand is an in-range immediate constant.
5173
5174 2002-04-16  Andrew Haley  <aph@cambridge.redhat.com>
5175
5176         * doc/install.texi (Building): libgcj requires GNU make.
5177
5178 2002-04-17  Jakub Jelinek  <jakub@redhat.com>
5179
5180         PR bootstrap/6315
5181         * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
5182         even if hard quad and register is not floating.
5183         (movtf reg<-mem split): Disallow splitting if hard quad and
5184         register is floating.
5185         (movtf mem<-reg split): Likewise.
5186         * config/sparc/sparc.c (fp_register_operand): New predicate.
5187         * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.
5188
5189 2002-04-17  Zack Weinberg  <zack@codesourcery.com>
5190
5191         * Makefile.in (PROTO_OBJS): Add cppdefault.o.
5192         (protoize.o): Take $(PREPROCESSOR_DEFINES) off command line.
5193         (unprotoize.o): Ditto.  Build from protoize.c.  Define
5194         UNPROTOIZE on command line.
5195         * protoize.c: Include cppdefault.h.  Delete include_defaults.
5196         (in_system_include_dir): Use cpp_include_defaults (defined in
5197         cppdefault.o).
5198         * unprotoize.c: Delete file.
5199
5200 2002-04-17  Aldy Hernandez  <aldyh@redhat.com>
5201
5202         * config/rs6000/altivec.h (vec_ld): Add array variants.
5203         (vec_lde): Same.
5204         (vec_ldl): Same.
5205
5206 2002-04-17  Alan Matsuoka  <alanm@redhat.com>
5207             Aldy Hernandez <aldyh@redhat.com>
5208
5209         * config/rs6000/altivec.h: Define __ALTIVEC__.
5210         (bool): New.
5211         (__pixel): New.
5212         (pixel): New.
5213         (vec_cfux): New.
5214         (vec_vmaddfp): New.
5215         (vec_vsldoi): New.
5216         Add parentheses to all macro arguments.
5217
5218 2002-04-16  Richard Henderson  <rth@redhat.com>
5219
5220         PR c++/6320
5221         * except.c (remove_eh_handler): Insert inner regions at beginning
5222         of sibling chain.  Refactor expressions.
5223
5224 2002-04-16  Richard Henderson  <rth@redhat.com>
5225
5226         * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New.
5227         * config/sparc/sol2-gas-bi.h: New file.
5228         * config.gcc (sparc*-solaris): Add it as needed.
5229         * configure.in (AS_SPARC64_FLAG): Remove check.
5230         * config.in, configure: Regenerate.
5231
5232         * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.
5233
5234 2002-04-16  Richard Henderson  <rth@redhat.com>
5235
5236         * config/mips/mips.c (override_options): Don't override N32 for
5237         a 64-bit ISA.
5238
5239         PR 6202
5240         * config/mips/mips.md (can_delay): Split out of existing define_delays.
5241         (HILO_delay): Set can_delay false.
5242
5243 2002-04-16  Dale Johannesen <dalej@apple.com>
5244
5245         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
5246         instruction addresses.
5247         (rs6000_output_function_epilogue): Likewise.
5248
5249 2002-04-16  Paolo Carlini  <pcarlini@unitus.it>
5250
5251         * c-parse.in (poplevel, compstmt_start,
5252         compstmt_primary_start): Add ending ';', in accordance
5253         with POSIX.
5254
5255 2002-04-16  Richard Henderson  <rth@redhat.com>
5256
5257         * config.gcc (sparcv9-solaris): Configure for 64-bit default.
5258         Adjust tm_file order to get TARGET_DEFAULT set properly.
5259         (sparc-solaris): Configure 2.[78] for 64-bit multilibs.
5260         * doc/install.texi (sparc-solaris): Update.
5261
5262 2002-04-16  Dale Johannesen <dalej@apple.com>
5263
5264         * config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of
5265         comparison operands do not match each other or if modes of
5266         conditions do not match result.
5267
5268 2002-04-16  Hartmut Penner <hpenner@de.ibm.com>
5269
5270         PR target/6305
5271         * config/s390/s390.md (mulsidi3): Set both subregs of the
5272         multiword register.
5273
5274 2002-04-16  Aldy Hernandez  <aldyh@redhat.com>
5275
5276         * config/rs6000/altivec.h (vec_addc): Type check.
5277
5278 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
5279
5280         PR middle-end/6279
5281         * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.
5282
5283         * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.
5284
5285 2002-04-15  Richard Henderson  <rth@redhat.com>
5286
5287         * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
5288         call_really_used_regs too.
5289
5290 2002-04-15  Richard Henderson  <rth@redhat.com>
5291
5292         * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.
5293
5294 2002-04-15  David S. Miller  <davem@redhat.com>
5295
5296         * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
5297         as being CLOBBERed.
5298
5299 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
5300
5301         PR c/6290
5302         * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
5303         CONST_VECTOR is { 0, ... 0 }.
5304
5305 2002-04-15  Loren J. Rittle  <ljrittle@acm.org>
5306
5307         * doc/install.texi (Installing GCC: Configuration): Clarify
5308         the only supported ways to configure gcc.
5309
5310 2002-04-15  Roland McGrath  <roland@frob.com>
5311
5312         * config.gcc (alpha*-*-gnu*): New target configuration.
5313         * config/alpha/gnu.h: New file for it.
5314         * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.
5315
5316 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
5317
5318         * c-common.h (STMT_EXPR_NO_SCOPE): New macro.
5319         * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
5320         * tree.h (expand_start_stmt_expr): Update prototype.
5321         * stmt.c (expand_start_stmt_expr): Add has_scope parameter.
5322         * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
5323         on the STMT_EXPR created for the inline function.
5324
5325 2002-04-15  Richard Henderson  <rth@redhat.com>
5326
5327         * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
5328         config/i386/linux-aout.h, config/i386/linux-oldld.h,
5329         config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
5330         config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
5331         config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
5332         config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
5333         config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
5334         Define __gnu_linux__, not gnu_linux.
5335         * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.
5336
5337 2002-04-15  Mark Mitchell  <mark@codesourcery.com>
5338
5339         Remove Chill front end.
5340         * gcc.c (default_compilers): Remove Chill entries.
5341         * ch: Remove directory.
5342         * doc/frontends.texi: Remove information about Chill.
5343         * doc/sourcebuild.texi: Likewise.
5344         * doc/standards.texi: Likewise.
5345
5346 2002-04-15  Douglas B Rupp  <rupp@gnat.com>
5347
5348         * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
5349         (LONGLONG_STANDALONE): Define.
5350
5351 2002-04-15  David S. Miller  <davem@redhat.com>
5352
5353         * config/sparc/sparc.c (sparc_emit_float_lib_cmp):
5354         Call emit_library_call with LCT_NORMAL.
5355         (sparc_initialize_trampoline): Use LCT_foo instead of
5356         magic constant in emit_library_call invocations.
5357         (sparc64_initialize_trampoline): Likewise.
5358         (sparc_profile_hook): Likewise.
5359         * config/sparc/sparc.md: Likewise.
5360
5361         * config/sparc/sparc.c (sparc_extra_constraint_check):
5362         Fix type of argument 'c'.
5363         * config/sparc/sparc-protos.h (sparc_extra_constraint_check):
5364         Likewise.
5365
5366 2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
5367
5368         * diagnostic.h (output_buffer_state): Redefine.
5369         (output_format_decoder): New macro.
5370         (output_prefixing_rule): Likewise.
5371         (output_line_cutoff): Likewise.
5372         (diagnostic_format_decoder): Adjust.
5373         (diagnostic_prefixing_rule): Likewise.
5374         (diagnostic_line_cutoff): Likewise.
5375         (diagnostic_state): Likewise.
5376         (diagnostic_kind_count): Likewise.
5377         (diagnostic_buffer): Now a macro.
5378
5379         * diagnostic.c (diagnostic_buffer): Remove definition.
5380         (output_is_line_wrapping): Adjust.
5381         (set_real_maximum_length): Likewise.
5382         (output_set_maximum_length): Likewise.
5383         (init_output_buffer): Likewise.
5384         (lhd_print_error_function): Likewise.
5385         (output_do_verbatim): Likewise.
5386
5387 2002-04-14  Neil Booth  <neil@daikokuya.demon.co.uk>
5388
5389         * cpperror.c (print_location): Don't print include chain
5390         if line == 0.
5391         (cpp_begin_message): Update to use DL_ macros.
5392         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
5393         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
5394         cpp_notice, cpp_notice_from_errno): Remove.
5395         (cpp_error, cpp_error_with_line): Update to take a diagnostic
5396         level.
5397         (cpp_errno): New.
5398         * cppexp.c (CPP_ICE): Remove.
5399         (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
5400         lex, integer_overflow, _cpp_parse_expr): Update.
5401         * cppfiles.c (read_include_file, find_include_file,
5402         handle_missing_header, _cpp_read_file, remap_filename): Update.
5403         * cpphash.h (enum error_type): Remove.
5404         (_cpp_begin_message): Update.
5405         * cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
5406         cpp_handle_option, cpp_post_options): Update.
5407         * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
5408         skip_whitespace, parse_identifier, parse_slow, parse_string,
5409         _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
5410         cpp_interpret_charconst): Update.
5411         * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
5412         lex_macro_node, do_undef, glue_header_name, parse_include,
5413         do_include_common, read_flag, do_line, do_linemarker, do_ident,
5414         cpp_register_pragma, do_pragma_once, do_pragma_system_header,
5415         do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
5416         do_elif, do_endif, parse_answer, parse_assertion, do_assert,
5417         _cpp_pop_buffer, do_diagnostic): Update.
5418         * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
5419         DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
5420         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
5421         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
5422         cpp_notice, cpp_notice_from_errno): Remove.
5423         (cpp_error, cpp_error_with_line): Update to take a diagnostic
5424         level.
5425         (cpp_errno): New.
5426         * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
5427         collect_args, enter_macro_context, save_parameter, parse_params,
5428         _cpp_create_definition, check_trad_stringification,
5429         cpp_macro_definition): Update.
5430         * cppmain.c (cpp_preprocess_file): Update.
5431         * fix-header.c (read_scan_file): Update.
5432
5433 2002-04-14  Andreas Schwab  <schwab@suse.de>
5434
5435         * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.
5436
5437 2002-04-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
5438
5439         * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.
5440
5441 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
5442
5443         * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
5444         not gnu_hurd.
5445
5446 2002-04-13  Hans-Peter Nilsson  <hp@axis.com>
5447
5448         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.
5449
5450 2002-04-13      Joel Sherrill <joel@OARcorp.com>
5451
5452         * config/sparc/t-elf: Enable v8 multilibs.  Impacts
5453         sparc-elf and sparc-rtems targets.
5454
5455 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
5456
5457         * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
5458         defined, and __gnu_hurd__ wherever __GNU__ is defined.
5459         * arm/linux-elf.h: Likewise.
5460         * cris/aout.h: Likewise.
5461         * cris/linux.h: Likewise.
5462         * i370/linux.h: Likewise.
5463         * i386/gnu.h: Likewise.
5464         * i386/linux-aout.h: Likewise.
5465         * i386/linux-oldld.h: Likewise.
5466         * i386/linux.h: Likewise.
5467         * i386/linux64.h: Likewise.
5468         * ia64/linux.h: Likewise.
5469         * m68k/linux-aout.h: Likewise.
5470         * m68k/linux.h: Likewise.
5471         * mips/linux.h: Likewise.
5472         * pa/pa-linux.h: Likewise.
5473         * pj/linux.h: Likewise.
5474         * rs6000/sysv4.h: Likewise.
5475         * s390/linux.h: Likewise.
5476         * sh/linux.h: Likewise.
5477         * sparc/linux-aout.h: Likewise.
5478         * sparc/linux.h: Likewise.
5479         * sparc/linux64.h: Likewise.
5480         * xtensa/linux.h: Likewise.
5481
5482 2002-04-13  Richard Sandiford  <rsandifo@redhat.com>
5483
5484         * stmt.c (check_unique_operand_names): Expect operand names to
5485         be strings rather than identifiers.  Use simple_cst_equal to
5486         compare them.
5487         (resolve_operand_name_1): Make same identifier to string change here.
5488         * c-parse.in (asm_operand): Convert a named operand into a string.
5489         * cp/parse.y (asm_operand): Likewise.
5490
5491 2002-04-13  Andreas Schwab  <schwab@suse.de>
5492
5493         * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
5494
5495 2002-04-12  Mark Mitchell  <mark@codesourcery.com>
5496
5497         Revert these changes:
5498
5499         2002-04-06  Mark Mitchell  <mark@codesourcery.com>
5500
5501         PR c++/5571
5502         * stor-layout.c (layout_decl): Reset the RTL for the decl.
5503
5504 2002-04-12  Richard Henderson  <rth@redhat.com>
5505
5506         * config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
5507         (sparc*-*-solaris): Clean up header files.
5508         * configure.in (AS_SPARC64_FLAG): Error out if can't find it
5509         and plan on generating 64-bit code.
5510         * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
5511         * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
5512         * config/sparc/sol2-sld-64.h: Rename ...
5513         * config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
5514         for AS_SPARC64_FLAG not defined.
5515         * config/sparc/sol2-gld-bi.h: New.
5516         * config/sparc/sol2-sld.h: Remove.
5517         * config/sparc/sol26-sld.h: New.
5518         * config/sparc/sol2.h: Tidy comments.
5519         * doc/install.texi: Document sparc-solaris configury changes.
5520
5521 2002-04-12  Richard Henderson  <rth@redhat.com>
5522
5523         * recog.c (offsettable_address_p): Match the logic in adjust_address.
5524
5525         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
5526         in 64-bit mode only.  Use only for 32-bit or MEDLOW.
5527
5528 2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5529
5530         * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
5531
5532 Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)
5533
5534         * pa.c (pa_can_combine_p): Call extract_insn before calling
5535         constrain_operands.
5536
5537 2002-04-12  Douglas B Rupp  <rupp@gnat.com>
5538
5539         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
5540         (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
5541         (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
5542         (CPP_PREDEFINES): Handle __declspec.
5543         * config/i386/t-interix (USER_H): Remove.
5544
5545 2002-04-12  DJ Delorie  <dj@redhat.com>
5546
5547         * integrate.c (compare_blocks): Make comparisons safe for when
5548         sizeof(int) < sizeof(char *).
5549         (find_block): Likewise.
5550
5551 2002-04-12  Jan Hubicka  <jh@suse.cz>
5552             David Edelsohn  <edelsohn@gnu.org>
5553
5554         * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
5555         registers.
5556         (symbol_ref_operand): New.
5557         * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
5558         * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.
5559
5560 2002-04-12  Andreas Schwab  <schwab@suse.de>
5561
5562         * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
5563         * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
5564         overrides the definition in config/svr4.h.
5565
5566 2002-04-12      Eric Norum <eric.norum@usask.ca>
5567
5568         * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
5569         config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
5570         config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
5571         config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
5572         config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
5573         config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
5574         config/v850/rtems.h (*-rtems*): Cleanup pass to move common
5575         definitions to config/rtems.h and make the targets more similar.
5576
5577 Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5578
5579         * expr.c (expand_assigment): Remove duplicate conversions #ifdef
5580         POINTERS_EXTEND_UNSIGNED.
5581         (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
5582         (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
5583
5584         * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
5585         not specified.
5586
5587 Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>
5588
5589         * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
5590         depends on TARGET_SHMEDIA, not TARGET_SH5.
5591
5592 2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>
5593
5594         * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
5595         For paradoxical (subreg VAR), replace VAR, don't try the subreg.
5596
5597 Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
5598
5599         * sh.c (broken_move): Constant 0. / 1. load is OK if there is
5600         no r0 clobber.
5601
5602 2002-04-12  Andreas Schwab  <schwab@suse.de>
5603
5604         * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
5605
5606 2002-04-12  Richard Henderson  <rth@redhat.com>
5607
5608         PR bootstrap/4191
5609         * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
5610
5611         * flow.c (mark_used_reg): Manage reg_cond_dead properly for
5612         modes spanning multiple hard regs.
5613
5614         * recog.c (peephole2_optimize): Rebuild jump labels as needed.
5615
5616 2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5617
5618         * pa.c (pa_output_function_prologue): Don't accumulate the total
5619         number of code bytes when using TARGET_64BIT, or gas, SOM and not
5620         the portable runtime.
5621         (output_deferred_plabels): Handle 64bit plabels.
5622         (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
5623         generating pic code using the GAS assembler for object formats that
5624         are not SOM (ie., ELF32 and ELF64).
5625         (output_millicode_call): Check attribute type if attribute length is 28.
5626         Likewise use $PIC_pcrel$0.  Only call get_attr_length and
5627         dbr_sequence_length once.
5628         (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
5629         dbr_sequence_length once.
5630         * pa.h (TARGET_SOM): Define if not defined.
5631         * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
5632         with GAS and not SOM.
5633         (jump, call_internal_reg, call_value_internal_reg): Likewise.
5634         * som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.
5635
5636 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
5637
5638         * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
5639         (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
5640         (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
5641         DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
5642         elfos.h and dbxelf.h values are fine now.
5643         * config/i386/freebsd.h, config/alpha/freebsd.h
5644         (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
5645
5646 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
5647
5648         * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
5649         or set Acpu or Amachine.  Reformat.
5650         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
5651         define.
5652         (LINK_SPEC): Do not need to undef.
5653         * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
5654         * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
5655         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
5656         define.
5657         * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
5658         (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
5659         (LINK_SPEC): Do not need to undef.
5660         (DONT_USE_BUILTIN_SETJMP): Do not define.
5661         * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
5662         (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
5663         (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
5664         Remove trailing spaces.
5665         * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
5666         __ELF__, or set Acpu or Amachine.  Reformat.
5667         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
5668         define.
5669
5670 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
5671
5672         * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
5673         all other *-*-freebsd* targets.
5674
5675 2002-04-11  Richard Henderson  <rth@redhat.com>
5676
5677         * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
5678
5679 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
5680
5681         * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
5682         Include {cpu}/{cpu}.h thru tm_file.
5683         (alpha*-*-linux*ecoff): Remove target.
5684         * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
5685         (LINK_SPEC): Remove, is not OS independent.
5686         * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
5687         (LINK_SPEC): Do not need to #undef any longer.
5688         * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
5689         any longer.
5690         * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
5691         __ELF__.
5692         (LINK_SPEC): Moved here from alpha/elf.h.
5693         * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
5694         SUB_CPP_PREDEFINES.
5695         * config/alpha/linux-ecoff.h: Remove.
5696         * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
5697         (CPP_SPEC): Define _POSIX_SOURCE as needed.
5698         (CPP_SUBTARGET_SPEC): Do not define.
5699         (LINK_SPEC): Do not need to #undef any longer.
5700         * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
5701         * config/alpha/vms.h: Likewise.
5702
5703 2002-04-11  Richard Sandiford  <rsandifo@redhat.com>
5704
5705         * doc/extend.texi: Remove old claim that typedefs cannot have
5706         an alignment attribute.
5707
5708 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
5709
5710         PR optimization/6177
5711         * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
5712         bitpos is 0 and bitsize CONCAT size.
5713
5714 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
5715
5716         PR c/6223
5717         * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
5718
5719 2002-04-10  David O'Brien  <obrien@FreeBSD.org>
5720
5721         * config/alpha/freebsd.h: Minor reformatting.
5722         (CPP_SPEC): Define ELF and add cpp_subtarget.
5723         (ASM_SPEC): No longer needed.
5724
5725 2002-04-11  Richard Henderson  <rth@redhat.com>
5726
5727         * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
5728         (movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
5729         (dimode mem/zero splitter): New.
5730
5731 2002-04-11  Hans-Peter Nilsson  <hp@axis.com>
5732
5733         * config/cris/cris.c (cris_override_options): Tweak error message
5734         for PIC not implemented.
5735
5736         * config/cris/cris.h: Tweak comments related to parameter-passing.
5737
5738         * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
5739
5740 2002-04-10  Richard Henderson  <rth@redhat.com>
5741
5742         * except.c (add_ehl_entry): Allow duplicates after landing pad
5743         creation.
5744
5745 2002-04-10  David Edelsohn  <edelsohn@gnu.org>
5746
5747         * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
5748
5749 2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>
5750
5751         * c-decl.c (c_init_decl_processing): Move generation of
5752         decls for g77_integer_type_node and friends from here ...
5753         * c-common.c (c_common_nodes_and_builtins): ... to here.
5754
5755 2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
5756
5757         * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
5758         is only used as frame pointer when frame_pointer_needed is true.
5759
5760 2002-04-10  Richard Earnshaw  <rearnsha@arm.com>
5761
5762         PR target/817
5763         * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
5764         for the fact that the pool entry uses two words.
5765         (movdf_hard_insn): Similarly.  Also, ADR instruction can span
5766         1k bytes.
5767         (movdf_soft_insn): Similarly.
5768         (movxf_hard_insn): Adjust neg_pool_range attribute to allow
5769         for the fact that the pool entry uses three words.
5770
5771 2002-04-10  Richard Sandiford  <rsandifo@redhat.com>
5772
5773         * config/mips/mips.c (mips_va_arg): When using the struct version
5774         of the EABI va_list, allow arguments in the register save area to
5775         take up less room than a stack argument.
5776
5777 2002-04-10  Richard Henderson  <rth@redhat.com>
5778
5779         * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
5780         if EXPAND_INITIALIZER.
5781
5782 2002-04-09  Richard Henderson  <rth@redhat.com>
5783
5784         * config/alpha/alpha.md (movdi_er_maybe_g): New.
5785         * config/alpha/alpha.c (alpha_expand_mov): Use it.
5786
5787 2002-04-10  Alan Modra  <amodra@bigpond.net.au>
5788
5789         PR optimization/6233
5790         * rtlanal.c (pure_call_p): New function.
5791         * rtl.h (pure_call_p): Declare.
5792         * loop.c (prescan_loop): Use it to set has_nonconst_call.
5793         * gcse.c (store_killed_in_insn): Use pure_call_p here too.
5794
5795 2002-04-09  Eric Christopher  <echristo@redhat.com>
5796
5797         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
5798         information to .comm directive.
5799
5800 2002-04-09  Richard Henderson  <rth@redhat.com>
5801
5802         PR c/5078
5803         * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
5804
5805 2002-04-09  Richard Henderson  <rth@redhat.com>
5806
5807         * basic-block.h (flow_delete_block_noexpunge): Declare.
5808         (expunge_block_nocompact): Declare.
5809         * cfg.c (expunge_block_nocompact): Split out from ...
5810         (expunge_block): ... here.
5811         * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
5812         (flow_delete_block_noexpunge): Split out from ...
5813         (flow_delete_block): ... here.
5814         * cfgcleanup.c (delete_unreachable_blocks): Compact while
5815         removing dead blocks.
5816         * except.c (exception_handler_labels): Remove.
5817         (exception_handler_label_map): New.
5818         (struct eh_region): Add aka member.
5819         (mark_ehl_map_entry, mark_ehl_map, free_region): New.
5820         (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
5821         (for_each_eh_label, for_each_eh_label_1): New.
5822         (init_eh): Register exception_handler_label_map.
5823         (free_eh_status): Use free_region.
5824         (find_exception_handler_labels): Use the map, not the list.
5825         (remove_exception_handler_label): Likewise.
5826         (maybe_remove_eh_handler): Likewise.
5827         (remove_eh_handler): Use the region aka bitmap.
5828         * except.h (exception_handler_labels): Remove.
5829         (for_each_eh_label): Declare.
5830         * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
5831         * loop.c (invalidate_loops_containing_label): New.
5832         (find_and_verify_loops): Use it.  Use for_each_eh_label.
5833         * sched-rgn.c (is_cfg_nonregular): Use
5834         current_function_has_exception_handlers.
5835
5836 2002-04-09  Richard Henderson  <rth@redhat.com>
5837
5838         * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
5839         sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
5840         Do not return changed status.
5841         (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
5842         sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
5843         New functions that do return changed status.
5844         * sbitmap.h: Update decls.
5845         * gcse.c, lcm.c: Use _cg functions as needed.
5846
5847 Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
5848
5849         * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
5850         (sh64-*-elf*, sh-*-rtemself*): Likewise.
5851         * config/sh/embed_bb.c: New file.
5852         * config/sh/embed-elf.h: New file.
5853         * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
5854         if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
5855         (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
5856         __PTRDIFF_TYPE__ .
5857         (SUBTARGET_CPP_PTR_SPEC): Don't define.
5858         (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
5859         Add subtarget_asm_endian_spec.
5860         (ASM_SPEC): Use subtarget_asm_endian_spec.
5861         (SUBTARGET_ASM_ENDIAN_SPEC): Define.
5862         (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
5863         (WCHAR_UNSIGNED): Define.
5864         (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
5865         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
5866         (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
5867         Fix value.
5868         * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
5869         (sh_adjust_cost): Likewise.
5870         sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
5871         __PTRDIFF_TYPE__ .
5872         (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
5873         (WCHAR_TYPE_SIZE): Likewise.
5874         (ASM_SPEC): Use subtarget_asm_endian_spec.
5875         (SH_ELF_WCHAR_TYPE): #undef/ #define.
5876         (MAX_WCHAR_TYPE_SIZE): Don't #undef.
5877         * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
5878         (MAX_WCHAR_TYPE_SIZE): Don't #define .
5879         (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
5880         (USER_LABEL_PREFIX): Don't #undef /#define .
5881         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
5882         * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
5883         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
5884         (ASM_SPEC): Likewise.
5885         (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
5886         (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
5887         * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
5888         (LIB2FUNCS_EXTRA): Define.
5889         * t-sh64 (LIB2FUNCS_EXTRA): Define.
5890         * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
5891         (LIB1ASMFUNCS_CACHE): Define.
5892         (LIB2FUNCS_EXTRA): Redefine empty.
5893
5894 2002-04-08  Richard Henderson  <rth@redhat.com>
5895
5896         * reorg.c (get_branch_condition): Use reversed_comparison_code.
5897
5898 2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5899
5900         * config/m68hc11/larith.asm (__map_data_section): Fix condition
5901         and optimize for size.
5902         (__do_global_ctors): Fix pointer comparison.
5903         (__do_global_dtors): Likewise.
5904
5905 2002-04-09  David S. Miller  <davem@redhat.com>
5906
5907         * config/sparc/sparc.c (sparc_extra_constraint_check): New
5908         function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
5909         allow reloading pseudos.
5910         * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
5911         * config/sparc/sparc-protos.h: Declare it.
5912
5913         * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
5914         unsigned comparison warning.
5915         (output_restore_regs): Mark leaf_function as unused.
5916
5917 Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5918
5919         * expr.c (is_aligning_offset): New function.
5920         (expand_expr, case COMPONENT_EXPR): Call it.
5921
5922 2002-04-08  David S. Miller  <davem@redhat.com>
5923
5924         PR target/6082
5925         * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
5926
5927         Make init_priority work on Sparc when using GNU ld.
5928         * config/sparc/linux.h, config/sparc/linux64.h,
5929         config/sparc/netbsd-elf.h, config/sparc/freebsd.h
5930         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
5931         * config/sparc/sol2-gld.h: New file to do the same.
5932         * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
5933         sparc/sol2-gld.h to tm_file.
5934
5935         PR optimization/4328
5936         * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
5937         * doc/md.texi: Document it.
5938         * config/sparc/sparc.md (movdi_insn_sp64_novis,
5939         movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
5940         movdf_insn_v9only_vis, movdf_insn_sp64_novis,
5941         movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
5942         * config/sparc/sparc.c (mem_min_alignment): Fix comment.
5943
5944 2002-04-08  Andreas Jaeger  <aj@suse.de>
5945
5946         * stmt.c (expand_asm_operands): Revert last patch from Richard
5947         Henderson.
5948
5949 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5950
5951         * doc/contrib.texi (Contributors): Add John David Anglin and Loren
5952         J. Rittle (the latter also to Testers).  Update David O'Brien's entry.
5953
5954 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5955
5956         * doc/contrib.texi (Contributors): Add David O'Brien.
5957
5958 2002-04-08  Alan Modra  <amodra@bigpond.net.au>
5959
5960         * configure.in (auto-build.h): Use target_alias and build_alias
5961         when running configure.
5962         (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
5963         (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
5964         * configure: Regenerate.
5965
5966 2002-04-07  David S. Miller  <davem@redhat.com>
5967
5968         * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
5969
5970 2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5971
5972         PR 5933
5973         * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
5974         generating 32-bit pic code.
5975
5976 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
5977
5978         * cppinit.c (cpp_create_reader): Initialize
5979         discard_comments_in_macro_exp.
5980         (COMMAND_LINE_OPTIONS): Add "-CC" option.
5981         (cpp_handle_option): Handle "-CC" option.
5982         * cpplex.c (save_comment): If saving a C++ comment in
5983         a directive, convert it to a C comment.
5984         (_cpp_lex_direct): Pass second comment start character to
5985         save_comment to indicate comment type.
5986         * cpplib.c (_cpp_handle_directive): If processing
5987         a "#define" directive and discard_comments_in_macro_exp
5988         is false,  re-enable saving of comments.
5989         (lex_macro_node): If discard_comments_in_macro_exp is false,
5990         discard any comments before the macro identifier.
5991         * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
5992         member.
5993         * cppmacro.c (cpp_get_token): If expanding a macro while
5994         processing a directive, discard any comments we might encounter.
5995         (parse_params): If discard_comments_in_macro_exp is false,
5996         ignore comments in the macro parameter list.
5997         * gcc.c (cpp_unique_options): Add "-CC" option.
5998         (option_map): Map "--comments-in-macros" to "-CC".
5999         * doc/cppopts.texi: Document "-CC" option.
6000         * f/lang-specs.h: Add "-CC" option.
6001         * testsuite/gcc.dg/cpp/maccom1.c: New test.
6002         * testsuite/gcc.dg/cpp/maccom2.c: New test.
6003         * testsuite/gcc.dg/cpp/maccom3.c: New test.
6004         * testsuite/gcc.dg/cpp/maccom4.c: New test.
6005         * testsuite/gcc.dg/cpp/maccom5.c: New test.
6006         * testsuite/gcc.dg/cpp/maccom6.c: New test.
6007
6008 2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6009
6010         PR middle-end/6180
6011         * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
6012
6013 2002-04-06  Mark Mitchell  <mark@codesourcery.com>
6014
6015         PR c++/5571
6016         * stor-layout.c (layout_decl): Reset the RTL for the decl.
6017
6018         PR opt/5120
6019         * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
6020         RTX_UNCHANGING_P for the functions arguments when a tail call
6021         is made.
6022
6023 2002-04-06  Jason Merrill  <jason@redhat.com>
6024
6025         * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
6026         (parse_options_and_default_flags): Set them appropriately.
6027         * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
6028
6029 2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>
6030
6031         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
6032         here.
6033
6034         * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
6035         semicolon.
6036
6037         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
6038         types come in by-reference.  Fix typo in comment.
6039
6040 2002-04-05  David S. Miller  <davem@redhat.com>
6041
6042         * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
6043         * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
6044         sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
6045         {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
6046
6047 2002-04-05  David S. Miller  <davem@redhat.com>
6048
6049         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
6050         are not going to emit return instructions, emit at least a nop
6051         for the sake of sane backtraces.
6052
6053 2002-04-05  Richard Henderson  <rth@redhat.com>
6054
6055         * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
6056
6057 2002-04-05  Jakub Jeilnek  <jakub@redhat.com>
6058
6059         * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
6060
6061 2002-04-05  Alexandre Oliva  <aoliva@redhat.com>
6062
6063         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
6064         ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
6065         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
6066
6067 2002-04-05  Andreas Schwab  <schwab@suse.de>
6068
6069         * c-convert.c: Include c-common.h.
6070         * Makefile.in (c-convert.o): Updated.
6071
6072 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
6073
6074         * mklibgcc.in: Use separate libgcc.map for each multilib.
6075         * Makefile.in (distclean): Don't remove libgcc.map here.
6076
6077 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
6078
6079         * Makefile.in (s-mlib): Handle --disable-multilib by separate
6080         genmultilib invocation.
6081
6082 2002-04-04  Richard Sandiford  <rsandifo@redhat.com>
6083
6084         * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
6085         to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
6086         to num_gprs for symmetry.
6087         * config/mips/mips.c: Adjust accordingly.
6088
6089 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
6090
6091         * c-common.c (truthvalue_conversion): Rename, update.
6092         * c-common.h (c_common_truthvalue_conversion): New.
6093         * c-convert.c (convert): Update.
6094         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
6095         * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
6096         * c-typeck.c (build_binary_op, build_unary_op,
6097         build_conditional_expr): Update.
6098         * fold-const.c (constant_boolean_node, fold): Use langhook.
6099         * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
6100         * langhooks.h (struct lang_hooks): New hook.
6101         * stmt.c (expand_decl_cleanup): Use langhook.
6102         * tree.h (truthvalue_conversion): Remove.
6103 objc:
6104         * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
6105
6106 2002-04-05  Alan Modra  <amodra@bigpond.net.au>
6107
6108         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
6109         Add rules to make null object file.
6110
6111 2002-04-04  Jim Blandy  <jimb@redhat.com>
6112
6113         * cppmacro.c (cpp_macro_definition): Do not emit spaces after
6114         macro formal parameter names.
6115
6116 2002-04-04  David S. Miller  <davem@redhat.com>
6117
6118         * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
6119
6120 2002-04-04  Richard Henderson  <rth@redhat.com>
6121
6122         PR middle-end/5099
6123         * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
6124         Support copies into and out of memory.  Don't accept allows_reg
6125         and allows_mem as gospel.
6126
6127 2002-04-04  Richard Henderson  <rth@redhat.com>
6128
6129         PR opt/6165
6130         * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
6131         (write_dependence_p): Likewise.
6132
6133 2002-04-04  Richard Henderson  <rth@redhat.com>
6134
6135         * predict.c (estimate_bb_frequencies): Do frequency calculation
6136         with a volatile temporary.
6137
6138 2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>
6139
6140         * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
6141
6142 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
6143
6144         PR c++/6119
6145         * final.c (final_start_function): Don't bump profile_label_no here...
6146         (final_end_function): ...but here.
6147
6148 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
6149
6150         * config/sparc/sparc.md (pic): New attribute.
6151         (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
6152         into stack slots.
6153         (split after do_builtin_setjmp_setup): New.
6154
6155 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
6156
6157         PR fortran/6106
6158         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
6159         change.
6160
6161 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
6162
6163         * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
6164         UNITS_PER_WORD for zero sized aggregates.
6165
6166 2002-04-03  David S. Miller  <davem@redhat.com>
6167
6168         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
6169         one-character spec for this, just use %(link_gcc_c_sequence).
6170
6171 2002-04-03  David S. Miller  <davem@redhat.com>
6172
6173         * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
6174         handling.
6175
6176 2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6177
6178         * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
6179         (DWARF_FRAME_RETURN_COLUMN): Move.
6180         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
6181         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
6182         * pa.c (except.h, predict.h): Include.
6183         (FRP): Delete.
6184         (store_reg_modify, set_reg_plus_d): Revise prototypes.
6185         (output_ascii): Add cast.
6186         (store_reg_modify): Revise to add frame notes.
6187         (set_reg_plus_d): Likewise.
6188         (compute_frame_size): Include space for eh data registers in frame if
6189         the current function calls eh_return.
6190         (hppa_expand_prologue):  Ensure register %r2 is saved if the current
6191         function calls eh_return.  Save eh data registers if the current
6192         function calls eh_return.  Fix code to add frame notes.  Emit
6193         blockage to prevent insns with frame notes being scheduled in the
6194         delay slot of calls.
6195         (hppa_expand_epilogue): Restore eh data registers and do final stack
6196         adjustment if the current function calls eh_return.  Don't add frame
6197         notes.
6198         (output_call): Revise for change in length of call insn.  Don't do
6199         return pointer adjustment for an unconditional jump in the delay slot
6200         of a call when using frame notes.
6201         * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
6202         (EH_RETURN_HANDLER_RTX): Use saved value on stack.
6203         (ARG_POINTER_CFA_OFFSET): Define.
6204         * pa.md (return_external_pic): New pattern.
6205         (prologue): Correct formatting.  Use return_external_pic if current
6206         function calls eh_return.
6207         (call_internal_symref, call_value_internal_symref,
6208         sibcall_internal_symref, sibcall_value_internal_symref): Change default
6209         lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
6210         respectively.
6211         (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
6212
6213         * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
6214         list of targets to check using "nop" insn.
6215         * configure: Rebuilt.
6216
6217 2002-04-04  Alan Modra  <amodra@bigpond.net.au>
6218
6219         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
6220
6221 2002-04-03  David S. Miller  <davem@redhat.com>
6222
6223         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
6224         library sequence passed to the linker.
6225         (LINK_COMMAND_SPEC): Use it.
6226         * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
6227         a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
6228         * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
6229
6230 2002-04-03  Jason Merrill  <jason@redhat.com>
6231
6232         * except.c (struct eh_status): Remove protect_list.
6233         (begin_protect_partials, end_protect_partials): Remove.
6234         (add_partial_entry): Remove.
6235         * except.h: Remove prototypes.
6236
6237         * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
6238         expand_decl_cleanup_eh.
6239
6240         PR c++/5636
6241         * tree.h (CLEANUP_EH_ONLY): New macro.
6242         * stmt.c (expand_decl_cleanup_eh): New fn.
6243         (expand_cleanups): Check CLEANUP_EH_ONLY.
6244         * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
6245         Use expand_decl_cleanup_eh.
6246         (expand_stmt): Adjust.
6247         * c-common.h: Adjust prototype.
6248
6249 2002-04-04  Hans-Peter Nilsson  <hp@axis.com>
6250
6251         * config/cris/cris.c (cris_target_asm_function_prologue): Cast
6252         uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
6253         (cris_target_asm_function_epilogue): Ditto.
6254         (cris_initial_frame_pointer_offset): Ditto.
6255         (cris_simple_epilogue): Ditto.
6256         (cris_expand_builtin_va_arg): Variable-size types come in
6257         by-reference.
6258
6259 2002-04-03  David S. Miller  <davem@redhat.com>
6260
6261         * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
6262         little-endian.
6263         (set_fast_math): Correct 'fsr' type.
6264
6265 2002-04-03  Richard Henderson  <rth@redhat.com>
6266
6267         PR opt/3569
6268         * langhooks.h (lang_hooks.decls.warn_unused_global): New.
6269         * toplev.c (check_global_declarations): Use it.
6270         * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
6271         (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
6272         (LANG_HOOKS_DECLS): Add it.
6273         * langhooks.c (lhd_warn_unused_global_decl): New.
6274         * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
6275         * c-objc-common.c (c_warn_unused_global_decl): New.
6276         * c-tree.h (c_warn_unused_global_decl): Declare.
6277         * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
6278
6279 2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
6280
6281         * langhooks-def.h (lhd_set_decl_assembler_name,
6282         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
6283         (LANG_HOOKS_INITIALIZER): Update.
6284         * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
6285         * langhooks.h (struct lang_hooks): New hook.
6286         * tree.c (set_decl_assembler_name): Move to langhooks.c.
6287         (lang_set_decl_assembler_name): Remove.
6288         (init_obstacks): Don't set hook.
6289         (decl_assembler_name): New function.
6290         * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
6291         (decl_assembler_name): New.
6292         (lang_set_decl_assembler_name): Remove.
6293
6294 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
6295
6296         * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
6297         works properly with .hidden symbols.
6298         * configure: Rebuilt.
6299         * config.in: Rebuilt.
6300         * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
6301         DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
6302         properly with .hidden symbols.
6303
6304 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
6305
6306         PR middle-end/6102
6307         * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
6308         USE argument.
6309
6310 2002-04-03  Richard Henderson  <rth@redhat.com>
6311
6312         PR opt/4120
6313         * sched-rgn.c (sets_likely_spilled): New.
6314         (sets_likely_spilled_1): New.
6315         (add_branch_dependences): Use it.
6316
6317 2002-04-02  Richard Henderson  <rth@redhat.com>
6318
6319         PR opt/4311
6320         * loop.h (LOOP_FIRST_PASS): New.
6321         * loop.c (strength_reduce): Mind it when deciding to unroll.
6322         * toplev.c (rest_of_compilation): Set it.
6323
6324 2002-04-02  David S. Miller  <davem@redhat.com>
6325
6326         * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
6327         mems_ok_for_ldd_peep when the order of the loads being examined
6328         is reversed.
6329         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
6330         existing comment to increase comprehension of this situation.
6331
6332 2002-04-02  Zack Weinberg  <zack@codesourcery.com>
6333
6334         * config/sh/sh.md: Don't use union real_extract.
6335
6336 2002-04-02  Richard Henderson  <rth@redhat.com>
6337
6338         * libgcc2.c (__bb_exit_func): Revert 03-31 change.
6339
6340 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
6341
6342         * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
6343         i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
6344         i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
6345         i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
6346         i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
6347         i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
6348         i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
6349         i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
6350         i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
6351         i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
6352         i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
6353         i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
6354         i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
6355         i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
6356         Include as many configury headers via tm_file as possible.  This
6357         includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
6358         * config/openbsd-oldgas.h: New file.
6359         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
6360         config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
6361         config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
6362         config/i386/i386-coff.h, config/i386/i386-interix.h,
6363         config/i386/iscdbx.h, config/i386/linux-aout.h,
6364         config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
6365         config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
6366         config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
6367         config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
6368         config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
6369         config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
6370         config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
6371         config/i386/vxi386.h: Do not directly include configury headers.
6372         * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
6373         Directly include configury headers that are no longer automatically
6374         included by the above headers.
6375         * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
6376         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
6377         config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
6378         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
6379         config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
6380         config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
6381         config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
6382         (TARGET_VERSION): Define.
6383         * config/i386/beos-elf.h, config/i386/freebsd.h,
6384         config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
6385         config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
6386         config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
6387         config/i386/sco5.h, config/i386/sysv4.h
6388         (TARGET_VERSION): Do not need to protect.
6389         * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
6390         * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
6391         config/i386/freebsd-aout.h, config/i386/i386-aout.h,
6392         config/i386/i386-interix.h, config/i386/linux-aout.h,
6393         config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
6394         config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
6395         (YES_UNDERSCORES): Do not define - not needed.
6396         * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
6397         ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
6398         USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
6399         * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
6400         (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
6401         USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
6402         * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
6403         * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
6404
6405 2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
6406             Richard Henderson  <rth@redhat.com>
6407
6408         PR c/5484
6409         * function.c (assign_temp): Accept either type or decl argument.
6410         Detect variables whose size is too large to fit into an integer.
6411         * stmt.c (expand_decl): Pass the decl, not the type.
6412
6413 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
6414
6415         * protoize.c: Match include directory usage with cppdefault.c.
6416
6417 2002-04-03  Jeffrey A Law  (law@redhat.com)
6418             Hans-Peter Nilsson  <hp@bitrange.com>
6419
6420         * combine.c (simplify_comparison): Avoid narrowing a comparison
6421         with a paradoxical subreg when doing so would drop signficant bits.
6422
6423 2002-04-02  Steve Ellcey  <sje@cup.hp.com>
6424
6425         * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
6426         if POINTERS_EXTEND_UNSIGNED is defined.
6427
6428 2002-04-02  Richard Henderson  <rth@redhat.com>
6429
6430         PR opt/3967
6431         * local-alloc.c (contains_replace_regs): LO_SUM may contain
6432         replace regs.
6433
6434 2002-04-02  Richard Henderson  <rth@redhat.com>
6435
6436         * doc/standards.texi: Document required freestanding libc entry points.
6437
6438 2002-04-02  Alan Modra  <amodra@bigpond.net.au>
6439
6440         * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
6441         associated splitter.  Remove MQ constraint.
6442         (ctrdi_internal4): Correct CCmode clobber.
6443
6444 2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6445
6446         * milli64.S ($$dyncall): New function.
6447         * t-linux (LIB1ASMFUNCS): Revise module list.
6448         (LIB1ASMSRC): Use pa/milli64.S.
6449
6450 2002-04-02  Richard Henderson  <rth@redhat.com>
6451
6452         * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
6453         rename solaris_sys_varargs_h.
6454
6455 Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6456
6457         * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
6458         the same mode as its component.
6459
6460 2002-04-02  Richard Henderson  <rth@redhat.com>
6461
6462         PR opt/190
6463         * final.c (this_is_asm_operands): Export.
6464         * output.h (this_is_asm_operands): Declare.
6465         * config/i386/i386.c (print_operand): Error odd asm operands.
6466
6467 2002-04-02  Richard Henderson  <rth@redhat.com>
6468
6469         PR opt/420
6470         * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
6471
6472 2002-04-01  Richard Henderson  <rth@redhat.com>
6473
6474         PR target/1538
6475         * fixinc/inclhack.def (solaris_sys_varargs_h): New.
6476         * fixinc/fixincl.x: Rebuild.
6477
6478 2002-04-01  Richard Henderson  <rth@redhat.com>
6479
6480         * config/ia64/unwind-ia64.c: Include ia64intrin.h.
6481         (atomic_alloc, atomic_free): New.
6482         (SIZE, MASK_FOR, PTR_IN): New.
6483         (emergency_reg_state, emergency_reg_state_free): New.
6484         (emergency_labeled_state, emergency_labeled_state_free): New.
6485         (reg_state_alloced, labeled_state_alloced): New.
6486         (alloc_reg_state, free_reg_state): New.
6487         (alloc_label_state, free_label_state, free_label_states): New.
6488         (push, pop, dup_state_stack, free_state_stack): Use them.
6489         (desc_label_state): Likewise.
6490         (uw_frame_state_for): Free label states and state stack.
6491         (uw_update_reg_address): Eliminate warnings.
6492
6493 2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>
6494
6495         * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
6496         ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
6497
6498 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
6499
6500         * c-decl.c (grokdeclarator): Update.
6501         * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
6502         * c-tree.h (c_mark_addressable): New.
6503         * c-typeck.c (default_function_array_conversion, build_unary_op,
6504         build_array_ref, convert_for_assignment): Update.
6505         (mark_addressable): Rename.
6506         * calls.c (try_to_integrate, expand_call): Use langhook.
6507         * expr.c (expand_expr): Use langhook.
6508         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
6509         * langhooks.h (struct lang_hooks): New hook.
6510         * stmt.c (expand_asm_operands): Use langhook.
6511         * tree.h (mark_addressable): Remove.
6512 objc:
6513         * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
6514
6515 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
6516
6517         * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
6518         in previous change.
6519
6520 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
6521
6522         * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
6523         for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
6524
6525 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
6526
6527         * c-common.c (unsigned_conversion_warning, convert_and_check,
6528         unsigned_type, signed_type, shorten_compare,
6529         c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
6530         (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
6531         * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
6532         New.
6533         * c-decl.c (grokdeclarator): Update.
6534         * c-format.c (check_format_types): Update.
6535         * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
6536         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
6537         * c-typeck.c (build_binary_op, convert_for_assignment): Update.
6538         * convert.c (convert_to_integer): Use new hooks.
6539         * expmed.c (make_tree): Use new hooks.
6540         * expr.c (store_expr): Use new hooks.
6541         * fold-const.c (operand_equal_for_comparison_p, build_range_check,
6542         all_ones_mask_p, unextend, fold): Use new hooks.
6543         * langhooks.h (struct lang_hooks_for_types): New hooks.
6544         * tree.h (signed_or_unsigned_type, signed_type,
6545         unsigned_type): Remove.
6546 objc:
6547         * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
6548         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
6549
6550 2002-03-31  Richard Henderson  <rth@redhat.com>
6551
6552         * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
6553         (desc_frgr_mem): Fix reference to f16-f31.
6554
6555 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6556
6557         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
6558         RTVEC_ELT): Const-ify.
6559         * varray.h (VARRAY_CHECK): Const-ify.
6560         * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
6561         ggc_mark_rtvec, ggc_mark): Const-ify.
6562
6563 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
6564
6565         * diagnostic.c: Include langhooks-def.h.
6566         * Makefile.in (diagnostic.o): Update.
6567
6568 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
6569
6570         * c-common.c (c_unsafe_for_reeval): Rename.
6571         * c-common.h (c_unsafe_for_reeval): Rename.
6572         * c-decl.c (finish_incomplete_decl): Rename.
6573         (c_init_decl_processing): Don't set langhook.
6574         * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
6575         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
6576         * c-objc-common.c (c_objc_common_init): Don't set langhook.
6577         * c-tree.h (finish_incomplete_decl): Rename.
6578         * langhooks-def.h (lhd_unsafe_for_reeval): New.
6579         (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
6580         (LANG_HOOKS_INITIALIZER): Update.
6581         * langhooks.c (lhd_unsafe_For_reeval): New.
6582         * langhooks.h (struct langhooks): New hooks.
6583         * toplev.c (incomplete_decl_finalize_hook): Remove.
6584         (wrapup_global_declarations): Update.
6585         * tree.c (lang_unsafe_for_reeval): Remove.
6586         (unsafe_for_reeval): Update.
6587         * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
6588         Remove.
6589 objc:
6590         * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
6591         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
6592
6593 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
6594
6595         * diagnostic.c (print_error_function): Remove.
6596         (default_print_error_function): Rename.
6597         (report_error_function): Update.
6598         * diagnostic.h (print_error_function): Remove.
6599         (default_print_error_function): Remove.
6600         * langhooks-def.h (struct diagnostic_context): Predeclare.
6601         (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
6602         (LANG_HOOKS_INITIALIZER): Update.
6603         * langhooks.h (struct diagnostic context): Predeclare.
6604         (struct lang_hooks): New hook.
6605
6606 2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6607
6608         * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
6609         (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
6610         !flag_pic.
6611         (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
6612         * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
6613         of PIC_OFFSET_TABLE_REGNUM thruout.
6614         * config/rs6000/rs6000.md: Likewise.
6615         * config/rs6000/darwin.h: Likewise.
6616
6617 Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6618
6619         * emit-rtl.c (adjust_address_1, offset_address): Cast value to
6620         unsigned HOST_WIDE_INT, not unsigned int.
6621
6622 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
6623
6624         PR middle-end/6096, middle-end/6098, middle-end/6099
6625         * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
6626         CODE_LABELs.
6627         (fill_slots_from_thread): Likewise.
6628
6629 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
6630
6631         * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
6632         floating fields in float regs.
6633         (function_arg_record_value_2): Likewise.
6634
6635 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
6636
6637         * config/mmix/mmix.md (define_constants): Remove misleading
6638         FIXME.  Add MMIX_fp_rO_OFFSET.
6639         ("nonlocal_goto_receiver"): Don't have stack-frame address of
6640         saved rO as part of the pattern.  Remove FIXME.
6641         ("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
6642         here, at output-time.
6643
6644 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
6645
6646         PR middle-end/6100
6647         * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
6648         REG_BR_PRED.
6649         (output_v9branch): Likewise.
6650
6651 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
6652
6653         * gcc.c: Revert previous patch for now.
6654         * config/i386/djgpp.h: Likewise.
6655
6656 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
6657
6658         * config/mmix/crti.asm (_init): Register _fini with atexit.
6659         * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
6660
6661 2002-03-31  Richard Henderson  <rth@redhat.com>
6662
6663         PR target/3997
6664         * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
6665         (ASM_OUTPUT_DEF_FROM_DECLS): New.
6666
6667 2002-03-31  Richard Henderson  <rth@redhat.com>
6668
6669         * libgcc2.c (__bb_exit_func): Make static.
6670
6671         * config/alpha/alpha.md (trap): New.
6672
6673 2002-03-31  Richard Henderson  <rth@redhat.com>
6674
6675         * builtins.c (expand_builtin_va_arg): Give warnings not errors for
6676         promoted argument types; build trap.
6677         (expand_builtin_trap): New.
6678         (expand_builtin): Use it.
6679         * stmt.c (expand_nl_goto_receivers): Likewise.
6680         * expr.h (expand_builtin_trap): Declare.
6681         * libfuncs.h (LTI_abort, abort_libfunc): New.
6682         * optabs.c (init_optabs): Init abort_libfunc.
6683
6684 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
6685
6686         * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
6687         (LINK_COMMAND_SPEC): ... from here.
6688         (init_gcc_specs): Duplicate it here too, omitting
6689         shared_name in the second copy.
6690         (init_spec): Test for duplicate
6691         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
6692
6693 2002-03-30  David S. Miller  <davem@redhat.com>
6694
6695         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
6696         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
6697
6698 2002-03-30  Roger Sayle <roger@eyesopen.com>
6699             Richard Henderson  <rth@redhat.com>
6700
6701         * regmove.c (combine_stack_adjustments_for_block): Avoid
6702         emitting a stack adjustment of zero bytes.  Let delete_insn
6703         update bb->head.
6704
6705 2002-03-30  Richard Henderson  <rth@redhat.com>
6706
6707         * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
6708         (sparc_emitting_epilogue): New.
6709         (leaf_label, output_return, sparc_return_peephole_ok): Remove.
6710         * config/sparc/sparc-protos.h: Update.
6711         * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
6712         (TARGET_SWITCHES): Update.
6713         * config/sparc/sparc.md (return): Remove.
6714         (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
6715         * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
6716         config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
6717         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
6718         config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
6719         config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
6720         config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
6721         Remove MASK_EPILOGUE.
6722         * doc/invoke.texi: Update.
6723
6724 2002-03-30  Daniel Berlin  <dan@dberlin.org>
6725
6726         * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
6727         CPP will start the file for us.
6728
6729 2002-03-30  Richard Henderson  <rth@redhat.com>
6730
6731         PR target/5446
6732         * config/ia64/ia64.c (group_barrier_needed_p): Special case
6733         prologue_allocate_stack.
6734         (ia64_single_set): Use insn codes for recognition of special
6735         cases, not rtl matching.
6736         * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
6737
6738 Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>
6739
6740         * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
6741
6742 2002-03-30  Richard Henderson  <rth@redhat.com>
6743
6744         PR target/6032
6745         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
6746         or -fomit-frame-pointer with profiling.
6747         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
6748         (FUNCTION_PROFILER): Do nothing.
6749         (PROFILE_HOOK): New.
6750         * config/sparc/sparc.c (sparc_override_options): Don't check
6751         code models for profiling.
6752         (sparc_function_profiler): Remove.
6753         (sparc_profile_hook): New.
6754         * config/sparc/sparc-protos.h: Update.
6755
6756 2002-03-30  Jakub Jelinek  <jakub@redhat.com>
6757
6758         PR optimization/6086
6759         * combine.c (combine_simplify_rtx): If simplify_rtx failed because
6760         of SUBREG of volatile MEM or because the MEM was mode dependent,
6761         return CLOBBER instead of unmodified SUBREG.
6762
6763 Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
6764
6765         * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
6766         when not optimizing.
6767
6768         * toplev.c (rest_of_compilation): Cann mark_constant_function
6769         only when optimizing.
6770
6771         * flow.c (calculate_global_regs_live): Ensure that all AUX fields
6772         are NULL.
6773
6774         * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
6775         (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
6776         (try_optimize_cfg): clear all AUX fields.
6777
6778         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
6779         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
6780         (ix86_address_cost): Be prepared for SUBREGed registers.
6781         (legitimate_address_p): Accept SUBREGed registers.
6782
6783 2002-03-29  Richard Henderson  <rth@redhat.com>
6784
6785         PR target/5672
6786         * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
6787
6788 2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6789
6790         * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
6791         for aggregate and TFmode types.
6792
6793 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
6794
6795         * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
6796
6797 2002-03-29  Richard Henderson  <rth@redhat.com>
6798
6799         PR target/5886
6800         * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
6801         * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
6802
6803 2002-03-29  Richard Henderson  <rth@redhat.com>
6804
6805         PR target/6041
6806         * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
6807         (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
6808         * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
6809         * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
6810         conditional.
6811         * docs/invoke.texi: Update -mno-fancy-math-387 docs.
6812
6813 2002-03-29  Dale Johannesen <dalej@apple.com>
6814
6815         * loop.c (combine_movables): Do allow combination of pseudos.
6816
6817 2002-03-29  Loren J. Rittle  <ljrittle@acm.org>
6818
6819         * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
6820         * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
6821         No functional change except ...
6822         * config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
6823         * doc/install.texi (*-*-freebsd*): Document port configuration.
6824
6825 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
6826
6827         * Makefile.in (convert.o, calls.o, expmed.o): Update.
6828         * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
6829         Use new hooks.
6830         * builtin-types.def (BT_PTRMODE): Update.
6831         * c-common.c (type_for_size): Rename c_common_type_for_size.
6832         (type_for_mode): Similarly.
6833         (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
6834         Use new hook.
6835         * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
6836         * c-decl.c (finish_enum, build_enumerator): Use new hooks.
6837         * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
6838         Redefine.
6839         * c-typeck.c (common_type, comptypes, default_conversion):
6840         Use new hooks.
6841         * calls.c: Include langhooks.h.
6842         (emit_library_call_value_1): Use new hooks.  Avoid redundant
6843         calls.
6844         * convert.c: Include langhooks.h
6845         (convert_to_pointer, convert_to_integer): Use new hooks.
6846         * except.c (init_eh): Similarly.
6847         * expmed.c: Include langhooks.h.
6848         (expand_mult_add): Use new hooks.
6849         * expr.c (store_expr, store_constructor, expand_expr, do_jump,
6850         try_casesi): Similarly.
6851         * fold-const.c (optimize_bit_field_compare, make_range,
6852         decode_field_reference, fold_truthop, fold): Similarly.
6853         * function.c (assign_stack_local_1, assign_stack_temp_for_type,
6854         put_var_into_stack): Similarly.
6855         * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
6856         LANG_HOOKS_TYPE_FOR_SIZE): New.
6857         (LANG_HOOKS_TYPES_INITIALIZER): Update.
6858         * langhooks.h (lang_hooks_for_types): New hooks.
6859         * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
6860         * tree.c (get_unwidened, get_narrower): Similarly.
6861         * tree.h (type_for_mode, type_for_size): Remove.
6862         * varasm.c (force_const_mem): Use new hooks.
6863         * utils2.c (nonbinary_modular_operation): Update.
6864 objc:
6865         * objc-act.c (handle_impent): Update.
6866         * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
6867         Redefine.
6868
6869 2002-03-29  Steve Ellcey  <sje@cup.hp.com>
6870
6871         * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
6872         * config/ia64/ia64.c (basereg_operand): New.
6873         * config/ia64/ia64-protos.h (basereg_operand): Declare.
6874         * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
6875
6876 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
6877
6878         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
6879         unwind information when frame_pointer_needed.
6880         (mmix_assemble_integer): Tweak wording in comment.
6881
6882 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
6883
6884         * Makefile.in (except.o): Update.
6885         * except.c: Include langhooks.h.
6886         (init_eh): Use langhook.
6887         * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
6888         LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
6889         (LANG_HOOKS_INITIALIZER): Update.
6890         * langhooks.h (lang_hooks_for_types): New.
6891         (struct lang_hooks): Add it.
6892         * tree.c (make_lang_type_fn, make_lang_type): Remove.
6893         * tree.h (make_lang_type_fn, make_lang_type): Remove.
6894 config:
6895         * alpha/alpha.c: Include langhooks.h.
6896         (alpha_build_va_list): Use langhook.
6897         * d30v/d30v.c: Include langhooks.h.
6898         (d30v_build_va_list): Use langhook.
6899         * i386/i386.c: Include langhooks.h.
6900         (ix86_build_va_list): Use langhook.
6901         * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
6902         * s390/s390.c: Include langhooks.h.
6903         (s390_build_va_list): Use langhook.
6904         * stormy16/stormy16.c: Include langhooks.h.
6905         (stormy16_build_va_list): Use langhook.
6906
6907 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
6908
6909         PR c++/5964
6910         * config/sparc/sparc.md (empty_delay_slot, branch_type): New
6911         attributes.
6912         (length): Compute variable length for branches/calls/jumps here.
6913         (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
6914         normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
6915         define branch_type attribute.
6916         (divsi3_sp32): Maximum length is 6 not 7.
6917         (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
6918         call_address_untyped_struct_value_sp32,
6919         call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
6920         * config/sparc/sparc.c (empty_delay_slot): New function.
6921         * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
6922         * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
6923
6924 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
6925
6926         * combine.c (set_nonzero_bits_and_sign_copies): Don't call
6927         nonzero_bits if not needed.
6928         (nonzero_bits) [XOR]: Likewise.
6929         (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
6930         reg_last_set_mode and mode are both MODE_INT, but not equal.
6931         (record_value_for_reg): Compute reg_last_set_nonzero_bits
6932         in nonzero_bits_mode for MODE_INT modes.
6933
6934 2002-03-28  Richard Henderson  <rth@redhat.com>
6935
6936         PR target/5715
6937         * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
6938         to GAS.  Correct drift between alternatives.
6939
6940 2002-03-28  Richard Henderson  <rth@redhat.com>
6941
6942         PR target/6087
6943         * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
6944
6945 2002-03-28  Alexandre Oliva  <aoliva@redhat.com>
6946
6947         * config/i386/freebsd.h (LINK_SPEC): Don't pass default
6948         emulation to the linker.
6949
6950 2002-03-28  Loren J. Rittle  <ljrittle@acm.org>
6951
6952         * config/alpha/freebsd.h (LINK_SPEC): Likewise.
6953         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
6954
6955 Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)
6956
6957         * combine.c (simplify_and_const_int): Make sure to apply mask
6958         when force_to_mode returns a constant integer.  PR3311.
6959
6960 2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6961
6962         * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
6963
6964 2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6965
6966         * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
6967         and Objective-C Dialect Options.
6968
6969 2002-03-28  Richard Henderson  <rth@redhat.com>
6970
6971         * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
6972         comparison should be done vs !=0 not >0 return code.  Tidy cases.
6973
6974 2002-03-28  Richard Henderson  <rth@redhat.com>
6975
6976         * c-decl.c (finish_function): New arg can_defer_p.  Pass it
6977         on to c_expand_body.
6978         * c-tree.h (finish_function): Update decl.
6979         * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
6980
6981 Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>
6982
6983         * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
6984
6985 Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>
6986
6987         * rtlanal.c: Include flags.h
6988         (may_trap_p): Do not mark FP operations if trapping
6989         if !flag_trapping_math
6990         * Makefile.in (rtlanal.o): Add dependency on flag.h
6991         * ifcvt.c (noce_operand_ok): Avoid the lameness.
6992
6993 2002-03-27  Zack Weinberg  <zack@codesourcery.com>
6994
6995         * mips.md: Use dconst1, not 1.0, as first argument of
6996         REAL_VALUE_LDEXP.  Don't use union real_extract.
6997
6998 2002-03-28  Alan Modra  <amodra@bigpond.net.au>
6999
7000         * configure.in (gcc_cv_as): Use $target_alias in directory searchs
7001         rather than $target.  Heed program_prefix and
7002         program_transform_name.  Search for gas in cross-compiler case too.
7003         "test -x" rather than "test -f".
7004         (gcc_cv_ld): Likewise.
7005         (gcc_cv_nm): Heed program_prefix and program_transform_name.
7006         (gcc_cv_objdump): Likewise.
7007         * configure: Regenerate.
7008
7009 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
7010
7011         * Makefile.in (attribs.o): Update.
7012         * attribs.c: Include langhooks.h.
7013         (decl_attributes): Use langhook.
7014         * c-decl.c (insert_default_attributes): Rename.
7015         * c-tree.h (c_insert_default_attributes): New.
7016         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
7017         (LANG_HOOKS_INITIALIZER): Update.
7018         * langhooks.h (struct lang_hooks): New hook.
7019         * tree.h (insert_default_attributes): Remove.
7020 objc:
7021         * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
7022
7023 2002-03-27  Andreas Schwab  <schwab@suse.de>
7024
7025         * config/i386/i386.c (classify_argument): Also check for
7026         QUAL_UNION_TYPE.
7027
7028 2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7029
7030         * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
7031         any more.
7032
7033 Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>
7034
7035         * i960.md (ret): Set PC.
7036         (nonlocal_goto): Fix expander.
7037         * builtins.c (epxand_builin_longjmp): Check that we've emitted
7038         some jump or call.
7039
7040 Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>
7041
7042         * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
7043         of libcall regions.
7044
7045 Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
7046
7047         * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
7048         assigning to BLOCK_FOR_INSN directly.
7049
7050 Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>
7051
7052         * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
7053
7054 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
7055
7056         * c-common.c (c_expand_expr): Fix prototype.
7057         * c-common.h (c_expand_expr): Always declare, update.
7058         * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
7059         * c-objc-common.c (c_objc_common_init): No global hook.
7060         * expr.c (expand_expr): Use langhook.
7061         * expr.h (enum expand_modifier): Conditionally declare.
7062         * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
7063         (LANG_HOOKS_INITIALIZER): Update.
7064         * langhooks.c (lhd_expand_expr): New.
7065         * langhooks.h (struct lang_hooks): New hook.
7066         * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
7067         (lang_independent_init): Don't default hook.
7068 objc:
7069         * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
7070
7071 2002-03-27  Richard Henderson  <rth@redhat.com>
7072
7073         PR target/6054
7074         * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
7075         TARGET_CONST_GP.  Simplify conditions.
7076
7077 2002-03-27  Richard Henderson  <rth@redhat.com>
7078
7079         * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
7080         config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
7081         config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
7082
7083 2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>
7084
7085         * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
7086         TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
7087         (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
7088         Remove unnecessary masks.
7089         (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
7090         (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
7091         -mwindows, -mdll switches and their negations.
7092
7093 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
7094
7095         * gcc-common.c (lang_mark_false_label_stack): Remove.
7096         * ggc.h (lang_mark_false_label_stack): Similarly.
7097
7098 2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>
7099
7100         * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
7101
7102         * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
7103         or __rtems_ is defined.
7104
7105 2002-03-26  Richard Henderson  <rth@redhat.com>
7106
7107         * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
7108         if a non-trivial load was emitted.
7109         (alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
7110         in high+extra+low case.
7111
7112 2002-03-26  Richard Henderson  <rth@redhat.com>
7113
7114         * config.gcc (sparc*-solaris): Use float_format=sparc.
7115
7116 2002-03-26  Richard Henderson  <rth@redhat.com>
7117
7118         * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
7119         * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
7120         * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
7121         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
7122         (WINT_TYPE_SIZE): Fix at 32.
7123
7124 2002-03-26  Richard Henderson  <rth@redhat.com>
7125
7126         * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
7127         until after eh landing pad generation.
7128         * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
7129         * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
7130
7131 2002-03-26  Richard Henderson  <rth@redhat.com>
7132
7133         * expr.h (ADD_PARM_SIZE): One more convert for INC.
7134
7135 2002-03-26  Phil Edwards  <pme@gcc.gnu.org>
7136
7137         * gcc.c (cpp_options):  Preserve relative ordering of -pedantic
7138         and warning switches.
7139         (cc1_options):  Likewise.
7140
7141 2002-03-26  Hans Boehm <Hans_Boehm@hp.com>
7142
7143         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
7144         Restore more of the signal context.  Set no_reg_stack_frame.
7145         * config/ia64/unwind-ia64.c (unw_state_record):
7146         Add no_reg_stack_frame, comments.
7147         (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
7148         (uw_update_context): Adjust bsp when unwinding from leaf,
7149         but not signal frame.
7150
7151 2002-03-26  David Edelsohn  <edelsohn@gnu.org>
7152
7153         * config/rs6000/aix51.h (WCHAR_TYPE): Define.
7154
7155 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
7156
7157         * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
7158
7159 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
7160
7161         PR target/5621
7162         * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
7163         "Add a pool_range attribute", which was lost during the ARM/Thumb
7164         merge.
7165
7166 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
7167
7168         * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
7169         a register into the MAC16 accumulator.
7170
7171 2002-03-26  Andrew Cagney  <ac131313@redhat.com>
7172
7173         * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
7174         (Warning Options): Document -Wswitch-enum.
7175         * toplev.c (W_options): Add -Wswitch-enum.  Update comment on
7176         -Wswitch.
7177         (warn_switch_enum): Define variables.
7178         * flags.h (warn_switch_enum): Declare variables.
7179         * stmt.c (expand_end_case_type): When warn_switch_enum /
7180         -Wswitch-enum, perform switch checks.
7181         Fix PR c/5044.
7182
7183 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
7184
7185         * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
7186         (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
7187         (reload_muladdsi_compare0_scratch): Delete.
7188
7189 2002-03-26  Loren J. Rittle  <ljrittle@acm.org>
7190
7191         * doc/install.texi (*-*-freebsd*): Update.
7192
7193 2002-03-26  Richard Henderson  <rth@redhat.com>
7194
7195         * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
7196         (SUB_PARM_SIZE): Cast DEC to ssizetype.
7197
7198         * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
7199         types from the normal argument frame.
7200
7201         * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
7202         variable sized objects by reference.
7203         (sparc_va_arg): Receive them by reference too.
7204
7205 2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>
7206
7207         * config/s390/s390.c (s390_emit_epilogue): Change epilogue
7208         code to not restoring global registers.
7209
7210 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
7211
7212         * Makefile.in (ggc-common.o): Update.
7213         * c-decl.c (lang_mark_tree): Rename c_mark_tree.
7214         * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
7215         * c-tree.h (c_mark_tree): New.
7216         * ggc-common.c: Include langhooks.h.
7217         (gcc_mark_trees): Use new langhook.
7218         * ggc-callbacks.c: Delete file.
7219         * ggc.h (lang_mark_tree): Remove.
7220         * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
7221         (LANG_HOOKS_INITIALIZER): Update.
7222         * langhooks.h (struct lang_hooks): New hook.
7223 objc:
7224         * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
7225
7226 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
7227
7228         * doc/cpp.texi: Exclude entire Top node from printed manual.
7229         Move option index after directive index.  Insert page breaks
7230         before GFDL and concept index.  Index environment variables
7231         with command line options.
7232         * doc/cppenv.texi: Use @vtable for environment variable list.
7233         Add paragraph explaining semantics of empty elements in path
7234         variables.  Exclude a cross-reference to Fishkill from the
7235         manpage.  Remove an unnecessary cross-reference of the entry
7236         right above the referer.  Don't use @anchor in text that goes
7237         into manpage.
7238         * doc/cppopts.texi: Cross-reference the environment variables
7239         section, not the specific environment variable, for consistency.
7240
7241 2002-03-25  Richard Henderson  <rth@redhat.com>
7242
7243         * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
7244         anywhere in the block.  Don't refer to insns that have been
7245         removed from the chain.  Iterate backward through the new insns.
7246         Don't refer to edges that have been removed.
7247
7248 2002-03-26  Alan Modra  <amodra@bigpond.net.au>
7249
7250         * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
7251         test for overflow of constant.
7252
7253 2002-03-25  Richard Earnshaw  <rearnsha@arm.com>
7254
7255         PR target/2623
7256         * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
7257         (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
7258         these patterns on arm_archv4.
7259
7260 2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>
7261
7262         * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
7263         int".
7264
7265 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
7266
7267         * toplev.c: Don't include setjmp.h.  Kill float_handler_set,
7268         float_handled, float_handler, float_signal, set_float_handler,
7269         and do_float_handler.  Set handler for SIGFPE to crash_signal.
7270         * toplev.h: Don't prototype do_float_handler.
7271
7272         * c-lex.c: Fold parse_float into lex_number.  Make warning
7273         about portability of hex float constants more informative, and
7274         don't issue it on top of a syntax error.
7275         * fold-const.c: Fold const_binop_1 and fold_convert_1 into
7276         their callers.
7277         * real.h: Define REAL_VALUE_ABS here...
7278         * simplify-rtx.c: ... not here.  Fold check_fold_consts,
7279         simplify_unary_real, simplify_binary_real, and
7280         simplify_binary_is2orm1 into their callers.
7281         * tree.c: Fold build_real_from_int_cst_1 into caller.
7282
7283         * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
7284
7285         * tsystem.h: Include float.h here...
7286         * libgcc2.c: ... not here.
7287
7288 2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>
7289
7290         Fixes for: PR bootstrap/3591, target/5676
7291         * config/mcore/mcore.h (CC1_SPEC): Define only if not already
7292         defined.  Do not disable exceptions or rtti.
7293         * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
7294         mcore.h.  Disable exceptions and rtti, since they are not
7295         supported by EPOC.
7296
7297 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
7298
7299         * c-decl.c (maybe_build_cleanup): Remove.
7300         * expr.c (expand_expr): Use langhook.
7301         * langhooks-def.h (lhd_return_null_tree,
7302         LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
7303         (LANGHOOKS_INITIALIZER): Update.
7304         * langhooks.c (lhd_return_null_tree): New.
7305         * langhooks.h (struct lang_hooks): New hook.
7306         * tree-inline.c (initialize_inlined_parameters): Use langhook.
7307         * tree.h (maybe_build_cleanup): Remove.
7308
7309 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
7310
7311         * regrename.c (build_def_use): Move recog_memoized
7312         before extract_insn.
7313
7314 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
7315
7316         PR target/6043
7317         * expr.c (emit_group_store): Handle storing into CONCAT.
7318
7319 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
7320
7321         * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
7322         corresponding MATCH_DUP.
7323
7324 2002-03-24  Richard Henderson  <rth@redhat.com>
7325
7326         * unroll.c (unroll_loop): Zero label_map.
7327
7328         * gcse.c: Include except.h.
7329         * Makefile.in (gcse.o): Update.
7330
7331 2002-03-24  Richard Henderson  <rth@redhat.com>
7332
7333         * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
7334         Do resolve_unique_section before shared data clause.
7335
7336 2002-03-24  Richard Henderson  <rth@redhat.com>
7337
7338         * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
7339
7340 2002-03-24  Richard Henderson  <rth@redhat.com>
7341
7342         * recog.c (peephole2_optimize): Split blocks when EH insns are
7343         generated in the middle of a block.  Do global life update if
7344         zapped EH edges.
7345
7346 2002-03-24  Richard Henderson  <rth@redhat.com>
7347
7348         * mips.c (mips_function_value): Only promote_mode for non-libcalls.
7349
7350 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
7351
7352         preprocessor/3951
7353         * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
7354         * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
7355         (init_dependency_output): Don't make no_output decision here.
7356
7357 2002-03-24  Andrew Cagney  <ac131313@redhat.com>
7358
7359         * stmt.c (check_for_full_enumeration_handling): Remove tests of
7360         warn_switch.  Update description.
7361         (expand_end_case_type): Call check_for_full_enumeration_handling
7362         when warn_switch.
7363
7364 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7365
7366         * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
7367         (m68hc11_split_move): Call it to see if the source and destination
7368         operands use the same direction auto inc/dec mode, otherwise make the
7369         source an offsetable memory operand and generate an add.
7370
7371 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7372
7373         * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
7374         register for operand 2.
7375         ("*subsi3_zero_extendqi"): Likewise.
7376         ("*iorhi3_gen"): Do the operation on the upper bits and then lower
7377         bits so that it is compatible with a pop.
7378         ("*andhi3_gen"): Likewise.
7379         ("xorhi3"): Likewise.
7380
7381 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
7382
7383         * cppinit.c (cpp_handle_option): Set warn_endif_labels if
7384         -pedantic here...
7385         (cpp_post_options): ... not here.
7386
7387 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
7388             Aldy Hernandez  <aldyh@redhat.com>
7389
7390         Removal of separate preprocessor cpp0.
7391
7392         * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
7393         cpp0, install-common): Update.
7394         * c-common.c (flag_preprocess_only): New.
7395         (c_common_init): Preprocess for -E.
7396         * c-common.h (flag_preprocess_only): New.
7397         * c-decl.c (c_decode_option): Handle -E and -std=c++98.
7398         * c-objc-common.c (c_init_decl_processing): Exit quickly
7399         for NULL return from c_common_init.
7400         * cpplib.h (cpp_preprocess_file): New.
7401         * cppmain.c (main, general_init, pfile, progname): Remove.
7402         (do_preprocessing): Rename cpp_preprocess_file, don't call
7403         cpp_finish.  Don't close stdout here.
7404         (setup_callbacks): Update prototype.
7405         * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
7406         Update.
7407         * tradcpp.c (main): Ignore -quiet.
7408 objc:
7409         * lang-specs.h (default_compilers): Preprocess with cc1obj.
7410
7411 2002-03-24  Richard Henderson  <rth@redhat.com>
7412
7413         PR optimization/5742
7414         * machmode.def: Add inner mode field to complex modes.
7415         * config/mips/mips.c (mips_function_value): Always define.  Add
7416         new argument to handle libcalls.
7417         * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
7418         (FUNCTION_VALUE): Likewise.
7419         * config/mips/abi64.h (FUNCTION_VALUE): Remove.
7420         * config/mips/mips-protos.h: Update.
7421
7422 2002-03-23  Richard Henderson  <rth@redhat.com>
7423
7424         * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
7425         * config/sparc/sparc-protos.h: Update.
7426         * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
7427
7428 2002-03-23  Richard Henderson  <rth@redhat.com>
7429
7430         * config/sparc/gmon-sol2.c (internal_mcount): Assume either
7431         _start or _init begins the text segment.
7432
7433 2002-03-23  David Edelsohn  <edelsohn@gnu.org>
7434
7435         * config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
7436         not HOST_WIDEST_INT.
7437         (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
7438
7439 2002-03-23  Richard Earnshaw  <rearnsha@arm.com>
7440
7441         PR java/5489
7442         * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
7443         operand argument to output_return_instruction.
7444         * arm.c (arm_print_operand, case 'd'): If the operand is
7445         const_true_rtx then just return.
7446         (arm_print_operand, case 'D'): If the operand is const_true_rtx
7447         then abort.
7448
7449 2002-03-23  Andrew Cagney  <ac131313@redhat.com>
7450
7451         * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
7452         (Warning Options): Document -Wswitch-default.
7453         * toplev.c (W_options): Add -Wswitch-default.  Update comment on
7454         -Wswitch.
7455         (warn_switch_default): Define variable.
7456         (warn_switch): Update comment.
7457         * flags.h (warn_switch_default): Declare variable.
7458         (warn_switch): Update comment.
7459         * stmt.c (expand_end_case): Check for and, when
7460         warn_switch_no_default, warn of a missing default case.
7461
7462 2002-03-23  Alan Modra  <amodra@bigpond.net.au>
7463
7464         * real.h (N): Special case 128 bit doubles.
7465
7466         * combine.c (simplify_comparison): When widening modes, ignore
7467         sign extension on CONST_INTs.
7468
7469 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
7470
7471         * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
7472         passed to adjust_address.  Fix comment formatting.
7473
7474
7475 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
7476
7477         * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
7478         Always make REAL_VALUE_TYPE a struct containing an array of
7479         HOST_WIDE_INT, not a double.  Tidy up the code deciding how
7480         big it is.  Don't declare or use union real_extract.
7481
7482         * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
7483         decode_rtx_const, output_constant_pool), config/a29k/a29k.c
7484         (print_operand), config/arm/arm.c (output_move_double),
7485         config/arm/arm.md (consttable_4, consttable_8),
7486         config/romp/romp.c (output_fpops), config/s390/s390.h
7487         (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
7488         (xtensa_output_literal): Don't use union real_extract.
7489
7490         * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
7491         (sfmode_constant_to_ulong), config/ns32k/merlin.h
7492         (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
7493         config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
7494         (PRINT_OPERAND): Don't use local version of union
7495         real_extract.
7496
7497         * config/convex/convex.c (check_float_value), config/vax/vax.c
7498         (vax_float_literal), config/m88k/m88k.md (divdf3),
7499         config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
7500         config/pdp11/pdp11.c (output_move_quad): Don't do host
7501         arithmetic on target floating point quantities.
7502
7503         * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
7504         (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
7505
7506         * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
7507         Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
7508
7509         * real.c (earith): Test INFINITY rather than REAL_INFINITY;
7510         NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
7511         INFINITY.
7512         * print-rtl.c (print_rtx): Disable code which needs
7513         floating-point emulator.
7514         * libgcc2.c: Include float.h and use DBL_MANT_DIG,
7515         FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
7516         depending on HOST_FLOAT_FORMAT to be defined properly.
7517
7518         * config/1750a/1750a.c (get_double, float_label): Delete.
7519         (print_operand): Delete huge commented-out chunk.  Use
7520         REAL_VALUE_TO_DECIMAL.
7521         * config/1750a/1750a-protos.h: Delete prototypes of deleted
7522         functions.
7523         * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
7524         IEEE_FLOAT_FORMAT.
7525         * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
7526         Use REAL_VALUE_TO_DECIMAL as ELF version does.
7527         * config/m88k/m88k.c (real_power_of_2_operand,
7528         legitimize_operand): Take the REAL_VALUE_TYPE and/or union
7529         real_extract out of the union; run the input through
7530         REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
7531         from that into the union.
7532         * config/pdp11/pdp11.c (output_move_double): Rearrange
7533         parentheses to make automatic indenter happy.
7534
7535         * doc/tm.texi (Cross-compilation): Rename node to "Floating
7536         Point" and rewrite to describe current situation.  Also adjust
7537         documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
7538         match code.
7539         * doc/rtl.texi: Adjust cross reference.
7540
7541 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
7542
7543         * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
7544         (xtensa_valid_move, xtensa_preferred_reload_class): Define.
7545         * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
7546         (xtensa_valid_move, xtensa_preferred_reload_class): Define to
7547         prevent use of sp as a reload register.
7548         (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
7549         non_acc_reg_operand.
7550         * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
7551         (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
7552         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
7553         movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
7554
7555 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
7556
7557         * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
7558         * cpplex.c (unterminated): Delete.
7559         (parse_string): No string literal may extend over multiple
7560         lines.  Suppress the error when preprocessing assembly.
7561         * cppmain.c (scan_translation_unit): Strings are single-line.
7562
7563         * doc/cpp.texi: Update to match.
7564
7565 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
7566
7567         PR optimization/5854
7568         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
7569         Shut up warnings.
7570         (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
7571         (EXTRA_CONSTRAINT): Use S for non-push memory operand.
7572         * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
7573         const0 if scratch register was not allocated.
7574         (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
7575         m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
7576         with GEN_INT (...).
7577         (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
7578         * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
7579         with GEN_INT (...) everywhere.  Remove constraints in define_split
7580         patterns.
7581         (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
7582         require scratch register for setting 0 into regs/non-pushable memory.
7583
7584 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
7585
7586         * config/mips/mips.h (MASK_RETURN_ADDR): Define.
7587         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
7588
7589 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
7590
7591         * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
7592         * cppinit.c (cpp_create_reader):  On by default.
7593         (cpp_handle_option):  Handle -W[no-]endif-labels.
7594         (cpp_post_options):  Also enable if -pedantic.
7595         * cpplib.c (do_else):  Use it.
7596         (do_endif):  Likewise.
7597         * doc/cppopts.texi:  Document new option.
7598         * doc/invoke.texi:  Document new option.
7599
7600 2002-03-22  Lars Brinkhoff  <lars@nocrew.org>
7601
7602         * config/i386/i386.c, config/i386/i386.md: Change all occurences
7603         of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
7604
7605 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
7606
7607         * flow.c (calculate_global_regs_live): Clear aux fields of
7608         ENTRY and EXIT.
7609
7610 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
7611
7612         * config/v850/v850.c (v850_reorg): Only call alter_subreg on
7613         REG or MEM subregs, pass rtx * instead of rtx to it.
7614         * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
7615         rtx * instead of rtx to alter_subreg.
7616         * config/m32r/m32r.c (gen_split_move_double): Likewise.
7617         * config/pj/pj.c (pj_output_rval): Likewise.
7618
7619 2002-03-22  Richard Henderson  <rth@redhat.com>
7620
7621         PR target/3177
7622         * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
7623         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
7624         * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
7625         (ia64_expand_prologue): Look at int_regs, not words, for number
7626         of incomming int regs.
7627
7628 2002-03-22  Andrew MacLeod  <amacleod@redhat.com>
7629
7630         * expr.c (expand_expr): A RESULT_DECL is part of a call.
7631
7632 Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>
7633
7634         * toplev.c (flag_loop_optimize, flag_crossjumping):
7635         New static variables.
7636         (rest_of_compilation): Conditionalize crossjumping and
7637         loop optimizer.
7638         (parse_options_and_default_flags): Default loop_optimize and
7639         crossjumping.
7640         (lang_independent_options): Add -fcrossjumping and -floop-optimize
7641         * invoke.texi (crossjumping, loop-optimize): Document.
7642
7643 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
7644
7645         * real.c (eiisneg): Move outside #ifdef NANS.
7646
7647 Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>
7648
7649         * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
7650         frequencies match; avoid match on different loop depths.
7651         (try_crossjump_to_bb): Kill tests that no longer brings time
7652         savings.
7653         * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
7654         updating code.
7655         (split_edge): Likewise.
7656
7657         * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
7658         variable.
7659
7660         * Makefile.in (cfgrtl): Add insn-config.h depenendency.
7661         * cfgrtl.c: Include insn-config.h
7662         (split_block) Dirtify block in presence of conditional execution
7663
7664 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
7665
7666         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
7667         * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
7668         (function_arg): Constify CUMULATIVE_ARGS.
7669         (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
7670         * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
7671         (UNITS_PER_DOUBLE): New macro.
7672         (SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
7673         (CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
7674         last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
7675         fp_regs and stack_words.
7676         (EABI_FLOAT_VARARGS_P): New macro.
7677         * config/mips/mips.c (struct mips_arg_info): New.
7678         (mips_arg_info): New function.
7679         (function_arg_advance): Use it.  Add adjustment instructions here
7680         rather than in function_arg.
7681         (function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
7682         for VOIDmode at the beginning of the function.
7683         (function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
7684         (function_arg_pass_by_reference): Likewise.
7685         (mips_setup_incoming_varags): New, largely based on old abi64.h code.
7686         (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
7687         (mips_va_start): Likewise.  Use the new stack_words field of
7688         CUMULATIVE_ARGS to set up overflow area.  Reformat.
7689         (mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
7690         doubles and other types, aligning the overflow pointer for non-doubles
7691         too.  Remove some code duplication.  Replace hard-coded constants.
7692
7693 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
7694
7695         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
7696         (CLASS_UNITS): Undefine.
7697         (CLASS_MAX_NREGS): Use FP_INC.
7698         * config/mips/mips.c (compute_frame_size): Likewise.
7699         (override_options): Use FP_INC and UNITS_PER_FPVALUE.
7700
7701 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
7702
7703         * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
7704         prototype, and handle lexing numbers and identifiers.
7705         (parse_identifier): Update to new form of parse_slow.
7706         (parse_number): Fast path only, use parse_slow otherwise.
7707         (_cpp_lex_direct): Update calls to parse_number.
7708
7709 2002-03-21  DJ Delorie  <dj@redhat.com>
7710
7711         * bb-reorder.c (make_reorder_chain_1): Protect against
7712         when redundant edges are omitted.
7713         * predict.c (dump_prediction): Likewise.
7714
7715 2002-03-21  Richard Henderson  <rth@redhat.com>
7716
7717         PR target/5996
7718         * fixinc/inclhack.def (solaris_stdio_tag): New.
7719         * fixinc/fixincl.x: Regenerate.
7720
7721 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
7722
7723         PR c/5597
7724         * c-typeck.c (process_init_element): Flag non-static
7725         initialization of a flexible array member as illegal.
7726
7727 2002-03-22  Alan Modra  <amodra@bigpond.net.au>
7728
7729         * config/rs6000/t-linux64: New.
7730         * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
7731         t-ppccomm.  Use t-rs6000 and t-linux64.
7732         (powerpc64-*-gnu* <tmake_file>): Likewise.
7733         * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
7734         * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
7735         * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
7736
7737 2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
7738
7739         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
7740         flag_really_no_inline instead of optimize == 0.
7741
7742         * c-objc-common.c (c_cannot_inline_tree_fn): Same.
7743
7744         * cp/tree.c (cp_cannot_inline_tree_fn): Same.
7745
7746         * flags.h (flag_really_no_inline): New.
7747
7748         * c-common.c (c_common_post_options): Initialize
7749         flag_really_no_inline.
7750
7751         * toplev.c (flag_really_no_inline): New.
7752
7753 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
7754
7755         * config/avr/avr.md (length): Fix length computation for
7756         conditional branches.
7757
7758 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
7759
7760         * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
7761         sdbout.o, profile.o): Update.
7762         * c-common.c (c_common_nodes_and_builtins): Use pushdecl
7763         langhook.
7764         * c-common.h (gettags): Move here from tree.h.
7765         * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
7766         insert_block, getdecls, kept_level_p, global_bindings_p): New.
7767         * dbxout.c (dbxout_init): Use getdecls langhook.
7768         * expr.c (expand_expr): Use insert_block langhook.
7769         * fold-const.c: Include langhooks.h.
7770         (fold_range_test, fold_binary_op_with_conditional_arg,
7771         fold): Use global_bindings_p langhook.
7772         * integrate.c (expand_inline_function): Use insert_block langhook.
7773         * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
7774         LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
7775         LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
7776         LANG_HOOKS_GETDECLS): New.
7777         (LANG_HOOKS_INITIALIZER): Update.
7778         * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
7779         langhook.
7780         * langhooks.h (struct lang_hooks_for_decls): New.
7781         (struct lang_hooks): Update.
7782         * profile.c: Include langhooks.h.
7783         (output_func_start_profiler): Use new langhooks.
7784         * sdbout.c: Include langhooks.h.
7785         (sdbout_init, sdbout_finish): Use getdecls langhook.
7786         * stmt.c: Include langhooks.h.
7787         (expand_fixup, fixup_gotos): Use new langhooks.
7788         * stor-layout.c: Include langhooks.h.
7789         (variable_size): Use global_bindings_p langhook.
7790         * toplev.c (compile_file): Use getdecls langhook.
7791         * tree-inline.c (remap_block): Use insert_block langhook.
7792         * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
7793         insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
7794
7795 2002-03-21  Richard Henderson  <rth@redhat.com>
7796
7797         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
7798         constants in .data when -fpic.
7799
7800 2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7801
7802         * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
7803         where appropriate.
7804
7805 2002-03-21  Tom Tromey  <tromey@redhat.com>
7806
7807         * config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.
7808
7809 Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7810
7811         * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
7812
7813         * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
7814
7815 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
7816             Richard Henderson  <rth@redhat.com>
7817
7818         PR c/5354
7819         * c-common.c (c_expand_expr): Preserve result of a statement
7820         expression if needed.
7821
7822 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
7823
7824         PR bootstrap/4195
7825         * genrecog.c (maybe_both_true_mode): Remove.
7826         (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
7827         * machmode.def (Pmode): Likewise.
7828
7829 Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)
7830
7831         * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
7832         (nonlocal_mentioned_p_1): New function.
7833         (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
7834         (nonlocal_set_p, nonlocal_set_p_1): Likewise.
7835         (mark_constant_function): Recognize pure functions.
7836         * rtl.h (global_reg_mentioned_p): New prototype.
7837         * rtlanal.c (global_reg_mentioned_p,
7838         global_reg_mentioned_p_1): New function.
7839
7840 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7841
7842         * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
7843         UNIX assert.h.
7844         * fixinc/fixincl.x: Regenerate.
7845
7846 2002-03-20  Jason Merrill  <jason@redhat.com>
7847
7848         * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
7849
7850 2002-03-20  Michael Meissner  <meissner@redhat.com>
7851
7852         * doc/invoke.texi (Optimize Options): Document that -O2 sets
7853         -fstrict-aliasing.
7854
7855 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
7856
7857         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
7858         ".literal_position" directive before the constant pool.
7859
7860 2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7861
7862         * doc/contrib.texi (Contributors): Update Geoffrey Keating.
7863         Add Craig Rodrigues.
7864         Add Brad Lucier to testers.
7865
7866 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
7867
7868         PR target/4792
7869         * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
7870         to if_then_else.
7871         (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
7872         * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
7873         instead of insn_extract.
7874
7875 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
7876
7877         PR bootstrap/4192
7878         * config/fr30/fr30.md (jump): Remove clobber of fixed register.
7879
7880         * genemit.c (output_added_clobbers_hard_reg_p): Only output return
7881         stmt if some case has been output.
7882
7883 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
7884
7885         PR c/5972
7886         * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
7887         movsfcc_1, movdfcc_1): Add %O2.
7888         * config/i386/i386.c (print_operand): Handle %ON.
7889         Print . before float condition codes in Sun as cmov syntax.
7890         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
7891         * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
7892         no longer true.
7893
7894 2002-03-20  Philip Blundell  <pb@nexus.co.uk>
7895
7896         * config/arm/arm.c (arm_output_epilogue): Don't generate separate
7897         return instruction if PC was popped.
7898
7899 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
7900
7901         * config/xtensa/xtensa.md: Remove unused type attributes.
7902         (adddi_carry, subddi_carry): Change type attribute to "multi".
7903
7904 2002-03-19  Dale Johannesen  <dalej@apple.com>
7905
7906         PR optimization/5999, middle-end/5731
7907         * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
7908         multiplications by reciprocals.
7909
7910 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
7911
7912         * Makefile.in: Update.
7913         * c-common.c: Include langhooks.h.
7914         (inline_forbidden_p): Use new hook.
7915         * diagnostic.c: Include langhooks.h.
7916         (format_with_decl, announce_function,
7917         default_print_error_function): Use new hook.
7918         * dwarf2out.c (dwarf2_name): Use new hook.
7919         * function.c: Include langhooks.h.
7920         (init_function_start): Use new hook.
7921         * langhooks-def.h (lhd_decl_printable_name): New.
7922         (LANGHOOKS_DECL_PRINTABLE_NAME): New.
7923         (LANGHOOKS_INITIALIZER): Update.
7924         * langhooks.c (lhd_decl_printable_name): New.
7925         * langhooks.h (struct lang_hooks): New hook.
7926         * toplev.c (decl_name, decl_printable_name): Remove.
7927         (open_dump_file): Use new hook.
7928         (process_options): Remove old hook.
7929         * tree.h (decl_printable_name): Remove.
7930 objc:
7931         * objc-act.c (objc_init): Remove old hook.
7932         (objc_printable_name): Export.
7933         * objc-act.h (objc_printable_name): New.
7934         * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
7935
7936 2002-03-19  Jim Blandy  <jimb@redhat.com>
7937
7938         * c-lex.c (cb_file_change): Pass the #inclusion's line number to
7939         the start_source_file debug hook, not the current line number.
7940
7941 2002-03-19  Richard Henderson  <rth@redhat.com>
7942
7943         * flow.c (EH_USES): Provide default.
7944         (calculate_global_regs_live): Use it for EH edges and noreturn calls.
7945         * doc/tm.texi (EH_USES): New.
7946
7947         * config/ia64/ia64.c (ia64_eh_uses): New.
7948         * config/ia64/ia64-protos.h: Update.
7949         * config/ia64/ia64.h (EH_USES): New.
7950
7951 2002-03-19  Richard Henderson  <rth@redhat.com>
7952
7953         * varasm.c (output_constant_def): Fix stupid typo.
7954
7955 2002-03-19  Richard Henderson  <rth@redhat.com>
7956
7957         PR 5879
7958         * except.c (current_function_has_exception_handlers): New.
7959         * except.h: Declare it.
7960         * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
7961         Combine tests that disable all sibcalls for the function.
7962
7963 2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
7964
7965         * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
7966         for INTEGER_CST.
7967
7968 2002-03-19  Richard Henderson  <rth@redhat.com>
7969
7970         PR 5977, 5991
7971         * config/ia64/ia64.c: Revert 2002-03-01 patch.
7972         * config/ia64/ia64.h (INIT_EXPANDERS): New.
7973
7974 2002-03-19  Jim Blandy  <jimb@redhat.com>
7975
7976         * cppmacro.c (cpp_macro_definition): Emit a space after the macro
7977         name, even if the replacement list contains no tokens, as required
7978         by Dwarf.
7979
7980 2002-03-19  Jason Merrill  <jason@redhat.com>
7981
7982         * varasm.c (globalize_decl): Get the name from the RTL, not
7983         DECL_ASSEMBLER_NAME.
7984
7985         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
7986
7987 2002-03-19  Bob Wilson  <bob.wilson@acm.org>
7988
7989         * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
7990         subdi_carry): Define.
7991
7992 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
7993
7994         * config/rs6000/rs6000.c (rs6000_override_options): Only warn
7995         about -fpic/-fPIC if extra_warnings set.
7996
7997 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
7998
7999         * expr.c (expand_expr): Sign-extend CONST_INT generated from
8000         TREE_STRING_POINTER.
8001         * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
8002
8003 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8004
8005         * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
8006         in favor of SP if FRAME_POINTER_REQUIRED is false.
8007
8008 2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
8009
8010         * emit-rtl.c (gen_int_mode): New function.
8011         * rtl.h: Prototype for it.
8012         * combine.c (make_extraction, simplify_comparison), expmed.c
8013         (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
8014         (convert_modes, store_field), optabs.c (expand_fix),
8015         simplify-rtx.c (neg_const_int, simplify_unary_real),
8016
8017         * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
8018         Use it instead of GEN_INT (trunc_int_for_mode (...)).
8019
8020 2002-03-19  Jakub Jelinek  <jakub@redhat.com>
8021
8022         PR c/5656
8023         * langhooks.h (struct lang_hooks_for_tree_inlining): Add
8024         convert_parm_for_inlining.
8025         * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
8026         Define.
8027         * langhooks-def.h: Likewise.
8028         * objc/objc-lang.c: Likewise.
8029         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
8030         function.
8031         * tree-inline.c (initialize_inlined_parameters):
8032         Call convert_parm_for_inlining lang hook if needed.
8033         * c-typeck.c (c_convert_parm_for_inlining): New function.
8034         * c-tree.h (c_convert_parm_for_inlining): Add prototype.
8035
8036 2002-03-18  Mark Mitchell  <mark@codesourcery.com>
8037
8038         * calls.c (precompute_arguments): Do not assume that temporaries
8039         can be destroyed after expanding the argument.
8040         (expand_call): Likewise.
8041
8042 2002-03-15  Eric Christopher  <echristo@redhat.com>
8043
8044         * config/mips/mips.md (movdf_internal2): Add two new move constraints.
8045         Fix register preference on last change.
8046         * config/mips/mips.c (mips_return_in_memory): New function.
8047         * config/mips/mips.h (RETURN_IN_MEMORY): Use.
8048         * config/mips/mips-protos.h: Declare.
8049         * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
8050         * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
8051
8052 2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
8053
8054         * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
8055         a register too.
8056         (anddi3, iorsi3): Likewise.
8057
8058         * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
8059         use %gprel for symbols that are going to be placed in linkonce
8060         sections.
8061
8062         * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
8063         RETURN_ADDRESS_POINTER_REGNUM to $ra.
8064         (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
8065         not needed.  Disregard leaf_function_p().
8066         (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
8067         mips16 frame pointer.
8068         * config/mips/mips.md (store ra): Only to small SP offsets.
8069         2001-08-22  Graham Stott  <grahams@redhat.com>
8070         * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
8071         return a REG rtx for the return address register.
8072
8073 2002-03-18  Bob Wilson  <bob.wilson@acm.org>
8074
8075         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
8076         constant-pool addresses as "mode-dependent".
8077         (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
8078
8079 2002-03-18  Jakub Jelinek  <jakub@redhat.com>
8080
8081         PR target/5740
8082         * expr.c (emit_group_load): Use extract_bit_field if
8083         needed for CONCAT arguments.
8084
8085 2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
8086
8087         PR target/4863
8088         * arm.md (tablejump): Make this a define_expand.  For PIC add the
8089         offset to the base of the table.
8090         (thumb_tablejump): Matcher for Thumb tablejump insn.
8091         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
8092         as the difference of two labels.
8093         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
8094         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
8095         tables in the code.
8096         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
8097         * arm.c (get_jump_table_size): If the table is not in the text
8098         section, return zero.
8099
8100 2002-03-18  Bernd Schmidt  <bernds@redhat.com>
8101
8102         * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
8103         of gen_rtx_SUBREG.
8104         (arm_reload_out_hi): Use gen_lowpart instead of
8105         gen_rtx_SUBREG to access QImode components.
8106         * config/arm/arm.md: Disable zero_extend split for QImode
8107         subregs in BIG_ENDIAN mode.
8108         (storehi_bigend): Match use of least significant byte.
8109         (storeinthi): Remove extraneous SUBREG.
8110         Add missing construction of operands[2].
8111         (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
8112         (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
8113         Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
8114
8115 2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
8116
8117         * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
8118         any_operand.
8119
8120 2002-03-17  Richard Henderson  <rth@redhat.com>
8121
8122         * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
8123         explicitly.
8124
8125 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
8126
8127         * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
8128         (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
8129
8130 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8131
8132         * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
8133
8134         * predict.c (estimate_bb_frequencies): Delete unused variables.
8135
8136 2002-03-17  Richard Henderson  <rth@redhat.com>
8137
8138         * config/ia64/ia64.c (ia64_attribute_table): Move before
8139         targetm definition.  Make static.
8140
8141 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
8142
8143         * c-common.h (yyparse, c_common_parse_file): New.
8144         * c-lang.c: Include c-common.h.
8145         (LANG_HOOKS_PARSE_FILE): Redefine.
8146         * c-lex.c: Include c-common.h.
8147         (yyparse): Rename c_common_parse_file.  Call yyparse.
8148         * c-parse.in (yyparse): Remove macro.
8149         * c-tree.h (yyparse_1): Remove.
8150         * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
8151         (LANG_HOOKS_INITIALIZER): Update.
8152         * langhooks.h (struct lang_hoooks): New hook parse_file.
8153         * toplev.c (compile_file): Use parse_file hook.
8154         * tree.h (yyparse): Remove.
8155         * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
8156
8157 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
8158
8159         * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
8160         float_truncate, not fix.
8161         ("*truncdfsf2_real"): Ditto.
8162         ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
8163
8164         * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
8165
8166 2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
8167
8168         * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
8169         (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
8170         where appropriate.  Make the second reference to
8171         leaf_function_p a function call, as intended.  Reindented.
8172
8173         * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
8174         * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
8175
8176         * config/mips/mips.md (addsi3, adddi3): Use scratch register to
8177         add register to non-constant into sp.
8178
8179         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
8180         * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
8181         (mips16_gp_pseudo_rtx): Lose.
8182         (INIT_EXPANDERS): Deleted.
8183         * config/mips/mips.c (mips_init_machine_status): New.
8184         (mips_free_machine_status): New.
8185         (mips_mark_machine_status): New.
8186         (override_options): Set them.
8187         (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
8188         (struct machine_function): ... new.  Replaced all references.
8189         (mips_add_gc_roots): Don't mark them.
8190         (embedded_pic_fnaddr_reg): New, extracted from...
8191         (embedded_pic_offset): ... here.
8192         * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
8193         (movsi): Likewise.
8194
8195 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
8196
8197         * cppinit.c: Revert -MD removal.
8198
8199 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8200
8201         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
8202         soft registers by default for 68HC12.
8203         (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
8204         when compiling with -fomit-frame-pointer.
8205         (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
8206         (expand_epilogue): Likewise.
8207         (m68hc11_gen_rotate): Use exg when rotating by 8.
8208
8209 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8210
8211         * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
8212         * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
8213         (splits): Remove unused add splits.
8214         ("*addhi3_68hc12"): Tune constraints.
8215         ("addhi_sp"): Try to use X instead of Y in all cases and if the
8216         constant fits in 8-bits and D is dead use abx/aby instructions.
8217         ("*addhi3"): Remove extern declaration of ix_reg.
8218         ("*subsi3"): Optimize and provide new split.
8219         ("subhi3"): Cleanup.
8220         ("*subhi3_sp"): Avoid saving X if we know it is dead.
8221         (arith splits): For 68hc12 save the address register on the stack
8222         and do the arithmetic operation with a pop.
8223
8224 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8225
8226         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
8227         allocating QImode in address registers.
8228         ("*movqi_m68hc11"): Likewise.
8229
8230 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
8231
8232         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
8233
8234 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
8235
8236         * cppinit.c (print_help): Display -MD and -MMD.
8237         Don't display usage string.  Update assertion syntax and
8238         typo.
8239         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
8240         (cpp_handle_option): Update.
8241
8242 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
8243
8244         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
8245         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
8246         and define it so that regardless of target CPU size,
8247         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
8248         of "int" rather than "long."
8249
8250 2002-03-15  Richard Henderson  <rth@redhat.com>
8251
8252         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
8253         size as a tree.
8254
8255 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8256
8257         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
8258         ("tstqi" split): Avoid using memory for tstqi on address register.
8259         (splits): Remove constraints.
8260         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
8261         ("cmpdf", "cmpsf"): Remove since not used.
8262         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
8263         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
8264
8265 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8266
8267         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
8268         ("neghi2"): Tighten constraints.
8269         ("one_cmplsi2"): Optimize and simplify split.
8270         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
8271
8272 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8273
8274         * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
8275         and split of AND operation to clear the upper bits.
8276         ("*logicalsi3_zextqi"): Likewise.
8277         ("*logicallhi3_zexthi_ashift8"): Likewise.
8278         ("*logicalsi3_silshr16"): Likewise.
8279         ("logicalsi3_silshl16"): Likewise.
8280         ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
8281
8282 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8283
8284         * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
8285         (m68hc11_indirect_p): New function.
8286         (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
8287         (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
8288         TARGET_M6812.
8289         (asm_print_register): Likewise.
8290         * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
8291         (m68hc11_indirect_p): Declare.
8292         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
8293         (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
8294         (TARGET_SWITCHES): New option -mrelax.
8295         * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
8296         destination.
8297         ("iorsi3", "xorsi3"): Likewise.
8298         ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
8299         ("*andhi3_mem"): New to handle destination in memory with bclr
8300         and a scratch register.
8301         ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
8302         ("*andhi3_const"): New when operand2 is constant.
8303         ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
8304         ("*andhi3_gen"): Cleanup of the old "andhi3".
8305         ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
8306         ("xorqi3"): Update constraints.
8307
8308 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8309
8310         * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
8311         for reg_equiv_memory_loc when the operand is a register that does
8312         not get a hard register (stack location).
8313         (tst_operand): After reload, accept all memory operand.
8314         (symbolic_memory_operand): Fix detection of symbolic references.
8315         * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
8316         accept symbols and any constant.
8317
8318 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8319
8320         * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
8321         note on the insn that sets the soft frame register.
8322         (must_parenthesize): ix and iy are also reserved names.
8323         (print_operand_address): One more place where parenthesis are required
8324         to avoid confusion with register names.
8325         (m68hc11_gen_movhi): Allow push of stack pointer.
8326         (m68hc11_check_z_replacement): Fix handling of parallel with a
8327         clobber.
8328         (m68hc11_z_replacement): Must update the REG_INC notes to tell what
8329         the replacement register is.
8330         * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
8331         and D8_REGS classes.
8332         (MODES_TIEABLE_P): All modes are tieable except QImode.
8333
8334 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8335
8336         * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
8337         (___subdi3): Likewise.
8338         (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
8339         (__map_data_section): Optimize 68hc11 case.
8340
8341 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8342
8343         * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
8344         than a shift to avoid adding a register with itself.
8345         (m68hc11_memory_move_cost): Take into account NO_REGS.
8346         (m68hc11_register_move_cost): Update and use memory move cost
8347         for soft registers.
8348         (m68hc11_address_cost): Make cost of valid offset not 0 so that
8349         it gives more opportunities to cse to optimize.
8350         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
8351         * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
8352
8353 2002-03-15  Mark Mitchell  <mark@codesourcery.com>
8354
8355         * c-common.c (statement_code_p): Handle CLEANUP_STMT.
8356         * c-common.def (CLEANUP_STMT): New tree node.
8357         * c-common.h (CLEANUP_DECL): New macro.
8358         (CLEANUP_EXPR): Likewise.
8359         * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
8360         * expr.c (expand_expr): Tidy.
8361         * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
8362         * tree-inline.c (initialize_inlined_parameters): Clean up
8363         new local variables.
8364
8365 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
8366
8367         PR bootstrap/4128
8368         * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
8369         before movrXX only, use reg_overlap_mentioned_p.
8370         Only special case NE if just one insn can be generated.
8371
8372 2002-03-15  Jason Merrill  <jason@redhat.com>
8373
8374         * varasm.c (assemble_variable): Call resolve_unique_section before
8375         checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
8376         of error_mark_node.
8377
8378 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
8379
8380         PR target/5170
8381         * arm.md (split pattern for thumb shiftable immediates): Add comment
8382         explaining non-obvious test.
8383
8384 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
8385
8386         PR target/5712
8387         * arm.md (movaddr, movaddr_insn): Delete.
8388
8389 2002-03-15  Jason Merrill  <jason@redhat.com>
8390
8391         * toplev.c (wrapup_global_declarations): Clarify variable handling.
8392         -fkeep-static-consts doesn't apply to comdats.
8393
8394 2002-03-14  Richard Henderson  <rth@redhat.com>
8395
8396         * c-decl.c: Include c-pragma.h.
8397         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
8398         (finish_function): Tidy.
8399         * c-pragma.c: Include c-common.h.
8400         (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
8401         (handle_pragma_weak): Use them.
8402         (init_pragma): Register pending_weaks.
8403         * c-pragma.h (maybe_apply_pragma_weak): Declare.
8404         * print-tree.c (print_node): Print DECL_WEAK.
8405         * varasm.c (mark_weak_decls): Remove.
8406         (remove_from_pending_weak_list): Remove.
8407         (add_weak): Remove.
8408         (asm_emit_uninitialised): Call globalize_decl for weak commons.
8409         (weak_decls): Make a tree_list.
8410         (declare_weak): Cons weak_decls directly.
8411         (globalize_decl): Remove weak_decls elements directly.
8412         (weak_finish): Simplify weak_decls walk.  Don't weaken unused
8413         symbols.  Don't pretend to handle aliases.
8414         (init_varasm_once): Update weak_decls registry.
8415         * Makefile.in: Update dependencies.
8416
8417 2002-03-14  Richard Henderson  <rth@redhat.com>
8418
8419         PR target/5312
8420         * config/ia64/ia64.c: Include tm_p.h last.
8421         (gen_nop_type): Remove duplicate definition.
8422         (cycle_end_fill_slots): Set sched_data for second L slot.
8423         (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
8424         (nop_cycles_until): Fix typos.
8425
8426 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
8427
8428         PR optimization/5891
8429         * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
8430
8431 2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
8432
8433         * config/ia64/unwind-ia64.c: Handle copy_state and label_state
8434           descriptors correctly.
8435
8436 2002-03-14  Michael Meissner  <meissner@redhat.com>
8437
8438         * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
8439         100, allowing MAX_UNROLLED_INSNS to be overridden.
8440
8441         * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
8442         --param.
8443
8444         * unroll.c (params.h): Include.
8445         (MAX_UNROLLED_INSNS): Delete, now in params.h.
8446
8447         * doc/invoke.texi (--param max-unroll-insns): Document.
8448
8449         * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
8450
8451 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
8452
8453         * arm.md: Fix warnings about constraints in peepholes and splits.
8454
8455 2002-03-14  Zack Weinberg  <zack@codesourcery.com>
8456
8457         * cpphash.h (struct lexer_state): Remove line_extension member.
8458         * cpplib.c (dequote_string, do_linemarker): New functions.
8459         (linemarker_dir): New data object.
8460         (DIRECTIVE_TABLE): No longer need to interpret #line in
8461         preprocessed source.  Delete obsolete comment about return
8462         values of handlers.
8463         (end_directive, directive_diagnostics, _cpp_handle_directive):
8464         Don't muck with line_extension.
8465         (directive_diagnostics): No need to issue warnings for
8466         linemarkers here.
8467         (_cpp_handle_directive): Issue warnings for linemarkers here,
8468         when appropriate.  Dispatch linemarkers to do_linemarker, not
8469         do_line.
8470         (do_line): Code to handle linemarkers split out to do_linemarker.
8471         Convert escape sequences in filename argument, both places.
8472
8473         * cppmacro.c (quote_string): Rename cpp_quote_string and
8474         export.  All callers changed.
8475         * cpplib.h (cpp_quote_string): Prototype.
8476         * cppmain.c (print_line): Call cpp_quote_string on to_file
8477         before printing it.
8478
8479         * doc/cpp.texi: Document that escapes are now interpreted in
8480         #line and in linemarkers, and that non-printing characters are
8481         converted to octal escapes when linemarkers are generated.
8482
8483 Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
8484
8485         * emit-rtl.c (try_split): Use delete_insns.
8486         * recog.c (split_all_insns): Fix terminating condition.
8487
8488 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
8489             Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
8490
8491         PR target/5828
8492         * arm.c (arm_output_epilogue): Fix floating-point register save
8493         adjustment when using a frame pointer.
8494
8495 2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
8496
8497         * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
8498         * config/mips/mips.c (compute_frame_size): Retrofit them here.
8499         (save_restore_insns, mips_expand_epilogue): And here.
8500         (build_mips16_call_stub): And here.
8501         (mips_function_value): Use the new macros to decide whether a single
8502         or complex float can be returned in floating-point registers.  Return
8503         a parallel rtx in the complex case.
8504
8505 Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
8506
8507         * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
8508         call after liveness analysis.
8509
8510         * recog.c (split_insn): Use delete_insn_and_edges.
8511
8512         * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
8513         instructions to have branch prediction notes.
8514         * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
8515
8516 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
8517
8518         * configure.in: Don't pass -Wno-long-long to a ADA compiler
8519         that doesn't support it.
8520         * configure: Regenerate.
8521
8522 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
8523
8524         PR target/5626
8525         * config/sparc/sparc.md (normal_branch, inverted_branch,
8526         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
8527         inverted_fp_branch): Adjust calls to output_cbranch.
8528         Set length attribute.
8529         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
8530         output_v9branch.  Set length attribute.
8531         * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
8532         predicates.
8533         (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
8534         (output_cbranch): Likewise.  Handle far branches.
8535         (output_v9branch): Handle far branches.
8536         * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
8537         Adjust prototypes.
8538         * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
8539         noov_compare64_op predicates.
8540
8541 2002-03-13  Jason Merrill  <jason@redhat.com>
8542
8543         * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
8544         into the function and constify it.
8545         * gthr-dce.h, gthr-solaris.h: Likewise.
8546
8547 2002-03-13  David Edelsohn  <edelsohn@gnu.org>
8548
8549         * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
8550         * config/rs6000/rs6000.c (rs6000_va_arg): Use
8551         std_expand_builtin_va_arg if not ABI_V4.
8552
8553 2002-03-13  Jason Merrill  <jason@redhat.com>
8554
8555         * varasm.c (globalize_decl): New fn.
8556         (assemble_start_function): Use it.
8557         (asm_emit_uninitialized): Use it.
8558         (assemble_alias): Use it.
8559         (assemble_variable): Use it.
8560
8561 2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
8562
8563         * config/cris/cris.c (cris_target_asm_function_prologue): Revert
8564         2002-03-12 internal visibility change.
8565         (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
8566         visibility into SYMBOL_REF_FLAG.
8567
8568 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
8569
8570         * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
8571         VOIDmode operand.  Add compile-time optimization for constant results.
8572
8573 2002-03-12  Jason Merrill  <jason@redhat.com>
8574
8575         * c-typeck.c (convert_for_assignment): Don't allow conversions
8576         between pointers and references.  Only allow lvalues to convert to
8577         reference.
8578
8579 2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
8580
8581         * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
8582         before prologue, to avoid scheduling problems.
8583
8584 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
8585
8586         * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
8587         (ELIMINABLE_REGS): Add sfp->sp.
8588         (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
8589
8590 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
8591
8592         PR optimization/5892
8593         * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
8594
8595 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
8596
8597         * loop.c (basic_induction_var): Don't call convert_modes if mode
8598         classes are different.
8599
8600 2002-03-12  Richard Henderson  <rth@redhat.com>
8601
8602         PR optimization/5901
8603         * function.c (reposition_prologue_and_epilogue_notes): Position
8604         the markers after/before the last/first insn not deleted.
8605
8606 2002-03-12  Richard Henderson  <rth@redhat.com>
8607
8608         PR optimization/5878
8609         * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
8610         config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
8611         (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
8612
8613         * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
8614         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
8615         PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
8616
8617         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
8618         * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
8619         (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
8620         also.  Don't set it if not flag_pic.
8621         * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
8622         to be INVALID_REGNUM when not used.
8623
8624 2002-03-13  Aldy Hernandez  <aldyh@redhat.com>
8625
8626         * expmed.c (store_bit_field): Reset alias set for memory.
8627         (extract_bit_field): Same.
8628
8629 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8630
8631         * c-common.c (c_tree_code_type, c_tree_code_length,
8632         c_tree_code_name, add_c_tree_codes): Delete.
8633         * c-common.h (add_c_tree_codes): Delete.
8634         * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
8635         Define.
8636         * c-objc-common.c (c_objc_common_init): Don't call
8637         add_c_tree_codes, instead set lang_unsafe_for_reeval.
8638         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
8639         objc_tree_code_name, add_objc_tree_codes): Delete.
8640         (objc_init): Don't call add_objc_tree_codes.
8641         * objc/objc-lang.c (tree_code_type, tree_code_length,
8642         tree_code_name): Define.
8643         * toplev.c (lang_independent_init): Don't set
8644         tree_code_length[IDENTIFIER_NODE].
8645         * tree.c (tree_code_type, tree_code_length, tree_code_name):
8646         Delete definitions, moved to language front-ends.
8647         * tree.def (IDENTIFIER_NODE): Hardwire the length.
8648         * tree.h (tree_code_type, tree_code_length, tree_code_name):
8649         Const-ify.
8650         (tree_code_length): Change type to unsigned char.
8651
8652 2002-03-12  Richard Henderson  <rth@redhat.com>
8653
8654         * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
8655         internal visibility change.
8656
8657 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
8658
8659         * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
8660         validize_mem() instead of change_address to avoid clobbering
8661         memory attributes.
8662
8663 2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
8664
8665         * c-lex.h (position_after_whitespace): Remove.
8666
8667 2002-03-12  Jakub Jelinek  <jakub@redhat.com>
8668
8669         * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
8670         (lex_string): Use unsigned char pointers.
8671
8672 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
8673
8674         * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
8675         is not a valid memory_operand.
8676
8677 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
8678
8679         * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
8680         * config/xtensa/lib1funcs.asm: Fix copyright to include
8681         special case for libgcc files.
8682         (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
8683         (__divsi3): Likewise.
8684         (__umodsi3): Likewise.
8685         (__modsi3): Likewise.
8686         * config/xtensa/lib2funcs.S: Fix copyright to include
8687         special case for libgcc files.
8688
8689 2002-03-12  Tom Rix  <trix@redhat.com>
8690
8691         * collect2.c (resolve_lib_name): Move outside of
8692         OBJECT_FORMAT_COFF ifdef.
8693         (ignore_library): Same.
8694
8695 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
8696
8697         * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
8698
8699 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
8700
8701         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
8702         to function_section before writing out the constant pool.
8703
8704 2002-03-12  David Edelsohn  <edelsohn@gnu.org>
8705
8706         * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
8707         zero_constant.
8708         * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
8709
8710 2002-03-12  Alan Modra  <amodra@bigpond.net.au>
8711
8712         * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
8713         (adddi3): Likewise.
8714         (movdf): Likewise.
8715         (movdi): Likewise.
8716         (cmpsi splitter): Likewise.
8717         (modsi3): Fail if <= 0.
8718         * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
8719         redundant test when HOST_BITS_PER_WIDE_INT != 32.
8720         (reg_or_sub_cint64_operand): Likewise.
8721         (num_insns_constant_wide): Optimize sign extension.
8722         (rs6000_legitimize_address): Likewise.
8723
8724 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
8725
8726         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
8727         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
8728
8729 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
8730
8731         * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
8732         address calculation.
8733
8734 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
8735
8736         * config/s390/s390.md (reload_insi, reload_indi): Change mode of
8737         scratch register to DImode / TImode.
8738         config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
8739         register used does not overlap the target.
8740
8741 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8742
8743         * Makefile.in (debug.o): Depend on debug.h.
8744         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
8745         * debug.c (do_nothing_debug_hooks): Likewise.
8746         * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
8747         sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
8748         dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
8749         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
8750         * dwarfout.c (dwarf_debug_hooks): Likewise.
8751         * integrate.c (output_inline_function): Likewise.
8752         * objc/objc-act.c (synth_module_prologue): Likewise.
8753         * sdbout.c (sdb_debug_hooks): Likewise.
8754         * toplev.c (debug_hooks): Likewise.
8755         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
8756
8757 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8758
8759         * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
8760         dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
8761         m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
8762         ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
8763         v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
8764         * defaults.h (POINTER_SIZE): Define.
8765         * doc/tm.texi (POINTER_SIZE): Document default.
8766
8767 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8768
8769         * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
8770
8771 2002-03-11  Richard Henderson  <rth@redhat.com>
8772
8773         * toplev.c (rest_of_compilation): Call purge_all_dead_edges
8774         if rebuild_label_notes_after_reload.
8775
8776 2002-03-12  Hans-Peter Nilsson  <hp@axis.com>
8777
8778         * config/cris/cris.c (cris_target_asm_function_prologue):  Do not
8779         emit pic register load if "internal" visibility.
8780         (cris_print_operand): Avoid traditional-warning for 0xffffffff.
8781         (cris_expand_builtin_va_arg): Do all computations on trees.
8782
8783 2002-03-11  Richard Henderson  <rth@redhat.com>
8784
8785         * rtlanal.c: Include recog.h.
8786         (keep_with_call_p): Fix thinko.
8787         * Makefile.in (rtlanal.o): Update dependencies.
8788
8789 2002-03-11  Chris Meyer  <cmeyer@gatan.com>
8790
8791         * genflags.c (gen_insn): Use IS_VSPACE.
8792         * genoutput.c (output_insn_data): Likewise.
8793         (process_template): Likewise.
8794
8795 2002-03-11  Richard Henderson  <rth@redhat.com>
8796
8797         * toplev.c (rest_of_compilation): Don't compile if we've had errors.
8798
8799 2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
8800
8801         * Makefile.in: Update.
8802         * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
8803         Update documentation.
8804         * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
8805         * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
8806
8807 2002-03-11  Zack Weinberg  <zack@codesourcery.com>
8808
8809         * Makefile.in: Give texi2pod its input file as a command line
8810         argument, not on stdin.
8811
8812 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
8813             Daniel Berlin  <dan@dberlin.org>
8814
8815         C++ alias analysis improvement.
8816         * alias.c (record_component_aliases): Record aliases for base
8817         classes too.
8818
8819 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
8820
8821         * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
8822
8823 2002-03-11  Douglas B Rupp  <rupp@gnat.com>
8824
8825         * toplev.c (vms_fopen): Remove, not needed.
8826
8827         * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
8828
8829         * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
8830
8831         * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
8832         for FP, already done later.
8833
8834         * toplev.c (debug_args): Add entry for VMS_DEBUG.
8835         * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
8836
8837 2002-03-11  Richard Sandiford  <rsandifo@redhat.com>
8838
8839         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
8840         (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
8841         LARGEST_EXPONENT_IS_NORMAL for the given mode.
8842         (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
8843         * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
8844         (ediv, emul, eldexp, esqrt): Likewise.
8845         (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
8846         (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
8847         (saturate): New function.
8848         (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
8849         (make_nan): Use a saturation value instead of a NaN if
8850         LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
8851         * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
8852         inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
8853         zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
8854         (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
8855         (_fpmul_parts, _fpdiv_parts): Only round to nearest if
8856         !ROUND_TOWARDS_ZERO.
8857         * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
8858         (ROUND_TOWARDS_ZERO): Document.
8859
8860 2002-03-11  Andreas Jaeger  <aj@suse.de>
8861
8862         * cfg.c (dump_flow_info): Remove unused variable.
8863
8864 2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>
8865
8866         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
8867         computations on trees.
8868
8869 2002-03-10  Richard Henderson  <rth@redhat.com>
8870
8871         PR 5693:
8872         * reload.c (copy_replacements_1): New.
8873         (copy_replacements): Use it to recurse through the rtx.
8874
8875 2002-03-10  Richard Henderson  <rth@redhat.com>
8876
8877         * loop.c (strength_reduce): Compute number of iterations as
8878         unsigned HOST_WIDE_INT.
8879
8880 2002-03-10  Richard Henderson  <rth@redhat.com>
8881
8882         * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
8883         to move away from the end of the block.
8884
8885 2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
8886
8887         PR preprocessor/5899
8888         * cppinit.c (init_dependency_output): Don't ignore -dM etc.
8889
8890 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8891
8892         * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
8893
8894         * attribs.c (decl_attributes): Fix signed/unsigned warning.
8895
8896 2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>
8897
8898         * config/mmix/mmix.c: Improve comments.
8899         (mmix_target_asm_function_prologue): Drop variable
8900         empty_stack_frame.  Don't allocate unused slot above fp.
8901         (mmix_target_asm_function_epilogue): Mirror prologue changes.
8902         * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
8903         brace in first column.
8904         (enum reg_class): Ditto.
8905         (FIRST_PARM_OFFSET): Now 0.
8906         (USER_LABEL_PREFIX): Remove #if 0:d definition.
8907
8908 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8909
8910         * combine.c (make_extraction): Fix error in last change.
8911
8912 2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8913
8914         * c4x.c (c4x_fp_reglist): Const-ify.
8915         * cris.c (cris_print_operand): Likewise.
8916         * i386.c (ix86_va_arg): Likewise.
8917         * ia64/unwind-ia64.c (unw_decode_table): Likewise.
8918         * m32r.c (m32r_hard_regno_mode_ok): Likewise.
8919         * m32r.h (m32r_hard_regno_mode_ok): Likewise.
8920         * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
8921         * mcore.h (regno_reg_class): Likewise.
8922         * mips.c (gen_int_relational): Likewise.
8923         * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
8924         * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
8925         * pdp11.c (move_costs): Likewise.
8926         * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
8927         * s390.c (s390_branch_condition_mnemonic, regclass_map):
8928         Likewise.
8929         * s390.h (regclass_map): Likewise.
8930         * sh.c (shift_amounts): Likewise.
8931         * sh.md (rotlsi3): Likewise.
8932
8933 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
8934
8935         * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
8936         (ne0+5): Use new clobber to generate proper shift pattern.
8937         Patch by Michael Matz <matz@kde.org>.
8938
8939 2002-03-09  Andreas Schwab  <schwab@suse.de>
8940
8941         * gcc.c (validate_all_switches): Also handle `%W{...}'.
8942
8943 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
8944
8945         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
8946
8947 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
8948
8949         PR middle-end/5877
8950         * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
8951         even for non-representable constants.
8952
8953 Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8954
8955         * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
8956         * function.c (fixup_var_refs): Add MAY_SHARE parameter.
8957         (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
8958         (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
8959         (pop_function_context): Compute MAY_SHARE parameter for
8960         fixup_var_refs.
8961         (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
8962         (gen_mem_addressof): Call fixup_var_refs with new parm.
8963
8964         * combine.c (make_extraction): Don't make extension of CONST_INT.
8965
8966 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
8967
8968         * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
8969         in o32 and o64 ABIs.
8970         * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
8971         but getting fixed-size structs passed in registers regardless of
8972         padding in o32 and o64 ABIs.
8973
8974         * config/mips/mips.c (mips_va_arg): Apply big-endianness address
8975         offset before loading address of argument passed by transparent
8976         reference.
8977
8978 2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8979
8980         * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
8981
8982 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
8983
8984         * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
8985         marker such that registers after it are saved.
8986
8987 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8988
8989         * sparc.c (arith_4096_operand): Fix error in last change.
8990
8991 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
8992
8993         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
8994         defaults for MEABI.
8995
8996 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
8997
8998         * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
8999         vectors.
9000
9001 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
9002
9003         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
9004
9005 Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>
9006
9007         * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
9008         removed; fix return value.
9009         * combine.c (combine_instructions): Dirtify blocks where we failed to
9010         update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
9011         * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
9012
9013 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9014
9015         * gcse.c (insert_insn_end_bb): Fix typo in last change.
9016
9017 Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>
9018
9019         * recog.c (peephole2_optimize): Re-distribute EH edges.
9020
9021 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
9022
9023         * expr.c (expand_expr): Use unsave lang hook.
9024         * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
9025         (LANG_HOOKS_INITIALIZER): Update.
9026         * langhooks.h (struct lang_hooks): New hook unsave.
9027         * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
9028         (unsave_expr_1): Remove unused lang_unsave_expr_now.
9029         (unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
9030         (unsave_expr_now): Remove.
9031         * tree.h (unsave_expr_now, lang_unsave,
9032         lang_unsave_expr_now): Remove.
9033         (lhd_unsave): New.
9034
9035 2002-03-08  Andreas Jaeger  <aj@suse.de>
9036
9037         * flow.c (propagate_block_delete_insn): Remove unused variable.
9038
9039 2002-03-08  Kazu Hirata  <kazu@hxi.com>
9040
9041         * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
9042         insn length for memory load/store.
9043
9044 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
9045
9046         * doc/install.texi (--with-libiconv-prefix): Document.
9047
9048 2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>
9049
9050         * doc/sourcebuild.texi: Fix typo.
9051
9052 2002-03-08  Jakub Jelinek  <jakub@redhat.com>
9053
9054         PR c/3711
9055         * builtins.c (std_expand_builtin_va_arg): Do all computations on
9056         trees.
9057
9058 Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9059
9060         * rtl.c (copy_most_rtx): Move from here ...
9061         * emit-rtl.c (copy_most_rtx): ... to here.
9062
9063 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
9064
9065         * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
9066         SUBTARGET_CPP_SIZE_SPEC.
9067         * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
9068
9069         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
9070
9071 2002-03-07  Matt Hiller  <hiller@redhat.com>
9072
9073         * gensupport.c (first_dir_md_include): Renamed from include;
9074         change all references.
9075         (last_dir_md_include): Renamed from last_include; change all
9076         references.
9077         (init_md_reader): Unconditionally initialize base_dir whether or
9078         not filename is a relative path.
9079
9080 2002-03-07  Alexandre Oliva  <aoliva@redhat.com>
9081
9082         * config/fp-bit.c (_unord_f2): Compile it in even if
9083         US_SOFTWARE_GOFAST is enabled.
9084
9085         * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
9086         NULL_RTX.  Set all HFmode operations as NULL_RTX.
9087         * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
9088         NULL_RTX, try reversing the comparison and the operands.
9089
9090 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
9091
9092         * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
9093         genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
9094         and MATCH_OP_DUP.
9095
9096 Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
9097
9098         * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
9099
9100 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
9101
9102         * basic-block.h (fixup_abnormal_edges): Declare.
9103         * reload1.c (fixup_abnormal_edges): New function.
9104         * reg-stack.c (convert_regs): Use it.
9105
9106         * gcse.c (insert_insn_end_bb): Handle trapping insns.
9107
9108         * gcse.c (hash_scan_set): Refuse instructions with EH edges.
9109
9110 2002-03-07  Richard Sandiford  <rsandifo@redhat.com>
9111
9112         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
9113         (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
9114         * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
9115         (HONOR_SIGN_DEPENDENT_ROUNDING): New.
9116         * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
9117         * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
9118         unless x and y could be infinite.
9119         (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
9120         Check that the common type of both arguments is a real, even for
9121         targets without unordered comparisons.  Allow an integer argument
9122         to be compared against a real.
9123         (expand_tree_builtin): Use expand_unordered_cmp.
9124         * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
9125         * cse.c (fold_rtx): Likewise.  Fix indentation.
9126         * fold-const.c (fold_real_zero_addition_p): New.
9127         (fold): Use it, and the new HONOR_... macros.
9128         * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
9129         * jump.c (reversed_comparison_code_parts): After searching for
9130         the true comparison mode, use HONOR_NANS to decide whether it
9131         can be safely reversed.
9132         (reverse_condition_maybe_unordered): Remove IEEE check.
9133         * simplify-rtx.c (simplify_binary_operation): Use the new macros
9134         to decide which simplifications are valid.  Allow the following
9135         simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
9136         and (a - -b) to (a + b).
9137         (simplify_relational_operation): Use HONOR_NANS.
9138         * doc/tm.texi: Document the MODE_HAS_... macros.
9139
9140 2002-03-07  Richard Earnshaw  <rearnsha@arm.com>
9141
9142         * combine.c (simplify_comparison): If simplifying a logical shift
9143         right and compare with constant, force the comparison to unsigned.
9144
9145 2002-03-07  Aldy Hernandez  <aldyh@redhat.com>
9146
9147         * doc/invoke.texi: Add documentation for -mabi=no-altivec.
9148
9149         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
9150         -mabi=no-altivec
9151         (alt_reg_names): Remove % for vrsave.
9152
9153 2002-03-06  Richard Henderson  <rth@redhat.com>
9154
9155         PR optimization/5844
9156         * genemit.c (gen_exp): New argument used.  Invoke copy_rtx
9157         if used indicates we've already emitted one copy of an operand.
9158         (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
9159         (gen_split): Supply a non-null used.
9160
9161 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
9162
9163         * reload1.c (reload): Unshare all rtl after reload is done.
9164
9165         * simplify-rtx.c (simplify_plus_minus): Do not abort,
9166         but simply fail if the expression is too complex to simplify.
9167         (simplify_gen_binary): Handle simplify_plus_minus failures.
9168
9169 Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>
9170
9171         * toplev.c (rest_of_compilation): Do jump threading before SSA path;
9172         consistently call delete_trivially_dead_insns after CSE and GCSE;
9173         fix DFI_life dumping; do jump threading after liveness; do crossjumping
9174         after liveness2; update comment in last crossjumping.
9175         * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
9176
9177 Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)
9178
9179         * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
9180         after completing fast dead code elimination.
9181
9182         * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
9183         COMPARE operator.
9184
9185 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
9186
9187         * version.c:  Fix misplaced leading blanks on first line.
9188
9189 Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>
9190
9191         * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
9192
9193 Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>
9194
9195         * cfgcleanup.c (mentions_nonequal_regs): New function.
9196         (thread_jump): Use it.
9197         * toplev.c (rest_of_compilation): Run jump threading after
9198         liveness.
9199
9200 2002-03-06  Jakub Jelinek  <jakub@redhat.com>
9201
9202         * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
9203         patch.
9204
9205 Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>
9206
9207         * predict.c (estimate_bb_frequencies): Do not reload the
9208         frequencies from notes.
9209
9210 Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>
9211
9212         * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
9213         * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
9214
9215         * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
9216         delete_noop_moves): Return indeger.
9217         * flow.c (ndead): New variable.
9218         (propagate_block_delete_insn): Use delete_insn_and_edges; remove
9219         BB argument; update callers.
9220         (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
9221         (life_analysis): Do not call purge_all_dead_edges.
9222         (update_life_info): Return number of deleted insns; print statistics.
9223         (update_life_info_in_dirty_blocks): likewise.
9224         (delete_noop_moves): Use delete_insn_and_edges; print statistics;
9225         return number of insns deleted.
9226
9227         * cse.c: Include timevar.h
9228         (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
9229         iterate until stabilizes; print statistics; return number of killed
9230         insns.
9231         * Makefile.in: (cse.o): Add timevar.h dependency
9232         * rtl.h (delete_trivially_dead_insns): New.
9233         * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
9234         * toplev.c (rest_of_compilation): Update callers.
9235
9236         * cfgcleanup.c (try_optimize_cfg): Kill blocks.
9237         (try_optimize_cfg): Do not update liveness.
9238         (cleanup-cfg): Loop until try_optimize_cfg and dead code
9239         removal stabilizes; use delete_trivially_dead_insns.
9240
9241         * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
9242
9243 2002-03-05  Zack Weinberg  <zack@codesourcery.com>
9244
9245         * cppmain.c (setup_callbacks): Disable #pragma and #ident
9246         callbacks when processing assembly language.
9247
9248 2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9249
9250         * pa.h (ASM_FILE_END): Define.
9251         * som.h (ASM_FILE_END): Delete.
9252
9253         * pa.c (function_arg): Don't pass floats in general registers in
9254         indirect calls if TARGET_ELF32.
9255
9256 2002-03-05  Richard Henderson  <rth@redhat.com>
9257
9258         * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
9259
9260 2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
9261
9262         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
9263
9264 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
9265
9266         * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
9267         -r command line.  Don't hide any symbols if not building
9268         shared libgcc.
9269
9270 Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>
9271
9272         * cfg.c (dump_flow_info): Warn about profile mismatches.
9273         * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
9274         (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
9275
9276 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
9277
9278         * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
9279         wide volatile memory by parts.
9280
9281 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
9282
9283         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
9284         is NULL.
9285
9286 2002-03-05  Richard Henderson  <rth@redhat.com>
9287
9288         * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
9289
9290 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
9291
9292         * toplev.c (documented_lang_options): Document more
9293         language-specific options.
9294         * doc/invoke.texi (Warning Options): Correct documentation for
9295         -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
9296         * c-decl.c (c_decode_option): Use a table to handle warning options.
9297
9298 2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
9299
9300         * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
9301         parameter to mmix_encode_section_info.
9302         (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
9303         relocatably.  Always produce ELF, not mmo if linking relocatably.
9304         * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
9305         first is non-zero, don't add symbol prefix.
9306         * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
9307         prototype accordingly.
9308
9309 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
9310
9311         * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
9312
9313 2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>
9314
9315         * configure.in: Increase required makeinfo version to 4.1.
9316         * configure: Regenerate.
9317
9318 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
9319
9320         * .cvsignore: Remove *.info* and genrtl*; these files are generated
9321         elsewhere now.
9322
9323 2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>
9324
9325         * doc/include/texinfo.tex: Update to version 2002-03-01.06.
9326         * doc/invoke.texi: Fix @math uses.
9327
9328 Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
9329
9330         * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
9331         removal
9332
9333 2002-03-03  Aldy Hernandez  <aldyh@redhat.com>
9334
9335         * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
9336         (powerpc-*-eabisimaltivec*): Same.
9337
9338         * config/rs6000/t-ppcendian: New.
9339
9340 2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9341
9342         * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
9343         nonimmediate_src_operand and nonimmediate_lsrc_operand to
9344         disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
9345
9346 2002-03-03  Richard Henderson  <rth@redhat.com>
9347
9348         * toplev.c (rest_of_decl_compilation): Revert last two changes.
9349
9350 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
9351
9352         * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
9353         print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
9354         tree.c, config/m68k/m68k.c:
9355         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
9356         REAL_ARITHMETIC blocks unconditional.  Delete some further
9357         #ifdef blocks predicated on REAL_ARITHMETIC.
9358         * flags.h, toplev.c: Delete remaining references to
9359         flag_pretend_float.
9360
9361         * doc/invoke.texi: Remove documentation of -fpretend-float.
9362         * doc/tm.texi: Describe the various REAL_* macros as provided by
9363         real.h, not by the target configuration files.
9364
9365         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
9366         config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
9367         config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
9368         config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
9369         config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
9370         config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
9371         config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
9372         config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
9373         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
9374         config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
9375         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
9376         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
9377         config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
9378         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
9379         config/xtensa/xtensa.h:
9380         Do not define, undefine, or mention in comments any of
9381         REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
9382         REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
9383         REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
9384         REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
9385         REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
9386         REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
9387         REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
9388         REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
9389         REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
9390
9391 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9392
9393         * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
9394         convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
9395         i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
9396         m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
9397         pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
9398         stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
9399         Delete.
9400         * defaults.h (BITS_PER_WORD): Define.
9401         * doc/tm.texi (BITS_PER_WORD): Document default value.
9402
9403         * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
9404         m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
9405         stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
9406
9407 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9408
9409         * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
9410         lieu of explicit sizeof/sizeof.
9411         * i386.c (override_options, ix86_init_mmx_sse_builtins,
9412         ix86_expand_builtin): Likewise.
9413         * mips.c (mips_add_gc_roots): Likewise.
9414         * mmix.c (mmix_output_condition): Likewise.
9415         * rs6000.c (rs6000_override_options, altivec_expand_builtin,
9416         altivec_init_builtins): Likewise.
9417         * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
9418         * cppexp.c (Nsuff, parse_number): Likewise.
9419         * cppinit.c (builtin_array_end): Likewise.
9420         * gcc.c (n_default_compilers, process_command): Likewise.
9421         * genpreds.c (output_predicate_decls): Likewise.
9422         * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
9423         * lcm.c (N_ENTITIES): Likewise.
9424         * stor-layout.c (set_sizetype): Likewise.
9425
9426 2002-03-03  Richard Henderson  <rth@redhat.com>
9427
9428         * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
9429         for types or labels.
9430
9431 2002-03-03  Richard Henderson  <rth@redhat.com>
9432
9433         * c-decl.c (start_decl): Initialized variables are not common.
9434
9435 2002-03-02  Per Bothner  <per@bothner.com>
9436
9437         * gcc.c (option_map):  Suport new --bootclasspath option.
9438         --CLASSPATH is now just an alias for --classpath.
9439
9440 2002-03-02  Richard Henderson  <rth@redhat.com>
9441
9442         * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
9443         load if "internal" visibility.
9444         * doc/extend.texi: Document visibility meanings.
9445
9446 2002-03-02  Richard Henderson  <rth@redhat.com>
9447
9448         * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
9449         to functions as well.
9450
9451 2002-03-02  Richard Henderson  <rth@redhat.com>
9452
9453         * attribs.c (handle_alias_attribute): Don't call assemble_alias.
9454         (handle_visibility_attribute): Don't call assemble_visibility.
9455         * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
9456         without asmspec.  Invoke assemble_alias when needed.
9457         * varasm.c (maybe_assemble_visibility): New.
9458         (assemble_start_function, assemble_variable, assemble_alias): Use it.
9459
9460 2002-03-02  Richard Henderson  <rth@redhat.com>
9461
9462         * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
9463         invoke ENCODE_SECTION_INFO with first call flag.
9464
9465         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
9466         config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
9467         config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
9468         config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
9469         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
9470         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
9471         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
9472         config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
9473         config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
9474         config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
9475         config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
9476         config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
9477         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
9478         config/m68hc11/m68hc11.h, config/m88k/m88k.h,
9479         config/mcore/mcore-protos.h, config/mcore/mcore.c,
9480         config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
9481         config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
9482         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
9483         config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
9484         config/sh/sh.h, config/sparc/sparc.h,
9485         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
9486         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
9487         config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
9488         FIRST argument.  As needed, examine it and do nothing.
9489
9490         * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
9491         config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
9492         config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
9493
9494         * config/arm/t-pe (pe.o): Add dependencies.
9495
9496 2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9497
9498         * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
9499         cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
9500         i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
9501         mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
9502         pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
9503         vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
9504         * defaults.h (BITS_PER_UNIT): Define.
9505         * doc/tm.texi (BITS_PER_UNIT): Document default value.
9506
9507 2002-03-02  Kazu Hirata  <kazu@hxi.com>
9508
9509         * config/h8300/h8300-protos.h: Add a prototype for
9510         compute_a_shift_length.
9511         * config/h8300/h8300.c (h8300_asm_insn_count): New.
9512         (compute_a_shift_length): Likewise.
9513         (h8300_adjust_insn_length): Do not adjust insn length of shift
9514         insns.
9515         * config/h8300/h8300.md (anonymous shift patterns): Use
9516         compute_a_shift_length.
9517
9518 Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9519
9520         * config/sparc/sparc.c (sparc_initialize_trampoline): Use
9521         trunc_int_for_mode.
9522
9523         * emit-rtl.c (offset_address): Call update_temp_slot_address.
9524
9525 2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9526
9527         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
9528         * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
9529         * flags.h (flag_zero_initialized_in_bss): Declare.
9530         * toplev.c (flag_zero_initialized_in_bss): New flag.
9531         (lang_independent_options): Add flag_zero_initialized_in_bss.
9532         * tree.c (initializer_zerop): New function.
9533         * tree.h (initializer_zerop): Declare.
9534         * varasm.c (assemble_variable): If we can emit bss, put zero
9535         initializers in the bss section.
9536
9537 2002-03-02  Alan Modra  <amodra@bigpond.net.au>
9538
9539         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
9540         like more than one symbol per .weak directive.
9541
9542 2002-03-01  Richard Henderson  <rth@redhat.com>
9543
9544         * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
9545         adjust argument_pointer by pretend_args_size.
9546         (ia64_va_start): Adjust va_start address by -pretend_args_size.
9547
9548 2002-03-01  Kazu Hirata  <kazu@hxi.com>
9549
9550         * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
9551
9552 Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
9553
9554         * toplev.c (rest_of_compilation): Delete dead jumptables before
9555         loop.
9556         * flow.c (delete_dead_jumptables): Make global.
9557         * rtl.h (delete_dead_jumptables): Declare.
9558
9559 2002-03-01  David Edelsohn  <edelsohn@gnu.org>
9560
9561         * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
9562         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
9563         * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.
9564
9565 2002-03-01  Kazu Hirata  <kazu@hxi.com>
9566
9567         * config/h8300/h8300-protos.h: Fix formatting.
9568         * config/h8300/h8300.c: Likewise.
9569         * config/h8300/h8300.h: Likewise.
9570
9571 2002-03-01  Kazu Hirata  <kazu@hxi.com>
9572
9573         * config/h8300/h8300.c (print_operand): Support 16-bit
9574         constant addresses.
9575         * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
9576
9577 2002-02-28  Richard Henderson  <rth@redhat.com>
9578
9579         * expmed.c (store_bit_field): Prevent generation of CONCATs;
9580         pun complex values as integers; use gen_lowpart instead of
9581         gen_rtx_SUBREG.
9582         (extract_bit_field): Likewise.
9583
9584 2002-03-01  Alan Modra  <amodra@bigpond.net.au>
9585             David Edelsohn  <edelsohn@gnu.org>
9586
9587         * doc/tm.texi (ASM_WEAKEN_DECL): Document.
9588         (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
9589         (SUPPORTS_WEAK): Likewise.
9590         * output.h (add_weak): Add tree param.
9591         * varasm.c (add_weak): Likewise.  Save decl.
9592         (struct weak_syms): Add decl field.
9593         (mark_weak_decls): New function.
9594         (init_varasm_once): ggc_add_root mark_weak_decls.
9595         (assemble_start_function): Use ASM_WEAKEN_DECL.
9596         (assemble_variable): Likewise.
9597         (assemble_alias): Likewise.
9598         (declare_weak): Pass decl to add_weak.
9599         (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
9600         (remove_from_pending_weak_list): Declare and define for
9601         ASM_WEAKEN_DECL.
9602         * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
9603         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
9604         * defaults.h (SUPPORTS_WEAK): Likewise.
9605         * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
9606         .weak for code sym.  Do emit .size for descriptor sym.
9607         (ASM_DECLARE_FUNCTION_SIZE): Define.
9608         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
9609         (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
9610         .lglobl unless TARGET_XCOFF.  Formatting fixes.
9611         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
9612         .weak for code sym.
9613         (HANDLE_PRAGMA_WEAK): Remove.
9614         (ASM_WEAKEN_LABEL): Remove.
9615         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
9616
9617 2002-03-01  Jason Merrill  <jason@redhat.com>
9618
9619         * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
9620         (TARGET_EXPR_CLEANUP): New macro.
9621
9622 2002-02-28  Steve Ellcey  <sje@cup.hp.com>
9623
9624         * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
9625         to take ptr_extend into account as third type of extension.
9626         (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
9627         fields used by SUBREG_PROMOTED_UNSIGNED_P.
9628         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
9629         (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
9630         * calls.c (precompute_arguments): Use new macro.
9631         (expand_call): Ditto.
9632         * combine.c (nonzero_bits): Ditto.
9633         (record_promoted_value): Ditto.
9634         * expr.c (store_expr): Ditto.
9635         (expand_expr): Ditto.
9636         * function.c (assign_parms): Ditto.
9637
9638 2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
9639
9640         * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
9641         override -shared and -shared-libgcc.
9642
9643 2002-02-28  David O'Brien  <obrien@FreeBSD.org>
9644
9645         * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
9646         of "ultrasparc".
9647         * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
9648         to be broken.
9649
9650 2002-02-28  Richard Henderson  <rth@redhat.com>
9651
9652         * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
9653         4 cycle latency from MM producers.
9654         (ia64_internal_sched_reorder): Likewise with pipeline flush.
9655
9656 2002-02-28  Jakub Jelinek  <jakub@redhat.com>
9657
9658         * mklibgcc.in: Don't use GNU make extension.
9659
9660 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
9661
9662         * c-parse.in (STATIC): New terminal.
9663         (scspec): New non-terminal.  Update productions accordingly.
9664         (program): Remove bogus ifc / end ifc.
9665         (array_declarator): Simplify production using STATIC.
9666
9667 2002-02-28  Jim Meyering  <meyering@lucent.com>
9668
9669         * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
9670         \a still means TARGET_BELL.
9671
9672 2002-02-28  Richard Henderson  <rth@redhat.com>
9673
9674         * haifa-sched.c (sched_emit_insn): New.
9675         (schedule_block): Use last_scheduled_insn to track last insn.
9676         * sched-int.h (sched_emit_insn): Prototype.
9677         * config/ia64/ia64.c (last_issued): Remove.
9678         (ia64_variable_issue): Don't set it.
9679         (nop_cycles_until): Use sched_emit_insn.
9680
9681 2002-02-28  Andrew MacLeod  <amacleod@redhat.com>
9682
9683         * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
9684         extended constants.
9685
9686 2002-02-28  Kazu Hirata  <kazu@hxi.com>
9687
9688         * config/h8300/h8300.c: Fix formatting.
9689         * config/h8300/h8300.h: Likewise.
9690
9691 2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
9692
9693         * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
9694         which may overwrite the high byte of the frame pointer.
9695
9696 2002-02-28  Bo Thorsen  <bo@suse.de>
9697
9698         * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
9699         (STARTFILE_SPEC): Add 64 bit files.
9700         (ENDFILE_SPEC): Likewise.
9701
9702 2002-02-28  Jason Merrill  <jason@redhat.com>
9703
9704         * c-decl.c (finish_function): Only warn about missing return
9705         statement with -Wreturn-type.
9706
9707 Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>
9708
9709         * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
9710
9711         * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
9712         PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
9713
9714 Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>
9715
9716         * basic-block.h (BB_REACHABLE): Renumber.
9717         (BB_DIRTY, BB_NEW): New flags.
9718         (clear_bb_flags): Declare.
9719         (update_life_info_in_dirty_blocks): Declare.
9720         * cfg.c (clear_bb_flags): New function.
9721         * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
9722         * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
9723         reorder_insns, emit_insn_after): Mark block as dirty.
9724         * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
9725         (update_life_info_in_dirty_blocks): New function.
9726         * recog.c (apply_change_group): Dirtify block.
9727
9728         * cse.c (cse_insn): Reorder emitting of jump insn to keep
9729         cfg consistent.
9730         * gcse.c (delete_null_pointer_checks): Likewise.
9731
9732         * toplev.c (dump_file_index): Move cse2 after bp,
9733         add DFI_null
9734         (dump_file_info): Similary.
9735         (rest_of_compilation): Avoid most of CFG rebuilds;
9736         do first if converision after null pointer checks, do cse2
9737         after branch prediction; avoid full liveness rebuild after
9738         initializing subregs.
9739         * invoke.texi (-d options): Document -du, renumber.
9740
9741         * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
9742         (notice_new_block): Do not set BB_UPDATE_LIFE.
9743         (try_forward_edges, merge_blocks_move_predecessor_nojumps,
9744          merge_blocks_move_successor_nojumps, merge_blocks,
9745          try_crossjump_to_edge): Likewise.
9746         (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
9747         * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
9748         * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
9749         (merge_of_block): Do not use life_data_ok.
9750         (find_if_case_1): Do not use SET_UPDATE_LIFE.
9751         (if_convert): Use BB_DIRTY mechanizm to update life.
9752         * lcm.c (optimize_mode_switching): Update
9753         update_life_info_in_dirty_blocks
9754
9755 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
9756
9757         * Makefile.in (integrate.o): Update.
9758         * c-decl.c (copy_lang_decl): Rename.
9759         * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
9760         * integrate.c: Include langhooks.h.
9761         (copy_decl_for_inlining): Update to use langhook.
9762         * langhooks-def.h (lhd_do_nothing_t,
9763         LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
9764         (LANG_HOOKS_INITIALIZER): Update.
9765         * langhooks.c (lhd_do_nothing_t): New.
9766         * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
9767         * tree.h (copy_lang_decl): Remove.
9768 objc:
9769         * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
9770
9771 2002-02-27  Andrew MacLeod  <amacleod@redhat.com>
9772
9773         * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
9774         POST_DEC, and POST_MODIFY.
9775
9776 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
9777
9778         * c-typeck.c (digest_init): Remove unused parameter; all
9779         callers changed.
9780
9781 2002-02-27  Geoffrey Keating  <geoffk@redhat.com>
9782
9783         * expmed.c (expand_shift): Correctly test for low part of a
9784         subreg.
9785
9786 2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>
9787
9788         * config/s390/s390.c (s390_chunkify_pool): Do not confuse
9789         insn UIDs with insn addresses.
9790
9791 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
9792
9793         * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
9794         c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
9795         cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
9796         builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
9797         gcc.c, toplev.c: Delete code implementing -traditional mode.
9798
9799         * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
9800         doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
9801         Document removal of -traditional mode for compilation, and
9802         remove documentation only relevant to that mode.
9803
9804         * config/nextstep.h, config/ptx4.h, config/svr4.h,
9805         config/convex/convex.h, config/d30v/d30v.h,
9806         config/i386/dgux.h, config/i386/osf1elf.h,
9807         config/i386/osfelf.h, config/i386/osfrose.h,
9808         config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
9809         config/m68k/hp310.h, config/m88k/dgux.h,
9810         config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
9811         config/m88k/m88k.h, config/m88k/openbsd.h,
9812         config/mips/abi64.h, config/mips/osfrose.h,
9813         config/mips/svr4-5.h, config/mips/svr4-t.h,
9814         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
9815         config/stormy16/stormy16.h: Remove all references to
9816         -traditional from target specs.  Delete all mention of the
9817         no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
9818         delete a couple of commented-out definitions of
9819         DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
9820         to -traditional.
9821
9822         * system.h: Poison TRADITIONAL_RETURN_FLOAT.
9823         * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
9824
9825 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
9826
9827         * mklibgcc.in: Don't use \n in a line subject to
9828         interpretation by echo.
9829
9830 2002-02-27  Graham Stott  <grahams@redhat.com>
9831
9832         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
9833         Constify NAME.
9834
9835         * loop.c (prescan_loop): Handle PARALLEL.
9836
9837         * unroll.c (loop_iterations): Return 0 if the add_val for
9838         a BIV is REG.
9839
9840         * final.c (output_operand_lossage): Constify PFX_STR.
9841
9842         * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
9843
9844 Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>
9845
9846         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
9847         * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
9848
9849 Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>
9850
9851         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
9852
9853 2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>
9854
9855         * cpplex.c (_cpp_lex_token): Handle directives in macro
9856         arguments.
9857         * cpplib.c (_cpp_handle_directive): Save and restore state
9858         if parsing macro args when entering a directive.
9859         * cppmacro.c (collect_args): No need to handle directives
9860         in macro arguments.
9861         (enter_macro_context, replace_args): Use the original macro
9862         definition in case it was redefined whilst collecting arguments.
9863 doc:
9864         * cpp.texi: Update.
9865
9866 2002-02-26  David Edelsohn  <edelsohn@gnu.org>
9867
9868         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
9869         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
9870         * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
9871         method on AIX.
9872         * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
9873         (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
9874         (load_toc_v4_PIC_2): Same.
9875
9876 2002-02-26  Alan Modra  <amodra@bigpond.net.au>
9877
9878         * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
9879
9880 2002-02-26  Richard Henderson  <rth@redhat.com>
9881
9882         * config/alpha/alpha.md (ashldi_se): Re-enable.
9883
9884 2002-02-26  Richard Henderson  <rth@redhat.com>
9885
9886         * config/alpha/alpha.c (alpha_encode_section_info): Examine
9887         MODULE_LOCAL_P; improve commentary.
9888
9889 2002-02-26  Zack Weinberg  <zack@codesourcery.com>
9890
9891         * doc/cpp.texi: Clarify documentation of relationship between
9892         #line and #include.
9893
9894 2002-02-26  Kazu Hirata  <kazu@hxi.com>
9895
9896         * config/h8300/h8300-protos.h: Update the prototype for
9897         compute_logical_op_length.  Add the prototype for
9898         compute_logical_op_cc.
9899         * config/h8300/h8300.c (compute_logical_op_length): Figure out
9900         code from operands.
9901         (compute_logical_op_cc): New.
9902         * config/h8300/h8300.md: Combine all the logical op patterns
9903         in HImode and SImode.  Use compute_logical_op_cc.
9904
9905 2002-02-26  Kelley Cook  <kelleycook@comcast.net>
9906
9907         * config/i386/i386.c (print_operand): Don't append ATT-style
9908         length suffixs to x87 opcodes when in Intel mode.
9909
9910 2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>
9911
9912         * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
9913         (init_emit_once): Update calls.
9914         * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
9915         (init_syntax_once): Prototype.
9916
9917 2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9918
9919         * pa-linux.h (LIB_SPEC): Update definition.
9920         * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
9921
9922 2002-02-26  Richard Henderson  <rth@redhat.com>
9923
9924         * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
9925         if we emitted a stop bit.
9926
9927 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
9928
9929         * configure.in (libgcc_visibility): Substitute.
9930         * configure: Rebuilt.
9931         * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
9932         defined symbols .hidden.
9933
9934 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
9935
9936         * attribs.c (c_common_attribute_table): Add visibility.
9937         (handle_visibility_attribute): New function.
9938         * varasm.c (assemble_visibility): New function.
9939         * output.h (assemble_visibility): Add prototype.
9940         * tree.h (MODULE_LOCAL_P): Define.
9941         * crtstuff.c (__dso_handle): Use visibility attribute.
9942         * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
9943         for MODULE_LOCAL_P symbols too.
9944         * config/ia64/ia64.c (ia64_encode_section_info): Handle
9945         MODULE_LOCAL_P symbols the same way as local symbols.
9946         Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
9947         into .sdata/.sbss by the user.
9948         * doc/extend.texi (Function Attributes): Document visibility
9949         attribute.
9950
9951 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
9952
9953         PR debug/5770
9954         * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
9955         STRING_CST initializer spanning the whole variable without
9956         embedded zeros.
9957         If expand_expr returned MEM, don't use it.
9958
9959 2002-02-26  Alexandre Oliva  <aoliva@redhat.com>
9960
9961         * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
9962         generate a die for the lexical block.
9963
9964 2002-02-26  Kazu Hirata  <kazu@hxi.com>
9965
9966         * config/h8300/h8300-protos.h: Add a prototype for
9967         compute_logical_op_length.
9968         * config/h8300/h8300.c (compute_logical_op_length): New.
9969         * config/h8300/h8300.md (anonymous logical patterns): Use
9970         compute_logical_op_length for length.
9971
9972 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
9973
9974         * dwarf2out.c (modified_type_die): Do not call type_main_variant
9975         for vectors.
9976         (gen_type_die): Same.
9977
9978         * attribs.c (handle_vector_size_attribute): Set debug information.
9979
9980 2002-02-26  Daniel Egger  <degger@fhm.edu>
9981
9982         * config/rs6000/rs6000.md: Swap define_insn attributes to
9983         fix incorrect generation of merge high instructions instead
9984         of merge low.
9985
9986 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
9987
9988         * c-typeck.c (really_start_incremental_init): Use
9989         bitsize_zero_node for vectors.
9990
9991 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
9992
9993         * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
9994         ("*set_vrsave_internal"): Same.
9995
9996 2002-02-25  Richard Henderson  <rth@redhat.com>
9997
9998         * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
9999         in EXPAND_SUM case.  Use host_integerp/tree_low_cst.
10000
10001 2002-02-25  Jakub Jelinek  <jakub@redhat.com>
10002
10003         PR target/5755
10004         * config/i386/i386.c (ix86_return_pops_args): Only pop
10005         fake structure return argument if it was passed on the stack.
10006
10007 2002-02-25  Jason Merrill  <jason@redhat.com>
10008
10009         * attribs.c (decl_attributes): Also re-layout PARM_DECL and
10010         RESULT_DECL.
10011
10012 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
10013
10014         * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
10015         link with shared_name only.
10016         * doc/invoke.texi (Link Options): Document new behavior.
10017
10018 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
10019
10020         * c-typeck.c (push_init_level): Handle vectors.
10021
10022 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
10023
10024         * config/sparc/sparc.c (const64_high_operand): Zero-extend
10025         operands of SPARC_SETHI_P.
10026         (input_operand): Likewise.
10027         (sparc_emit_set_const32): Likewise.
10028         * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
10029         (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
10030         (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
10031         * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
10032         (movdi_insn_sp64_vis): Likewise.
10033         (movdi split, movdf split): Use SETHI32.
10034         * doc/md.texi: Document SPARC constraints L, M and N.
10035
10036 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
10037
10038         * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
10039         ("*set_vrsave_internal"): use mfspr for Darwin.
10040
10041         * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
10042         gen_get_vrsave_internal.
10043
10044 Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10045
10046         * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
10047
10048 2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>
10049
10050         * cpplex.c (cpp_interpret_charconst): Get signedness or
10051         otherwise of wide character constants correct.
10052         * cppexp.c (lex): Get signedness of wide charconsts correct.
10053
10054 Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10055
10056         * optabs.c (widen_operand): Only call convert_modes for
10057         promoted SUBREG if signedness matches.
10058         * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
10059
10060 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
10061
10062         * cpplib.c (glue_header_name): Use local buffer to build up
10063         header name.
10064
10065 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
10066
10067         * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
10068
10069 2002-02-23  Kazu Hirata  <kazu@hxi.com>
10070
10071         * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
10072         H8/300[HS] separately.
10073         * config/h8300/h8300.md: Remove the early clobber constraint
10074         from bit field patterns.
10075
10076 2002-02-23  Kazu Hirata  <kazu@hxi.com>
10077
10078         * config/h8300/h8300.md (mulqihi3): Tighten predicates to
10079         register_operand.
10080         (mulhisi3): Likewise.
10081         (umulqisi3): Likewise.
10082         (umulhisi3): Likewise.
10083
10084 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
10085
10086         * cppinit.c (output_deps): Correct test for stdout output.
10087         (init_dependency_output): Cure warning.
10088
10089 Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10090
10091         * expr.c (store_expr): When converting expression to promoted
10092         equivalent type, allow using SUBREG_REG of TARGET as the target
10093         of the expansion of EXP.
10094         * loop.c (basic_induction_var, case SUBREG): Always look inside.
10095         * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
10096         (alpha_emit_set_const): Handle SImode when can't make new pseudos.
10097         (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
10098         * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
10099
10100 2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>
10101
10102         * doc/contribute.texi, doc/extend.texi, doc/install.texi,
10103         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
10104         doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
10105
10106 2002-02-23  Jakub Jelinek  <jakub@redhat.com>
10107
10108         PR optimization/5747
10109         * loop.c (scan_loop): Update reg info if move_movables created new
10110         pseudos.
10111
10112 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
10113
10114         * gcc.c (init_gcc_spec): Revert last change.
10115
10116 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
10117
10118         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
10119         gpc_reg_operand constraint.
10120
10121 2002-02-23  Alan Modra  <amodra@bigpond.net.au>
10122
10123         * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
10124         Simplify comparison of `low'.
10125         (add_operand): Fix formatting.
10126         (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
10127         (mask_operand): Disallow mask to wrap in 64-bit mode.
10128         (rs6000_stack_info): Remove redundant test setting push_p.
10129         (output_toc): Fix formatting.
10130         * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
10131         cc_reg_not_cr0_operand constraint.
10132         (booldi3, boolcdi3 splitters): Same.
10133
10134 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
10135
10136         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
10137
10138 2002-02-22  David Edelsohn  <edelsohn@gnu.org>
10139
10140         * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
10141         gcc invoked with -shared-libgcc.
10142
10143 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
10144
10145         PR c++/5748
10146         * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
10147         decl if any of elements was TREE_USED.
10148
10149 2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
10150
10151         * config/sparc/sol2.h: Don't include sys/mman.h.
10152         * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
10153         (arith_4096_operand): Don't throw high bits away.
10154         (const64_operand): Take sign extension of CONST_INTs into account.
10155         (const64_high_operand, sparc_emit_set_const32): Likewise.
10156         (GEN_HIGHINT64): Likewise.
10157         (sparc_emit_set_const64_quick1): Likewise.
10158         (const64_is_2insns): Likewise.
10159         (print_operand): Use trunc_int_for_mode for sign extension.
10160         * config/sparc/sparc.h (SMALL_INT32): Likewise.
10161         * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
10162         chars.  Assume CONST_INT is already properly sign-extended.
10163         (movdi split): Sign-extend each SImode part.
10164         (andsi3 split): Don't mask high bits off, so that result
10165         remains properly sign-extend.
10166         (iorsi3 split): Likewise.
10167         (xorsi3 split): Likewise.
10168
10169 2002-02-22  Richard Sandiford  <rsandifo@redhat.com>
10170
10171         * fold-const.c (fold): Fix typo in comments.
10172
10173 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
10174
10175         * Makefile.in (langhooks.o): Update dependencies.
10176
10177 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
10178
10179         * langhooks.c: Include flags.h.
10180
10181 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
10182
10183         * testsuite/gcc.dg/attr-alwaysinline.c: New.
10184
10185         * c-common.c (c_common_post_options): Set inline trees by
10186         default.
10187
10188         * doc/extend.texi (Function Attributes): Document always_inline
10189         attribute.
10190         Update documentation about inlining when not optimizing.
10191
10192         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
10193
10194         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
10195         unless DECL_ALWAYS_INLINE.
10196
10197         * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
10198         unless DECL_ALWAYS_INLINE.
10199         (c_disregard_inline_limits): Disregard if always_inline set.
10200
10201         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
10202         Disregard if always_inline set.
10203         (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
10204         unless DECL_ALWAYS_INLINE.
10205
10206         * attribs.c (handle_always_inline_attribute): New.
10207         (c_common_attribute_table): Add always_inline.
10208
10209         * config/rs6000/altivec.h: Add prototypes for builtins
10210         requiring the always_inline attribute.
10211
10212 2002-02-21  Eric Christopher  <echristo@redhat.com>
10213
10214         * expmed.c (store_bit_field): Try to simplify the subreg
10215         before generating a new one when when the mode size of
10216         value is less than maxmode.
10217
10218 2002-02-21  Richard Henderson  <rth@redhat.com>
10219
10220         * emit-rtl.c (offset_address): Use simplify_gen_binary rather
10221         than gen_rtx_PLUS to form the sum.
10222         * explow.c (force_reg): Rearrange to not allocate new pseudo
10223         when force_operand returns a register.
10224         * expr.c (expand_assignment): Allow offset_rtx expansion to
10225         return a sum.  Do not force addresses into registers.
10226         (expand_expr): Likewise.
10227         * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
10228         to canonicalize arithmetic that didn't simpify.
10229         (simplify_plus_minus): New argument force; update
10230         all callers.  Don't split CONST unless we can do something with it,
10231         and wouldn't lose the constness of the operands.
10232
10233         * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
10234         that we generated earlier.
10235
10236 2002-02-21  Tom Tromey  <tromey@redhat.com>
10237
10238         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
10239         (output_line_info): Use constant `1', with a long explanatory
10240         comment.
10241         * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
10242
10243 Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
10244
10245         * jump.c (redirect_jump): If old label has no UID, don't try to
10246         delete it.
10247
10248 Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>
10249
10250         * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
10251         If input is constant, do shifts at compile time.
10252
10253 2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>
10254
10255         * doc/extend.texi: Fix some more overfull hboxes.
10256
10257 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
10258
10259         PR optimization/4994
10260         * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
10261         register moves.
10262
10263 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
10264
10265         PR c++/4574
10266         * expr.h (expand_and): Add mode argument.
10267         * expmed.c (expand_and): Add mode argument.
10268         (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
10269         * expr.c (store_field, expand_expr, do_store_flag): Likewise.
10270         * except.c (expand_builtin_extract_return_addr): Likewise.
10271         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
10272         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
10273         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
10274         Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
10275         * config/c4x/c4x.md: Use GEN_INT (x) instead of
10276         gen_rtx (CONST_INT, VOIDmode, x).
10277
10278 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
10279
10280         PR c/4697:
10281         * stmt.c (warn_if_unused_value): Move side effects test once more.
10282
10283 2002-02-20  Torbjorn Granlund  <tege@swox.com>
10284
10285         * config/avr/avr.md: Add more patterns for mized-mode add and subtract
10286         (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
10287
10288 Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>
10289
10290         * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
10291         SUBREG or ZERO_EXTEND.
10292
10293 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
10294
10295         * sh.h (current_function_anonymous_args): Remove.
10296         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
10297         of current_function_varargs and current_function_stdarg is set.
10298         * sh.c (sh_expand_prologue): Check current_function_varargs /
10299         current_function_stdarg / TARGET_SH5 instead of
10300         current_function_anonymous_args.
10301
10302         * sh64.h (TARGET_VERSION): Define.
10303
10304 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
10305
10306         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
10307         VRSAVE_REGNO on TARGET_ALTIVEC.
10308
10309 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
10310
10311         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
10312         bits of SImode const_int.
10313         (includes_rshift_p): Likewise.
10314         (print_operand): Call mask_operand and mask64_operand with correct
10315         mode.
10316         (rs6000_output_function_epilogue): Pad traceback table to word.
10317         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
10318         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
10319         mask64_operand with correct mode.
10320         (FUNCTION_ARG_REGNO_P): Correct parentheses.
10321
10322 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
10323
10324         PR debug/4461
10325         * varasm.c (get_pool_constant_mark): New.
10326         * rtl.h (get_pool_constant_mark): Add prototype.
10327         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
10328         be represented if it has not been output.
10329
10330 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
10331
10332         * combine.c (do_SUBST): Sanity check substitutions of
10333         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
10334         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
10335         CONST_INT into its operand.
10336         (known_cond): Likewise, for ZERO_EXTEND.
10337         * simplify-rtx.c (simplify_unary_operation): Fix condition to
10338         allow for simplification of wide modes.  Reject CONST_INTs in
10339         ZERO_EXTEND when their actual mode is not given.
10340
10341 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
10342
10343         * c-decl.c (pushdecl): If no global declaration is found for an
10344         extern declaration in block scope, try a limbo one.
10345
10346 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
10347
10348         PR c++/4401
10349         * c-common.c (pointer_int_sum): Moved from...
10350         * c-typeck.c (pointer_int_sum): ...here.
10351         * c-common.h (pointer_int_sum): Add prototype.
10352
10353 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
10354
10355         PR c++/5713
10356         * c-decl.c (duplicate_decls): Return 0 if issued error about
10357         redeclaration.
10358
10359 2002-02-20  Roger Sayle  <roger@eyesopen.com>
10360             Jakub Jelinek  <jakub@redhat.com>
10361
10362         PR c/4389
10363         * tree.c (host_integerp): Ensure that the constant integer is
10364         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
10365         when pos is zero or non-zero respectively.  Clarify comment.
10366         * c-format.c (check_format_info_recurse): Fix host_integerp
10367         usage; the pos argument should be zero when assigning to a
10368         signed HOST_WIDE_INT.
10369
10370 2002-02-20  Richard Henderson  <rth@redhat.com>
10371
10372         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
10373         of the operand, rather than assuming TImode.
10374         (ix86_expand_binop_builtin): Cope with commutative patterns
10375         using nonimmediate_operand for both operands.
10376         (ix86_expand_timode_binop_builtin): Likewise.
10377         (ix86_expand_store_builtin): Validate operand 1.
10378         (ix86_expand_unop1_builtin): Likewise.
10379
10380 2002-02-20  Philip Blundell  <philb@gnu.org>
10381
10382         PR 5705
10383         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
10384
10385 2002-02-20  Richard Henderson  <rth@redhat.com>
10386
10387         PR c/5615
10388         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
10389
10390 2002-02-20  Tom Tromey  <tromey@redhat.com>
10391
10392         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
10393         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
10394         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
10395         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
10396         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
10397         unconditionally.
10398
10399 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
10400
10401         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
10402           for (const_int 0) in X not just INTVAL.
10403
10404 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
10405
10406         * doc/extend.texi: Avoid or reduce overfull hboxes.
10407
10408 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
10409
10410         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
10411         operations if the field does not start at a mode boundary.
10412
10413 2001-02-20      Joel Sherrill <joel@OARcorp.com>
10414
10415         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
10416         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
10417         Also done for -Acpu and -Amachine.
10418
10419 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
10420
10421         * cppinit.c (init_dependency_output): Take deps output file
10422         from -o if none given with -MF.  Suppress normal output.
10423         * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
10424         * doc/cpp.texi, doc/invoke.texi: Update.
10425
10426 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
10427
10428         * toplev.c (output_quoted_string): Write unprintable
10429         characters with octal escapes.
10430
10431 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
10432
10433         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
10434         really_call_used[VRSAVE_REGNO] if not Altivec.
10435
10436 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
10437
10438         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
10439         MODE_MASK.
10440         (constant_pool_expr_1): Fix formatting.
10441         (rs6000_legitimize_reload_address): Likewise.
10442
10443 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10444
10445         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
10446         now that we have one.
10447
10448 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
10449
10450         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
10451         end of first block of bitfields (which was only seven bits);
10452         rename dummy to unused_1; remove comment which is no longer true.
10453
10454 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
10455
10456         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
10457
10458 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
10459
10460         PR 5399
10461         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
10462         if generating PIC.
10463
10464         PR 5054
10465         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
10466         arm_is_longcall_p rather than inspecting call-type cookie
10467         directly.
10468         (call_value_insn) [TARGET_THUMB]: Likewise.
10469
10470 2002-02-19  Graham Stott  <grahams@redhat.com>
10471
10472         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
10473
10474 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
10475
10476         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
10477         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
10478         (FP_SAVE_INLINE): Delete.
10479
10480         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
10481         * config/rs6000/eabi.asm: Remove ABI save restore routines.
10482         * config/rs6000/t-ppccomm: Build crtsavres.o.
10483         * config/rs6000/crtsavres.asm: New file.
10484
10485 2002-02-19  Philip Blundell  <philb@gnu.org>
10486
10487         * config/arm/arm.c (use_return_insn): Don't reject interrupt
10488         functions.
10489         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
10490         (output_return_instruction): Allow interrupt functions to return with
10491         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
10492         (arm_expand_prologue): Subtract 4 before stacking LR in an
10493         interrupt function.
10494
10495 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
10496
10497         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
10498         decl, not just FUNCTION_DECL.
10499         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
10500         (arm_assemble_integer): Likewise.
10501         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
10502         marked local.
10503
10504 2002-02-19  matthew green  <mrg@eterna.com.au>
10505
10506         * config.gcc (sparc-*-netbsdelf*): Enable target.
10507         (sparc64-*-netbsd*): New target.
10508         * config/sparc/netbsd-elf.h: New file.
10509         * config/sparc/t-netbsd64: New file.
10510
10511 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
10512
10513         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
10514
10515 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
10516
10517         * doc/invoke.texi: explicitly list the style guidelines that
10518         -Weffc++ checks for.
10519
10520 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
10521
10522         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
10523
10524 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
10525
10526         PR other/5718
10527         * gcc.c (cpp_unique_options): Treat -o as indicating object file
10528         only if not -E.  If -E, pass -o through to the preprocessor.
10529
10530 2002-02-19  Kazu Hirata  <kazu@hxi.com>
10531
10532         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
10533         register number with an appropriate macro.
10534
10535 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
10536
10537         * doc/rtl.texi (Constants): Close @code tag.
10538
10539 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
10540
10541         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
10542         ("mmx_uavgv4hi3"): Same.
10543         ("pmulhrwv4hi3"): Same.
10544
10545         * tree-inline.c (walk_tree): Handle vectors.
10546
10547         * c-common.c (constant_expression_warning): Handle vectors.
10548         (overflow_warning): Same.
10549
10550         * sched-deps.c (sched_analyze_2): Handle vectors.
10551
10552         * rtlanal.c (rtx_unstable_p): Handle vectors.
10553         (rtx_varies_p): Same.
10554         (count_occurrences): Same.
10555         (regs_set_between_p): Same.
10556         (modified_between_p): Same.
10557         (modified_in_p): Same.
10558         (volatile_insn_p): Same.
10559         (volatile_refs_p): Same.
10560         (side_effects_p): Same.
10561         (may_trap_p): Same.
10562         (inequality_comparisons_p): Same.
10563         (replace_regs): Same.
10564         (computed_jump_p_1): Same.
10565
10566         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
10567         argument.
10568         (inner_mode_array): New.
10569         (copy_rtx): Handle vectors.
10570         (copy_most_rtx): Same.
10571         (rtx_equal_p): Same.
10572         (get_mode_alignment): Adjust for vectors.
10573
10574         * resource.c (mark_referenced_resources): Handle vectors.
10575         (mark_set_resources): Same.
10576
10577         * reload1.c (eliminate_regs): Handle vectors.
10578         (elimination_effects): Same.
10579         (scan_paradoxical_subregs): Same.
10580
10581         * reload.c (subst_reg_equivs): Handle vectors.
10582
10583         * regrename.c (scan_rtx): Handle vectors.
10584
10585         * regclass.c (reg_scan_mark_refs): Handle vectors.
10586
10587         * recog.c (find_single_use_1): Handle vectors.
10588
10589         * local-alloc.c (equiv_init_varies_p): Handle vectors.
10590         (contains_replace_regs): Same.
10591         (memref_referenced_p): Same.
10592
10593         * integrate.c (copy_rtx_and_substitute): Handle vectors.
10594         (subst_constants): Same.
10595
10596         * genattrtab.c (attr_copy_rtx): Handle vectors.
10597         (encode_units_mask): Same.
10598         (clear_struct_flag): Same.
10599         (count_sub_rtxs): Same.
10600
10601         * gcse.c (want_to_gcse_p): Handle vectors.
10602         (oprs_unchanged_p): Same.
10603         (hash_expr_1): Same.
10604         (oprs_not_set_p): Same.
10605         (expr_killed_p): Same.
10606         (compute_transp): Same.
10607         (store_ops_ok): Same.
10608
10609         * function.c (purge_addressof_1): Do not allow paradoxical subregs
10610         of vectors.
10611         (fixup_var_refs_1): Same.
10612         (instantiate_virtual_regs_1): Same.
10613
10614         * fold-const.c (operand_equal_p): Handle vectors.
10615         (fold): Same.
10616         (rtl_expr_nonnegative_p): Same.
10617
10618         * flow.c (mark_used_regs): Handle vectors.
10619
10620         * df.c (df_uses_record): Handle vectors.
10621
10622         * cselib.c (cselib_subst_to_values): Handle vectors.
10623         (cselib_mem_conflict_p): Same.
10624         (hash_rtx): Same.
10625
10626         * cse.c (canon_reg): Handle vectors.
10627         (fold_rt): Same.
10628         (cse_process_notes): Same.
10629         (count_reg_usage): Same.
10630         (canon_hash): Same.
10631
10632         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
10633
10634         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
10635
10636         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
10637         (gen_rtx): Handle CONST_VECTOR.
10638         (gen_const_vector_0): New.
10639         (copy_rtx_if_shared): CONST_VECTORs can be shared.
10640         (reset_used_flags): Same.
10641         (copy_insn_1): Same.
10642         (initializer_constant_valid_p): Handle VECTOR_CST.
10643
10644         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
10645
10646         * doc/rtl.texi (Constants): Document const_vector.
10647         (CONST0_RTX): Update for vectors.
10648         (RTL sharing): Same.
10649
10650         * print-tree.c (print_node): Add case for VECTOR_CST.
10651
10652         * tree.h (TREE_VECTOR_CST_ELTS): New.
10653         (struct tree_vector): New.
10654         (union tree_node): Add vector node.
10655         (build_vector): Add prototype.
10656
10657         * tree.def (VECTOR_CST): New.
10658
10659         * tree.c (build_vector): New.
10660
10661         * expmed.c (make_tree): Handle CONST_VECTOR.
10662
10663         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
10664         (CONST_VECTOR_ELT): New.
10665         (CONST_VECTOR_NUNITS): New.
10666
10667         * machmode.h (GET_MODE_INNER): New.
10668         (DEF_MACHMODE): Accept 8th arg.
10669
10670         * machmode.def: Add 8th argument for vector inner mode.
10671         Add inner vector modes for vectors.
10672
10673         * rtl.def (VEC_CONST): Remove.
10674         (CONST_VECTOR): New.
10675
10676         * expr.c (clear_storage): Allow vectors.
10677         (is_zeros_p): Handle VECTOR_CST.
10678
10679         * varasm.c (output_constant_pool): Handle vectors.
10680         (rtx_const): Add veclo and vechi fields.
10681         (kind): Add RTX_VECTOR.
10682         (decode_rtx_const): Add case for vector.
10683
10684         * config/rs6000/rs6000-protos.h: Add zero_constant.
10685
10686         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
10687         constants.  Force easy vector constants into memory.
10688         (easy_vector_constant): New.
10689         (emit_easy_vector_constant): New.
10690         (rs6000_legitimize_reload_address): Do not generate bad reloads on
10691         darwin.
10692
10693         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
10694         instruction does.
10695         ("altivec_lvxl"): Same.
10696         (altivec_lvebx): Same.
10697         (altivec_lvehx): Same.
10698         (altivec_lvewx): Same.
10699         ("*movv4si_const0"): New.
10700         ("*movv4sf_const0"): New.
10701         ("*movv8hi_const0"): New.
10702         ("*movv16qi_const0"): New.
10703
10704 2002-02-18  Kazu Hirata  <kazu@hxi.com>
10705
10706         * config/h8300/h8300.c (notice_update_cc): Use
10707         cc_status.value2.
10708
10709 2002-02-18  Kazu Hirata  <kazu@hxi.com>
10710
10711         * config/h8300/h8300.md (divmod patterns): Change the
10712         constraints for operands[1] to register_operand.
10713
10714 2002-02-18  Kazu Hirata  <kazu@hxi.com>
10715
10716         * config/h8300/h8300-protos.h: Remove the prototype for
10717         p_operand.
10718         * config/h8300/h8300.c (p_operand): Remove.
10719         * config/h8300/h8300.md: Replace p_operand with
10720         const_int_operand.
10721
10722 2002-02-18 Philip Blundell <pb@nexus.co.uk>
10723
10724         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
10725         comment.
10726         (output_return_instruction): Allow use of LDR to unstack
10727         return addresss even for interrupt handlers or when
10728         interworking.  If compiling for ARMv5, use interworking-safe
10729         return instructions by default.  Remove duplicated code and
10730         lengthy "strcat" sequences.
10731
10732 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10733
10734         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
10735         (LINK_EH_SPEC): Define.
10736         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
10737
10738 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
10739
10740         * config/s390/s390.c (s390_emit_prologue): Do not set the
10741         frame_related flag for call-clobbered registers.
10742
10743 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
10744
10745         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
10746         (construct_container): Fix handling of SSE operands.
10747         (ix86_expand_builtin): Fix handling of 64bit pointers.
10748         (mmx_maskmovq_rex): New pattern.
10749
10750 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
10751
10752         * regrename.c (kill_set_value): Handle subregs properly.
10753
10754 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
10755
10756         * objc/objc-act.c (handle_impent): Remove leading '*'
10757         from objc_class_name.
10758
10759 2002-02-17  Richard Henderson  <rth@redhat.com>
10760
10761         * config/alpha/alpha.c (some_small_symbolic_operand,
10762         some_small_symbolic_operand_1, split_small_symbolic_operand,
10763         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
10764         Handle small SYMBOL_REFs anywhere, not just inside memories.
10765         * config/alpha/alpha-protos.h: Update.
10766         * config/alpha/alpha.h (PREDICATE_CODES): Update.
10767         * config/alpha/alpha.md (small symbolic operand splitter): Update.
10768
10769 2002-02-17  Roland McGrath  <roland@frob.com>
10770
10771         * config.gcc (powerpc-*-gnu-gnualtivec*,
10772         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
10773         * config/rs6000/gnu.h: New file.
10774         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
10775         Grok "gnu" in rs6000_abi_name.
10776         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
10777         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
10778         Grok -mcall-gnu analogous to -mcall-linux et al.
10779         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
10780         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
10781         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
10782
10783 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
10784
10785         PR c/3444:
10786         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
10787         shortening.
10788
10789 2002-02-17  Philipp Thomas  <pthomas@suse.de>
10790
10791         * config/cris/cris.h: Undefine STARTFILE_SPEC and
10792         ENDFILE_SPEC before (re)defining them.
10793
10794 2002-02-17  Kazu Hirata  <kazu@hxi.com>
10795
10796         * config/h8300/h8300.c: Fix formatting.
10797         * config/h8300/h8300.h: Likewise.
10798
10799 2002-02-17  Philipp Thomas  <pthomas@suse.de>
10800
10801         * doc/tm.texi: Explain why empty strings should not be
10802         marked for translation.
10803
10804 2002-02-17  Philipp Thomas  <pthomas@suse.de>
10805
10806         * final.c (output_operand_lossage): Changed to accept
10807         printf style arguments. Change calls where necessary.
10808         * output.h (output_operand_lossage): Change declaration
10809         accordingly. Update copyright.
10810         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
10811         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
10812         Update copyright date where necessary.
10813
10814         * config/i386/i386.c (print_operand): Likewise. Remove use of
10815         sprintf.
10816
10817         * config/cris/cris.c (cris_operand_lossage): Likewise.
10818         Rename parameter so that exgettext recognizes it as
10819         translatable message.
10820         (LOSE_AND_RETURN): Rename parameter to msgid.
10821
10822 2002-02-17  Kazu Hirata  <kazu@hxi.com>
10823
10824         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
10825         hard coded register number with an appropriate macro.
10826         (HARD_REGNO_MODE_OK): Likewise.
10827         (ARG_POINTER_REGNUM): Likewise.
10828         (STATIC_CHAIN_REGNUM): Likewise.
10829         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
10830         * config/h8300/h8300.md (define_constants): Define more
10831         register numbers.
10832
10833 2002-02-17  Philipp Thomas  <pthomas@suse.de>
10834
10835         * config/i386/i386.h: Don't mark empty strings for translation.
10836
10837 2002-02-16  H.J. Lu <hjl@gnu.org>
10838
10839         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
10840
10841 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
10842
10843         * cppinit.c (merge_include_chains): Check for brack being
10844         NULL before attempting to merge it with qtail.
10845
10846 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
10847
10848         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
10849         DBX_DEBUG.
10850
10851 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10852
10853         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
10854
10855 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10856
10857         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
10858         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
10859         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
10860
10861 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10862
10863         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
10864         now only if !TARGET_FIX.
10865         (*movsi_nt_vms_fix): New pattern.
10866
10867 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
10868
10869         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
10870         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
10871         (alpha_sa_mask, alpha_sa_size): Reflect above change.
10872         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
10873         (alpha_start_function, alpha_expand_epilogue): Likewise.
10874         (unicosmk_gen_dsib): Likewise.
10875
10876 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10877
10878         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
10879
10880 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
10881
10882         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
10883         check_and_change_labels, s390_final_chunkify): Delete.
10884         (s390_split_branches, s390_chunkify_pool): New functions.
10885         (s390_function_prologue): Call them.
10886
10887         * config/s390/s390.h (S390_REL_MAX): Delete.
10888         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
10889
10890         * config/s390/s390.md (cjump, icjump, jump): Fix length
10891         attribute calculation.
10892
10893
10894 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
10895
10896         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
10897         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
10898
10899 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10900
10901         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
10902         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
10903         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
10904
10905 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
10906
10907         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
10908
10909 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
10910
10911         * reload.c (find_dummy_reload): Check that an output register
10912         is valid for its mode.
10913
10914 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
10915
10916         * combine.c (known_cond): After replacing the REG of a SUBREG, try
10917         to simplify it.
10918
10919         * function.c (assign_parms): Demote promoted argument passed by
10920         transparent reference.
10921
10922 2001-02-14      Joel Sherrill <joel@OARcorp.com>
10923
10924         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
10925         -Acpu() and -Amachine() to eliminate warnings.
10926
10927 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
10928
10929         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
10930
10931 2002-02-14  Kazu Hirata  <kazu@hxi.com>
10932
10933         * config/h8300/h8300-protos.h: Update the prototype for
10934         const_costs.
10935         * config/h8300/h8300.c (const_costs): Treat SET as a little
10936         more expensive operation.
10937         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
10938         reference to const_costs.
10939
10940 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
10941
10942         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
10943
10944 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
10945
10946         PR c/5503:
10947         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
10948         use arguments from newtype.
10949
10950 2002-02-13  Eric Christopher  <echristo@redhat.com>
10951
10952         * config/mips/mips.c (override_options): Add check for march/mipsX
10953         on the same command line. Fix error message in cpu processing.
10954         Remove architecture and ISA checks.
10955
10956 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
10957
10958         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
10959
10960         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
10961
10962 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
10963
10964         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
10965         alternatives.
10966         ("*movv8hi_internal1"): Same.
10967         ("*movv16qi_internal1"): Same.
10968         ("*movv4sf_internal1"): Same.
10969
10970         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
10971         not push_reload for altivec modes.
10972
10973 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
10974
10975         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
10976         all RTEMS targets including removal of #includes from config/*/rtems*.h
10977         file and adding them to tm_file setting. Added xm_defines=POSIX to
10978         many targets.
10979         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
10980         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
10981         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
10982         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
10983         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
10984         config/m68k/rtemself.h: Ditto.
10985         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
10986         config/mips/rtems64.h: Ditto.
10987         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
10988         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
10989         Ditto.
10990         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
10991         config/sparc/rtemself.h: Ditto.
10992         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
10993         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
10994         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
10995         more like arm-elf.
10996         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
10997         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
10998         target made more similar to i386-elf.
10999         * config/i386/t-rtems-i386: Added soft float support and multilibs.
11000         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
11001         be similar to config/m68k/t-m68kelf.
11002         * gthr-rtems.h: Encapsulate with extern "C" for C++.
11003
11004 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
11005
11006         * regmove.c (kill_value): Handle subregs.
11007
11008 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
11009
11010         * i386.md (mul patterns): Allow memory operand to be first;
11011         add expanders where needed; fix constraints.
11012         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
11013         Allow memory operand to be the first.
11014
11015         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
11016         operands.
11017
11018 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
11019
11020         PR c/5681:
11021         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
11022         GET_MODE (x).
11023
11024 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
11025
11026         PR optimization/5547:
11027         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
11028         all valid IA-32 address modes involving non-scaled %ebx and
11029         GOT/GOTOFF as displacement.
11030
11031 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
11032
11033         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
11034         after emitting ltorg insns.
11035
11036         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
11037         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
11038         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
11039         *abssf2): Fix "op_type" attribute.
11040
11041 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
11042
11043         * mkconfig.sh: Avoid using a subshell redirect.
11044         ($output.T): Change to $(output)T.
11045         (ENABLE_NLS): Remove unneeded undef.
11046
11047         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
11048         * config/alpha/x-vms (libsubdir): Define.
11049
11050         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
11051         register frame procedures. Optimize retrieving context.
11052
11053         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
11054         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
11055         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
11056
11057 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11058
11059         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
11060         Make same change as for find_base_value.
11061
11062 2002-02-13  Kazu Hirata  <kazu@hxi.com>
11063
11064         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
11065         of QImode and SImode.
11066
11067 2002-02-13  Kazu Hirata  <kazu@hxi.com>
11068
11069         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
11070         length computation of movsi.
11071         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
11072
11073 2002-02-13  Kazu Hirata  <kazu@hxi.com>
11074
11075         * config/h8300/h8300.md (subqi3): Tighten the predicate for
11076         operands[2] to register_operand.
11077
11078 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
11079
11080         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
11081
11082 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
11083
11084         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
11085         for altivec_lvx* and altivec_stvx*.
11086         ("*movv4si_internal"): Add constraint for loading from GPRs.
11087         ("*movv8hi_internal1"): Same.
11088         ("*movv16qi_internal1"): Same.
11089         ("*movv4sf_internal1"): Same.
11090
11091         * config/rs6000/rs6000.c (altivec_register_operand): New.
11092
11093         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
11094         altivec_register_operand.
11095
11096 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
11097
11098         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
11099         handle SYMBOL_REF.
11100
11101 2002-02-13  Stan Shebs  <shebs@apple.com>
11102
11103         * c-typeck.c (digest_init): Handle vectors.
11104         (really_start_incremental_init): Same.
11105         (pop_init_level): Same.
11106         (process_init_element): Same.
11107
11108         * varasm.c (output_constant): Same.
11109
11110         * expr.c (clear_storage): Same.
11111         (store_constructor): Same.
11112
11113 2002-02-12  Eric Christopher  <echristo@redhat.com>
11114
11115         * explow.c (hard_function_value): Add comment explaining
11116         signed/unsigned comparison.
11117
11118 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
11119
11120         * jump.c (never_reached_warning): Add finish argument.
11121         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
11122         real insn after end.
11123         * rtl.h (never_reached_warning): Adjust prototype.
11124         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
11125         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
11126         never_reached_warning.
11127
11128 2002-02-12  Graham Stott  <grahams@redhat.com>
11129
11130         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
11131
11132 2002-02-12  Kazu Hirata  <kazu@hxi.com>
11133
11134         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
11135         logical shifts on H8/300.
11136         (shift_alg_si): Improve several shifts on H8/300.
11137         (get_shift_alg): Likewise.
11138
11139 2002-02-12  Graham Stott  <grahams@redhat.com>
11140
11141         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
11142
11143 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11144
11145         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
11146         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
11147
11148 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
11149
11150         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
11151         non-CONST_INT through default_assemble_integer.
11152         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
11153         <case 8>: Abort for CONST_DOUBLE.
11154
11155 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11156
11157         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
11158         is specified.
11159         * config/pa/pa-linux.h (LIB_SPEC): Delete.
11160         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
11161
11162 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
11163
11164         * config/stormy16/stormy16.md (zero_extendqihi2): New.
11165
11166 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
11167
11168         * regrename.c (regrename_optimize): Don't accept a
11169         part-clobbered register if the replaced register is not part
11170         clobbered.
11171
11172         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
11173         take padding into account when computing the argument value.
11174
11175         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
11176
11177         * combine.c (try_combine): Apply substitutions in
11178         CALL_INSN_FUNCTION_USAGE too.
11179
11180 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
11181
11182         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
11183         __builtin_altivec_abs*.
11184         (bdesc_abs): New.
11185
11186         * config/rs6000/rs6000.h (rs6000_builtins): Add
11187         ALTIVEC_BUILTIN_ABS*.
11188
11189         * config/rs6000/altivec.h: Use const char for builtins expecting
11190         literals.
11191         (vec_abs): New versions for C and C++.
11192         (vec_abss): Same.
11193
11194 2002-02-10  Kazu Hirata  <kazu@hxi.com>
11195
11196         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
11197         using Pmode.
11198
11199 2002-02-10  Kazu Hirata  <kazu@hxi.com>
11200
11201         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
11202         constant definition from h8300.md.
11203         (FRAME_POINTER_REGNUM): Likewise.
11204         * config/h8300/h8300.md (define_constants): Add FP_REG.
11205
11206 2002-02-10  Kazu Hirata  <kazu@hxi.com>
11207
11208         * config/h8300/h8300.c (print_operand): Remove redundant code.
11209
11210 2002-02-10  Kazu Hirata  <kazu@hxi.com>
11211
11212         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
11213         * config/h8300/h8300.c (byte_reg): Make it static.
11214
11215 2002-02-10  Richard Henderson  <rth@redhat.com>
11216
11217         PR c/5623
11218         * c-typeck.c (incomplete_type_error): Handle flexible array members.
11219
11220 2002-02-10  Richard Henderson  <rth@redhat.com>
11221
11222         PR c++/5624
11223         * tree.c (append_random_chars): Don't abort if main_input_filename
11224         does not exist.
11225
11226 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
11227
11228         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
11229
11230 2002-02-10  Kazu Hirata  <kazu@hxi.com>
11231
11232         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
11233         (pushhi1): Likewise.
11234
11235 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11236
11237         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
11238         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
11239
11240 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
11241
11242         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
11243         remove MASK_VIS.
11244         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
11245
11246 2002-02-09  Kazu Hirata  <kazu@hxi.com>
11247
11248         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
11249         a half of an SImode register on H8/300.
11250
11251 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
11252
11253         * i386.md (movdi_2): Add missing '!'.
11254
11255 2002-02-09  Kazu Hirata  <kazu@hxi.com>
11256
11257         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
11258         definitions.
11259
11260 2002-02-09  Kazu Hirata  <kazu@hxi.com>
11261
11262         * config/h8300/h8300.md (length): Correct the distance valid
11263         for the short branch.
11264
11265 2002-02-09  Kazu Hirata  <kazu@hxi.com>
11266
11267         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
11268
11269 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
11270
11271         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
11272         registers in SImode.
11273         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
11274         part-clobbered.
11275
11276         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
11277         patch.
11278
11279         Contribute sh64-elf.
11280         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
11281         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
11282         (sh_cannot_modify_jumps_p): New function.
11283         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
11284         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
11285         (sh_ms_bitfield_layout_p): New function.
11286         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
11287                     Zack Weinberg  <zack@codesourcery.com>
11288         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
11289         expand_simple_binop instead of expand_binop.
11290         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
11291         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
11292         use of .quad and .uaquad.
11293         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
11294         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
11295         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
11296         * config/sh/sh.md (movdi_const, movdi_const_32bit,
11297         movdi_const_16bit): Make sure all CONSTs have modes.
11298         (sym2PIC): Ditto, but by adjusting all callers.
11299         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
11300         if the prologue calls the SHmedia argument decoder or register
11301         saver.
11302         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
11303         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
11304         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
11305         (sh_expand_epilogue): Don't emit USE of return target register.
11306         (prepare_move_operands): Legitimize DImode PIC addresses.
11307         (sh_media_register_for_return): Skip tr0, used to initialize the
11308         PIC register.
11309         (sh_expand_prologue): Remove explicit USE of return register.
11310         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
11311         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
11312         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
11313         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
11314         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
11315         EXTRA_CONSTRAINT_T.
11316         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
11317         (MOVI_SHORI_BASE_OPERAND_P): New.
11318         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
11319         (EXTRA_CONSTRAINT_T): Define in terms of them.
11320         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
11321         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
11322         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
11323         alternatives supporting TARGET_REGS.
11324         (UNSPEC_GOTPLT): New constant.
11325         (movdi split): Move incrementing of LABEL_NUSES...
11326         (movdi_const, movdi_const_32bit): Here.  Use
11327         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
11328         (movdi_const_16bit): New.
11329         (call, call_value) [flag_pic]: Use GOTPLT.
11330         (call_pop, call_value_pop): New expands.
11331         (call_pop_compact, call_pop_rettramp): New insns.
11332         (call_value_pop_compact, call_value_pop_rettramp): New insns.
11333         (sibcall) [flag_pic]: Use GOT.
11334         (builtint_setjmp_receiver): Remove bogus, unused expand.
11335         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
11336         (*pt, *ptb, ptrel): New insns.
11337         (sym2GOT): Handle DImode GOT.
11338         (sym2GOTPLT, symGOTPLT2reg): New expands.
11339         (sym2PIC): New expand.
11340         (shcompact_return_tramp): Use GOTPLT to return trampoline.
11341         (shcompact_return_tramp_i): Use return register explicitly.
11342         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
11343         disable flag_reorder_blocks.
11344         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
11345         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
11346         clobbers, for clarity.
11347         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
11348         restoring of r0 in macl as MAYBE_DEAD.
11349         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
11350         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
11351         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
11352         alter_subreg all over.
11353         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
11354         reload, instead of emitting instructions that would require
11355         reloading.
11356         (casesi_load_media): Add missing modes.
11357         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
11358         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
11359         as used if the argument decoder is called.
11360         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
11361         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
11362         Pmode, then extend it to DImode if necessary.
11363         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
11364         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
11365         constants in FPU-enabled SHmedia, let them be loaded from memory.
11366         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
11367         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
11368         Adjust whitespace in assembly output templates.
11369         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
11370         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
11371         mode of if_then_else.
11372         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
11373         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
11374         sh.h.
11375         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
11376                     Joern Rennecke <amylaar@redhat.com>
11377         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
11378         (SUBTARGET_CPP_PTR_SPEC): New.
11379         (SUBTARGET_CPP_SPEC): Remove.
11380         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
11381         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
11382         Fix typo in previous checkin.
11383         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
11384         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
11385         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
11386                     Alexandre Oliva  <aoliva@redhat.com>
11387         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
11388         what single FP register can hold for SHmedia target.
11389         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
11390                     Alexandre Oliva  <aoliva@redhat.com>
11391         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
11392         Do not split into SUBREG.
11393         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
11394         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
11395         and added new functions as specified in SH5 ABI r9.
11396         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
11397         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
11398         8-byte boundary.
11399         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
11400         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
11401         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
11402         and consttable_window_ends.
11403         2001-06-03  Graham Stott  <grahams@redhat,com>
11404         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
11405         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
11406         * config/sh/sh.c (print_operand): Handle floating-point pair,
11407         vector and matrix registers.
11408         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
11409         vector modes into account.
11410         * config/sh/sh.md (movv2sf): Split move between registers into
11411         movdf.
11412         (movv4sf, movv16sf): Introduce insns that get split only after
11413         reload.
11414         * config/sh/shmedia.h: Fix Copyright dates.
11415         * config/sh/ushmedia.h: Likewise.  Move loop counter
11416         declarations into conditionals that uses them.
11417         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
11418         loop boundary.
11419         * config/sh/sshmedia.h: Fix Copyright dates.
11420         (sh_media_PUTCFG): Fix constraints.
11421         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
11422         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
11423         ptrmemfunc_vbit_in_delta for SH5.
11424         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
11425         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
11426         * invoke.texi: Likewise.
11427         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
11428         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
11429         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
11430         GCC_pop_shmedia_regs_nofpu): New global symbols.
11431         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
11432         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
11433         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
11434         compact function with nonlocal labels.
11435         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
11436         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
11437         (initial_elimination_offset): Account for their stack space.
11438         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
11439         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
11440         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
11441         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
11442         least one of the operands to be a register.
11443         (movv2sf): Likewise.  Renamed to movv2sf_i.
11444         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
11445         prepare_move_operands() before emitting SHmedia insns.
11446         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
11447         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
11448         Don't save nor initialize r12.  Don't mis-align the stack.
11449         Pad the code with a nop.
11450         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
11451         stack.
11452         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
11453         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
11454         [__SHMEDIA__]: Implement.
11455         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
11456         * config/sh/sh.md: Set latency of `pt' closer to reality.
11457         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
11458         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
11459         Set move, load and store type attributes.
11460         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
11461         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
11462         profiling.
11463         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
11464         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
11465         * config/sh/sh.c (sh_media_register_for_return): New function.
11466         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
11467         branch-target register.
11468         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
11469         * config/sh/sh.md (return_media_i): Use any call-clobbered
11470         branch-target register.
11471         (return_media): If r18 wasn't copied in the prologue, copy it
11472         here.
11473         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
11474         Clear class FP0_REGS.
11475         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
11476         from elf.h.
11477         2001-03-08  DJ Delorie  <dj@redhat.com>
11478         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
11479         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
11480         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
11481         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
11482         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
11483         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
11484         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
11485         return value correctly for call_cookie.
11486         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
11487         * config/sh/crt1.asm (start): Modified so as to call
11488         ___setup_argv_and_call_main.
11489         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
11490         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
11491         SHmedia mode.
11492         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
11493         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
11494         (STRIP_NAME_ENCODING): Use it.
11495         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
11496         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
11497         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
11498         prepare_scc_operands().
11499         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
11500         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
11501         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
11502         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
11503         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
11504         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
11505         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
11506         used in shcompact_incoming_args.
11507         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
11508         change.
11509         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
11510         mode.
11511         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
11512         Adjust accordingly.
11513         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
11514         Simplify.  Adjust.  Add sanity check.
11515         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
11516         FPU_SINGLE_BIT.
11517         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
11518         TARGET_SHCOMPACT.
11519         (udivsi3, divsi3): Use them.
11520         (force_mode_for_call): New insn.
11521         (call, call_value, sibcall_value): Emit it before SHcompact
11522         calls.
11523         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
11524         * config/sh/sh.md (call, call_value, sibcall): Make sure the
11525         call cookie is non-NULL before taking its value.
11526         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
11527         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
11528         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
11529         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
11530         block.
11531         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
11532         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
11533         temporary for stack adjusts.  Use MACL and MACH to pass
11534         arguments to shcompact_incoming_args.
11535         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
11536         clobber r1.
11537         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
11538         (nested_trampoline): Load static chain address into r1.
11539         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
11540         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
11541         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
11542         fp_arith_reg_operand().
11543         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
11544         * config/sh/sh.md (casesi): Sign-extend the first two operands,
11545         and use signed compares for them.
11546         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
11547         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
11548         ones properly aligned.
11549         (find_barrier): Account for extra alignment needed for 8-byte wide
11550         constants.
11551         (machine_dependent_reorg): Require a label for the second 4-byte
11552         constant after an 8-byte one.
11553         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
11554         change.
11555         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
11556         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
11557         last_float when switching float modes.
11558         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
11559         auto-increment for general-purpose registers.
11560         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
11561         result.
11562         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
11563         for stack adjust.
11564         * config/sh/sh.c (sh_builtin_saveregs): Support using all
11565         registers for varargs.
11566         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
11567         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
11568         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
11569         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
11570         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
11571         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
11572         call_cookie accordingly.
11573         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
11574         (SHCOMPACT_BYREF): Likewise.
11575         (SHCOMPACT_FORCE_ON_STACK): New macro.
11576         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
11577         (sh_builtin_saveregs): Likewise.
11578         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
11579         shcompact_incoming_args): Use new shift values.  Support
11580         sequences of consecutive and non-consecutive pushes/pops.
11581         * config/sh/sh.md (return): Don't explicitly use PR_REG.
11582         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
11583         * config/sh/sh.h (TEXT_SECTION): Define.
11584         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
11585         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
11586         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
11587         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
11588         return values on FPU-enabled SHmedia.
11589         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
11590         FPU-enabled SHmedia.
11591         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
11592         value is returned in a non-FP reg and is not returned by
11593         reference.
11594         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
11595         jump_ind.
11596         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
11597         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
11598         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
11599         quad-aligned to be passed by callee-copy reference.
11600         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
11601         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
11602         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
11603         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
11604         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
11605         copying low-numbered FP regs to r7 and r8.
11606         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
11607         FP regs to general-purpose regs only if the copy was passed on the
11608         stack.
11609         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
11610         copying FP reg to r9.
11611         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
11612         copy FP regs to general-purpose regs only in outgoing calls.
11613         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
11614         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
11615         HOST_WIDE_INT.
11616         * config/sh/sh.h (struct sh_args): Document all fields.
11617         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
11618         passed partially on the stack should not consider making
11619         sibcalls.
11620         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
11621         stack_regs only for incoming calls.  When passing FP args,
11622         make sure there are FP regs available before modifying
11623         call_cookie.
11624         (SHCOMPACT_BYREF): Pass double args in general-purpose
11625         registers by reference.
11626         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
11627         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
11628         attempt to generate sibcalls if the caller got any arguments
11629         by reference.
11630         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
11631         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
11632         to 8-byte boundaries.
11633         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
11634         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
11635         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
11636         stored in the stack.
11637         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
11638         for the offsets to have the ISA bit set.
11639         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
11640         invocation.  Use beq instead of bgt to mark end of sequence of
11641         loads.
11642         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
11643         bgt to mark end of sequence of stores.
11644         * config/sh/sh.c (arith_operand): Don't check whether
11645         CONST_OK_FOR_J for now.
11646         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
11647         instead of long for conversion.
11648         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
11649         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
11650         before passing it to fprintf.
11651         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
11652         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
11653         Call set_fpscr before reading/writing SR.
11654         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
11655         Call set_fpscr.
11656         * config/sh/lib1funcs.asm: Add `.align 2' directives before
11657         SHmedia code.
11658         (FMOVD_WORKS): Define on SH5 with FPU.
11659         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
11660         setting.
11661         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
11662         _fpscr_values.
11663         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
11664         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
11665         address.
11666         (ia_main_table): Ditto.
11667         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
11668         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
11669         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
11670         the definitions from sh.h.
11671         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
11672         TARGET_SH5.
11673         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
11674         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
11675         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
11676         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
11677         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
11678         Increment LABEL_NUSES.
11679
11680         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
11681         TARGET_SH5.
11682         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
11683         defined.
11684         * config/sh/elf.h (SIZE_TYPE): Likewise.
11685         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
11686         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
11687         shcompact_incoming_args): Load switch table addresses using
11688         datalabel.
11689         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
11690         (NO_BUILTIN_SIZE_TYPE): Define.
11691         (SIZE_TYPE): Don't define.
11692         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
11693         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
11694         definition of __SH5__=32 for -m5-compact-nofpu.
11695         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
11696         ADDR_DIFF_VEC.
11697         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
11698         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
11699         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
11700         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
11701         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
11702         (INSN_LENGTH_ALIGNMENT): Likewise.
11703         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
11704         * config/sh/sh.md (call, call_value, sibcall): Simplify
11705         copying of non-branch-target register.
11706         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
11707         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
11708         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
11709         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
11710         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
11711         floating-point values as structs.
11712         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
11713         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
11714         general-purpose register.
11715         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
11716         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
11717         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
11718         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
11719         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
11720         (ENCODE_SECTION_INFO): Enclose variables and constants in
11721         DATALABEL unspecs.
11722         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
11723         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
11724         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
11725         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
11726         only for LABEL_REFs.  For SYMBOL_REFs, prepend
11727         SH_DATALABEL_ENCODING to the symbol name.
11728         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
11729         convert_mode().
11730         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
11731         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
11732         UNSPEC_DATALABEL.
11733         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
11734         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
11735         (DATALABEL_REF_P): Don't require CONST.
11736         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
11737         REL label.
11738         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
11739         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
11740         right.
11741         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
11742         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
11743         Use shallow_copy_rtx and PUT_MODE to change the mode of
11744         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
11745         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
11746         on SHmedia using GENERAL_REGs.
11747         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
11748         bltu_media_i): Fix reversion of conditions.
11749         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
11750         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
11751         * config/sh/sh.c (output_far_jump): Save r13 in macl.
11752         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
11753         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
11754         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
11755         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
11756         (GCC_nested_trampoline): Likewise.
11757         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
11758         * config/sh/sh.c (gen_datalabel_ref): Define.
11759         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
11760         (INITIALIZE_TRAMPOLINE): Likewise.
11761         (TRAMPOLINE_ADJUST_ADDRESS): Define.
11762         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
11763         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
11764         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
11765         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
11766         (ic_invalidate): Adjust for SH5.
11767         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
11768         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
11769         _nested_trampoline.
11770         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
11771         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
11772         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
11773         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
11774         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
11775         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
11776         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
11777         * config/sh/sh.c (target_reg_operand): Match only target-branch
11778         registers and pseudos that aren't virtual registers.
11779         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
11780         Copy operands that don't match target_reg_operand to pseudos.
11781         (call_media, call_value_media, sibcall_media): Use
11782         target_reg_operand instead of target_operand.
11783         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
11784         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
11785         * config/sh/sh.c (target_reg_operand): Match hardware registers
11786         other than branch-target registers.
11787         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
11788         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
11789         (fpscr_values) [SH5 == 32]: Define.
11790         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
11791         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
11792         Handle function addresses coming in SUBREGs.
11793         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
11794         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
11795         shcompact_return_trampoline): Use datalabel where appropriate.
11796         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
11797         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
11798         general-purpose register to copy one branch-target register to
11799         another.
11800         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
11801         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
11802         SYMBOL_REFs with VOIDmode.
11803         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
11804         bltu_media_i): New insns.
11805         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
11806         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
11807         (INIT_CUMULATIVE_ARGS): Likewise.
11808         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
11809         * machmode.def (V16SFmode): New mode.
11810         * c-common.c (type_for_mode): Support V2SF and V16SF.
11811         * tree.c (build_common_tree_nodes_2): Likewise.
11812         * tree.h (tree_index): Likewise.
11813         * calls.c (emit_call_1): Take args_so_far.  Adjust all
11814         callers.  Introduce CALL_POPS_ARGS.
11815         * tm.texi (CALL_POPS_ARGS): Document.
11816         * config/sh/crt1.asm: Implement in SHmedia mode.
11817         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
11818         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
11819         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
11820         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
11821         Implement divsi and udivsi in SHmedia mode.  Introduce
11822         SHcompact trampolines.
11823         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
11824         only in SHmedia64.
11825         (regno_reg_class): Rewrite.
11826         (fp_reg_names): Remove.
11827         (sh_register_names, sh_additional_register_names): New.
11828         (print_operand): Added `u'.  Support SUBREGs in addresses.
11829         Add parentheses around shifted CONSTs.
11830         (output_file_start): Output .mode and .abi directives.
11831         (shiftcosts, addsubcosts, multcosts): Adjust.
11832         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
11833         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
11834         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
11835         bytes, not registers.  Take into account the need for the
11836         SHcompact incoming args trampoline.  Adjust all callers.
11837         (sh_expand_prologue): Take stack_regs into account.  Call
11838         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
11839         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
11840         stack aligned as per SH5 ABI.
11841         (sh_builtin_saveregs): Support SH5 ABI.
11842         (sh_build_va_list, sh_va_start): Likewise.
11843         (initial_elimination_offset): Take alignment into account.
11844         Compute location of PR according to the SH5 stack frame.
11845         (arith_reg_operand): Reject branch-target registers.
11846         (shmedia_6bit_operand): New.
11847         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
11848         (target_reg_operand): Match DImode only.  Accept SUBREGs.
11849         (target_operand): New.
11850         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
11851         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
11852         SIBCALL_REGS for SHmedia.
11853         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
11854         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
11855         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
11856         (TARGET_SWITCHES): New SH5 flags.
11857         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
11858         VALID_REGISTER_P to disable unsupported registers.
11859         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
11860         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
11861         (FUNCTION_ARG_PADDING): Define.
11862         (FASTEST_ALIGNMENT): Adjust.
11863         (SH_REGISTER_NAMES_INITIALIZER): New.
11864         (sh_register_names): Declare.
11865         (DEBUG_REGISTER_NAMES): Define.
11866         (REGISTER_NAMES): Define based on sh_register_names.
11867         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
11868         (sh_additional_register_names): Declare.
11869         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
11870         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
11871         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
11872         (REGISTER_NATURAL_MODE): Define.
11873         (FIRST_PSEUDO_REGISTER): Adjust.
11874         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
11875         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
11876         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
11877         (VECTOR_MODE_SUPPORTED_P): Define.
11878         (REG_CLASS_CONTENTS): Adjust.
11879         (SMALL_REGISTER_CLASSES): Adjust.
11880         (REG_ALLOC_ORDER): Adjust.
11881         (INDEX_REG_CLASS): Adjust.
11882         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
11883         (CONST_OK_FOR_LETTER_P): Adjust.
11884         (PREFERRED_RELOAD_CLASS): Adjust.
11885         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
11886         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
11887         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
11888         (FIRST_FP_PARM_REG): Adjust.
11889         (CALL_POPS_ARGS): Define.
11890         (FUNCTION_ARG_REGNO_P): Adjust.
11891         (struct sh_args): New fields.
11892         (GET_SH_ARG_CLASS): Adjust.
11893         (INIT_CUMULATIVE_ARGS): Adjust.
11894         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
11895         (FUNCTION_ARG_ADVANCE): Adjust.
11896         (FUNCTION_ARG): Adjust.
11897         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
11898         (FUNCTION_ARG_CALLEE_COPIES): Define.
11899         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
11900         (STRICT_ARGUMENT_NAMING): Define.
11901         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
11902         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
11903         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
11904         (SETUP_INCOMING_VARARGS): Adjust.
11905         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
11906         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
11907         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
11908         (SUBREG_OK_FOR_INDEX_P): Adjust.
11909         (EXTRA_CONSTRAINT_S): Update.
11910         (EXTRA_CONSTRAINT_T): New.
11911         (EXTRA_CONSTRAINT): Adjust.
11912         (GO_IF_LEGITIMATE_INDEX): Adjust.
11913         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
11914         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
11915         (MOVE_MAX): Adjust.
11916         (MAX_MOVE_MAX): Define.
11917         (Pmode): Adjust.
11918         (CONST_COSTS): Adjust.
11919         (REGISTER_MOVE_COST): Adjust.
11920         (BRANCH_COST): Adjust.
11921         (TEXT_SECTION_ASM_OP): Adjust.
11922         (DBX_REGISTER_NUMBER): Adjust.
11923         (ASM_OUTPUT_DOUBLE_INT): New.
11924         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
11925         (PREDICATE_CODES): Adjust.
11926         (PROMOTE_MODE): Adjust.
11927         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
11928         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
11929         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
11930         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
11931         (DR0_REG, DR2_REG, DR4_REG): Renumber.
11932         (TR0_REG, TR1_REG, TR2_REG): New.
11933         (XD0_REG): Renumber.
11934         (UNSPEC_COMPACT_ARGS): New.
11935         (type): Added pt and ptabs.
11936         (length): Default to 4 on SHmedia.  Default pt length to 12
11937         and     20 on SHmedia32 and SHmedia64, respectively.
11938         (pt): New function unit.
11939         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
11940         Add whitespace between operands of SHmedia instructions.
11941         (movdicc): Fix.
11942         (adddi3_media, addsi3_media): Adjust constraints.
11943         (subsi3) [SHmedia]: Force operand 1 into a register.
11944         (udivsi3_i1_media, udivsi3_i4_media): New.
11945         (udivsi3): Support SHmedia.
11946         (divsi3_i1_media, divsi3_i4_media): New.
11947         (divsi3): Support SHmedia.
11948         (anddi3, iordi3, xordi3): Adjust constraints.
11949         (zero_extendhidi2, zero_extendqidi2): New.
11950         (extendsidi2, extendhidi2, extendqidi2): New.
11951         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
11952         (pop_e, pop_fpul, pop_4): Likewise.
11953         (movsi_media): Support FP and BT registers.
11954         (movsi_media_nofpu): New.  Adjust splits to DImode.
11955         (lduw, ldub): Renamed to zero_extend* above.
11956         (movqi_media): Fix typo.
11957         (movdi_media): Support FP and BT registers.
11958         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
11959         (movdi_const_32bit): New.
11960         (shori_media): Require immediate operand.  Use `u' for output.
11961         (movdf_media, movsf_media): Simplified.
11962         (movdf_media_nofpu, movsf_media_nofpu): New.
11963         (movdf, movsf): Adjust
11964         (movv2sf, movv2sf, movv16sf): New.
11965         (beq_media, beq_media_i): Adjust constraints.  Don't use
11966         scratch BT register.
11967         (bne_media, bne_media_i): Likewise.
11968         (bgt_media, bgt_media_i): Likewise.
11969         (bge_media, bge_media_i): Likewise.
11970         (bgtu_media, bgtu_media_i): Likewise.
11971         (bgeu_media, bgeu_media_i): Likewise.
11972         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
11973         bunordered): Emit jump insn.  Force operands to registers when
11974         needed.
11975         (jump_media, jump): Simplify.
11976         (call_compact, call_compact_rettramp): New.
11977         (call_value_compact, call_value_compact_rettramp): New.
11978         (call_media, call_value_media): Simplify.
11979         (sibcall_compact, sibcall_media): New.
11980         (call, call_value): Adjust for SHmedia and SHcompact.
11981         (sibcall, sibcall_value, untyped_call): Likewise.
11982         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
11983         (indirect_jump): Adjust for SHmedia.
11984         (casesi_jump_media): New.
11985         (nop): Re-enable for SHmedia.
11986         (call_site): Restrict to SH1.
11987         (casesi): Adjust for SHmedia.
11988         (casesi_shift_media, casesi_load_media): New.
11989         (return): Explicitly use PR register.  Call return trampoline
11990         on SHcompact.
11991         (return_i): Explicitly use PR register.
11992         (shcompact_return_tramp, shcompact_return_tramp_i): New.
11993         (return_media): Adjust.
11994         (shcompact_incoming_args): New.
11995         (epilogue): Adjust.
11996         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
11997         (movstrsi): Disable on SH5.
11998         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
11999         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
12000         (subsf3, subsf3_media): Likewise.
12001         (mulsf3, mulsf3_media, mac_media): Likewise.
12002         (divsf3, divsf3_media): Likewise.
12003         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
12004         (floatsisf2, fux_truncsfsi2): Likewise.
12005         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
12006         constraints.
12007         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
12008         (cmpunsf_media, cmpsf): Likewise.
12009         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
12010         (abssf2, abssf2_media): Likewise.
12011         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
12012         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
12013         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
12014         (floatsidf2, fix_truncdfsi2): Likewise.
12015         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
12016         constraints.
12017         (cmpeqdf_media, cmpgtdf_media): Likewise.
12018         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
12019         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
12020         (absdf2, absdf2_media): Likewise.
12021         (extendsfdf2, extendsfdf2_media): Likewise.
12022         (truncsfdf2, truncsfdf2_media): Likewise.
12023         * config/sh/sh64.h: New file.
12024         * config/sh/t-sh64: New file.
12025         * config/sh/shmedia.h: New file.
12026         * config/sh/ushmedia.h: New file.
12027         * config/sh/sshmedia.h: New file.
12028         * configure.in: Added sh64-*-elf.
12029         * configure: Rebuilt.
12030         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
12031         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
12032         (reg_class_from_letter): Use `b' for TARGET_REGS.
12033         (print_operand): Support `%M', `%m', `AND' and
12034         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
12035         (andcosts): Adjust for SHmedia.
12036         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
12037         Likewise.
12038         (target_reg_operand): New function.
12039         * config/sh/sh-protos.h (target_reg_operand): Declare.
12040         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
12041         FP registers on SH5.
12042         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
12043         on SH4.
12044         (TARGET_REGISTER_P): New macro.
12045         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
12046         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
12047         (EXTRA_CONSTRAINT_S): New macro.
12048         (EXTRA_CONSTRAINT): Adjust.
12049         (FLOAT_TYPE_SIZE): Define to 32.
12050         (Pmode): DImode on SHmedia.
12051         (CONST_COSTS): Adjust for SHmedia literals.
12052         (PREDICATE_CODES): Added target_reg_operand.
12053         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
12054         * config/sh/sh.md: Remove all attrs from SHmedia insns.
12055         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
12056         (cmpdi): Accept SHmedia.
12057         (movdicc_false, movdicc_true): New insns.
12058         (movdicc): New expand.
12059         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
12060         no_new_pseudos.
12061         (addsi3_media): Match `S' constraint.
12062         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
12063         (negdi2): Expand for SHmedia.
12064         (one_cmpldi2): New expand.
12065         (zero_extendsidi2): Change from expand to insn.
12066         (extendsidi2): Add constraints.
12067         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
12068         LD/ST address.  Fix SI immediate loading split.
12069         (movhi_media, movqi_media, lduw, ldub): New insns.
12070         (movhi, movqi): Accept SHmedia.
12071         (shori_media, movdi_media): Relax input constraints.  Split
12072         symbolic constants.
12073         (movdf_media, movsf_media): New insn.  New split to movdi.
12074         (movdf, movsf): Match on SHmedia.
12075         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
12076         bgeu_media): New insns and splits.  New insns with `_i' suffix.
12077         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
12078         (bunordered): New expand.
12079         (jump_compact): Renamed from `jump'.
12080         (jump_media): New insn.
12081         (jump): New expand.
12082         (call_media, call_value_media): New insns.
12083         (call, call_value): Adjust.
12084         (indirect_jump_compact): Renamed from `indirect_jump'.
12085         (indirect_jump_media): New insn.
12086         (indirect_jump): New expand.
12087         (untyped_call, return): Accept SHmedia.
12088         (return_media): New insn.
12089         (prologue, epilogue, blockage): Accept SHmedia.
12090         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
12091         (sunordered): New expand.
12092         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
12093         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
12094         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
12095         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
12096         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
12097         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
12098         abssf2_media): New insns.
12099         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
12100         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
12101         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
12102         floatdidf2, floatsidf2_media, fix_truncdfdi2,
12103         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
12104         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
12105         absdf2_media): New insns.
12106         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
12107         (extendsfdf2_media, truncdfsf2_media): New insns.
12108         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
12109         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
12110         * config/sh/sh.h (CONST_OK_FOR_J): Document.
12111         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
12112         * config/sh/sh.md (adddi3): New expand.
12113         (adddi3_media, adddi3z_media): New insns.
12114         (adddi3_compact): Renamed from adddi3.
12115         (addsi3_media): Use add.l r63 to add constant zero.
12116         (subdi3): New expand.
12117         (subdi3_media): New insn.
12118         (subdi3_compact): Renamed from subdi3.
12119         (mulsidi3): New expand.
12120         (mulsidi3_media): New insn.
12121         (mulsidi3_compact): Renamed from mulsidi3.
12122         (umulsidi3): New expand.
12123         (umulsidi3_media): New insn.
12124         (umulsidi3_compact): Renamed from umulsidi3.
12125         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
12126         (ashlsi3, ashrsi3, lshrsi3): Use them.
12127         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
12128         (ashldi3, ashrdi3, lshrdi3): Use them.
12129         (zero_extendsidi2): New expand.
12130         (extendsidi2): New insn.
12131         (movsi_media): New insn.  Split to movdi to load constants.
12132         (movsi): Enable for shmedia.
12133         (movdi_media): New insn.  Use shori_media to load wide constants.
12134         (short_media): New insn.
12135         (movdi): Enable for shmedia.
12136         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
12137         * config/sh/sh.h (CPP_SPEC): Added `m5'.
12138         (SUBTARGET_CPP_SPEC): Added `!m5'.
12139         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
12140         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
12141         to all other SH variants.
12142         (TARGET_DEFAULT): Set to SH1_BIT.
12143         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
12144         (BITS_PER_WORD): Raise to 64 on shmedia.
12145         (MAX_BITS_PER_WORD): Change to 64.
12146         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
12147         (INT_TYPE_SIZE): Keep as 32.
12148         (UNITS_PER_WORD): Raise to 8 on shmedia.
12149         (MIN_UNITS_PER_WORD): Keep as 4.
12150         (POINTER_SIZE): Raise to 64 on shmedia.
12151         (CONST_OK_FOR_J): New macro.
12152         (CONST_OK_FOR_LETTER_P): Use it.
12153         (processor_type): Add PROCESSOR_SH5.
12154         * config/sh/sh.md: Conditionalize all expands, insns and
12155         splits to TARGET_SH1.
12156         (cpu): Added sh5.
12157         (addsi3_compact): Renamed from...
12158         (addsi3): Now an expand.
12159         (addsi3_media, subsi3_media): New insns.
12160         (subsi3): Don't negate constants with SHmedia.
12161
12162         * hooks.c: New file.
12163         * hooks.h: New file.
12164         * Makefile.in (HOOKS_H): New.
12165         (TARGET_DEF_H): Added $(HOOKS_H).
12166         (OBJS): Added hooks.o.
12167         (cfgcleanup.o, bb-reorder.o): Added target.h.
12168         (hooks.o): Added dependencies.
12169         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
12170         (TARGET_INITIALIZER): this.
12171         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
12172         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
12173         * bb-reorder.c: Include target.h.
12174         (reorder_basic_blocks): Skip if cannot modify jumps.
12175         * cfgcleanup.c: Include target.h.
12176         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
12177
12178 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
12179
12180         * config/mips/mips.md (casesi_internal, casesi_internal_di):
12181         Protect jump delay slot instructions with .set noreorder and
12182         .set nomacro.
12183
12184 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
12185
12186         * config/mips/mips.md (casesi_internal_di): Calculate
12187         the index into the target offset table correctly.
12188
12189 2002-02-08  Richard Henderson  <rth@redhat.com>
12190
12191         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
12192         * final.c (output_addr_const): Accept and discard SUBREG.
12193         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
12194         mark them unknown instead.
12195         (simplify_subtraction): Handle RTX_UNKNOWN.
12196         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
12197
12198 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
12199
12200         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
12201
12202 2002-02-08  Richard Henderson  <rth@redhat.com>
12203
12204         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
12205
12206 2002-02-08  Andreas Jaeger  <aj@suse.de>
12207
12208         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
12209         * config/i386/t-linux64: New file.
12210
12211 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
12212
12213         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
12214         * c-parse.in (compstmt): Clear last_expr_type.
12215
12216 2002-02-07  Richard Henderson  <rth@redhat.com>
12217
12218         * loop.c (strength_reduce): Sink final_value when not
12219         eliminating a biv.
12220
12221 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
12222
12223         * config/sparc/freebsd.h: Fix mismatched spec {.
12224
12225 2002-02-07  Richard Henderson  <rth@redhat.com>
12226
12227         * cfgrtl.c: Include recog.h and insn-config.h.
12228         (keep_with_call_p): Fix general_operand invocation.
12229         * Makefile.in (cfgrtl.o): Update dependencies.
12230
12231 2002-02-07  Kazu Hirata  <kazu@hxi.com>
12232
12233         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
12234         comment.  Accept HImode only if TARGET_H8300.
12235
12236 2002-02-07  Eric Christopher  <echristo@redhat.com>
12237
12238         * config/mips/crtn.asm: Cleanup #ifdefs.
12239
12240 2002-02-07  Eric Christopher  <echristo@redhat.com>
12241
12242         * config/mips/crti.asm: Add changes for mips16. mips16 uses
12243         register 7 as RA instead of $31.
12244         * config/mips/crtn.asm: Ditto.
12245         * config/mips/mips.c (mips_move_2words): Add case for
12246         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
12247         (compute_frame_size): Fix typo.
12248         (save_restore_insns): Ditto.  Make documentation about using
12249         register $7 as return register more precise.
12250         (mips_expand_epilogue): Fix comment. Add code to work around not
12251         being able to add to the stack pointer directly.
12252         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
12253         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
12254         epilogue.
12255
12256 2002-02-07  Tom Rix  <trix@redhat.com>
12257
12258         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
12259         immediates in ldu and stdu DS opcode field.
12260         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
12261         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
12262         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
12263
12264 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
12265
12266         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
12267         offset for stack bias.
12268
12269 2002-02-07  H.J. Lu <hjl@gnu.org>
12270
12271         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
12272
12273 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
12274
12275         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
12276
12277 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
12278
12279         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
12280         * i386.c (x86_order_regs_for_local_alloc): New global function.
12281         * i386.h (REG_ALLOC_ORDER): CLeanup.
12282         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
12283
12284 2002-02-07  Richard Henderson  <rth@redhat.com>
12285
12286         PR optimization/2463
12287         * alias.c (find_base_value): Recall base values for fixed hard regs.
12288         * loop.c (loop_regs_update): Don't use single_set on non-insns.
12289
12290 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
12291
12292         * config/mips/mips.md (define_delay) [mips16]: Adjust required
12293         length.
12294
12295 2002-02-06  Richard Henderson  <rth@redhat.com>
12296
12297         PR c/5609
12298         * stmt.c (resolve_operand_name_1): Take more care with mixed
12299         named and unnamed operands.
12300
12301 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
12302             Jan Hubicka  <jh@suse.cz>
12303
12304         * loop.c (remove_constant_addition): Avoid clobbering a shared
12305         CONST expression.
12306
12307 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
12308
12309         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
12310         * config/s390/t-linux64: New file.
12311         * config/s390/libgcc-glibc.ver: New file.
12312
12313 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
12314
12315         * config/s390/linux64.h: Delete file.
12316         * config/s390/s390x.h: New file.
12317         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
12318         as target header file.
12319         * config/s390/linux.h (TARGET_VERSION): Define depending on
12320         DEFAULT_TARGET_64BIT.
12321         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
12322         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
12323         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
12324         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
12325         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
12326         (EXTRA_SPEC): New define.
12327         * config/s390/s390.h (TARGET_VERSION): Define depending on
12328         DEFAULT_TARGET_64BIT.
12329         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
12330
12331 2002-02-06  Jason Merrill  <jason@redhat.com>
12332
12333         * c-decl.c (finish_function): Warn about a non-void function with
12334         no return statement and no abnormal exit.
12335         (current_function_returns_abnormally): New variable.
12336         (start_function): Clear it.
12337         (struct c_language_function): Add returns_abnormally.
12338         (push_c_function_context): Save it.
12339         (pop_c_function_context): Restore it.
12340         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
12341         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
12342         an explicit return type.
12343         * c-tree.h: Declare current_function_returns_abnormally.
12344         (C_FUNCTION_IMPLICIT_INT): New macro.
12345         * c-typeck.c (build_function_call): Set it.
12346         (c_expand_return): Set current_function_returns_value even if the
12347         value is erroneous.
12348
12349 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
12350
12351         PR c/5420:
12352         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
12353         unsafe for reevaluation.
12354
12355 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
12356
12357         PR c/5482:
12358         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
12359         EXPR_STMT, but COMPOUND_STMT, recurse into it.
12360
12361 2002-02-06  Richard Henderson  <rth@redhat.com>
12362
12363         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
12364         be a general_operand.  Dest for function value must be a pseudo.
12365
12366 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
12367
12368         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
12369         as SYMBOL_REFs from the constant pool.
12370
12371 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
12372
12373         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
12374         passed by invisible reference.
12375
12376 2002-02-05  Richard Henderson  <rth@redhat.com>
12377
12378         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
12379
12380 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
12381
12382         Implement using "base addresses" in insn operands as default.
12383         * config/mmix/mmix.c (mmix_conditional_register_usage): if
12384         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
12385         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
12386         used to read the rtx value.
12387         (mmix_target_asm_function_epilogue): Fix spacing.
12388         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
12389         (mmix_legitimate_address): Ditto.
12390         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
12391         should be loaded with a GETA insn.  Don't allocate needless extra
12392         char for nul termination and fix misleading comment.
12393         (mmix_print_operand_address): Handle constants if
12394         TARGET_BASE_ADDRESSES.
12395         (mmix_output_register_setting): Use base addressing if
12396         TARGET_BASE_ADDRESSES and the number of insns is 3.
12397         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
12398         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
12399         to use R as constraint, add LDA to match s.
12400         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
12401         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
12402         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
12403         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
12404         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
12405         order with other fixed registers.
12406         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
12407         other parameter/call-clobbered registers.
12408         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
12409         -mbase-addresses, -mno-base-addresses.
12410         (MMIX Options): Ditto.
12411
12412 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12413
12414         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
12415
12416 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
12417
12418         * config/rs6000/altivec.h: Change elem to _S_elem.
12419
12420 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
12421
12422         * config/netbsd.h (WCHAR_TYPE): Define.
12423         (WCHAR_TYPE_SIZE): Ditto.
12424         (WINT_TYPE): Ditto.
12425         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
12426         (WCHAR_UNSIGNED): Ditto.
12427         (WCHAR_TYPE_SIZE): Ditto.
12428         (WINT_TYPE): Ditto.
12429         * config/arm/netbsd.h: Likewise.
12430         * config/i386/netbsd-elf.h: Likewise.
12431         * config/i386/netbsd.h: Likewise.
12432         * config/m68k/netbsd-elf.h: Likewise.
12433         * config/m68k/netbsd.h: Likewise.
12434         * config/ns32k/netbsd.h: Likewise.
12435         * config/sparc/netbsd.h: Likewise.
12436         * config/vax/netbsd.: Likewise.
12437
12438 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
12439
12440         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
12441         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
12442         (TARGET_INITIALIZER): this.
12443         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
12444         (BITFIELD_NBYTES_LIMITED): Markup fix.
12445         * tree.h (default_ms_bitfield_layout_p): Declare.
12446         (record_layout_info): Added prev_field.
12447         * tree.c (default_ms_bitfield_layout_p): New fn.
12448         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
12449         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
12450         * stor-layout.c: Include target.h.
12451         (start_record_layout): Initialize prev_field.
12452         (place_field): Handle MS bit-field layout, and disregard
12453         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
12454         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
12455         * Makefile.in (stor-layout.o): Adjust dependencies.
12456
12457 2002-02-05  Jason Merrill  <jason@redhat.com>
12458
12459         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
12460
12461 2002-02-05  Andreas Jaeger  <aj@suse.de>
12462
12463         * crtstuff.c: Fix comments.
12464
12465 2002-02-05  Richard Henderson  <rth@redhat.com>
12466
12467         PR fortran/3393
12468         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
12469         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
12470
12471         PR fortran/3392
12472         * config/mips/mips.c (function_arg): Handle TImode.
12473         (function_arg_advance): Likewise.
12474
12475 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
12476
12477         * config/rs6000/altivec.h (vec_step_help): Rename to
12478         __vec_step_help.
12479
12480 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
12481
12482         * config/rs6000/altivec.h: Fix typos.
12483
12484 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
12485
12486         * config/arm/netbsd.h: Correct a comment.
12487
12488 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
12489
12490         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
12491         building void typed builtins.
12492
12493         * config/rs6000/altivec.h (vec_ld*): Fix typos.
12494         (vec_step): Implement for C++.
12495
12496 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12497
12498         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
12499
12500 2002-02-04  Richard Henderson  <rth@redhat.com>
12501
12502         * combine.c (nonzero_bits): Re-introduce special case for
12503         sp/fp/ap wrt REGNO_POINTER_ALIGN.
12504
12505 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
12506
12507         * doc/extend.texi: Warn about unsupported usage of altivec
12508         builtins.
12509
12510         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
12511         (altivec_predicate_*): New.
12512
12513         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
12514         Add C++ version of vec_*() functions.
12515
12516         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
12517         (bdesc_2arg): Remove altivec predicates.
12518         (altivec_expand_builtin): Handle predicates.
12519         (altivec_init_builtins): Handle predicates.
12520         (altivec_expand_predicate_builtin): New.
12521
12522 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12523
12524         * pa.c (DO_FRAME_NOTES): Move forward.
12525         (store_reg): Revise handling of frame notes.
12526         (load_reg): Likewise.
12527         (set_reg_plus_d): Likewise.
12528         (hppa_expand_prologue): Likewise.
12529         (hppa_expand_epilogue): Likewise.
12530
12531 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12532
12533         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
12534
12535 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
12536
12537         PR c/4475, c++/3780:
12538         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
12539         * c-common.h (SWITCH_TYPE): Define.
12540         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
12541         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
12542         Rename spareness variable to sparseness.
12543         (expand_end_case_type): Renamed from expand_end_case, use orig_type
12544         if non-NULL instead of TREE_TYPE (orig_index).
12545         * tree.h (expand_end_case_type): Renamed from expand_end_case.
12546         (expand_end_case): Define using expand_end_case_type.
12547         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
12548         to expand_end_case_type.
12549         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
12550
12551 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12552
12553         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
12554         (BIGGEST_ALIGNMENT): Change to 128.
12555
12556 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12557
12558         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
12559
12560 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12561
12562         * pa.md (call_internal_reg_64bit): Remove unused variable.
12563
12564 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
12565
12566         * config/arm/arm.h (machine_function): Add uses_anonymous_args
12567         field.
12568         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
12569         * config/arm/arm.c (current_function_anonymous_args): Delete,
12570         replace uses with cfun->machine->uses_anonymous_args.
12571         (arm_reorg): Do not reset uses_anonymous_args.
12572
12573         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
12574         any geenral register.
12575
12576 2001-02-04  Bernd Schmidt  <bernds@redhat.com>s
12577
12578         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
12579         the entry block.
12580
12581 2002-02-04  Richard Henderson  <rth@redhat.com>
12582
12583         * combine.c (force_to_mode): Remove STACK_BIAS code.
12584         (nonzero_bits): Likewise.  Replace sp/fp special case with
12585         REGNO_POINTER_ALIGN.
12586
12587         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
12588         (HARD_FRAME_POINTER_REGNUM): New.
12589         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
12590         (FIXED_REGS, CALL_USED_REGS): Update.
12591         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
12592         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
12593         (HARD_REGNO_NREGS): Update for SFP.
12594         (STACK_POINTER_OFFSET): Include bias here ...
12595         (FIRST_PARM_OFFSET): ... not here.
12596         (STACK_BIAS): Remove.
12597         (INIT_EXPANDERS): New.
12598         (STARTING_FRAME_OFFSET): Do not include bias.
12599         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
12600         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
12601         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
12602         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
12603         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
12604         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
12605         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
12606         (MUST_SAVE_REGISTER): Likewise.
12607         (sparc_flat_function_prologue): Likewise.
12608         (sparc_flat_function_epilogue): Likewise.
12609         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
12610         (sparc_init_modes): SFP is GENERAL_REGS.
12611         (sparc_builtin_saveregs): SFP does not have bias applied.
12612
12613 2002-02-04  Richard Henderson  <rth@redhat.com>
12614
12615         * config/alpha/alpha.c (current_function_is_thunk): Don't check
12616         current_function_is_thunk.
12617         (alpha_sa_mask): Distinguish between current_function_is_thunk
12618         called from ASM_OUTPUT_MI_THUNK and not.
12619         (alpha_does_function_need_gp): Thunks always need gp.
12620         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
12621         (alpha_output_mi_thunk_osf): New.
12622         * config/alpha/alpha-protos.h: Update.
12623         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
12624
12625 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
12626
12627         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
12628         function types, not when they're taken away.
12629
12630 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
12631
12632         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
12633         CODE_LABEL and jump table when replacing a table jump with a
12634         simple jump.
12635
12636 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
12637
12638         * config/s390/s390-protos.h (legitimize_la_operand,
12639         s390_secondary_input_reload_class, s390_plus_operand,
12640         s390_expand_plus_operand): Add prototypes.
12641
12642         config/s390/s390.c (s390_secondary_input_reload_class,
12643         s390_plus_operand, s390_expand_plus_operand): New functions.
12644
12645         (struct s390_address): New member 'pointer'.
12646         (s390_decompose_address): Compute it.
12647         (legitimate_la_operand_p): Use it.
12648         (legitimize_la_operand): New function.
12649         (movti, movdi, movdf splitters): Call it.
12650
12651         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
12652         (PREDICATE_CODES): Add s390_plus_operand.
12653
12654         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
12655         (la_ccclobber): Allow GENERAL_REGS as output operand.
12656
12657         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
12658         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
12659         (*la_64, *la_31, reload_indi, reload_insi): ... these.
12660
12661 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
12662
12663         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
12664         register names for regular asm () construct.
12665
12666 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
12667
12668         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
12669         registers.
12670
12671 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
12672
12673         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
12674         pat for recog.
12675
12676 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
12677
12678         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
12679         constant pool to be identical by string address and index.
12680
12681 2002-02-04  Anthony Green  <green@redhat.com>
12682
12683         * output.h (SECTION_OVERRIDE): Define.
12684         * varasm.c (named_section): Obey SECTION_OVERRIDE.
12685
12686 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
12687
12688         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
12689         by existing arm*-*-netbsd* (a.out) target.
12690         (ns32k-*-netbsdelf*): Likewise.
12691         (sparc-*-netbsdelf*): Likewise.
12692         (vax-*-netbsdelf*): Likewise.
12693
12694 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
12695
12696         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
12697         headers and libobjc headers.
12698
12699 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
12700
12701         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
12702         (_mingw.h): Remove duplicate include.
12703
12704 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
12705
12706         * config.gcc: Set cpu_type to m68k for 68010, as well.
12707         (m68010-*-netbsdelf*): New...
12708         (m68k*-*-netbsdelf*): ...targets.
12709         * config/m68k/netbsd-elf.h: New file.
12710
12711 2002-02-02  Kazu Hirata  <kazu@hxi.com>
12712
12713         * config/h8300/h8300.c (hand_list): Move inside function_arg.
12714
12715 2002-02-02  Kazu Hirata  <kazu@hxi.com>
12716
12717         * config/h8300/h8300.c (h8_push_ops): Move inside
12718         h8300_init_once.
12719         (h8_pop_ops): Likewise.
12720         (h8_move_ops): Likewise.
12721
12722 2002-02-02  Kazu Hirata  <kazu@hxi.com>
12723
12724         * config/h8300/h8300.c (os_task): Make it static.
12725         (monitor): Likewise.
12726         (pragma_saveall): Likewise.
12727
12728 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
12729
12730         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
12731         constant is a valid sign-extension for Pmode.
12732
12733 2002-02-02  Kazu Hirata  <kazu@hxi.com>
12734
12735         * config/h8300/h8300.c: Fix formatting.
12736
12737 2002-02-02  Kazu Hirata  <kazu@hxi.com>
12738
12739         * config/h8300/h8300.md: Fix formatting.
12740
12741 2002-02-02  Kazu Hirata  <kazu@hxi.com>
12742
12743         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
12744         predicates of operands[1].  Split the patterns for each
12745         processor variant.
12746
12747 2002-02-02  Kazu Hirata  <kazu@hxi.com>
12748
12749         * config/h8300/h8300.md (xor patterns): Tighten the predicates
12750         of operands[1] to register_operand.
12751
12752 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
12753
12754         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
12755         * cpphash.c (_cpp_init_hashtable): Similarly.
12756         * cppinit.c (cpp_create_reader): Default the signed_char flag.
12757         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
12758         (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
12759         (cpp_handle_option): Handle the new options.
12760         * cpplex.c (cpp_interpret_charconst): Use new flag.
12761         * cpplib.h (struct cpp_options): New member signed_char.
12762         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
12763         (cpp_options): Handle -fsigned-char and -funsigned-char.
12764         (static_specs): Remove signed_char_spec.
12765         (do_spec1): Don't handle %c.
12766         * system.h: Poison SIGNED_CHAR_SPEC.
12767         * tradcif.y (yylex): Use flag_signed_char.
12768         * tradcpp.h (flag_signed_char): New.
12769         * tradcpp.c (flag_signed_char): New.
12770         (main): Handle new command-line options.
12771         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
12772 config:
12773         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
12774         * avr/avr.h: Remove old comments.
12775         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
12776         (CC1_SPEC): Pass -fsigned-char if -mic*.
12777         (SIGNED_CHAR_SPEC): Remove.
12778 doc:
12779         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
12780
12781 2002-02-01  Eric Christopher  <echristo@redhat.com>
12782
12783         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
12784         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
12785         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
12786         (ASM_OUTPUT_REG_POP): Ditto.
12787
12788 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
12789
12790         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
12791         patch.
12792
12793 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
12794
12795         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
12796
12797 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
12798
12799         PR c/5304:
12800         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
12801         unconditionally.
12802
12803 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
12804
12805         * cfganal.c: Include tm_p.h.
12806         (keep_with_call_p): Fix the test that determines if a register holds
12807         the return value of a call.
12808
12809 2002-02-01  DJ Delorie  <dj@redhat.com>
12810
12811         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
12812         we are given conflicting registers, switch to the other one we
12813         had allocated for us.
12814         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
12815         as TImode so we know when the "other" register is available.
12816
12817 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
12818
12819         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
12820         sparc/sparc_bi.h.
12821
12822 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
12823
12824         * cfganal.c (keep_with_call_p): New function.
12825         (flow_call_edges_add): Prevent splitting a block between a call and
12826         a single-set instruction that should be kept in the same block.
12827
12828 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
12829
12830         * doc/install.texi (avr): Update outdated URL.
12831
12832 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
12833
12834         * config/stormy16/stormy16.md (pushqi): New.
12835         (popqi): New.
12836         (pushhi): New.
12837         (pophi): New.
12838         (movhi): Remove stack operands.
12839         (movqi): Likewise.
12840         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
12841         nonimmediate_nonstack_operand.
12842         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
12843         New.
12844         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
12845         New.
12846
12847 2002-01-31  Jason Merrill  <jason@redhat.com>
12848
12849         * Makefile.in (c-parse.c): Handle .output file.
12850         * objc/Make-lang.in (objc-parse.c): Likewise.
12851
12852 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
12853
12854         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
12855         the -me[lb] option is given.  Don't output the default flag
12856         twice.
12857
12858 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
12859
12860         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
12861         the primary source file; this has not been done yet.
12862         * c-decl.c (c_expand_body): Reset input_filename from
12863         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
12864
12865 2002-01-31  Kazu Hirata  <kazu@hxi.com>
12866
12867         * rtlanal.c (subreg_regno_offset): Do not use
12868         SUBREG_REGNO_OFFSET.
12869         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
12870         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
12871
12872 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
12873
12874         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
12875         version rather than GNATS version in --version output.
12876
12877 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
12878
12879         * ifcvt.c (noce_process_if_block): Make a copy of the destination
12880         when copying back from a temporary.
12881
12882 2002-01-30  Richard Henderson  <rth@redhat.com>
12883
12884         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
12885         and new_dest are the same.
12886
12887 2002-01-30  Richard Henderson  <rth@redhat.com>
12888
12889         PR opt/5076
12890         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
12891         * rtl.c (note_insn_name): Update.
12892         * emit-rtl.c (remove_unnecessary_notes): Kill it.
12893         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
12894         to perform loop rotation.
12895         (expand_exit_loop_top_cond): New.
12896         * tree.h (expand_exit_loop_top_cond): Declare it.
12897         * c-semantics.c (genrtl_while_stmt): Use it.
12898         (genrtl_for_stmt): Likewise.
12899
12900 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
12901
12902         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
12903         arguments to 64-bit boundaries on 64-bit ABIs.
12904
12905 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
12906
12907         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
12908
12909 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
12910
12911         * c-decl.c (grokdeclarator): Handle type being a typedef for an
12912         invalid type.
12913
12914 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
12915
12916         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
12917         * config/sparc/sparc_bi.h: Remove file.
12918         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
12919
12920 2002-01-30  Richard Henderson  <rth@redhat.com>
12921
12922         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
12923
12924 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
12925
12926         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
12927
12928 2002-01-30  Jason Merrill  <jason@redhat.com>
12929
12930         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
12931         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
12932         (reg_save): Use DW_CFA_offset_extended_sf instead.
12933
12934         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
12935
12936 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
12937
12938         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
12939         in cselib_lookup.
12940
12941 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
12942
12943         * rs6000.md ("*call_value_local32"): Remove constraints.
12944         ("*call_value_local64"): Same.
12945         ("*call_value_indirect_nonlocal_aix32"): Same.
12946         ("*call_value_nonlocal_aix32"): Same.
12947         ("*call_value_indirect_nonlocal_aix64"): Same.
12948         ("*call_value_nonlocal_aix64"): Same.
12949         ("*call_value_nonlocal_sysv"): Same.
12950
12951 2002-01-29  Richard Henderson  <rth@redhat.com>
12952
12953         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
12954
12955 2002-01-29  Richard Henderson  <rth@redhat.com>
12956
12957         * expr.c (force_operand): Ignore flag_pic for detecting pic
12958         address loads.
12959         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
12960         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
12961         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
12962         instead of open-coded loop.
12963         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
12964         be fixed when in use.
12965
12966 2002-01-29  Richard Henderson  <rth@redhat.com>
12967
12968         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
12969         * sched-rgn.c (propagate_deps): Update them.
12970         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
12971         clobbers list when either gets too long.
12972
12973 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
12974
12975         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
12976         and INDEX_REGS the same as GENERAL_REGS.
12977         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
12978
12979 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
12980
12981         * tree.c (build_nonstandard_integer_type): Correct prototype.
12982
12983 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
12984
12985         * config/s390/s390.md (movstrsico, movstrdix_64,
12986         movstrsix_31): Remove, replace by ...
12987         (movstrdi_short, movstrsi_short, movstrdi_long,
12988         movstrsi_long): ... these.  New.
12989         (movstrdi, movstrsi): Adapt.
12990
12991         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
12992         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
12993         Remove unnecessary CC clobber.
12994         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
12995         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
12996
12997         (divmoddi4): Don't partially initialize TImode register.
12998
12999 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
13000
13001         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
13002
13003 2002-01-29  Richard Henderson  <rth@redhat.com>
13004
13005         * flow.c (print_rtl_and_abort): Remove.
13006         (print_rtl_and_abort_fcn): Remove.
13007         (verify_local_live_at_start): Use dump_bb instead.
13008         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
13009         (verify_wide_reg_1): Return 2 on mode test failure.
13010
13011 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
13012
13013         PR c/3325, c/3326, c/2511, c/3347
13014         * c-decl.c (enum_decl_context): Remove BITFIELD.
13015         (grokdeclarator): Take bitfield width as an input.
13016         Ensure bitfields are given the correct type.  Perform
13017         bitfield width validation with build_bitfield_integer_type
13018         rather than waiting for finish_struct.
13019         (grok_typename, grok_typename_in_parm_context, start_decl,
13020         push_parmdecl, grokfield, start_function): Update calls to
13021         grokdeclarator.
13022         (build_bitfield_integer_type): New function.
13023         (finish_struct): Move bitfield validation to grokdeclarator
13024         and build_bitfield_integer_type.
13025         * tree.c (build_nonstandard_integer_type): New function.
13026         * tree.h (build_nonstandard_integer_type): New prototype.
13027 objc:
13028         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
13029
13030 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
13031
13032         PR other/1502:
13033         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
13034         don't ignore unrecognized -W* options.
13035         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
13036         * cpplib.h (cpp_handle_option): Adjust prototype.
13037         * c-decl.c (c_decode_options): Pass 0 as last argument to
13038         cpp_handle_option.
13039
13040         PR c/2896:
13041         * gcc.c (cpp_unique_options): Split from cpp_options.
13042         (cpp_options): Source cpp_unique_options.
13043         (default_compilers): Use cpp_unique_options instead of cpp_options
13044         when used together with cc1_options.
13045         (static_specs): Add cpp_unique_options.
13046         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
13047         when used together with cc1_options.
13048
13049 2002-01-29  Kazu Hirata  <kazu@hxi.com>
13050
13051         * config/h8300/h8300-protos.h: Update the prototype of
13052         output_a_shift.
13053         * config/h8300/h8300.c (output_a_shift): Remove an unused
13054         argument 'insn'.  Remove redundant code.
13055         * config/h8300/h8300.md: Adust to the new prototype of
13056         output_a_shift.
13057
13058 2002-01-29  Kazu Hirata  <kazu@hxi.com>
13059
13060         * config/h8300/h8300-protos.h: Update the prototypes of
13061         emit_a_rotate and expand_a_rotate.
13062         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
13063         first argument to 'enum rtx_code'.
13064         (expand_a_rotate): Likewise.
13065
13066 2002-01-28  Kazu Hirata  <kazu@hxi.com>
13067
13068         * config/h8300/h8300-protos.h: Update the prototype of
13069         output_simode_bld.
13070         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
13071         'log2'.
13072         * config/h8300/h8300.md: Adjust to the new prototype.
13073
13074 2002-01-28  Kazu Hirata  <kazu@hxi.com>
13075
13076         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
13077         redundant code.
13078
13079 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13080
13081         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
13082         is a fixed register before returning pic_offset_table_rtx.
13083         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
13084         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
13085
13086 2002-01-28  Jason Merrill  <jason@redhat.com>
13087
13088         * dwarf2.h: Sync with src version.
13089
13090 2002-01-28  Paul Koning  <pkoning@equallogic.com>
13091
13092         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
13093         BT_FN_VOID_PTR_VAR.
13094         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
13095         * doc/extend.texi (__builtin_prefetch): Update documentation:
13096         first argument is now const void ptr.
13097
13098 2002-01-28  Kazu Hirata  <kazu@hxi.com>
13099
13100         * config/h8300/h8300-protos.h: Remove an unused prototype.
13101
13102 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
13103
13104         * toplev.c (lang_independent_init): Round up identifier size.
13105
13106 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
13107
13108         * config.gcc: Revert previous change.
13109
13110 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
13111
13112         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
13113
13114 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
13115
13116         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
13117         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
13118         other non-elf netbsd config frags.
13119         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
13120         collect2 will does that.
13121         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
13122         shared-lib frobbing will work.
13123
13124 2002-01-28  Kazu Hirata  <kazu@hxi.com>
13125
13126         * config/h8300/h8300.h: Fix formatting.
13127         * config/h8300/h8300.md: Likewise.
13128
13129 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
13130
13131         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
13132         the old, removed AAA_standards fix.
13133         * fixinc/fixincl.x: Rebuilt.
13134
13135 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
13136
13137         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
13138         atexit call in crtbegin, hooked in after call to frame_dummy;
13139         register EH before registering __fini__start.
13140
13141 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
13142
13143         * config/rs6000/altivec.h: Remove spurious semicolons.
13144
13145 2002-01-27  Kazu Hirata  <kazu@hxi.com>
13146
13147         * config/h8300/h8300.md: Replace dead bit extraction patterns
13148         with ones that work.
13149
13150 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13151
13152         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
13153         if not STRICT_ALIGNMENT.
13154         * rtl.h (MEM_ALIGN): Likewise.
13155
13156 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
13157
13158         * doc/invoke.texi (-fdump-translation-unit): Revert this
13159         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
13160
13161 2002-01-27  Kazu Hirata  <kazu@hxi.com>
13162
13163         * config/h8300/h8300.md (define_constants): New.
13164         (anonymous patterns) Use defined constants appropriately.
13165
13166 2002-01-27  Kazu Hirata  <kazu@hxi.com>
13167
13168         * config/h8300/h8300.c (function_arg): Remove redundant code.
13169
13170 2002-01-26  Richard Henderson  <rth@redhat.com>
13171
13172         * sched-deps.c (reg_pending_uses_head): New.
13173         (reg_pending_barrier): Rename from reg_pending_sets_all.
13174         (find_insn_list): Don't mark inline.
13175         (find_insn_mem_list): Remove.
13176         (add_dependence_list, add_dependence_list_and_free): New.
13177         (flush_pending_lists): Replace only_write param with separate
13178         for_read and for_write parameters.  Update all callers.  Use
13179         add_dependence_list_and_free.
13180         (sched_analyze_1): Do not add reg dependencies here; just set
13181         the pending bits.  Use add_dependence_list.
13182         (sched_analyze_2): Likewise.
13183         (sched_analyze_insn): Replace schedule_barrier_found with
13184         reg_pending_barrier.  Add all dependencies for pending reg
13185         uses, sets, and clobbers.
13186         (sched_analyze): Don't add reg dependencies for calls, just
13187         set pending bits.  Use regs_invalidated_by_call.  Treat
13188         sched_before_next_call as a normal list, not a fake insn.
13189         (init_deps): No funny init for sched_before_next_call.
13190         (free_deps): Free pending mems lists.  Don't zero reg_last.
13191         (init_deps_global): Init reg_pending_uses.
13192         (finish_deps_global): Free it.
13193         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
13194         (find_insn_mem_list): Remove.
13195         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
13196         (propagate_deps): Use them.  Zero temp mem lists.
13197
13198 2002-01-26  Richard Henderson  <rth@redhat.com>
13199
13200         * Makefile.in (CRTSTUFF_CFLAGS): New.
13201         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
13202         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
13203         crtstuff.c instead of alpha assembly version.
13204         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
13205         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
13206         not FORCE_{INIT,FINI}_SECTION_ALIGN.
13207         (__do_global_dtors_aux): Mark used.
13208         (frame_dummy, __do_global_ctors_aux): Mark used.
13209         (fini_dummy, init_dummy): Remove.
13210
13211         * config/alpha/crtbegin.asm: Remove file.
13212         * config/alpha/crtend.asm: Remove file.
13213         * config/alpha/t-crtbe: Remove file.
13214         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
13215         (LINK_EH_SPEC): New.
13216
13217         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
13218         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
13219         calling constructors.
13220         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
13221
13222         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
13223         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
13224         CRT_END_INIT_DUMMY hack.
13225         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
13226         FORCE_{INIT,FINI}_SECTION_ALIGN.
13227
13228         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
13229         FORCE_{INIT,FINI}_SECTION_ALIGN.
13230
13231         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
13232         invocation sequence.
13233         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
13234
13235         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
13236         (FORCE_CODE_SECTION_ALIGN): New.
13237
13238 2002-01-26  Richard Henderson  <rth@redhat.com>
13239
13240         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
13241
13242 2002-01-26  Richard Henderson  <rth@redhat.com>
13243
13244         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
13245         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
13246
13247 2002-01-26  Kazu Hirata  <kazu@hxi.com>
13248
13249         * config/h8300/h8300.md: Remove bit extraction patterns that
13250         cannot be triggered.
13251         Restrict each bit extraction pattern to a variant on which the
13252         pattern is tested.
13253
13254 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
13255
13256         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
13257
13258 2002-01-26  Kazu Hirata  <kazu@hxi.com>
13259
13260         * config/h8300/h8300.md: Remove bit test patterns that cannot
13261         be triggered.
13262         Restrict each bit test pattern to a variant on which the
13263         pattern is tested.
13264
13265 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13266
13267         * builtins.c (expand_builtin_strncat): Remove redundant check for
13268         INTEGER_CST.
13269
13270 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
13271
13272         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
13273         default setting.
13274         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
13275         existing setting.
13276
13277 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
13278
13279         * dbxout.c (dbxout_init): Use assemble_name rather than just
13280         stripping off the first character.
13281         (dbxout_source_file): Likewise.
13282
13283 2002-01-25  DJ Delorie  <dj@redhat.com>
13284
13285         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
13286         using rtx_equal_p, not by comparing pointers.
13287
13288 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
13289
13290         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
13291         for PIC_OFFSET_TABLE_REGNUM.
13292         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
13293
13294 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
13295
13296         * config.gcc (x86_64-*-freebsd*): New target.
13297         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
13298         value.
13299         (i[34567]86-*-freebsd*): Don't include svr4.h.
13300         * config/i386/freebsd64.h: New file.
13301
13302 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
13303
13304         * config/alpha/x-vms (version): Make static.
13305
13306         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
13307         in previous checkin.
13308
13309         * Makefile.in (install-headers-cp): New target.
13310         * config.gcc (alpha-dec-*vms*): Install headers with
13311         install-headers-cp
13312
13313 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
13314
13315         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
13316         avoid it's copies.
13317
13318 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13319
13320         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
13321         of compare_tree_int.
13322         (expand_builtin_strncat): Likewise.
13323         * c-decl.c (finish_struct): Use tree_low_cst.
13324         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
13325         * tree.c (compare_tree_int): Likewise.
13326
13327 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
13328
13329         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
13330         adjustments even if they are implemented by more than two insns.
13331
13332 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
13333
13334         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
13335         * df.h (struct ref): Kill B.
13336         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
13337
13338         * basic-block.h (PROP_EQUAL_NOTES): New flag.
13339         * flow.c (propagate_one_insn): Use it.
13340         (mark_used_regs): Handle NIL.
13341
13342 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
13343
13344         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
13345         to help folding.
13346
13347 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
13348
13349         * rs6000.md (prefetch): Make address V4SI mode so that the address
13350         is restricted to legitimate form for instruction.
13351
13352 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
13353
13354         * doc/install.texi (xtensa-*-elf): New target.
13355         (xtensa-*-linux*): New target.
13356         * doc/contrib.texi: Add myself.
13357
13358 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
13359
13360         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
13361         purpose register to hold an SImode (or smaller) value.
13362
13363 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
13364
13365         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
13366         registry only.
13367         * crtstuff.c: Likewise.
13368
13369 2002-01-25  Kazu Hirata  <kazu@hxi.com>
13370
13371         * config/h8300/h8300.md (negation patterns): Tighten
13372         predicates to register_operand.
13373
13374 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
13375
13376         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
13377         mode, not Pmode.
13378
13379         * builtins.c (expand_builtin_prefetch): Same.
13380
13381 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
13382
13383         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
13384         modes.
13385
13386 2002-01-24  Kazu Hirata  <kazu@hxi.com>
13387
13388         * config/h8300/h8300.c (print_operand): Remove support for
13389         operand character 'A'.
13390         * config/h8300/h8300.md (three anonymous patterns): Replace
13391         operand character 'A' with either 'T' or 'S'.
13392
13393 2002-01-24  Kazu Hirata  <kazu@hxi.com>
13394
13395         * config/h8300/h8300.c (print_operand): Remove support for
13396         operand character 'U'.
13397
13398 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
13399
13400         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
13401
13402 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
13403
13404         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
13405         values to be assigned to the stack pointer.
13406
13407 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
13408
13409         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
13410         to const_double needs to be done right for big-endian systems.
13411
13412 2002-01-24  Jason Merrill  <jason@redhat.com>
13413
13414         PR c++/2432
13415         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
13416         to can_throw_internal.
13417
13418 2002-01-23  Richard Henderson  <rth@redhat.com>
13419
13420         * fold-const.c (fold): Change UINT_MAX test to check vs precision
13421         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
13422
13423 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
13424
13425         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
13426         (symGOT2reg): Use them, then set as GOT value as unchanging.
13427         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
13428         as a temporary, if possible.
13429         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
13430         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
13431
13432 2002-01-23  Kazu Hirata  <kazu@hxi.com>
13433
13434         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
13435         accept to accept 0x80 as operands[2].
13436
13437 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
13438
13439         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
13440
13441 2002-01-23  Richard Henderson  <rth@redhat.com>
13442
13443         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
13444
13445 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
13446
13447         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
13448         (parmlist_or_identifiers_1): Verify that only a parmlist follows
13449         an attribute.
13450
13451 2002-01-23  Richard Henderson  <rth@redhat.com>
13452
13453         * expr.c (move_by_pieces_1): Extend size before negation.
13454
13455         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
13456         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
13457         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
13458         * config/m68k/t-m68kelf: Likewise.
13459
13460 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
13461
13462         * config/xtensa/elf.h: New file.
13463         * config/xtensa/lib1funcs.asm: New file.
13464         * config/xtensa/lib2funcs.S: New file.
13465         * config/xtensa/linux.h: New file.
13466         * config/xtensa/t-xtensa: New file.
13467         * config/xtensa/xtensa-config.h: New file.
13468         * config/xtensa/xtensa-protos.h: New file.
13469         * config/xtensa/xtensa.c: New file.
13470         * config/xtensa/xtensa.h: New file.
13471         * config/xtensa/xtensa.md: New file.
13472         * config.gcc (xtensa-*-elf*): New target.
13473         (xtensa-*-linux*): New target.
13474         * cse.c (canon_hash): Compare rtx pointers instead of register
13475         numbers.  This is required for the Xtensa port.
13476         * integrate.c (copy_insn_list): Handle case where the static
13477         chain is in memory and the memory address has to be copied to
13478         a register.
13479         * doc/invoke.texi (Option Summary): Add Xtensa options.
13480         (Xtensa Options): New node.
13481         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
13482
13483 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
13484
13485         * diagnostic.c (internal_error): Do ICE suppression only
13486         when ENABLE_CHECKING is not defined.
13487
13488         * c-typeck.c (require_complete_type): Return error_mark_node
13489         if type is error_mark_node.
13490
13491 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
13492
13493         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
13494         -Os and issue a warning.
13495
13496 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
13497
13498         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
13499         current (lack of) need for host configuration by hand.
13500
13501         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
13502         references.  Documentation of some target macros moved from
13503         hostconfig.texi to tm.texi.
13504
13505 2002-01-23  Will Cohen  <wcohen@redhat.com>
13506
13507         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
13508         defined.
13509
13510 2002-01-23  Kazu Hirata  <kazu@hxi.com>
13511
13512         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
13513         operand[3].
13514
13515 2002-01-23  Jason Merrill  <jason@redhat.com>
13516
13517         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
13518
13519         * function.c (assign_parms): Don't put args of inline functions
13520         into registers when not optimizing.
13521
13522 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
13523
13524         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
13525         (prologue_use): New pattern.
13526         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
13527         preference to gen_rtx_USE.
13528         (thumb_expand_prologue): Use gen_prologue_use in preference to
13529         gen_rtx_USE.
13530         (thumb_expand_epilogue): Use gen_prologue_use in preference to
13531         gen_rtx_USE.
13532
13533 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
13534
13535         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
13536
13537 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
13538
13539         PR c/3504
13540         * doc/extend.texi: Correct documentation of __alignof__.
13541
13542 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
13543
13544         * params.h: Rename arguments of DEFPARAM so that it will be
13545         recognized as a translation keyword.
13546
13547 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
13548
13549         * extend.texi: Document altivec functions.
13550         Fix N-bit adjectives in X86 builtin documentation.
13551
13552 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
13553
13554         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
13555         auto_inc_dec values.
13556
13557 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
13558
13559         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
13560         after backslash.
13561         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
13562
13563 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
13564
13565         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
13566
13567 2002-01-22  Richard Henderson  <rth@redhat.com>
13568
13569         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
13570         copy_insn not copy_rtx.
13571
13572 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
13573
13574         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
13575         "nonzero" as that might add "1" bits.  Ensure "constop" is
13576         properly sign extened.
13577         (force_to_mode): Tweak for sign extended constop.
13578
13579 2002-01-22  Richard Henderson  <rth@redhat.com>
13580
13581         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
13582         for_each_rtx instead of assuming we're already looking at the MEM.
13583         (split_small_symbolic_mem_operand): Likewise.
13584         * config/alpha/alpha.h (PREDICATE_CODES): Update.
13585         * config/alpha/alpha.md (small symbolic memory splitters): Update.
13586
13587 2002-01-22  Richard Henderson  <rth@redhat.com>
13588
13589         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
13590         sequence number for the literal.
13591         (divmoddi_internal_er): Likewise.
13592
13593 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
13594
13595         PR java/4972
13596         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
13597         in LIBICONV variable.
13598         * configure: Regenerated.
13599
13600 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
13601
13602         * dependence.c (build_def_use): Remove array_idx.
13603
13604         * dwarfout.c (last_filename): Remove.
13605         (output_compile_unit_die): Remove last_filename.
13606
13607 2002-01-22  Roger Sayle  <roger@eyesopen.com>
13608             Richard Henderson  <rth@redhat.com>
13609
13610         PR opt/3640
13611         * fold-const.c (fold): Optimize unsigned comparisons against
13612         UINT_MAX (and similar unsigned constants).
13613
13614 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
13615
13616         * Makefile.in (loop.o): Depend on OPTABS_H.
13617         * loop.c (emit_prefetch_instructions): Check the prefetch operand
13618         against the predicate.
13619
13620         PR target/5379
13621         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
13622         for the address operand.
13623
13624 2002-01-22  Richard Henderson  <rth@redhat.com>
13625
13626         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
13627
13628 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
13629
13630         PR other/5450
13631         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
13632         preprocessor flags.
13633
13634 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
13635
13636         * config.gcc (x86_64-*-netbsd*): New target.
13637         * config/i386/netbsd64.h: New file.
13638
13639 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
13640
13641         * regrename.c (kill_value): Fix typo.
13642
13643 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
13644
13645         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
13646
13647         * config/rs6000/rs6000.h: Same.
13648
13649         * function.c (instantiate_virtual_regs): Remove
13650         STARTING_FRAME_PHASE.
13651         (assign_stack_local_1): Same.
13652         Calculate frame phase.
13653
13654 2002-01-22  Nick Clifton  <nickc@redhat.com>
13655
13656         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
13657         variable declaration to outer scope in order to simplify
13658         future extensions.
13659         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
13660         arm_hard_regno_mode_ok.
13661         * config/arm/arm-protos.h: Add a prototype for
13662         arm_hard_regno_mode_ok.
13663         * config/arm/arm.c (soft_df_operand): Remove now redundant
13664         check for DImode values using IP_REGNUM.
13665         (nonimmediate_soft_df_operand): Remove now redundant check for
13666         DImode values using IP_REGNUM.
13667         (arm_hard_regno_mode_ok): New function. New check: make sure
13668         that DImode values are not stored in IP_REGNUM.
13669
13670         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
13671         note with a USE.
13672         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
13673
13674 2002-01-22  Jason Merrill  <jason@redhat.com>
13675
13676         * c-semantics.c (genrtl_compound_stmt): Only check nesting
13677         consistency if this COMPOUND_STMT is scoped.
13678
13679 2002-01-22  Kazu Hirata  <kazu@hxi.com>
13680
13681         * predict.c: Fix formatting.
13682         * print-tree.c: Likewise.
13683         * protoize.c: Likewise.
13684         * real.h: Likewise.
13685         * rtl.h: Likewise.
13686         * sbitmap.h: Likewise.
13687         * scan.c: Likewise.
13688         * sched-deps.c: Likewise.
13689         * sched-vis.c: Likewise.
13690         * sdbout.c: Likewise.
13691         * sibcall.c: Likewise.
13692         * ssa.c: Likewise.
13693         * ssa-ccp.c: Likewise.
13694         * ssa-dce.c: Likewise.
13695         * stmt.c: Likewise.
13696         * stor-layout.c: Likewise.
13697         * system.h: Likewise.
13698
13699 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13700
13701         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
13702         if fits in bounds of base type.
13703
13704         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
13705         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
13706         (add_bound_info, default): If can't find a context, make a
13707         SAVE_EXPR.
13708         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
13709
13710 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
13711
13712         * c-typeck.c (parser_build_binary_op): If result from
13713         build_binary_op is ERROR_MARK just return error_mark_node without
13714         further processing.
13715
13716 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
13717
13718         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
13719         Split a.out-specific bits into...
13720         * config/netbsd-aout.h: ...this.
13721         * config/netbsd-elf.h: New file.
13722         * config/alpha/netbsd-elf.h: Remove.
13723         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
13724         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
13725         (STARTFILE_SPEC): Remove redundant definition.
13726         (ENDFILE_SPEC): Likewise.
13727         (LINK_SPEC): Likewise.
13728         (CPP_SPEC): Likewise.
13729         (ASM_SPEC): Likewise.
13730         (LIB_SPEC): Likewise.
13731         (SWITCH_TAKES_ARG): Likewise.
13732         (TARGET_MEM_FUNCTIONS): Likewise.
13733         (CPP_PREDEFINES): Redefine.
13734         (ASM_FINAL_SPEC): Remove redefinition.
13735         (ASM_COMMENT_START): Redefine.
13736         (FUNCTION_PROFILER): Define.
13737         (TARGET_VERSION): Redefine.
13738         Comment and formatting cleanup.
13739         * config/i386/netbsd.h: Include <netbsd-aout.h>.
13740         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
13741         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
13742         big- or little-endian.
13743         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
13744         * config.gcc (*-*-netbsd*): Add definitions common to all
13745         NetBSD configs.
13746         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
13747         gnu_ld definitions.  Add netbsd-elf.h to and remove
13748         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
13749         tmake_file, and don't lose previous tmake_file contents.
13750         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
13751         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
13752         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
13753         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
13754         (mipsel-*-netbsd*): Rename this to...
13755         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
13756         mips/little.h to tm_file for mips*el-*.
13757         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
13758         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
13759         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
13760
13761 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13762
13763         * pa-protos.h (reg_before_reload_operand): New function prototype.
13764         * pa.c (reg_before_reload_operand): New function implementation.
13765         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
13766         contraints to "*m".
13767
13768 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
13769
13770         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
13771
13772 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13773
13774         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
13775         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
13776         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
13777         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
13778         (ENDFILE_SPEC): Undefine.
13779         (STARTFILE_SPEC): Redefine for PA.
13780
13781 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
13782
13783         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
13784
13785 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
13786
13787         * config.gcc: Add entries to supported PowerPC --with-cpu
13788         types.
13789
13790 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
13791
13792         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
13793         true for 64-bit mode only SSE registers in 32-bit mode.
13794
13795 2002-01-21  Kazu Hirata  <kazu@hxi.com>
13796
13797         * unwind-dw2.c: Fix formatting.
13798         * unwind-dw2-fde.c: Likewise.
13799         * unwind-dw2-fde.h: Likewise.
13800         * unwind-pe.h: Likewise.
13801         * varasm.c: Likewise.
13802         * varray.h: Likewise.
13803
13804 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
13805
13806         Remove workaround for register stack overwrite bug in mmix.
13807         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
13808         support for TARGET_REG_STACK_FILL_BUG.
13809         * config/mmix/mmix.h: Remove member has_call_without_parameters.
13810         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
13811         Delete.
13812         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
13813         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
13814         -mno-reg-stack-fill-bug-workaround.
13815         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
13816         machine member has_call_without_parameters.
13817         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
13818         -mreg-stack-fill-bug-workaround and
13819         -mno-reg-stack-fill-bug-workaround.
13820         (MMIX Options): Ditto.
13821
13822 2002-01-21  Kazu Hirata  <kazu@hxi.com>
13823
13824         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
13825         as appropriate.
13826         Remove redundant code.
13827
13828 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
13829
13830         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
13831         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
13832         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
13833         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
13834         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
13835         out target macro definitions and non-target-specific comments
13836         mostly taken from old versions of the manual.
13837
13838 2002-01-20  Kazu Hirata  <kazu@hxi.com>
13839
13840         * config/h8300/h8300.h: Fix comment formatting.
13841         * config/ia64/aix.h: Likewise.
13842         * config/ia64/ia64-protos.h: Likewise.
13843         * config/ia64/ia64.c: Likewise.
13844         * config/ia64/ia64.h: Likewise.
13845         * config/ia64/ia64intrin.h: Likewise.
13846         * config/ia64/linux.h: Likewise.
13847         * config/ia64/unwind-aix.c: Likewise.
13848         * config/ia64/unwind-ia64.c: Likewise.
13849
13850 2002-01-20  Kazu Hirata  <kazu@hxi.com>
13851
13852         * config/h8300/h8300.c: Revise comments about shift code.
13853
13854 2002-01-20  Kazu Hirata  <kazu@hxi.com>
13855
13856         * config/h8300/h8300.c (function_arg): Update a comment.
13857
13858 2002-01-20  Kazu Hirata  <kazu@hxi.com>
13859
13860         * config/h8300/h8300.md: Update the comments at the beginning
13861         of the file.
13862
13863 2002-01-20  Kazu Hirata  <kazu@hxi.com>
13864
13865         * config/i370/i370.c: Fix comment formatting.
13866         * config/i370/i370.h: Likewise.
13867         * config/i370/i370.md: Likewise.
13868         * config/i370/linux.h: Likewise.
13869
13870 Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13871
13872         * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
13873
13874         * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
13875         (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
13876         in incomplete case.
13877
13878 2002-01-20  Graham Stott  <grahams@redhat.com>
13879
13880         * cfgloop.c (flow_loop_preheader_scan): Fix typo.
13881
13882 2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13883
13884         * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
13885
13886 2002-01-19  Tom Rix  <trix@redhat.com>
13887
13888         * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
13889
13890 2002-01-18  Aldy Hernandez  <aldyh@redhat.com>
13891
13892         * doc/tm.texi (STARTING_FRAME_PHASE): Document.
13893
13894         * function.c (assign_stack_local_1): Adjust x_frame_offset with
13895         STARTING_FRAME_PHASE.
13896         (STARTING_FRAME_PHASE): New.
13897         (instantiate_virtual_regs): Check saneness of
13898         STARTING_FRAME_PHASE.
13899
13900         * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
13901
13902 2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
13903
13904         * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
13905
13906 2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>
13907
13908         * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
13909         be used for bootstrapping GCC 3.0.
13910
13911 2002-01-18  Kazu Hirata  <kazu@hxi.com>
13912
13913         * config/h8300/h8300.md: Fix an insn length.
13914
13915 2002-01-18  Kazu Hirata  <kazu@hxi.com>
13916
13917         * bitmap.h: Fix comment formatting.
13918         * combine.c: Likewise.
13919         * cppfiles.c: Likewise.
13920         * c-pragma.h: Likewise.
13921         * c-typeck.c: Likewise.
13922         * df.c: Likewise.
13923         * dwarf2out.c: Likewise.
13924         * function.c: Likewise.
13925         * gcc.c: Likewise.
13926         * genattrtab.c: Likewise.
13927         * gthr-win32.h: Likewise.
13928         * haifa-sched.c: Likewise.
13929         * predict.c: Likewise.
13930         * rtlanal.c: Likewise.
13931         * rtl.h: Likewise.
13932         * unwind-dw2-fde.h: Likewise.
13933         * unwind-pe.h: Likewise.
13934         * vmsdbgout.c: Likewise.
13935
13936 Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13937
13938         * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
13939         if type_required and passed decl.
13940
13941 2002-01-17  Aldy Hernandez  <aldyh@redhat.com>
13942
13943         * config.gcc (cpu_type): Include altivec.h in powerpc
13944         extra_headers.
13945         Same for darwin.
13946
13947         * config/rs6000/altivec.h: New.
13948
13949 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
13950
13951         * doc/install.texi (*-ibm-aix*): Update assembler and exception
13952         handling information.
13953         * doc/trouble.texi (Interoperation): Add libstdc++ information
13954         for AIX.
13955         (Misunderstandings): Add template instantiation and static template
13956         member information for AIX.
13957
13958 2002-01-17  Jason Merrill  <jason@redhat.com>
13959
13960         * dbxout.c (dbxout_type): Support const and volatile.
13961
13962         * except.c (add_partial_entry): Remove backwards compatibility code.
13963         (end_protect_partials): Likewise.
13964
13965 2002-01-17  Jakub Jelinek  <jakub@redhat.com>
13966
13967         * config/ia64/ia64.md (prologue_use): New.
13968         * config/ia64/ia64.c (ia64_expand_prologue): Use
13969         gen_prologue_use instead of gen_rtx_USE.
13970         (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
13971         as CODE_FOR_pred_rel_mutex.
13972         (ia64_sched_reorder2): Likewise.
13973
13974 2002-01-16  Eric Christopher  <echristo@redhat.com>
13975
13976         * config/mips/r3900.h: Reformat.
13977         (SUBTARGET_CPP_SIZE_SPEC): Remove.
13978         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
13979         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
13980         (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
13981         * config/mips/t-elf: Remove mips3 multilib.
13982
13983 2002-01-16  H.J. Lu <hjl@gnu.org>
13984
13985         * config/mips/linux.h: Include "mips/abi64.h".
13986
13987 2002-01-16  H.J. Lu <hjl@gnu.org>
13988
13989         * config/mips/t-linux: New.
13990
13991         * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
13992
13993         * config/mips/linux.h: Don't include "gofast.h".
13994         (INIT_SUBTARGET_OPTABS): Removed.
13995
13996 2002-01-16  Kazu Hirata  <kazu@hxi.com>
13997
13998         * config/h8300/h8300-protos.h: Replace emit_a_shift with
13999         output_a_shift.
14000         * config/h8300/h8300.c: Likewise.
14001         * config/h8300/h8300.md: Likewise.
14002
14003 2002-01-16  Kazu Hirata  <kazu@hxi.com>
14004
14005         * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
14006         spaces after an opcode name.
14007         (pushqi1_h8300hs): Likewise.
14008         (pushhi1_h8300hs): Likewise.
14009
14010 2002-01-16  Kazu Hirata  <kazu@hxi.com>
14011
14012         * doc/extend.texi: Replace "option" with "attribute"
14013         appropriately.
14014
14015 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
14016
14017         * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
14018         (and:DI () (const_int -8)).
14019         (split_small_symbolic_mem_operand): Split
14020         (mem (and:DI () (const_int -8)).
14021
14022 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
14023
14024         PR target/5309:
14025         * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
14026         same way as TYPE_IMUL.
14027         (ultrasparc_sched_reorder): Likewise.
14028         * config/sparc/sparc.md (type): Add comment to update
14029         ultrasparc_sched_reorder when making changes.
14030
14031 2002-01-16  Kazu Hirata  <kazu@hxi.com>
14032
14033         * doc/invoke.texi: Change the dump file name of block
14034         reordering pass from 28.bbro to 29.bbro.
14035         Mention -dk option.
14036
14037 Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>
14038
14039         * i386.md (minsf splitter): Fix pasto.
14040
14041 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
14042
14043         * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
14044         to frame pointer initialisation instruction.
14045         (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
14046         initialisation instruction.
14047         (soft_df_operand): Do not accept the IP register.
14048         (nonimmediate_soft_df_operand): Do not accept the IP register.
14049
14050 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
14051
14052         PR target/5357:
14053         * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
14054         MASK_V8 being both set.
14055
14056 2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>
14057
14058         * config/s390/s390.c (s390_emit_prologue): Do not emit USE
14059         insn for GOT register; add REG_MAYBE_DEAD notes instead.
14060         config/s390/s390.md (call, call_value): Add GOT register to
14061         CALL_INSN_FUNCTION_USAGE where needed.
14062         (call_exp, call_value_exp): New.
14063
14064 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
14065
14066         * config/arm/arm.c: General formatting tidy up.
14067
14068 2002-01-16  Graham Stott  <grahams@redhat.com>
14069
14070         * calls.c (try_to_integrate): Use "(size_t)" intermediate
14071         cast and when casting an integer literal to "rtx" pointer.
14072         (expand_call): Likewise.
14073         * flow.c (try_pre_increment): Likewise.
14074         (find_use_as_address): Likewise.
14075         * integrate.c (expand_iline_function): Likewise.
14076         * regmove.c (try_auto_increment): Likewise.
14077
14078 2002-01-16  Graham Stott  <grahams@redhat.com>
14079
14080         * sched-rgn.c (passed): Use sbitmap_free.
14081         (header): Likewise.
14082         (inner): Likewise.
14083         (in_queue): Likewise.
14084         (in_stack): Likewise.
14085
14086 2002-01-15  Eric Christopher  <echristo@redhat.com>
14087
14088         * flow.c (propagate_one_insn): Change to use fatal_insn.
14089
14090 2002-01-15  Kazu Hirata  <kazu@hxi.com>
14091
14092         * expmed.c (extract_fixed_bit_field): Remove unused code.
14093         * system.h: Poison SLOW_ZERO_EXTEND.
14094         * doc/tm.texi: Remove.
14095         * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
14096         * config/arm/arm.h: Likewise.
14097         * config/avr/avr.h: Likewise.
14098         * config/clipper/clipper.h: Likewise.
14099         * config/convex/convex.h: Likewise.
14100         * config/d30v/d30v.h: Likewise.
14101         * config/dsp16xx/dsp16xx.h: Likewise.
14102         * config/elxsi/elxsi.h: Likewise.
14103         * config/fr30/fr30.h: Likewise.
14104         * config/h8300/h8300.h: Likewise.
14105         * config/i370/i370.h: Likewise.
14106         * config/i386/i386.h: Likewise.
14107         * config/m68k/m68k.h: Likewise.
14108         * config/mips/mips.h: Likewise.
14109         * config/ns32k/ns32k.h: Likewise.
14110         * config/pdp11/pdp11.h: Likewise.
14111         * config/pj/pj.h: Likewise.
14112         * config/s390/s390.h: Likewise.
14113         * config/sh/sh.h: Likewise.
14114         * config/stormy16/stormy16.h: Likewise.
14115         * config/v850/v850.h: Likewise.
14116         * config/vax/vax.h: Likewise.
14117         * config/we32k/we32k.h: Likewise.
14118
14119 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
14120
14121         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
14122         (altivec_lvsl): Change constraint to b.
14123         (altivec_lvsr): Same.
14124         (altivec_lvebx): Same.
14125         (altivec_lvehx): Same.
14126         (altivec_lvewx): Same.
14127         (altivec_lvxl): Same.
14128         (altivec_lvx): Same.
14129         (altivec_stvx): Add parallel.
14130         (altivec_stvxl): Same.
14131         (altivec_stvehx): Same.
14132         (altivec_stvebx): Same.
14133         (altivec_stvebx): Same.
14134
14135 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
14136
14137         * config.gcc: Change altivec.h to altivec-defs.h.
14138
14139         * config/rs6000/altivec.h: Delete.
14140
14141         * config/rs6000/altivec-defs.h: Add.
14142
14143 2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14144
14145         * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
14146         and UMOD modes.
14147
14148         * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
14149         less than or equal to eight bytes.
14150
14151         * vax.md (andsi3): Remove constraints and change SET destination
14152         operand type to nonimmediate_operand.
14153         (andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
14154         when it is a CONST_INT.
14155
14156 2002-01-15  Jason Merrill  <jason@redhat.com>
14157
14158         * c-common.def (FILE_STMT): New code.
14159         * c-common.c (statement_code_p): It's a statement.
14160         * c-common.h (stmt_tree_s): Add x_last_filename.
14161         (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
14162         (last_expr_filename): New macro.
14163         * c-semantics.c (begin_stmt_tree): Initialize it.
14164         (add_stmt): If the filename changed, also insert a
14165         FILE_STMT.
14166         (expand_stmt): Handle seeing one.
14167
14168 2002-01-15  Eric Christopher  <echristo@redhat.com>
14169
14170         * flow.c (propagate_one_insn): Add error message and print out
14171         insn for debugging.
14172
14173 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
14174
14175         * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
14176         ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
14177         * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
14178         TRAMPOLINE_ALIGNMENT.
14179         * config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
14180         to be in bits.
14181         * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
14182         PCC_BITFIELD_TYPE_MATTERS.
14183         * config/interix.h (STDC_VALUE): Remove.  Use
14184         STDC_0_IN_SYSTEM_HEADERS.
14185         * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
14186         (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
14187         ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
14188
14189 2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>
14190
14191         * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
14192         not work on this platform currently.
14193
14194 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
14195
14196         * c-typeck.c (build_unary_op): Don't wrap msgid argument of
14197         readonly_warning in _().
14198
14199 2002-01-15  Douglas B Rupp  <rupp@gnat.com>
14200
14201         * gcc.c (delete_if_ordinary): Backout previous change.
14202
14203 2002-01-15  Kazu Hirata  <kazu@hxi.com>
14204
14205         * config/h8300/h8300.c (print_operand): Remove support for
14206         unused operand characters.
14207
14208         * read-rtl.c: Fix formatting.
14209         * real.c: Likewise.
14210         * recog.c: Likewise.
14211         * regclass.c: Likewise.
14212         * regmove.c: Likewise.
14213         * reg-stack.c: Likewise.
14214         * reload1.c: Likewise.
14215         * rtlanal.c: Likewise.
14216
14217 2002-01-15  Kazu Hirata  <kazu@hxi.com>
14218
14219         * config/i386/i386.c: Fix formatting.
14220
14221 2002-01-15  Jakub Jelinek  <jakub@redhat.com>
14222
14223         * c-typeck.c (process_init_element): Don't save_expr
14224         COMPOUND_LITERAL_EXPR if just its initializer will be used.
14225
14226 2002-01-15  David Edelsohn  <edelsohn@gnu.org>
14227
14228         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
14229         emit optional traceback table if optimize_size or TARGET_ELF.
14230         * config/rs6000/rs6000.md (prefetch): New.
14231
14232 2002-01-15  Andreas Jaeger  <aj@suse.de>
14233
14234         * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
14235
14236 2002-01-15  Kazu Hirata  <kazu@hxi.com>
14237
14238         * mips-tfile.c: Fix formatting.
14239
14240 Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>
14241
14242         * unroll.c (final_reg_note_copy): Fix previous commit.
14243
14244 2002-01-14  Kazu Hirata  <kazu@hxi.com>
14245
14246         * config/h8300/h8300-protos.h: Remove the prototype for
14247         eq_operator.
14248         * config/h8300/h8300.c (eq_operator): Remove.
14249
14250 2002-01-14  Richard Henderson  <rth@redhat.com>
14251
14252         * config/i386/i386.md (prefetch): Tidy.
14253         (prefetch_3dnow): Fix locality operand.
14254
14255 2002-01-14  Richard Henderson  <rth@redhat.com>
14256
14257         * config/mips/mips.h (HI_AND_FP_REGS): New register class.
14258         (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
14259
14260 2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>
14261
14262         * reload1.c (reload_combine): Pass reg_sum replacement through
14263         copy_rtx in loop performing multiple changes.
14264
14265 2002-01-14  Jakub Jelinek  <jakub@redhat.com>
14266
14267         * except.c (remove_unreachable_regions): New.
14268         (free_eh_status): Clear exception_handler_labels.
14269         (convert_from_eh_region_ranges): Call remove_unreachable_regions.
14270         (find_exception_handler_labels): Don't add the same label more than
14271         once.
14272         (remove_exception_handler_label): Don't die if
14273         find_exception_handler_labels hasn't been called for the current
14274         function yet.
14275
14276 Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>
14277
14278         * toplev.c (rest_of_compilation): Rebuild jump labels after
14279         gcse.
14280
14281 2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
14282
14283         * doc/extend.texi: Move documentation of X86 built-in functions
14284         here.
14285         * doc/invoke.texi: From here.
14286         * doc/sourcebuild.texi: Document location of documentation for
14287         machine built-in functions.
14288
14289 2002-01-13  Christopher Faylor  <cgf@redhat.com>
14290
14291         * cppfiles.c (TEST_THRESHOLD): New macro.
14292         (SHOULD_MMAP): Ditto.
14293         (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
14294         be used.
14295
14296 Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>
14297
14298         * unroll.c (final_reg_note_copy): Properly handle
14299         REG_LABEL
14300         (unroll_loops): Fix LOOP_CONDITION heuristics.
14301
14302 2002-01-14  Geoffrey Keating  <geoffk@redhat.com>
14303
14304         * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
14305         * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
14306
14307 Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>
14308
14309         * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
14310         threaded loop.
14311
14312 2002-01-14  Tom Rix  <trix@redhat.com>
14313
14314         * config/rs6000/rs6000.md: Fix typo with sradi.
14315
14316 2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>
14317
14318         * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
14319         movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
14320         (clrstrdi, clrstrsi): Adapt callers.
14321
14322         (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
14323
14324         (movti splitter): Never use register 0 as base register.
14325
14326 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
14327
14328         * combine.c (simplify_shift_const): Always generate new rtx
14329         for shift expression instead of reusing given expression.
14330
14331 Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14332
14333         * config/alpha/alpha.c (alpha_expand_mov): Don't call
14334         alpha_legitimize_address unless mode is Pmode.
14335
14336 2002-01-13  Geoffrey Keating  <geoffk@redhat.com>
14337
14338         * doc/md.texi (Modifiers): Document the '*' constraint for the
14339         user.
14340
14341         * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
14342         * doc/extend.texi (Function Attributes): 'interrupt' is valid
14343         for xstormy16 too.
14344
14345 2002-01-13  Richard Henderson  <rth@redhat.com>
14346
14347         * reload.c (find_reloads): Use a hard reg destination as reload reg
14348         for an input reload of the source.
14349
14350 2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
14351
14352         * doc/install.texi (Binaries): Make link to ftp.writtenword.com
14353         more generic.
14354
14355 Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>
14356
14357         * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
14358         * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
14359
14360         * config/alpha/x-vms (USE_COLLECT2): Set to empty.
14361
14362 Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14363
14364         * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
14365
14366 2002-01-12  Tom Rix  <trix@redhat.com>
14367
14368         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
14369         TARGET_POWERPC64.
14370
14371 2002-01-12  Richard Henderson  <rth@redhat.com>
14372
14373         * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
14374
14375         * doc/invoke.texi: Update Alpha options.
14376
14377         * doc/invoke.texi: Update i386 built-in function lists.
14378
14379 Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>
14380
14381         * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
14382         referencing outside.
14383
14384 Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14385
14386         * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
14387         * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
14388         offsets, and change line folding.
14389         * optabs.c (expand_binop): Remove warnings.
14390         * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
14391
14392 2002-01-12  Graham Stott <grahams@redhat.com>
14393
14394         * attribs.c (handle_deprecated_attribute): constify WHAT.
14395         * diagnostic.c (warn_deprecated_use): Add braces, fixes
14396         dangling else warning and constify WHAT.
14397         * except.h (struct function, struct inline_remap): Move
14398         struct tag forward defs before all prototypes.
14399         (duplicate_eh_regions): Whitespace.
14400
14401 2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>
14402
14403         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
14404         MODE_BASE_REG_CLASS.
14405         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
14406
14407 2002-01-12  Richard Henderson  <rth@redhat.com>
14408
14409         * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
14410         (ix86_expand_vector_move): New.
14411         (bdesc_2arg): Remove andps, andnps, orps, xorps.
14412         (ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
14413         Remove old prefetch builtins.  Special case the logicals removed above.
14414         (ix86_expand_builtin): Likewise.
14415         (safe_vector_operand): Use V4SFmode, not TImode.
14416         (ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
14417         (ix86_expand_timode_binop_builtin): New.
14418         * config/i386/i386-protos.h: Update.
14419         * config/i386/i386.h (enum ix86_builtins): Update.
14420         * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
14421         Use ix86_expand_vector_move in vector move expanders.
14422         (movti_internal, movti_rex64): Add xorps alternative.
14423         (sse_clrv4sf): Rename and adjust from sse_clrti.
14424         (prefetch): Don't work so hard.
14425         (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
14426         * config/i386/xmmintrin.h (__m128): Use V4SFmode.
14427         (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
14428
14429 2002-01-11  Richard Henderson  <rth@redhat.com>
14430
14431         * config/i386/mmintrin.h: New file.
14432         * config/i386/xmmintrin.h: New file.
14433         * config.gcc (i?86-*-*): Add extra_headers.
14434         * simplify-rtx.c (simplify_unary_operation): Handle saturating
14435         truncation codes.
14436         (simplify_binary_operation): Handle saturating arithmetic codes.
14437         * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
14438         not the lowpart subreg.
14439         (ix86_expand_builtin): Return a TImode dummy register instead of 0
14440         on error.
14441         * config/i386/i386.md (mmx_clrdi): Override memory attribute.
14442
14443 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14444
14445         * conflict.c (conflict_graph_compute): Free regsets when finished.
14446         * ssa.c (compute_coalesced_reg_partition): Likewise.
14447
14448 2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
14449
14450         * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
14451         every where we allocate a register.
14452
14453 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14454
14455         * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
14456         * lcm.c (compute_earliest, compute_farthest): Likewise.
14457
14458 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
14459
14460         * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
14461
14462 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
14463
14464         * doc/rtl.texi (Insns): Fix 2 typos.
14465
14466 2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>
14467
14468         * doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
14469         options.  Use @table @gcctabopt for MMIX options.  Add index
14470         entries for MMIX options.  Start new paragraph with first
14471         heading of the machine-dependent options.
14472
14473 2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>
14474
14475         PR other/5299
14476         * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
14477         * combine.c (force_to_mode): Same.
14478         * reload1.c (clear_reload_reg_in_use): Same.
14479
14480 2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>
14481
14482         * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
14483         and 'subtargets'.
14484
14485 2002-01-11  Andreas Jaeger  <aj@suse.de>,
14486             Brad Lucier <lucier@math.purdue.edu>
14487
14488         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
14489         mcpu.
14490
14491 Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>
14492
14493         * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
14494         Protect with IN_LIBGCC.
14495         (LINK_EH_SPEC): Add required trailing space.
14496
14497 Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>
14498
14499         * c-tree.h: Move function declarations so that they are listed
14500         under the filename which contains them.
14501         (check_identifier, finish_decl_top_level,
14502         lookup_name_current_level_global, shadow_record_fields): Remove.
14503
14504 2002-01-11  Andreas Jaeger  <aj@suse.de>
14505
14506         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
14507         march.
14508
14509 2002-01-10  Richard Henderson  <rth@redhat.com>
14510
14511         * config/alpha/alpha.c (print_operand): Add 'J'.
14512         * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
14513         new operand with the sequence number for the lituse.  When splitting
14514         the insns, use gen_movdi_er_high_g and generate a sequence number.
14515         (gen_movdi_er_high_g): Print the sequence number if non-zero.
14516
14517 2002-01-10  Aldy Hernandez  <aldyh@redhat.com>
14518
14519         * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
14520         lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
14521         stvxl.
14522         (altivec_expand_builtin): Same.
14523         (altivec_expand_stv_builtin): New.
14524
14525         * config/rs6000/rs6000.h (rs6000_builtins): Same.
14526
14527         * config/rs6000/rs6000.md ("altivec_lvebx"): New.
14528         ("altivec_lvehx"): New.
14529         ("altivec_lvewx"): New.
14530         ("altivec_lvxl"): New.
14531         ("altivec_lvx"): New.
14532         ("altivec_stvx"): New.
14533         ("altivec_stvebx"): New.
14534         ("altivec_stvehx"): New.
14535         ("altivec_stvewx"): New.
14536         ("altivec_stvxl"): New.
14537
14538 2002-01-10  Richard Henderson  <rth@redhat.com>
14539
14540         * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
14541         * reload1.c (delete_output_reload): Zap spill_reg_store.  Take
14542         care not to delete instructions twice.
14543
14544 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
14545
14546         * toplev.c: Don't declare environ (it's not used anywhere).
14547         * configure.in: Don't check for declaration of environ.
14548         * config/i386/xm-mingw32.h: Don't #define environ.
14549         * config.in, configure: Regenerate.
14550
14551 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
14552
14553         * configure.in: Set stage1_cflags for powerpc-*-darwin*.
14554         * configure: Regenerate.
14555
14556         * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
14557         DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
14558         * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
14559         alpha/xm-vms.h.
14560         * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
14561         LIMITS_H_TEST here, not in m68k/x-next.
14562         * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
14563         SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
14564
14565         * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
14566         LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
14567         * config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.
14568
14569         * config/i386/x-djgpp: Renamed i386/t-djgpp.
14570         * config/m88k/x-dolph: Renamed m88k/t-dolph.
14571         * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
14572         * config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
14573         replacement of quadlib.asm with quadlib.c.
14574
14575         * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
14576         config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
14577         config/rs6000/xm-beos.h: Delete file.
14578
14579         * config.gcc: Update to match above changes.
14580
14581 2002-01-10  Kazu Hirata  <kazu@hxi.com>
14582
14583         * config/h8300/h8300.h: Fix comment typos.
14584         * config/h8300/h8300.md: Likewise.
14585         * config/h8300/lib1funcs.asm: Likewise.
14586
14587 2002-01-10  Dale Johannesen  <dalej@apple.com>
14588
14589         PR optimization/5269
14590         * unroll.c (precondition_loop_p): Make *increment be the correct
14591         sign when n_iterations known, to avoid confusing caller.
14592
14593 2002-01-10  Kazu Hirata  <kazu@hxi.com>
14594
14595         * doc/extend.texi (deprecated): Fix a typo.
14596
14597 Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>
14598
14599         * basic-block.h (update_br_prob_note): Declare.
14600         * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
14601         (try_forward_edges): Care negative frequencies and update note.
14602         (outgoing_edges_match): Tweek conditional merging heuristics.
14603         (try_crossjump_to_edge): use update_br_prob_note.
14604         * cfglayout.c (fixup_reorder_chain): Likewise.
14605         * cfrtl.c (update_br_prob_note): New.
14606         * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
14607
14608         * i386.c (ix86_decompose_address): Return -1 if address contains
14609         shift.
14610         (legitimate_address_p): Require ix86_decompose_address to return 1.
14611
14612         * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
14613         (cprop_insn): Likewise.
14614
14615 2002-01-10  Kazu Hirata  <kazu@hxi.com>
14616
14617         * toplev.c: Fix formatting.
14618         * tree.c: Likewise.
14619         * tree-dump.c: Likewise.
14620         * unroll.c: Likewise.
14621         * unwind-dw2.c: Likewise.
14622         * unwind-dw2-fde.c: Likewise.
14623         * unwind-dw2-fde-glibc.c: Likewise.
14624         * unwind-sjlj.c: Likewise.
14625
14626 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
14627
14628         * doc/invoke.texi: Document PDP-11 options.
14629
14630 2002-01-10  Kazu Hirata  <kazu@hxi.com>
14631
14632         * config/h8300/h8300.h: Fix formatting.
14633
14634 2002-01-10  Ira Ruben   <ira@apple.com>
14635
14636         Add __attribute__ ((deprecated)).
14637         * extend.texi: Document __attribute__ ((deprecated)).
14638         * invoke.texi: Document -Wno-deprecated-declarations.
14639         * testsuite/g++.dg/other/deprecated.C: New C++ test.
14640         * testsuite/gcc.dg/deprecated.c: New C test.
14641         * attribs.c (enum attrs): Declare handle_deprecated_attribute().
14642         (c_common_attribute_table): Add "deprecated" entry.
14643         (handle_deprecated_attribute): New function.
14644         * c-decl.c (deprecated_states): New enum.
14645         deprecated_state: State of "deprecated" handling.
14646         (start_decl): Set deprecated_state based on attributes.
14647         (grokdeclarator): Test for deprecated uses, propagate attribute.
14648         * c-typeck.c (build_component_ref): Test for deprecated fields.
14649         (build_external_ref): Test for deprecated primaries.
14650         * diagnostic.c (warn_deprecated_use) New function to issue
14651         warnings about __attribute__ ((depricated)) references.
14652         * flags.h (warn_deprecated_decl): Extern declared for
14653         -W[no-]deprecated-declarations option.
14654         * print-tree.c (print_node): Show deprecated flag status.
14655         * toplev.c (warn_deprecated_decl): Defined.
14656         (W_options): Added "deprecated-declaration".
14657         * toplev.h (warn_deprecated_use): Extern declared.
14658         * tree.h (struct tree_common): Define deprecated_flag.
14659         (TREE_DEPRECATED): New macro to access flag.
14660         * cp/call.c (build_call): Test for deprecated calls.
14661         * cp/class.c (add_implicitly_declared_members): Set global
14662         flag to tell grokdeclarator to not issue deprecated warnings.
14663         * cp/cp-tree.h: Add extern for adding_implicit_members.
14664         * cp/decl.c (deprecated_states): New enum.
14665         (start_decl): Set deprecated_state based on attributes.
14666         (grokdeclarator): Test for deprecated uses, propagate attribute.
14667         * cp/lex.c (do_identifier): Test for deprecated primaries.
14668         * cp/typeck.c (build_component_ref): Test for deprecated fields.
14669
14670 2002-01-10  Ira Ruben   <ira@apple.com>
14671
14672         Fix to assign attributes to inline member functions.
14673         * cp/decl.c (start_method): Handle attrlist.
14674
14675 2002-01-10  Kazu Hirata  <kazu@hxi.com>
14676
14677         * combine.c (expand_field_assignment): Use subreg_lsb().
14678
14679 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
14680
14681         * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
14682         POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
14683         (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
14684         Recurse for any operand of AND as long as constant is non-zero.
14685
14686 2002-01-10  Kazu Hirata  <kazu@hxi.com>
14687
14688         * config/h8300/h8300.md: Remove constraints from expanders.
14689
14690 2002-01-10  Kazu Hirata  <kazu@hxi.com>
14691
14692         * varasm.c: Fix formatting.
14693         * varray.c: Likewise.
14694         * vmsdbgout.c: Likewise.
14695         * xcoffout.c: Likewise.
14696
14697 Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>
14698
14699         * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
14700         update edge probabilities to match.
14701
14702 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
14703
14704         * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
14705         dependencies.
14706         * doc/languages.texi, doc/sourcebuild.texi: New files.
14707         * doc/configfiles.texi: Make a subsubsection.  Update.
14708         * doc/configterms.texi: Add @node.  Remove warning that this isn't
14709         instructions for building GCC.
14710         * doc/makefile.texi: Make a subsection.
14711         * doc/gccint.texi: Update.
14712
14713 Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>
14714
14715         * i386.md (sse_mov?fcc_const0_?): Fix constraints.
14716
14717 Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>
14718
14719         * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
14720
14721 Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>
14722
14723         * optabs.c (expand_fix): Look for wider integer modes first.
14724
14725         * i386.md (mov?f): Avoid the fake const double trick for medium
14726         memory model.
14727         (min?f*/max?f*): Prohibit memory operands for i387 variant.
14728         (fop_df_4): Disable for SSE compilation.
14729
14730 2002-01-10  Graham Stott  <grahams@redhat.com>
14731
14732         * dwarf2out.c (indirect_string_alloc, output_indirect_string):
14733         Move prototype into DWARF2_DEBUGGING_INFO conditional block.
14734
14735 2002-01-10  Richard Henderson  <rth@redhat.com>
14736
14737         * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
14738
14739 2002-01-10  Richard Henderson  <rth@redhat.com>
14740
14741         * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
14742         (copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.
14743
14744 2002-01-10  Kazu Hirata  <kazu@hxi.com>
14745
14746         * combine.c (can_combine_p): Fix a comment typo.
14747
14748 2002-01-09  Zack Weinberg  <zack@codesourcery.com>
14749
14750         * Makefile.in (s-gencheck, s-options, s-specs): Handle an
14751         empty list correctly.  Change loop index $t to $f for
14752         consistency with rest of Makefile.
14753
14754 2002-01-08  Aldy Hernandez  <aldyh@redhat.com>
14755
14756         * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
14757         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
14758
14759         * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
14760         mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
14761         (altivec_init_builtins): Same.
14762         (altivec_expand_unop_builtin): Return NULL_RTX on error.
14763         (altivec_expand_binop_builtin): Same.
14764         (altivec_expand_ternop_builtin): Same.
14765         (bdesc_dst): New.
14766
14767         * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
14768         ("altivec_vctuxs"): Fix typo.
14769         ("altivec_vnmsubfp"): Same.
14770         ("altivec_dssall"): New.
14771         ("altivec_mfvscr"): New.
14772         ("altivec_dss"): New.
14773         ("altivec_lvsl"): New.
14774         ("altivec_lvsr"): New.
14775         ("altivec_dstt"): New.
14776         ("altivec_dstst"): New.
14777         ("altivec_dststt"): New.
14778         ("altivec_dst"): New.
14779
14780         * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
14781         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
14782
14783 2002-01-09  Richard Henderson  <rth@redhat.com>
14784
14785         * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
14786
14787 2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>
14788
14789         * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
14790         function.
14791         * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
14792         prototype.
14793         * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
14794
14795 2002-01-09  Kazu Hirata  <kazu@hxi.com>
14796
14797         * read-rtl.c: Fix formatting.
14798         * real.c: Likewise.
14799         * regclass.c: Likewise.
14800         * regrename.c: Likewise.
14801         * reg-stack.c: Likewise.
14802         * reload1.c: Likewise.
14803         * reload.c: Likewise.
14804         * rtl.c: Likewise.
14805
14806 2002-01-09  Kazu Hirata  <kazu@hxi.com>
14807
14808         * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
14809         to extract items in the expr_list chain.
14810
14811 2002-01-09  Richard Henderson  <rth@redhat.com>
14812
14813         * config/vax/vax.c (vax_rtx_cost): Never abort.
14814
14815         * config/vax/vax.h (REAL_ARITHMETIC): Define.
14816
14817 2002-01-09  Jan Hubicka  <jh@suse.cz>
14818
14819         * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
14820
14821 2002-01-09  Richard Henderson  <rth@redhat.com>
14822
14823         * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
14824         Unify code from various alternatives.
14825
14826 2002-01-09  Richard Henderson  <rth@redhat.com>
14827
14828         * regrename.c (copy_value): Ignore the copy if the source register
14829         is present in the value chain with a narrower mode.
14830
14831 2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
14832
14833         * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
14834         for the c4x target. Also improve layout.
14835
14836 2002-01-09  Richard Henderson  <rth@redhat.com>
14837
14838         * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
14839         * config/m32r/m32r.md (and ior xor splitters): Swap operands
14840         to match insn patterns.
14841
14842 2002-01-09  Richard Henderson  <rth@redhat.com>
14843
14844         * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
14845         (copyprop_hardreg_forward_1): Likewise.
14846
14847 2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14848
14849         * pa.md (decrement_and_branch_until_zero): Change predicate for
14850         operand 0 from register_operand to reg_or_nonsymb_mem_operand.
14851
14852 2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
14853
14854         * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
14855         gets undefined. For Darwin.
14856
14857 2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
14858
14859         * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
14860
14861 2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14862
14863         * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
14864
14865 2002-01-08  Richard Henderson  <rth@redhat.com>
14866
14867         * regrename.c (copy_value): Ignore overlapping copies.
14868
14869 2002-01-08  Richard Henderson  <rth@redhat.com>
14870
14871         * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
14872         as needed to avoid shared structure.
14873
14874 2002-01-08  Kazu Hirata  <kazu@hxi.com>
14875
14876         * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
14877         H8/300H and H8/S.
14878
14879 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
14880
14881         * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
14882         LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
14883         documentation of obsolete macros.
14884         * system.h: Poison these macros.
14885         * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
14886         config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
14887         config/c4x/c4x.h, config/clipper/clipper.h,
14888         config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
14889         config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
14890         config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
14891         config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
14892         config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
14893         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
14894         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
14895         config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
14896         config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
14897         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
14898         config/sparc/sparc.h, config/stormy16/stormy16.h,
14899         config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
14900         definitions and commented out definitions of obsolete macros.
14901         * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
14902         of MAX_INT_TYPE_SIZE.
14903
14904 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
14905
14906         * config/s390/s390.c (s390_preferred_reload_class): Never
14907         return ADDR_REGS if it isn't a subset of the given class.
14908         * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
14909         FP_REGS, but all superclasses as well.
14910
14911         * config/s390/s390.c (s390_function_profiler): Fix thinko.
14912
14913         * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
14914         cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
14915         must not be a const_int.
14916
14917 2002-01-08  Richard Henderson  <rth@redhat.com>
14918
14919         * Makefile.in (toplev.o): Depend on options.h.
14920         (gcc.o): Depend on specs.h.
14921
14922 2002-01-08  Jakub Jelinek  <jakub@redhat.com>
14923
14924         * expr.c (store_expr): Convert VOIDmode constants back to target's
14925         mode.
14926
14927 2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
14928
14929         * doc/invoke.texi: Markup gcc as @command.  Refer to
14930         http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
14931         of http://gcc.gnu.org/thanks.html.
14932
14933 2002-01-08  Dale Johannesen  <dalej@apple.com>
14934
14935         * config/rs6000/rs6000.md: Add missing int register
14936         target case to movdf_low.
14937
14938 2002-01-08  Zack Weinberg  <zack@codesourcery.com>
14939
14940         * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
14941         except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
14942         (cppinit.o): Depend on except.h.
14943         (gencheck.h, options.h, specs.h, s-gencheck, s-options,
14944         s-specs): New rules.
14945
14946         * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
14947         Don't create specs.h/options.h/gencheck.h here.  Remove
14948         unnecessary variable settings from last argument of AC_OUTPUT.
14949         * config.in, configure: Regenerate.
14950         * intl.c: Hardcode package name as "gcc".
14951
14952         * cppinit.c: Include except.h.
14953         (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
14954         appropriate.
14955         * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
14956         Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
14957         (!)USING_SJLJ_EXCEPTIONS.
14958         * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
14959
14960 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
14961
14962         * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
14963         ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
14964         OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
14965         documentation of obsolete macros.
14966         * system.h: Poison these macros.
14967         * config/d30v/d30v.h, config/ns32k/encore.h,
14968         config/stormy16/stormy16.h: Remove definitions and commented out
14969         definitions of obsolete macros.
14970
14971 Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>
14972
14973         * objc/objc-act.c (handle_class_ref): Mark the declaration of
14974         %sobjc_class_ref_%s as used - to prevent unwanted compiler
14975         warnings.
14976
14977 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
14978
14979         * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
14980         * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
14981         to insn adjusting stack/frame pointer.
14982         * config/s390/s390.md (reload_la_64, reload_la_31): Do not
14983         accept operands that cause the insn to be non-splittable.
14984
14985 2002-01-08  Graham Stott  <grahams@redhat.com>
14986
14987         * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
14988         (C_TYPE_FIELDS_VOLATILE): Likewise.
14989         (C_TYPE_BEING_DEFINED): Likewise.
14990         (C_IS_RESERVED_WORD): Likewise.
14991         (C_TYPE_VARIABLE_SIZE): Likewise.
14992         (C_DECL_VARIABLE_SIZE): Likewise.
14993         (C_MISSING_PROTOTYPE_WARNED): Likewise.
14994         (C_SET_EXP_ORIGINAL_CODE): Likewise.
14995         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
14996         parenthesis.
14997         (C_DECL_ANTICIPATED): Likewise.
14998         (c_build_type_variant): Add parenthesis.
14999
15000 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
15001
15002         * gcc.c (option_map): Remove --version.
15003         (process_command): Handle -fversion following the GNU Coding
15004         Standards.  Partially addresses PR other/704.
15005
15006 2002-01-08  Graham Stott  <grahams@redhat.com>
15007
15008         * combine.c (combine_instructions): Fix typo.
15009
15010 2002-01-08  Graham Stott  <grahams@redhat.com>
15011
15012         * debug.h: Use "tree" and "rtx" throughout.
15013
15014         * debug.c: Likewise.
15015
15016 2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>
15017
15018         * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
15019         constant pool, use the pool's version of the symbol instead.
15020
15021 2002-01-07  Richard Henderson  <rth@redhat.com>
15022
15023         * regrename.c (find_oldest_value_reg): Ignore the value chain if
15024         the original register was copied in a mode with a fewer number of
15025         hard registers than the desired mode.
15026         (copyprop_hardreg_forward_1): Likewise.
15027         (debug_value_data): Fix loop test.
15028         * toplev.c (parse_options_and_default_flags): Reenable
15029         -fcprop-registers at -O1.
15030
15031 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
15032
15033         * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
15034         (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
15035
15036         * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
15037         predicates.
15038
15039         * config/rs6000/rs6000.md: Add altivec predicate patterns.
15040
15041 2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15042
15043         * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
15044         (pa_output_function_prologue): Output local label at the beginning of
15045         the prologue when profiling.
15046         (hppa_profile_hook): Use the local label rather than the function label.
15047         * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
15048
15049 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
15050
15051         * config/rs6000/rs6000.c (print_operand): Remove extra space.
15052         (altivec_expand_unop_builtin): Fix thinko.
15053         (altivec_expand_binop_builtin): Same.
15054         (altivec_expand_ternop_builtin): Same.
15055         (altivec_expand_builtin): Same.
15056
15057 2002-01-07  Richard Henderson  <rth@redhat.com>
15058
15059         * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
15060
15061 2002-01-07  Jason Merrill  <jason@redhat.com>
15062
15063         * unwind-dw2.c (execute_cfa_program): Use < again.
15064
15065 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
15066
15067         * predict.c (combine_predictions_for_insn): Avoid division by zero.
15068
15069 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
15070
15071         * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
15072         Don't allow -1 - x -> ~x simplifications in the first pass.
15073
15074 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
15075
15076         * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
15077         arguments.
15078         (altivec_expand_binop_builtin): Same.
15079         (altivec_expand_unop_builtin): Same.
15080         (print_operand): Fix typo.
15081         (bdesc_1arg): Add vupk* variants.
15082
15083         * rs6000.h (rs6000_builtins): Add vupk* enums.
15084
15085         * rs6000.md: Add altivec_vupk* variants.
15086
15087 2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
15088
15089         * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
15090         doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
15091         and last update dates.
15092
15093 2002-01-07  Janis Johnson  <janis187@us.ibm.com>
15094
15095         * doc/rtl.texi (Flags): Clean up documentation of RTL flags
15096
15097 2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>
15098
15099         * config/avr/avr.c (avr_mcu_types): Add new MCU types.
15100         * config/avr/avr.h (CPP_SPEC): Likewise.
15101         (LINK_SPEC): Likewise.
15102         (CRT_BINUTILS_SPECS): Likewise.
15103         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
15104         * doc/invoke.texi (AVR Options): Document them.
15105
15106 Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>
15107
15108         * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
15109         LABEL_NUSES.
15110
15111 2002-01-07  Graham Stott  <grahams@redhat.com>
15112
15113         * config/i386/i386.h: Update copyright date.
15114         (HALF_PIC_PTR): Add parenthesis.
15115         (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
15116         (CONSTANT_ALIGNMENT): Add parenthesis.
15117         (DATA_ALIGNMENT): Likewise.
15118         (LOCAL_ALIGNMENT): Likewise.
15119         (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
15120         (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
15121         (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
15122         (HARD_REGNO_NREGS): Add paranethesis.
15123         (VALID_SSE_REG_MODE): Whitespace.
15124         (VALID_MMX_REG_MODE): Whitespace.
15125         (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
15126         (ix86_hard_regno_mode_ok): Add parenthesis.
15127         (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
15128         (RETURN_IN_MEMORY): Whitespace.
15129         (N_REG_CLASSES): Add parenthesis.
15130         (INTEGER_CLASS_P): Add parenthesis and wrap.
15131         (FLOAT_CLASS_P): Likewise.
15132         (SSE_CLASS_P): Likewise.
15133         (MMX_CLASS_P): Likewise.
15134         (MAYBE_INTEGER_CLASS_P): Likewise.
15135         (MAYBE_FLOAT_CLASS_P): Likewise.
15136         (MAYBE_SSE_CLASS_P): Likewise.
15137         (MAYBE_MMX_CLASS_P): Likewise.
15138         (Q_CLASS_P): Likewise.
15139         (GENERAL_REGNO_P): Uppercase macro parameter.
15140         (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
15141         (FP_REGNO_P): Likewise.
15142         (ANY_FP_REGNO_P): Uppercase macro parameter.
15143         (SSE_REGNO_P): Likewise.
15144         (SSE_REGNO): Likewise.
15145         (SSE_REG_P): Likewise.
15146         (SSE_FLOAT_MODE_P): Likewise.
15147         (MMX_REGNO_P): Likewise.
15148         (MMX_REG_P):Likewise.
15149         (STACK_REG_P): Likewise.
15150         (NON_STACK_REG_P): Likewise.
15151         (STACK_TOP_P): Likewise.
15152         (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
15153         (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
15154         (SECONDARY_MEMORY_NEEDED): Likewise.
15155         (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
15156         (MD_ASM_CLOBBERS): Whitespace and wrap.
15157         (MUST_PASS_IN_STACK): Whitespace and wrap.
15158         (RETURN_POPS_ARGS): Add parenthesis.
15159         (INIT_CUMULATIVE_ARGS): Likewise.
15160         (FUNCTION_ARG): Likewise.
15161         (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
15162         (SETUP_INCOMING_VARARGS): Likewise.
15163         (BUILD_VA_LIST_TYPE):  Add parenthesis.
15164         (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
15165         parenthsis.
15166         (EXPAND_BUILTIN_VA_ARG): Likewise.
15167         (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
15168         (INITIALIZE_TRAMPOLINE): Add parenthesis.
15169         (INITIAL_ELIMINATION_OFFSET): Likewise.
15170         (REGNO_OK_FOR_INDEX_P): Add parenthesis.
15171         (REGNO_OK_FOR_BASE_P): Likewise.
15172         (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
15173         (REGNO_OK_FOR_DIREG_P): Likewise.
15174         (REG_OK_FOR_INDEX_P): Whitespace.
15175         (REG_OK_FOR_BASE_P): Whitespace.
15176         (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
15177         parenthesis.
15178         (FIND_BASE_TERM): Fix typo.
15179         (LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
15180         (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
15181         (SYMBOLIC_CONST; Whitespace.
15182         (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
15183         (ENCODE_SECTION_INFO): Whitespace.
15184         (FINALIZE_PIC): Remove do { ... } while (0).
15185         (PROMOTE_MODE): Wrap in do { ... } while (0).
15186         (CONST_COSTS): Whitespace.
15187         (RTX_COSTS): Add paramethesis, whitespace and wrap.
15188         (REGISTER_MOVE_COST): Add parenthesis.
15189         (MEMORY_MOVE_COST): Likewise.
15190         (EXTRA_CC_MODES): Whitespace.
15191         (SELECT_CC_MODE): Add parenthesis and whitespace.
15192         (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
15193         (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
15194         (ASM_OUTPUT_LABEL): Add paramethesis.
15195         (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
15196         (ASM_OUTPUT_REG_POP): Likewise.
15197         (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
15198         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
15199
15200         * config/i386/i386.c: Update copyright.
15201         (CHECK_STACK_LIMIT): Add parenthesis.
15202         (AT_BP): Uppercase macro parameter.
15203         (x86_64_int_parameter_registers): Constify.
15204         (x86_64_int_return_registers): Likewise.
15205         (ix86_compare_op0): Use rtx.
15206         (construct_container): Constify INTREG parameter.
15207         (function_arg): Use rtx.
15208
15209         * diagnostic.h: Update copyright date.
15210         (output_buffer_state): Add parenthesis.
15211         (output_buffer_format_args): Likewise.
15212
15213         * combine.c (combine_instructions): Replace XEXP (links, 0)
15214         with link.
15215
15216 2002-01-06  H.J. Lu <hjl@gnu.org>
15217
15218         * cfgcleanup.c (thread_jump): Fix 2 typos.
15219
15220 2002-01-06  Aldy Hernandez  <aldyh@redhat.com>
15221
15222         * config.gcc: Add support for --enable-altivec.
15223
15224 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
15225
15226         * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
15227
15228 2002-01-06  Jakub Jelinek  <jakub@redhat.com>
15229
15230         * objc/objc-act.c (handle_impent): Use assemble_variable to emit
15231         __objc_class_name_*.
15232
15233 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
15234
15235         * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
15236
15237 2002-01-06  Richard Henderson  <rth@redhat.com>
15238
15239         * reorg.c (emit_delay_sequence): Remove death notes, not merely
15240         nop them out.  Increment label reference count for REG_LABEL.
15241         (fill_slots_from_thread): Frob label reference count around
15242         delete_related_insns.
15243
15244 2002-01-05  Richard Henderson  <rth@redhat.com>
15245
15246         * cfgcleanup.c (try_forward_edges): Detect infinite loops while
15247         jump threading.
15248
15249 2002-01-05  Richard Henderson  <rth@redhat.com>
15250
15251         * c-decl.c (c_expand_body): Don't call outlining_inline_function.
15252         * integrate.c (output_inline_function): Likewise.
15253         * toplev.c (rest_of_compilation): Do it here instead.  Move call
15254         to remove_unnecessary_notes after emitting abstract instance.
15255         Force an emitted nested function to have its parent emited as well.
15256         * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
15257         for null.
15258         (rtl_for_decl_location): Do not look at reload data structures
15259         before reload has run.
15260
15261 2002-01-05  Kazu Hirata  <kazu@hxi.com>
15262
15263         * cse.c: Fix formatting.
15264         * dwarf2asm.c: Likewise.
15265         * dwarf2out.c: Likewise.
15266         * explow.c: Likewise.
15267         * expmed.c: Likewise.
15268         * function.c: Likewise.
15269         * gcov.c: Likewise.
15270         * gencheck.c: Likewise.
15271         * genrecog.c: Likewise.
15272         * ggc-common.c: Likewise.
15273         * ggc-page.c: Likewise.
15274         * global.c: Likewise.
15275
15276 2002-01-05  Kazu Hirata  <kazu@hxi.com>
15277
15278         * combine.c: Fix formatting.
15279
15280 2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>
15281
15282         PR middle-end/1557
15283         * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
15284
15285 2002-01-05  David Edelsohn  <edelsohn@gnu.org>
15286
15287         * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
15288         as 1 for __powerpc64__ as well.
15289
15290         * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
15291
15292         * alias.c (find_base_value, PLUS/MINUS): If we found a base,
15293         return it.
15294
15295 2002-01-05  Daniel Berlin  <dan@dberlin.org>
15296
15297         * lcm.c: Revert change, due to performance regression it causes on
15298         SPEC because it's slightly more conservative (sigh, I hate
15299         edge-based LCM).
15300
15301 Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>
15302
15303         * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
15304
15305 2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
15306
15307         * doc/cppinternals.texi: Update.
15308
15309 2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>
15310
15311         * doc/invoke.texi (Option Summary) <MMIX Options>: Document
15312         -mbranch-predict, -mreg-stack-fill-bug-workaround and their
15313         negatives.
15314         (MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
15315         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
15316         kludge for pre-october-14th mmix versions to handle new-found bug
15317         with PUSHJ/PUSHGO and the register stack.
15318         * config/mmix/mmix.h (struct machine_function): Rename member
15319         has_call_value_without_parameters to has_call_without_parameters.
15320         All referers changed.
15321         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
15322         TARGET_MASK_BRANCH_PREDICT): New macros.
15323         (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
15324         -mno-reg-stack-fill-bug-workaround.
15325         * config/mmix/mmix.md ("call"): Set struct machine member
15326         has_call_without_parameters.
15327
15328 Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>
15329
15330         * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
15331
15332 Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>
15333
15334         * cfgcleanup.c: Include tm_p.h
15335         (mark_effect): Fix handling of hard register; fix handling of SET
15336
15337 2002-01-04  Kazu Hirata  <kazu@hxi.com>
15338
15339         * config/h8300/h8300.md (anonymous patterns): Check that
15340         operands are registers before using REGNO on them.
15341
15342 2002-01-03  Roland McGrath  <roland@frob.com>
15343
15344         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
15345
15346 2002-01-04  Jakub Jelinek  <jakub@redhat.com>
15347
15348         * tree.h (expand_expr_stmt_value): Add maybe_last argument.
15349         * c-common.h (genrtl_expr_stmt_value): Likewise.
15350         * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
15351         (expand_expr_stmt_value): Add maybe_last argument.
15352         Don't warn about statement with no effect if it is the last statement
15353         in expression statement.
15354         * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
15355         (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
15356         expand_expr_stmt_value.
15357         (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
15358         genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
15359         * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
15360         as maybe_last to expand_expr_stmt_value.
15361
15362 Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)
15363
15364         * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
15365         be passed in, do not build it.
15366         (c_begin_if_stmt): New function.
15367         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
15368         * c-common.h (c_expand_start_cond): Update prototype.
15369         (c_begin_if_stmt): Prototype new function.
15370         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
15371         * c-parse.in (if_prefix): Use c_begin_if_stmt,
15372         c_begin_while_stmt and c_finish_while_stmt_cond.
15373
15374 2002-01-04  William Cohen  <wcohen@redhat.com>
15375
15376         * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
15377         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
15378         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
15379         * config/pa/som.h (ASM_FILE_START): Likewise.
15380
15381 2002-01-04  Daniel Berlin  <dan@cgsoftware.com>
15382
15383         * lcm.c: Include df.h.
15384         Add available_transfer_function prototype.
15385         (compute_available): Rework to use iterative dataflow framework.
15386         (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
15387         with bb_info in df.h
15388         (available_transfer_function): New function.
15389
15390         * Makefile.in (lcm.o): add df.h to dependencies.
15391
15392 2002-01-04  Richard Henderson  <rth@redhat.com>
15393
15394         * config/alpha/alpha.c (some_operand): Accept HIGH.
15395         (input_operand): Likewise; accept simple references to globals.
15396         (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
15397         (alpha_const_double_ok_for_letter_p): Likewise.
15398         (alpha_extra_constraint): Likewise.
15399         (alpha_preferred_reload_class): Likewise.  Do not force
15400         symbolic constants to memory.
15401         (alpha_legitimate_address_p): Accept simple references
15402         to small_symbolic_operand.
15403         (alpha_legitimize_address): New arg scratch.  Be prepared to be
15404         called when no_new_pseudos.  Emit simple symbolic references.
15405         Split integers into low, high, and rest.
15406         (alpha_expand_mov): Use alpha_legitimize_address.
15407         (some_small_symbolic_mem_operand): New.
15408         (split_small_symbolic_mem_operand): New.
15409         * config/alpha/alpha-protos.h: Update.
15410         * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
15411         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
15412         (EXTRA_CONSTRAINT): Likewise.
15413         (PREFERRED_RELOAD_CLASS): Likewise.
15414         (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
15415         (PREDICATE_CODES): Update.
15416         * config/alpha/alpha.md: New post-reload splitters to convert
15417         simplfied symbolic operands to the form that references $29.
15418         (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
15419         (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
15420
15421 2002-01-03  Richard Henderson  <rth@redhat.com>
15422
15423         * local-alloc.c (function_invariant_p): Update commentary.
15424
15425 2002-01-04  H.J. Lu <hjl@gnu.org>
15426
15427         * toplev.c (rest_of_compilation): Fix a typo when calling
15428         cleanup_cfg.
15429
15430 2002-01-03  Kazu Hirata  <kazu@hxi.com>
15431
15432         * c-common.c: Fix formatting.
15433         * diagnostic.c: Likewise.
15434         * doloop.c: Likewise.
15435         * dwarf2out.c: Likewise.
15436
15437 2002-01-03  Kazu Hirata  <kazu@hxi.com>
15438
15439         * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
15440         of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
15441
15442 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
15443
15444         * cpperror.c: Update comments and copyright.
15445         * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
15446         cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
15447
15448 2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15449
15450         * collect2.c (main): Use strcmp when testing for "-shared".
15451
15452 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
15453
15454         * cppmacro.c: Don't include intl.h.  Update comments.
15455         (new_number_token): Allocate enough buffer for 64-bit unsigned
15456         integers; update prototype.
15457         * cppmain.c: Update comments.
15458
15459 2002-01-03  William Cohen  <wcohen@redhat.com>
15460
15461         * function.h (struct function): Add profile.
15462         (current_function_profile): New.
15463         doc/extend.texi: Update documentation.
15464         * final.c (final_start_function): Use current_function_profile
15465         instead of profile_flag.
15466         (profile_after_prologue): Likewise.
15467         * function.c (expand_function_start): Likewise.
15468         (expand_function_start): Likewise.
15469         * config/alpha/alpha.c (direct_call_operand):
15470         (alpha_does_function_need_gp): Likewise.
15471         (alpha_expand_prologue): Likewise.
15472         * config/arm/arm.c (arm_expand_prologue): Likewise.
15473         thumb_expand_prologue: Likewise.
15474         * config/d30v/d30v.c (d30v_stack_info): Likewise.
15475         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
15476         (fr30_expand_prologue): Likewise.
15477         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
15478         * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
15479         * config/i386/i386.h (FINALIZE_PIC): Likewise.
15480         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
15481         * config/i960/i960.c (i960_output_function_prologue): Likewise.
15482         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
15483         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
15484         (m32r_expand_prologue): Likewise.
15485         * config/m88k/m88k.c (m88k_layout_frame): Likewise.
15486         (m88k_expand_prologue): Likewise.
15487         * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
15488         * config/mips/mips.c (compute_frame_size): Likewise.
15489         (mips_expand_prologue): Likewise.
15490         (mips_can_use_return_insn): Likewise.
15491         * config/pa/elf.h (ASM_FILE_START): Likewise.
15492         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
15493         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
15494         * config/pa/som.h (ASM_FILE_START): Likewise.
15495         * config/romp/romp.c (romp_using_r14): Likewise.
15496         * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
15497         (rs6000_stack_info): Likewise.
15498         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
15499         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
15500         * config/v850/v850.c (compute_register_save_size): Likewise.
15501
15502 2002-01-03  Jakub Jelinek  <jakub@redhat.com>
15503
15504         * simplify-rtx.c (simplify_binary_operation) [DIV]: If
15505         gen_lowpart_common fails, use gen_lowpart_SUBREG.
15506
15507 2002-01-03  Turly O'Connor  <turly@apple.com>
15508
15509         * darwin.c (machopic_output_possible_stub_label): Don't generate
15510         stub routines for pseudo-stubs which we've just defined.
15511
15512 2002-01-03  Kazu Hirata  <kazu@hxi.com>
15513
15514         * builtins.c: Fix formatting.
15515         * c-typeck.c: Likewise.
15516         * combine.c: Likewise.
15517         * expr.c: Likewise.
15518         * loop.c: Likewise.
15519
15520 2002-01-03  Andreas Schwab  <schwab@suse.de>
15521
15522         * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
15523         and return true if _cpp_push_next_buffer pushed a new include
15524         file.
15525         * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
15526         _cpp_pop_file_buffer did not push a new file.
15527         * cpphash.h (_cpp_pop_file_buffer): Update declaration.
15528
15529 2002-01-02  Eric Christopher  <echristo@redhat.com>
15530
15531         * final.c (final_scan_insn): Change 0 -> NULL_RTX in
15532         FIND_REG_INC_NOTE call. Update copyright.
15533         * loop.c (canonicalize_condition): Ditto.
15534         * reorg.c (delete_scheduled_jump): Ditto.
15535
15536 2002-01-03  Kazu Hirata  <kazu@hxi.com>
15537
15538         * gcse.c: Fix formatting.
15539
15540 2002-01-03  Graham Stott  <grahams@redhat.com>
15541
15542         * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
15543         forward defs for struct tags rtx_def, union_tree, rtvec_def
15544         also output corresponding typedefs for rtx, tree, and rtvec.
15545
15546         * system.h: Move forward defs for struct tags rtx_def, union_tree,
15547         rtvec_def along with corresponding typedefs for rtx, tree, and
15548         rtvec to config.h, hconfig.h, tconfig.h.
15549
15550 2002-01-03  Graham Stott  <grahams@redhat.com>
15551
15552         * tree.h: Update copyright date.
15553         (IS_EXPR_CODE_CLASS): Add parenthesis.
15554         (TREE_SET_CODE): Add whitespace.
15555         (TREE_CHECK): Add parenthesis.
15556         (TREE_CLASS_CODE): Add parenthesis and wrap long line.
15557         (CST_OR_CONSTRUCTOR_CHECK):
15558         (EXPR_CHECK): Add parenthis, whitespace and wrap line.
15559         (TREE_SYMBOL_REFERENCED): Whitespace.
15560         (INT_CST_LT): Likewise.
15561         (INT_CST_LT_UNSIGNED): Likewise.
15562         (tree_real_cst): Unwrap comment.
15563         (tree_string): Likewise.
15564         (tree_complex): Likewise.
15565         (IDENTIFIER_POINTER): correct cast.
15566         (SAVE_EXPR_CONTEXT): Whitespace.
15567         (EXPR_WFL_FILENAME_NODE): Likewise.
15568         (EXPR_WFL_FILENAME): Remove parenthesis.
15569         (DECL_ORIGIN): Add parenthesis.
15570         (DECL_FROM_INLINE): Use NULL_TREE.
15571         (build_int_2): Whitespace.
15572         (build_type_variant): Add parenthesis.
15573
15574         * gcc/jcf-parse.c: Update copyright date.
15575         (yyparse): Constify resource_filename.
15576
15577 2002-01-03  Graham Stott  <grahams@redhat.com>
15578
15579         * rtl.h: Update copyright date.
15580         (RTL_CHECK1): Wrap long line.
15581         (RTL_CHECK2): Likewise.
15582         (RTL_CHECKC1): Wrap long line and whitespace.
15583         (RTL_CHECKC2): Likewise.
15584         (XWINT): Whitespace.
15585         (XINT): Likewise.
15586         (XSTR): Likewise.
15587         (XEXP): Likewise.
15588         (XVEC): Likewise.
15589         (XMODE): Likewise.
15590         (XBITMAP): Likewise.
15591         (XTREE): Likewise.
15592         (XBBDEF): Likewise.
15593         (XTMPL): Likewise.
15594         (X0WINT): Likewise.
15595         (X0INT):Likewise.
15596         (X0UINT): Likewise.
15597         (X0STR): Likewise.
15598         (X0EXP): Likewise.
15599         (X0VEC): Likewise.
15600         (X0MODE): Likewise.
15601         (X0BITMAP): Likewise.
15602         (X0TREE): Likewise.
15603         (X0BBDEF): Likewise.
15604         (X0ADVFLAGS): Likewise.
15605         (X0CSELIB): Likewise.
15606         (X0MEMATTR): Likewise.
15607         (XCWINT): Likewise.
15608         (XCINT): Likewise.
15609         (XCUINT): Likewise.
15610         (XCSTR): Likewise.
15611         (XCEXP): Likewise.
15612         (XCVEC): Likewise.
15613         (XCMODE): Likewise.
15614         (XCBITMAP): Likewise.
15615         (XCTREE): Likewise.
15616         (XCBBDEF): Likewise.
15617         (XCADVFLAGS): Likewise.
15618         (XCCSELIB): Likewise.
15619         (XC2EXP): Likewise.
15620         (INSN_UID): Likewise.
15621         (PREV_INSN): Likewise.
15622         (PATTERN): Likewise.
15623         (INSN_CODE): Likewise.
15624         (PUT_REG_NOTE_KIND): Likewise.
15625         (CODE_LABEL_NUMBER): Likewise.
15626         (NOTE_SOURCE_FILE): Likewise.
15627         (NOTE_BLOCK): Likewise.
15628         (NOTE_EH_HANDLER): Likewise.
15629         (NOTE_RANGE_INFO): Likewise.
15630         (NOTE_LIVE_INFO): Likewise.
15631         (NOTE_BASIC_BLOCK): Likewise.
15632         (NOTE_EXPECTED_VALUE): Likewise.
15633         (NOTE_LINE_NUMBER): Likewise.
15634         (LABEL_NAME): Likewise.
15635         (LABEL_NUSES): Likewise.
15636         (LABEL_ALTERNATE_NAME): Likewise.
15637         (ADDRESSOF_DECL): Likewise.
15638         (JUMP_LABEL): Likewise.
15639         (LABEL_NEXTREF): Likewise.
15640         (REGNO): Likewise.
15641         (ORIGINAL_REGNO: Likewise.
15642         (HARD_REGISTER_NUM_P): Add parenthesis.
15643         (SUBREG_REG): Whitespace.
15644         (SUBREG_BYTE): Likewise.
15645         (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
15646         (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
15647         (ASM_OPERANDS_OUTPUT_IDX): Likewise.
15648         (ASM_OPERANDS_INPUT_VEC): Likewise.
15649         (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
15650         (ASM_OPERANDS_INPUT): Likewise.
15651         (ASM_OPERANDS_INPUT_LENGTH): Likewise.
15652         (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
15653         (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
15654         (ASM_OPERANDS_INPUT_MODE): Likewise.
15655         (ASM_OPERANDS_SOURCE_FILE): Likewise.
15656         (ASM_OPERANDS_SOURCE_LINE): Likewise.
15657         (MEM_SET_IN_STRUCT_P): Minor reformat.
15658         (TRAP_CONDITION): Whitespace.
15659         (TRAP_CODE): Likewise.
15660         (COND_EXEC_TEST): Likewise.
15661         (COND_EXEC_CODE): Likewise.
15662         (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
15663         (PHI_NODE_P): Add parenthesis.
15664         (plus_constant): Whitespace and add parenthesis.
15665
15666 2002-01-03  Kazu Hirata  <kazu@hxi.com>
15667
15668         * config/avr/avr.c: Fix comment typos.
15669         * config/c4x/c4x.md: Likewise.
15670         * config/dsp16xx/dsp16xx.h: Likewise.
15671         * config/dsp16xx/dsp16xx.md: Likewise.
15672         * config/i386/i386.md: Likewise.
15673         * config/ia64/ia64.c: Likewise.
15674         * config/m32r/m32r.h: Likewise.
15675         * config/m68hc11/m68hc11.md: Likewise.
15676         * config/mmix/mmix.c: Likewise.
15677         * config/mn10200/mn10200.c: Likewise.
15678         * config/romp/romp.c: Likewise.
15679         * config/sh/sh.c: Likewise.
15680         * config/stormy16/stormy16.c: Likewise.
15681         * config/stormy16/stormy16.h: Likewise.
15682         * config/stormy16/stormy16.md: Likewise.
15683
15684 2002-01-03  Graham Stott  <grahams@redhat.com>
15685
15686         * loop.h: Update copyright date.
15687         (LOOP_MOVABLES): Fix typo.
15688         (LOOP_REGS): Likewise.
15689         (LOOP_IVS): Likewise.
15690
15691 2002-01-03  Graham Stott  <grahams@redhat.com>
15692
15693         * cppinit.c: Update copyright date.
15694         Don't include output.h
15695         * Makefile.in: Update copyright date.
15696         Update dependency.
15697
15698 2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
15699
15700         PR c/5226
15701         * invoke.texi (-mthreads): Remove from documented RS/6000 options.
15702         (-pthread) Add to RS/6000 options.
15703
15704 2002-01-02  Kazu Hirata  <kazu@hxi.com>
15705
15706         * except.c: Fix comment typos.
15707         * loop.c: Likewise.
15708         * varasm.c: Likewise.
15709         * doc/tm.texi: Fix a typo.
15710
15711 2002-01-02  Jakub Jelinek  <jakub@redhat.com>
15712
15713         * c-typeck.c (output_init_element): Allow initializing static storage
15714         duration objects with compound literals.
15715
15716 2002-01-02  Richard Henderson  <rth@redhat.com>
15717
15718         * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
15719         after abusing it.
15720
15721 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15722
15723         * gcc.c (default_compilers): Const-ify.
15724         * mips-tdump.c (stab_names): Likewise.
15725         * mips-tfile.c (map_coff_types, map_coff_storage,
15726         map_coff_sym_type, map_coff_derived_type, stabs_symbol,
15727         pseudo_ops_t, pseudo_ops): Likewise.
15728         * protoize.c (default_include): Likewise
15729
15730         * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
15731         (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
15732         Add array size in declaration.
15733         (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
15734         emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
15735         esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
15736         etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
15737         eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
15738         efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
15739         c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
15740         emtens, make_nan): Const-ify.
15741         (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
15742         DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
15743
15744 2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>
15745
15746         * config.gcc (ia64-*-*): Set extra_headers.
15747         (alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
15748         * config/alpha/t-osf: Remove.
15749         * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
15750
15751 2002-01-02  David Edelsohn  <edelsohn@gnu.org>
15752
15753         * config/rs6000/t-aix43: Revert previous change.
15754
15755 2002-01-02  Jason Merrill  <jason@redhat.com>
15756
15757         * c-decl.c (c_expand_body): Call outlining_inline_function when
15758         emitting an inline function out of line.
15759
15760 2002-01-02  Richard Henderson  <rth@redhat.com>
15761
15762         * dwarf2out.c (limbo_die_node): Add created_for member.
15763         (new_die): New argument created_for.  Update all callers.
15764         (mark_limbo_die_list): New.
15765         (dwarf2out_init): Register limbo_die_list as a root.
15766         (dwarf2out_finish): Force insert limbo dies into their function
15767         context.
15768
15769 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
15770
15771         PR c++/5089
15772         * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
15773
15774 2002-01-02  Kazu Hirata  <kazu@hxi.com>
15775
15776         * config/h8300/fixunssfsi.c: Update copyright.
15777         Fix comment typos.
15778         Fix formatting.
15779         * config/h8300/h8300.c: Update copyright.
15780         Eliminate warnings.
15781
15782 2002-01-02  Kazu Hirata  <kazu@hxi.com>
15783
15784         * config/romp/romp.c: Fix comment formatting.
15785         * config/romp/romp.h: Likewise.
15786         * config/romp/romp.md: Likewise.
15787         * config/s390/s390.c: Likewise.
15788         * config/stormy16/stormy16.c: Likewise.
15789         * config/stormy16/stormy16.h: Likewise.
15790
15791 2002-01-02  Alexandre Oliva  <aoliva@redhat.com>
15792
15793         * c-common.h (genrtl_expr_stmt_value): Declare.
15794         * c-semantics.c (genrtl_goto_stmt): Redirect to...
15795         (genrtl_goto_stmt_value): ... this new function.  Pass new
15796         argument down to expand_expr_stmt_value, taking
15797         TREE_ADDRESSABLE into account.
15798         * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
15799         STMT_EXPR as addressable, i.e., one whose result we want.
15800         * expr.c (expand_expr): Don't save expression statement value
15801         of labeled_blocks or loop_exprs.
15802         * stmt.c (expand_expr_stmt): Redirect to...
15803         (expand_expr_stmt_value): ... this new function.  Use new
15804         argument to tell whether to save expression value.
15805         (expand_end_stmt_expr): Reset last_expr_type and
15806         last_expr_value if we don't have either.
15807         * tree-inline.c (declare_return_variable): Mark its use
15808         statement as addressable.
15809         * tree.h: Document new use of TREE_ADDRESSABLE.
15810         (expand_expr_stmt_value): Declare.
15811
15812 2002-01-01  Tom Rix  <trix@redhat.com>
15813
15814         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
15815         rs6000_emit_allocate_stack.
15816
15817 2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
15818
15819         * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
15820         ${srcdir}/ginclude/ to every entry in extra_headers.
15821         * configure: Regenerate.
15822         * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
15823         * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
15824         * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
15825         * ginclude/proto.h: Rename to config/convex/proto.h.
15826
15827 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15828
15829         * attribs.c (handle_vector_size_attribute): Use host_integerp
15830         and tree_int_cst; remove warnings.
15831         * caller-save.c (insert_restore): Add cast to get rid of warning.
15832         (insert_save): Likewise.
15833         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
15834         * regmove.c (find_matches): Add temporary var to kill a warning.
15835
15836 2002-01-01  Douglas B Rupp  <rupp@gnat.com>
15837
15838         * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
15839         LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
15840         * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
15841         (vms-dwarf2eh.o): Add Makefile rule.
15842         * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
15843         * config/alpha/vms-dwarf2eh.asm: New file.
15844
15845         * gcc.c (delete_if_ordinary): Delete all versions.
15846
15847 2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
15848
15849         * config/mmix/mmix.md: Update FIXME to not mention
15850         define_constants.
15851         (MMIX_rJ_REGNUM): New define_constants constant.
15852         ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
15853         "*movdicc_real"): Adjust contraints formatting.
15854         ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
15855         for branch prediction.
15856         ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
15857         output template.
15858         ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
15859         "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
15860         number.  Delete related FIXMEs.
15861         * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
15862         from number to MMIX_rJ_REGNUM.
15863         (TARGET_MASK_BRANCH_PREDICT): New.
15864         (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
15865         (TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
15866         value.  Add -mbranch-predict and -mno-branch-predict.
15867         (TARGET_VERSION): Drop date.
15868         (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
15869         * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
15870         for finding out global symbols.
15871         (mmix_asm_output_labelref): Revert condition for global symbol.
15872         (mmix_print_operand): <case '+'>: Emit P for a likely branch.
15873         (mmix_print_operand_punct_valid_p): A '+' is valid.
15874
15875 See ChangeLog.6 for earlier changes.