OSDN Git Service

bc44ee8a395925c784d04b3ac1d5f0cea9b7eff1
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-05-24  Andreas Jaeger  <aj@suse.de>
2
3         * ggc-page.c (alloc_page): Cast variables of type size_t to
4         unsigned long, adjust printf format string.
5         (ggc_alloc): Likewise.
6         (ggc_print_statistics): Likewise.
7         (ggc_print_statistics): Correct printf format string for SCALE to
8         use unsigned long.
9
10 2002-05-24  Danny Smith  <dannysmith@users.sourceforge.net>
11
12         * config/i386/mingw32.h (CPP_SPEC): Remove -remap.
13
14 2002-05-23  Gabriel Dos Reis  <gdr@codesourcery.com>
15             Zack Weinberg     <zack@codesourcery.com>
16
17         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Properly output
18         quoted strings.
19         * dwarf2out.c (lookup_filename): Properly quote filename in .file
20         directive in assembly file.
21         * config/m68k/dpx2.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
22         * config/m88k/m88k.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
23         * config/pj/pj.h (ASM_FILE_START): Likewise.
24         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
25         * config/avr/avr.c (asm_file_end): Likewise.
26         * toplev.c (output_quoted_string): Handle possibly signed plain
27         char.
28         * toplev.h (output_clean_symbol_name): Declare
29         * toplev.c (output_clean_symbol_name): Define.
30         * config/alpha/alpha.c (unicosmk_output_module_name): Use it.
31         * config/1750a/1750a.h (ASM_FILE_START): Likewise.
32
33 2002-05-24  Alan Modra  <amodra@bigpond.net.au>
34
35         * config/rs6000/rs6000.c (output_toc): Mask longs to 32 bits.
36
37 2002-05-23  Vladimir Makarov  <vmakarov@redhat.com>
38
39         * genautomata.c (reserv_sets_hash_value): Use shift equal to 3/4
40         of size of unsigned.
41
42 2002-05-23  Richard Henderson  <rth@redhat.com>
43
44         * configure.in (HAVE_AS_TLS): New test.
45         * config.in, configure: Rebuild.
46         * config/i386/i386.c (TARGET_HAVE_TLS): Set if HAVE_AS_TLS.
47         (ix86_tls_dialect_string, ix86_tls_dialect): New.
48         (override_options): Set it.
49         (tls_model_chars, tls_symbolic_operand): New.
50         (tls_symbolic_operand_1, global_dynamic_symbolic_operand): New.
51         (local_dynamic_symbolic_operand, initial_exec_symbolic_operand): New.
52         (local_exec_symbolic_operand): New.
53         (get_pic_label_name): Merge into output_set_got.
54         (ix86_asm_file_end): Emit pic_label_name if defined.
55         (legitimate_constant_p, constant_address_p): New.
56         (legitimate_pic_operand_p): New.
57         (legitimate_pic_address_disp_p): Handle GOTTPOFF, NTPOFF, DTPOFF.
58         (legitimate_address_p): Likewise.
59         (ix86_encode_section_info): Rename from i386_; handle tls decls.
60         (ix86_strip_name_encoding): New.
61         (get_thread_pointer): New.
62         (legitimize_address): Handle tls symbols.
63         (output_pic_addr_const): Handle GOTTPOFF, TPOFF, NTPOFF, DTPOFF.
64         Remove UNSPEC_PLT.
65         (struct machine_function): Add some_ld_name.
66         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Set it.
67         (print_operand) [&]: Use it.  Handle UNSPEC_TP.
68         (output_addr_const_extra): New.
69         (maybe_get_pool_constant): New.
70         (ix86_split_to_parts): Use it.
71         (ix86_expand_move): Handle tls symbols.
72         (ix86_tls_get_addr): New.
73         * config/i386/i386.h (TARGET_GNU_TLS, TARGET_SUN_TLS): New.
74         (TARGET_OPTIONS): Add tls-dialect.
75         (CONSTANT_ADDRESS_P): Use new out-of-line function.
76         (LEGITIMATE_CONSTANT_P): Likewise.
77         (LEGITIMATE_PIC_OPERAND_P): Likewise.
78         (TARGET_STRIP_NAME_ENCODING): New.
79         (ASM_OUTPUT_LABELREF): New.
80         (PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
81         (OUTPUT_ADDR_CONST_EXTRA): New.
82         (PREDICATE_CODES): Update.
83         (ix86_tls_dialect, ix86_tls_dialect_string): New.
84         * config/i386/i386.md: Regroup and renumber unspec constants.
85         (tls_global_dynamic_gnu, tls_global_dynamic_sun): New.
86         (tls_local_dynamic_base_gnu, tls_local_dynamic_base_sun): New.
87         (tls_global_dynamic, tls_local_dynamic_base): New.
88         (tls_local_dynamic_once): New.
89         * config/i386/i386-protos.h: Update.
90
91 2002-05-23  Richard Henderson  <rth@redhat.com>
92
93         * genemit.c (gen_insn): Print file:lineno comment before function.
94         (main): likewise.
95         * gensupport.c (struct queue_elem): Add filename member.
96         (queue_pattern): Initialize it; update all callers.
97         (process_include): Don't free filename.
98         (read_md_rtx): Set read_rtx_filename.
99
100 2002-05-23  Hans Boehm  <Hans_Boehm@hp.com>
101
102         * config/ia64/linux.h (IA64_GATE_AREA_END): Adjust for 64K pages.
103
104 2002-05-23  Richard Henderson  <rth@redhat.com>
105
106         * config/i386/i386.c (output_set_got): Fix typo in pic no-deep case.
107
108 2002-05-23  Richard Henderson  <rth@redhat.com>
109
110         * doc/extend.texi (C++98 Thread-Local Edits): Update with
111         commentary from Mark.
112
113 2002-05-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
114
115         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1):
116         Use FOR_EACH_BB macros to iterate over basic block chain.
117         * cfg.c (clear_edges, clear_bb_flags, dump_flow_info,
118         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges):
119         Likewise.
120         * cfganal.c (set_edge_can_fallthru_flag, flow_call_edges_add,
121         find_unreachable_blocks, create_edge_list, verify_edge_list,
122         remove_fake_edges, add_noreturn_fake_exit_edges,
123         flow_preorder_transversal_compute, flow_dfs_compute_reverse_execute):
124         Likewise.
125         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
126         find_sub_basic_blocks): Likewise.
127         * cfgcleanup.c (try_optimize_cfg, delete_unreachable_blocks):
128         Likewise.
129         * cfglayout.c (record_effective_endpoints, cleanup_unconditional_jumps):
130         Likewise.
131         * cfgloop.c (flow_loops_cfg_dump, flow_loops_find):
132         Likewise.
133         * cfgrtl.c (compute_bb_for_insn, tidy_fallthru_edges,
134         commit_edge_insertions, commit_edge_insertions_watch_calls,
135         print_rtl_with_bb, verify_flow_info, purge_all_dead_edges): Likewise.
136         * combine.c (combine_instructions, reg_dead_at_p): Likewise.
137         * conflict.c (conflict_graph_compute): Likewise.
138         * df.c (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
139         df_modified_p, df_refs_unlink, df_dump): Likewise.
140         * dominance.c (calc_dfs_tree, calculate_dominance_info): Likewise.
141         * final.c (compute_alignments): Likewise.
142         * flow.c (update_life_info, update_life_info_in_dirty_blocks,
143         delete_noop_moves, calculate_global_regs_live, allocate_bb_life_data,
144         count_or_remove_death_notes): Likewise.
145         * gcse.c (oprs_unchanged_p, record_last_reg_set_info,
146         compute_hash_table, compute_kill_rd, compute_rd, compute_ae_kill,
147         classic_gcse, compute_transp, cprop, compute_pre_data,
148         compute_transpout, invalidate_nonnull_info,
149         delete_null_pointer_checks_1, delete_null_pointer_checks,
150         compute_code_hoist_vbeinout, hoist_code, compute_ld_motion_mems,
151         compute_store_table, build_store_vectors, store_motion): Likewise.
152         * global.c (global_conflicts, mark_elimination): Likewise.
153         * graph.c (print_rtl_graph_with_bb): Likewise.
154         * haifa-sched.c (sched_init): Likewise.
155         * ifcvt.c (if_convert): Likewise.
156         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
157         compute_available, compute_nearerout, compute_rev_insert_delete,
158         optimize_mode_switching): Likewise.
159         * local-alloc.c (local_alloc, update_equiv_regs): Likewise.
160         * predict.c (estimate_probability, note_prediction_to_br_prob,
161         propagate_freq, counts_to_freqs, expensive_function_p,
162         estimate_bb_frequencies): Likewise.
163         * profile.c (instrument_edges, get_exec_counts,
164         compute_branch_probabilities, compute_checksum, branch_prob,
165         find_spanning_tree): Likewise.
166         * recog.c (split_all_insns, peephole2_optimize): Likewise.
167         * reg-stack.c (reg_to_stack, convert_regs_entry, convert_regs):
168         Likewise.
169         * regclass.c (scan_one_insn, regclass): Likewise.
170         * regmove.c (mark_flags_life_zones, regmove_optimize,
171         record_stack_memrefs): Likewise.
172         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Likewise.
173         * reload1.c (reload, reload_combine, fixup_abnormal_edges): Likewise.
174         * resource.c (find_basic_block): Likewise.
175         * sched-ebb.c (schedule_ebbs): Likewise.
176         * sched-rgn.c (is_cfg_nonregular, build_control_flow,
177         find_single_block_region, find_rgns, schedule_insns)
178         * sibcall.c (optimize_sibling_and_tail_recursive_call)
179         * ssa-ccp.c (optimize_unexecutable_edges,
180         ssa_ccp_df_delete_unreachable_insns): Likewise.
181         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
182         * ssa.c (find_evaluations, compute_dominance_frontiers_1,
183         rename_block, convert_to_ssa, compute_conservative_reg_partition,
184         compute_coalesced_reg_partition, rename_equivalent_regs,
185         convert_from_ssa): Likewise.
186         * config/ia64/ia64.c (emit_predicate_relation_info, process_epilogue,
187         process_for_unwind_directive): Likewise.
188
189         * df.c (FOR_ALL_BBS): Removed.
190         * gcse.c (struct null_pointer_info): Type of current_block field
191         changed.
192         (struct reg_avail_info): Type of last_bb field changed.
193         * config/ia64/ia64.c (block_num): Removed.
194         (need_copy_state): Type changed.
195         (last_block): New.
196
197 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
198
199         * cppinit.c (mark_named_operators): Split out from init_builtins.
200         (cpp_finish_options): Call it from here instead.
201
202 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
203
204         * builtin-attrs.def: Update copyright years.
205         (ATTR_NONNULL): New attribute identifier.
206         (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_3): New
207         attribute tree lists.
208         (DEF_FORMAT_ATTRIBUTE): Chain a nonnull attribute for the
209         format operand.
210         (ATTR_FORMAT_ARG_1, ATTR_FORMAT_ARG_2): Use...
211         (DEF_FORMAT_ARG_ATTRIBUTE): ...this to generate format_arg
212         attribute lists.  Chain the appropriate nonnull attribute.
213         * c-format.c (check_format_arg): Remove null format string
214         warning.
215         * testsuite/gcc.dg/format/null-1.c: New test.
216
217 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
218
219         * Makefile.in (ADAC): Define.
220         (SYSLIBS): Define.
221         (.SUFFIXES): Move before language makefile fragments.
222         (STAGE2_FLAGS_TO_PASS): Use stage CC as ADAC.
223
224 2002-05-23  Mark Mitchell  <mark@codesourcery.com>
225
226         * varasm.c (make_decl_rtl): Don't allow weak variables to be
227         placed in common.
228
229 Thu May 23 19:43:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
230
231         * cfg.c (dump_flow_info): Print results of
232         maybe_hot/probably_never_executed predicates.
233         * toplev.c (open_dump_file): Print function frequency.
234
235 2002-05-23  David S. Miller  <davem@redhat.com>
236
237         * cse.c (approx_reg_cost_1, approx_reg_cost): Recode to not use
238         regsets.
239
240 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
241
242         * c-common.c (warn_nonnull): Declare.
243         (c_common_attribute_table): Add "nonnull" attribute.
244         (handle_nonnull_attribute, check_function_nonnull, nonnull_check_p,
245         check_nonnull_arg, get_nonnull_operand, check_function_arguments,
246         check_function_arguments_recurse): New functions.
247         * c-common.h (warn_nonnull): Declare extern.
248         (check_function_arguments, check_function_arguments_recurse): New
249         prototypes.
250         * c-decl.c (c_decode_option): Add -Wnonnull option.
251         * c-format.c (set_Wformat): Set warn_nonnull if enabling
252         format checking.
253         (format_check_context): New structure.
254         (check_format_info_recurse): Remove recursion and rename to...
255         (check_format_arg): ...this.  Update comment.
256         (check_format_info): Use check_function_arguments_recurse.
257         * c-typeck.c (build_function_call): Call check_function_arguments
258         instead of check_function_format.
259         * doc/extend.texi: Document "nonnull" attribute.
260         * doc/invoke.texi: Docuemnt -Wnonnull option.
261         * testsuite/gcc.dg/nonnull-1.c: New test.
262         * testsuite/gcc.dg/nonnull-2.c: New test.
263
264 2002-05-23  David S. Miller  <davem@redhat.com>
265
266         * basic-block.h (CLEANUP_NO_INSN_DEL): Define it.
267         * cfgcleanup.c (cleanup_cfg): If it is set do not
268         attempt to delete trivially dead insns.
269         * except.c (finish_eh_generation): Pass it to cleanup_cfg.
270         * toplev.c (rest_of_compilation): Document non-trivial aspect
271         the RTL before optimize_save_area_alloca is run.
272
273 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
274
275         * c-lex.c (indent_level): Remove.
276         (cb_file_change, c_lex): Remove indent level handling.
277         * c-lex.h (indent_level): Remove.
278         * input.h (struct file_stack): Remove indent_level.
279         * toplev.c (push_srcloc): Remove indent_level handling.
280
281 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
282
283         PR target/6753
284         * config/i386/i386.md (sse_movdfcc, sse_movdfcc_eq): Use Y instead
285         of x in constraints for clarity.
286         (sse_mov?fcc split): abort if op2 == op3.
287         (sse_movsfcc_const0_1, sse_movsfcc_const0_2, sse_movsfcc_const0_3,
288         sse_movsfcc_const0_4): Add earlyclobber.
289         (sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
290         sse_movdfcc_const0_4): Likewise.  Use DFmode, not SFmode.
291         Use Y instead of x in constraints.
292
293 2002-05-23  Richard Henderson  <rth@redhat.com>
294
295         * doc/extend.texi (C99 Thread-Local Edits): New subsection.
296         (C++98 Thread-Local Edits): New subsection.
297
298         * config/i386/i386.c, config/i386/i386.h: Tidy comments and whitespace.
299         (ix86_arch): Set type to enum processor_type.
300
301         * config/i386/i386.md (movsi_1, movdi_1_rex64): Use
302         LEGITIMATE_PIC_OPERAND_P not SYMBOLIC_CONST.
303
304 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
305
306         * configure.in: Fix as version test for binutils 2.12.1 releases
307         (without dates).
308         * configure: Rebuilt.
309
310 2002-05-23  Richard Henderson  <rth@redhat.com>
311
312         * config/i386/i386.c (get_pic_label_name): New.
313         (load_pic_register): Remove.
314         (output_set_got): New.
315         (ix86_expand_prologue): Use gen_set_got; mark insn REG_MAYBE_DEAD.
316         * config/i386/i386.md (UNSPEC_SET_GOT): New.
317         (UNSPECV_PROLOGUE_SET_GOT, UNSPECV_PROLOGUE_GET_PC): Remove.
318         (prologue_set_got, prologue_get_pc): Remove.
319         (set_got, set_got_nopic, set_got_deep, set_got_nodeep): New.
320         (builtin_setjmp_receiver): Use gen_set_got.
321         * config/i386/i386-protos.h: Update.
322
323 Thu May 23 09:22:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
324
325         * gcse.c (hash_expr): Do not use alias set for hashing.
326
327 2002-05-22  Kevin Buettner  <kevinb@redhat.com>
328
329         * dbxout.c (dbxout_class_name_qualifiers): New function.
330         (dbxout_symbol): Output class/struct qualifiers for a .stabs entry.
331
332 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
333
334         * cpperror.c (_cpp_begin_message): No special casing
335         of CPP_FATAL_LIMIT.
336         * cppinit.c (sanity_checks): s/DL_FATAL/DL_ICE/.
337         (output_deps, cpp_handle_option, cpp_post_options): Use DL_ERROR.
338         * cpplib.c (do_include_common): Use DL_ERROR.
339         * cpplib.h (CPP_FATAL_LIMIT, CPP_FATAL_ERRORS, DL_FATAL): Remove.
340         (DL_ICE): Renumber.
341         * fix-header.c (read_scan_file): Update.
342
343 2002-05-22  Richard Henderson  <rth@redhat.com>
344
345         * config/i386/i386.c (ix86_expand_call): New function, extracted
346         from md call patterns.  Add pic_offset_table_rtx to
347         CALL_INSN_FUNCTION_USAGE when needed.
348         * config/i386/i386.md (call_pop, call): Use ix86_expand_call.
349         (call_value_pop, call_value, untyped_call): Likewise.
350         (call_exp, call_value_exp): Remove.
351         * config/i386/i386-protos.h: Update.
352
353 2002-05-22  Richard Henderson  <rth@redhat.com>
354
355         * varasm.c (default_section_type_flags): Check for VAR_DECL
356         before using DECL_THREAD_LOCAL.
357
358 2002-05-22  David Edelsohn  <edelsohn@gnu.org>
359
360         * config/rs6000/aix43.h (LINK_SPEC): Add PE initializer.
361         (STARTFILE_SPEC): Delete PE crt0.o.
362         * config/rs6000/aix51.h: Same.
363         * config/rs6000/rs6000.c: Use TARGET_XCOFF, not OBJECT_FORMAT_COFF.
364         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Append [DS] to
365         function descriptor symbol.  Use RS6000_OUTPUT_BASENAME.
366         (ASM_OUTPUT_DEF_FROM_DECLS): Use RS6000_OUTPUT_BASENAME.
367         * config/rs6000/xcoff.h (ASM_OUTPUT_DEF): Define.
368
369 2002-05-22  Richard Henderson  <rth@redhat.com>
370
371         * varasm.c (default_section_type_flags): Handle tls data and
372         default sections.
373         (default_unique_section): Handle tls sections.
374
375 2002-05-23  Alan Modra  <amodra@bigpond.net.au>
376
377         * configure.in (CROSS): Define NATIVE_CROSS.
378         * configure: Regenerate.
379         * gcc.c (STARTFILE_PREFIX_SPEC): Define.
380         (startfile_prefix_spec): New var.
381         (static_specs): Add startfile_prefix_spec.
382         (do_spec_2): Split out from..
383         (do_spec): ..here.
384         (main): Process startfile_prefix_spec.
385         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC) Change name of
386         dynamic linker.
387         (STARTFILE_PREFIX_SPEC): Define.
388         (STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Rewrite without
389         absolute paths.
390
391 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
392
393         * cpperror.c: Fix formatting.
394         * cppexp.c: Likewise.
395         * cppfiles.c: Likewise.
396         * cpphash.c: Likewise.
397         * cpphash.h: Likewise.
398         * cppinit.c: Likewise.
399         * cpplex.c: Likewise.
400         * cpplib.c: Likewise.
401         * cppmacro.c: Likewise.
402         * cppmain.c: Likewise.
403         * cppspec.c: Likewise.
404
405 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
406
407         * combine.c (force_to_mode): Use gen_int_mode.
408         Don't clear CONST_INT bits outside of mode.
409
410 2002-05-22  Richard Henderson  <rth@redhat.com>
411
412         * fixinc/inclhack.def (thread_keyword): Match __thread as last arg.
413         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
414
415 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
416
417         PR c/6643
418         * emit-rtl.c (widen_memory_access): Only call compare_tree_int
419         if DECL_SIZE_UNIT is INTEGER_CST.
420
421 2002-05-22  Richard Henderson  <rth@redhat.com>
422
423         * flow.c (life_analysis): Delete broken reg_label check.
424
425 2002-05-22  Richard Henderson  <rth@redhat.com>
426
427         * fixinc/inclhack.def (thread_keyword): Allow as any prototype arg.
428         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
429
430 Wed May 22 18:39:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
431
432         * t-sh (LIB2FUNCS_EXTRA): Now embed-bb.c.
433         (embed-bb.c): New rule.
434         * t-sh64 (LIB2FUNCS_EXTRA): Don't change.
435         * config/sh/embed_bb.c: Delete.
436
437 Wed May 22 18:25:29 2002  J"orn Rennecke <joern.rennecke@superh.com>
438
439         * c-common.c (cb_register_builtins): Don't indent '#' of #define.
440
441 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
442
443         * config/h8300/h8300.md (*andorqi3): New.
444
445 2002-05-22  Neil Booth  <neil@daikokuya.demon.co.uk>
446
447         PR preprocessor/6517
448         * Makefile.in: Update.
449         * c-common.c (c_common_post_options): Add preprocessor
450         errors to the error count.
451         * c-lang.c (c_post_options): Kill.
452         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
453         * hooks.h: Add header guards.
454         * langhooks-def.h: Include hooks.h.
455         (LANG_HOOKS_POST_OPTIONS): Update.
456         * langhooks.h (struct lang_hooks): Update post_options.
457         * toplev.c (parse_options_and_default_flags): Update.
458 objc:
459         * objc-lang.c (objc_post_options): Kill.
460         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
461
462 2002-05-21  Bruce Korb  <bkorb@gnu.org>
463
464         * fixinc/tests/base/pthread.h(THREAD_KEYWORD_CHECK): add fix check
465         * fixinc/inclhack.def(thread_keyword): use c_fix = format.
466         * fixinc/fixincl.x: regen.
467
468 2002-05-21  Kazu Hirata  <kazu@cs.umass.edu>
469
470         * cfgbuild.c: Fix formatting.
471         * cfg.c: Likewise.
472         * cfgcleanup.c: Likewise.
473         * cfglayout.c: Likewise.
474         * cfgloop.c: Likewise.
475         * cfgrtl.c: Likewise.
476
477 2002-05-21  Richard Henderson  <rth@redhat.com>
478
479         * c-common.h (enum rid): Add RID_THREAD.
480         * c-decl.c (start_decl): Do not set DECL_COMMON for tls variables.
481         (grokdeclarator): Grok __thread.
482         * c-parse.in (reswords): Add __thread.
483         (rid_to_yy): Add RID_THREAD.
484
485         * tree.h (DECL_THREAD_LOCAL): New.
486         (struct tree_decl): Add thread_local_flag.
487         * print-tree.c (print_node): Dump DECL_THREAD_LOCAL.
488         * tree.c (staticp): TLS variables are not static.
489
490         * target-def.h (TARGET_HAVE_TLS): New.
491         * target.h (have_tls): New.
492         * output.h (SECTION_TLS): New.
493         * varasm.c (assemble_variable): TLS variables can't be common for now.
494         (default_section_type_flags): Handle .tdata and .tbss.
495         (default_elf_asm_named_section): Handle SECTION_TLS.
496         (categorize_decl_for_section): Handle DECL_THREAD_LOCAL.
497
498         * flags.h (flag_tls_default): Declare.
499         * toplev.c (flag_tls_default): Define.
500         (display_help): Display help for it.
501         (decode_f_option): Set it.
502
503         * doc/extend.texi (Thread-Local): New node describing language-level
504         thread-local storage.
505         * doc/invoke.texi (-ftls-model): Document.
506
507         * fixinc/inclhack.def (thread_keyword): New.
508         * fixinc/fixincl.x: Rebuild.
509
510 2002-05-21  Jeffrey A Law  <law@redhat.com>
511
512         * optabs.c (expand_binop): For double-word integer multiplies,
513         do not compute intermediate results into something that is
514         not a register (such as a SUBREG or MEM).
515
516         * i386.c (ix86_sched_reorder_ppro): Fix typo/thinko.
517         (ix86_sched_reorder): Make sure to initialize scheduling
518         data even when there's only one insn in the ready queue.
519
520 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
521
522         * genautomata.c (reserv_sets_hash_value): Fix a typo.
523
524 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
525
526         * genautomata.c (reserv_sets_hash_value): Define hash_value as
527         set_el_t.  Transform the hash value into unsigned.
528         (output_cycle_reservs): Fix bug with output of repeated `nothing'.
529         (transform_3): Add code to process `(A,B)+(D,E)'.
530
531 2002-05-21  NIIBE Yutaka  <gniibe@m17n.org>
532
533         * reload1.c (do_output_reload): Run delete_output_reload
534         only if optimizing.
535
536 2002-05-21  Roger Sayle  <roger@eyesopen.com>
537
538         PR middle-end/6600
539         * expr.c (STORE_MAX_PIECES): New macro to avoid immediate constants
540         larger than INTEGER_CST.  (store_by_pieces_1): Use it here...
541         (can_store_by_pieces): ... and here to limit the largest mode used.
542         Add a comment to document this function.
543
544 2002-05-21  Richard Henderson  <rth@redhat.com>
545
546         * flow.c (life_analysis): Fix test for deleted label.
547
548 2002-05-21  Neil Booth  <neil@daikokuya.demon.co.uk>
549
550         * doc/tm.texi: Fix typo.
551
552 2002-05-21  Zack Weinberg  <zack@codesourcery.com>
553
554         * c-common.c (c_common_init): Set options->unsigned_char from
555         flag_signed_char.
556         (cb_register_builtins): Define __STRICT_ANSI__ and
557         __CHAR_UNSIGNED__ here...
558         * cppinit.c (init_builtins): Not here.
559         (cpp_create_reader): unsigned_char option defaults to 0, not
560         !DEFAULT_SIGNED_CHAR.
561         (COMMAND_LINE_OPTIONS, cpp_handle_option): Lose -fsigned-char
562         and -funsigned-char.
563
564         * cpphash.h (struct spec_nodes): Kill n__STRICT_ANSI__.
565         * cpphash.c (_cpp_init_hashtable): Don't set it.
566         * cppmacro.c (builtin_macro) [BT_STDC]: Use the language setting
567         directly.  Clarify comment.
568
569 2002-05-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
570
571         * bb-reorder.c (make_reorder_chain_1): Use prev_bb/next_bb to get to
572         neighbouring basic blocks.  Use ENTRY_BLOCK_PTR->next_bb instead of
573         BASIC_BLOCK (0).  Use EXIT_BLOCK_PTR->prev_bb instead of
574         BASIC_BLOCK (n_basic_blocks - 1).
575         * cfganal.c (can_fallthru, flow_call_edges_add,
576         flow_preorder_transversal_compute): Too.
577         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
578         find_sub_basic_blocks): Too.
579         * cfgcleanup.c (try_simplify_condjump, try_optimize_cfg): Too.
580         * cfglayout.c (skip_insns_after_block, fixup_reorder_chain,
581         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge): Too.
582         * cfgrtl.c (tidy_fallthru_edges, verify_flow_info): Too.
583         * combine.c (this_basic_block): Type changed to basic_block.
584         (combine_instructions, set_nonzero_bits_and_sign_copies, try_combine,
585         nonzero_bits, num_sign_bit_copies, get_last_value_validate,
586         get_last_value, distribute_notes, distribute_links): Too.
587         * final.c (compute_alignments): Too.
588         * flow.c (regno_uninitialized, regno_clobbered_at_setjmp): Too.
589         * function.c (thread_prologue_and_epilogue_insns): Too.
590         * gcse.c (compute_code_hoist_vbeinout): Too.
591         * global.c (build_insn_chain): Too.
592         * ifcvt.c (find_if_block, find_cond_trap): Too.
593         * predict.c (last_basic_block_p, note_prediction_to_br_prob): Too.
594         * regmove.c (regmove_optimize): Too.
595         * resource.c (find_basic_block): Too.
596         * sched-ebb.c (schedule_ebbs): Too.
597         * ssa-dce.c (find_control_dependence, find_pdom): Too.
598
599 2002-05-21  Andreas Jaeger  <aj@suse.de>
600
601         * cppinit.c (sanity_checks): Avoid printf mismatch warnings.
602
603 2002-05-21  Richard Henderson  <rth@redhat.com>
604
605         * reg-stack.c (swap_rtx_condition, subst_stack_regs_pat): Use
606         unspec names, not numbers.
607
608 2002-05-21  Joseph S. Myers  <jsm28@cam.ac.uk>
609
610         * doc/sourcebuild.texi: Mention snapshot-README and
611         snapshot-index.html as needing updating for new front ends.
612
613 2002-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
614
615         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Avoid warnings when
616         disabling checking, and avoid multiple evaluation of RTX.
617
618 2002-05-21  Richard Earnshaw  <rearnsha@arm.com>
619
620         * bitmap.c (bitmap_find_bit): Return early if we have the correct
621         element cached.
622
623 Tue May 21 10:51:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
624
625         * profile.c (gen_edge_profiler):  Set alias set before the memory is
626         used.
627
628 2002-05-20  David S. Miller  <davem@redhat.com>
629
630         * cselib.c (max_value_regs): New.
631         (cselib_lookup, cselib_invalidate_regno): Initialize it when
632         adding new entries to the REG_VALUES table and we are dealing with
633         a hard register.
634         (clear_table): Initialize it.
635         (cselib_invalidate_regno): Use it to determine which hard
636         registers to scan when mode is not VOIDmode.
637
638 2002-05-20  Duraid Madina   <duraid@fl.net.au>
639
640         * tradcpp.c (fixup_newlines): Use old-style function header.
641
642 2002-05-20  Krister Walfridsson  <cato@df.lth.se>
643
644         * reload1.c (reload_cse_simplify): Fix typo in rtx code check.
645
646 2002-05-20  H.J. Lu  (hjl@gnu.org)
647
648         Base on suggestions from Zhang Fuxin <fxzhang@ict.ac.cn>:
649
650         * config/mips/mips.h (DFMODE_NAN): Defined.
651         (SFMODE_NAN): Likewise.
652
653 2002-05-20  Dale Johannesen  <dalej@apple.com>
654
655         * combine.c (cant_combine_insn_p):  Back out my
656         previous patch.
657
658 2002-05-20  Kazu Hirata  <kazu@cs.umass.edu>
659
660         * params.c: Fix formatting.
661         * params.h: Likewise.
662         * predict.c: Likewise.
663         * prefix.c: Likewise.
664         * print-rtl.c: Likewise.
665         * print-tree.c: Likewise.
666         * profile.c: Likewise.
667
668 2002-05-20  H.J. Lu  (hjl@gnu.org)
669
670         * gcc/config/mips/linux.h (SDB_DEBUGGING_INFO): Undefine.
671
672 2002-05-20  Nick Clifton  <nickc@cambridge.redhat.com>
673
674         * config/arm/arm-wince-pe.h (ASM_SPEC): Pass -mcpu and -march
675         switches straight on to the assembler, do not abbreviate them.
676         * config/arm/elf.h (ASM_SPEC): As above.
677         * config/arm/semi.h (ASM_SPEC): As above.
678         * config/arm/unknown-elf-oabi.h (ASM_SPEC): As above.
679         * config/arm/xscale-coff.h (SUBTARGET_ASM_SPEC): Pass
680         -mcpu=xscale on to the assembler by default.
681         * config/arm/xscale-elf.h (SUBTARGET_ASM_SPEC): As above.
682
683 2002-05-20  Richard Henderson  <rth@redhat.com>
684
685         * cse.c (canon_hash): Reorder do_not_record test.  Always
686         allow pic_offset_table_rtx.
687
688 2002-05-19  Toon Moene  <toon@moene.indiv.nluug.nl>
689
690         * optabs.c (expand_cmplxdiv_wide): Use complex_part_zero_p.
691         (expand_binop): Ditto (3 times).
692
693 2002-05-19  Mark Mitchell  <mitchell@doubledemon.codesourcery.com>
694
695         * Makefile.in (distclean): Remove QMTest stuff.
696         (QMTEST_PATH): New variable.
697         (QMTESTFLAGS): Likewise.
698         (QMTESTRUNFLAGS): Likewise.
699         (QMTEST): Likewise.
700         (QMTEST_GPP_TESTS): Likewise.
701         (QMTEST_DIR): Likewise.
702         (QMTEST_DIR/context): New target.
703         (qmtest-g++): Likeise.
704         (qmtest-gui): Likewise.
705         (QMTEST_DIR/gpp-expected.qmr): Likewise.
706
707 2002-05-19  Aldy Hernandez  <aldyh@redhat.com>
708
709         * config/rs6000/rs6000.h (FUNCTION_VALUE): Only return vectors in
710         an altivec register if TARGET_ALTIVEC.
711
712         * config/rs600/rs6000.c (rs6000_emit_move): Change VECTOR_MODE_P
713         to ALTIVEC_VECTOR_MODE.
714         (rs6000_va_arg): Only vectors of type AltiVec are 16 byte aligned.
715         (rs6000_va_arg): Vectors may go in registers if they are not
716         altivec vectors.
717
718 2002-05-19  Kazu Hirata  <kazu@cs.umass.edu>
719
720         * protoize.c: Fix formatting.
721
722 2002-05-19  Richard Henderson  <rth@redhat.com>
723
724         * gensupport.c (init_include_reader): Merge into ...
725         (process_include): ... here.  Simplify composite path creation.
726         Plug memory leaks.  Fix file/line number tracking.  Do not
727         process_define_cond_exec.  Return void.
728         (process_rtx): Don't check process_include return value.
729
730 2002-05-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
731
732         * basic_block.h (struct basic_block_def): Added prev_bb and next_bb
733         fields.
734         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
735         traversing basic block chain.
736         (create_basic_block_structure, create_basic_block): Declaration changed.
737         (link_block, unlink_block): Declare.
738         * cfg.c (entry_exit_blocks): Initialize new fields.
739         (link_block, unlink_block): New.
740         (expunge_block_nocompact): Unlink basic block.
741         (dump_flow_info): Print prev_bb/next_bb fields.
742         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Modified.
743         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Modified.
744         * cfglayout.c (fixup_reorder_chain, cfg_layout_duplicate_bb): Modified.
745         * cfgrtl.c (create_basic_block_structure, create_basic_block,
746         split_block, force_nonfallthru_and_redirect, split_edge): Modified.
747         (verify_flow_info): Check that list agrees with numbering.
748
749 2002-05-19  Neil Booth  <neil@daikokuya.demon.co.uk>
750
751         * c-common.c (preprocessing_asm): New macro.
752         * c-lex.h (builtin_define, builtin_assert): Use pfile.
753 doc:
754         * tm.texi: Update.
755 config/alpha:
756         * alpha.h (CPLUSPLUS_CPP_SPEC): Remove.
757         (CPP_SPEC): Simplify.
758         (TARGET_CPU_CPP_BUILTINS): Update.
759         * freebsd.h (TARGET_OS_CPP_BUILTINS): New.
760         (CPP_SPEC): Simplify.
761         * linux.h (CPLUSPLUS_CPP_SPEC): Remove.
762         (TARGET_OS_CPP_BUILTINS): Update.
763         * osf.h (CPP_XFLOAT_SPEC): Kill.
764         (TARGET_OS_CPP_BUILTINS): Update.
765         (CPP_SUBTARGET_SPEC, SUBTARGET_EXTRA_SPECS): Simplify.
766         * osf5.h (CPP_XFLOAT_SPEC): Kill.
767         * vms.h (CPP_SUBTARGET_SPEC): Kill.
768         (TARGET_OS_CPP_BUILTINS): Update.
769
770 2002-05-19  Richard Henderson  <rth@redhat.com>
771
772         * varasm.c (default_binds_local_p): Fix typo.
773
774 2002-05-19  Marek Michalkiewicz  <marekm@amelek.gda.pl>
775
776         * config/avr/avr.c (machine_dependent_reorg): Sign extend the
777         CONST_INT operand to the correct mode after adding 1 to it.
778
779 2002-05-19  Mark Mitchell  <mark@codesourcery.com>
780
781         * config.gcc (powerpc-wrs-windiss*): New target.
782
783 2002-05-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
784
785         * config/rs6000/rs6000.md (ashrdi3_no_power): New.
786         (ashrdi3): Use it.
787
788 2002-05-18  Mark Mitchell  <mark@codesourcery.com>
789
790         * configure.in (AC_CHECK_FUNCS): Add checks for scandir and
791         alphasort.
792         * config.in: Regenerated.
793         * configure: Regenerated.
794
795 2002-05-19  Richard Henderson  <rth@redhat.com>
796
797         * target-def.h (TARGET_BINDS_LOCAL_P): New.
798         * target.h (struct gcc_target): Move boolean fields to the end.
799         Add binds_local_p.
800         * varasm.c (default_binds_local_p): New.
801         * output.h: Declare it.
802
803         * config/alpha/alpha.c (alpha_encode_section_info): Use the new hook.
804         * config/cris/cris.c (cris_encode_section_info): Likewise.
805         * config/i386/i386.c (i386_encode_section_info): Likewise.
806         * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
807         * config/sh/sh.c (sh_encode_section_info): Likewise.
808
809         * doc/tm.texi (TARGET_IN_SMALL_DATA_P): New.
810         (TARGET_BINDS_LOCAL_P): New.
811
812 2002-05-19  Richard Henderson  <rth@redhat.com>
813
814         * system.h (BLOCK_PROFILER, BLOCK_PROFILER_CODE,
815         FUNCTION_BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT,
816         MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Poison.
817
818         * toplev.c (display_help): Kill -a -ax help.
819
820         * config/1750a/1750a.h, config/alpha/alpha.h,
821         config/clipper/clipper.h, config/dsp16xx/dsp16xx.h,
822         config/h8300/h8300.h, config/i960/i960.h, config/m68k/tower-as.h,
823         config/m88k/m88k.h, config/vax/vax.h, config/we32k/we32k.h:
824         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Kill.
825
826         * libgcc2.c [L_bb] (BLOCK_PROFILER_CODE): Kill.
827         * config/m68k/sun3.h (BLOCK_PROFILER_CODE): Kill.
828
829         * config/i386/i386-protos.h (ix86_output_block_profiler): Kill.
830         (ix86_output_function_block_profiler): Kill.
831         * config/m68hc11/m68hc11.c (m68hc11_block_profiler): Kill.
832         (m68hc11_function_block_profiler): Kill.
833         * config/m68hc11/m68hc11-protos.h: Update.
834         * config/m88k/m88k.c (output_block_profiler): Kill.
835         (output_function_block_profiler): Kill.
836         * config/m88k/m88k-protos.h: Update.
837
838 2002-05-19  Richard Henderson  <rth@redhat.com>
839
840         * system.h (STRIP_NAME_ENCODING): Poison it.
841         * output.h (STRIP_NAME_ENCODING): Remove.
842         (default_strip_name_encoding): Declare.
843         * target-def.h (TARGET_STRIP_NAME_ENCODING): New.
844         * target.h (strip_name_encoding): New.
845         * varasm.c (default_strip_name_encoding): New.
846
847         * dwarf2asm.c, varasm.c, config/darwin.c, config/darwin.h,
848         config/alpha/alpha.c, config/arm/pe.c, config/avr/avr.c,
849         config/cris/cris.c, config/i386/cygwin.h, config/i386/interix.c,
850         config/i386/winnt.c, config/m32r/m32r.h, config/mcore/mcore-elf.h,
851         config/mcore/mcore-pe.h, config/mcore/mcore.c, config/mcore/mcore.h,
852         config/mips/mips.c, config/mn10200/mn10200.h, config/mn10300/mn10300.h,
853         config/pa/pa.c, config/pa/pa.h, config/pa/som.h,
854         config/rs6000/rs6000.c, config/rs6000/sysv4.h, config/rs6000/xcoff.h,
855         config/v850/v850.h: Use the hook, not the macro.
856
857         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
858         config/alpha/alpha.c, config/alpha/alpha.h, config/h8300/h8300.c,
859         config/h8300/h8300.h, config/i386/cygwin.h, config/i386/i386-interix.h,
860         config/i386/i386-protos.h, config/i386/win32.h, config/i386/winnt.c,
861         config/ia64/ia64.c, config/ia64/ia64.h, config/m32r/m32r.c,
862         config/m32r/m32r.h, config/mcore/mcore.c, config/mcore/mcore.h,
863         config/pa/pa.c, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
864         config/rs6000/xcoff.h, config/sh/sh.c, config/sh/sh.h,
865         config/v850/v850.c, config/v850/v850.h:
866         Move STRIP_NAME_ENCODING to out-of-line function and add
867         TARGET_STRIP_NAME_ENCODING.
868
869         * config/arm/arm.c, config/arm/arm.h, config/mmix/mmix-protos.h,
870         config/mmix/mmix.c, config/mmix/mmix.h: Replace STRIP_NAME_ENCODING
871         with TARGET_STRIP_NAME_ENCODING referencing existing function;
872         make function static.
873
874         * xcoffout.c: Include target.h
875         * Makefile.in (xcoffout.o): Update.
876
877         * config/avr/avr.c (avr_encode_section_info): Correct prototype.
878         * config/avr/avr.h (STRIP_NAME_ENCODING): Remove.
879         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Mark
880         reloc argument unused.
881         * config/sh/sh.c (TARGET_ENCODE_SECTION_INFO): New.
882
883         * doc/tm.texi (TARGET_STRIP_NAME_ENCODING): Update from previous
884         STRIP_NAME_ENCODING docs.
885
886 2002-05-19  Andreas Jaeger  <aj@suse.de>
887
888         * gengenrtl.c: Add prototype for excluded_rtx.
889
890         * real.h: Add prototype for exact_real_truncate.
891
892 2002-05-18  Richard Henderson  <rth@redhat.com>
893
894         * system.h (ENCODE_SECTION_INFO): Poison it.
895         * target-def.h (TARGET_ENCODE_SECTION_INFO): New.
896         * target.h (encode_section_info): New.
897         * varasm.c (make_decl_rtl, output_constant_def): Use it.
898         * hooks.c (hook_tree_int_void): New.
899         * hooks.h: Declare it.
900
901         * config/darwin.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
902         config/alpha/alpha.h, config/arm/pe.h, config/avr/avr-protos.h,
903         config/avr/avr.c, config/avr/avr.h, config/c4x/c4x-protos.h,
904         config/c4x/c4x.c, config/c4x/c4x.h, config/cris/cris-protos.h,
905         config/cris/cris.c, config/cris/cris.h, config/i386/cygwin.h,
906         config/i386/win32.h, config/ia64/ia64-protos.h, config/ia64/ia64.c,
907         config/ia64/ia64.h, config/m32r/m32r-protos.h, config/m32r/m32r.c,
908         config/m32r/m32r.h, config/m68hc11/m68hc11-protos.h,
909         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
910         config/mcore/mcore-protos.h, config/mcore/mcore.c,
911         config/mcore/mcore.h, config/mmix/mmix-protos.h, config/mmix/mmix.c,
912         config/mmix/mmix.h, config/rs6000/rs6000-protos.h,
913         config/rs6000/sysv4.h, config/stormy16/stormy16-protos.h,
914         config/stormy16/stormy16.c, config/stormy16/stormy16.h:
915         Replace ENCODE_SECTION_INFO with TARGET_ENCODE_SECTION_INFO
916         referencing existing function.  Make function static.
917
918         * config/a29k/a29k.c, config/a29k/a29k.h, config/arc/arc.c,
919         config/arc/arc.h, config/arm/arm.c, config/arm/arm.h,
920         config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
921         config/i370/i370.h, config/i386/i386-interix.h, config/i386/i386.c,
922         config/i386/i386.h, config/i386/interix.c, config/m88k/m88k.c,
923         config/m88k/m88k.h, config/mips/mips.c, config/mips/mips.h,
924         config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa.c,
925         config/pa/pa.h, config/romp/romp.c, config/romp/romp.h,
926         config/rs6000/linux64.h, config/rs6000/xcoff.h, config/s390/s390.c,
927         config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
928         config/sparc/sparc.c, config/sparc/sparc.h, config/v850/v850.c,
929         config/v850/v850.h, config/vax/vax.c, config/vax/vms.h,
930         config/xtensa/xtensa.c, config/xtensa/xtensa.h:
931         Move ENCODE_SECTION_INFO to out-of-line function and add
932         TARGET_ENCODE_SECTION_INFO.
933
934         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use hook, not macro.
935         (ASM_DECLARE_OBJECT_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
936
937         * config/arm/pe.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Rename
938         from SUBTARGET_*
939         (switch_to_section): Replace in_rdata case with in_readonly_data.
940
941         * config/h8300/h8300.c (h8300_encode_label): Make static.
942         * config/h8300/h8300-protos.h: Update.
943
944         * config/rs6000/rs6000.c (rs6000_elf_encode_section_info): Rename
945         from rs6000_encode_section_info; make static.
946         (rs6000_xcoff_encode_section_info): New.
947
948         * config/v850/v850.c (v850_encode_data_area): Make static.
949         * config/v850/v850-protos.h: Update.
950
951         * config/vax/vax.c: Include flags.h.
952         (vms_select_section): Fix typo.
953
954         * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update from previous
955         ENCODE_SECTION_INFO docs.
956
957 2002-05-18  Richard Henderson  <rth@redhat.com>
958
959         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Rename from
960         REGISTER_TARGET_PRAGMAS.
961         * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Redefine.
962
963         * config.gcc: Do not use rs6000-c.c on powerpc-darwin.
964
965 2002-05-18  Richard Henderson  <rth@redhat.com>
966
967         * system.h (SELECT_RTX_SECTION): Poison.
968         * target-def.h (TARGET_ASM_SELECT_RTX_SECTION): New.
969         * target.h (select_rtx_section): New.
970         * varasm.c (output_constant_pool): Use it.
971         (default_select_rtx_section, default_elf_select_rtx_section): New.
972         * output.h: Declare them.
973
974         * config/darwin.h (SELECT_RTX_SECTION): Move ...
975         * config/darwin.c (machopic_select_rtx_section): ... here.
976         * config/darwin-protos.h: Update.
977
978         * config/nextstep.h (SELECT_RTX_SECTION): Move ...
979         * config/nextstep.c (machopic_select_rtx_section): ... here.
980         (nextstep_select_section): Rename variable to avoid macro clash.
981         * config/nextstep-protos.h: Update.
982
983         * config/elfos.h, config/svr3.h, config/arm/aof.h, config/c4x/c4x.h,
984         config/i386/dgux.h, config/i386/osfrose.h, config/i386/sco5.h,
985         config/i386/svr3gas.h, config/i860/paragon.h, config/ia64/aix.h,
986         config/m32r/m32r.h, config/m68k/dpx2.h, config/m68k/lynx.h,
987         config/m68k/m68k.h, config/m68k/tower-as.h, config/m88k/dgux.h,
988         config/mcore/mcore-pe.h, config/mips/mips.h, config/mmix/mmix.h,
989         config/pa/pa-linux.h, config/pa/pa.h, config/romp/romp.h,
990         config/rs6000/lynx.h, config/rs6000/sysv4.h, config/s390/linux.h,
991         config/sparc/sysv4.h, config/xtensa/elf.h, config/xtensa/linux.h
992         (SELECT_RTX_SECTION): Remove.
993
994         * config/darwin.h, config/elfos.h, config/nextstep.h,
995         config/ia64/aix.h, config/ia64/sysv4.h, config/alpha/alpha.c,
996         config/mips/mips.c, config/romp/romp.c, config/rs6000/sysv4.h,
997         config/rs6000/xcoff.h, config/s390/s390.c, config/sparc/aout.h,
998         config/sparc/lynx.h, config/xtensa/xtensa.c
999         (TARGET_ASM_SELECT_RTX_SECTION): New.
1000
1001         * config/alpha/elf.h (SELECT_RTX_SECTION): Move ...
1002         * config/alpha/alpha.c (alpha_elf_select_rtx_section): ... here.
1003         * config/ia64/sysv4.h (SELECT_RTX_SECTION): Move ...
1004         * config/ia64/ia64.c (ia64_select_rtx_section): ... here.
1005         (ia64_aix_select_rtx_section): New.
1006         * config/mips/iris6.h (READONLY_DATA_SECTION_ASM_OP): Undef before
1007         redefining.
1008         * config/mips/mips.c (mips_select_rtx_section): Make static.
1009         Support ELF SHF_MERGE features.
1010         * config/mips/mips-protos.h: Update.
1011         * config/rs6000/xcoff.h (SELECT_RTX_SECTION): Move ...
1012         * config/rs6000/rs6000.c (rs6000_xcoff_select_rtx_section): ... here.
1013         (rs6000_elf_select_rtx_section): Rename from rs6000_select_rtx_section;
1014         make static, fall back to default_elf_select_rtx_section.
1015         * config/rs6000/rs6000-protos.h: Update.
1016         * config/sparc/sparc.h (SELECT_RTX_SECTION): Move ...
1017         * config/sparc/sparc.c (sparc_aout_select_rtx_section): ... here.
1018         * config/sparc/sunos4.h (on_exit): Declare only if IN_LIBGCC2.
1019         * config/romp/romp.c (romp_select_rtx_section): New.
1020         * config/s390/s390.c (s390_select_rtx_section): New.
1021         * config/xtensa/xtensa.c: Include output.h.  Shuffle local function
1022         declarations before target macro definition.
1023         (xtensa_emit_call): Use static buffer.
1024         (xtensa_select_rtx_section): New.
1025         * config/xtensa/xtensa.h (MAX_INT_TYPE_SIZE): Remove.
1026         (IMPLICIT_FIX_EXPR, EASY_DIV_EXPR): Remove.
1027         (ASM_OUTPUT_POOL_PROLOGUE): Update call to resolve_unique_section.
1028
1029         * doc/tm.texi (TARGET_ASM_SELECT_RTX_SECTION): Update from
1030         SELECT_RTX_SECTION docs.
1031
1032 Sun May 19 00:24:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
1033
1034         * i386.md (movsi/movdi): Fix template.
1035         (sse2 patterns): Set attributes consistently.
1036
1037         * i386.md (pushqi2, ashrqi_*): Fix constraint.
1038
1039 2002-05-18  Toon Moene  <toon@moene.indiv.nluug.nl>
1040
1041         * optabs.c (complex_part_zero_p): New.
1042         * (expand_cmplxdiv_straight): Use it.
1043         * (expand_cmplxdiv_wide): Ditto.
1044         * (expand_binop): Ditto.
1045
1046 2002-05-18  Richard Henderson  <rth@redhat.com>
1047
1048         * final.c (HAVE_READONLY_DATA_SECTION): New.
1049         (shorten_branches): Use it instead of ifdefs.
1050         * varasm.c (enum in_section): Add in_readonly_data.
1051         (text_section, data_section): Tidy.
1052         (readonly_data_section): Use READONLY_DATA_SECTION_ASM_OP if present.
1053
1054         * config/darwin.h, config/nextstep.h, config/h8300/elf.h,
1055         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h
1056         (READONLY_DATA_SECTION): Don't undef.
1057
1058         * config/alpha/unicosmk.h, config/h8300/elf.h, config/i386/aix386ng.h,
1059         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h,
1060         config/rs6000/lynx.h (READONLY_DATA_SECTION_ASM_OP): Undef.
1061
1062         * config/elfos.h, config/svr3.h, config/alpha/alpha-interix.h,
1063         config/alpha/elf.h, config/c4x/c4x.h, config/i386/i386-interix.h,
1064         config/i386/sco5.h, config/i386/svr3gas.h, config/i860/sysv3.h,
1065         config/m88k/m88k.h, config/pa/pa64-hpux.h (USE_CONST_SECTION): Remove.
1066
1067         * config/elfos.h, config/netware.h, config/alpha/alpha-interix.h,
1068         config/alpha/elf.h, config/alpha/vms.h, config/arc/arc.h,
1069         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
1070         config/i386/dgux.h, config/i386/i386-interix.h, config/i386/sco5.h,
1071         config/ia64/hpux.h, config/m32r/m32r.h, config/m68k/tower-as.h,
1072         config/m88k/m88k.h, config/mcore/mcore-pe.h, config/mips/iris6.h,
1073         config/mips/mips.h, config/mmix/mmix.h, config/pa/pa64-hpux.h,
1074         config/sparc/sysv4.h (READONLY_DATA_SECTION_ASM_OP): Rename from
1075         CONST_SECTION_ASM_OP/READONLY_SECTION_ASM_OP/RDATA_SECTION_ASM_OP.
1076
1077         * config/elfos.h, config/netware.h, config/1750a/1750a.h,
1078         config/a29k/a29k.h, config/alpha/alpha-interix.h, config/alpha/alpha.h,
1079         config/arm/coff.h, config/h8300/h8300.h, config/i386/aix386ng.h,
1080         config/i386/i386-interix.h, config/i386/osfrose.h, config/mmix/mmix.h,
1081         config/pa/pa64-hpux.h, config/sparc/litecoff.h
1082         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.
1083
1084         * config/elfos.h, config/netware.h, config/svr3.h,
1085         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
1086         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
1087         config/h8300/h8300.h, config/i386/i386-interix.h,
1088         config/i386/osfrose.h, config/i386/svr3gas.h, config/mmix/mmix.h,
1089         config/pa/pa64-hpux.h (READONLY_DATA_SECTION): Remove.
1090
1091         * config/elfos.h, config/netware.h, config/svr3.h,
1092         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
1093         config/c4x/c4x.h, config/i386/aix386ng.h, config/i386/i386-interix.h,
1094         config/i386/sco5.h, config/i386/svr3gas.h, config/mmix/mmix.h,
1095         config/pa/pa64-hpux.h (CONST_SECTION_FUNCTION): Remove.
1096
1097         * config/lynx.h, config/svr3.h, config/alpha/elf.h, config/alpha/vms.h,
1098         config/c4x/c4x.h, config/dsp16xx/dsp16xx.h, config/i386/sco5.h,
1099         config/i386/svr3gas.h, config/i860/sysv3.h, config/i860/sysv4.h,
1100         config/ia64/sysv4.h, config/m32r/m32r.h, config/m88k/m88k.h,
1101         config/mcore/mcore-elf.h, config/mcore/mcore-pe.h, config/mips/elf.h,
1102         config/mips/elf64.h, config/mips/iris6.h, config/mips/linux.h,
1103         config/mips/mips.h, config/mips/rtems64.h, config/mips/vxworks.h,
1104         config/rs6000/sysv4.h, config/v850/v850.h
1105         (EXTRA_SECTIONS): Remove in_const/in_rdata.
1106         (EXTRA_SECTION_FUNCTIONS): Remove accompanying function.
1107
1108         * config/svr3.h, config/c4x/c4x.h, config/i386/dgux.h,
1109         config/i386/sco5.h, config/i386/svr3gas.h, config/ia64/aix.h,
1110         config/m88k/dgux.h, config/mcore/mcore-pe.h, config/mmix/mmix.h,
1111         config/sparc/sysv4.h (SELECT_RTX_SECTION): Use readonly_data_section.
1112         * config/alpha/alpha.c (alpha_start_function): Likewise.
1113         (alpha_write_linkage): Likewise.
1114         * config/m32r/m32r.c (m32r_select_section): Likewise.
1115         * config/m88k/m88k.c (m88k_select_section): Likewise.
1116         * config/mips/mips.c (mips_select_rtx_section): Likewise.
1117         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Likewise.
1118         (rs6000_elf_select_section): Likewise.
1119         * config/v850/v850.c (v850_select_section): Likewise.
1120
1121         * config/1750a/1750a.h, config/i860/sysv3.h
1122         (READONLY_DATA_SECTION_ASM_OP): New.
1123         READONLY_DATA_SECTION_ASM_OP.
1124         * config/i386/interix.c, config/i386/winnt.c
1125         (i386_pe_unique_section): Always use .rdata prefix.
1126         * config/pa/som.h (readonly_data): Always switch to read-only section.
1127         (READONLY_DATA_SECTION): Predicate on flag_pic.
1128         * config/we32k/we32k.h (READONLY_DATA_SECTION): Remove parenthesis.
1129         * doc/tm.texi (READONLY_DATA_SECTION_ASM_OP): New.
1130         (READONLY_DATA_SECTION): Update.
1131
1132 2002-05-18  Jason Thorpe  <thorpej@wasabisystems.com>
1133
1134         * c-common.c (c_common_post_options): Warn if -Wformat-zero-length
1135         is used without -Wformat.
1136         * c-common.h (warn_format_zero_length): Declare extern.
1137         * c-decl.c (warn_options): Add "format-zero-length".
1138         * c-format.c (warn_format_zero_length): Declare.
1139         (set_Wformat): Set warn_format_zero_length for -Wformat.
1140         (check_format_info): Only warn about zero-length formats if
1141         warn_format_zero_length is true.  Include the format type
1142         name in the warning message.
1143         * doc/invoke.texi: Document -Wformat-zero-length.
1144         * testsuite/gcc.dg/format/zero-length-1.c: New test.
1145
1146 2002-05-18  Kazu Hirata  <kazu@cs.umass.edu>
1147
1148         * timevar.c: Fix formatting.
1149         * tlink.c: Likewise.
1150         * toplev.c: Likewise.
1151         * tree-dump.c: Likewise.
1152         * tree-inline.c: Likewise.
1153
1154 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
1155
1156         * cppinit.c (cpp_post_options): If preprocessed, turn off
1157         traditional.  If traditional, turn off column numbers.
1158         * cpplib.c (cpp_push_buffer): Lex from stage 3 if traditional.
1159         * cpptrad.c (handle_newline): Update line_base.
1160         (skip_comment): Handle -Wcomment.
1161
1162 2002-05-17  Zack Weinberg  <zack@codesourcery.com>
1163
1164         * cppinit.c (struct builtin): Remove unused fields.
1165         (CPLUS, BUILTIN, OPERATOR, O, builtin_array_end): Kill.
1166         (operator_array): New - was second half of builtin_array.
1167         (init_builtins): Simplify loop over builtin_array/operator_array.
1168
1169 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
1170
1171         * defaults.h (UNIQUE_SECTION): Remove.
1172         * system.h (UNIQUE_SECTION, SELECT_SECTION): Poison.
1173
1174 2002-05-17  Richard Henderson  <rth@redhat.com>
1175
1176         * expr.c (init_expr_once): Don't use start/end_sequence.
1177         Use rtx_alloc instead of emit_insn.
1178         * toplev.c (lang_dependent_init): Run init_expr_once here ...
1179         (lang_independent_init): ... not here.
1180
1181 2002-05-17  Jason Thorpe  <thorpej@wasabisystems.com>
1182
1183         * config/sh/lib1funcs.asm (GLOBAL): Use __USER_LABEL_PREFIX__.
1184
1185 2002-05-17  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1186
1187         * config/avr/avr.c (avr_regs_to_save): New function.  Also check
1188         for fixed registers, possibly used for global register variables.
1189         (initial_elimination_offset, avr_output_function_prologue,
1190         avr_output_function_epilogue):  Move common code to avr_regs_to_save.
1191
1192 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
1193
1194         * Makefile.in: Update for cpptrad.c.
1195         * cpphash.h (struct cpp_buffer): New members for buffer
1196         overlays.
1197         (struct cpp_reader): New members for traditional output.
1198         (_cpp_read_logical_line, _cpp_overlay_buffer): New.
1199         * cppinit.c (cpp_create_reader): Set trad_line.
1200         (cpp_destroy): Free trad_out_base if used.
1201         (cpp_read_main_file): Overlay an empty buffer if traditional.
1202         (cpp_finish_options): Don't do builtins.
1203         (COMMAND_LINE_OPTIONS): Add -traditional-cpp.
1204         (cpp_handle_option): Handle it.
1205         * cpplex.c (continue_after_nul): New.
1206         (_cpp_lex_direct): Use handle_nul.
1207         * cpplib.h (struct cpp_options): New traditional option.
1208         * cpptrad.c: New file.
1209
1210 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
1211
1212         * c-common.c (c_common_init_options): Use C89 for Objective-C,
1213         and set the options flag.
1214         * cppinit.c (lang_flags): Remove objc.
1215         (lang_defaults): Remove OBJC and OBJCXX.
1216         (set_lang): Update.
1217         (COMMAND_LINE_OPTIONS): Remove -+ and -lang-objc++.
1218         (cpp_handle_option): Remove -+ and -lang-objc++.
1219         For ObjC, just set a flag.
1220         (print_help): Update.
1221         * cpplib.h (enum c_lang): Remove CLK_OBJC and CLK_OBJCXX.
1222
1223 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1224
1225         * doc/install.texi (Specific, mips-sgi-irix6): Document need to
1226         bootstrap with -mips3.
1227
1228 2002-05-17  Kazu Hirata  <kazu@cs.umass.edu>
1229
1230         * final.c: Fix formatting.
1231         * fix-header.c: Likewise.
1232         * flow.c: Likewise.
1233         * fold-const.c: Likewise.
1234         * function.c: Likewise.
1235
1236 2002-05-17  David S. Miller  <davem@redhat.com>
1237
1238         PR c/6689, PR optimization/6615
1239         * local-alloc.c (struct equivalence): Rename 'src' to 'src_p'
1240         and make it a pointer to rtx.  Update comments.
1241         (update_equiv_regs): When scanning for equivalences, record
1242         address of SET_SRC (set) in reg_equiv[].src_p.  Dereference
1243         it while making the equiv replacements.
1244
1245 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1246
1247         * config/sparc/sparc.c (sparc_aout_select_section): Fixed typo.
1248
1249 2002-05-17  kaz Kojima  <kkojima@rr.iij4u.or.jp>
1250
1251         * config/sh/sh.h (ENCODE_SECTION_INFO): Consider MODULE_LOCAL_P
1252         when encoding visibility into SYMBOL_REF_FLAG.
1253
1254 2002-05-17  Richard Sandiford  <rsandifo@redhat.com>
1255
1256         * expr.c (force_operand): Fix reversed move.
1257
1258 2002-05-17  Kurt Wall <kwall@kurtwerks.com>
1259
1260         * doc/install.texi (Testing): Mention two common DejaGnu warnings
1261         that can be ignored.
1262
1263 2002-05-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1264
1265         * doc/install.texi (Final install): Recommend to install into a
1266         "clean" target directory.
1267
1268 2002-05-17  Richard Henderson  <rth@redhat.com>
1269
1270         * config/ia64/ia64.md: Use braced strings instead of quoted strings
1271         for code blocks.  Tidy whitespace.
1272
1273 2002-05-17  Richard Henderson  <rth@redhat.com>
1274
1275         * hooks.c (hook_tree_bool_false): New.
1276         * hooks.h: Declare it.
1277         * target-def.h (TARGET_ASM_SELECT_SECTION): New.
1278         (TARGET_ASM_UNIQUE_SECTION, TARGET_IN_SMALL_DATA_P): New.
1279         * target.h (select_section, unique_section): New.
1280         (in_small_data_p): New.
1281         * varasm.c (resolve_unique_section): Use hooks instead of macros.
1282         (variable_section, output_constant_def_contents): Likewise.
1283         (default_select_section, default_unique_section): New.
1284         (categorize_decl_for_section, default_elf_select_section): New.
1285         * output.h: Declare them.
1286
1287         * config/darwin.h (ALIAS_SECTION, try_section_alias): Remove.
1288         (TARGET_ASM_SELECT_SECTION): New.
1289         (SELECT_SECTION): Move ...
1290         * config/darwin.c (machopic_select_section): ... here.
1291         * config/darwin-protos.h: Update.
1292
1293         * config/nextstep.h (TARGET_ASM_SELECT_SECTION): New.
1294         (SELECT_SECTION): Move ...
1295         * config/nextstep.c (nextstep_select_section): ... here.
1296         * config/nextstep-protos.h: Update.
1297
1298         * config/elfos.h (UNIQUE_SECTION, SELECT_SECTION): Remove.
1299         (TARGET_ASM_SELECT_SECTION): New.
1300         * config/svr3.h (SELECT_SECTION): Remove.
1301
1302         * config/alpha/alpha.c (unicosmk_unique_section): Make static.
1303         (TARGET_ASM_UNIQUE_SECTION) [UNICOS]: New.
1304         (TARGET_IN_SMALL_DATA_P, alpha_in_small_data_p): New.
1305         (alpha_encode_section_info): Use it.
1306         * config/alpha/alpha-protos.h: Update.
1307         * config/alpha/elf.h (DO_SELECT_SECTION): Remove.
1308         (SELECT_SECTION, UNIQUE_SECTION): Remove.
1309         (TARGET_ASM_SELECT_SECTION): New.
1310         * config/alpha/unicosmk.h (UNIQUE_SECTION): Remove.
1311
1312         * config/arm/pe.h (UNIQUE_SECTION): Remove.
1313         (TARGET_ASM_UNIQUE_SECTION): New.
1314
1315         * config/avr/avr.c (TARGET_ASM_UNIQUE_SECTION): New.
1316         (avr_unique_section): Rename from unique_section; make static.
1317         * config/avr/avr-protos.h: Update.
1318         * config/avr/avr.h (UNIQUE_SECTION): Remove.
1319
1320         * config/c4x/c4x.h (SELECT_SECTION): Remove.
1321
1322         * config/i386/cygwin.h (UNIQUE_SECTION): Remove.
1323         (TARGET_ASM_UNIQUE_SECTION): New.
1324         * config/i386/i386-interix.h: Likewise.
1325         * config/i386/win32.h: Likewise.
1326         * config/i386/djgpp.h (UNIQUE_SECTION): Remove.
1327         * config/i386/i386.c (ix86_asm_file_end): Use target hook not macro.
1328         * config/i386/sco5.h (SELECT_SECTION): Remove.
1329         (TARGET_ASM_SELECT_SECTION): New.
1330         * config/i386/svr3gas.h (SELECT_SECTION): Remove.
1331
1332         * config/i860/paragon.h: Undef TARGET_ASM_SELECT_SECTION
1333         instead of SELECT_SECTION.
1334         * config/m68k/dpx2.h: Likewise.
1335         * config/rs6000/lynx.h: Likewise.
1336
1337         * config/ia64/aix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
1338         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
1339         * config/ia64/ia64.c (TARGET_IN_SMALL_DATA_P): New.
1340         (ia64_in_small_data_p): New.
1341         (ia64_encode_section_info): Use it.  Reorganize overlarge conditional.
1342         (ia64_aix_select_section, ia64_aix_unique_section): New.
1343         * config/ia64/sysv4.h (DO_SELECT_SECTION): Remove.
1344         (SELECT_SECTION, UNIQUE_SECTION): Remove.
1345
1346         * config/m32r/m32r.h (SELECT_SECTION): Remove.
1347         (TARGET_ASM_SELECT_SECTION): New.
1348         * config/m32r/m32r.c (m32r_select_section): Take align argument.
1349         * config/m32r/m32r-protos.h: Update.
1350
1351         * config/m88k/m88k.h (TARGET_ASM_SELECT_SECTION): New.
1352         (SELECT_SECTION): Move ...
1353         * config/m88k/m88k.c (m88k_select_section): ... here.
1354
1355         * config/mcore/mcore-pe.h (SELECT_SECTION): Remove.
1356         * config/mcore/mcore.h (UNIQUE_SECTION): Remove.
1357         * config/mcore/mcore.c (TARGET_ASM_UNIQUE_SECTION): New.
1358         (mcore_unique_section): Make static.
1359         * config/mcore/mcore-protos.h: Update.
1360
1361         * config/mips/elf.h (UNIQUE_SECTION): Remove.
1362         (TARGET_ASM_UNIQUE_SECTION): New.
1363         * config/mips/elf64.h: Likewise.
1364         * config/mips/iris6gld.h: Likewise.
1365         * config/mips/linux.h: Likewise.
1366         * config/mips/mips-protos.h: Update.
1367         * config/mips/mips.c (mips_select_section): Add align argument.
1368         * config/mips/mips.h (SELECT_SECTION): Remove.
1369         (TARGET_ASM_SELECT_SECTION): New.
1370
1371         * config/mmix/mmix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
1372         * config/mmix/mmix.c (mmix_select_section): Remove.
1373         (mmix_unique_section): Remove.
1374         * config/mmix/mmix-protos.h: Update.
1375
1376         * config/pa/pa.h (TARGET_ASM_SELECT_SECTION): New.
1377         (SELECT_SECTION): Move ...
1378         * config/pa/pa.c (pa_select_section): ... here.
1379         * config/pa/pa64-hpux.h (UNIQUE_SECTION): Remove.
1380
1381         * config/rs6000/rs6000.c (rs6000_elf_select_section): Rename
1382         from rs6000_select_section and make static.
1383         (rs6000_elf_unique_section): Similarly.
1384         (rs6000_xcoff_select_section): From xcoff.h.
1385         (rs6000_xcoff_unique_section): Likewise.
1386         * config/rs6000/rs6000-protos.h: Update.
1387         * config/rs6000/sysv4.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
1388         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
1389         * config/rs6000/xcoff.h: Likewise.
1390
1391         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): New.
1392         (SELECT_SECTION): Move ...
1393         * config/sparc/sparc.c (sparc_aout_select_section): ... here.
1394
1395         * config/v850/v850.h (SELECT_SECTION): Move ...
1396         * config/v850/v850.c (v850_select_section): ... here.
1397         (TARGET_ASM_SELECT_SECTION): New.
1398
1399         * config/vax/vms.h (SELECT_SECTION): Move ...
1400         * config/vax/vax.c (vms_select_section): ... here.
1401         (TARGET_ASM_SELECT_SECTION): New.
1402
1403         * doc/tm.texi: Update SELECT_SECTION and UNIQUE_SECTION docs
1404         for the target hooks.
1405
1406 2002-05-17  Nick Clifton  <nickc@cambridge.redhat.com>
1407
1408         * config/arm/arm.c (emit_multi_reg_push): Do not set
1409         RTX_FRAME_RELATED_P on the SEQUENCE.
1410
1411 2002-05-16  Richard Henderson  <rth@redhat.com>
1412
1413         * config/ia64/ia64.c (ia64_reorg): Rebuild bb_for_insn before
1414         splitting.  Use split_all_insns; update_life_info_in_dirty_blocks.
1415
1416 2002-05-16  Richard Henderson  <rth@redhat.com>
1417
1418         * config/alpha/unicosmk.h (TARGET_OS_CPP_BUILTINS): Fix typo.
1419
1420         * config/ia64/ia64.c (saveable_obstack): Do not declare.
1421
1422 2002-05-16  Richard Henderson  <rth@redhat.com>
1423
1424         * basic-block.h, bb-reorder.c, cfg.c, cfganal.c, cfgbuild.c,
1425         cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c, combine.c,
1426         conflict.c, df.c, df.h, dominance.c, final.c, flow.c, function.c,
1427         gcse.c, global.c, graph.c, haifa-sched.c, ifcvt.c, lcm.c,
1428         local-alloc.c, loop.c, predict.c, print-rtl.c, profile.c,
1429         recog.c, reg-stack.c, regclass.c, regmove.c, regrename.c,
1430         reload1.c, reorg.c, resource.c, sbitmap.c, sched-deps.c,
1431         sched-ebb.c, sched-rgn.c, sibcall.c, ssa-ccp.c, ssa-dce.c, ssa.c:
1432         Revert "Basic block renumbering removal", and two followup patches.
1433
1434 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
1435
1436         * lcm.c (optimize_mode_switching): Revert previous change.
1437
1438 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1439
1440         * sched-rgn.c (schedule_insns): Initialize large_region_blocks
1441         with only extant block numbers.
1442
1443 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
1444
1445         * lcm.c (optimize_mode_switching): Fix typo.
1446
1447 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1448
1449         * flow.c (calculate_global_regs_live): Queue blocks in program order.
1450
1451 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1452
1453         * doc/install.texi (Configuration): Document PWDCMD.
1454
1455 2002-05-16  Dale Johannesen  <dalej@apple.com>
1456
1457         * combine.c (cant_combine_insn_p):  Reenable combinations
1458         involving hard regs unless CLASS_LIKELY_SPILLED_P.
1459
1460 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
1461
1462         * c-common.c (cb_register_builtins): Handle more built-ins
1463         here rather than in gcc.c specs.
1464         * gcc.c (cpp_unique_options): Move many built-ins to c-common.c.
1465         (cpp_options): Pass -O flags even when only preprocessing.
1466         * toplev.c (set_fast_math_flags): New prototype.
1467         (fast_math_flags_set_p): New.
1468         (set_no_fast_math_flags): Remove.
1469         (decode_f_option): Update.
1470         * toplev.h (set_fast_math_flags): Update.
1471         (fast_math_flags_set_p): New.
1472         (set_no_fast_math_flags): Remove.
1473 config:
1474         * c4x/c4x.c (c4x_override_options): Update.
1475
1476 2002-05-16  Zack Weinberg  <zack@codesourcery.com>
1477
1478         * c-common.c (STDC_0_IN_SYSTEM_HEADERS, REGISTER_PREFIX):
1479         Default-define here.
1480         (builtin_define_with_value): Can now wrap the expansion in
1481         quotation marks if such is wanted.
1482         (cb_register_builtins): Update calls to builtin_define_with_value.
1483         Define __REGISTER_PREFIX__, __USER_LABEL_PREFIX__, and __VERSION__
1484         here.
1485         (c_common_init): Set options->stdc_0_in_system_headers.
1486         * c-lex.h: Update prototype of builtin_define_with_value.
1487         * cppdefault.h: Remove default definitions of USER_LABEL_PREFIX
1488         and REGISTER_PREFIX.
1489
1490         * cppinit.c (VERS, ULP, C, X): Kill.
1491         (builtin_array): Remove entries for __VERSION__,
1492         __USER_LABEL_PREFIX__, __REGISTER_PREFIX__, and
1493         __HAVE_BUILTIN_SETJMP__.  Make __STDC__ always a builtin, not
1494         a constant.
1495         (init_builtins): Kill off a bunch of now-dead code.
1496         (COMMAND_LINE_OPTIONS): Remove -fleading-underscore and
1497         -fno-leading-underscore.
1498         (cpp_handle_option): Remove code to set user_label_prefix.
1499         (cpp_post_options): Likewise.
1500
1501         * cpplib.h (struct cpp_options): Remove user_label_prefix.
1502         (stdc_0_in_system_headers): New.
1503         * cppmacro.c (builtin_macro): Check CPP_OPTION (pfile,
1504         stdc_0_in_system_headers) too to decide the value of __STDC__.
1505
1506         * tradcpp.c (user_label_prefix): Kill.
1507         (main): Remove code handling -f(no-)leading-underscore.
1508         (initialize_builtins): Don't define __REGISTER_PREFIX__
1509         or __USER_LABEL_PREFIX__.
1510         (install_value): Wrap compound statement in dummy loop so the
1511         macro works properly in an if statement.
1512
1513
1514 2002-05-16  Janis Johnson  <janis187@us.ibm.com>
1515
1516         * loop.h (struct loop_info): Add member has_prefetch.
1517         * loop.c (PREFETCH_CONDITIONAL): Change default to 1.
1518         (prescan_loop): Initialize has_prefetch.
1519         (struct prefetch_info): Change prefetch_in_loop and
1520         prefetch_before_loop from bit fields to ints.
1521         (emit_prefetch_instructions): Several small fixes.
1522         (check_dbra_loop): Don't reverse loop that uses prefetch.
1523
1524 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1525
1526         * Makefile.in: Allow for PWDCMD to override hardcoded pwd.
1527         * configure.in: Likewise.
1528         * fixinc/check.tpl: Likewise.
1529         * fixinc/fixinc.dgux: Likewise.
1530         * fixinc/fixinc.svr4: Likewise.
1531         * fixinc/fixinc.winnt: Likewise.
1532         * fixinc/fixincl.sh: Likewise.
1533         * fixproto: Likewise.
1534         * configure: Regenerate.
1535
1536 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1537
1538         Basic block renumbering removal:
1539         * basic_block.h (struct basic_block_def): Renamed index to sindex,
1540         added prev_bb and next_bb fields.
1541         (n_basic_blocks): Renamed to num_basic_blocks.
1542         (last_basic_block): New, index of last basic block.
1543         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
1544         traversing basic block chain.
1545         (BLOCK_NUM): index -> sindex.
1546         (create_basic_block_structure, create_basic_block): Declaration changed.
1547         (debug_num2bb): Declare.
1548         (expunge_block_nocompact): Declaration removed.
1549         (link_block, unlink_block, compact_blocks): Declare.
1550         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1): Modified.
1551         * cfg.c (entry_exit_blocks): Initialize new fields.
1552         (clear_edges, alloc_block, expunge_block, cached_make_edge,
1553         redirect_edge_pred, dump_flow_info, dump_edge_info,
1554         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges,
1555         free_aux_for_edges): Modified.
1556         (link_block, unlink_block, compact_blocks, debug_num2bb): New.
1557         (expunge_block_nocompact): Removed.
1558         * cfganal.c (can_fallthru, mark_dfs_back_edges, flow_call_edges_add,
1559         find_unreachable_blocks, create_edge_list, print_edge_list,
1560         verify_edge_list, flow_edge_list_print, remove_fake_successors,
1561         remove_fake_edges, flow_reverse_top_sort_order_compute,
1562         flow_depth_first_order_compute, flow_preorder_transversal_compute,
1563         flow_dfs_compute_reverse_init, flow_dfs_compute_reverse_add_bb,
1564         flow_dfs_compute_reverse_execute): Modified.
1565         * cfgbuild.c (make_edges, make_eh_edge, find_basic_blocks_1,
1566         find_basic_blocks, find_many_sub_basic_blocks, find_sub_basic_blocks):
1567         Modified.
1568         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
1569         merge_blocks_move_predecessor_nojumps,
1570         merge_blocks_move_successor_nojumps, merge_blocks,
1571         outgoing_edges_match, try_crossjump_to_edge, try_crossjump_bb,
1572         try_optimize_cfg, delete_unreachable_blocks, cleanup_cfg): Modified.
1573         * cfglayout.c (skip_insns_after_block, label_for_bb,
1574         record_effective_endpoints, scope_to_insns_finalize,
1575         fixup_reorder_chain, verify_insn_chain, cleanup_unconditional_jumps,
1576         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge,
1577         cfg_layout_duplicate_bb): Modified.
1578         * cfgloop.c (flow_loops_cfg_dump, flow_loop_dump, flow_loops_dump,
1579         flow_loop_entry_edges_find, flow_loop_exit_edges_find,
1580         flow_loop_nodes_find, flow_loop_pre_header_find, flow_loop_scan,
1581         flow_loops_find, flow_loop_outside_edge_p): Modified.
1582         * cfgrtl.c (create_basic_block_structure, create_basic_block,
1583         flow_delete_block, compute_bb_for_insn, split_block,
1584         try_redirect_by_replacing_jump, redirect_edge_and_branch,
1585         force_nonfallthru_and_redirect, tidy_fallthru_edge,
1586         back_edge_of_syntactic_loop_p, split_edge, commit_one_edge_insertion,
1587         commit_edge_insertions, commit_edge_insertions_watch_calls,
1588         dump_bb, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
1589         purge_all_dead_edges): Modified.
1590         * combine.c (combine_instructions, set_nonzero_bits_and_sign_copies,
1591         try_combine, nonzero_bits, num_sign_bit_copies, get_last_value_validate,
1592         get_last_value, reg_dead_at_p, distribute_notes, distribute_links):
1593         Modified.
1594         * conflict.c (conflict_graph_compute): Modified.
1595         * df.c (FOR_ALL_BBS): Removed.
1596         (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
1597         df_modified_p, df_analyse, df_refs_unlink, df_insn_modify,
1598         df_dump, hybrid_search_bitmap, iterative_dataflow_sbitmap): Modified.
1599         * df.h (DF_BB_INFO, DF_REF_BBNO): Modified.
1600         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
1601         calc_idoms, idoms_to_doms, calculate_dominance_info): Modified.
1602         * final.c (compute_alignments, final_scan_insn): Modified.
1603         * flow.c (verify_local_live_at_start, update_life_info,
1604         update_life_info_in_dirty_blocks, free_basic_block_vars,
1605         delete_noop_moves, calculate_global_regs_live,
1606         initialize_uninitialized_subregs, allocate_bb_life_data,
1607         regno_uninitialized, regno_clobbered_at_setjmp, mark_set_1,
1608         mark_used_reg, count_or_remove_death_notes): Modified.
1609         * function.c (thread_prologue_and_epilogue_insns): Modified.
1610         * gcse.c (struct null_pointer_info): Change typo of current_block
1611         to basic_block.
1612         (gcse_main, alloc_gcse_mem, compute_local_properties, compute_sets,
1613         oprs_unchanged_p, load_killed_in_block_p, record_last_reg_set_info,
1614         compute_hash_table, alloc_rd_mem, handle_rd_kill_set, compute_kill_rd,
1615         alloc_avail_expr_mem, expr_killed_p, compute_ae_kill,
1616         expr_reaches_here_p_work, expr_reaches_here_p, handle_avail_expr,
1617         classic_gcse, one_classic_gcse_pass, compute_transp, cprop,
1618         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p_work,
1619         pre_expr_reaches_here_p, insert_insn_end_bb, pre_edge_insert,
1620         pre_delete, one_pre_gcse_pass, compute_transpout,
1621         invalidate_nonnull_info, delete_null_pointer_checks_1,
1622         free_code_hoist_mem, compute_code_hoist_vbeinout,
1623         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
1624         compute_ld_motion_mems, store_ops_ok, find_moveable_store,
1625         compute_store_table, build_store_vectors, insert_insn_start_bb,
1626         insert_store, replace_store_insn, free_store_memory, store_motion):
1627         Modified.
1628         * global.c (global_alloc, global_conflicts, mark_elimination,
1629         build_insn_chain): Modified.
1630         * graph.c (print_rtl_graph_with_bb): Modified.
1631         * haifa-sched.c (sched_init): Modified.
1632         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
1633         (find_if_block, find_cond_trap, find_if_case_1, find_if_case_2,
1634         if_convert): Modified.
1635         * lcm.c (compute_antinout_edge, compute_earliest, compute_laterin,
1636         compute_insert_delete, pre_edge_lcm, compute_available,
1637         compute_farthest, compute_nearerout, compute_rev_insert_delete,
1638         pre_edge_rev_lcm, make_preds_opaque, optimize_mode_switching):
1639         Modified.
1640         * local-alloc.c (alloc_qty, local_alloc, update_equiv_regs): Modified.
1641         * loop.c (loop_dump_aux): Modified.
1642         * predict.c (combine_predictions_for_insn, estimate_probability,
1643         last_basic_block_p, process_note_prediction, process_note_predictions,
1644         note_prediction_to_br_prob, propagate_freq, counts_to_freqs,
1645         expensive_function_p, estimate_bb_frequencies,
1646         compute_function_frequency): Modified.
1647         * print-rtl.c (print_rtx): Modified.
1648         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX, instrument_edges,
1649         get_exec_counts, compute_branch_probabilities, compute_checksum,
1650         branch_prob, find_spanning_tree): Modified.
1651         * recog.c (split_all_insns, peephole2_optimize): Modified.
1652         * reg-stack.c (reg_to_stack, convert_regs_entry, compensate_edge,
1653         convert_regs_1, convert_regs_2, convert_regs): Modified.
1654         * regclass.c (scan_one_insn, regclass): Modified.
1655         * regmove.c (mark_flags_life_zones, regmove_optimize,
1656         combine_stack_adjustments): Modified.
1657         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Modified.
1658         * reload1.c (reload, reload_combine, copy_eh_notes): Modified.
1659         * reorg.c (dbr_schedule): Modified.
1660         * resource.c (find_basic_block, init_resource_info): Modified.
1661         * sbitmap.c (sbitmap_intersection_of_succs,
1662         sbitmap_intersection_of_preds, sbitmap_union_of_succs,
1663         sbitmap_union_of_preds): Modified.
1664         * sched-deps.c (init_dependency_caches): Modified.
1665         * sched-ebb.c (schedule_ebbs): Modified.
1666         * sched-rgn.c (is_cfg_nonregular, build_control_flow, debug_regions,
1667         find_rgns, compute_trg_info, init_regions, schedule_insns): Modified.
1668         * sibcall.c (optimize_sibling_and_tail_recursive_call): Modified.
1669         * ssa-ccp.c (examine_flow_edges, optimize_unexecutable_edges,
1670         ssa_ccp_substitute_constants, ssa_ccp_df_delete_unreachable_insns,
1671         ssa_const_prop): Modified.
1672         * ssa-dce.c (set_control_dependent_block_to_edge_map_,
1673         find_control_dependence, find_pdom, ssa_eliminate_dead_code): Modified.
1674         * ssa.c (remove_phi_alternative, find_evaluations,
1675         compute_dominance_frontiers_1, compute_iterated_dominance_frontiers,
1676         insert_phi_node, rename_block, convert_to_ssa, eliminate_phi,
1677         make_regs_equivalent_over_bad_edges,
1678         make_equivalent_phi_alternatives_equival,
1679         compute_conservative_reg_partition,
1680         coalesce_regs_in_successor_phi_nodes, compute_coalesced_reg_partition,
1681         rename_equivalent_regs, convert_from_ssa, for_each_successor_phi):
1682         Modified.
1683
1684 2002-05-16  Mark Mitchell  <mark@codesourcery.com>
1685
1686         * cfgrtl.c (purge_dead_edges): Correct handling of EDGE_EH.
1687
1688 2002-05-16  Nick Clifton  <nickc@cambridge.redhat.com>
1689
1690         * config/arm/arm.c (arm_rtx_costs): Check for RTX being a
1691         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
1692         (arm_adjust_cost): Check for RTX being a SYMBOL_REF before
1693         calling CONSTANT_POOL_ADDRESS_P.
1694         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in code
1695         to decide whether to define __arm__ or __thumb.
1696         (THUMB_GO_IF_LEGITIMATE_ADDRESS): Check for RTX being a
1697         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
1698
1699 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
1700
1701         * config/arc/arc.h (CPP_PREDEFINES): Remove.
1702         (CPP_SPEC): Update.
1703         (TARGET_CPU_CPP_BUILTINS): New.
1704
1705 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
1706
1707         * cpphash.h (cpp_macro): Move here, and make expansion a union.
1708         * cppmacro.c (cpp_macro): Remove.
1709         (enter_macro_context, replace_args, warn_of_redefinition,
1710         _cpp_create_definition, cpp_macro_definition): Update.
1711
1712 2002-05-16  Jason Merrill  <jason@redhat.com>
1713
1714         * config/mips/mips.c (mips_output_external): Don't do sdata
1715         optimization for a variable with DECL_COMDAT set.
1716
1717 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
1718
1719         * config/rs6000/altivec.h: Cleanups for tighter typechecking.
1720         Cleanups for accepting modifiers on pointers.
1721         Fix predicate typos.
1722         Allow long pointers as well as int pointers.
1723
1724 2002-05-15  Richard Henderson  <rth@redhat.com>
1725
1726         * varasm.c (merge_weak): Remove special case for extern and common.
1727
1728 2002-05-15  Matt Hiller  <hiller@redhat.com>
1729
1730         * testsuite/gcc.c-torture/compile/20000804-1.x: Don't return 1 if
1731         XFAILing.
1732         * testsuite/gcc.c-torture/compile/20001226-1.x: Ditto.
1733         * testsuite/gcc.c-torture/compile/920520-1.x: Ditto.
1734         * testsuite/gcc.c-torture/compile/mipscop-1.x: XFAIL for now.
1735         * testsuite/gcc.c-torture/compile/mipscop-2.x: Ditto.
1736         * testsuite/gcc.c-torture/compile/mipscop-3.x: Ditto.
1737         * testsuite/gcc.c-torture/compile/mipscop-4.x: Ditto.
1738
1739 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
1740
1741         * reload1.c (forget_old_reloads_1): Do not use subreg offset.
1742
1743 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
1744
1745         * config/rs6000/rs6000.md ("altivec_mtvscr"): Set VSCR register.
1746         ("altivec_mfvscr"): Read from VSCR.
1747
1748         Add vscr sets for the following insns: altivec_vctuxs,
1749         altivec_vaddubs, altivec_vaddsbs, altivec_vadduhs,
1750         altivec_vaddshs, altivec_vadduws, altivec_vaddsws, altivec_vctsxs,
1751         altivec_vmhaddshs, altivec_vmhraddshs, altivec_vmsumuhs,
1752         altivec_vmsumshs, altivec_vpkuhss, altivec_vpkshss,
1753         altivec_vpkuwss, altivec_vpkswss, altivec_vpkuhus,
1754         altivec_vpkshus, altivec_vpkuwus, altivec_vpkswus,
1755         altivec_vsububs, altivec_vsubsbs, altivec_vsubuhs,
1756         altivec_vsubshs, altivec_vsubuws, altivec_vsubsws,
1757         altivec_vsum4ubs, altivec_vsum4sbs, altivec_vsum4shs,
1758         altivec_vsum2sws, altivec_vsumsws.
1759
1760         * config/rs6000/rs6000.h: Add VSCR fixed register.
1761         (CALL_REALLY_USED_REGISTERS): Add vscr.
1762         (CALL_USED_REGISTERS): Same.
1763         (FIXED_REGISTERS): Same.
1764         (REG_ALLOC_ORDER): Same.
1765         (reg_class): Add VSCR_REGS.
1766         (REG_CLASS_NAMES): Same.
1767         (REG_CLASS_CONTENTS): Same.
1768         (VSCR_REGNO): New.
1769         (REGISTER_NAMES): Add vscr.
1770         (DEBUG_REGISTER_NAMES): Same.
1771         (ADDITIONAL_REGISTER_NAMES): Same.
1772         (FIRST_PSEUDO_REGISTER): Increment.
1773         (CONDITIONAL_REGISTER_USAGE): Set VSCR as a global register.
1774
1775 2002-05-15  Jakub Jelinek  <jakub@redhat.com>
1776
1777         * fold-const.c (fold): Fix a typo.
1778
1779 2002-05-15  Eric Botcazou  <ebotcazou@multimania.com>
1780
1781         * fold-const.c (fold) [LT_EXPR]: Move the transformation of a
1782         comparison against the highest or lowest integer value before
1783         the 'X >= CST to X > (CST - 1)' and 'X < CST to X <= (CST - 1)'
1784         transformation and that of an unsigned comparison against 0
1785         right after.
1786
1787 2002-05-15  Richard Henderson  <rth@redhat.com>
1788
1789         * varasm.c (merge_weak): Error for any weakening after definition.
1790         Adjust weakening after use warning to catch more cases.
1791         (assemble_alias): Set TREE_USED and TREE_ASM_WRITTEN consistently.
1792         * config/alpha/alpha.c (alpha_encode_section_info): Do not abort.
1793
1794 Wed May 15 10:38:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
1795
1796         * invoke.texi (-malign-double): Re-add lost warning.
1797
1798         * i386-protos.h (x86_output_mi_thunk): Declare.
1799         * unix.h (ASM_OUTPUT_MI_THUNK): Move offline to ...
1800         * i386.c (x86_output_mi_thunk): ... here; handle 64bits.
1801
1802         * dwarf2out.c (output_call_frame_info): Do not skip unwind info
1803         when flag_asynchronous_unwind_tables is set.
1804
1805         * flags.h (flag_reorder_functions): Declare.
1806         * function.c (prepare_function_start): Initialize frequnecy.
1807         * params.def (HOT_BB_COUNT_FRACTION, HOT_BB_FREQUENCY_FRACTION): New.
1808         * Makefile.in (predict.o): Add dependency on target.h and params.h
1809         * defaults.h (HOT_TEXT_SECTION_NAME,
1810         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): New macros.
1811         * predict.c (choose_function_section): New function.
1812         (estimate_bb_frequencies): Use it.
1813         * toplev.c (flag_reorder_functions): New global variable.
1814         (lang_independent_options): New.
1815         (parse_options_and_default_flags): Set.
1816         * varasm.c (assemble_start_function): Bypass functdion alignment
1817         for never executed functions.
1818         * invoke.texi (-freorder-blocks, -freorder-functions): Document.
1819         (param hot-bb-count-fraction, hot-bb-frequency-fraction): New.
1820         * tm.texi (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
1821         Document.
1822
1823         Thu Jan  3 21:52:09 CET 2002  Jan Hubicka  <jh@suse.cz>
1824
1825         * predict.c: Inlude profile.h
1826         (MIN_COUNT): Rename to MIN_COUNT_FRACTION
1827         (maybe_hot_bb_p, probably_cold_bb_p, probably_never_executed_bb_p):
1828         Use the information about maximal counter in the program.
1829
1830         Thu Dec 20 22:14:00 CET 2001  Jan Hubicka  <jh@suse.cz>
1831
1832         * basic-block.h (maybe_hot_bb_p, probably_cold_bb_p,
1833         probably_never_executed_bb_p): New functions.
1834         * cfgcleanup.c (outgoing_edges_match): Use them.
1835         * predict.c (MIN_COUNT, MIN_FREQUENCY): New macros.
1836         (maybe_hot_bb_p, probably_cold_bb_p,
1837         probably_never_executed_bb_p): New functions.
1838
1839         * function.h (function): Add new field function_frequency.
1840         * predict.c (compute_function_frequency): New function.
1841         (estimate_probability): Call it.
1842
1843 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
1844
1845         PR optimization/5172, optimization/5200
1846         * gcse.c (gcse_main): Disable store_motion.
1847
1848 2002-05-14  Zack Weinberg  <zack@codesourcery.com>
1849
1850         * c-parse.in (MODIFIED_WCHAR_TYPE): New macro.
1851         (c_common_nodes_and_builtins): Use it.
1852         (builtin_define_with_value): New function.
1853         (cb_register_builtins): Define __SIZE_TYPE__,
1854         __PTRDIFF_TYPE__, __WCHAR_TYPE__, and __WINT_TYPE__ here,
1855         using builtin_define_with_value.  Use consistent notation when
1856         defining __GXX_WEAK__.
1857         (WCHAR_TYPE_SIZE): Don't redefine.
1858         (combine_strings): Don't use WCHAR_TYPE_SIZE.
1859
1860         * cppdefault.h: Don't provide defaults for SIZE_TYPE,
1861         PTRDIFF_TYPE, WCHAR_TYPE, or WINT_TYPE.
1862         * cppinit.c (builtin_array): Remove entries for __SIZE_TYPE__ etc.
1863         * tradcpp.c (initialize_builtins): Likewise.
1864         * gcc.c (cpp_unique_options): Don't muck with __WCHAR_TYPE__.
1865
1866         * c-lex.h (builtin_define_with_value): Prototype.
1867         * system.h: Poison NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_WCHAR_TYPE,
1868         NO_BUILTIN_PTRDIFF_TYPE, and NO_BUILTIN_WINT_TYPE.
1869         * doc/tm.texi: Remove mention of NO_BUILTIN_SIZE_TYPE etc.
1870
1871         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
1872         config/ia64/ia64.h, config/mips/dec-osf1.h, config/mips/iris6.h,
1873         config/mips/linux.h, config/mips/mips.h, config/mips/netbsd.h,
1874         config/mips/osfrose.h, config/mips/sni-svr4.h, config/rs6000/aix51.h,
1875         config/s390/linux.h, config/sh/sh.h, config/sh/sh64.h,
1876         config/sparc/linux64.h, config/sparc/netbsd-elf.h,
1877         config/sparc/sol2-bi.h, config/sparc/sparc.h:
1878         Do not define NO_BUILTIN_SIZE_TYPE etc.  Remove all references
1879         to __SIZE_TYPE__ etc from all spec strings. When this makes
1880         extra specs empty, delete them.
1881
1882 2002-05-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1883
1884         * pa.c (override_options): Override TARGET_JUMP_IN_DELAY when scheduling
1885         for PA8000 or generating dwarf2 call frame information.
1886         (output_call): Remove DO_FRAME_NOTES check from return pointer
1887         optimization.
1888         (following_call): Return 0 when scheduling for PA8000 or generating
1889         dwarf2 call frame information.  Revise comment.
1890
1891 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
1892
1893 config/alpha:
1894         * alpha.h (TARGET_CPU_CPP_BUILTINS): Define __IEEE_FP
1895         and __IEEE_FP_INEXACT as appropriate.
1896         (CPLUSPLUS_CPP_SPEC): Don't define __cplusplus.
1897         (CPP_SPEC): Remove ieee defines.
1898         * freebsd.h, netbsd.h: Remove ieee defines and cpp_cpu.
1899
1900 2002-05-14  Richard Henderson  <rth@redhat.com>
1901
1902         * config/i386/i386.c (ix86_save_reg): Make regno unsigned.
1903         (ix86_safe_length, ix86_safe_length_prefix, ix86_safe_memory): Kill.
1904
1905 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
1906
1907         * arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define.
1908         (CPP_SPEC): Update.
1909         (CPP_APCS_PC_SPEC, CPP_APCS_PC_DEFAULT_SPEC,
1910         CPP_FLOAT_SPEC, CPP_FLOAT_DEFAULT_SPEC, CPP_ENDIAN_SPEC,
1911         CPP_ENDIAN_DEFAULT_SPEC, CPP_INTERWORK_DEFAULT_SPEC,
1912         CPP_INTERWORK_SPEC, CPP_PREDEFINES): Remove.
1913         (EXTRA_SPECS): Update.
1914         * arm/conix-elf.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
1915         arm/riscix1-1.h, arm/rtems-elf.h, arm/semiaof.h, arm/unknown-elf.h,
1916         arm/unknown-elf-oabi.h, arm/vxarm.h: Remove CPP_PREDEFINES and
1917         define TARGET_OS_CPP_BUILTINS if necessary.
1918
1919 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
1920
1921         * gcc.c (cpp_options): Must pass -m* and -f* options
1922         to the front end even when only preprocessing.
1923         (cc1_options): Remove redundant -lang-c.
1924         * tradcpp.c (main): Ignore -m options.
1925 objc:
1926         * lang-specs.h: Similarly.
1927
1928 2002-05-14  Vladimir Makarov  <vmakarov@redhat.com>
1929
1930         * genautomata.c (transform_3): Add code for transformation
1931         `(A,B,...)+C -> A+C,B,...'.
1932
1933 Tue May 14 12:48:22 CEST 2002  Jan Hubicka  <jh@suse.cz>
1934
1935         * final.c (end_final): Do not output profile_arcs constructor, when
1936         no functions are instrumented.
1937
1938 Tue May 14 12:38:30 CEST 2002  Jan Hubicka  <jh@suse.cz>
1939
1940         * i386.md (testsi to testqi_zext_1 splitter): Fix typo.
1941
1942 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1943
1944         * doc/install.texi: Remove special markup originally required for
1945         HTML generation with texi2html.
1946
1947 2002-05-14  Andreas Schwab  <schwab@suse.de>
1948
1949         * config/ia64/sysv4.h (DO_SELECT_SECTION): Factored out of
1950         SELECT_SECTION.
1951         (UNIQUE_SECTION): Define to get small data correctly.
1952
1953         * varasm.c (resolve_unique_section): Add third parameter
1954         flag_function_or_data_sections and use it instead of
1955         flag_function_sections.
1956         (assemble_start_function): Pass flag_function_sections.
1957         (asm_emit_uninitialised): Pass flag_data_sections.
1958         (assemble_variable): Likewise.
1959
1960 2002-05-14  Richard Henderson  <rth@redhat.com>
1961
1962         * config/i386/i386.md: Use define_constants for unspec numbers.
1963         * config/i386/i386.c: Likewise.
1964
1965 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
1966
1967         * doc/contrib.texi: Update my entry.
1968
1969 2002-05-13  Mark Mitchell  <mark@codesourcery.com>
1970
1971         * fixinc/inclhack.def (winidss_valist): Limit applicability.
1972         * fixinc/fixincl.x: Regenerated.
1973         * fixinc/tests/base/math.h: Update.
1974         * fixinc/tests/base/testing.h: Likewise.
1975
1976 2002-05-13  Zack Weinberg  <zack@codesourcery.com>
1977
1978         * genattr.c (gen_attr): Don't emit a comma after the last
1979         enumerator.
1980
1981 2002-05-13  Richard Henderson  <rth@redhat.com>
1982
1983         * cfgrtl.c (purge_dead_edges): Handle abnormal call edges created
1984         by non-local gotos.
1985         * recog.c (peephole2_optimize): Likewise.
1986
1987 2002-05-13  Andris Pavenis  <pavenis@lanet.lv>
1988
1989         * cppfiles.c (open_file): Change mode (DJGPP only) of redirected
1990         input to O_BINARY.
1991
1992 2002-05-13  Jeffrey A Law  (law@redhat.com)
1993
1994         * flow.c (invalidate_mems_from_autoinc): Rewrite to use for_each_rtx.
1995         Update prototype and callers.
1996         (propagate_one_insn): Stack pointer adjustments kill MEMs on
1997         the mem_set_list which reference the stack pointer, as do
1998         calls to constant functions as they may clobber outgoing
1999         argument space.
2000
2001         * i386.c (ia32_multipass_dfa_lookahead): Prototype.
2002
2003         * i386.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
2004         (ia32_multipass_dfa_lookahead): New function.
2005
2006 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
2007
2008         * gcc.c (SWITCH_TAKES_ARG): Remove 'V'.
2009         (translate_options): Remove 'V'.
2010         (process_command): Similarly.
2011 doc:
2012         * invoke.texi: Remove documentation of 'V'.
2013
2014 2002-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
2015
2016         * config/s390/linux.h: Revert 2002-04-22 changes.
2017
2018 2002-05-13  Scott Marks <SMarks@mobile-mind.com>
2019
2020         * config/fr30/fr30.md: Only allow splits of immediate loads
2021         if the destination is a register.
2022
2023 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
2024
2025         * Makefile.in (c-common.o, cppinit.o): Update.
2026         * c-common.c: Include except.h.
2027         (cb_register_builtins): Handle __USING_SJLJ_EXCEPTIONS__.
2028         Call TARGET_CPU_CPP_BUILTINS and TARGET_OS_CPP_BUILTINS.
2029         * cppinit.c (__USING_SJLJ_EXCEPTIONS): Not here.
2030         * defaults.h (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS,
2031         CPP_PREDEFINES): Handle here.
2032 config:
2033         * alpha/alpha-interix.h, alpha/gnu.h, alpha/linux.h,
2034         alpha/netbsd.h, alpha/openbsd.h, alpha/osf.h, alpha/unicosmk.h,
2035         alpha/vms.h, alpha/vxworks.h: Remove CPP_PREDEFINES, define
2036         TARGET_OS_CPP_BUILTINS.
2037         * alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Define.
2038         (CPP_SPEC, EXTRA_SPECS): Update.
2039         (CPP_AM_BWX_SPEC, CPP_AM_MAX_SPEC, CPP_AM_FIX_SPEC,
2040         CPP_AM_CIX_SPEC, CPP_IM_EV4_SPEC, CPP_IM_EV5_SPEC,
2041         CPP_IM_EV6_SPEC, CPP_CPU_EV4_SPEC, CPP_CPU_EV5_SPEC,
2042         CPP_CPU_EV56_SPEC, CPP_CPU_PCA56_SPEC, CPP_CPU_EV6_SPEC,
2043         CPP_CPU_EV67_SPEC, CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Remove.
2044 doc:
2045         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Remove.
2046         (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS): Define.
2047
2048 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
2049
2050         * emit-rtl.c (global_rtl): Update comment.
2051         (const_double_htab, const_double_htab_hash,
2052         const_double_htab_hash, lookup_const_double): New.
2053         (const_int_htab_hash, const_int_htab_eq): Remove const
2054         qualifiers, which cause tons of warnings with RTL checking on.
2055         (gen_rtx_CONST_DOUBLE): Deleted.
2056         (const_double_from_real_value): New function - bears some
2057         resemblance to the former immed_real_const_1.
2058         (immed_double_const): Moved here from varasm.c and
2059         simplified.
2060         (gen_rtx_REG): Make REGNO unsigned to squelch warnings.
2061         (gen_rtx_SUBREG): Use gen_rtx_raw_SUBREG.
2062         (gen_rtx): Use immed_double_const.
2063         (init_emit_once): Initialize the const_double_htab.  Use
2064         REAL_VALUE_FROM_INT where possible.  Can now use
2065         CONST_DOUBLE_FROM_REAL_VALUE when setting up const_tiny_rtx.
2066         * varasm.c (struct varasm_status): Remove x_const_double_chain.
2067         (const_double_chain, immed_real_const, clear_const_double_mem): Delete.
2068         (immed_double_const, immed_real_const_1): Moved to emit-rtl.c.
2069         (init_varasm_status, mark_varasm_status): Don't touch
2070         x_const_double_chain.
2071
2072         * output.h: Delete prototype for clear_const_double_mem.
2073         * real.h: Make REAL_VALUE_TYPE a macro again.  Remove leading
2074         '0' slot from all CONST_DOUBLE_FORMAT definitions.  Prototype
2075         const_double_from_real_value, not immed_real_const_1, and use
2076         it to define CONST_DOUBLE_FROM_REAL_VALUE.  Define new macro
2077         CONST_DOUBLE_ATOF.
2078         * rtl.h (CONST_DOUBLE_CHAIN): Kill.
2079         (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Adjust.
2080         (gen_rtx_CONST_DOUBLE, immed_real_const): Delete prototypes.
2081         (gen_rtx_REG): Second arg is unsigned.
2082
2083         * gengenrtl.c (special_rtx): Take out CONST_DOUBLE.
2084         (excluded_rtx): New, return true for CONST_DOUBLE.
2085         (genmacro): Write nothing for excluded codes.
2086         * combine.c (combine_simplify_rtx): Use CONST_DOUBLE_FROM_REAL_VALUE.
2087         * expr.c (expand_expr): Likewise.
2088         * ggc-common.c (ggc_mark_rtx_children_1): Don't mark the
2089         CONST_DOUBLE_CHAIN.
2090         * toplev.c (rest_of_compilation): Don't call
2091         clear_const_double_mem.
2092
2093         * config/rs6000/rs6000.c (rs6000_float_const): Delete.
2094         (rs6000_hash_constant): Remove CONST_DOUBLE special case.
2095         (toc_hash_eq): Remove CONST_DOUBLE and LABEL_REF special cases.
2096         * config/rs6000/rs6000-protos.h: Don't prototype rs6000_float_const.
2097         * config/c4x/c4x.md, config/rs6000/rs6000.md: Use CONST_DOUBLE_ATOF.
2098         * config/dsp16xx/dsp16xx.md, config/mips/mips.md,
2099         config/pa/pa.md: Use CONST_DOUBLE_FROM_REAL_VALUE.
2100         * config/sparc/sparc.md, config/sparc/sparc.c: Use immed_double_const.
2101
2102 2002-05-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2103
2104         * mips/iris6.h (CPLUSPLUS_CPP_SPEC): Define.
2105
2106 2002-05-12  Tom Tromey  <tromey@redhat.com>
2107
2108         * tree.h (copy_node): Don't mention TREE_PERMANENT.
2109
2110 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
2111
2112         * gensupport.c (n_comma_elts): Moved here from genattrtab.c.
2113         (scan_comma_elt): New function.  Accepts whitespace in comma lists.
2114         * gensupport.h: Prototype new routines.
2115         * genattr.c (gen_attr): Use scan_comma_elt.  Avoid unnecessary
2116         use of printf.
2117         * genattrtab.c (n_comma_elts): Moved to gensupport.c.
2118         (next_comma_elt): Use scan_comma_elt.
2119
2120         * config/i386/i386.md: Use new attribute notation to break up
2121         long lines in define_attr forms.
2122
2123 2002-05-12  Richard Henderson  <rth@redhat.com>
2124
2125         * expr.c (compress_float_constant): New.
2126         (emit_move_insn): Use it.
2127         (float_extend_from_mem): New.
2128         (init_expr_once): Initialize it.
2129         * real.c (exact_real_truncate): New.
2130
2131         * config/i386/i386.h (CONST_COSTS): Assume CONST_DOUBLE gets
2132         dropped into memory; penalize for size.
2133         (RTX_COSTS): FLOAT_EXTEND is free.
2134         * config/i386/i386.md (extendsfdf2, extendsfxf2, extendsftf2,
2135         extenddfxf2, extenddftf2): Accept constants and drop them to memory.
2136
2137 2002-05-12  Richard Henderson  <rth@redhat.com>
2138
2139         * profile.h (profile_info): Add missing extern to declaration.
2140         * profile.c (profile_info): Define it.
2141
2142 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2143
2144         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Revise sets of general registers
2145         used for DImode and TImode.
2146
2147 2002-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>
2148
2149         * cpplex.c (_cpp_lex_direct): When in a directive at EOF
2150         fake a newline.
2151
2152 2002-05-11  Zack Weinberg  <zack@codesourcery.com>
2153
2154         * config/rs6000/rs6000.c (rs6000_default_long_calls,
2155         rs6000_longcall_switch, rs6000_set_default_type_attributes): New.
2156         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Set it.
2157         (rs6000_override_options): Handle -m(no-)longcall.
2158         (init_cumulative_args, output_mi_thunk): Check for both
2159         longcall and shortcall attributes on the function.
2160         (rs6000_attribute_table): Add "shortcall".
2161         (rs6000_handle_longcall_attribute): Update comment.
2162         (altivec_expand_unop_builtin, altivec_expand_binop_builtin,
2163         altivec_expand_ternop_builtin): Add default clauses to switches
2164         to silence warnings.
2165
2166         * config/rs6000/rs6000.h: Declare rs6000_longcall_switch and
2167         rs6000_default_long_calls.  Define REGISTER_TARGET_PRAGMAS.
2168         (TARGET_OPTIONS): Add longcall and no-longcall.
2169
2170         * config/rs6000/rs6000.md (call_nonlocal_sysv,
2171         call_value_nonlocal_sysv): Split by alternatives.  One pair
2172         accepts only SYMBOL_REFs and rejects if CALL_LONG is set in
2173         the call cookie.  The other pair accepts only LR/CTR and has
2174         no restriction.
2175
2176         * config.gcc (rs6000-*-* | powerpc*-*-* trailer stanza):
2177         Set c_target_objs, cxx_target_objs; add t-rs6000-c-rule to
2178         tmake_file.
2179         * config/rs6000/rs6000-c.c: New file.
2180         * config/rs6000/t-rs6000-c-rule: New file.
2181         * config/rs6000/rs6000-protos.c: Add multiple-include guard.
2182         Prototype rs6000_pragma_longcall.
2183
2184         * doc/extend.texi: Document shortcall attribute.
2185         * doc/invoke.texi: Document -mlongcall, -mno-longcall.
2186
2187 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2188
2189         * reorg.c (dbr_schedule): Remove unnecessary test.
2190
2191 Sat May 11 14:34:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
2192
2193         * i386.md (testsi to testqi spliters): New.
2194
2195         2002-01-14  Josef Zlomek  <zlomek@matfyz.cz>
2196
2197         cfg.c (dump_edge_info): added dumping of EDGE_CAN_FALLTHRU.
2198
2199         Wed Jan  9 2002  Josef Zlomek  <zlomj9am@artax.karlin.mff.cuni.cz>
2200
2201         * basic-block.h: New flag EDGE_CAN_FALLTHRU
2202         * cfganal.c (set_edge_can_fallthru_flag): New function; marks the edges
2203         that can be made fallthru.
2204
2205         Mon Nov 12 16:25:53 CET 2001  Jan Hubicka  <jh@suse.cz>
2206
2207         * cfglayout.c (cleanup_unconditional_jumps): New static function.
2208         (cfg_layout_initialize): Use it.
2209
2210 2002-05-11  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2211
2212         * config/avr/avr.c (avr_mcu_types): Update supported devices.
2213         * config/avr/avr.h (CPP_SPEC, LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
2214         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2215
2216 2002-05-11  Kazu Hirata  <kazu@cs.umass.edu>
2217
2218         * dbxout.c: Fix formatting.
2219         * dependence.c: Likewise.
2220         * df.c: Likewise.
2221         * diagnostic.c: Likewise.
2222         * doloop.c: Likewise.
2223         * dominance.c: Likewise.
2224         * doschk.c: Likewise.
2225         * dwarf2asm.c: Likewise.
2226         * dwarf2out.c: Likewise.
2227         * dwarfout.c: Likewise.
2228
2229 2002-05-10  Richard Henderson  <rth@redhat.com>
2230
2231         * final.c (end_final): Tidy whitespace.  Don't honor flag_pack_struct.
2232         Convert integers constants as needed.  Replace "nwords" field with
2233         "sizeof_bb".
2234         (final): Save profile data if cfun->arc_profile, not profile_arc_flag.
2235         * function.h: Fix typo in comment.
2236         * libgcc2.c (struct bb): Replace "nwords" with "sizeof_bb".
2237
2238 2002-05-10  Roger Sayle  <roger@eyesopen.com>
2239
2240         * fold-const.c (build_range_check): Optimize (c>=1) && (c<=127)
2241         into the equivalent (signed char)c > 0.
2242
2243 2002-05-10  Janis Johnson  <janis187@us.ibm.com>
2244
2245         * loop.c: (PREFETCH_EXTREME_DIFFERENCE, PREFETCH_BEFORE_LOOP): New.
2246         (PREFETCH_CONDITIONAL): Renamed from PREFETCH_NOT_ALWAYS.
2247         (struct prefetch_info): Fix spelling of member bytes_accessed.
2248         (emit_prefetch_instructions): Make dump messages more regular;
2249         restructure code to add more dump messages; use new macros for
2250         heuristics. (There are no code generation changes in any of this).
2251
2252 2002-05-10  David S. Miller  <davem@redhat.com>
2253
2254         * rtl.h (INSN_ANNULLED_BRANCH_P): Accept INSN too, update comment.
2255         (struct rtx_def): Update unchanging flag comment.
2256         * doc/rtl.texi (INSN_ANNULLED_BRANCH_P): Update description.
2257         * reorg.c (delete_from_delay_list): INSN_ANNULLED_BRANCH_P needs
2258         to be handled to INSN too.
2259         (dbr_schedule): Likewise.
2260         * resource.c (next_insn_no_annul): Likewise.
2261
2262         * cse.c (rtx_cost): Remove multiplication by power of 2 special
2263         casing.
2264
2265 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2266
2267         * doc/install.texi (Specific, *-*-solaris2*): Update passus on
2268         setting CONFIG_SHELL to /bin/ksh and remove alternate trick to
2269         (possibly) work around broken /bin/sh.
2270
2271 2002-05-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2272
2273         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Use mabi=64 and
2274         . as N64/N32 libgcc_s.so subdirs.
2275
2276 2002-05-10  David S. Miller  <davem@redhat.com>
2277
2278         * config/sparc/sparc.md: Use define_constants for unspec numbers.
2279
2280         * rtl.h (struct rtx_def): Document unchanging and in_struct flags
2281         more accurately.
2282         (INSN_ANNULLED_BRANCH_P): Only valid for JUMP_INSN and CALL_INSN, fix
2283         comment.
2284         (INSN_FROM_TARGET_P): Valid also for CALL_INSN.
2285         * doc/rtl.texi: Document these macros more accurately.
2286         * recog.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P for
2287         JUMP_INSNs and CALL_INSNs.
2288         * resource.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P
2289         or INSN_FROM_TARGET_P if the code is appropriate.
2290
2291 2002-05-10  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2292
2293         * config/avr/avr.c (print_operand): Check that addr is a SYMBOL_REF
2294         before using SYMBOL_REF_FLAG (addr).
2295
2296         * config/avr/avr-protos.h (avr_io_address_p): Declare.
2297         * config/avr/avr.c (io_address_p): Rename to avr_io_address_p.
2298         Make non-static.  Update all callers.
2299         * config/avr/avr.md (*cbi, *sbi, *sbix_branch, *sbix_branch_bit7):
2300         New insns to clear/set/test a single bit in I/O address space.
2301
2302 2002-05-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2303
2304         * rtl.h (ENABLE_RTL_FLAG_CHECKING): Also check for gcc >= 2.7.
2305
2306 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
2307
2308         * Makefile.in: Update.
2309         * c-common.c (flag_iso, flag_undef, cb_register_builtins,
2310         builtin_define_std): New.
2311         (c_common_init): Register CPP builtins callback.
2312         * c-common.h (flag_iso, flag_undef): New.
2313         * c-decl.c (c_decode_option): Set flag_iso and flag_undef.
2314         * c-lex.c: Don't include target.h.
2315         (cb_register_builtins): Move to c-common.c.
2316         (init_c_lex): Don't register hook here.
2317         * c-lex.h (builtin_define, builtin_assert, builtin_define_std): New.
2318         (cpp_define, cpp_assert): Remove.
2319         * gcc.c (cc1_options): Pass -undef to front end.
2320         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): Remove.
2321         (TARGET_INITIALIZER): Update.
2322         * target.h (struct cpp_reader): Don't predeclare.
2323         (struct gcc_target): Remove cpp builtin hook.
2324         * tree.c (default_register_cpp_builtins): Remove.
2325 doc:
2326         * tm.texi: Update.
2327
2328 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
2329
2330         * cppexp.c (_cpp_expand_op_stack): Set op_limit.
2331
2332 2002-05-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2333
2334         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Define.
2335         (SHLIB_LINK, SHLIB_INSTALL): Adjust.
2336
2337 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
2338
2339         * config/sparc/t-linux64 (SHLIB_MAPFILES): Set.
2340         * config/sparc/libgcc-sparc-glibc.ver: New file.
2341         * config/cris/t-linux (SHLIB_MAPFILES): Remove.
2342         * mklibgcc.in: Preprocess SHLIB_MAPFILES with ml flags.
2343
2344 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
2345
2346         PR target/6429
2347         * Makefile.in (libgcc.mk): Pass SHLIB_SLIBDIR_SUFFIXES to mklibgcc.
2348         * mklibgcc.in: If SHLIB_SLIBDIR_SUFFIXES is defined, put libgcc_s
2349         shared libraries into multilib dirs, with SONAME libgcc_s.so.1 for
2350         base multilibs.
2351         * config/t-slibgcc-elf-ver (SHLIB_LINK): Adjust for the above.
2352         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
2353         * config/sparc/t-linux64 (SHLIB_SLIBDIR_SUFFIXES): Define.
2354         * config/sparc/t-sol2-64 (SHLIB_SLIBDIR_SUFFIXES): Define.
2355
2356 2002-05-09  Richard Henderson  <rth@redhat.com>
2357
2358         * config/ia64/ia64.md: Use define_constants for unspec numbers.
2359         * config/ia64/ia64.c: Likewise.
2360
2361 2002-05-09  Richard Sandiford  <rsandifo@redhat.com>
2362
2363         * config/mips/mips.c (mips_add_large_offset_to_sp): Remove FILE arg.
2364         (save_restore_insns): Likewise.
2365         (mips_expand_prologue, mips_expand_epilogue): Update callers.
2366         (highpart_shift_operator): Attach ATTRIBUTE_UNUSED to mode argument.
2367
2368 Thu May  9 11:50:09 2002  Jeffrey A Law  (law@cygnus.com)
2369
2370         * athlon.md, k6.md, pentium.md, ppro.md): New files.
2371         * i386.md: Move scheduling information into new files.
2372
2373         * i386.md (type attribute): Add "rotate" for rotate insns.
2374         (rotate insns): Set type to "rotate".
2375         (various attributes and function units): Treat rotate like shift.
2376         (pent_pair attribute): Only rotates by one bit position are
2377         pairable.
2378         (sbb insns): Explicitly set pent_pair attribute on a couple
2379         that were missing it.
2380
2381 Thu May  9 18:29:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
2382
2383         * sh.c (sh_builtin_saveregs): If starting with an odd fp register,
2384         make sure that buffer starts on odd word address.
2385         (sh_va_arg): Skip odd fp registers when reading a double precision
2386         value.
2387
2388 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
2389
2390         * tree.h (preserve_data, object_permanent_p, type_precision):
2391         Remove.
2392
2393 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
2394
2395         * cpplib.c (cpp_init_internal_pragmas): Remove #pragma poison.
2396         * cppmacro.c (paste_all_tokens): Bad pastes are a hard error.
2397 doc:
2398         * cpp.texi: Update for removal of obsolete features.
2399
2400 Thu May  9 07:46:18 2002  Jan Hubicka <jh@suse.cz>
2401                           Jeffrey A Law  (law@redhat.com)
2402
2403         * i386.c (ia32_use_dfa_pipeline_interface): New function.  Use
2404         the DFA interface for Pentium processors.
2405         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): DEFINE.
2406         (attr_pent_pair, ix86_pent_find_pair): Remove.
2407         (ix86_sched_reorder_pentium): Remove.
2408         (ix86_sched_reorder): Remove reordering for Pentium.
2409         * i386.md (Pentium scheduling): Rewrite using DFA description.
2410
2411 Thu May  9 14:55:39 CEST 2002  Jan Hubicka  <jh@suse.cz>
2412
2413         * cfganal.c (can_fallthru): Fix fast path.
2414         * cfgrtl.c (verify_flow_info): Avoid crash on conditionals
2415         with edges to the next block.
2416
2417 Thu May  9 14:52:45 CEST 2002  Jan Hubicka  <jh@suse.cz>
2418                                Pavel Nejedly  <bim@atrey.karlin.mff.cuni.cz>
2419
2420         * final.c (end_final): Use C trees to output data structures for profiling.
2421
2422         * Makefile.in (LIBGCC_DEPS): Added missing dependency on gcov-io.h
2423         (profile.o): New dependency profile.h
2424         (final.o): New dependency profile.h
2425         * profile.h: New file. New global structure profile_info.
2426         * final.h (count_edges_instrumented_now): Declare.
2427         (current_function_cfg_checksum): Declare.
2428         (function_list): New structure.
2429         (functions_head, functions_tail): New static variables.
2430         (end_final): Emits more data, removed some -ax stuff.
2431         (final): Stores function names and chcksums.
2432         * gcov-io.h (__write_gcov_string): New function.
2433         (__read_gcov_string): New function.
2434         * gcov.c (read_profile): New function.
2435         (create_program_flow_graph): Uses read_profile instead of reading
2436         da_file.
2437         (read_files): Removed da_file checking, it's done by read_profile now.
2438         * libgcc2.c (bb_function_info): New structure.
2439         (bb): New field in structure, removed some -ax stuff.
2440         (__bb_exit_func): Changed structure of da_file.
2441         * profile.c (count_edges_instrumented_now): New global variable.
2442         (current_function_cfg_checksum): New global variable.
2443         (max_counter_in_program): New global variable.
2444         (get_exec_counts): New function.
2445         (compute_checksum): New function.
2446         (instrument_edges): Sets count_edges_instrumented_now.
2447         (compute_branch_probabilities): Uses get_exec_counts instead of
2448         reading da_file.
2449         (branch_prob): Calls compute_checksum and writes extra data to bbg_file.
2450         (init_branch_prob): Removed da_file checking, done in get_exec_counts
2451         now.
2452         (end_branch_prob): Removed da_file checking, done in get_exec_counts
2453         now.
2454         * gcov.texi: Updated information about gcov file format.
2455
2456 2002-05-09  Kazu Hirata  <kazu@cs.umass.edu>
2457
2458         * sbitmap.c: Fix formatting.
2459         * scan.c: Likewise.
2460         * scan-decls.c: Likewise.
2461         * sched-deps.c: Likewise.
2462         * sched-ebb.c: Likewise.
2463         * sched-rgn.c: Likewise.
2464         * sched-vis.c: Likewise.
2465         * sdbout.c: Likewise.
2466         * sibcall.c: Likewise.
2467         * simplify-rtx.c: Likewise.
2468         * ssa.c: Likewise.
2469         * ssa-ccp.c: Likewise.
2470         * ssa-dce.c: Likewise.
2471         * stmt.c: Likewise.
2472         * stor-layout.c: Likewise.
2473         * stringpool.c: Likewise.
2474
2475 2002-05-09  David S. Miller  <davem@redhat.com>
2476
2477         * config/sparc/sol2.h (ASM_CPU_SPEC): Handle -mcpu=v9.
2478
2479 2002-05-07  David S. Miller  <davem@redhat.com>
2480
2481         * config/sparc/sparc.h (TARGET_BUGGY_QP_LIB): Define to zero.
2482         * config/sparc/sol2.h (TARGET_BUGGY_QP_LIB): Override to one.
2483         * config/sparc/sparc.c (emit_soft_tfmode_libcall): If the Qp
2484         library implementation clobbers the output before the inputs
2485         are fully consumed, use stack temporary for the output.
2486
2487 2002-05-09  Jason Thorpe  <thorpej@wasabisystems.com>
2488
2489         * config/netbsd.h (CPP_SPEC): Remove.
2490         * config/i386/netbsd-elf.h (CPP_SPEC): Define.
2491         * config/i386/netbsd.h (CPP_SPEC): Define.
2492         * config/ns32k/netbsd.h (CPP_SPEC): Define.
2493         * config/sparc/netbsd-elf.h (CPP_SPEC): Remove.
2494         * config/sparc/netbsd.h (CPP_SPEC): Define.
2495         * config/vax/netbsd.h (CPP_SPEC): Define.
2496
2497 2002-05-08  Kazu Hirata  <kazu@cs.umass.edu>
2498
2499         * read-rtl.c: Fix formatting.
2500         * real.c: Likewise.
2501         * recog.c: Likewise.
2502         * regclass.c: Likewise.
2503         * regmove.c: Likewise.
2504         * reg-stack.c: Likewise.
2505         * reload1.c: Likewise.
2506         * reload.c: Likewise.
2507         * resource.c: Likewise.
2508         * rtlanal.c: Likewise.
2509         * rtl.c: Likewise.
2510         * rtl-error.c: Likewise.
2511
2512 2002-05-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2513
2514         * pa/pa-64.h (MAX_WCHAR_TYPE_SIZE): Delete.
2515         * pa/pa.h (MAX_WCHAR_TYPE_SIZE): Delete.
2516
2517 2002-05-08  Bernd Schmidt  <bernds@redhat.com>
2518
2519         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Tweak previous change to
2520         use __SSE2__ macro instead.
2521         * config/i386/xmmintrin.h: Likewise.
2522
2523 2002-05-08  Janis Johnson  <janis187@us.ibm.com>
2524
2525         * rtl.h (RTL_FLAG_CHECK*): Add an argument for the macro name,
2526         and use it in all invocations of these macros.  Clean up comments.
2527         * rtl.c (rtl_check_failed_flag): Add an argument for the name
2528         of the flag access macro whose check failed.
2529         * doc/rtl.texi (Flags): Document additional flag uses.
2530
2531 2002-05-08  Robert Spier <rspier@pobox.com>
2532             Neil Booth  <neil@daikokuya.demon.co.uk>
2533
2534         PR preprocessor/6521
2535         * cppfiles.c (handle_missing_header): Don't do anything
2536         different for <> includes.
2537 doc:
2538         * cppopts.texi: Update documentation for -MG.
2539
2540 2002-05-08  Neil Booth  <neil@daikokuya.demon.co.uk>
2541
2542         * cpplex.c (cpp_interpret_charconst): Truncate as well as
2543         sign-extend.
2544 doc:
2545         * cpp.texi: Clarify multichar charconst valuation.
2546
2547 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
2548
2549         * doc/invoke.texi: Document -mwindiss option.
2550
2551 2002-05-08  Jason Merrill  <jason@redhat.com>
2552
2553         * dwarf2out.c (output_call_frame_info): Don't emit a CIE with no FDEs.
2554
2555         * dwarf2out.c (gen_type_die): Abort on broken recursion.
2556
2557         PR c++/6381
2558         * dwarf2out.c (rtl_for_decl_location): Only expand INTEGER_CST and
2559         REAL_CST.
2560
2561 2002-05-08  Nick Clifton  <nickc@cambridge.redhat.com>
2562
2563         * config/arm/t-arm-elf (MULTILIB): Do not allow big-endian/
2564         little-endian multilibs to override arm/thumb multilibs.
2565         Do not build hardware floating point multilibs, nor apcs-26
2566         multilibs for the Thumb.
2567
2568 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
2569
2570         PR c/6569.
2571         * varasm.c (mark_weak): New function.
2572         (merge_weak): Use it.  Do not call declare_weak.
2573         (declare_weak): Use merge_weak.
2574
2575 Wed May  8 13:12:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
2576
2577         * cse.c (dead_libcall_p): Update counts.
2578         (delete_trivially_dead_insns): Update call of dead_libcall_p.
2579
2580 Wed May  8 11:08:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
2581
2582         * cfglayout.c (function_tail_eff_head): Rename to ...
2583         (function_footer): ... this one.
2584         (unlink_insn_chain): New functions.
2585         (label_for_bb): Only call block_label and emit debug message.
2586         (record_effective_endpoints): Actually unlink the headers and footers.
2587         (fixup_reorder_cahin): Re-insert the unlinked sequences.
2588         (cfg_layout_duplicate_bb): Use duplicate_insn_chain.
2589         * cfglayout.h (struct reorder_block_def): New fields footer/header;
2590         remove eff_head/eff_end.
2591         * rtl.h (set_first_insn): Declare.
2592         * emit-rtl.c (set_first_insn): New function.
2593
2594         * cfglayout.c (fixup_reorder_chain): Dump duplicated
2595         (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
2596         cfg_layout_duplicate_bb): New global function.
2597         (duplicate_insn_chain): New static function.
2598         * cfglayout.h (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
2599         cfg_layout_duplicate_bb): Declare.
2600         (struct reorder_block_def): Add "original" field.
2601         * emit-rtl.c (emit_copy_of_insn_after): New function.
2602         * rtl.h (emit_copy_of_insn_after): Declare.
2603
2604         * cfglayout.c (fixup_fallthru_exit_predecessor): Kill.
2605         (fixup_reorder_chain): properly handle edges to exit block.
2606
2607 Wed May  8 11:10:31 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2608                                Jan Hubicka  <jh@suse.cz>
2609
2610         * basic-block.h (note_prediction_to_br_prob): declare.
2611         * c-semantics.c: Inlucde predit.h
2612         (expand_stmt): predict GOTO_STMT as not taken.
2613         * cfgcleanup.c: (delete_unreachable_blocks): Make global.
2614         (cleanup_cfg): Do not free tail_recursion_list.
2615         * cfgrtl.c (can_delete_note_p): Delete NOTE_INSN_PREDICTION.
2616         (flow_delete_block): Kill predictions past end of basic block.
2617         * output.h (delete_unreachable_blocks): Declare.
2618         * predict.c (predicted_by_p, process_note_predictions,
2619         process_note_prediction, last_block_p): New function.
2620         (estimate_probability): Bypass loop on PRED_CONTINUE;
2621         do not handle noreturn heuristics; kill PRED_RETURN; add
2622         PRED_EARLY_RETURN.
2623         * predict.def (PRED_CONTINUE, PRED_EARLY_RETURN, PRED_GOTO,
2624         PRED_CONST_RETURN, PRED_NEGATIVE_RETURN, PRED_NULL_RETURN): New.
2625         * predict.h (IS_TAKEN): New constant.
2626         * print-rtl.c (print_rtx): Pretty print NOTE_INSN_PREDICTION.
2627         * rtl.c (NOTE_INSN_PREDICTION): New.
2628         * rtl.h (NOTE_PREDICTION, NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS):
2629         New macro.
2630         (insn_note): add NOTE_INSN_PREDICTION.
2631         * sibcall.c (optimize_sibling_and_tail_recursive_call): Do not build
2632         CFG; free tail_recursion_label_list.
2633         * stmt.c: Include predict.h;
2634         (return_prediction): New.
2635         (expand_value_return): Use it.
2636         * toplev.c: Lower NOTE_INSN_PREDICTION before sibcall.
2637
2638 2002-05-08  Richard Sandiford  <rsandifo@redhat.com>
2639
2640         * config/mips/mips.md: Name the unspecs with define_constant.
2641         (*HILO_delay): Rename to 'hilo_delay' (no star).
2642         (reload_indi): Replace gen_rtx_UNSPEC with gen_hilo_delay.
2643         (reload_outdi, reload_outsi): Likewise.
2644
2645 2002-05-07  Kazu Hirata  <kazu@cs.umass.edu>
2646
2647         * toplev.c: Fix formatting.
2648
2649 2002-05-07  Janis Johnson  <janis187@us.ibm.com>
2650
2651         * config.in (ENABLE_RTL_FLAG_CHECKING): New.
2652         * configure.in (ac_rtlflag_checking): New.
2653         * doc/install.texi (--enable-checking): Document RTL flag checking.
2654
2655 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
2656
2657         * c-common.c (c_common_init): Set options->unsigned_wchar.
2658         * cppinit.c (cpp_create_reader): Default unsigned_wchar,
2659         group target dependencies.
2660         (init_builtins, cpp_handle_option): Update.
2661         * cpplex.c (cpp_interpret_charconst): Update.
2662         * cpplib.h (struct cpp_options): Add unsigned_wchar, rename
2663         signed_char to unsigned_char, group target dependencies.
2664         * defaults.h (WCHAR_UNSIGNED): Remove.
2665         * system.h (WCHAR_UNSIGNED, MAX_CHAR_TYPE_SIZE): Poison.
2666 config:
2667         * freebsd.h, interix.h, alpha/freebsd.h, arm/freebsd.h,
2668         i386/386bsd.h, i386/beos-elf.h, i386/bsd386.h, i386/cygwin.h,
2669         i386/djgpp.h, i386/freebsd-aout.h, i386/i386-interix.h,
2670         i386/win32.h, ia64/freebsd.h, mips/netbsd.h, rs6000/freebsd.h,
2671         sh/elf.h, sh/sh.h, sparc/freebsd.h: Remove WCHAR_UNSIGNED.
2672 doc:
2673         * tm.texi: Remove MAX_CHAR_TYPE_SIZE.
2674
2675 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
2676
2677         * fixinc/inclhack.def (windiss_math1): New fix.
2678         (windiss_math2): Likewise.
2679         (windiss_valist): Likewise.
2680         * fixinc/fixincl.x: Regenerated.
2681
2682 2002-05-07  Andreas Jaeger  <aj@suse.de>
2683
2684         * genautomata.c (output_internal_min_issue_delay_func): Add
2685         ATTRIBUTE_UNUSED to avoid warning with empty dfa.
2686         (output_internal_trans_func): Likewise.
2687
2688 Tue May  7 10:06:22 2002  Jeffrey A Law  (law@redhat.com)
2689
2690         * pa.c (hppa_profile_hook): Use force_reg to get the address
2691         of the profile hook into an appropriate pseudo register.
2692
2693 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
2694
2695         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -mwindiss.
2696         (LINK_START_SPEC): Handle it.
2697         (LINK_OS_SPEC): Likewise.
2698         (CPP_SPEC): Likewise.
2699         (STARTFILE_SPEC): Likewise.
2700         (LIB_SPEC): Likewise.
2701         (ENDFILE_SPEC): Likewise.  Do not assume crtsavres.o is used on
2702         all platforms.
2703         (CRTSAVRES_DEFAULT_SPEC): New macro.
2704         (LIB_WINDISS_SPEC): New macro.
2705         (CPP_OS_WINDISS_SPEC): Likewise.
2706         (STARTFILE_WINDISS_SPEC): Likewise.
2707         (ENDFILE_WINDISS_SPEC): Likewise.
2708         (LINK_START_WINDISS_SPEC): Likewise.
2709         (LINK_OS_WINDISS_SPEC): Likewise.
2710         * config/rs6000/windiss.h: New file.
2711
2712 2002-05-07  Aldy Hernandez  <aldyh@redhat.com>
2713
2714         * config/rs6000/rs6000.c (bdesc_2arg): Fix vmax typos.
2715
2716 2002-05-06  David S. Miller  <davem@redhat.com>
2717
2718         * config/sparc/sparc.md (shift insns): Do not mask off
2719         second operand, 'I' constraint and SHIFT_COUNT_TRUNCATED
2720         take care of it.
2721
2722 2002-05-06  Richard Henderson  <rth@redhat.com>
2723
2724         PR c++/6212
2725         * expr.c (highest_pow2_factor_for_type): New.
2726         (expand_assignment): Use it.
2727
2728 2002-05-06  Aldy Hernandez  <aldyh@redhat.com>
2729
2730         * config/rs6000/rs6000.md ("altivec_mtvscr"): Change to
2731         unspec_volatile.
2732         ("altivec_mfvscr"): Same.
2733
2734 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
2735
2736         * rtl.h (struct rtx_def): Update comments.
2737         (RTL_FLAG_CHECK[12345678]): New.  (rtl_check_failed_flag): Declare.
2738         (RTL_FLAG): New.  (CLEAR_RTX_FLAGS): New.  (flag access macros): Use
2739         RTL_FLAG_CHECK macros with list of expected RTL codes.
2740         * rtl.c (copy_rtx, shallow_copy_rtx): Use RTX_FLAG macro.
2741         (rtl_check_failed_flag): New.
2742         * reload1.c (reload): Use REG macro before changing rtx to MEM.
2743         (reload_cse_noop_set_p): Check rtx code before using access macro.
2744         * config/ia64/ia64.c (process_for_unwind_directive): Check rtx code
2745         before using access macro.
2746
2747 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
2748
2749         * doc/rtl.texi (Flags): Update to reflect current usage.
2750
2751 2002-05-06  Roger Sayle  <roger@eyesopen.com>
2752
2753         PR opt/3995
2754         * fold-const.c (sign_bit_p): New function.
2755         (fold) [EQ_EXPR]: Use this to convert (A & C) == 0 into A >= 0 and
2756         (A & C) != 0 into A < 0, when constant C is the sign bit of A's type.
2757         Reapply fold when converting (A & C) == C into (A & C) != 0.
2758         (fold_binary_op_with_conditional_arg): Fix typo in comment.
2759
2760 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
2761
2762         * c-common.c (warn_multichar): New.
2763         (c_common_init): Set CPP's warn_multichar.
2764         * c-common.h (warn_multichar): New.
2765         * c-decl.c (warn_multichar): Remove.
2766         * c-lex.c (lex_charconst): Update.
2767         * c-tree.h (warn_multichar): Remove.
2768         * cppexp.c (eval_token): Sign-extend charconst value.
2769         * cppinit.c (cpp_create_reader): Set warn_multichar.
2770         * cpplex.c (cpp_interpret_charconst): Don't sign-extend
2771         each character.  Update prototype.  Sign-extend the result.
2772         * cpplib.h: Fix conditions.
2773         (struct cpp_options): Add new warning flag.
2774         (cpp_interpret_charconst): Update prototype.
2775 doc:
2776         * cpp.texi: Update documentation.
2777
2778 2002-05-06  Vladimir Makarov  <vmakarov@redhat.com>
2779
2780         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
2781         Fix typo in usage of allof instead of unit.
2782
2783 2002-05-06  Richard Henderson  <rth@redhat.com>
2784
2785         * recog.c (if_test_bypass_p): Accept multiple set insns for OUT,
2786         and any jump or call for IN.
2787
2788 2002-05-06  Bernd Schmidt  <bernds@redhat.com>
2789
2790         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Define __SSE2_BUILTINS__ if
2791         -msse2.
2792         * config/i386/xmmintrin.h: Use it to conditionalize SSE2 support.
2793
2794 2002-05-06  Roger Sayle  <roger@eyesopen.com>
2795
2796         * fold-const.c (lshift-double): Cast the high word to an unsigned
2797         HOST_WIDE_INT when extracting sign bit to avoid compiler warning.
2798         (div_and_round_double): Cast carry to a signed HOST_WIDE_INT to
2799         avoid compiler warning.  (fold): Remove redundant code from
2800         BIT_AND_EXPR as integer operands are canonicalized to be arg1.
2801
2802 2002-05-06  Jeff Law  <law@redhat.com>
2803
2804         * pa-protos.h (hppa_fpstore_bypass_p): Declare.
2805         * pa.c (pa_adjust_cost): Remove all true dependency cost
2806         adjustments.  Also remove support for non-DFA scheduling.
2807         * pa.md (700, 7100, 7100lc, 7200, 7300): Use bypass mechanism
2808         to adjust true dependency costs.  Update various comments.
2809         (7100lc, 7200, 7300 scheduling): Simplify by combining the
2810         FP ALU & MPY units into a single unit.
2811
2812 2002-05-06  Catherine Moore  <clm@redhat.com>
2813
2814         * config/v850/v850.c (compute_register_save_size): Make sure
2815         to count all of the registers that will be saved.
2816
2817 Mon May  6 18:03:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
2818
2819         * i386.c (q_regs_operand): Use ANY_QI_REGS_P.
2820
2821 2002-05-06  David S. Miller  <davem@redhat.com>
2822
2823         * config/sparc/sparc.c (emit_soft_tfmode_libcall): Do not
2824         allow result to overlap input operands in memory.
2825
2826 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
2827
2828 doc:
2829         * cpp.texi: Update multichar charconst docs.
2830
2831 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
2832
2833         * cpplex.c (cpp_interpret_charconst): Sign-extend each
2834         character.  Don't ignore excess characters.  Treat
2835         multicharacter character constants as signed.
2836         (cpp_parse_escape): Clarify diagnostic.
2837
2838 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
2839
2840         * config/sparc/sparc.md (ashlsi3): If shift count is const1_rtx,
2841         use add instead of shift.
2842         (ashldi3_sp64): Likewise.
2843         (ashlsi3_const1, ashldi3_const1): Remove.
2844         * config/sparc/sparc.h (PREDICATE_CODES): Add const1_operand.
2845         * config/sparc/sparc.c (const1_operand): New.
2846
2847 2002-05-05  Jason Thorpe  <thorpej@wasabisystems.com>
2848
2849         * config.gcc (alpha*-*-netbsd*): Don't use crtstuff.
2850
2851 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
2852
2853         PR target/6561
2854         * config/sparc/sparc.md (muldi3_v8plus): Handle %1 equal to %2.
2855
2856 2002-05-05  Richard Henderson  <rth@redhat.com>
2857
2858         * config/alpha/alpha.c (alpha_adjust_cost): Remove everything but
2859         memory latency adjustments.
2860         (alpha_variable_issue): Remove.
2861         (alpha_use_dfa_pipeline_interface): New.
2862         (alpha_multipass_dfa_lookahead): New.
2863         * config/alpha/alpha.md: Remove define_function_unit scheduling;
2864         include new dfa scheduling.
2865         (attr type): Add none.
2866         (blockage): Use it.
2867         * config/alpha/ev4.md: New.
2868         * config/alpha/ev5.md: New.
2869         * config/alpha/ev6.md: New.
2870
2871 2002-05-05  David S. Miller  <davem@redhat.com>
2872
2873         * recog.c (store_data_bypass_p): Handle CLOBBER inside PARALLEL.
2874
2875 2002-05-05  Kazu Hirata  <kazu@cs.umass.edu>
2876
2877         * cse.c: Fix formatting.
2878         * emit-rtl.c: Likewise.
2879
2880 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
2881
2882         * genautomata.c (initiate_states): Add additional guard to
2883         initialize `units_array'.
2884
2885 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
2886
2887         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp,
2888         process_unit_to_form_the_same_automaton_unit_lists,
2889         form_the_same_automaton_unit_lists
2890         check_unit_distributions_to_automata): New prototypes and
2891         functions.
2892         (check_automata): Rename it into `check_automata_insn_issues'.
2893         (unit_decl): New fields `the_same_automaton_unit' and
2894         `the_same_automaton_message_reported_p'.
2895         (unit_decl_t): New typedef.
2896         (the_same_automaton_lists): New gloval variable.
2897         (unit_regexp, unit_set_el, units_array, units_cmp,
2898         output_get_cpu_unit_code_func): Use the typedef.
2899         (evaluate_max_reserv_cycles): Increment
2900         `description->max_insn_reserv_cycles'.
2901         (initiate_states): Don't increment `max_cycles_num'.
2902         (transform_insn_regexps): Move code around transformation of
2903         regexps from `generate'.
2904         (generate): Remove call of `transform_insn_regexps'.
2905         (expand_automata): Call `transform_insn_regexps' and
2906         `check_unit_distributions_to_automata'.  Check errors before
2907         `generate'.
2908
2909         * config/sparc/ultra3.md (us3_a0, us3_a1): Move the units into
2910         automaton `ultrasparc3_1'.
2911
2912 2002-05-05  Neil Booth  <neil@daikokuya.demon.co.uk>
2913
2914         * c-common.c (c_common_init): Set up CPP arithmetic.
2915         * cppinit.c (cpp_create_reader): Default CPP arithmetic to
2916         something reasonable for the host.
2917         (sanity_checks): Add checks.
2918         (cpp_read_main_file): Call sanity_checks() from here...
2919         (cpp_post_options): ... not here.
2920         * cpplex.c (cpp_interpret_charconst): Get max_chars right.
2921         * cpplib.h (struct cpp_options): New member int_precision.
2922
2923 2002-05-05  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2924
2925         * doc/install.texi (powerpc-*-linux-gnu*): Update build requirements.
2926
2927 2002-05-04  David S. Miller  <davem@redhat.com>
2928
2929         * config/sparc/linux.h, config/sparc/linux64.h
2930         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define twice.
2931
2932         * config/sparc/sparc.c (sparc_rtx_costs): Describe costs of
2933         more RTX codes.
2934         * config/sparc/sparc.h (RTX_COSTS_CASES): List those new codes.
2935
2936         * recog.c (store_data_bypass_p): Handle out_insn being a PARALLEL
2937         of SETs.
2938
2939 2002-05-05  Tim Josling  <tej@melbpc.org.au>
2940
2941         * treelang; New directory for new sample language treelang.
2942
2943 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
2944
2945         * Makefile.in (c-lex.o): Update.
2946         * c-lex.c: Include target.h.
2947         (cb_register_builtins): New.
2948         (init_c_lex): Set builtins callback.
2949         * c-lex.h (cpp_define, cpp_assert): New prototypes.
2950         * cppinit.c (init_builtins): Use callback, including for
2951         GXX_WEAK.
2952         * cpplib.h (struct cpp_callbacks): New member.
2953         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): New.
2954         (TARGET_INITIALIZER): Update.
2955         * target.h (struct gcc_target): New hook.
2956         * tree.c (default_register_cpp_builtins): New.
2957         * tree.h (default_register_cpp_builtins): New.
2958 doc:
2959         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Document.
2960
2961 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
2962
2963         * cppinit.c (MAX_WCHAR_TYPE_SIZE): Move to cpplib.h
2964         (cpp_post_options): Move sanity checks to...
2965         (sanity_checks): New.
2966         * cpplex.c (maybe_read_ucs): Fix prototype.
2967         (parse_string, cpp_parse_escape): Cast for %c format specifier.
2968         * cpplib.h (cppchar_t): Use unsigned long or unsigned long long
2969         if necessary.
2970
2971 2002-05-04  Bernd Schmidt  <bernds@redhat.com>
2972
2973         * config/i386/i386.c (bdesc_2arg): Add a couple of missing SSE2
2974         builtins.  Use V2DI patterns instead of TI for logical operations.
2975         (ix86_init_mmx_sse_builtins): Add a couple of missing SSE2 builtins.
2976         Correct definitions of psadbw, pmovmskb128, movntdq, cvtdq2ps.
2977         (ix86_expand_builtins): Change the pattern used for movntdq.
2978         * config/i386/i386.md (sse2_andv2di3, sse2_iorv2di3, sse2_xorv2di3,
2979         sse2_nandv2di3): New patterns.
2980         (sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3): Correct modes
2981         on operands.
2982         (sse2_movntv2di): Renamed from sse2_movntti and modes adjusted.
2983         (cvtdq2pd): Correct mode on operand 1.
2984         (sse2_umulsidi3): Describe without unspec.
2985         (sse2_psadbw, mmx_psadbw): Describe with unspec; use more appropriate
2986         machine modes.
2987         (lshrv2di3): Renamed from sse2_lshrv2di3 and removed unspec.
2988         (ashlv2di3): Likewise, from sse2_ashlv2di3.
2989         (ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3,
2990         ashlv4si3, ashlv2di3): Use SImode for shift count.
2991         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti, lshrv2di3_ti,
2992         lshrv4si3_ti, lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti):
2993         New patterns.
2994         * config/i386/xmmintrin.h (__v2df, __v2di, __v4si, __v8hi, __v16qi):
2995         New typedefs.
2996         (__m128i, __m128d): New macros.
2997         (_mm_add_pd, _mm_add_sd, _mm_sub_pd, _mm_sub_sd, _mm_mul_pd,
2998         _mm_mul_sd, _mm_div_pd, _mm_div_sd, _mm_sqrt_pd, _mm_sqrt_sd,
2999         _mm_min_pd, _mm_min_sd, _mm_max_sd, _mm_max_pd, _mm_and_pd,
3000         _mm_andnot_pd, _mm_xor_pd, _mm_or_pd, _mm_cmpeq_pd, _mm_cmplt_pd,
3001         _mm_cmple_pd, _mm_cmpgt_pd, _mm_cmpge_pd, _mm_cmpneq_pd,
3002         _mm_cmpnlt_pd, _mm_cmpnle_pd, _mm_cmpngt_pd, _mm_cmpnge_pd,
3003         _mm_cmpord_pd, _mm_cmpunord_pd, _mm_cmpeq_sd, _mm_cmplt_sd,
3004         _mm_cmple_sd, _mm_cmpgt_sd, _mm_cmpge_sd, _mm_cmpneq_sd,
3005         _mm_cmpnlt_sd, _mm_cmpnle_sd, _mm_cmpngt_sd, _mm_cmpnge_sd,
3006         _mm_cmpord_sd, _mm_cmpunord_sd, _mm_comieq_sd, _mm_comilt_sd,
3007         _mm_comile_sd, _mm_comigt_sd, _mm_comige_sd, _mm_comineq_sd,
3008         _mm_ucomieq_sd, _mm_ucomieq_sd, _mm_ucomilt_sd, _mm_ucomile_sd,
3009         _mm_ucomigt_sd, _mm_ucomige_sd, _mm_ucomineq_sd, _mm_cvtepi32_pd,
3010         _mm_cvtepi32_ps, _mm_cvtpd_epi32, _mm_cvtpd_pi32, _mm_cvtpd_ps,
3011         _mm_cvttpd_epi32, _mm_cvttpd_pi32, _mm_cvtpi32_pd, _mm_cvtps_epi32,
3012         _mm_cvttps_epi32, _mm_cvtps_pd, _mm_cvtsd_si32, _mm_cvttsd_si32,
3013         _mm_cvtsd_ss, _mm_cvtsi32_sd, _mm_cvtss_sd, _mm_unpackhi_pd,
3014         _mm_unpacklo_pd, _mm_loadh_pd, _mm_storeh_pd, _mm_storel_pd,
3015         _mm_movemask_pd, _mm_packs_epi16, _mm_packs_epi32, _mm_packus_epi16,
3016         _mm_unpackhi_epi8, _mm_unpackhi_epi16, _mm_unpackhi_epi32,
3017         _mm_unpacklo_epi8, _mm_unpacklo_epi16, _mm_unpacklo_epi32,
3018         _mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
3019         _mm_adds_epi8, _mm_adds_epi16, _mm_adds_epu8, _mm_adds_epu16,
3020         _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
3021         _mm_subs_epi8, _mm_subs_epi16, _mm_subs_epu8, _mm_subs_epu16,
3022         _mm_madd_epi16, _mm_mulhi_epi16, _mm_mullo_epi16, _mm_mul_pu16,
3023         _mm_mul_epu16, _mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64,
3024         _mm_sra_epi16, _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32,
3025         _mm_srl_epi64, _mm_slli_epi16, _mm_slli_epi32, _mm_slli_epi64,
3026         _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
3027         _mm_srli_epi64, _mm_and_si128, _mm_andnot_si128, _mm_or_si128,
3028         _mm_xor_si128, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
3029         _mm_cmpgt_epi8, _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_max_epi16,
3030         _mm_max_epu8, _mm_min_epi16, _mm_min_epu8, _mm_movemask_epi8,
3031         _mm_mulhi_epu16, _mm_maskmoveu_si128, _mm_avg_epu8, _mm_avg_epu16,
3032         _mm_sad_epu8, _mm_stream_si32, _mm_stream_si128, _mm_stream_pd,
3033         _mm_movpi64_epi64, _mm_clflush, _mm_lfence, _mm_mfence): New
3034         functions.
3035         (_mm_shufflehi_epi16, _mm_shufflelo_epi16, _mm_shuffle_epi32,
3036         _mm_extract_epi16, _mm_insert_epi16, _mm_shuffle_pd): New macros.
3037
3038 2002-05-04  Kazu Hirata  <kazu@cs.umass.edu>
3039
3040         * dwarf2out.c: Fix formatting.
3041         * varasm.c: Likewise.
3042
3043 2002-05-04  David Edelsohn  <edelsohn@gnu.org>
3044
3045         PR c/6543
3046         * config/rs6000/rs6000.md (sCC pattern and splitter): Remove
3047         clobber and use result as temporary value.
3048
3049 Sat May  4 13:20:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
3050
3051         * expr.c (force_operand): Use expand_simple_* to handle more
3052         cases.
3053
3054 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
3055
3056         * c-lex.c (lex_string): Let cpp_parse_escape handles truncation
3057         and sign-extension.
3058         (lex_charconst): Update for change in prototype of
3059         cpp_interpret_charconst.  Extend from cppchar_t to HOST_WIDE_INT
3060         appropriately.
3061         * cpphash.h (BITS_PER_CPPCHAR_T): New.
3062         * cppinit.c (cpp_create_reader): Initialize them for no
3063         change in semantics.
3064         (cpp_post_options): Add sanity checks.
3065         * cpplex.c (cpp_parse_escape): Handle precision, sign-extension
3066         and truncation issues.  Calculate in type cppchar_t.
3067         (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Remove.
3068         (cpp_interpret_charconst): Calculate in type cppchar_t.  Handle
3069         run-time dependent precision correctly.  Return whether the
3070         result is signed or not.
3071         * cpplib.c (dequote_string): Use cppchar_t; update.
3072         * cpplib.h (cppchar_signed_t): New.
3073         struct cpp_options): New precision members.
3074         (cpp_interpret_charconst, cpp_parse_escape): Update prototypes.
3075         * cppexp.c (eval_token): Update.
3076
3077 2002-05-03  David S. Miller  <davem@redhat.com>
3078
3079         * config/sparc/sparc-protos.h (sparc_rtx_costs): New.
3080         * config/sparc/sparc.c (sparc_rtx_costs): New function
3081         implementing RTX_COSTS and CONST_COSTS.
3082         * config/sparc/sparc.h (CONST_COSTS): Delete.
3083         (RTX_COSTS_CASES): Define.
3084         (RTX_COSTS): Expand RTX_COSTS_CASES and use sparc_rtx_costs to do
3085         the work.
3086
3087         * config/sparc/sparc.md (DFA schedulers): Split out...
3088         * config/sparc/cypress.md, config/sparc/hypersparc.md,
3089         config/sparc/sparclet.md, config/sparc/supersparc.md,
3090         config/sparc/ultra1_2.md, config/sparc/ultra3.md: ... into here.
3091
3092         * config/sparc/sparc.c (LEAF_REGISTERS): Do not do ifdef
3093         checks on it, always defined for Sparc.
3094
3095         * config/sparc/sparc.h (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER):
3096         Tweak, and add more detailed comments.
3097
3098 2002-05-03  Zack Weinberg  <zack@codesourcery.com>
3099
3100         * Re-apply patch accidentally reverted with
3101         DFA scheduler merge: remove all rules and variables to slurp
3102         source files out of libiberty and rebuild them with HOST_CC.
3103         ($(HOST_PREFIX_1)varray.o): New rule.
3104         (genattrtab rule): Word wrap.
3105
3106 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
3107
3108         * config/i386/netbsd64.h (CPP_LP64_SPEC): Define.
3109         (CPP_SUBTARGET_SPEC): Define.
3110         (SUBTARGET_EXTRA_SPECS): Redefine, adding cpp_lp64 and
3111         cpp_subtarget specs.
3112         (CPP_SPEC): Redefine to include %(cpp_subtarget).
3113
3114 2002-05-03  David S. Miller  <davem@redhat.com>
3115
3116         * target-defs.h (TARGET_SCHED_CYCLE_DISPLAY): Delete.
3117         * target.h (struct gcc_target): Delete cycle_display member.
3118
3119         * config/ia64/ia64.c (ia64_emit_insn_before): Put it back.
3120         (rtx_needs_barrier): Delete reference to cycle_display unspec.
3121         (ia64_sched_reorder2): Mention need for cycle display handling
3122         once such notes exist.
3123
3124 2002-05-03  Richard Henderson  <rth@redhat.com>
3125
3126         * real.c (etoasc): Strip most trailing zeros for clarity.
3127         * sched-vis.c: Include real.h.
3128         (print_value): Use REAL_VALUE_TO_DECIMAL as needed.
3129         * Makefile.in (sched-vis.o): Add real.h.
3130
3131 2002-05-03  David S. Miller  <davem@redhat.com>
3132
3133         * haifa-sched.c (rank_for_schedule): Revert 2002-05-02 change,
3134         no longer needed.
3135
3136 2002-05-03  Aldy Hernandez  <aldyh@redhat.com>
3137
3138         * config/rs6000/rs6000.c (altivec_expand_binop_builtin): Error out
3139         when we get an out of range literal.
3140         (altivec_expand_ternop_builtin): Same.
3141         (altivec_expand_unop_builtin): Same.
3142         (altivec_expand_builtin): Same, for dss.
3143         (altivec_expand_builtin): Use trees instead of rtl when
3144         determining literal argument validity.
3145
3146 2002-05-03  David S. Miller  <davem@redhat.com>
3147
3148         Delete cycle display scheduling hook.
3149         * config/ia64/ia64.c (ia64_cycle_display,
3150         TARGET_SCHED_CYCLE_DISPLAY, ia64_emit_insn_before): Delete.
3151         (ia64_sched_reorder2): Don't check for CODE_FOR_cycle_display
3152         and use emit_insn_before instead of ia64_emit_insn_before.
3153         * config/ia64/ia64.md (unspec usage): Delete cycle display.
3154         (cycle_display): Delete insn pattern.
3155         * config/sparc/sparc.md (unspec usage): Delete cycle display.
3156         (cycle_display): Delete insn pattern.
3157         * config/sparc/sparc.c (sparc_cycle_display,
3158         TARGET_SCHED_CYCLE_DISPLAY): Delete.
3159         * doc/md.texi (cycle_display): Don't mention.
3160         * doc/tm.texi (TARGET_SCHED_CYCLE_DISPLAY): Likewise.
3161
3162 2002-05-03  Richard Henderson  <rth@redhat.com>
3163
3164         * recog.c (store_data_bypass_p, if_test_bypass_p): New.
3165         * recog.h: Declare them.
3166
3167         * config/sparc/sparc.c (ultrasparc_store_bypass_p): Remove.
3168         * config/sparc/sparc.md: Use store_data_bypass_p instead.
3169         * config/sparc/sparc-protos.h: Update.
3170
3171 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
3172
3173         * config/sparc/netbsd-elf.c (CPP_SUBTARGET_SPEC64): Remove
3174         -D__arch64__.  Add -D_LP64.
3175         (CPP_ARCH32_SPEC): Redefine to match the non-bi-arch version
3176         from sparc.h.
3177         (CPP_ARCH64_SPEC): Likewise.
3178         (NO_BUILTIN_PTRDIFF_TYPE): Undef.
3179         (NO_BUILTIN_SIZE_TYPE): Undef.
3180
3181 2002-05-03  Vladimir Makarov  <vmakarov@redhat.com>
3182
3183         * genautomata.c (min_issue_delay_pass_states): Change return type
3184         in the prototype.
3185         (min_issue_delay_pass_states): Change the algorithm.
3186         (min_issue_delay): Set up min_insn_issue_delay for the state.
3187         (output_min_issue_delay_table): Interchange the nested loops and
3188         and initiate min_insn_issue_delay for states.
3189
3190 Fri May  3 22:59:15 CEST 2002  Jan Hubicka  <jh@suse.cz>
3191
3192         * cfgcleanup.c (try_optimize_cfg):  Call merge_block only when
3193         jump is simplejump.
3194
3195 Fri May  3 22:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>
3196
3197         * i386.c  (expand_movstr, expand_clrstr): Fix inline-all-stringops
3198         sequence.
3199
3200 2002-05-03  Richard Henderson  <rth@redhat.com>
3201
3202         PR opt/6534
3203         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
3204         noce_try_store_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
3205         noce_try_cmove_arith, noce_try_minmax, noce_try_abs): Insert new
3206         code before JUMP, not EARLIEST.
3207
3208 2002-05-03  Joseph S. Myers  <jsm28@cam.ac.uk>
3209
3210         * c-format.c (check_format_info_main): Don't check for presence of
3211         parameter for * width until after operand number has been read,
3212         and only check for it if format parameters are available.
3213         Fixes PR c/6547.
3214
3215 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
3216
3217         * config/alpha/netbsd.h (CPP_PREDEFINES): Add -D_LP64.
3218         (LINK_SPEC): Undef before defining.
3219
3220 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
3221
3222         PR preprocessor/6489
3223         * tradcpp.c (fixup_newlines): New.
3224         (main, finclude): Use it.
3225
3226 2002-05-03  Richard Sandiford  <rsandifo@redhat.com>
3227
3228         * config/mips/elf64.h (UNIQUE_SECTION): Use mips_unique_section.
3229         * config/mips/mips.c (mips_unique_section): Strip encoding from
3230         decl name.
3231
3232 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
3233
3234         * config/i386/i386.c (ix86_expand_int_movcc): Truncate to proper
3235         mode.
3236
3237 2002-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3238
3239         * doc/install.texi (Installing): Mention GCC 3.1 buildstats.
3240         (Specific): Removed buildstats references.
3241         (Specific, hppa*-hp-hpux11): Adjust for GCC versions > 3.0.
3242         (Specific, sparc-sun-solaris2*): Update 64-bit hints for GCC 3.1.
3243         Accomodate Solaris versions beyond 8.
3244         (Specific, sparc-sun-solaris2.7): Update as path for GCC 3.1.
3245         (Specific, *-*-solaris2.8): Removed, obsolete.
3246
3247 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
3248
3249         PR target/6542
3250         * config/sparc/sparc.h (leaf_reg_remap): Remove const.
3251         (CONDITIONAL_REGISTER_USAGE): For TARGET_FLAT make
3252         fill leaf_reg_remap with identity.
3253         * config/sparc/sparc.c (leaf_reg_remap): Remove const.
3254
3255 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
3256
3257         * config/h8300/crti.asm: Remove trailing spaces.
3258         * config/h8300/h8300.c: Likewise.
3259         * config/h8300/lib1funcs.asm: Likewise.
3260
3261 2002-05-02  Jason Merrill  <jason@redhat.com>
3262
3263         * defaults.h (BOOL_TYPE_SIZE): Move default here from cp/decl.c.
3264         * c-decl.c (c_init_decl_processing): Use it.
3265         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Define to INT_TYPE_SIZE.
3266         * config/i960/i960.h (BOOL_TYPE_SIZE): Don't define.
3267         * config/mcore/mcore.h (BOOL_TYPE_SIZE): Don't define.
3268
3269 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
3270
3271         * regrename.c: Fix formatting.
3272         * tree.c: Likewise.
3273
3274 Fri May  3 13:34:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
3275
3276         * i386.md (attribute memory): Handle compares properly.
3277
3278 Fri May  3 10:51:38 CEST 2002  Jan Hubicka  <jh@suse.cz>
3279
3280         * i386.md (sse_clrsf, sse_clrsi): Set memory attribute
3281         to none.
3282
3283 2002-05-02  Kazu Hirata  <kazu@cs.umass.edu>
3284
3285         * function.c: Fix formatting.
3286
3287 2002-05-02  Jan Hubicka  <jh@suse.cz>
3288
3289         * haifa-sched.c (schedule_insn): Print table of instructions and
3290         reservations.
3291         (sched_block): Do not print ready list at verbosity level 1.
3292         * sched-vis.c (print_insn): Make global.
3293         * sched-ebb.c (ebb_print_insn): Rename from...
3294         (print_insn): ... this one.
3295         * sched-int.h (print_insn): Declare
3296
3297 2002-05-02  Richard Henderson  <rth@redhat.com>
3298
3299         * haifa-sched.c (rank_for_schedule): Skip past last_scheduled_insn
3300         emitted by cycle_display.
3301
3302 2002-05-02  Loren J. Rittle  <ljrittle@acm.org>
3303
3304         * doc/install.texi (*-*-freebsd*): Update to latest status.
3305
3306 2002-05-02  Jakub Jelinek  <jakub@redhat.com>
3307
3308         PR target/6540
3309         * config.gcc (sparc*-*-solaris2*): Set float_format to i128.
3310         * config/float-sparc.h: Assume 128-bit long double if
3311         __LONG_DOUBLE_128__ is defined.
3312
3313 2002-05-02  Vladimir Makarov  <vmakarov@redhat.com>
3314
3315         * genattrtab.c (write_function_unit_info): Add a dummy element
3316         when num_units == 0.
3317
3318 2002-05-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
3319
3320         * predict.c: (propagate_freq, estimate_bb_frequencies): Use
3321         TYPE_MODE (double_type_node) instead of DFmode.
3322
3323 Thu May  2 19:50:04 CEST 2002  Jan Hubicka  <jh@suse.cz>
3324
3325         * cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computed
3326         jumps post reload.
3327         * toplev.c (rest_of_compilation): Revert Richard's patch.
3328
3329 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3330
3331         * pa/x-ada (ADA_CFLAGS): Rename to X_ADA_CFLAGS.
3332
3333 2002-05-02  Catherine Moore  <clm@redhat.com>
3334
3335         * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Change r5 to r20.
3336
3337 2002-05-02  Kazu Hirata  <kazu@hxi.com>
3338
3339         * combine.c: Fix comment typos.
3340         * expr.c: Likewise.
3341         * genautomata.c: Likewise.
3342         * stmt.c: Likewise.
3343         * tree.h: Likewise.
3344
3345 2002-05-02  Joseph S. Myers  <jsm28@cam.ac.uk>
3346
3347         * doc/install.texi: State GNAT version requirements.
3348
3349 2002-05-02  Nick Clifton  <nickc@cambridge.redhat.com>
3350
3351         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Accept any form
3352         of the frame pointer or arg pointer register which strict register
3353         checking is not enabled.
3354
3355 2002-05-02  Aldy Hernandez  <aldyh@redhat.com>
3356
3357         * gcc.dg/altivec-8.c: New.
3358
3359         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
3360         PRE_INC and PRE_DEC for altivec modes.
3361
3362 2002-05-01  Bruce Korb  <bkorb@gnu.org>
3363
3364         * fixinc/check.tpl(set-writable): make sure the function exists first
3365         * fixinc/inclhack.def(alpha_assert): fix test_text
3366         * fixinc/tests/base/assert.h: add in missing result
3367
3368 2002-05-01  Jeff Law  <law@redhat.com>
3369
3370         * pa.h (EXTRA_CONSTRAINT): Don't accept PIC addresses for the
3371         'T' constraint.
3372
3373 2002-05-01  Joel Brobecker  <brobecker@gnat.com>
3374
3375         * dbxout.c (dbxout_type): Emit size information for range types,
3376         as well, but only when using GDB extensions.
3377
3378 2002-05-01  Richard Henderson  <rth@redhat.com>
3379
3380         * configure.in (HAVE_GAS_HIDDEN): Replace SPARC feature test with
3381         target-independent gnu binutils date test.
3382
3383 2002-05-01  Richard Henderson  <rth@redhat.com>
3384
3385         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Emit dump
3386         info before expunging the block.
3387
3388 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
3389
3390         * cppinit.c (cpp_handle_option) [-dM]: Don't set no_output here...
3391         (cpp_post_options): ...but here.  Disable -dD, -dN and -dI when
3392         -M -or -MM is in effect.
3393
3394 2002-05-01  Zack Weinberg  <zack@codesourcery.com>
3395
3396         * config.gcc: Correct test of --enable-obsolete.  Obsolete all
3397         A29k configurations.
3398         * doc/install.texi: Update to match.
3399
3400 2002-05-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3401
3402         PR bootstrap/6514
3403         * varasm.c (globalize_decl): Compare DECL_ASSEMBLER_NAME to check
3404         for duplicates. Always loop over whole list.
3405
3406 Wed May  1 10:32:37 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3407
3408         * reload.c (find_reloads, case 'p'): Set BADOP to 0.
3409
3410 2002-05-01      Joel Sherrill <joel@OARcorp.com>
3411
3412         * config/sparc/t-elf (sparc-rtems, sparc-elf): Build assembly
3413         support routines.
3414
3415 2002-05-01      Joel Sherrill <joel@OARcorp.com>
3416
3417         * config/arm/rtems-elf.h: Add #undef TARGET_VERSION to prevent warning.
3418
3419 2002-05-01  David Edelsohn  <edelsohn@gnu.org>
3420
3421         * rs6000.md (abssi2_nopower): Convert to define_insn_and_split.
3422         (nabs_nopower): Same.
3423         (floatdisf2): New pattern.
3424         (absdi2): Convert to define_insn_and_split.
3425         (nabsdi2): Same.
3426         (trunctfsf2): Same.
3427         (floatditf2): Same.
3428         (floatsitf2): Same.
3429         (fix_trunctfdi2): Same.
3430         (fix_trunctfsi2): Same.
3431
3432 2002-05-01  Joseph S. Myers  <jsm28@cam.ac.uk>
3433
3434         * doc/install.texi: Update Texinfo version requirement
3435         documentation.
3436
3437 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
3438
3439         PR target/6512, PR target/5628
3440         * config/sparc/sparc.md (movdf_insn_v9only_novis): Don't allow >= %f32
3441         when memory is not aligned.
3442         (movdf_insn_v9only_vis): Likewise.
3443         * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Request a FP_REGS
3444         temporary for EXTRA_FP_REGS DFmode load from unaligned memory.
3445         (SECONDARY_OUTPUT_RELOAD_CLASS): Similarly.
3446
3447 2002-05-01  Aldy Hernandez  <aldyh@redhat.com>
3448
3449         * gcc.dg/altivec-7.c: New.
3450
3451         * config/rs6000/altivec.h: Cleanup.
3452
3453 2002-04-30  Aldy Hernandez  <aldyh@redhat.com>
3454
3455         * doc/invoke.texi (Option Summary): Add -mvrsave=.
3456         (RS/6000 and PowerPC Options): Document -mvrsave=.
3457
3458         * config/rs6000/rs6000.c (rs6000_altivec_vrsave): New global.
3459         (rs6000_altivec_vrsave_string): Same.
3460         (rs6000_override_options): Call rs6000_parse_vrsave_option.
3461         (rs6000_parse_vrsave_option): New.
3462         (rs6000_stack_info): Only generate vrsave instructions when
3463         TARGET_ALTIVEC_VRSAVE.
3464
3465         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -mvrsave= option.
3466         (rs6000_altivec_vrsave_string): Define extern.
3467         (rs6000_altivec_vrsave): Same.
3468         (TARGET_ALTIVEC_VRSAVE): New.
3469
3470 2002-04-30  Richard Henderson  <rth@redhat.com>
3471
3472         PR opt/6516
3473         * toplev.c (rest_of_compilation): Don't run cross-jump before
3474         bb-reorder.
3475
3476 2002-04-30  Tom Rix  <trix@redhat.com>
3477
3478         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Sanity
3479         check which_alternative.
3480
3481 2002-04-30  Kazu Hirata  <kazu@hxi.com>
3482
3483         * cpplex.c: Fix comment formatting.
3484         * function.c: Likewise.
3485         * integrate.c: Likewise.
3486         * regrename.c: Likewise.
3487         * sibcall.c: Likewise.
3488         * simplify-rtx.c: Likewise.
3489         * tree-inline.c: Likewise.
3490
3491 2002-04-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3492
3493         * config.gcc (hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-rtems*,
3494         hppa1.0-*-osf*, hppa1.1-*-bsd*, hppa1.1-*-hpux10*, hppa2*-*-hpux10*,
3495         hppa1.0-*-hpux10*, hppa*64*-*-hpux11*, hppa1.1-*-hpux11*,
3496         hppa2*-*-hpux11*, hppa1.0-*-hpux11*, hppa*-*-lites*): Define xmake_file.
3497         * pa/t-linux, pa/t-pa, pa/t-pa64, t-pro (T_ADAFLAGS): Delete.
3498         * pa/x-ada: New file.  Define ADA_CFLAGS.
3499
3500 2002-04-30  Hans-Peter Nilsson  <hp@bitrange.com>
3501
3502         * config/mmix/mmix.h (MMIX_LAST_STACK_REGISTER_REGNUM): Renamed
3503         from MMIX_LAST_REGISTER_FILE_REGNUM.
3504         (NO_IMPLICIT_EXTERN_C): Remove cryptic obsolete comment.
3505         (struct machine_function): New member highest_saved_stack_register
3506         previously static variable in mmix.c.
3507         (MACHINE_DEPENDENT_REORG): Define.
3508         * config/mmix/mmix.c (highest_saved_stack_register): Deleted.
3509         (MMIX_OUTPUT_REGNO): New.
3510         (mmix_target_asm_function_prologue): Move calculation of last used
3511         saved-stack-register into...
3512         (mmix_machine_dependent_reorg): New function.  Update to also handle
3513         !TARGET_ABI_GNU.
3514         (mmix_print_operand): Apply MMIX_OUTPUT_REGNO when emitting
3515         register names, simplify somewhat by new variable regno.
3516         <case 'p'>: Remove fixed FIXME.  Always emit highest used saved
3517         register.
3518         (mmix_print_operand_address): Apply MMIX_OUTPUT_REGNO when
3519         emitting register names.
3520         (mmix_asm_output_reg_push, mmix_asm_output_reg_pop): Ditto.
3521         (mmix_dbx_register_number): Apply MMIX_OUTPUT_REGNO here too.
3522         Remove fixed FIXME.
3523         * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg):
3524         Declare.
3525
3526         * config/mmix/mmix.md ("divmoddi4"): Update head comment.
3527
3528 2002-04-30  Richard Henderson  <rth@redhat.com>
3529
3530         * config/sparc/sparc.c (emit_soft_tfmode_libcall,
3531         emit_soft_tfmode_binop, emit_soft_tfmode_unop, emit_soft_tfmode_cvt,
3532         emit_hard_tfmode_operation, emit_tfmode_binop, emit_tfmode_unop,
3533         emit_tfmode_cvt): New.
3534         * config/sparc/sparc.md (extendsftf2, extenddftf2, trunctfsf2,
3535         trunctfdf2, floatsitf2, floatunssitf2, floatditf2, floatunsditf2,
3536         fix_trunctfsi2, fixuns_trunctfsi2, fix_trunctfdi2, fixuns_trunctfdi2,
3537         addtf3, subtf3, multf3, divtf3, sqrttf2): Use them.
3538         * config/sparc/sparc-protos.h: Update.
3539
3540 2002-04-30  Janis Johnson  <janis187@us.ibm.com>
3541
3542         * install.texi (Final install): Add to the list of info to include
3543         in a report of a successful bootstrap, and add link to 3.1 list.
3544
3545 Tue Apr 30 19:15:36 CEST 2002  Jan Hubicka  <jh@suse.cz>
3546
3547         * i386.md (type): Add new SSE/MMX subtypes, remove usused fop1.
3548         (mode): Add vector modes
3549         (i387): Kill attribute.
3550         (unit): New attribute.
3551         (length_immediate): Grok new types.
3552         (prefix_data16, prefix_rep, prefix_0f): Fix for SSE/MMX.
3553         (modrm): Use "unit".
3554         (memory): Handle MMX/SSE properly.
3555         (scheduling descriptions): Kill uses of fop1.
3556         (sse, mmx, fp patterns): Set type and mode properly.
3557
3558 Tue Apr 30 09:31:59 2002  Jeffrey A Law  (law@cygnus.com)
3559
3560         * pa.c (override_options): Default to PA8000 scheduling.
3561         * doc/invoke.texi (HP-PA options): Mention newly added 7300
3562         scheduling parameter.
3563
3564         * pa.md (7100lc, 7200, 7300 scheduling): Slightly refine
3565         handling of double precision multiplies.
3566
3567         * pa.md (7100lc, 7200, 7300 scheduling): Refine handling of
3568         fpdiv and fpsqrt instructions.
3569         (7200 & 7300 scheduling): Fix typo in handling of
3570         store-load and store-store penalties.
3571
3572 2002-04-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3573
3574         * doc/contrib.texi (Contributors): Use MIPS instead of Mips and
3575         mips.  Add two missing commas.
3576
3577 2002-04-30  Paolo Carlini  <pcarlini@unitus.it>
3578
3579         * doc/contrib.texi (Contributors): Update Paolo Carlini's
3580         and Benjamin Kosnik's entries.
3581
3582 2002-04-29  David S. Miller  <davem@redhat.com>
3583
3584         * config/sparc/sparc.h (BRANCH_COST, PREFETCH_BLOCK,
3585         SIMULTANEOUS_PREFETCHES): Tune for UltraSPARC-III.
3586         * config/sparc/sparc.md (call + jmp 32-bit peepholes): Likewise.
3587         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
3588
3589 2002-04-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3590
3591         * combine.c (find_split_point): Use gen_int_mode.
3592
3593 2002-04-29  Vladimir Makarov  <vmakarov@redhat.com>
3594
3595         Merging code from dfa-branch:
3596
3597         2002-04-24  Vladimir Makarov  <vmakarov@redhat.com>
3598
3599         * genautomata.c (output_reserv_sets): Fix typo.
3600
3601         2002-04-23  Vladimir Makarov  <vmakarov@redhat.com>
3602
3603         * genautomata.c (output_reserv_sets): Remove
3604         next_cycle_output_flag.
3605
3606         Thu Apr 18 08:57:06 2002  Jeffrey A Law  (law@redhat.com)
3607
3608         * sched-rgn.c (init_ready_list): Make the DFA code handle
3609         USE/CLOBBER insns in the same way as the traditional
3610         scheduler.
3611         (new_ready): Similarly..
3612
3613         2002-04-17  Vladimir Makarov  <vmakarov@redhat.com>
3614
3615         * haifa-sched.c (schedule_block): Change the DFA state only after
3616         issuing insn.
3617
3618         Wed Apr 17 15:38:36 2002  Jeffrey A Law  (law@redhat.com)
3619
3620         * pa.c (hppa_use_dfa_pipeline_interface): New function.
3621         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
3622         (override_options): Add PA7300 scheduling support.
3623         (pa_adjust_cost): Update various comments.  Properly
3624         handle anti and output dependencies when using the
3625         DFA scheduler.
3626         (pa_issue_rate): Add PA7300 scheduling support.
3627         (pa_can_combine_p): Call extract_insn before calling
3628         constrain_operands (taken from mainline tree).
3629         * pa.h (enum processor_type): Add PROCESSOR_PA7300.
3630         * pa.md (cpu attr): Add 7300.  Rewrite pipeline
3631         descriptions using DFA descriptions.  Add PA7300
3632         scheduling support.
3633
3634         2002-03-30  David S. Miller  <davem@redhat.com>
3635
3636         Add UltraSPARC-III DFA scheduling support.
3637         * config/sparc/sparc.md (define_attr type): Add fpcrmove.
3638         Update FP conditional move on register insn patterns to use it, as
3639         appropriate.
3640         (define_attr cpu): Add ultrasparc3.
3641         (define_attr us3load_type): New, update integer load patterns to
3642         set it, as appropriate.
3643         (define_automaton): Add ultrasparc3_0 and ultrasparc3_1.
3644         (rest): Add UltraSPARC3 scheduling description.
3645         * config/sparc/sparc.h (TARGET_CPU_ultrasparc3): New.
3646         (PROCESSOR_ULTRASPARC3): New.
3647         ({ASM,CPP}_CPU64_DEFAULT_SPEC): Handle ultrasparc3.
3648         ({ASM,CPP}_CPU_SPEC): Likewise.
3649         (REGISTER_MOVE_COST): Likewise.
3650         (RTX_COSTS): Likewise.
3651         * config/sparc/sparc.c (sparc_override_options,
3652         sparc_initialize_trampoline, sparc64_initialize_trampoline,
3653         sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
3654         sparc_issue_rate): Likewise.
3655         * config/sparc/sol2.h: Likewise.
3656         * config/sparc/sol2-sld-64.h: Likewise.
3657         * config/sparc/linux64.h: Likewise.
3658
3659         2002-03-22  Vladimir Makarov  <vmakarov@redhat.com>
3660
3661         * doc/md.texi: Add comments about usage the latency time for the
3662         different dependencies and about case when two or more conditions
3663         in different define_insn_reservations returns TRUE for an insn.
3664
3665         * doc/md.texi: Add reference for automaton based pipeline
3666         description.
3667
3668         2002-03-04  Vladimir Makarov  <vmakarov@redhat.com>
3669
3670         * doc/passes.texi: Add missed information about genattrtab.
3671
3672         2002-03-01  Vladimir Makarov  <vmakarov@redhat.com>
3673
3674         * genautomata.c (output_automata_list_transition_code): Check
3675         automata_list on NULL.
3676
3677         2002-02-28  Vladimir Makarov  <vmakarov@redhat.com>
3678
3679         * genautomata.c (output_insn_code_cases,
3680         output_automata_list_min_issue_delay_code,
3681         output_automata_list_transition_code,
3682         output_automata_list_state_alts_code): Comment the functions.
3683
3684         2002-02-22  Vladimir Makarov  <vmakarov@redhat.com>
3685
3686         * genautomata.c (automata_list_el_t): New typedef.
3687         (get_free_automata_list_el,free_automata_list_el,
3688         free_automata_list, automata_list_hash, automata_list_eq_p,
3689         initiate_automata_lists, automata_list_start, automata_list_add,
3690         automata_list_finish, finish_automata_lists,
3691         output_insn_code_cases, output_automata_list_min_issue_delay_code,
3692         output_automata_list_transition_code,
3693         output_automata_list_state_alts_code, add_automaton_state,
3694         form_important_insn_automata_lists): New functions and prototypes.
3695         (insn_reserv_decl): Add members important_automata_list and
3696         processed_p.
3697         (ainsn): Add members important_p.
3698         (automata_list_el): New structure.
3699         (first_free_automata_list_el, current_automata_list,
3700         automata_list_table): New global variables.
3701         (create_ainsns): Initiate member important_p.
3702         (output_internal_min_issue_delay_func): Generate the switch and
3703         call output_insn_code_cases.
3704         (output_internal_trans_func, output_internal_state_alts_func):
3705         Ditto.
3706         (generate): Call initiate_automata_lists.
3707         (automaton_states): New global variable.
3708         (expand_automata): Call form_important_insn_automata_lists.
3709         (write_automata): Call finish_automata_lists.
3710
3711         2002-02-21  Vladimir Makarov  <vmakarov@redhat.com>
3712
3713         * genautomata.c (add_excls, add_presence_absence): Check that
3714         cpu units in the sets belong the same automaton.
3715
3716         * rtl.def (EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET): Add comment
3717         about that cpu units in the sets belong the same automaton.
3718
3719         * doc/md.texi: Ditto.
3720
3721         2001-12-20  Naveen Sharma  <naveens@noida.hcltech.com>
3722                     Nitin Gupta  <niting@noida.hcltech.com>
3723
3724         * config/sh/sh.c (sh_use_dfa_interface): New function.
3725
3726         (sh_issue_rate): New Function.
3727         TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE: define.
3728         TARGET_SCHED_ISSUE_RATE: define.
3729
3730         * config/sh/sh.md: Add DFA based pipeline description for SH4.
3731
3732         (define_attr insn_class): New attribute used for DFA
3733          scheduling.
3734         (define_insn cmpgtsi_t): Set attribute insn_class mt_group.
3735         (cmpgesi_t,cmpgtusi_t,cmpgeusi_t,cmpeqsi_t,
3736          cmpeqdi_t): Likewise.
3737
3738         (add,addc1,addsi3,subc,subc1,*subsi3_internal,
3739          negc,negsi2,ashldi3_k,lshrdi3_k,ashrdi3_k): Set insn_class
3740          ex_group.
3741         (iorsi3,rotlsi3_1,rotlsi3_31,rotlsi3_16): Likewise.
3742
3743         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
3744
3745         * haifa-sched.c (queue_to_ready): Remove unnecessary condition for
3746         break.
3747
3748         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
3749
3750         * genautomata.c (DFA_INSN_CODES_LENGTH_VARIABLE_NAME): New macro.
3751         (output_dfa_insn_code_func): Expand dfa_insn_codes if it is
3752         necessary.
3753         (output_dfa_start_func): Initiate new variable insn_codes_length,
3754         (write_automata): Output definition of the new variable.
3755
3756         2001-10-02  David S. Miller  <davem@redhat.com>
3757
3758         * haifa-sched.c (advance_one_cycle): New function.
3759         (schedule_block): Use it.
3760         (queue_to_ready): Use it, and also make sure to advance the DFA
3761         state on all stall cycles, not just those where insn_queue links
3762         are found.
3763
3764         2001-10-02  Richard Sandiford  <rsandifo@redhat.com>
3765
3766         * haifa-sched.c (max_issue): Remove last_p argument.  Only return
3767         non-zero if the highest-priority instruction could be scheduled.
3768         (choose_ready): Remove last argument from max_issue call.
3769
3770         2001-09-28  David S. Miller  <davem@redhat.com>
3771
3772         * config/sparc/sparc.c (sparc_use_sched_lookahead): Use 4 for
3773         ultrasparc and 3 for other multi-issue sparcs.
3774
3775         2001-09-27  David S. Miller  <davem@redhat.com>
3776
3777         * config/sparc/sparc.md (cycle_display): New pattern.
3778         * config/sparc/sparc.c (sparc_cycle_display): New.
3779         (TARGET_SCHED_CYCLE_DISPLAY): Set it.
3780
3781         2001-09-25  David S. Miller  <davem@redhat.com>
3782
3783         Convert all of Sparc scheduling to DFA
3784         * config/sparc/sparc.md: Kill all define_function_unit
3785         directives and replace with DFA equivalent.
3786         * config/sparc/sparc.c (ultrasparc_adjust_cost,
3787         mark_ultrasparc_pipeline_state, ultra_cmove_results_ready_p,
3788         ultra_fpmode_conflict_exists, ultra_find_type,
3789         ultra_build_types_avail, ultra_flush_pipeline,
3790         ultra_rescan_pipeline_state, ultrasparc_sched_reorder,
3791         ultrasparc_variable_issue, ultrasparc_sched_init,
3792         sparc_variable_issue, sparc_sched_reorder, ultra_code_from_mask,
3793         ultra_schedule_insn, ultra_code_names, ultra_pipe_hist,
3794         ultra_cur_hist, ultra_cycles_elapsed): Kill.
3795         (sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
3796         ultrasparc_store_bypass_p): New.
3797         * config/sparc/sparc-protos.h (ultrasparc_store_bypass_p):
3798         Declare.
3799
3800         2001-09-24  David S. Miller  <davem@redhat.com>
3801
3802         * haifa-sched.c (ready_remove): Fix thinko, we want to copy around
3803         ready->vec[foo] not ready[foo].
3804
3805         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
3806
3807         * doc/md.texi: Correct examples for define_insn_reservations
3808         `mult' and `div'.
3809
3810         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
3811
3812         * genautomata.c (create_automata): Print message about creation of
3813         each automaton.
3814         (generate): Remove printing meease about creation of
3815         automata.
3816
3817         2001-09-05  David S. Miller  <davem@redhat.com>
3818
3819         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
3820         * config/sparc/linux64.h: Likewise.
3821
3822         2001-08-31  Vladimir Makarov  <vmakarov@redhat.com>
3823
3824         * haifa-sched.c (insn_cost, schedule_insn, queue_to_ready,
3825         schedule_block, sched_init, sched_finish): Add missed calls of
3826         use_dfa_pipeline_interface.
3827
3828         * sched-rgn.c (init_ready_list, new_ready, debug_dependencies):
3829         Ditto.
3830
3831         * sched-vis.c (get_visual_tbl_length): Ditto.
3832
3833         2001-08-27  Richard Henderson  <rth@redhat.com>
3834
3835         * genattr.c (main): Emit state_t even when not doing scheduling.
3836
3837         2001-08-27  Richard Henderson  <rth@redhat.com>
3838
3839         * genautomata.c (expand_automata): Always create a description.
3840
3841         2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
3842
3843         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
3844         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
3845         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
3846         RTL constructions.
3847
3848         * genattr.c (main): New variable num_insn_reservations.  Increase
3849         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
3850         pipeline hazard recognizer interface.
3851
3852         * genattrtab.h: New file.
3853
3854         * genattrtab.c: Include genattrtab.h.
3855         (attr_printf, check_attr_test, make_internal_attr,
3856         make_numeric_value): Move protypes into genattrtab.h.  Define them
3857         as external.
3858         (num_dfa_decls): New global variable.
3859         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
3860         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
3861         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
3862         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
3863
3864         * genautomata.c: New file.
3865
3866         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
3867
3868         * sched-int.h: (curr_state): Add the external definition for
3869         automaton pipeline interface.
3870         (haifa_insn_data): Add comments for members blockage and units.
3871
3872         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
3873         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
3874         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
3875         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
3876         TARGET_SCHED_DFA_POST_CYCLE_INSN,
3877         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
3878         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
3879         macros.
3880         (TARGET_SCHED): Use the new macros.
3881
3882         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
3883         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
3884         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
3885         dfa_bubble): New members in gcc_target.sched.
3886
3887         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
3888         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
3889         (insn_queue): Redefine it as pointer to array.
3890         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
3891         INSN_QUEUE_SIZE.
3892         (max_insn_queue_index_macro_value): New variable.
3893         (curr_state, dfa_state_size, ready_try): New varaibles for
3894         automaton interface.
3895         (ready_element, ready_remove, max_issue): New function prototypes
3896         for automaton interface.
3897         (choose_ready): New function prototype.
3898         (insn_unit, blockage_range): Add comments.
3899         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
3900         FUNCTION_UNITS_SIZE == 0.
3901         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
3902         actual_hazard, potential_hazard): Add comments.
3903         (insn_cost): Use cost -1 as undefined value.  Remove
3904         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
3905         pipeline interface.
3906         (ready_element, ready_remove): New functions for automaton
3907         interface.
3908         (schedule_insn): Add new code for automaton pipeline interface.
3909         (queue_to_ready): Add new code for automaton pipeline interface.
3910         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
3911         (debug_ready_list): Print newline when the queue is empty.
3912         (max_issue): New function for automaton pipeline interface.
3913         (choose_ready): New function.
3914         (schedule_block): Add new code for automaton pipeline interface.
3915         Print ready list before scheduling each insn.
3916         (sched_init): Add new code for automaton pipeline interface.
3917         Initiate insn cost by -1.
3918         (sched_finish): Free the current automaton state and finalize
3919         automaton pipeline interface.
3920
3921         * sched-rgn.c: Include target.h.
3922         (init_ready_list, new_ready, debug_dependencies): Add new code for
3923         automaton pipeline interface.
3924
3925         * sched-vis.c: Include target.h.
3926         (get_visual_tbl_length): Add code for automaton interface.
3927         (target_units, print_block_visualization):  Add comments.
3928
3929         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
3930         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
3931         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
3932         (getruntime.o, genautomata.o): New entries.
3933         (genattrtab.o): Add new dependency file genattrtab.h.
3934         (genattrtab): Add new dependencies.  Link it with `libm.a'.
3935         (getruntime.o, hashtab.o): New entries for canadian cross.
3936
3937         * doc/md.texi: Description of automaton based model.
3938
3939         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
3940         Add comments.
3941         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
3942         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
3943         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
3944         TARGET_SCHED_DFA_POST_CYCLE_INSN,
3945         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
3946         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
3947         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
3948         hook descriptions.
3949         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
3950         MAX_DFA_ISSUE_RATE): New macro descriptions.
3951
3952         * doc/contrib.texi: Add dfa based scheduler contribution.
3953
3954         * doc/gcc.texi: Add more information about genattrtab.
3955
3956 Mon Apr 29 17:19:10 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3957
3958         * reload1.c (eliminate_regs, case SUBREG): Fix typo in
3959         adjust_address_nv call.
3960
3961 2002-04-29  Janis Johnson  <janis187@us.ibm.com>
3962
3963         * doc/install.texi (Testing): Provide additional information, and
3964         a stronger encouragement, for running the testsuites.
3965
3966 2002-04-29  DJ Delorie  <dj@redhat.com>
3967
3968         * config/mips/mips.c (mips_parse_cpu): Warn if the CPU name is
3969         given in upper case.
3970
3971 2002-04-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3972
3973         * fixinc/inclhack.def (solaris_widec): Include <wchar.h> in
3974         Solaris 2 <widec.h> if missing.
3975         * fixinc/fixincl.x: Regenerate.
3976         * fixinc/tests/base/widec.h: New file.
3977
3978 2002-04-29  Nick Clifton  <nickc@cambridge.redhat.com>
3979
3980         * toplev.c (f_options): Add "profile" switch so that
3981         -fno-profile can be used to disable -p.
3982
3983 2002-04-29  Bernd Schmidt  <bernds@redhat.com>
3984
3985         * c-common.c (type_for_mode): Add support for V2DFmode, V2DImode,
3986         UV2DImode.
3987         * tree.c (build_common_tree_nodes_2): Likewise.
3988         * tree.h (enum tree_index): Likewise.
3989         (V2DF_type_node, V2DI_type_node, unsigned_V2DI_type_node): Define.
3990
3991         * config/i386/i386.c (bdesc_comi, bdesc_2arg, bdesc_1arg): Add SSE2
3992         entries.
3993         (init_mmx_sse_builtins): Initialize SSE2 builtins.
3994         (ix86_expand_builtin): Add support for SSE2 builtins.
3995         * config/i386/i386.h (VALID_SSE2_REG_MODE): New macro.
3996         (VALID_SSE_REG_MODE): Use it.
3997         (VECTOR_MODE_SUPPORTED_P): Allow SSE2 modes here as well.
3998         (enum ix86_builtins): Add SSE2 builtins.
3999         * config/i386/i386.md (movv2df_internal, movv2df, movv8hi_internal,
4000         movv8hi, movv16qi_internal, movv16qi, pushv2df, pushv8hi, pushv16qi,
4001         addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3, vmmulv2df3,
4002         divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3, vmsminv2df3,
4003         sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3, sqrtv2df2,
4004         vmsqrtv2df2, maskcmpv2df3, maskncmpv2df3, vmmaskcmpv2df3,
4005         vmmaskncmpv2df3, sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb,
4006         sse2_maskmovdqu, sse2_movntv2df, sse2_movntti, sse2_movntsi, cvtdq2ps,
4007         cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq, cvtpd2pi,
4008         cvttpd2pi, cvtpi2pd, cvtsd2si, cvttsd2si, cvtsi2sd, cvtsd2ss,
4009         cvtss2sd, cvtpd2ps, cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3,
4010         ssaddv16qi3, ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3,
4011         subv4si3, subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3,
4012         mulv8hi3, smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
4013         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_clrti, sse2_uavgv16qi3,
4014         sse2_uavgv8hi3, sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd,
4015         sse2_pshuflw, sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3,
4016         gtv8hi3, gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3,
4017         ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, sse2_lshrv2di3,
4018         ashlv8hi3, ashlv4si3, sse2_ashlv2di3, sse2_ashlti3, sse2_lshrti3,
4019         sse2_unpckhpd, sse2_unpcklpd, sse2_packsswb, sse2_packssdw,
4020         sse2_packuswb, sse2_punpckhbw, sse2_punpckhwd, sse2_punpckhdq,
4021         sse2_punpcklbw, sse2_punpcklwd, sse2_punpckldq, sse2_movapd,
4022         sse2_movupd, sse2_movdqa, sse2_movdqu, sse2_movdq2q, sse2_movq2dq,
4023         sse2_movhpd, sse2_movlpd, sse2_loadsd, sse2_movsd, sse2_storesd,
4024         sse2_shufpd, sse2_clflush, sse2_mfence, mfence_insn, sse2_lfence,
4025         lfence_insn): New patterns.
4026         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Renamed from
4027         sse_andti3_sse2, sse_nandti3_sse2, sse_iorti3_sse2, sse_xorti3_sse2.
4028
4029 Mon Apr 29 17:03:24 CEST 2002  Jan Hubicka  <jh@suse.cz>
4030
4031         * i386.md (sse_mov?fcc*): Revert patch of Mar 14th.
4032
4033 2002-04-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4034
4035         * doc/contrib.texi (Contributors): Add Paolo Carlini and
4036         Janis Johnson.
4037         Update Richard Henderson, Jakub Jelinek, and Mark Mitchell.
4038         Refer to Objective-C instead of ObjC, SPARC instead of sparc,
4039         and CPU instead of cpu.
4040
4041 Mon Apr 29 13:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
4042
4043         * toplev.c (flag_if_conversion, flag_if_conversion2): New static
4044         variables.
4045         (lang_independent_options): Add -fif-conversion, -fif-conversion2
4046         (rest_of_compilation): Do if conversion only when asked for.
4047         (parse_options_and_default_flags): Set new variables to 1 for -O1
4048         * invoke.texi (-fif-conversion, -fif-conversion2): Document.
4049
4050 Mon Apr 29 13:02:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
4051
4052         * i386.c (dbx64_register_map): Fix typo.
4053
4054 Mon Apr 29 12:18:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
4055
4056         * predict.c (real_zero, real_one, real_almost_one, real_br_prob_base,
4057         real_one_half, real_bb_freq_max): New static variables.
4058         (debug_profile_bbauxs): Kill.
4059         (process_note_predictions): Kill unused variable.
4060         (block_info_def, edge_info_def): Use REAL_VALUE_TYPE instead of
4061         volatile double.
4062         (propagate_freq): Use REAL_ARITHMETICS.
4063         (estimate_bb_frequencies): Likevise; init new static variables.
4064         * Makefile.in (predict.o): Add dependency on real.h
4065
4066 2002-04-28  David S. Miller  <davem@redhat.com>
4067
4068         PR target/6500
4069         * config/sparc/sparc.md (prefetch): Emit properly for 32-bit vs.
4070         64-bit TARGET_V9.  Do not use prefetch page, use prefetch for
4071         several {reads,writes} instead.
4072         * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
4073         Define.
4074
4075 2002-04-27  David S. Miller  <davem@redhat.com>
4076
4077         PR target/6494
4078         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Be mindful
4079         of the stack bias.
4080
4081         * config/sparc/linux.h, config/sparc/linux64.h: Don't bother
4082         including signal.h and sys/ucontext.h, not needed.
4083
4084 2002-04-29  Hans-Peter Nilsson  <hp@bitrange.com>
4085
4086         * varasm.c (output_constant_def): Correct test for not calling
4087         ENCODE_SECTION_INFO for INTEGER_CST.
4088
4089 2002-04-29  Neil Booth  <neil@daikokuya.demon.co.uk>
4090
4091         * cppexp.c (lex): Move some code to _cpp_parse_expr, but
4092         keep most cases as function eval_token.
4093         (eval_token): New function.
4094         (_cpp_parse_expr): Read token here for improved diagnostics.
4095         Don't use op_as_text.  Detect bad ':' here.
4096         (reduce): Don't detect bad ':' here.
4097         (op_as_text): Remove.
4098         * cpphash.h (_cpp_test_assertion): Change prototype.
4099         * cpplib.c (_cpp_test_assertion): Change prototype.
4100
4101 2002-04-28  Richard Henderson  <rth@redhat.com>
4102
4103         PR c/5154
4104         * ggc-common.c (ggc_mark_rtx_children_1): Rename from...
4105         (ggc_mark_rtx_children): New.
4106
4107 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
4108
4109         PR target/6496
4110         * config/sparc/sparc.md (call + jump 32-bit peepholes): Disable jump
4111         after call peepholes for UltraSPARC.
4112         (call + jump 64-bit peepholes): Remove.
4113
4114 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4115
4116         PR c/6497
4117         * config/rs6000/rs6000.md (sCC patterns): Remove clobber and use
4118         result as temporary value.
4119
4120 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
4121
4122         PR c++/6396
4123         * toplev.c (rest_of_compilation): Only run regrename and copy
4124         propagation if optimizing.
4125
4126 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
4127
4128         PR optimization/6475
4129         * reload1.c (alter_reg): Only call set_mem_expr if I is home pseudo
4130         register of REGNO_DECL (i).
4131         * Makefile.in (reload1.o): Add $(TREE_H).
4132
4133 2002-04-28  Neil Booth  <neil@daikokuya.demon.co.uk>
4134
4135         * cppexp.c (lex): Update to use state.skip_eval.
4136         (struct op): Remove prio and flags members.
4137         (FLAG_BITS, FLAG_MASK, PRIO_SHIFT, EXTRACT_PRIO, EXTRACT_FLAGS,
4138         SHORT_CIRCUIT, RIGHT_ASSOC, ..._PRIO, op_to_prio): Remove.
4139         (LEFT_ASSOC): New macro.
4140         (optab): New table of operator priorities and flags.
4141         (SHIFT): Update.
4142         (_cpp_parse_expr): Clean up logic.  Return bool.  Use a
4143         malloc-ed parser stack.
4144         (reduce): New; reduce the operator stack.
4145         (_cpp_expand_op_stack): Expand the operator stack as necessary.
4146         * cpphash.h (struct op): Predeclare.
4147         (struct cpp_reader): New members op_stack, op_limit.
4148         (struct lexer_state): New member skip_eval.
4149         (_cpp_parse_expr): Update.
4150         (_cpp_expand_op_stack): New.
4151         * cpplib.c (do_if): Update.
4152         * cppinit.c (cpp_create_reader): Create op stack.
4153         (cpp_destroy): And destroy it.
4154         * cpplib.h (CPP_LAST_CPP_OP): Correct.
4155         (TTYPE_TABLE): Correct.
4156
4157 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4158
4159         PR c/6343
4160         * c-decl.c (duplicate_decls): Call merge_weak.
4161         * c-pragma.c (apply_pragma_weak): Warn about misuse.
4162         * output.h (merge_weak): Prototype merge_weak.
4163         * varasm.c (merge_weak): New function.
4164         (declare_weak): Make sure we don't give an error on VAR_DECLs.
4165         Mark RTL with SYMBOL_REF_WEAK.
4166
4167 2002-04-27  Kurt Garloff <garloff@suse.de>
4168
4169         * tree-inline.c (inlinable_function_p): Improve heuristics
4170         by using a smoother function to cut down allowable inlinable size.
4171         * param.def: Add parameters max-inline-insns-single,
4172         max-inline-slope, min-inline-insns that determine the exact
4173         shape of the above function.
4174         * param.h: Likewise.
4175
4176 2002-04-26  Richard Henderson  <rth@redhat.com>
4177
4178         * c-parse.in (malloced_yyss, malloced_yyvs): New.
4179         (yyoverflow): Re-add.  Set them.
4180         (free_parser_stacks): New.
4181         * c-common.h: Declare it.
4182         * c-lex.c (c_common_parse_file): Call it.
4183
4184 2002-04-26  Richard Henderson  <rth@redhat.com>
4185
4186         * cfgrtl.c (tidy_fallthru_edge): Don't use next_real_insn
4187         for fallthru search.
4188
4189 2002-04-26  Eric Christopher  <echristo@redhat.com>
4190
4191         PR optimization/3700
4192         * config/mips/mips.c (mips_issue_rate): Define.  New function.
4193         (TARGET_SCHED_ISSUE_RATE): Use.
4194
4195 2002-04-25  David S. Miller  <davem@redhat.com>
4196
4197         PR target/6422
4198         * reorg.c (optimize_skip): Do not allow exception causing
4199         instructions to be considered for delay slots.
4200         (fill_simply_delay_slots, fill_slots_from_thread): Likewise.
4201         (relax_delay_slots): Do not try to consider exception causing
4202         instructions as redundant.
4203
4204 2002-04-26  Richard Henderson  <rth@redhat.com>
4205
4206         PR c/5225
4207         * c-typeck.c (build_unary_op) [CONVERT_EXPR]: Invoke non_lvalue.
4208
4209 2002-04-26  Mark Mitchell  <mark@codesourcery.com>
4210
4211         PR bootstrap/6445
4212         * config/i386/i386.md (untyped_call): Return the value in a float
4213         register if TARGET_FLOAT_RETURNS_IN_80387, not just if
4214         TARGET_80387.
4215
4216 2002-04-26  Alexandre Oliva  <aoliva@redhat.com>
4217
4218         * tree.c (tree_int_cst_lt): Compare constants whose types differ
4219         in unsigned-ness correctly.
4220
4221 2002-04-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4222
4223         * pa.h (FUNCTION_OK_FOR_SIBCALL): Don't do sibcalls when using the
4224         portable runtime model.
4225
4226 2002-04-26  Richard Henderson  <rth@redhat.com>
4227
4228         * c-parse.in (yyoverflow): Revert.
4229
4230 2002-04-26  David Edelsohn  <edelsohn@gnu.org>
4231             Richard Henderson  <rth@redhat.com>
4232
4233         * config/rs6000/rs6000.md (sCC pattern): Remove clobber and use
4234         result as temporary value.
4235
4236 2002-04-26  Richard Henderson  <rth@redhat.com>
4237
4238         PR c/3581
4239         * c-common.c (fix_string_type): Split out of ...
4240         (combine_strings): ... here.  Take a varray, not a tree list.
4241         (c_expand_builtin_printf): Use fix_string_type.
4242         * c-common.h: Update decls.
4243         * c-parse.in (string): Remove.  Update all uses to use STRING
4244         instead, and not call combine_strings.
4245         (yylexstring): New.
4246         (_yylex): Use it.
4247         * c-typeck.c (simple_asm_stmt): Don't call combine_strings.
4248         (build_asm_stmt): Likewise.
4249         * objc/objc-act.c (my_build_string): Use fix_string_type.
4250         (build_objc_string_object): Build varray for combine_strings.
4251
4252 2002-04-26  Bo Thorsen  <bo@suse.co.uk>
4253
4254         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Define for
4255         x86-64.
4256
4257 2002-04-26  Neil Booth  <neil@daikokuya.demon.co.uk>
4258
4259         * cppexp.c (CPP_UMINUS, CPP_UPLUS): New.
4260         (HAVE_NO_R_OPERAND): Remove.
4261         (HAVE_VALUE): Remove.
4262         (op_to_prio): Update.
4263         (UNARY): Don't alter flags.
4264         (_cpp_parse_expr): want_value used to indicate whether
4265         a number or unary operator is expected next.  Distinguish
4266         unary and binary +/-.
4267         (op_as_text): Update for unary operators.
4268
4269 2002-04-25  Richard Henderson  <rth@redhat.com>
4270
4271         PR c/2161
4272         * c-parse.in (yyoverflow): New.
4273
4274 2002-04-25  Richard Henderson  <rth@redhat.com>
4275
4276         PR c/2098
4277         * c-common.c (shorten_compare): Simplfy conditions leading to
4278         the generation of a warning.
4279
4280 2002-04-25  Richard Henderson  <rth@redhat.com>
4281
4282         PR c/2035
4283         * expmed.c (extract_bit_field): Fall through to generic code rather
4284         than aborting on subreg special case.
4285
4286 2002-04-25  David S. Miller  <davem@redhat.com>
4287
4288         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Add back check
4289         for DECL being NULL.
4290
4291 2002-04-25  Steve Christiansen  <smc@us.ibm.com>
4292
4293         * doc/md.texi (Machine Constraints): Add IA-64 constraints.
4294
4295 2002-04-25  Eric Botcazou  <ebotcazou@multimania.com>
4296
4297         * c-decl.c (grokdeclarator): Remove outdated ??? note
4298         on invalid declaration of flexible array members.
4299
4300 2002-04-25  Richard Henderson  <rth@redhat.com>
4301
4302         * doc/invoke.texi: Document -gdwarf{,-2} vs debug level.
4303
4304 2002-04-25  Ulrich Weigand  <uweigand@de.ibm.com>
4305
4306         * config/s390/s390.c (s390_emit_epilogue): Always restore registers
4307         needed by the compiler, even if they are used as global regs.
4308
4309 2002-04-25  Matt Hiller  <hiller@redhat.com>
4310
4311         * mips.c (mips_class_max_nregs, mips_register_move_cost): New
4312         functions.
4313         * mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls
4314         of the corresponding functions.
4315         * mips-protos.h (mips_class_max_nregs, mips_register_move_cost):
4316         New prototypes.
4317
4318 2002-04-25  Matt Hiller  <hiller@redhat.com>
4319
4320         * config/mips/mips.h (mips_sw_reg_names): Declare as extern.
4321
4322         (ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro.
4323         (FIRST_PSEUDO_REGISTER): Redefine considering coprocessor
4324         registers, adjust comment accordingly.
4325         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
4326         reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES,
4327         DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries
4328         for coprocessor registers.
4329         (ADDITIONAL_REGISTER_NAMES): Include
4330         ALL_COP_ADDITIONAL_REGISTER_NAMES.
4331
4332         (COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM,
4333         COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM,
4334         COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM,
4335         COP0_REG_P, COP2_REG_P, COP3_REG_P, ALL_COP_REG_P,
4336         COPNUM_AS_CHAR_FROM_REGNUM, COP_REG_CLASS_P): New macros.
4337
4338         (mips_char_to_class): Adjust comment to include coprocessor
4339         constraint letters.
4340
4341         * config/mips/mips.c (coprocessor_operand, coprocessor2_operand):
4342         New functions.
4343         (mips_reg_names, mips_regno_to_class): Include coprocessor
4344         information.
4345         (mips_sw_reg_names): Ditto, make non-static.
4346         (mips_move_1word): Handle moves to and from coprocessor registers.
4347         (mips_move_2words): Handle moves to and from coprocessor
4348         registers.
4349         (mips_class_max_nregs, mips_register_move_cost): Handle
4350         coprocessor register classes.
4351         (override_options): Initialize mips_char_to_class and
4352         mips_hard_regno_mode_ok properly for coprocessor registers.
4353
4354         * config/mips/mips.md (movdi_internal, movdi_internal2,
4355         movsi_internal1, movsi_internal2): Add constraint-sets for
4356         coprocessor registers.
4357         * testsuite/gcc.c-torture/mipscop-1.c: New testcase.
4358         * testsuite/gcc.c-torture/mipscop-1.x: Disable above if target
4359         isn't mips.
4360         * testsuite/gcc.c-torture/mipscop-2.c: New testcase.
4361         * testsuite/gcc.c-torture/mipscop-2.x: Disable above if target
4362         isn't mips.
4363         * testsuite/gcc.c-torture/mipscop-3.c: New testcase.
4364         * testsuite/gcc.c-torture/mipscop-3.x: Disable above if target
4365         isn't mips.
4366         * testsuite/gcc.c-torture/mipscop-4.c: New testcase.
4367         * testsuite/gcc.c-torture/mipscop-4.x: Disable above if target
4368         isn't mips.
4369
4370         * doc/tm.texi: Document feature.
4371
4372 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
4373
4374         * integrate.c (function_attribute_inlinable_p): Simplify.
4375         Check the table pointer is not NULL.
4376
4377 2002-04-25  Steven Bosscher  <S.Bosscher@student.tudelft.nl>
4378
4379         * doc/c-tree.texi: Fix typo in introduction.
4380
4381 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
4382
4383         * c-common.h (c_common_parse_file): Update.
4384         * c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
4385         * c-lex.c (YYDEBUG): Get from c-lex.h.
4386         (c_common_parse_file): Update.
4387         * c-lex.h (YYDEBUG, yydebug): New.
4388         * c-parse.in (YYDEBUG): Get from c-lex.h.
4389         (c_set_yydebug): Remove.
4390         * c-tree.h (c_set_yydebug): Remove.
4391         * langhooks-def.h (lhd_do_nothing_i): New.
4392         (lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove.
4393         (LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update.
4394         * langhooks.c  (lhd_do_nothing_i): New.
4395         (lhd_set_yydebug): Remove.
4396         * langhooks.h (struct lang_hooks): Update.
4397         * toplev.c (set_yydebug): New.
4398         (compile_file): Update call to parse_file hook.
4399         (decode_d_option): Update.
4400 objc:
4401         * objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
4402
4403 Wed Apr 24 23:45:37 2002  J"orn Rennecke <joern.rennecke@superh.com>
4404
4405         * loop.c (load_mems): Don't change the interface of called functions.
4406
4407         * calls.c (expand_call): Take current_function_pretend_args_size
4408         into account when setting argblock for sibcalls.
4409
4410 2002-04-24  Matt Hiller  <hiller@redhat.com>
4411
4412         * cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
4413         * c-lex.c: Ditto.
4414
4415         * cpplex.c (skip_line_comment): Process comment one multibyte
4416         character at a time rather than one char at a time, if
4417         appropriate.
4418         (parse_string): Process string one multibyte character at a time
4419         rather than one char at a time, if appropriate.
4420         * c-lex.c (lex_string): Lex and copy multibyte strings
4421         appropriately.
4422         * cpplib.h (cppchar_t): Change to unsigned.
4423
4424 2002-04-24  Richard Henderson  <rth@redhat.com>
4425
4426         PR c/3467
4427         * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays
4428         for c99.
4429
4430 Wed Apr 24 21:51:54 2002  J"orn Rennecke <joern.rennecke@superh.com>
4431
4432         * sh.c (sh_va_arg): If argument was passed by reference,
4433         dereference the pointer.
4434
4435         * sh.h (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
4436
4437         * sh.md (divsi3_i4_media): Use match_operand for input values
4438         rather than hard registers.
4439         (divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
4440         unnecessarily through hard registers.  Keep copies of pseudo
4441         registers outside of the libcall sequence.
4442
4443         * sh.md (casesi_shift_media): Add modes.
4444
4445         * sh.h (RETURN_IN_MEMORY): Return variable size BLKmode
4446         values in memory.
4447
4448 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
4449
4450         * attribs.c (c_common_attribute_table): Move table and handlers
4451         to c-common.c.
4452         (format_attribute_table, lang_attribute_table,
4453         lang_attribute_common): Remove.
4454         (init_attributes): Replace NULL pointers with pointers to the
4455         empty table.
4456         (handle_packed_attribute, handle_nocommon_attribute,
4457         handle_common_attribute, handle_noreturn_attribute,
4458         handle_noinline_attribute, handle_always_inline_attribute,
4459         handle_used_attribute, handle_unused_attribute,
4460         handle_const_attribute, handle_transparent_union_attribute,
4461         handle_constructor_attribute, handle_destructor_attribute,
4462         handle_mode_attribute, handle_section_attribute,
4463         handle_aligned_attribute, handle_weak_attribute,
4464         handle_alias_attribute, handle_visibility_attribute,
4465         handle_no_instrument_function_attribute, handle_malloc_attribute,
4466         handle_no_limit_stack_attribute, handle_pure_attribute,
4467         handle_deprecated_attribute, handle_vector_size_attribute,
4468         vector_size_helper): Move to c-common.c.
4469         * c-common.c (c_common_attribute_table,
4470         handle_packed_attribute, handle_nocommon_attribute,
4471         handle_common_attribute, handle_noreturn_attribute,
4472         handle_noinline_attribute, handle_always_inline_attribute,
4473         handle_used_attribute, handle_unused_attribute,
4474         handle_const_attribute, handle_transparent_union_attribute,
4475         handle_constructor_attribute, handle_destructor_attribute,
4476         handle_mode_attribute, handle_section_attribute,
4477         handle_aligned_attribute, handle_weak_attribute,
4478         handle_alias_attribute, handle_visibility_attribute,
4479         handle_no_instrument_function_attribute, handle_malloc_attribute,
4480         handle_no_limit_stack_attribute, handle_pure_attribute,
4481         handle_deprecated_attribute, handle_vector_size_attribute,
4482         vector_size_helper): Move from attribs.c.
4483         * c-common.h (c_common_attribute_table,
4484         c_common_format_attribute_table): New.
4485         * c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
4486         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
4487         * langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
4488         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New.
4489         (LANG_HOOKS_INITIALIZER): Update.
4490         * langhooks.h (struct lang_hooks): 3 new attribute hooks.
4491         * target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL.
4492         * target.h: Update comment.
4493         * tree.c (default_target_attribute_table): Remove.
4494         * tree.h (default_target_attribute_table, format_attribute_table,
4495         lang_attribute_table, lang_attribute_common): Remove.
4496 objc:
4497         * objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
4498         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
4499
4500 2002-04-24  Jason Merrill  <jason@redhat.com>
4501
4502         * dwarf2.h (enum dwarf_attribute): Add DW_AT_GNU_vector.
4503         * dwarf2out.c (dwarf_attr_name): Support it.
4504         (gen_array_type_die): Emit it.
4505         (lookup_type_die): No special handling for VECTOR_TYPE.
4506         (gen_type_die): Hand VECTOR_TYPE off to gen_array_type_die.
4507
4508 2002-04-24  Richard Henderson  <rth@redhat.com>
4509
4510         * config/mips/mips.md (movdi_usd): Renumber.
4511
4512 2002-04-24  David S. Miller  <davem@redhat.com>
4513
4514         PR target/6420
4515         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Return false if
4516         32-bit Sparc and current_function_returns_struct is true.
4517
4518 Wed Apr 24 13:48:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
4519
4520         * loop.c (canonicalize_condition): Use gen_int_mode.
4521
4522 2002-04-24  Aldy Hernandez  <aldyh@redhat.com>
4523
4524         * config/rs6000/altivec.h: Cleanup file.  Add non individual
4525         variants.
4526         (vec_vaddubm): New.
4527         (vec_vadduhm): New.
4528         (vec_vadduwm): New.
4529         (vec_vaddfp): New.
4530         (vec_vaddcuw): New.
4531         (vec_vaddubs): New.
4532         (vec_vaddsbs): New.
4533         (vec_vadduhs): New.
4534         (vec_vadduws): New.
4535         (vec_vaddsws): New.
4536         (vec_vand): New.
4537         (vec_vandc): New.
4538         (vec_vavgub): New.
4539         (vec_vavgsb): New.
4540         (vec_vavguh): New.
4541         (vec_vavgsh): New.
4542         (vec_vavguw): New.
4543         (vec_vavgsw): New.
4544         (vec_vrfip): New.
4545         (vec_vcmpbfp): New.
4546         (vec_vcmpequb): New.
4547         (vec_vcmpequh): New.
4548         (vec_vcmpequw): New.
4549         (vec_vcmpeqfp): New.
4550         (vec_vcmpgefp): New.
4551         (vec_vcmpgtub): New.
4552         (vec_vcmpgtsb): New.
4553         (vec_vcmpgtuh): New.
4554         (vec_vcmpgtsh): New.
4555         (vec_vcmpgtuw): New.
4556         (vec_vcmpgtsw): New.
4557         (vec_vcmpgtfp): New.
4558         (vec_vcmpgefp): New.
4559         (vec_vcfux): New.
4560         (vec_vcfsx): New.
4561         (vec_vctsxs): New.
4562         (vec_vctuxs): New.
4563         (vec_vexptefp): New.
4564         (vec_vrfim): New.
4565         (vec_lvx): New.
4566         (vec_lvebx): New.
4567         (vec_lvehx): New.
4568         (vec_lde): Add vector float variant.
4569         (vec_lvewx): New.
4570         (vec_lvxl): New.
4571         (vec_vlogefp): New.
4572         (vec_vmaddfp): New.
4573         (vec_vmhaddshs): New.
4574         (vec_vmaxub): New.
4575         (vec_vmaxsb): New.
4576         (vec_vmaxuh): New.
4577         (vec_vmaxsh): New.
4578         (vec_vmaxuw): New.
4579         (vec_vmaxsw): New.
4580         (vec_vmaxsw): New.
4581         (vec_vmaxfp): New.
4582         (vec_vmrghb): New.
4583         (vec_vmrghh): New.
4584         (vec_vmrghw): New.
4585         (vec_vmrglb): New.
4586         (vec_vmrglh): New.
4587         (vec_vmrglw): New.
4588         (vec_vminub): New.
4589         (vec_vminsb): New.
4590         (vec_vminuh): New.
4591         (vec_vminsh): New.
4592         (vec_vminuw): New.
4593         (vec_vminsw): New.
4594         (vec_vminfp): New.
4595         (vec_vmladduhm): New.
4596         (vec_vmhraddshs): New.
4597         (vec_msumubm): New.
4598         (vec_vmsummbm): New.
4599         (vec_vmsumuhm): New.
4600         (vec_vmsumshm): New.
4601         (vec_vmsumuhs): New.
4602         (vec_vmsumshs): New.
4603         (vec_vmuleub): New.
4604         (vec_vmulesb): New.
4605         (vec_vmuleuh): New.
4606         (vec_vmulesh): New.
4607         (vec_vmuloub): New.
4608         (vec_mulosb): New.
4609         (vec_vmulouh): New.
4610         (vec_vmulosh): New.
4611         (vec_vnmsubfp): New.
4612         (vec_vnor): New.
4613         (vec_vor): New.
4614         (vec_vpkuhum): New.
4615         (vec_vpkuwum): New.
4616         (vec_vpkpx): New.
4617         (vec_vpkuhus): New.
4618         (vec_vpkshss): New.
4619         (vec_vpkuwus): New.
4620         (vec_vpkswss): New.
4621         (vec_vpkshus): New.
4622         (vec_vpkswus): New.
4623         (vec_vperm): New.
4624         (vec_vrefp): New.
4625         (vec_vrlb): New.
4626         (vec_vrlh): New.
4627         (vec_vrlw): New.
4628         (vec_vrfin): New.
4629         (vec_vrsqrtefp): New.
4630         (vec_vsel): New.
4631         (vec_vslb): New.
4632         (vec_vslh): New.
4633         (vec_vslw): New.
4634         (vec_vsldoi): New.
4635         (vec_vsl): New.
4636         (vec_vslo): New.
4637         (vec_vspltb): New.
4638         (vec_vsplth): New.
4639         (vec_vspltw): New.
4640         (vec_vspltisb): New.
4641         (vec_vspltish): New.
4642         (vec_vspltisw): New.
4643         (vec_vsrb): New.
4644         (vec_vsrh): New.
4645         (vec_vsrw): New.
4646         (vec_vsrab): New.
4647         (vec_vsrah): New.
4648         (vec_vsraw): New.
4649         (vec_vsr): New.
4650         (vec_vsro): New.
4651         (vec_stvx): New.
4652         (vec_stvebx): New.
4653         (vec_stvehx): New.
4654         (vec_stvewx): New.
4655         (vec_stvxl): New.
4656         (vec_vsububm): New.
4657         (vec_vsubuhm): New.
4658         (vec_vsubuwm): New.
4659         (vec_vsubfp): New.
4660         (vec_vsubcuw): New.
4661         (vec_vsububs): New.
4662         (vec_vsubsbs): New.
4663         (vec_vsubuhs): New.
4664         (vec_vsubshs): New.
4665         (vec_vsubuws): New.
4666         (vec_vsubsws): New.
4667         (vec_vsum4ubs): New.
4668         (vec_vsum4sbs): New.
4669         (vec_vsum4shs): New.
4670         (vec_vsum2sws): New.
4671         (vec_vsumsws): New.
4672         (vec_vrfiz): New.
4673         (vec_vupkhsb): New.
4674         (vec_vupkhpx): New.
4675         (vec_vupkhsh): New.
4676         (vec_vupklsb): New.
4677         (vec_vupklpx): New.
4678         (vec_vupklsh): New.
4679         (vec_vxor): New.
4680
4681 2002-04-23  Eric Botcazou  <ebotcazou@multimania.com>
4682
4683         PR c/5430
4684         * fold-const.c (split_tree): Add MINUS_LITP parameter; separate
4685         added literals from substracted literals.
4686         (associate_trees): Don't convert MINUS_EXPR into PLUS_EXPR.
4687         (fold) [associate]: Preserve MINUS_EXPR if needed.
4688
4689 2002-04-23  Zack Weinberg  <zack@codesourcery.com>
4690
4691         * doc/install.texi: Clarify which versions of alpha*-dec-osf*
4692         are obsoleted.
4693
4694 2002-04-23  Tom Tromey  <tromey@redhat.com>
4695
4696         * gcc.c: Added --resource.  For PR java/6314.
4697
4698 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
4699
4700         * cp/g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
4701         * config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of
4702         these libraries.
4703
4704 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
4705
4706         * config/freebsd.h(OBJECT_FORMAT_ELF): Define.
4707
4708 Tue Apr 23 14:24:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
4709
4710         * i386.c (ix86_output_addr_diff_elt): Avoid x86_64 binutils bug
4711         workaround.
4712         (ix86_expand_int_movcc): Avoid x86_64 compilation chrash.
4713         (ix86_expand_clrstr): Fix typo.
4714         * loop.c (gen_load_of_final_value): New.
4715         (loop_givs_rescan, strength_reduce, check_dbra_loop):
4716         Use it.
4717
4718 2002-04-23  Roger Sayle  <roger@eyesopen.com>
4719
4720         * builtins.c (builtin_memset_gen_str): New function.
4721         (expand_builtin_memset): Optimize the case of constant length, but
4722         unknown value.
4723
4724 2002-04-23  Aldy Hernandez  <aldyh@redhat.com>
4725
4726         * config/rs6000/altivec.h (vec_step): Remove extraneous
4727         parentheses.
4728         (vec_ctu): Cast return.
4729
4730 2002-04-23  Alan Modra  <amodra@bigpond.net.au>
4731
4732         PR target/6413
4733         * function.h: (struct function): Add profile_label_no field.
4734         (current_function_profile_label_no): Define.
4735         * function.c: (profile_label_no): New static var.
4736         (expand_function_start): Increment it, and copy to
4737         current_function_profile_label_no.
4738         * output.h (profile_label_no): Delete.
4739         * final.c (profile_label_no): Delete.
4740         (profile_function): Use current_function_profile_label_no.
4741         (final_end_function): Don't increment profile_label_no here.
4742         * config/i386/i386.c (ix86_osf_output_function_prologue): Replace
4743         profile_label_no with current_function_profile_label_no.
4744         * config/pa/pa.c (current_function_number): Delete.
4745         (pa_output_function_prologue): Don't output profile label here.
4746         (hppa_profile_hook): Use label_no param rather than
4747         current_function_number.
4748         (FUNC_BEGIN_PROLOG_LABEL): Move to ..
4749         * config/pa/pa.h: .. here.
4750         (FUNCTION_PROFILER): Output profile label here.
4751
4752 2002-04-22  Eric Christopher  <echristo@redhat.com>
4753
4754         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert
4755         patch of 2002-04-09 due to binutils issues.
4756         (FUNCTION_ARG_REGNO_P): Ensure even numbered float register.
4757
4758 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
4759
4760         * config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm'
4761         constraint to 'o' for m=r and r=m alternatives.
4762         ("*movv8hi_internal1"): Same.
4763         ("*movv16qi_internal1"): Same.
4764         ("*movv4sf_internal1"): Same.
4765
4766 2002-04-22  Janis Johnson  <janis187@us.ibm.com>
4767
4768         * rtl.h (RTX_FLAG): New macro.
4769         * emit-rtl.c (copy_most_rtx): Use macros to access rtx flags.
4770         * final.c (alter_subreg): Use macro to access rtx flag.
4771         * integrate.c (copy_rtx_and_substitute): Use new access macro.
4772         * print-rtl.c (print_rtx): Use new access macro.
4773
4774         * cse.c (insert): Check rtx code before accessing flag.
4775
4776         * genattrtab.c (ATTR_IND_SIMPLIFIED_P, ATTR_CURR_SIMPLIFIED_P,
4777         ATTR_PERMANENT_P, ATTR_EQ_ATTR_P): New.
4778         (attr_hash_add_string, attr_rtx_1, attr_copy_rtx, check_attr_test,
4779         convert_const_symbol_ref, make_canonical, make_alternative_compare,
4780         evaluate_eq_attr, attr_rtx_cost, simplify_test_exp_in_temp,
4781         simplify_test_exp, optimize_attrs, simplify_by_exploding,
4782         find_and_mark_used_attributes, unmark_used_attributes,
4783         add_values_to_cover, simplify_with_current_value,
4784         simplify_with_current_value_aux, clear_struct_flag, walk_attr_value,
4785         copy_rtx_unchanging, main): Use new access macros.
4786
4787 2002-04-22  Tom Rix  <trix@redhat.com>
4788
4789         * expmed.c (init_expmed): Generate shifted constant once.
4790
4791 2002-04-22  Zack Weinberg  <zack@codesourcery.com>
4792
4793         * c-lex.c (lex_charconst): Call convert to get constant in
4794         proper type; don't just smash the type field.
4795         Fixes PR c/6300.
4796
4797         * config.gcc: Add list of obsolete configurations.  Disallow
4798         building these without --enable-obsolete.
4799         * doc/install.texi: Document --enable-obsolete and obsoletion
4800         policy.  Mention obsoletion of individual targets in
4801         appropriate places.
4802
4803 2002-04-22  Richard Henderson  <rth@redhat.com>
4804
4805         * config/sparc/sol2-bi.h (ASM_DEBUG_SPEC): New.
4806
4807 2002-04-22  Mark Mitchell  <mark@codesourcery.com>
4808
4809         PR f/6138.
4810         * function.c (fixup_memory_subreg): Add promoted_mode parameter.
4811         (walk_fixup_memory_subreg): Likewise.
4812         (fixup_var_refs_insn): Adjust accordingly.
4813         (fixup_var_refs_1): Likewise.
4814
4815 2002-04-22  Ulrich Weigand  <uweigand@de.ibm.com>
4816
4817         * config/s390/linux.h: (LIBPATH_SPEC, LIBPATH_ARCH31_SPEC,
4818         LIBPATH_ARCH64_SPEC): Define.
4819         (EXTRA_SPECS): Add libpath, libpath_arch31, libpath_arch64.
4820         (STARTFILE_SPEC, ENDFILE_SPEC): Define; use libpath.
4821         (LINK_ARCH31_SPEC): Add libpath_arch31 to search path.
4822         (LINK_ARCH64_SPEC): Add libpath_arch64 to search path.
4823
4824 2002-04-22      Joel Sherrill <joel@OARcorp.com>
4825
4826         * gthr-rtems.h: Correct prototypes to remove warnings.
4827
4828 2002-04-22  Richard Henderson  <rth@redhat.com>
4829
4830         PR c/6344
4831         * alias.c (canon_true_dependence): Special case (mem:blk (scratch)).
4832
4833         * gcse.c (free_insn_expr_list_list): New.
4834         (clear_modify_mem_tables): Use it.  Fix bit set usage.
4835         (canon_list_insert): Use EXPR_LISTs for expressions.
4836         (record_last_mem_set_info): Factor BLOCK_NUM (insn).
4837
4838 2002-04-22  Neil Booth  <neil@daikokuya.demon.co.uk>
4839
4840         * cppfiles.c (_cpp_pop_file_buffer): Return void.  Move
4841         file change and include code to _cpp_pop_buffer.
4842         * cpphash.h (struct pending_option): Predeclare.
4843         (struct cpp_reader): New member next_include_file.
4844         (_cpp_pop_file_buffer): Update.
4845         (_cpp_push_next_buffer): Update, rename.
4846         * cppinit.c (cpp_destroy): Free include chain and pending here.
4847         (cpp_finish_options): Simplify.
4848         (_cpp_push_next_buffer): Rename and clean up.
4849         * cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer.
4850         Clarify.
4851         * cppmacro.c (cpp_scan_nooutput): Set return_at_eof here.
4852
4853 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
4854
4855         * config/rs6000/altivec.h (vec_xor): Add variant for both args
4856         being vector signed int.
4857         (vec_andc): Same.
4858         (vec_xor): Add variant for both args being vector signed char.
4859         Remove redundant variant.
4860         (vec_andc): Same.
4861
4862 2002-04-21  David S. Miller  <davem@redhat.com>
4863
4864         * config/sparc/sparc.md (set then compare DI mode peephole2): Fix
4865         compare mode in output RTL.
4866
4867 2002-04-22  David Edelsohn  <edelsohn@gnu.org>
4868
4869         * config/rs6000/rs6000.c (rs6000_override_options): Correct
4870         style and formatting of previous patch.
4871
4872 2002-04-22  Alan Modra  <amodra@bigpond.net.au>
4873
4874         * config/rs6000/rs6000.c (rs6000_override_options): Always clear
4875         flag_pic for ABI_AIX.
4876
4877 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
4878
4879         * cppexp.c (struct op, parse_number): Replace U_CHAR with uchar.
4880         * cppfiles.c (read_include_file): Similarly.
4881         * cpphash.h (DSC, U_CHAR, ustrcmp, ustrncmp, ustrlen,
4882         uxstrdup ustrchr, ufputs): Similarly.
4883         * cppinit.c (TRIGRAPH_MAP, cpp_destroy): Similarly.
4884         * cpplex.c (parse_slow, unescaped_terminator_p, save_comment,
4885         cpp_ideq, parse_identifier, parse_number): Similarly.
4886         * cpplib.c (struct directive, dequote_string, D, run_directive,
4887         cpp_push_buffer): Similarly.
4888         * cppmacro.c (new_string_token, builtin_macro, cpp_quote_string,
4889         _cpp_create_definition, check_trad_stringification,
4890         cpp_macro_definition): Similarly.
4891
4892 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
4893
4894         * cppmacro.c (funlike_invocation_p): Don't step back
4895         over CPP_EOF.
4896
4897 2002-04-21  David Edelsohn  <edelsohn@gnu.org>
4898
4899         * config/rs6000/rs6000.c (output_profile_hook): Do not increment
4900         labelno.
4901
4902 2002-04-20  Joseph S. Myers  <jsm28@cam.ac.uk>
4903
4904         * doc/invoke.texi: Remove Chill references.
4905         * doc/gcc.texi: Update last modified date.
4906
4907 2002-04-20  Kazu Hirata  <kazu@hxi.com>
4908
4909         * config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary
4910         push and pop.  Replace add.l with add.w.
4911
4912 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
4913
4914         * config/h8300/lib1funcs.asm (___mulsi3): Use hardware
4915         multiply instructions for H8/300H case.
4916
4917 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
4918
4919         * config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2):
4920         Bum three instructions from each routine.
4921
4922 2002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>
4923
4924         * Makefile.in: Update.
4925         * decl.c (push_c_function_context, pop_c_function_context,
4926         mark_c_function_context): Rename for consistency.
4927         * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
4928         * c-tree.h (push_c_function_context, pop_c_function_context,
4929         mark_c_function_context): Rename for consistency.
4930         * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
4931         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
4932         * function.c (init_lang_status, save_lang_status,
4933         restore_lang_status, mark_lang_status, free_lang_status):
4934         Move to langhooks.h.
4935         (push_function_context_to, pop_function_context_from,
4936         free_after_parsing, prepare_function_start, ggc_mark_struct_function):
4937         Update.
4938         * function.h (init_lang_status, save_lang_status,
4939         restore_lang_status, mark_lang_status, free_lang_status):
4940         Move to langhooks.h.
4941         * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
4942         LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
4943         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
4944         LANG_HOOKS_FUNCTION_INITIALIZER): New.
4945         (LANG_HOOKS_INITIALIZER): Update.
4946         (lhd_do_nothing_f): New.
4947         * langhooks.h (struct lang_hooks_for_functions): New.
4948         (struct lang_hooks): New hooks.
4949         * langhooks.c (lhd_do_nothing_f): New.
4950 objc:
4951         * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
4952         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
4953
4954 2002-04-19  David S. Miller  <davem@redhat.com>
4955
4956         * config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
4957         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise.
4958
4959 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
4960
4961         PR optimization/3756
4962         * config/i386/i386.c (ix86_expand_int_movcc): Optimize
4963         x = ((int) y < 0) ? cst1 : cst2.
4964
4965 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
4966
4967         PR c/6358
4968         * function.c: Reapply patch for c/6358.
4969         (expand_function_end): Copy decl_rtl's mode, not
4970         current_function_return_rtx mode.
4971
4972 2002-04-19  Joel Sherrill  <joel@OARcorp.com>
4973
4974         * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
4975         targets.
4976
4977 2002-04-19  Tom Tromey  <tromey@redhat.com>
4978
4979         * doc/install.texi (Specific): Update status of Solaris 2.8.
4980         For PR libgcj/6158.
4981
4982 2002-04-19  Andreas Schwab  <schwab@suse.de>
4983
4984         * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
4985         (PUT_REAL): Restore old definition.
4986
4987 2002-04-19  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
4988             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4989
4990         * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
4991         binutils 2.11.2 and higher generate smaller binaries than Sun's
4992         native tools.
4993
4994 2002-04-19  Mark Mitchell  <mark@codesourcery.com>
4995
4996         PR c++/6352
4997         * toplev.c (rest_of_compilation): Do not defer functions for which
4998         TREE_SYMBOL_REFERENCED has already been set.
4999
5000 Fri Apr 19 15:53:03 CEST 2002  Jan Hubicka  <jh@suse.cz>
5001
5002         * i386.md (movsi_1, movhi_1): Force reload to use more flexible
5003         alternative.
5004
5005 2002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>
5006
5007         * builtins.c: Include langhooks.h.
5008         (lang_type_promotes_to): Remove.
5009         (expand_builtin_va_arg): Use new hook.
5010         * c-common.c (c_common_nodes_and_builtins): Don't set hook.
5011         (simple_type_promotes_to): Move to c-typeck.c.
5012         * c-common.h (simple_type_promotes_to): Remove.
5013         * c-decl.c (duplicate_decls, grokdeclarator): Update.
5014         * c-format.c: Include langhooks.h.
5015         (check_format_types): Update.
5016         * c-tree.h (c_type_promotes_to): New.
5017         * c-typeck.c (c_type_promotes_to): Move from c-common.c.
5018         (type_lists_compatible_p): Update.
5019         * langhooks-def.h (lhd_type_promotes_to): New.
5020         (LANG_HOOKS_TYPE_PROMOTES_TO): New.
5021         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
5022         * langhooks.c (lhd_type_promotes_to): New.
5023         * langhooks.h (struct lang_hooks_for_types): New hook.
5024         * tree.h (lang_type_promotes_to): Remove.
5025 objc:
5026         * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
5027
5028 2002-04-18  Richard Henderson  <rth@redhat.com>
5029
5030         * function.c: Revert patch for c/6358.
5031
5032 2002-04-18  Richard Henderson  <rth@redhat.com>
5033
5034         * ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN
5035         blocks.  Handle multiple references to the TRAP block.  Handle
5036         non-adjacent THEN and OTHER blocks.
5037
5038 2002-04-18  Richard Henderson  <rth@redhat.com>
5039
5040         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
5041         crash with no type for by-mode libcalls.
5042
5043         * config/ia64/ia64.md (conditional_trap): Fix predicate polarity.
5044
5045 2002-04-18  Bob Wilson  <bob.wilson@acm.org>
5046
5047         * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
5048         __xtensa_nonlocal_goto): Use a syscall instructions to flush
5049         the register windows.
5050
5051 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
5052
5053         * real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
5054         appropriate.  Document need for extended precision even when
5055         MAX_LONG_DOUBLE_TYPE_SIZE is smaller.  Define REAL_WIDTH here,
5056         based on REAL_VALUE_TYPE_SIZE.  Use REAL_WIDTH to size
5057         REAL_VALUE_TYPE.  Define CONST_DOUBLE_FORMAT here.  Use #error
5058         instead of relying on later syntax error when REAL_WIDTH > 5.
5059         * real.c: Define NE based only on whether or not we have a
5060         full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
5061         Require sizeof(REAL_VALUE_TYPE) == 2*NE.  Unconditionally
5062         define GET_REAL and PUT_REAL as simple memcpy operations; no
5063         need to byteswap or round.
5064         Use #error instead of #ifdef-ing out the entire file, for
5065         prompt error detection.
5066
5067         * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.
5068
5069 2002-04-18  David S. Miller  <davem@redhat.com>
5070
5071         * config/sparc/sparc.h (BRANCH_COST): Define.
5072
5073         * fold-const.c (BRANCH_COST): Don't provide default here, expr.h
5074         does it.
5075
5076 2002-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
5077
5078         * flow.c (update_life_info): Ignore return value of cleanup_cfg.
5079         Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in
5080         propagate_block calls after relaxation loop using new variable
5081         stabilized_prop_flags.
5082
5083 2002-04-18  Richard Henderson  <rth@redhat.com>
5084
5085         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
5086         (ia64_va_arg): Expect variable sized types by reference.
5087         * config/ia64/ia64-protos.h: Update.
5088         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
5089         ia64_function_arg_pass_by_reference.
5090
5091 2002-04-18  Richard Henderson  <rth@redhat.com>
5092
5093         * ifcvt.c: Include except.h.
5094         (block_has_only_trap): Break out from find_cond_trap.
5095         (find_cond_trap): Use it.  Always delete the trap block.
5096         (merge_if_block): Allow then block null.  Be less simplistic about
5097         what insns can end a block.
5098         * Makefile.in (ifcvt.o): Depend on except.h.
5099
5100         * config/ia64/ia64.md (trap, conditional_trap): New.
5101
5102 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
5103
5104         PR c/6358
5105         * function.c (assign_parms): Assign hard current_function_return_rtx
5106         register here...
5107         (expand_function_end): ...not here.
5108
5109 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
5110
5111         * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
5112         * c-tree.h (c_incomplete_type_error): New.
5113         * c-typeck.c (require_complete_type, build_component_ref): Update.
5114         (incomplete_type_error): Rename.
5115         * langhooks-def.h (lhd_incomplete_type_error): New.
5116         (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
5117         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
5118         * langhooks.c (lhd_incomplete_type_error): New.
5119         * langhooks.h (struct lang_hooks_for_types): New hook.
5120         * tree.c (size_in_bytes): Use new hook.
5121         * tree.h (incomplete_type_error): Remove.
5122 objc:
5123         * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
5124
5125 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
5126
5127         * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
5128         TARGET_FLOAT_FORMAT blocks.
5129
5130 2002-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5131
5132         * doc/install.texi (Downloading the source): Do not mention Chill
5133         any longer, but mention Ada.
5134         (Configuration): Do not mention Chill any longer.
5135
5136 2002-04-18  Hans-Peter Nilsson  <hp@axis.com>
5137
5138         * config/cris/cris.h (TARGET_VERSION): Remove local version number.
5139
5140 Thu Apr 18 17:14:08 CEST 2002  Jan Hubicka  <jh@suse.cz>
5141
5142         * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
5143         in last patch.
5144
5145 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
5146
5147         * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
5148         instead of unsigned_type.
5149
5150 Thu Apr 18 15:49:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
5151
5152         * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
5153         * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
5154         later.
5155
5156 2002-04-18  Bernd Schmidt  <bernds@redhat.com>
5157
5158         * attribs.c (vector_type_node_list): New static variable.
5159         (handle_vector_size_attribute): Use it to avoid generating a
5160         new type node each time we are called.
5161
5162         * combine.c (subst): Avoid trying to make a vector mode subreg of
5163         an integer constant.
5164         (gen_lowpart_for_combine): Likewise.
5165
5166 2002-04-18  Roger Sayle  <roger@eyesopen.com>
5167             Jakub Jelinek  <jakub@redhat.com>
5168
5169         * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
5170         for integer constant c (if x has unsigned type or sign bit is not
5171         set in c).  This folds the zero/sign extension into the bit-wise and
5172         operation.
5173
5174 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
5175
5176         PR middle-end/6205
5177         * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
5178         otherwise xorps.
5179
5180 2002-04-17  NIIBE Yutaka  <gniibe@m17n.org>
5181
5182         * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.
5183
5184 2002-04-17  Nick Clifton  <nickc@cambridge.redhat.com>
5185
5186         * gcc.c (read_specs): Detect and fail if an attempt is made to
5187         rename a spec string to an already existing string.
5188
5189 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
5190
5191         * config/s390/s390.c (legitimize_pic_address): Do not generate
5192         illegal address constant without CONST.
5193
5194 2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5195
5196         * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
5197         * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
5198
5199 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
5200
5201         PR optimization/6305
5202         * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
5203         to make sure previous reloads are taken into account.  Generate
5204         better code if one operand is an in-range immediate constant.
5205
5206 2002-04-16  Andrew Haley  <aph@cambridge.redhat.com>
5207
5208         * doc/install.texi (Building): libgcj requires GNU make.
5209
5210 2002-04-17  Jakub Jelinek  <jakub@redhat.com>
5211
5212         PR bootstrap/6315
5213         * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
5214         even if hard quad and register is not floating.
5215         (movtf reg<-mem split): Disallow splitting if hard quad and
5216         register is floating.
5217         (movtf mem<-reg split): Likewise.
5218         * config/sparc/sparc.c (fp_register_operand): New predicate.
5219         * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.
5220
5221 2002-04-17  Zack Weinberg  <zack@codesourcery.com>
5222
5223         * Makefile.in (PROTO_OBJS): Add cppdefault.o.
5224         (protoize.o): Take $(PREPROCESSOR_DEFINES) off command line.
5225         (unprotoize.o): Ditto.  Build from protoize.c.  Define
5226         UNPROTOIZE on command line.
5227         * protoize.c: Include cppdefault.h.  Delete include_defaults.
5228         (in_system_include_dir): Use cpp_include_defaults (defined in
5229         cppdefault.o).
5230         * unprotoize.c: Delete file.
5231
5232 2002-04-17  Aldy Hernandez  <aldyh@redhat.com>
5233
5234         * config/rs6000/altivec.h (vec_ld): Add array variants.
5235         (vec_lde): Same.
5236         (vec_ldl): Same.
5237
5238 2002-04-17  Alan Matsuoka  <alanm@redhat.com>
5239             Aldy Hernandez <aldyh@redhat.com>
5240
5241         * config/rs6000/altivec.h: Define __ALTIVEC__.
5242         (bool): New.
5243         (__pixel): New.
5244         (pixel): New.
5245         (vec_cfux): New.
5246         (vec_vmaddfp): New.
5247         (vec_vsldoi): New.
5248         Add parentheses to all macro arguments.
5249
5250 2002-04-16  Richard Henderson  <rth@redhat.com>
5251
5252         PR c++/6320
5253         * except.c (remove_eh_handler): Insert inner regions at beginning
5254         of sibling chain.  Refactor expressions.
5255
5256 2002-04-16  Richard Henderson  <rth@redhat.com>
5257
5258         * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New.
5259         * config/sparc/sol2-gas-bi.h: New file.
5260         * config.gcc (sparc*-solaris): Add it as needed.
5261         * configure.in (AS_SPARC64_FLAG): Remove check.
5262         * config.in, configure: Regenerate.
5263
5264         * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.
5265
5266 2002-04-16  Richard Henderson  <rth@redhat.com>
5267
5268         * config/mips/mips.c (override_options): Don't override N32 for
5269         a 64-bit ISA.
5270
5271         PR 6202
5272         * config/mips/mips.md (can_delay): Split out of existing define_delays.
5273         (HILO_delay): Set can_delay false.
5274
5275 2002-04-16  Dale Johannesen <dalej@apple.com>
5276
5277         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
5278         instruction addresses.
5279         (rs6000_output_function_epilogue): Likewise.
5280
5281 2002-04-16  Paolo Carlini  <pcarlini@unitus.it>
5282
5283         * c-parse.in (poplevel, compstmt_start,
5284         compstmt_primary_start): Add ending ';', in accordance
5285         with POSIX.
5286
5287 2002-04-16  Richard Henderson  <rth@redhat.com>
5288
5289         * config.gcc (sparcv9-solaris): Configure for 64-bit default.
5290         Adjust tm_file order to get TARGET_DEFAULT set properly.
5291         (sparc-solaris): Configure 2.[78] for 64-bit multilibs.
5292         * doc/install.texi (sparc-solaris): Update.
5293
5294 2002-04-16  Dale Johannesen <dalej@apple.com>
5295
5296         * config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of
5297         comparison operands do not match each other or if modes of
5298         conditions do not match result.
5299
5300 2002-04-16  Hartmut Penner <hpenner@de.ibm.com>
5301
5302         PR target/6305
5303         * config/s390/s390.md (mulsidi3): Set both subregs of the
5304         multiword register.
5305
5306 2002-04-16  Aldy Hernandez  <aldyh@redhat.com>
5307
5308         * config/rs6000/altivec.h (vec_addc): Type check.
5309
5310 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
5311
5312         PR middle-end/6279
5313         * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.
5314
5315         * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.
5316
5317 2002-04-15  Richard Henderson  <rth@redhat.com>
5318
5319         * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
5320         call_really_used_regs too.
5321
5322 2002-04-15  Richard Henderson  <rth@redhat.com>
5323
5324         * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.
5325
5326 2002-04-15  David S. Miller  <davem@redhat.com>
5327
5328         * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
5329         as being CLOBBERed.
5330
5331 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
5332
5333         PR c/6290
5334         * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
5335         CONST_VECTOR is { 0, ... 0 }.
5336
5337 2002-04-15  Loren J. Rittle  <ljrittle@acm.org>
5338
5339         * doc/install.texi (Installing GCC: Configuration): Clarify
5340         the only supported ways to configure gcc.
5341
5342 2002-04-15  Roland McGrath  <roland@frob.com>
5343
5344         * config.gcc (alpha*-*-gnu*): New target configuration.
5345         * config/alpha/gnu.h: New file for it.
5346         * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.
5347
5348 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
5349
5350         * c-common.h (STMT_EXPR_NO_SCOPE): New macro.
5351         * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
5352         * tree.h (expand_start_stmt_expr): Update prototype.
5353         * stmt.c (expand_start_stmt_expr): Add has_scope parameter.
5354         * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
5355         on the STMT_EXPR created for the inline function.
5356
5357 2002-04-15  Richard Henderson  <rth@redhat.com>
5358
5359         * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
5360         config/i386/linux-aout.h, config/i386/linux-oldld.h,
5361         config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
5362         config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
5363         config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
5364         config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
5365         config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
5366         Define __gnu_linux__, not gnu_linux.
5367         * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.
5368
5369 2002-04-15  Mark Mitchell  <mark@codesourcery.com>
5370
5371         Remove Chill front end.
5372         * gcc.c (default_compilers): Remove Chill entries.
5373         * ch: Remove directory.
5374         * doc/frontends.texi: Remove information about Chill.
5375         * doc/sourcebuild.texi: Likewise.
5376         * doc/standards.texi: Likewise.
5377
5378 2002-04-15  Douglas B Rupp  <rupp@gnat.com>
5379
5380         * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
5381         (LONGLONG_STANDALONE): Define.
5382
5383 2002-04-15  David S. Miller  <davem@redhat.com>
5384
5385         * config/sparc/sparc.c (sparc_emit_float_lib_cmp):
5386         Call emit_library_call with LCT_NORMAL.
5387         (sparc_initialize_trampoline): Use LCT_foo instead of
5388         magic constant in emit_library_call invocations.
5389         (sparc64_initialize_trampoline): Likewise.
5390         (sparc_profile_hook): Likewise.
5391         * config/sparc/sparc.md: Likewise.
5392
5393         * config/sparc/sparc.c (sparc_extra_constraint_check):
5394         Fix type of argument 'c'.
5395         * config/sparc/sparc-protos.h (sparc_extra_constraint_check):
5396         Likewise.
5397
5398 2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
5399
5400         * diagnostic.h (output_buffer_state): Redefine.
5401         (output_format_decoder): New macro.
5402         (output_prefixing_rule): Likewise.
5403         (output_line_cutoff): Likewise.
5404         (diagnostic_format_decoder): Adjust.
5405         (diagnostic_prefixing_rule): Likewise.
5406         (diagnostic_line_cutoff): Likewise.
5407         (diagnostic_state): Likewise.
5408         (diagnostic_kind_count): Likewise.
5409         (diagnostic_buffer): Now a macro.
5410
5411         * diagnostic.c (diagnostic_buffer): Remove definition.
5412         (output_is_line_wrapping): Adjust.
5413         (set_real_maximum_length): Likewise.
5414         (output_set_maximum_length): Likewise.
5415         (init_output_buffer): Likewise.
5416         (lhd_print_error_function): Likewise.
5417         (output_do_verbatim): Likewise.
5418
5419 2002-04-14  Neil Booth  <neil@daikokuya.demon.co.uk>
5420
5421         * cpperror.c (print_location): Don't print include chain
5422         if line == 0.
5423         (cpp_begin_message): Update to use DL_ macros.
5424         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
5425         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
5426         cpp_notice, cpp_notice_from_errno): Remove.
5427         (cpp_error, cpp_error_with_line): Update to take a diagnostic
5428         level.
5429         (cpp_errno): New.
5430         * cppexp.c (CPP_ICE): Remove.
5431         (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
5432         lex, integer_overflow, _cpp_parse_expr): Update.
5433         * cppfiles.c (read_include_file, find_include_file,
5434         handle_missing_header, _cpp_read_file, remap_filename): Update.
5435         * cpphash.h (enum error_type): Remove.
5436         (_cpp_begin_message): Update.
5437         * cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
5438         cpp_handle_option, cpp_post_options): Update.
5439         * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
5440         skip_whitespace, parse_identifier, parse_slow, parse_string,
5441         _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
5442         cpp_interpret_charconst): Update.
5443         * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
5444         lex_macro_node, do_undef, glue_header_name, parse_include,
5445         do_include_common, read_flag, do_line, do_linemarker, do_ident,
5446         cpp_register_pragma, do_pragma_once, do_pragma_system_header,
5447         do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
5448         do_elif, do_endif, parse_answer, parse_assertion, do_assert,
5449         _cpp_pop_buffer, do_diagnostic): Update.
5450         * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
5451         DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
5452         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
5453         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
5454         cpp_notice, cpp_notice_from_errno): Remove.
5455         (cpp_error, cpp_error_with_line): Update to take a diagnostic
5456         level.
5457         (cpp_errno): New.
5458         * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
5459         collect_args, enter_macro_context, save_parameter, parse_params,
5460         _cpp_create_definition, check_trad_stringification,
5461         cpp_macro_definition): Update.
5462         * cppmain.c (cpp_preprocess_file): Update.
5463         * fix-header.c (read_scan_file): Update.
5464
5465 2002-04-14  Andreas Schwab  <schwab@suse.de>
5466
5467         * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.
5468
5469 2002-04-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
5470
5471         * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.
5472
5473 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
5474
5475         * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
5476         not gnu_hurd.
5477
5478 2002-04-13  Hans-Peter Nilsson  <hp@axis.com>
5479
5480         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.
5481
5482 2002-04-13      Joel Sherrill <joel@OARcorp.com>
5483
5484         * config/sparc/t-elf: Enable v8 multilibs.  Impacts
5485         sparc-elf and sparc-rtems targets.
5486
5487 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
5488
5489         * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
5490         defined, and __gnu_hurd__ wherever __GNU__ is defined.
5491         * arm/linux-elf.h: Likewise.
5492         * cris/aout.h: Likewise.
5493         * cris/linux.h: Likewise.
5494         * i370/linux.h: Likewise.
5495         * i386/gnu.h: Likewise.
5496         * i386/linux-aout.h: Likewise.
5497         * i386/linux-oldld.h: Likewise.
5498         * i386/linux.h: Likewise.
5499         * i386/linux64.h: Likewise.
5500         * ia64/linux.h: Likewise.
5501         * m68k/linux-aout.h: Likewise.
5502         * m68k/linux.h: Likewise.
5503         * mips/linux.h: Likewise.
5504         * pa/pa-linux.h: Likewise.
5505         * pj/linux.h: Likewise.
5506         * rs6000/sysv4.h: Likewise.
5507         * s390/linux.h: Likewise.
5508         * sh/linux.h: Likewise.
5509         * sparc/linux-aout.h: Likewise.
5510         * sparc/linux.h: Likewise.
5511         * sparc/linux64.h: Likewise.
5512         * xtensa/linux.h: Likewise.
5513
5514 2002-04-13  Richard Sandiford  <rsandifo@redhat.com>
5515
5516         * stmt.c (check_unique_operand_names): Expect operand names to
5517         be strings rather than identifiers.  Use simple_cst_equal to
5518         compare them.
5519         (resolve_operand_name_1): Make same identifier to string change here.
5520         * c-parse.in (asm_operand): Convert a named operand into a string.
5521         * cp/parse.y (asm_operand): Likewise.
5522
5523 2002-04-13  Andreas Schwab  <schwab@suse.de>
5524
5525         * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
5526
5527 2002-04-12  Mark Mitchell  <mark@codesourcery.com>
5528
5529         Revert these changes:
5530
5531         2002-04-06  Mark Mitchell  <mark@codesourcery.com>
5532
5533         PR c++/5571
5534         * stor-layout.c (layout_decl): Reset the RTL for the decl.
5535
5536 2002-04-12  Richard Henderson  <rth@redhat.com>
5537
5538         * config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
5539         (sparc*-*-solaris): Clean up header files.
5540         * configure.in (AS_SPARC64_FLAG): Error out if can't find it
5541         and plan on generating 64-bit code.
5542         * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
5543         * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
5544         * config/sparc/sol2-sld-64.h: Rename ...
5545         * config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
5546         for AS_SPARC64_FLAG not defined.
5547         * config/sparc/sol2-gld-bi.h: New.
5548         * config/sparc/sol2-sld.h: Remove.
5549         * config/sparc/sol26-sld.h: New.
5550         * config/sparc/sol2.h: Tidy comments.
5551         * doc/install.texi: Document sparc-solaris configury changes.
5552
5553 2002-04-12  Richard Henderson  <rth@redhat.com>
5554
5555         * recog.c (offsettable_address_p): Match the logic in adjust_address.
5556
5557         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
5558         in 64-bit mode only.  Use only for 32-bit or MEDLOW.
5559
5560 2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5561
5562         * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
5563
5564 Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)
5565
5566         * pa.c (pa_can_combine_p): Call extract_insn before calling
5567         constrain_operands.
5568
5569 2002-04-12  Douglas B Rupp  <rupp@gnat.com>
5570
5571         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
5572         (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
5573         (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
5574         (CPP_PREDEFINES): Handle __declspec.
5575         * config/i386/t-interix (USER_H): Remove.
5576
5577 2002-04-12  DJ Delorie  <dj@redhat.com>
5578
5579         * integrate.c (compare_blocks): Make comparisons safe for when
5580         sizeof(int) < sizeof(char *).
5581         (find_block): Likewise.
5582
5583 2002-04-12  Jan Hubicka  <jh@suse.cz>
5584             David Edelsohn  <edelsohn@gnu.org>
5585
5586         * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
5587         registers.
5588         (symbol_ref_operand): New.
5589         * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
5590         * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.
5591
5592 2002-04-12  Andreas Schwab  <schwab@suse.de>
5593
5594         * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
5595         * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
5596         overrides the definition in config/svr4.h.
5597
5598 2002-04-12      Eric Norum <eric.norum@usask.ca>
5599
5600         * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
5601         config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
5602         config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
5603         config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
5604         config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
5605         config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
5606         config/v850/rtems.h (*-rtems*): Cleanup pass to move common
5607         definitions to config/rtems.h and make the targets more similar.
5608
5609 Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5610
5611         * expr.c (expand_assigment): Remove duplicate conversions #ifdef
5612         POINTERS_EXTEND_UNSIGNED.
5613         (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
5614         (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
5615
5616         * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
5617         not specified.
5618
5619 Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>
5620
5621         * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
5622         depends on TARGET_SHMEDIA, not TARGET_SH5.
5623
5624 2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>
5625
5626         * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
5627         For paradoxical (subreg VAR), replace VAR, don't try the subreg.
5628
5629 Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
5630
5631         * sh.c (broken_move): Constant 0. / 1. load is OK if there is
5632         no r0 clobber.
5633
5634 2002-04-12  Andreas Schwab  <schwab@suse.de>
5635
5636         * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
5637
5638 2002-04-12  Richard Henderson  <rth@redhat.com>
5639
5640         PR bootstrap/4191
5641         * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
5642
5643         * flow.c (mark_used_reg): Manage reg_cond_dead properly for
5644         modes spanning multiple hard regs.
5645
5646         * recog.c (peephole2_optimize): Rebuild jump labels as needed.
5647
5648 2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5649
5650         * pa.c (pa_output_function_prologue): Don't accumulate the total
5651         number of code bytes when using TARGET_64BIT, or gas, SOM and not
5652         the portable runtime.
5653         (output_deferred_plabels): Handle 64bit plabels.
5654         (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
5655         generating pic code using the GAS assembler for object formats that
5656         are not SOM (ie., ELF32 and ELF64).
5657         (output_millicode_call): Check attribute type if attribute length is 28.
5658         Likewise use $PIC_pcrel$0.  Only call get_attr_length and
5659         dbr_sequence_length once.
5660         (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
5661         dbr_sequence_length once.
5662         * pa.h (TARGET_SOM): Define if not defined.
5663         * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
5664         with GAS and not SOM.
5665         (jump, call_internal_reg, call_value_internal_reg): Likewise.
5666         * som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.
5667
5668 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
5669
5670         * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
5671         (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
5672         (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
5673         DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
5674         elfos.h and dbxelf.h values are fine now.
5675         * config/i386/freebsd.h, config/alpha/freebsd.h
5676         (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
5677
5678 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
5679
5680         * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
5681         or set Acpu or Amachine.  Reformat.
5682         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
5683         define.
5684         (LINK_SPEC): Do not need to undef.
5685         * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
5686         * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
5687         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
5688         define.
5689         * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
5690         (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
5691         (LINK_SPEC): Do not need to undef.
5692         (DONT_USE_BUILTIN_SETJMP): Do not define.
5693         * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
5694         (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
5695         (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
5696         Remove trailing spaces.
5697         * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
5698         __ELF__, or set Acpu or Amachine.  Reformat.
5699         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
5700         define.
5701
5702 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
5703
5704         * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
5705         all other *-*-freebsd* targets.
5706
5707 2002-04-11  Richard Henderson  <rth@redhat.com>
5708
5709         * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
5710
5711 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
5712
5713         * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
5714         Include {cpu}/{cpu}.h thru tm_file.
5715         (alpha*-*-linux*ecoff): Remove target.
5716         * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
5717         (LINK_SPEC): Remove, is not OS independent.
5718         * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
5719         (LINK_SPEC): Do not need to #undef any longer.
5720         * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
5721         any longer.
5722         * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
5723         __ELF__.
5724         (LINK_SPEC): Moved here from alpha/elf.h.
5725         * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
5726         SUB_CPP_PREDEFINES.
5727         * config/alpha/linux-ecoff.h: Remove.
5728         * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
5729         (CPP_SPEC): Define _POSIX_SOURCE as needed.
5730         (CPP_SUBTARGET_SPEC): Do not define.
5731         (LINK_SPEC): Do not need to #undef any longer.
5732         * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
5733         * config/alpha/vms.h: Likewise.
5734
5735 2002-04-11  Richard Sandiford  <rsandifo@redhat.com>
5736
5737         * doc/extend.texi: Remove old claim that typedefs cannot have
5738         an alignment attribute.
5739
5740 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
5741
5742         PR optimization/6177
5743         * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
5744         bitpos is 0 and bitsize CONCAT size.
5745
5746 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
5747
5748         PR c/6223
5749         * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
5750
5751 2002-04-10  David O'Brien  <obrien@FreeBSD.org>
5752
5753         * config/alpha/freebsd.h: Minor reformatting.
5754         (CPP_SPEC): Define ELF and add cpp_subtarget.
5755         (ASM_SPEC): No longer needed.
5756
5757 2002-04-11  Richard Henderson  <rth@redhat.com>
5758
5759         * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
5760         (movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
5761         (dimode mem/zero splitter): New.
5762
5763 2002-04-11  Hans-Peter Nilsson  <hp@axis.com>
5764
5765         * config/cris/cris.c (cris_override_options): Tweak error message
5766         for PIC not implemented.
5767
5768         * config/cris/cris.h: Tweak comments related to parameter-passing.
5769
5770         * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
5771
5772 2002-04-10  Richard Henderson  <rth@redhat.com>
5773
5774         * except.c (add_ehl_entry): Allow duplicates after landing pad
5775         creation.
5776
5777 2002-04-10  David Edelsohn  <edelsohn@gnu.org>
5778
5779         * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
5780
5781 2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>
5782
5783         * c-decl.c (c_init_decl_processing): Move generation of
5784         decls for g77_integer_type_node and friends from here ...
5785         * c-common.c (c_common_nodes_and_builtins): ... to here.
5786
5787 2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
5788
5789         * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
5790         is only used as frame pointer when frame_pointer_needed is true.
5791
5792 2002-04-10  Richard Earnshaw  <rearnsha@arm.com>
5793
5794         PR target/817
5795         * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
5796         for the fact that the pool entry uses two words.
5797         (movdf_hard_insn): Similarly.  Also, ADR instruction can span
5798         1k bytes.
5799         (movdf_soft_insn): Similarly.
5800         (movxf_hard_insn): Adjust neg_pool_range attribute to allow
5801         for the fact that the pool entry uses three words.
5802
5803 2002-04-10  Richard Sandiford  <rsandifo@redhat.com>
5804
5805         * config/mips/mips.c (mips_va_arg): When using the struct version
5806         of the EABI va_list, allow arguments in the register save area to
5807         take up less room than a stack argument.
5808
5809 2002-04-10  Richard Henderson  <rth@redhat.com>
5810
5811         * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
5812         if EXPAND_INITIALIZER.
5813
5814 2002-04-09  Richard Henderson  <rth@redhat.com>
5815
5816         * config/alpha/alpha.md (movdi_er_maybe_g): New.
5817         * config/alpha/alpha.c (alpha_expand_mov): Use it.
5818
5819 2002-04-10  Alan Modra  <amodra@bigpond.net.au>
5820
5821         PR optimization/6233
5822         * rtlanal.c (pure_call_p): New function.
5823         * rtl.h (pure_call_p): Declare.
5824         * loop.c (prescan_loop): Use it to set has_nonconst_call.
5825         * gcse.c (store_killed_in_insn): Use pure_call_p here too.
5826
5827 2002-04-09  Eric Christopher  <echristo@redhat.com>
5828
5829         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
5830         information to .comm directive.
5831
5832 2002-04-09  Richard Henderson  <rth@redhat.com>
5833
5834         PR c/5078
5835         * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
5836
5837 2002-04-09  Richard Henderson  <rth@redhat.com>
5838
5839         * basic-block.h (flow_delete_block_noexpunge): Declare.
5840         (expunge_block_nocompact): Declare.
5841         * cfg.c (expunge_block_nocompact): Split out from ...
5842         (expunge_block): ... here.
5843         * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
5844         (flow_delete_block_noexpunge): Split out from ...
5845         (flow_delete_block): ... here.
5846         * cfgcleanup.c (delete_unreachable_blocks): Compact while
5847         removing dead blocks.
5848         * except.c (exception_handler_labels): Remove.
5849         (exception_handler_label_map): New.
5850         (struct eh_region): Add aka member.
5851         (mark_ehl_map_entry, mark_ehl_map, free_region): New.
5852         (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
5853         (for_each_eh_label, for_each_eh_label_1): New.
5854         (init_eh): Register exception_handler_label_map.
5855         (free_eh_status): Use free_region.
5856         (find_exception_handler_labels): Use the map, not the list.
5857         (remove_exception_handler_label): Likewise.
5858         (maybe_remove_eh_handler): Likewise.
5859         (remove_eh_handler): Use the region aka bitmap.
5860         * except.h (exception_handler_labels): Remove.
5861         (for_each_eh_label): Declare.
5862         * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
5863         * loop.c (invalidate_loops_containing_label): New.
5864         (find_and_verify_loops): Use it.  Use for_each_eh_label.
5865         * sched-rgn.c (is_cfg_nonregular): Use
5866         current_function_has_exception_handlers.
5867
5868 2002-04-09  Richard Henderson  <rth@redhat.com>
5869
5870         * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
5871         sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
5872         Do not return changed status.
5873         (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
5874         sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
5875         New functions that do return changed status.
5876         * sbitmap.h: Update decls.
5877         * gcse.c, lcm.c: Use _cg functions as needed.
5878
5879 Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
5880
5881         * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
5882         (sh64-*-elf*, sh-*-rtemself*): Likewise.
5883         * config/sh/embed_bb.c: New file.
5884         * config/sh/embed-elf.h: New file.
5885         * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
5886         if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
5887         (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
5888         __PTRDIFF_TYPE__ .
5889         (SUBTARGET_CPP_PTR_SPEC): Don't define.
5890         (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
5891         Add subtarget_asm_endian_spec.
5892         (ASM_SPEC): Use subtarget_asm_endian_spec.
5893         (SUBTARGET_ASM_ENDIAN_SPEC): Define.
5894         (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
5895         (WCHAR_UNSIGNED): Define.
5896         (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
5897         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
5898         (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
5899         Fix value.
5900         * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
5901         (sh_adjust_cost): Likewise.
5902         sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
5903         __PTRDIFF_TYPE__ .
5904         (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
5905         (WCHAR_TYPE_SIZE): Likewise.
5906         (ASM_SPEC): Use subtarget_asm_endian_spec.
5907         (SH_ELF_WCHAR_TYPE): #undef/ #define.
5908         (MAX_WCHAR_TYPE_SIZE): Don't #undef.
5909         * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
5910         (MAX_WCHAR_TYPE_SIZE): Don't #define .
5911         (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
5912         (USER_LABEL_PREFIX): Don't #undef /#define .
5913         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
5914         * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
5915         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
5916         (ASM_SPEC): Likewise.
5917         (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
5918         (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
5919         * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
5920         (LIB2FUNCS_EXTRA): Define.
5921         * t-sh64 (LIB2FUNCS_EXTRA): Define.
5922         * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
5923         (LIB1ASMFUNCS_CACHE): Define.
5924         (LIB2FUNCS_EXTRA): Redefine empty.
5925
5926 2002-04-08  Richard Henderson  <rth@redhat.com>
5927
5928         * reorg.c (get_branch_condition): Use reversed_comparison_code.
5929
5930 2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5931
5932         * config/m68hc11/larith.asm (__map_data_section): Fix condition
5933         and optimize for size.
5934         (__do_global_ctors): Fix pointer comparison.
5935         (__do_global_dtors): Likewise.
5936
5937 2002-04-09  David S. Miller  <davem@redhat.com>
5938
5939         * config/sparc/sparc.c (sparc_extra_constraint_check): New
5940         function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
5941         allow reloading pseudos.
5942         * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
5943         * config/sparc/sparc-protos.h: Declare it.
5944
5945         * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
5946         unsigned comparison warning.
5947         (output_restore_regs): Mark leaf_function as unused.
5948
5949 Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5950
5951         * expr.c (is_aligning_offset): New function.
5952         (expand_expr, case COMPONENT_EXPR): Call it.
5953
5954 2002-04-08  David S. Miller  <davem@redhat.com>
5955
5956         PR target/6082
5957         * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
5958
5959         Make init_priority work on Sparc when using GNU ld.
5960         * config/sparc/linux.h, config/sparc/linux64.h,
5961         config/sparc/netbsd-elf.h, config/sparc/freebsd.h
5962         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
5963         * config/sparc/sol2-gld.h: New file to do the same.
5964         * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
5965         sparc/sol2-gld.h to tm_file.
5966
5967         PR optimization/4328
5968         * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
5969         * doc/md.texi: Document it.
5970         * config/sparc/sparc.md (movdi_insn_sp64_novis,
5971         movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
5972         movdf_insn_v9only_vis, movdf_insn_sp64_novis,
5973         movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
5974         * config/sparc/sparc.c (mem_min_alignment): Fix comment.
5975
5976 2002-04-08  Andreas Jaeger  <aj@suse.de>
5977
5978         * stmt.c (expand_asm_operands): Revert last patch from Richard
5979         Henderson.
5980
5981 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5982
5983         * doc/contrib.texi (Contributors): Add John David Anglin and Loren
5984         J. Rittle (the latter also to Testers).  Update David O'Brien's entry.
5985
5986 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5987
5988         * doc/contrib.texi (Contributors): Add David O'Brien.
5989
5990 2002-04-08  Alan Modra  <amodra@bigpond.net.au>
5991
5992         * configure.in (auto-build.h): Use target_alias and build_alias
5993         when running configure.
5994         (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
5995         (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
5996         * configure: Regenerate.
5997
5998 2002-04-07  David S. Miller  <davem@redhat.com>
5999
6000         * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
6001
6002 2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6003
6004         PR 5933
6005         * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
6006         generating 32-bit pic code.
6007
6008 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
6009
6010         * cppinit.c (cpp_create_reader): Initialize
6011         discard_comments_in_macro_exp.
6012         (COMMAND_LINE_OPTIONS): Add "-CC" option.
6013         (cpp_handle_option): Handle "-CC" option.
6014         * cpplex.c (save_comment): If saving a C++ comment in
6015         a directive, convert it to a C comment.
6016         (_cpp_lex_direct): Pass second comment start character to
6017         save_comment to indicate comment type.
6018         * cpplib.c (_cpp_handle_directive): If processing
6019         a "#define" directive and discard_comments_in_macro_exp
6020         is false,  re-enable saving of comments.
6021         (lex_macro_node): If discard_comments_in_macro_exp is false,
6022         discard any comments before the macro identifier.
6023         * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
6024         member.
6025         * cppmacro.c (cpp_get_token): If expanding a macro while
6026         processing a directive, discard any comments we might encounter.
6027         (parse_params): If discard_comments_in_macro_exp is false,
6028         ignore comments in the macro parameter list.
6029         * gcc.c (cpp_unique_options): Add "-CC" option.
6030         (option_map): Map "--comments-in-macros" to "-CC".
6031         * doc/cppopts.texi: Document "-CC" option.
6032         * f/lang-specs.h: Add "-CC" option.
6033         * testsuite/gcc.dg/cpp/maccom1.c: New test.
6034         * testsuite/gcc.dg/cpp/maccom2.c: New test.
6035         * testsuite/gcc.dg/cpp/maccom3.c: New test.
6036         * testsuite/gcc.dg/cpp/maccom4.c: New test.
6037         * testsuite/gcc.dg/cpp/maccom5.c: New test.
6038         * testsuite/gcc.dg/cpp/maccom6.c: New test.
6039
6040 2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6041
6042         PR middle-end/6180
6043         * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
6044
6045 2002-04-06  Mark Mitchell  <mark@codesourcery.com>
6046
6047         PR c++/5571
6048         * stor-layout.c (layout_decl): Reset the RTL for the decl.
6049
6050         PR opt/5120
6051         * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
6052         RTX_UNCHANGING_P for the functions arguments when a tail call
6053         is made.
6054
6055 2002-04-06  Jason Merrill  <jason@redhat.com>
6056
6057         * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
6058         (parse_options_and_default_flags): Set them appropriately.
6059         * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
6060
6061 2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>
6062
6063         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
6064         here.
6065
6066         * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
6067         semicolon.
6068
6069         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
6070         types come in by-reference.  Fix typo in comment.
6071
6072 2002-04-05  David S. Miller  <davem@redhat.com>
6073
6074         * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
6075         * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
6076         sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
6077         {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
6078
6079 2002-04-05  David S. Miller  <davem@redhat.com>
6080
6081         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
6082         are not going to emit return instructions, emit at least a nop
6083         for the sake of sane backtraces.
6084
6085 2002-04-05  Richard Henderson  <rth@redhat.com>
6086
6087         * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
6088
6089 2002-04-05  Jakub Jeilnek  <jakub@redhat.com>
6090
6091         * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
6092
6093 2002-04-05  Alexandre Oliva  <aoliva@redhat.com>
6094
6095         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
6096         ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
6097         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
6098
6099 2002-04-05  Andreas Schwab  <schwab@suse.de>
6100
6101         * c-convert.c: Include c-common.h.
6102         * Makefile.in (c-convert.o): Updated.
6103
6104 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
6105
6106         * mklibgcc.in: Use separate libgcc.map for each multilib.
6107         * Makefile.in (distclean): Don't remove libgcc.map here.
6108
6109 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
6110
6111         * Makefile.in (s-mlib): Handle --disable-multilib by separate
6112         genmultilib invocation.
6113
6114 2002-04-04  Richard Sandiford  <rsandifo@redhat.com>
6115
6116         * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
6117         to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
6118         to num_gprs for symmetry.
6119         * config/mips/mips.c: Adjust accordingly.
6120
6121 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
6122
6123         * c-common.c (truthvalue_conversion): Rename, update.
6124         * c-common.h (c_common_truthvalue_conversion): New.
6125         * c-convert.c (convert): Update.
6126         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
6127         * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
6128         * c-typeck.c (build_binary_op, build_unary_op,
6129         build_conditional_expr): Update.
6130         * fold-const.c (constant_boolean_node, fold): Use langhook.
6131         * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
6132         * langhooks.h (struct lang_hooks): New hook.
6133         * stmt.c (expand_decl_cleanup): Use langhook.
6134         * tree.h (truthvalue_conversion): Remove.
6135 objc:
6136         * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
6137
6138 2002-04-05  Alan Modra  <amodra@bigpond.net.au>
6139
6140         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
6141         Add rules to make null object file.
6142
6143 2002-04-04  Jim Blandy  <jimb@redhat.com>
6144
6145         * cppmacro.c (cpp_macro_definition): Do not emit spaces after
6146         macro formal parameter names.
6147
6148 2002-04-04  David S. Miller  <davem@redhat.com>
6149
6150         * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
6151
6152 2002-04-04  Richard Henderson  <rth@redhat.com>
6153
6154         PR middle-end/5099
6155         * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
6156         Support copies into and out of memory.  Don't accept allows_reg
6157         and allows_mem as gospel.
6158
6159 2002-04-04  Richard Henderson  <rth@redhat.com>
6160
6161         PR opt/6165
6162         * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
6163         (write_dependence_p): Likewise.
6164
6165 2002-04-04  Richard Henderson  <rth@redhat.com>
6166
6167         * predict.c (estimate_bb_frequencies): Do frequency calculation
6168         with a volatile temporary.
6169
6170 2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>
6171
6172         * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
6173
6174 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
6175
6176         PR c++/6119
6177         * final.c (final_start_function): Don't bump profile_label_no here...
6178         (final_end_function): ...but here.
6179
6180 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
6181
6182         * config/sparc/sparc.md (pic): New attribute.
6183         (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
6184         into stack slots.
6185         (split after do_builtin_setjmp_setup): New.
6186
6187 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
6188
6189         PR fortran/6106
6190         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
6191         change.
6192
6193 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
6194
6195         * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
6196         UNITS_PER_WORD for zero sized aggregates.
6197
6198 2002-04-03  David S. Miller  <davem@redhat.com>
6199
6200         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
6201         one-character spec for this, just use %(link_gcc_c_sequence).
6202
6203 2002-04-03  David S. Miller  <davem@redhat.com>
6204
6205         * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
6206         handling.
6207
6208 2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6209
6210         * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
6211         (DWARF_FRAME_RETURN_COLUMN): Move.
6212         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
6213         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
6214         * pa.c (except.h, predict.h): Include.
6215         (FRP): Delete.
6216         (store_reg_modify, set_reg_plus_d): Revise prototypes.
6217         (output_ascii): Add cast.
6218         (store_reg_modify): Revise to add frame notes.
6219         (set_reg_plus_d): Likewise.
6220         (compute_frame_size): Include space for eh data registers in frame if
6221         the current function calls eh_return.
6222         (hppa_expand_prologue):  Ensure register %r2 is saved if the current
6223         function calls eh_return.  Save eh data registers if the current
6224         function calls eh_return.  Fix code to add frame notes.  Emit
6225         blockage to prevent insns with frame notes being scheduled in the
6226         delay slot of calls.
6227         (hppa_expand_epilogue): Restore eh data registers and do final stack
6228         adjustment if the current function calls eh_return.  Don't add frame
6229         notes.
6230         (output_call): Revise for change in length of call insn.  Don't do
6231         return pointer adjustment for an unconditional jump in the delay slot
6232         of a call when using frame notes.
6233         * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
6234         (EH_RETURN_HANDLER_RTX): Use saved value on stack.
6235         (ARG_POINTER_CFA_OFFSET): Define.
6236         * pa.md (return_external_pic): New pattern.
6237         (prologue): Correct formatting.  Use return_external_pic if current
6238         function calls eh_return.
6239         (call_internal_symref, call_value_internal_symref,
6240         sibcall_internal_symref, sibcall_value_internal_symref): Change default
6241         lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
6242         respectively.
6243         (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
6244
6245         * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
6246         list of targets to check using "nop" insn.
6247         * configure: Rebuilt.
6248
6249 2002-04-04  Alan Modra  <amodra@bigpond.net.au>
6250
6251         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
6252
6253 2002-04-03  David S. Miller  <davem@redhat.com>
6254
6255         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
6256         library sequence passed to the linker.
6257         (LINK_COMMAND_SPEC): Use it.
6258         * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
6259         a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
6260         * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
6261
6262 2002-04-03  Jason Merrill  <jason@redhat.com>
6263
6264         * except.c (struct eh_status): Remove protect_list.
6265         (begin_protect_partials, end_protect_partials): Remove.
6266         (add_partial_entry): Remove.
6267         * except.h: Remove prototypes.
6268
6269         * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
6270         expand_decl_cleanup_eh.
6271
6272         PR c++/5636
6273         * tree.h (CLEANUP_EH_ONLY): New macro.
6274         * stmt.c (expand_decl_cleanup_eh): New fn.
6275         (expand_cleanups): Check CLEANUP_EH_ONLY.
6276         * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
6277         Use expand_decl_cleanup_eh.
6278         (expand_stmt): Adjust.
6279         * c-common.h: Adjust prototype.
6280
6281 2002-04-04  Hans-Peter Nilsson  <hp@axis.com>
6282
6283         * config/cris/cris.c (cris_target_asm_function_prologue): Cast
6284         uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
6285         (cris_target_asm_function_epilogue): Ditto.
6286         (cris_initial_frame_pointer_offset): Ditto.
6287         (cris_simple_epilogue): Ditto.
6288         (cris_expand_builtin_va_arg): Variable-size types come in
6289         by-reference.
6290
6291 2002-04-03  David S. Miller  <davem@redhat.com>
6292
6293         * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
6294         little-endian.
6295         (set_fast_math): Correct 'fsr' type.
6296
6297 2002-04-03  Richard Henderson  <rth@redhat.com>
6298
6299         PR opt/3569
6300         * langhooks.h (lang_hooks.decls.warn_unused_global): New.
6301         * toplev.c (check_global_declarations): Use it.
6302         * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
6303         (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
6304         (LANG_HOOKS_DECLS): Add it.
6305         * langhooks.c (lhd_warn_unused_global_decl): New.
6306         * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
6307         * c-objc-common.c (c_warn_unused_global_decl): New.
6308         * c-tree.h (c_warn_unused_global_decl): Declare.
6309         * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
6310
6311 2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
6312
6313         * langhooks-def.h (lhd_set_decl_assembler_name,
6314         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
6315         (LANG_HOOKS_INITIALIZER): Update.
6316         * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
6317         * langhooks.h (struct lang_hooks): New hook.
6318         * tree.c (set_decl_assembler_name): Move to langhooks.c.
6319         (lang_set_decl_assembler_name): Remove.
6320         (init_obstacks): Don't set hook.
6321         (decl_assembler_name): New function.
6322         * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
6323         (decl_assembler_name): New.
6324         (lang_set_decl_assembler_name): Remove.
6325
6326 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
6327
6328         * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
6329         works properly with .hidden symbols.
6330         * configure: Rebuilt.
6331         * config.in: Rebuilt.
6332         * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
6333         DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
6334         properly with .hidden symbols.
6335
6336 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
6337
6338         PR middle-end/6102
6339         * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
6340         USE argument.
6341
6342 2002-04-03  Richard Henderson  <rth@redhat.com>
6343
6344         PR opt/4120
6345         * sched-rgn.c (sets_likely_spilled): New.
6346         (sets_likely_spilled_1): New.
6347         (add_branch_dependences): Use it.
6348
6349 2002-04-02  Richard Henderson  <rth@redhat.com>
6350
6351         PR opt/4311
6352         * loop.h (LOOP_FIRST_PASS): New.
6353         * loop.c (strength_reduce): Mind it when deciding to unroll.
6354         * toplev.c (rest_of_compilation): Set it.
6355
6356 2002-04-02  David S. Miller  <davem@redhat.com>
6357
6358         * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
6359         mems_ok_for_ldd_peep when the order of the loads being examined
6360         is reversed.
6361         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
6362         existing comment to increase comprehension of this situation.
6363
6364 2002-04-02  Zack Weinberg  <zack@codesourcery.com>
6365
6366         * config/sh/sh.md: Don't use union real_extract.
6367
6368 2002-04-02  Richard Henderson  <rth@redhat.com>
6369
6370         * libgcc2.c (__bb_exit_func): Revert 03-31 change.
6371
6372 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
6373
6374         * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
6375         i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
6376         i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
6377         i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
6378         i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
6379         i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
6380         i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
6381         i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
6382         i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
6383         i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
6384         i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
6385         i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
6386         i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
6387         i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
6388         Include as many configury headers via tm_file as possible.  This
6389         includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
6390         * config/openbsd-oldgas.h: New file.
6391         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
6392         config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
6393         config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
6394         config/i386/i386-coff.h, config/i386/i386-interix.h,
6395         config/i386/iscdbx.h, config/i386/linux-aout.h,
6396         config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
6397         config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
6398         config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
6399         config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
6400         config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
6401         config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
6402         config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
6403         config/i386/vxi386.h: Do not directly include configury headers.
6404         * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
6405         Directly include configury headers that are no longer automatically
6406         included by the above headers.
6407         * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
6408         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
6409         config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
6410         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
6411         config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
6412         config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
6413         config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
6414         (TARGET_VERSION): Define.
6415         * config/i386/beos-elf.h, config/i386/freebsd.h,
6416         config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
6417         config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
6418         config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
6419         config/i386/sco5.h, config/i386/sysv4.h
6420         (TARGET_VERSION): Do not need to protect.
6421         * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
6422         * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
6423         config/i386/freebsd-aout.h, config/i386/i386-aout.h,
6424         config/i386/i386-interix.h, config/i386/linux-aout.h,
6425         config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
6426         config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
6427         (YES_UNDERSCORES): Do not define - not needed.
6428         * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
6429         ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
6430         USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
6431         * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
6432         (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
6433         USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
6434         * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
6435         * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
6436
6437 2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
6438             Richard Henderson  <rth@redhat.com>
6439
6440         PR c/5484
6441         * function.c (assign_temp): Accept either type or decl argument.
6442         Detect variables whose size is too large to fit into an integer.
6443         * stmt.c (expand_decl): Pass the decl, not the type.
6444
6445 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
6446
6447         * protoize.c: Match include directory usage with cppdefault.c.
6448
6449 2002-04-03  Jeffrey A Law  (law@redhat.com)
6450             Hans-Peter Nilsson  <hp@bitrange.com>
6451
6452         * combine.c (simplify_comparison): Avoid narrowing a comparison
6453         with a paradoxical subreg when doing so would drop signficant bits.
6454
6455 2002-04-02  Steve Ellcey  <sje@cup.hp.com>
6456
6457         * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
6458         if POINTERS_EXTEND_UNSIGNED is defined.
6459
6460 2002-04-02  Richard Henderson  <rth@redhat.com>
6461
6462         PR opt/3967
6463         * local-alloc.c (contains_replace_regs): LO_SUM may contain
6464         replace regs.
6465
6466 2002-04-02  Richard Henderson  <rth@redhat.com>
6467
6468         * doc/standards.texi: Document required freestanding libc entry points.
6469
6470 2002-04-02  Alan Modra  <amodra@bigpond.net.au>
6471
6472         * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
6473         associated splitter.  Remove MQ constraint.
6474         (ctrdi_internal4): Correct CCmode clobber.
6475
6476 2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6477
6478         * milli64.S ($$dyncall): New function.
6479         * t-linux (LIB1ASMFUNCS): Revise module list.
6480         (LIB1ASMSRC): Use pa/milli64.S.
6481
6482 2002-04-02  Richard Henderson  <rth@redhat.com>
6483
6484         * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
6485         rename solaris_sys_varargs_h.
6486
6487 Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6488
6489         * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
6490         the same mode as its component.
6491
6492 2002-04-02  Richard Henderson  <rth@redhat.com>
6493
6494         PR opt/190
6495         * final.c (this_is_asm_operands): Export.
6496         * output.h (this_is_asm_operands): Declare.
6497         * config/i386/i386.c (print_operand): Error odd asm operands.
6498
6499 2002-04-02  Richard Henderson  <rth@redhat.com>
6500
6501         PR opt/420
6502         * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
6503
6504 2002-04-01  Richard Henderson  <rth@redhat.com>
6505
6506         PR target/1538
6507         * fixinc/inclhack.def (solaris_sys_varargs_h): New.
6508         * fixinc/fixincl.x: Rebuild.
6509
6510 2002-04-01  Richard Henderson  <rth@redhat.com>
6511
6512         * config/ia64/unwind-ia64.c: Include ia64intrin.h.
6513         (atomic_alloc, atomic_free): New.
6514         (SIZE, MASK_FOR, PTR_IN): New.
6515         (emergency_reg_state, emergency_reg_state_free): New.
6516         (emergency_labeled_state, emergency_labeled_state_free): New.
6517         (reg_state_alloced, labeled_state_alloced): New.
6518         (alloc_reg_state, free_reg_state): New.
6519         (alloc_label_state, free_label_state, free_label_states): New.
6520         (push, pop, dup_state_stack, free_state_stack): Use them.
6521         (desc_label_state): Likewise.
6522         (uw_frame_state_for): Free label states and state stack.
6523         (uw_update_reg_address): Eliminate warnings.
6524
6525 2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>
6526
6527         * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
6528         ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
6529
6530 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
6531
6532         * c-decl.c (grokdeclarator): Update.
6533         * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
6534         * c-tree.h (c_mark_addressable): New.
6535         * c-typeck.c (default_function_array_conversion, build_unary_op,
6536         build_array_ref, convert_for_assignment): Update.
6537         (mark_addressable): Rename.
6538         * calls.c (try_to_integrate, expand_call): Use langhook.
6539         * expr.c (expand_expr): Use langhook.
6540         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
6541         * langhooks.h (struct lang_hooks): New hook.
6542         * stmt.c (expand_asm_operands): Use langhook.
6543         * tree.h (mark_addressable): Remove.
6544 objc:
6545         * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
6546
6547 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
6548
6549         * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
6550         in previous change.
6551
6552 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
6553
6554         * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
6555         for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
6556
6557 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
6558
6559         * c-common.c (unsigned_conversion_warning, convert_and_check,
6560         unsigned_type, signed_type, shorten_compare,
6561         c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
6562         (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
6563         * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
6564         New.
6565         * c-decl.c (grokdeclarator): Update.
6566         * c-format.c (check_format_types): Update.
6567         * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
6568         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
6569         * c-typeck.c (build_binary_op, convert_for_assignment): Update.
6570         * convert.c (convert_to_integer): Use new hooks.
6571         * expmed.c (make_tree): Use new hooks.
6572         * expr.c (store_expr): Use new hooks.
6573         * fold-const.c (operand_equal_for_comparison_p, build_range_check,
6574         all_ones_mask_p, unextend, fold): Use new hooks.
6575         * langhooks.h (struct lang_hooks_for_types): New hooks.
6576         * tree.h (signed_or_unsigned_type, signed_type,
6577         unsigned_type): Remove.
6578 objc:
6579         * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
6580         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
6581
6582 2002-03-31  Richard Henderson  <rth@redhat.com>
6583
6584         * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
6585         (desc_frgr_mem): Fix reference to f16-f31.
6586
6587 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6588
6589         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
6590         RTVEC_ELT): Const-ify.
6591         * varray.h (VARRAY_CHECK): Const-ify.
6592         * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
6593         ggc_mark_rtvec, ggc_mark): Const-ify.
6594
6595 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
6596
6597         * diagnostic.c: Include langhooks-def.h.
6598         * Makefile.in (diagnostic.o): Update.
6599
6600 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
6601
6602         * c-common.c (c_unsafe_for_reeval): Rename.
6603         * c-common.h (c_unsafe_for_reeval): Rename.
6604         * c-decl.c (finish_incomplete_decl): Rename.
6605         (c_init_decl_processing): Don't set langhook.
6606         * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
6607         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
6608         * c-objc-common.c (c_objc_common_init): Don't set langhook.
6609         * c-tree.h (finish_incomplete_decl): Rename.
6610         * langhooks-def.h (lhd_unsafe_for_reeval): New.
6611         (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
6612         (LANG_HOOKS_INITIALIZER): Update.
6613         * langhooks.c (lhd_unsafe_For_reeval): New.
6614         * langhooks.h (struct langhooks): New hooks.
6615         * toplev.c (incomplete_decl_finalize_hook): Remove.
6616         (wrapup_global_declarations): Update.
6617         * tree.c (lang_unsafe_for_reeval): Remove.
6618         (unsafe_for_reeval): Update.
6619         * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
6620         Remove.
6621 objc:
6622         * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
6623         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
6624
6625 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
6626
6627         * diagnostic.c (print_error_function): Remove.
6628         (default_print_error_function): Rename.
6629         (report_error_function): Update.
6630         * diagnostic.h (print_error_function): Remove.
6631         (default_print_error_function): Remove.
6632         * langhooks-def.h (struct diagnostic_context): Predeclare.
6633         (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
6634         (LANG_HOOKS_INITIALIZER): Update.
6635         * langhooks.h (struct diagnostic context): Predeclare.
6636         (struct lang_hooks): New hook.
6637
6638 2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6639
6640         * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
6641         (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
6642         !flag_pic.
6643         (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
6644         * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
6645         of PIC_OFFSET_TABLE_REGNUM thruout.
6646         * config/rs6000/rs6000.md: Likewise.
6647         * config/rs6000/darwin.h: Likewise.
6648
6649 Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6650
6651         * emit-rtl.c (adjust_address_1, offset_address): Cast value to
6652         unsigned HOST_WIDE_INT, not unsigned int.
6653
6654 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
6655
6656         PR middle-end/6096, middle-end/6098, middle-end/6099
6657         * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
6658         CODE_LABELs.
6659         (fill_slots_from_thread): Likewise.
6660
6661 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
6662
6663         * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
6664         floating fields in float regs.
6665         (function_arg_record_value_2): Likewise.
6666
6667 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
6668
6669         * config/mmix/mmix.md (define_constants): Remove misleading
6670         FIXME.  Add MMIX_fp_rO_OFFSET.
6671         ("nonlocal_goto_receiver"): Don't have stack-frame address of
6672         saved rO as part of the pattern.  Remove FIXME.
6673         ("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
6674         here, at output-time.
6675
6676 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
6677
6678         PR middle-end/6100
6679         * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
6680         REG_BR_PRED.
6681         (output_v9branch): Likewise.
6682
6683 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
6684
6685         * gcc.c: Revert previous patch for now.
6686         * config/i386/djgpp.h: Likewise.
6687
6688 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
6689
6690         * config/mmix/crti.asm (_init): Register _fini with atexit.
6691         * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
6692
6693 2002-03-31  Richard Henderson  <rth@redhat.com>
6694
6695         PR target/3997
6696         * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
6697         (ASM_OUTPUT_DEF_FROM_DECLS): New.
6698
6699 2002-03-31  Richard Henderson  <rth@redhat.com>
6700
6701         * libgcc2.c (__bb_exit_func): Make static.
6702
6703         * config/alpha/alpha.md (trap): New.
6704
6705 2002-03-31  Richard Henderson  <rth@redhat.com>
6706
6707         * builtins.c (expand_builtin_va_arg): Give warnings not errors for
6708         promoted argument types; build trap.
6709         (expand_builtin_trap): New.
6710         (expand_builtin): Use it.
6711         * stmt.c (expand_nl_goto_receivers): Likewise.
6712         * expr.h (expand_builtin_trap): Declare.
6713         * libfuncs.h (LTI_abort, abort_libfunc): New.
6714         * optabs.c (init_optabs): Init abort_libfunc.
6715
6716 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
6717
6718         * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
6719         (LINK_COMMAND_SPEC): ... from here.
6720         (init_gcc_specs): Duplicate it here too, omitting
6721         shared_name in the second copy.
6722         (init_spec): Test for duplicate
6723         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
6724
6725 2002-03-30  David S. Miller  <davem@redhat.com>
6726
6727         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
6728         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
6729
6730 2002-03-30  Roger Sayle <roger@eyesopen.com>
6731             Richard Henderson  <rth@redhat.com>
6732
6733         * regmove.c (combine_stack_adjustments_for_block): Avoid
6734         emitting a stack adjustment of zero bytes.  Let delete_insn
6735         update bb->head.
6736
6737 2002-03-30  Richard Henderson  <rth@redhat.com>
6738
6739         * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
6740         (sparc_emitting_epilogue): New.
6741         (leaf_label, output_return, sparc_return_peephole_ok): Remove.
6742         * config/sparc/sparc-protos.h: Update.
6743         * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
6744         (TARGET_SWITCHES): Update.
6745         * config/sparc/sparc.md (return): Remove.
6746         (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
6747         * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
6748         config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
6749         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
6750         config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
6751         config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
6752         config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
6753         Remove MASK_EPILOGUE.
6754         * doc/invoke.texi: Update.
6755
6756 2002-03-30  Daniel Berlin  <dan@dberlin.org>
6757
6758         * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
6759         CPP will start the file for us.
6760
6761 2002-03-30  Richard Henderson  <rth@redhat.com>
6762
6763         PR target/5446
6764         * config/ia64/ia64.c (group_barrier_needed_p): Special case
6765         prologue_allocate_stack.
6766         (ia64_single_set): Use insn codes for recognition of special
6767         cases, not rtl matching.
6768         * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
6769
6770 Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>
6771
6772         * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
6773
6774 2002-03-30  Richard Henderson  <rth@redhat.com>
6775
6776         PR target/6032
6777         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
6778         or -fomit-frame-pointer with profiling.
6779         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
6780         (FUNCTION_PROFILER): Do nothing.
6781         (PROFILE_HOOK): New.
6782         * config/sparc/sparc.c (sparc_override_options): Don't check
6783         code models for profiling.
6784         (sparc_function_profiler): Remove.
6785         (sparc_profile_hook): New.
6786         * config/sparc/sparc-protos.h: Update.
6787
6788 2002-03-30  Jakub Jelinek  <jakub@redhat.com>
6789
6790         PR optimization/6086
6791         * combine.c (combine_simplify_rtx): If simplify_rtx failed because
6792         of SUBREG of volatile MEM or because the MEM was mode dependent,
6793         return CLOBBER instead of unmodified SUBREG.
6794
6795 Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
6796
6797         * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
6798         when not optimizing.
6799
6800         * toplev.c (rest_of_compilation): Cann mark_constant_function
6801         only when optimizing.
6802
6803         * flow.c (calculate_global_regs_live): Ensure that all AUX fields
6804         are NULL.
6805
6806         * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
6807         (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
6808         (try_optimize_cfg): clear all AUX fields.
6809
6810         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
6811         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
6812         (ix86_address_cost): Be prepared for SUBREGed registers.
6813         (legitimate_address_p): Accept SUBREGed registers.
6814
6815 2002-03-29  Richard Henderson  <rth@redhat.com>
6816
6817         PR target/5672
6818         * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
6819
6820 2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6821
6822         * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
6823         for aggregate and TFmode types.
6824
6825 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
6826
6827         * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
6828
6829 2002-03-29  Richard Henderson  <rth@redhat.com>
6830
6831         PR target/5886
6832         * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
6833         * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
6834
6835 2002-03-29  Richard Henderson  <rth@redhat.com>
6836
6837         PR target/6041
6838         * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
6839         (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
6840         * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
6841         * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
6842         conditional.
6843         * docs/invoke.texi: Update -mno-fancy-math-387 docs.
6844
6845 2002-03-29  Dale Johannesen <dalej@apple.com>
6846
6847         * loop.c (combine_movables): Do allow combination of pseudos.
6848
6849 2002-03-29  Loren J. Rittle  <ljrittle@acm.org>
6850
6851         * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
6852         * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
6853         No functional change except ...
6854         * config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
6855         * doc/install.texi (*-*-freebsd*): Document port configuration.
6856
6857 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
6858
6859         * Makefile.in (convert.o, calls.o, expmed.o): Update.
6860         * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
6861         Use new hooks.
6862         * builtin-types.def (BT_PTRMODE): Update.
6863         * c-common.c (type_for_size): Rename c_common_type_for_size.
6864         (type_for_mode): Similarly.
6865         (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
6866         Use new hook.
6867         * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
6868         * c-decl.c (finish_enum, build_enumerator): Use new hooks.
6869         * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
6870         Redefine.
6871         * c-typeck.c (common_type, comptypes, default_conversion):
6872         Use new hooks.
6873         * calls.c: Include langhooks.h.
6874         (emit_library_call_value_1): Use new hooks.  Avoid redundant
6875         calls.
6876         * convert.c: Include langhooks.h
6877         (convert_to_pointer, convert_to_integer): Use new hooks.
6878         * except.c (init_eh): Similarly.
6879         * expmed.c: Include langhooks.h.
6880         (expand_mult_add): Use new hooks.
6881         * expr.c (store_expr, store_constructor, expand_expr, do_jump,
6882         try_casesi): Similarly.
6883         * fold-const.c (optimize_bit_field_compare, make_range,
6884         decode_field_reference, fold_truthop, fold): Similarly.
6885         * function.c (assign_stack_local_1, assign_stack_temp_for_type,
6886         put_var_into_stack): Similarly.
6887         * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
6888         LANG_HOOKS_TYPE_FOR_SIZE): New.
6889         (LANG_HOOKS_TYPES_INITIALIZER): Update.
6890         * langhooks.h (lang_hooks_for_types): New hooks.
6891         * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
6892         * tree.c (get_unwidened, get_narrower): Similarly.
6893         * tree.h (type_for_mode, type_for_size): Remove.
6894         * varasm.c (force_const_mem): Use new hooks.
6895         * utils2.c (nonbinary_modular_operation): Update.
6896 objc:
6897         * objc-act.c (handle_impent): Update.
6898         * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
6899         Redefine.
6900
6901 2002-03-29  Steve Ellcey  <sje@cup.hp.com>
6902
6903         * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
6904         * config/ia64/ia64.c (basereg_operand): New.
6905         * config/ia64/ia64-protos.h (basereg_operand): Declare.
6906         * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
6907
6908 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
6909
6910         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
6911         unwind information when frame_pointer_needed.
6912         (mmix_assemble_integer): Tweak wording in comment.
6913
6914 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
6915
6916         * Makefile.in (except.o): Update.
6917         * except.c: Include langhooks.h.
6918         (init_eh): Use langhook.
6919         * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
6920         LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
6921         (LANG_HOOKS_INITIALIZER): Update.
6922         * langhooks.h (lang_hooks_for_types): New.
6923         (struct lang_hooks): Add it.
6924         * tree.c (make_lang_type_fn, make_lang_type): Remove.
6925         * tree.h (make_lang_type_fn, make_lang_type): Remove.
6926 config:
6927         * alpha/alpha.c: Include langhooks.h.
6928         (alpha_build_va_list): Use langhook.
6929         * d30v/d30v.c: Include langhooks.h.
6930         (d30v_build_va_list): Use langhook.
6931         * i386/i386.c: Include langhooks.h.
6932         (ix86_build_va_list): Use langhook.
6933         * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
6934         * s390/s390.c: Include langhooks.h.
6935         (s390_build_va_list): Use langhook.
6936         * stormy16/stormy16.c: Include langhooks.h.
6937         (stormy16_build_va_list): Use langhook.
6938
6939 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
6940
6941         PR c++/5964
6942         * config/sparc/sparc.md (empty_delay_slot, branch_type): New
6943         attributes.
6944         (length): Compute variable length for branches/calls/jumps here.
6945         (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
6946         normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
6947         define branch_type attribute.
6948         (divsi3_sp32): Maximum length is 6 not 7.
6949         (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
6950         call_address_untyped_struct_value_sp32,
6951         call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
6952         * config/sparc/sparc.c (empty_delay_slot): New function.
6953         * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
6954         * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
6955
6956 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
6957
6958         * combine.c (set_nonzero_bits_and_sign_copies): Don't call
6959         nonzero_bits if not needed.
6960         (nonzero_bits) [XOR]: Likewise.
6961         (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
6962         reg_last_set_mode and mode are both MODE_INT, but not equal.
6963         (record_value_for_reg): Compute reg_last_set_nonzero_bits
6964         in nonzero_bits_mode for MODE_INT modes.
6965
6966 2002-03-28  Richard Henderson  <rth@redhat.com>
6967
6968         PR target/5715
6969         * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
6970         to GAS.  Correct drift between alternatives.
6971
6972 2002-03-28  Richard Henderson  <rth@redhat.com>
6973
6974         PR target/6087
6975         * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
6976
6977 2002-03-28  Alexandre Oliva  <aoliva@redhat.com>
6978
6979         * config/i386/freebsd.h (LINK_SPEC): Don't pass default
6980         emulation to the linker.
6981
6982 2002-03-28  Loren J. Rittle  <ljrittle@acm.org>
6983
6984         * config/alpha/freebsd.h (LINK_SPEC): Likewise.
6985         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
6986
6987 Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)
6988
6989         * combine.c (simplify_and_const_int): Make sure to apply mask
6990         when force_to_mode returns a constant integer.  PR3311.
6991
6992 2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6993
6994         * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
6995
6996 2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6997
6998         * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
6999         and Objective-C Dialect Options.
7000
7001 2002-03-28  Richard Henderson  <rth@redhat.com>
7002
7003         * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
7004         comparison should be done vs !=0 not >0 return code.  Tidy cases.
7005
7006 2002-03-28  Richard Henderson  <rth@redhat.com>
7007
7008         * c-decl.c (finish_function): New arg can_defer_p.  Pass it
7009         on to c_expand_body.
7010         * c-tree.h (finish_function): Update decl.
7011         * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
7012
7013 Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>
7014
7015         * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
7016
7017 Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>
7018
7019         * rtlanal.c: Include flags.h
7020         (may_trap_p): Do not mark FP operations if trapping
7021         if !flag_trapping_math
7022         * Makefile.in (rtlanal.o): Add dependency on flag.h
7023         * ifcvt.c (noce_operand_ok): Avoid the lameness.
7024
7025 2002-03-27  Zack Weinberg  <zack@codesourcery.com>
7026
7027         * mips.md: Use dconst1, not 1.0, as first argument of
7028         REAL_VALUE_LDEXP.  Don't use union real_extract.
7029
7030 2002-03-28  Alan Modra  <amodra@bigpond.net.au>
7031
7032         * configure.in (gcc_cv_as): Use $target_alias in directory searchs
7033         rather than $target.  Heed program_prefix and
7034         program_transform_name.  Search for gas in cross-compiler case too.
7035         "test -x" rather than "test -f".
7036         (gcc_cv_ld): Likewise.
7037         (gcc_cv_nm): Heed program_prefix and program_transform_name.
7038         (gcc_cv_objdump): Likewise.
7039         * configure: Regenerate.
7040
7041 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
7042
7043         * Makefile.in (attribs.o): Update.
7044         * attribs.c: Include langhooks.h.
7045         (decl_attributes): Use langhook.
7046         * c-decl.c (insert_default_attributes): Rename.
7047         * c-tree.h (c_insert_default_attributes): New.
7048         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
7049         (LANG_HOOKS_INITIALIZER): Update.
7050         * langhooks.h (struct lang_hooks): New hook.
7051         * tree.h (insert_default_attributes): Remove.
7052 objc:
7053         * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
7054
7055 2002-03-27  Andreas Schwab  <schwab@suse.de>
7056
7057         * config/i386/i386.c (classify_argument): Also check for
7058         QUAL_UNION_TYPE.
7059
7060 2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7061
7062         * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
7063         any more.
7064
7065 Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>
7066
7067         * i960.md (ret): Set PC.
7068         (nonlocal_goto): Fix expander.
7069         * builtins.c (epxand_builin_longjmp): Check that we've emitted
7070         some jump or call.
7071
7072 Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>
7073
7074         * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
7075         of libcall regions.
7076
7077 Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
7078
7079         * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
7080         assigning to BLOCK_FOR_INSN directly.
7081
7082 Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>
7083
7084         * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
7085
7086 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
7087
7088         * c-common.c (c_expand_expr): Fix prototype.
7089         * c-common.h (c_expand_expr): Always declare, update.
7090         * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
7091         * c-objc-common.c (c_objc_common_init): No global hook.
7092         * expr.c (expand_expr): Use langhook.
7093         * expr.h (enum expand_modifier): Conditionally declare.
7094         * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
7095         (LANG_HOOKS_INITIALIZER): Update.
7096         * langhooks.c (lhd_expand_expr): New.
7097         * langhooks.h (struct lang_hooks): New hook.
7098         * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
7099         (lang_independent_init): Don't default hook.
7100 objc:
7101         * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
7102
7103 2002-03-27  Richard Henderson  <rth@redhat.com>
7104
7105         PR target/6054
7106         * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
7107         TARGET_CONST_GP.  Simplify conditions.
7108
7109 2002-03-27  Richard Henderson  <rth@redhat.com>
7110
7111         * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
7112         config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
7113         config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
7114
7115 2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>
7116
7117         * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
7118         TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
7119         (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
7120         Remove unnecessary masks.
7121         (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
7122         (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
7123         -mwindows, -mdll switches and their negations.
7124
7125 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
7126
7127         * gcc-common.c (lang_mark_false_label_stack): Remove.
7128         * ggc.h (lang_mark_false_label_stack): Similarly.
7129
7130 2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>
7131
7132         * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
7133
7134         * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
7135         or __rtems_ is defined.
7136
7137 2002-03-26  Richard Henderson  <rth@redhat.com>
7138
7139         * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
7140         if a non-trivial load was emitted.
7141         (alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
7142         in high+extra+low case.
7143
7144 2002-03-26  Richard Henderson  <rth@redhat.com>
7145
7146         * config.gcc (sparc*-solaris): Use float_format=sparc.
7147
7148 2002-03-26  Richard Henderson  <rth@redhat.com>
7149
7150         * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
7151         * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
7152         * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
7153         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
7154         (WINT_TYPE_SIZE): Fix at 32.
7155
7156 2002-03-26  Richard Henderson  <rth@redhat.com>
7157
7158         * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
7159         until after eh landing pad generation.
7160         * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
7161         * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
7162
7163 2002-03-26  Richard Henderson  <rth@redhat.com>
7164
7165         * expr.h (ADD_PARM_SIZE): One more convert for INC.
7166
7167 2002-03-26  Phil Edwards  <pme@gcc.gnu.org>
7168
7169         * gcc.c (cpp_options):  Preserve relative ordering of -pedantic
7170         and warning switches.
7171         (cc1_options):  Likewise.
7172
7173 2002-03-26  Hans Boehm <Hans_Boehm@hp.com>
7174
7175         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
7176         Restore more of the signal context.  Set no_reg_stack_frame.
7177         * config/ia64/unwind-ia64.c (unw_state_record):
7178         Add no_reg_stack_frame, comments.
7179         (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
7180         (uw_update_context): Adjust bsp when unwinding from leaf,
7181         but not signal frame.
7182
7183 2002-03-26  David Edelsohn  <edelsohn@gnu.org>
7184
7185         * config/rs6000/aix51.h (WCHAR_TYPE): Define.
7186
7187 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
7188
7189         * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
7190
7191 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
7192
7193         PR target/5621
7194         * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
7195         "Add a pool_range attribute", which was lost during the ARM/Thumb
7196         merge.
7197
7198 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
7199
7200         * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
7201         a register into the MAC16 accumulator.
7202
7203 2002-03-26  Andrew Cagney  <ac131313@redhat.com>
7204
7205         * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
7206         (Warning Options): Document -Wswitch-enum.
7207         * toplev.c (W_options): Add -Wswitch-enum.  Update comment on
7208         -Wswitch.
7209         (warn_switch_enum): Define variables.
7210         * flags.h (warn_switch_enum): Declare variables.
7211         * stmt.c (expand_end_case_type): When warn_switch_enum /
7212         -Wswitch-enum, perform switch checks.
7213         Fix PR c/5044.
7214
7215 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
7216
7217         * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
7218         (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
7219         (reload_muladdsi_compare0_scratch): Delete.
7220
7221 2002-03-26  Loren J. Rittle  <ljrittle@acm.org>
7222
7223         * doc/install.texi (*-*-freebsd*): Update.
7224
7225 2002-03-26  Richard Henderson  <rth@redhat.com>
7226
7227         * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
7228         (SUB_PARM_SIZE): Cast DEC to ssizetype.
7229
7230         * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
7231         types from the normal argument frame.
7232
7233         * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
7234         variable sized objects by reference.
7235         (sparc_va_arg): Receive them by reference too.
7236
7237 2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>
7238
7239         * config/s390/s390.c (s390_emit_epilogue): Change epilogue
7240         code to not restoring global registers.
7241
7242 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
7243
7244         * Makefile.in (ggc-common.o): Update.
7245         * c-decl.c (lang_mark_tree): Rename c_mark_tree.
7246         * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
7247         * c-tree.h (c_mark_tree): New.
7248         * ggc-common.c: Include langhooks.h.
7249         (gcc_mark_trees): Use new langhook.
7250         * ggc-callbacks.c: Delete file.
7251         * ggc.h (lang_mark_tree): Remove.
7252         * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
7253         (LANG_HOOKS_INITIALIZER): Update.
7254         * langhooks.h (struct lang_hooks): New hook.
7255 objc:
7256         * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
7257
7258 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
7259
7260         * doc/cpp.texi: Exclude entire Top node from printed manual.
7261         Move option index after directive index.  Insert page breaks
7262         before GFDL and concept index.  Index environment variables
7263         with command line options.
7264         * doc/cppenv.texi: Use @vtable for environment variable list.
7265         Add paragraph explaining semantics of empty elements in path
7266         variables.  Exclude a cross-reference to Fishkill from the
7267         manpage.  Remove an unnecessary cross-reference of the entry
7268         right above the referer.  Don't use @anchor in text that goes
7269         into manpage.
7270         * doc/cppopts.texi: Cross-reference the environment variables
7271         section, not the specific environment variable, for consistency.
7272
7273 2002-03-25  Richard Henderson  <rth@redhat.com>
7274
7275         * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
7276         anywhere in the block.  Don't refer to insns that have been
7277         removed from the chain.  Iterate backward through the new insns.
7278         Don't refer to edges that have been removed.
7279
7280 2002-03-26  Alan Modra  <amodra@bigpond.net.au>
7281
7282         * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
7283         test for overflow of constant.
7284
7285 2002-03-25  Richard Earnshaw  <rearnsha@arm.com>
7286
7287         PR target/2623
7288         * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
7289         (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
7290         these patterns on arm_archv4.
7291
7292 2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>
7293
7294         * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
7295         int".
7296
7297 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
7298
7299         * toplev.c: Don't include setjmp.h.  Kill float_handler_set,
7300         float_handled, float_handler, float_signal, set_float_handler,
7301         and do_float_handler.  Set handler for SIGFPE to crash_signal.
7302         * toplev.h: Don't prototype do_float_handler.
7303
7304         * c-lex.c: Fold parse_float into lex_number.  Make warning
7305         about portability of hex float constants more informative, and
7306         don't issue it on top of a syntax error.
7307         * fold-const.c: Fold const_binop_1 and fold_convert_1 into
7308         their callers.
7309         * real.h: Define REAL_VALUE_ABS here...
7310         * simplify-rtx.c: ... not here.  Fold check_fold_consts,
7311         simplify_unary_real, simplify_binary_real, and
7312         simplify_binary_is2orm1 into their callers.
7313         * tree.c: Fold build_real_from_int_cst_1 into caller.
7314
7315         * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
7316
7317         * tsystem.h: Include float.h here...
7318         * libgcc2.c: ... not here.
7319
7320 2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>
7321
7322         Fixes for: PR bootstrap/3591, target/5676
7323         * config/mcore/mcore.h (CC1_SPEC): Define only if not already
7324         defined.  Do not disable exceptions or rtti.
7325         * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
7326         mcore.h.  Disable exceptions and rtti, since they are not
7327         supported by EPOC.
7328
7329 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
7330
7331         * c-decl.c (maybe_build_cleanup): Remove.
7332         * expr.c (expand_expr): Use langhook.
7333         * langhooks-def.h (lhd_return_null_tree,
7334         LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
7335         (LANGHOOKS_INITIALIZER): Update.
7336         * langhooks.c (lhd_return_null_tree): New.
7337         * langhooks.h (struct lang_hooks): New hook.
7338         * tree-inline.c (initialize_inlined_parameters): Use langhook.
7339         * tree.h (maybe_build_cleanup): Remove.
7340
7341 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
7342
7343         * regrename.c (build_def_use): Move recog_memoized
7344         before extract_insn.
7345
7346 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
7347
7348         PR target/6043
7349         * expr.c (emit_group_store): Handle storing into CONCAT.
7350
7351 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
7352
7353         * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
7354         corresponding MATCH_DUP.
7355
7356 2002-03-24  Richard Henderson  <rth@redhat.com>
7357
7358         * unroll.c (unroll_loop): Zero label_map.
7359
7360         * gcse.c: Include except.h.
7361         * Makefile.in (gcse.o): Update.
7362
7363 2002-03-24  Richard Henderson  <rth@redhat.com>
7364
7365         * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
7366         Do resolve_unique_section before shared data clause.
7367
7368 2002-03-24  Richard Henderson  <rth@redhat.com>
7369
7370         * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
7371
7372 2002-03-24  Richard Henderson  <rth@redhat.com>
7373
7374         * recog.c (peephole2_optimize): Split blocks when EH insns are
7375         generated in the middle of a block.  Do global life update if
7376         zapped EH edges.
7377
7378 2002-03-24  Richard Henderson  <rth@redhat.com>
7379
7380         * mips.c (mips_function_value): Only promote_mode for non-libcalls.
7381
7382 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
7383
7384         preprocessor/3951
7385         * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
7386         * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
7387         (init_dependency_output): Don't make no_output decision here.
7388
7389 2002-03-24  Andrew Cagney  <ac131313@redhat.com>
7390
7391         * stmt.c (check_for_full_enumeration_handling): Remove tests of
7392         warn_switch.  Update description.
7393         (expand_end_case_type): Call check_for_full_enumeration_handling
7394         when warn_switch.
7395
7396 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7397
7398         * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
7399         (m68hc11_split_move): Call it to see if the source and destination
7400         operands use the same direction auto inc/dec mode, otherwise make the
7401         source an offsetable memory operand and generate an add.
7402
7403 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7404
7405         * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
7406         register for operand 2.
7407         ("*subsi3_zero_extendqi"): Likewise.
7408         ("*iorhi3_gen"): Do the operation on the upper bits and then lower
7409         bits so that it is compatible with a pop.
7410         ("*andhi3_gen"): Likewise.
7411         ("xorhi3"): Likewise.
7412
7413 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
7414
7415         * cppinit.c (cpp_handle_option): Set warn_endif_labels if
7416         -pedantic here...
7417         (cpp_post_options): ... not here.
7418
7419 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
7420             Aldy Hernandez  <aldyh@redhat.com>
7421
7422         Removal of separate preprocessor cpp0.
7423
7424         * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
7425         cpp0, install-common): Update.
7426         * c-common.c (flag_preprocess_only): New.
7427         (c_common_init): Preprocess for -E.
7428         * c-common.h (flag_preprocess_only): New.
7429         * c-decl.c (c_decode_option): Handle -E and -std=c++98.
7430         * c-objc-common.c (c_init_decl_processing): Exit quickly
7431         for NULL return from c_common_init.
7432         * cpplib.h (cpp_preprocess_file): New.
7433         * cppmain.c (main, general_init, pfile, progname): Remove.
7434         (do_preprocessing): Rename cpp_preprocess_file, don't call
7435         cpp_finish.  Don't close stdout here.
7436         (setup_callbacks): Update prototype.
7437         * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
7438         Update.
7439         * tradcpp.c (main): Ignore -quiet.
7440 objc:
7441         * lang-specs.h (default_compilers): Preprocess with cc1obj.
7442
7443 2002-03-24  Richard Henderson  <rth@redhat.com>
7444
7445         PR optimization/5742
7446         * machmode.def: Add inner mode field to complex modes.
7447         * config/mips/mips.c (mips_function_value): Always define.  Add
7448         new argument to handle libcalls.
7449         * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
7450         (FUNCTION_VALUE): Likewise.
7451         * config/mips/abi64.h (FUNCTION_VALUE): Remove.
7452         * config/mips/mips-protos.h: Update.
7453
7454 2002-03-23  Richard Henderson  <rth@redhat.com>
7455
7456         * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
7457         * config/sparc/sparc-protos.h: Update.
7458         * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
7459
7460 2002-03-23  Richard Henderson  <rth@redhat.com>
7461
7462         * config/sparc/gmon-sol2.c (internal_mcount): Assume either
7463         _start or _init begins the text segment.
7464
7465 2002-03-23  David Edelsohn  <edelsohn@gnu.org>
7466
7467         * config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
7468         not HOST_WIDEST_INT.
7469         (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
7470
7471 2002-03-23  Richard Earnshaw  <rearnsha@arm.com>
7472
7473         PR java/5489
7474         * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
7475         operand argument to output_return_instruction.
7476         * arm.c (arm_print_operand, case 'd'): If the operand is
7477         const_true_rtx then just return.
7478         (arm_print_operand, case 'D'): If the operand is const_true_rtx
7479         then abort.
7480
7481 2002-03-23  Andrew Cagney  <ac131313@redhat.com>
7482
7483         * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
7484         (Warning Options): Document -Wswitch-default.
7485         * toplev.c (W_options): Add -Wswitch-default.  Update comment on
7486         -Wswitch.
7487         (warn_switch_default): Define variable.
7488         (warn_switch): Update comment.
7489         * flags.h (warn_switch_default): Declare variable.
7490         (warn_switch): Update comment.
7491         * stmt.c (expand_end_case): Check for and, when
7492         warn_switch_no_default, warn of a missing default case.
7493
7494 2002-03-23  Alan Modra  <amodra@bigpond.net.au>
7495
7496         * real.h (N): Special case 128 bit doubles.
7497
7498         * combine.c (simplify_comparison): When widening modes, ignore
7499         sign extension on CONST_INTs.
7500
7501 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
7502
7503         * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
7504         passed to adjust_address.  Fix comment formatting.
7505
7506
7507 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
7508
7509         * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
7510         Always make REAL_VALUE_TYPE a struct containing an array of
7511         HOST_WIDE_INT, not a double.  Tidy up the code deciding how
7512         big it is.  Don't declare or use union real_extract.
7513
7514         * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
7515         decode_rtx_const, output_constant_pool), config/a29k/a29k.c
7516         (print_operand), config/arm/arm.c (output_move_double),
7517         config/arm/arm.md (consttable_4, consttable_8),
7518         config/romp/romp.c (output_fpops), config/s390/s390.h
7519         (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
7520         (xtensa_output_literal): Don't use union real_extract.
7521
7522         * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
7523         (sfmode_constant_to_ulong), config/ns32k/merlin.h
7524         (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
7525         config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
7526         (PRINT_OPERAND): Don't use local version of union
7527         real_extract.
7528
7529         * config/convex/convex.c (check_float_value), config/vax/vax.c
7530         (vax_float_literal), config/m88k/m88k.md (divdf3),
7531         config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
7532         config/pdp11/pdp11.c (output_move_quad): Don't do host
7533         arithmetic on target floating point quantities.
7534
7535         * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
7536         (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
7537
7538         * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
7539         Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
7540
7541         * real.c (earith): Test INFINITY rather than REAL_INFINITY;
7542         NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
7543         INFINITY.
7544         * print-rtl.c (print_rtx): Disable code which needs
7545         floating-point emulator.
7546         * libgcc2.c: Include float.h and use DBL_MANT_DIG,
7547         FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
7548         depending on HOST_FLOAT_FORMAT to be defined properly.
7549
7550         * config/1750a/1750a.c (get_double, float_label): Delete.
7551         (print_operand): Delete huge commented-out chunk.  Use
7552         REAL_VALUE_TO_DECIMAL.
7553         * config/1750a/1750a-protos.h: Delete prototypes of deleted
7554         functions.
7555         * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
7556         IEEE_FLOAT_FORMAT.
7557         * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
7558         Use REAL_VALUE_TO_DECIMAL as ELF version does.
7559         * config/m88k/m88k.c (real_power_of_2_operand,
7560         legitimize_operand): Take the REAL_VALUE_TYPE and/or union
7561         real_extract out of the union; run the input through
7562         REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
7563         from that into the union.
7564         * config/pdp11/pdp11.c (output_move_double): Rearrange
7565         parentheses to make automatic indenter happy.
7566
7567         * doc/tm.texi (Cross-compilation): Rename node to "Floating
7568         Point" and rewrite to describe current situation.  Also adjust
7569         documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
7570         match code.
7571         * doc/rtl.texi: Adjust cross reference.
7572
7573 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
7574
7575         * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
7576         (xtensa_valid_move, xtensa_preferred_reload_class): Define.
7577         * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
7578         (xtensa_valid_move, xtensa_preferred_reload_class): Define to
7579         prevent use of sp as a reload register.
7580         (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
7581         non_acc_reg_operand.
7582         * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
7583         (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
7584         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
7585         movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
7586
7587 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
7588
7589         * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
7590         * cpplex.c (unterminated): Delete.
7591         (parse_string): No string literal may extend over multiple
7592         lines.  Suppress the error when preprocessing assembly.
7593         * cppmain.c (scan_translation_unit): Strings are single-line.
7594
7595         * doc/cpp.texi: Update to match.
7596
7597 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
7598
7599         PR optimization/5854
7600         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
7601         Shut up warnings.
7602         (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
7603         (EXTRA_CONSTRAINT): Use S for non-push memory operand.
7604         * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
7605         const0 if scratch register was not allocated.
7606         (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
7607         m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
7608         with GEN_INT (...).
7609         (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
7610         * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
7611         with GEN_INT (...) everywhere.  Remove constraints in define_split
7612         patterns.
7613         (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
7614         require scratch register for setting 0 into regs/non-pushable memory.
7615
7616 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
7617
7618         * config/mips/mips.h (MASK_RETURN_ADDR): Define.
7619         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
7620
7621 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
7622
7623         * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
7624         * cppinit.c (cpp_create_reader):  On by default.
7625         (cpp_handle_option):  Handle -W[no-]endif-labels.
7626         (cpp_post_options):  Also enable if -pedantic.
7627         * cpplib.c (do_else):  Use it.
7628         (do_endif):  Likewise.
7629         * doc/cppopts.texi:  Document new option.
7630         * doc/invoke.texi:  Document new option.
7631
7632 2002-03-22  Lars Brinkhoff  <lars@nocrew.org>
7633
7634         * config/i386/i386.c, config/i386/i386.md: Change all occurences
7635         of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
7636
7637 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
7638
7639         * flow.c (calculate_global_regs_live): Clear aux fields of
7640         ENTRY and EXIT.
7641
7642 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
7643
7644         * config/v850/v850.c (v850_reorg): Only call alter_subreg on
7645         REG or MEM subregs, pass rtx * instead of rtx to it.
7646         * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
7647         rtx * instead of rtx to alter_subreg.
7648         * config/m32r/m32r.c (gen_split_move_double): Likewise.
7649         * config/pj/pj.c (pj_output_rval): Likewise.
7650
7651 2002-03-22  Richard Henderson  <rth@redhat.com>
7652
7653         PR target/3177
7654         * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
7655         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
7656         * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
7657         (ia64_expand_prologue): Look at int_regs, not words, for number
7658         of incomming int regs.
7659
7660 2002-03-22  Andrew MacLeod  <amacleod@redhat.com>
7661
7662         * expr.c (expand_expr): A RESULT_DECL is part of a call.
7663
7664 Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>
7665
7666         * toplev.c (flag_loop_optimize, flag_crossjumping):
7667         New static variables.
7668         (rest_of_compilation): Conditionalize crossjumping and
7669         loop optimizer.
7670         (parse_options_and_default_flags): Default loop_optimize and
7671         crossjumping.
7672         (lang_independent_options): Add -fcrossjumping and -floop-optimize
7673         * invoke.texi (crossjumping, loop-optimize): Document.
7674
7675 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
7676
7677         * real.c (eiisneg): Move outside #ifdef NANS.
7678
7679 Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>
7680
7681         * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
7682         frequencies match; avoid match on different loop depths.
7683         (try_crossjump_to_bb): Kill tests that no longer brings time
7684         savings.
7685         * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
7686         updating code.
7687         (split_edge): Likewise.
7688
7689         * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
7690         variable.
7691
7692         * Makefile.in (cfgrtl): Add insn-config.h depenendency.
7693         * cfgrtl.c: Include insn-config.h
7694         (split_block) Dirtify block in presence of conditional execution
7695
7696 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
7697
7698         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
7699         * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
7700         (function_arg): Constify CUMULATIVE_ARGS.
7701         (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
7702         * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
7703         (UNITS_PER_DOUBLE): New macro.
7704         (SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
7705         (CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
7706         last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
7707         fp_regs and stack_words.
7708         (EABI_FLOAT_VARARGS_P): New macro.
7709         * config/mips/mips.c (struct mips_arg_info): New.
7710         (mips_arg_info): New function.
7711         (function_arg_advance): Use it.  Add adjustment instructions here
7712         rather than in function_arg.
7713         (function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
7714         for VOIDmode at the beginning of the function.
7715         (function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
7716         (function_arg_pass_by_reference): Likewise.
7717         (mips_setup_incoming_varags): New, largely based on old abi64.h code.
7718         (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
7719         (mips_va_start): Likewise.  Use the new stack_words field of
7720         CUMULATIVE_ARGS to set up overflow area.  Reformat.
7721         (mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
7722         doubles and other types, aligning the overflow pointer for non-doubles
7723         too.  Remove some code duplication.  Replace hard-coded constants.
7724
7725 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
7726
7727         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
7728         (CLASS_UNITS): Undefine.
7729         (CLASS_MAX_NREGS): Use FP_INC.
7730         * config/mips/mips.c (compute_frame_size): Likewise.
7731         (override_options): Use FP_INC and UNITS_PER_FPVALUE.
7732
7733 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
7734
7735         * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
7736         prototype, and handle lexing numbers and identifiers.
7737         (parse_identifier): Update to new form of parse_slow.
7738         (parse_number): Fast path only, use parse_slow otherwise.
7739         (_cpp_lex_direct): Update calls to parse_number.
7740
7741 2002-03-21  DJ Delorie  <dj@redhat.com>
7742
7743         * bb-reorder.c (make_reorder_chain_1): Protect against
7744         when redundant edges are omitted.
7745         * predict.c (dump_prediction): Likewise.
7746
7747 2002-03-21  Richard Henderson  <rth@redhat.com>
7748
7749         PR target/5996
7750         * fixinc/inclhack.def (solaris_stdio_tag): New.
7751         * fixinc/fixincl.x: Regenerate.
7752
7753 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
7754
7755         PR c/5597
7756         * c-typeck.c (process_init_element): Flag non-static
7757         initialization of a flexible array member as illegal.
7758
7759 2002-03-22  Alan Modra  <amodra@bigpond.net.au>
7760
7761         * config/rs6000/t-linux64: New.
7762         * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
7763         t-ppccomm.  Use t-rs6000 and t-linux64.
7764         (powerpc64-*-gnu* <tmake_file>): Likewise.
7765         * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
7766         * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
7767         * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
7768
7769 2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
7770
7771         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
7772         flag_really_no_inline instead of optimize == 0.
7773
7774         * c-objc-common.c (c_cannot_inline_tree_fn): Same.
7775
7776         * cp/tree.c (cp_cannot_inline_tree_fn): Same.
7777
7778         * flags.h (flag_really_no_inline): New.
7779
7780         * c-common.c (c_common_post_options): Initialize
7781         flag_really_no_inline.
7782
7783         * toplev.c (flag_really_no_inline): New.
7784
7785 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
7786
7787         * config/avr/avr.md (length): Fix length computation for
7788         conditional branches.
7789
7790 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
7791
7792         * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
7793         sdbout.o, profile.o): Update.
7794         * c-common.c (c_common_nodes_and_builtins): Use pushdecl
7795         langhook.
7796         * c-common.h (gettags): Move here from tree.h.
7797         * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
7798         insert_block, getdecls, kept_level_p, global_bindings_p): New.
7799         * dbxout.c (dbxout_init): Use getdecls langhook.
7800         * expr.c (expand_expr): Use insert_block langhook.
7801         * fold-const.c: Include langhooks.h.
7802         (fold_range_test, fold_binary_op_with_conditional_arg,
7803         fold): Use global_bindings_p langhook.
7804         * integrate.c (expand_inline_function): Use insert_block langhook.
7805         * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
7806         LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
7807         LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
7808         LANG_HOOKS_GETDECLS): New.
7809         (LANG_HOOKS_INITIALIZER): Update.
7810         * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
7811         langhook.
7812         * langhooks.h (struct lang_hooks_for_decls): New.
7813         (struct lang_hooks): Update.
7814         * profile.c: Include langhooks.h.
7815         (output_func_start_profiler): Use new langhooks.
7816         * sdbout.c: Include langhooks.h.
7817         (sdbout_init, sdbout_finish): Use getdecls langhook.
7818         * stmt.c: Include langhooks.h.
7819         (expand_fixup, fixup_gotos): Use new langhooks.
7820         * stor-layout.c: Include langhooks.h.
7821         (variable_size): Use global_bindings_p langhook.
7822         * toplev.c (compile_file): Use getdecls langhook.
7823         * tree-inline.c (remap_block): Use insert_block langhook.
7824         * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
7825         insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
7826
7827 2002-03-21  Richard Henderson  <rth@redhat.com>
7828
7829         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
7830         constants in .data when -fpic.
7831
7832 2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7833
7834         * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
7835         where appropriate.
7836
7837 2002-03-21  Tom Tromey  <tromey@redhat.com>
7838
7839         * config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.
7840
7841 Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7842
7843         * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
7844
7845         * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
7846
7847 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
7848             Richard Henderson  <rth@redhat.com>
7849
7850         PR c/5354
7851         * c-common.c (c_expand_expr): Preserve result of a statement
7852         expression if needed.
7853
7854 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
7855
7856         PR bootstrap/4195
7857         * genrecog.c (maybe_both_true_mode): Remove.
7858         (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
7859         * machmode.def (Pmode): Likewise.
7860
7861 Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)
7862
7863         * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
7864         (nonlocal_mentioned_p_1): New function.
7865         (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
7866         (nonlocal_set_p, nonlocal_set_p_1): Likewise.
7867         (mark_constant_function): Recognize pure functions.
7868         * rtl.h (global_reg_mentioned_p): New prototype.
7869         * rtlanal.c (global_reg_mentioned_p,
7870         global_reg_mentioned_p_1): New function.
7871
7872 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7873
7874         * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
7875         UNIX assert.h.
7876         * fixinc/fixincl.x: Regenerate.
7877
7878 2002-03-20  Jason Merrill  <jason@redhat.com>
7879
7880         * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
7881
7882 2002-03-20  Michael Meissner  <meissner@redhat.com>
7883
7884         * doc/invoke.texi (Optimize Options): Document that -O2 sets
7885         -fstrict-aliasing.
7886
7887 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
7888
7889         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
7890         ".literal_position" directive before the constant pool.
7891
7892 2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7893
7894         * doc/contrib.texi (Contributors): Update Geoffrey Keating.
7895         Add Craig Rodrigues.
7896         Add Brad Lucier to testers.
7897
7898 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
7899
7900         PR target/4792
7901         * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
7902         to if_then_else.
7903         (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
7904         * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
7905         instead of insn_extract.
7906
7907 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
7908
7909         PR bootstrap/4192
7910         * config/fr30/fr30.md (jump): Remove clobber of fixed register.
7911
7912         * genemit.c (output_added_clobbers_hard_reg_p): Only output return
7913         stmt if some case has been output.
7914
7915 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
7916
7917         PR c/5972
7918         * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
7919         movsfcc_1, movdfcc_1): Add %O2.
7920         * config/i386/i386.c (print_operand): Handle %ON.
7921         Print . before float condition codes in Sun as cmov syntax.
7922         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
7923         * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
7924         no longer true.
7925
7926 2002-03-20  Philip Blundell  <pb@nexus.co.uk>
7927
7928         * config/arm/arm.c (arm_output_epilogue): Don't generate separate
7929         return instruction if PC was popped.
7930
7931 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
7932
7933         * config/xtensa/xtensa.md: Remove unused type attributes.
7934         (adddi_carry, subddi_carry): Change type attribute to "multi".
7935
7936 2002-03-19  Dale Johannesen  <dalej@apple.com>
7937
7938         PR optimization/5999, middle-end/5731
7939         * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
7940         multiplications by reciprocals.
7941
7942 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
7943
7944         * Makefile.in: Update.
7945         * c-common.c: Include langhooks.h.
7946         (inline_forbidden_p): Use new hook.
7947         * diagnostic.c: Include langhooks.h.
7948         (format_with_decl, announce_function,
7949         default_print_error_function): Use new hook.
7950         * dwarf2out.c (dwarf2_name): Use new hook.
7951         * function.c: Include langhooks.h.
7952         (init_function_start): Use new hook.
7953         * langhooks-def.h (lhd_decl_printable_name): New.
7954         (LANGHOOKS_DECL_PRINTABLE_NAME): New.
7955         (LANGHOOKS_INITIALIZER): Update.
7956         * langhooks.c (lhd_decl_printable_name): New.
7957         * langhooks.h (struct lang_hooks): New hook.
7958         * toplev.c (decl_name, decl_printable_name): Remove.
7959         (open_dump_file): Use new hook.
7960         (process_options): Remove old hook.
7961         * tree.h (decl_printable_name): Remove.
7962 objc:
7963         * objc-act.c (objc_init): Remove old hook.
7964         (objc_printable_name): Export.
7965         * objc-act.h (objc_printable_name): New.
7966         * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
7967
7968 2002-03-19  Jim Blandy  <jimb@redhat.com>
7969
7970         * c-lex.c (cb_file_change): Pass the #inclusion's line number to
7971         the start_source_file debug hook, not the current line number.
7972
7973 2002-03-19  Richard Henderson  <rth@redhat.com>
7974
7975         * flow.c (EH_USES): Provide default.
7976         (calculate_global_regs_live): Use it for EH edges and noreturn calls.
7977         * doc/tm.texi (EH_USES): New.
7978
7979         * config/ia64/ia64.c (ia64_eh_uses): New.
7980         * config/ia64/ia64-protos.h: Update.
7981         * config/ia64/ia64.h (EH_USES): New.
7982
7983 2002-03-19  Richard Henderson  <rth@redhat.com>
7984
7985         * varasm.c (output_constant_def): Fix stupid typo.
7986
7987 2002-03-19  Richard Henderson  <rth@redhat.com>
7988
7989         PR 5879
7990         * except.c (current_function_has_exception_handlers): New.
7991         * except.h: Declare it.
7992         * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
7993         Combine tests that disable all sibcalls for the function.
7994
7995 2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
7996
7997         * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
7998         for INTEGER_CST.
7999
8000 2002-03-19  Richard Henderson  <rth@redhat.com>
8001
8002         PR 5977, 5991
8003         * config/ia64/ia64.c: Revert 2002-03-01 patch.
8004         * config/ia64/ia64.h (INIT_EXPANDERS): New.
8005
8006 2002-03-19  Jim Blandy  <jimb@redhat.com>
8007
8008         * cppmacro.c (cpp_macro_definition): Emit a space after the macro
8009         name, even if the replacement list contains no tokens, as required
8010         by Dwarf.
8011
8012 2002-03-19  Jason Merrill  <jason@redhat.com>
8013
8014         * varasm.c (globalize_decl): Get the name from the RTL, not
8015         DECL_ASSEMBLER_NAME.
8016
8017         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
8018
8019 2002-03-19  Bob Wilson  <bob.wilson@acm.org>
8020
8021         * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
8022         subdi_carry): Define.
8023
8024 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
8025
8026         * config/rs6000/rs6000.c (rs6000_override_options): Only warn
8027         about -fpic/-fPIC if extra_warnings set.
8028
8029 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
8030
8031         * expr.c (expand_expr): Sign-extend CONST_INT generated from
8032         TREE_STRING_POINTER.
8033         * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
8034
8035 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8036
8037         * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
8038         in favor of SP if FRAME_POINTER_REQUIRED is false.
8039
8040 2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
8041
8042         * emit-rtl.c (gen_int_mode): New function.
8043         * rtl.h: Prototype for it.
8044         * combine.c (make_extraction, simplify_comparison), expmed.c
8045         (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
8046         (convert_modes, store_field), optabs.c (expand_fix),
8047         simplify-rtx.c (neg_const_int, simplify_unary_real),
8048
8049         * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
8050         Use it instead of GEN_INT (trunc_int_for_mode (...)).
8051
8052 2002-03-19  Jakub Jelinek  <jakub@redhat.com>
8053
8054         PR c/5656
8055         * langhooks.h (struct lang_hooks_for_tree_inlining): Add
8056         convert_parm_for_inlining.
8057         * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
8058         Define.
8059         * langhooks-def.h: Likewise.
8060         * objc/objc-lang.c: Likewise.
8061         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
8062         function.
8063         * tree-inline.c (initialize_inlined_parameters):
8064         Call convert_parm_for_inlining lang hook if needed.
8065         * c-typeck.c (c_convert_parm_for_inlining): New function.
8066         * c-tree.h (c_convert_parm_for_inlining): Add prototype.
8067
8068 2002-03-18  Mark Mitchell  <mark@codesourcery.com>
8069
8070         * calls.c (precompute_arguments): Do not assume that temporaries
8071         can be destroyed after expanding the argument.
8072         (expand_call): Likewise.
8073
8074 2002-03-15  Eric Christopher  <echristo@redhat.com>
8075
8076         * config/mips/mips.md (movdf_internal2): Add two new move constraints.
8077         Fix register preference on last change.
8078         * config/mips/mips.c (mips_return_in_memory): New function.
8079         * config/mips/mips.h (RETURN_IN_MEMORY): Use.
8080         * config/mips/mips-protos.h: Declare.
8081         * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
8082         * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
8083
8084 2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
8085
8086         * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
8087         a register too.
8088         (anddi3, iorsi3): Likewise.
8089
8090         * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
8091         use %gprel for symbols that are going to be placed in linkonce
8092         sections.
8093
8094         * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
8095         RETURN_ADDRESS_POINTER_REGNUM to $ra.
8096         (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
8097         not needed.  Disregard leaf_function_p().
8098         (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
8099         mips16 frame pointer.
8100         * config/mips/mips.md (store ra): Only to small SP offsets.
8101         2001-08-22  Graham Stott  <grahams@redhat.com>
8102         * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
8103         return a REG rtx for the return address register.
8104
8105 2002-03-18  Bob Wilson  <bob.wilson@acm.org>
8106
8107         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
8108         constant-pool addresses as "mode-dependent".
8109         (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
8110
8111 2002-03-18  Jakub Jelinek  <jakub@redhat.com>
8112
8113         PR target/5740
8114         * expr.c (emit_group_load): Use extract_bit_field if
8115         needed for CONCAT arguments.
8116
8117 2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
8118
8119         PR target/4863
8120         * arm.md (tablejump): Make this a define_expand.  For PIC add the
8121         offset to the base of the table.
8122         (thumb_tablejump): Matcher for Thumb tablejump insn.
8123         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
8124         as the difference of two labels.
8125         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
8126         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
8127         tables in the code.
8128         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
8129         * arm.c (get_jump_table_size): If the table is not in the text
8130         section, return zero.
8131
8132 2002-03-18  Bernd Schmidt  <bernds@redhat.com>
8133
8134         * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
8135         of gen_rtx_SUBREG.
8136         (arm_reload_out_hi): Use gen_lowpart instead of
8137         gen_rtx_SUBREG to access QImode components.
8138         * config/arm/arm.md: Disable zero_extend split for QImode
8139         subregs in BIG_ENDIAN mode.
8140         (storehi_bigend): Match use of least significant byte.
8141         (storeinthi): Remove extraneous SUBREG.
8142         Add missing construction of operands[2].
8143         (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
8144         (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
8145         Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
8146
8147 2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
8148
8149         * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
8150         any_operand.
8151
8152 2002-03-17  Richard Henderson  <rth@redhat.com>
8153
8154         * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
8155         explicitly.
8156
8157 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
8158
8159         * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
8160         (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
8161
8162 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8163
8164         * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
8165
8166         * predict.c (estimate_bb_frequencies): Delete unused variables.
8167
8168 2002-03-17  Richard Henderson  <rth@redhat.com>
8169
8170         * config/ia64/ia64.c (ia64_attribute_table): Move before
8171         targetm definition.  Make static.
8172
8173 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
8174
8175         * c-common.h (yyparse, c_common_parse_file): New.
8176         * c-lang.c: Include c-common.h.
8177         (LANG_HOOKS_PARSE_FILE): Redefine.
8178         * c-lex.c: Include c-common.h.
8179         (yyparse): Rename c_common_parse_file.  Call yyparse.
8180         * c-parse.in (yyparse): Remove macro.
8181         * c-tree.h (yyparse_1): Remove.
8182         * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
8183         (LANG_HOOKS_INITIALIZER): Update.
8184         * langhooks.h (struct lang_hoooks): New hook parse_file.
8185         * toplev.c (compile_file): Use parse_file hook.
8186         * tree.h (yyparse): Remove.
8187         * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
8188
8189 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
8190
8191         * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
8192         float_truncate, not fix.
8193         ("*truncdfsf2_real"): Ditto.
8194         ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
8195
8196         * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
8197
8198 2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
8199
8200         * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
8201         (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
8202         where appropriate.  Make the second reference to
8203         leaf_function_p a function call, as intended.  Reindented.
8204
8205         * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
8206         * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
8207
8208         * config/mips/mips.md (addsi3, adddi3): Use scratch register to
8209         add register to non-constant into sp.
8210
8211         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
8212         * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
8213         (mips16_gp_pseudo_rtx): Lose.
8214         (INIT_EXPANDERS): Deleted.
8215         * config/mips/mips.c (mips_init_machine_status): New.
8216         (mips_free_machine_status): New.
8217         (mips_mark_machine_status): New.
8218         (override_options): Set them.
8219         (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
8220         (struct machine_function): ... new.  Replaced all references.
8221         (mips_add_gc_roots): Don't mark them.
8222         (embedded_pic_fnaddr_reg): New, extracted from...
8223         (embedded_pic_offset): ... here.
8224         * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
8225         (movsi): Likewise.
8226
8227 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
8228
8229         * cppinit.c: Revert -MD removal.
8230
8231 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8232
8233         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
8234         soft registers by default for 68HC12.
8235         (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
8236         when compiling with -fomit-frame-pointer.
8237         (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
8238         (expand_epilogue): Likewise.
8239         (m68hc11_gen_rotate): Use exg when rotating by 8.
8240
8241 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8242
8243         * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
8244         * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
8245         (splits): Remove unused add splits.
8246         ("*addhi3_68hc12"): Tune constraints.
8247         ("addhi_sp"): Try to use X instead of Y in all cases and if the
8248         constant fits in 8-bits and D is dead use abx/aby instructions.
8249         ("*addhi3"): Remove extern declaration of ix_reg.
8250         ("*subsi3"): Optimize and provide new split.
8251         ("subhi3"): Cleanup.
8252         ("*subhi3_sp"): Avoid saving X if we know it is dead.
8253         (arith splits): For 68hc12 save the address register on the stack
8254         and do the arithmetic operation with a pop.
8255
8256 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8257
8258         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
8259         allocating QImode in address registers.
8260         ("*movqi_m68hc11"): Likewise.
8261
8262 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
8263
8264         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
8265
8266 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
8267
8268         * cppinit.c (print_help): Display -MD and -MMD.
8269         Don't display usage string.  Update assertion syntax and
8270         typo.
8271         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
8272         (cpp_handle_option): Update.
8273
8274 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
8275
8276         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
8277         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
8278         and define it so that regardless of target CPU size,
8279         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
8280         of "int" rather than "long."
8281
8282 2002-03-15  Richard Henderson  <rth@redhat.com>
8283
8284         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
8285         size as a tree.
8286
8287 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8288
8289         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
8290         ("tstqi" split): Avoid using memory for tstqi on address register.
8291         (splits): Remove constraints.
8292         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
8293         ("cmpdf", "cmpsf"): Remove since not used.
8294         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
8295         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
8296
8297 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8298
8299         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
8300         ("neghi2"): Tighten constraints.
8301         ("one_cmplsi2"): Optimize and simplify split.
8302         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
8303
8304 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8305
8306         * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
8307         and split of AND operation to clear the upper bits.
8308         ("*logicalsi3_zextqi"): Likewise.
8309         ("*logicallhi3_zexthi_ashift8"): Likewise.
8310         ("*logicalsi3_silshr16"): Likewise.
8311         ("logicalsi3_silshl16"): Likewise.
8312         ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
8313
8314 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8315
8316         * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
8317         (m68hc11_indirect_p): New function.
8318         (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
8319         (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
8320         TARGET_M6812.
8321         (asm_print_register): Likewise.
8322         * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
8323         (m68hc11_indirect_p): Declare.
8324         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
8325         (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
8326         (TARGET_SWITCHES): New option -mrelax.
8327         * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
8328         destination.
8329         ("iorsi3", "xorsi3"): Likewise.
8330         ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
8331         ("*andhi3_mem"): New to handle destination in memory with bclr
8332         and a scratch register.
8333         ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
8334         ("*andhi3_const"): New when operand2 is constant.
8335         ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
8336         ("*andhi3_gen"): Cleanup of the old "andhi3".
8337         ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
8338         ("xorqi3"): Update constraints.
8339
8340 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8341
8342         * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
8343         for reg_equiv_memory_loc when the operand is a register that does
8344         not get a hard register (stack location).
8345         (tst_operand): After reload, accept all memory operand.
8346         (symbolic_memory_operand): Fix detection of symbolic references.
8347         * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
8348         accept symbols and any constant.
8349
8350 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8351
8352         * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
8353         note on the insn that sets the soft frame register.
8354         (must_parenthesize): ix and iy are also reserved names.
8355         (print_operand_address): One more place where parenthesis are required
8356         to avoid confusion with register names.
8357         (m68hc11_gen_movhi): Allow push of stack pointer.
8358         (m68hc11_check_z_replacement): Fix handling of parallel with a
8359         clobber.
8360         (m68hc11_z_replacement): Must update the REG_INC notes to tell what
8361         the replacement register is.
8362         * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
8363         and D8_REGS classes.
8364         (MODES_TIEABLE_P): All modes are tieable except QImode.
8365
8366 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8367
8368         * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
8369         (___subdi3): Likewise.
8370         (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
8371         (__map_data_section): Optimize 68hc11 case.
8372
8373 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8374
8375         * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
8376         than a shift to avoid adding a register with itself.
8377         (m68hc11_memory_move_cost): Take into account NO_REGS.
8378         (m68hc11_register_move_cost): Update and use memory move cost
8379         for soft registers.
8380         (m68hc11_address_cost): Make cost of valid offset not 0 so that
8381         it gives more opportunities to cse to optimize.
8382         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
8383         * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
8384
8385 2002-03-15  Mark Mitchell  <mark@codesourcery.com>
8386
8387         * c-common.c (statement_code_p): Handle CLEANUP_STMT.
8388         * c-common.def (CLEANUP_STMT): New tree node.
8389         * c-common.h (CLEANUP_DECL): New macro.
8390         (CLEANUP_EXPR): Likewise.
8391         * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
8392         * expr.c (expand_expr): Tidy.
8393         * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
8394         * tree-inline.c (initialize_inlined_parameters): Clean up
8395         new local variables.
8396
8397 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
8398
8399         PR bootstrap/4128
8400         * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
8401         before movrXX only, use reg_overlap_mentioned_p.
8402         Only special case NE if just one insn can be generated.
8403
8404 2002-03-15  Jason Merrill  <jason@redhat.com>
8405
8406         * varasm.c (assemble_variable): Call resolve_unique_section before
8407         checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
8408         of error_mark_node.
8409
8410 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
8411
8412         PR target/5170
8413         * arm.md (split pattern for thumb shiftable immediates): Add comment
8414         explaining non-obvious test.
8415
8416 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
8417
8418         PR target/5712
8419         * arm.md (movaddr, movaddr_insn): Delete.
8420
8421 2002-03-15  Jason Merrill  <jason@redhat.com>
8422
8423         * toplev.c (wrapup_global_declarations): Clarify variable handling.
8424         -fkeep-static-consts doesn't apply to comdats.
8425
8426 2002-03-14  Richard Henderson  <rth@redhat.com>
8427
8428         * c-decl.c: Include c-pragma.h.
8429         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
8430         (finish_function): Tidy.
8431         * c-pragma.c: Include c-common.h.
8432         (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
8433         (handle_pragma_weak): Use them.
8434         (init_pragma): Register pending_weaks.
8435         * c-pragma.h (maybe_apply_pragma_weak): Declare.
8436         * print-tree.c (print_node): Print DECL_WEAK.
8437         * varasm.c (mark_weak_decls): Remove.
8438         (remove_from_pending_weak_list): Remove.
8439         (add_weak): Remove.
8440         (asm_emit_uninitialised): Call globalize_decl for weak commons.
8441         (weak_decls): Make a tree_list.
8442         (declare_weak): Cons weak_decls directly.
8443         (globalize_decl): Remove weak_decls elements directly.
8444         (weak_finish): Simplify weak_decls walk.  Don't weaken unused
8445         symbols.  Don't pretend to handle aliases.
8446         (init_varasm_once): Update weak_decls registry.
8447         * Makefile.in: Update dependencies.
8448
8449 2002-03-14  Richard Henderson  <rth@redhat.com>
8450
8451         PR target/5312
8452         * config/ia64/ia64.c: Include tm_p.h last.
8453         (gen_nop_type): Remove duplicate definition.
8454         (cycle_end_fill_slots): Set sched_data for second L slot.
8455         (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
8456         (nop_cycles_until): Fix typos.
8457
8458 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
8459
8460         PR optimization/5891
8461         * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
8462
8463 2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
8464
8465         * config/ia64/unwind-ia64.c: Handle copy_state and label_state
8466           descriptors correctly.
8467
8468 2002-03-14  Michael Meissner  <meissner@redhat.com>
8469
8470         * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
8471         100, allowing MAX_UNROLLED_INSNS to be overridden.
8472
8473         * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
8474         --param.
8475
8476         * unroll.c (params.h): Include.
8477         (MAX_UNROLLED_INSNS): Delete, now in params.h.
8478
8479         * doc/invoke.texi (--param max-unroll-insns): Document.
8480
8481         * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
8482
8483 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
8484
8485         * arm.md: Fix warnings about constraints in peepholes and splits.
8486
8487 2002-03-14  Zack Weinberg  <zack@codesourcery.com>
8488
8489         * cpphash.h (struct lexer_state): Remove line_extension member.
8490         * cpplib.c (dequote_string, do_linemarker): New functions.
8491         (linemarker_dir): New data object.
8492         (DIRECTIVE_TABLE): No longer need to interpret #line in
8493         preprocessed source.  Delete obsolete comment about return
8494         values of handlers.
8495         (end_directive, directive_diagnostics, _cpp_handle_directive):
8496         Don't muck with line_extension.
8497         (directive_diagnostics): No need to issue warnings for
8498         linemarkers here.
8499         (_cpp_handle_directive): Issue warnings for linemarkers here,
8500         when appropriate.  Dispatch linemarkers to do_linemarker, not
8501         do_line.
8502         (do_line): Code to handle linemarkers split out to do_linemarker.
8503         Convert escape sequences in filename argument, both places.
8504
8505         * cppmacro.c (quote_string): Rename cpp_quote_string and
8506         export.  All callers changed.
8507         * cpplib.h (cpp_quote_string): Prototype.
8508         * cppmain.c (print_line): Call cpp_quote_string on to_file
8509         before printing it.
8510
8511         * doc/cpp.texi: Document that escapes are now interpreted in
8512         #line and in linemarkers, and that non-printing characters are
8513         converted to octal escapes when linemarkers are generated.
8514
8515 Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
8516
8517         * emit-rtl.c (try_split): Use delete_insns.
8518         * recog.c (split_all_insns): Fix terminating condition.
8519
8520 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
8521             Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
8522
8523         PR target/5828
8524         * arm.c (arm_output_epilogue): Fix floating-point register save
8525         adjustment when using a frame pointer.
8526
8527 2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
8528
8529         * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
8530         * config/mips/mips.c (compute_frame_size): Retrofit them here.
8531         (save_restore_insns, mips_expand_epilogue): And here.
8532         (build_mips16_call_stub): And here.
8533         (mips_function_value): Use the new macros to decide whether a single
8534         or complex float can be returned in floating-point registers.  Return
8535         a parallel rtx in the complex case.
8536
8537 Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
8538
8539         * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
8540         call after liveness analysis.
8541
8542         * recog.c (split_insn): Use delete_insn_and_edges.
8543
8544         * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
8545         instructions to have branch prediction notes.
8546         * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
8547
8548 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
8549
8550         * configure.in: Don't pass -Wno-long-long to a ADA compiler
8551         that doesn't support it.
8552         * configure: Regenerate.
8553
8554 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
8555
8556         PR target/5626
8557         * config/sparc/sparc.md (normal_branch, inverted_branch,
8558         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
8559         inverted_fp_branch): Adjust calls to output_cbranch.
8560         Set length attribute.
8561         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
8562         output_v9branch.  Set length attribute.
8563         * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
8564         predicates.
8565         (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
8566         (output_cbranch): Likewise.  Handle far branches.
8567         (output_v9branch): Handle far branches.
8568         * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
8569         Adjust prototypes.
8570         * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
8571         noov_compare64_op predicates.
8572
8573 2002-03-13  Jason Merrill  <jason@redhat.com>
8574
8575         * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
8576         into the function and constify it.
8577         * gthr-dce.h, gthr-solaris.h: Likewise.
8578
8579 2002-03-13  David Edelsohn  <edelsohn@gnu.org>
8580
8581         * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
8582         * config/rs6000/rs6000.c (rs6000_va_arg): Use
8583         std_expand_builtin_va_arg if not ABI_V4.
8584
8585 2002-03-13  Jason Merrill  <jason@redhat.com>
8586
8587         * varasm.c (globalize_decl): New fn.
8588         (assemble_start_function): Use it.
8589         (asm_emit_uninitialized): Use it.
8590         (assemble_alias): Use it.
8591         (assemble_variable): Use it.
8592
8593 2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
8594
8595         * config/cris/cris.c (cris_target_asm_function_prologue): Revert
8596         2002-03-12 internal visibility change.
8597         (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
8598         visibility into SYMBOL_REF_FLAG.
8599
8600 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
8601
8602         * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
8603         VOIDmode operand.  Add compile-time optimization for constant results.
8604
8605 2002-03-12  Jason Merrill  <jason@redhat.com>
8606
8607         * c-typeck.c (convert_for_assignment): Don't allow conversions
8608         between pointers and references.  Only allow lvalues to convert to
8609         reference.
8610
8611 2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
8612
8613         * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
8614         before prologue, to avoid scheduling problems.
8615
8616 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
8617
8618         * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
8619         (ELIMINABLE_REGS): Add sfp->sp.
8620         (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
8621
8622 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
8623
8624         PR optimization/5892
8625         * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
8626
8627 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
8628
8629         * loop.c (basic_induction_var): Don't call convert_modes if mode
8630         classes are different.
8631
8632 2002-03-12  Richard Henderson  <rth@redhat.com>
8633
8634         PR optimization/5901
8635         * function.c (reposition_prologue_and_epilogue_notes): Position
8636         the markers after/before the last/first insn not deleted.
8637
8638 2002-03-12  Richard Henderson  <rth@redhat.com>
8639
8640         PR optimization/5878
8641         * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
8642         config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
8643         (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
8644
8645         * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
8646         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
8647         PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
8648
8649         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
8650         * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
8651         (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
8652         also.  Don't set it if not flag_pic.
8653         * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
8654         to be INVALID_REGNUM when not used.
8655
8656 2002-03-13  Aldy Hernandez  <aldyh@redhat.com>
8657
8658         * expmed.c (store_bit_field): Reset alias set for memory.
8659         (extract_bit_field): Same.
8660
8661 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8662
8663         * c-common.c (c_tree_code_type, c_tree_code_length,
8664         c_tree_code_name, add_c_tree_codes): Delete.
8665         * c-common.h (add_c_tree_codes): Delete.
8666         * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
8667         Define.
8668         * c-objc-common.c (c_objc_common_init): Don't call
8669         add_c_tree_codes, instead set lang_unsafe_for_reeval.
8670         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
8671         objc_tree_code_name, add_objc_tree_codes): Delete.
8672         (objc_init): Don't call add_objc_tree_codes.
8673         * objc/objc-lang.c (tree_code_type, tree_code_length,
8674         tree_code_name): Define.
8675         * toplev.c (lang_independent_init): Don't set
8676         tree_code_length[IDENTIFIER_NODE].
8677         * tree.c (tree_code_type, tree_code_length, tree_code_name):
8678         Delete definitions, moved to language front-ends.
8679         * tree.def (IDENTIFIER_NODE): Hardwire the length.
8680         * tree.h (tree_code_type, tree_code_length, tree_code_name):
8681         Const-ify.
8682         (tree_code_length): Change type to unsigned char.
8683
8684 2002-03-12  Richard Henderson  <rth@redhat.com>
8685
8686         * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
8687         internal visibility change.
8688
8689 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
8690
8691         * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
8692         validize_mem() instead of change_address to avoid clobbering
8693         memory attributes.
8694
8695 2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
8696
8697         * c-lex.h (position_after_whitespace): Remove.
8698
8699 2002-03-12  Jakub Jelinek  <jakub@redhat.com>
8700
8701         * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
8702         (lex_string): Use unsigned char pointers.
8703
8704 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
8705
8706         * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
8707         is not a valid memory_operand.
8708
8709 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
8710
8711         * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
8712         * config/xtensa/lib1funcs.asm: Fix copyright to include
8713         special case for libgcc files.
8714         (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
8715         (__divsi3): Likewise.
8716         (__umodsi3): Likewise.
8717         (__modsi3): Likewise.
8718         * config/xtensa/lib2funcs.S: Fix copyright to include
8719         special case for libgcc files.
8720
8721 2002-03-12  Tom Rix  <trix@redhat.com>
8722
8723         * collect2.c (resolve_lib_name): Move outside of
8724         OBJECT_FORMAT_COFF ifdef.
8725         (ignore_library): Same.
8726
8727 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
8728
8729         * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
8730
8731 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
8732
8733         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
8734         to function_section before writing out the constant pool.
8735
8736 2002-03-12  David Edelsohn  <edelsohn@gnu.org>
8737
8738         * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
8739         zero_constant.
8740         * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
8741
8742 2002-03-12  Alan Modra  <amodra@bigpond.net.au>
8743
8744         * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
8745         (adddi3): Likewise.
8746         (movdf): Likewise.
8747         (movdi): Likewise.
8748         (cmpsi splitter): Likewise.
8749         (modsi3): Fail if <= 0.
8750         * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
8751         redundant test when HOST_BITS_PER_WIDE_INT != 32.
8752         (reg_or_sub_cint64_operand): Likewise.
8753         (num_insns_constant_wide): Optimize sign extension.
8754         (rs6000_legitimize_address): Likewise.
8755
8756 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
8757
8758         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
8759         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
8760
8761 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
8762
8763         * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
8764         address calculation.
8765
8766 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
8767
8768         * config/s390/s390.md (reload_insi, reload_indi): Change mode of
8769         scratch register to DImode / TImode.
8770         config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
8771         register used does not overlap the target.
8772
8773 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8774
8775         * Makefile.in (debug.o): Depend on debug.h.
8776         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
8777         * debug.c (do_nothing_debug_hooks): Likewise.
8778         * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
8779         sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
8780         dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
8781         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
8782         * dwarfout.c (dwarf_debug_hooks): Likewise.
8783         * integrate.c (output_inline_function): Likewise.
8784         * objc/objc-act.c (synth_module_prologue): Likewise.
8785         * sdbout.c (sdb_debug_hooks): Likewise.
8786         * toplev.c (debug_hooks): Likewise.
8787         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
8788
8789 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8790
8791         * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
8792         dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
8793         m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
8794         ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
8795         v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
8796         * defaults.h (POINTER_SIZE): Define.
8797         * doc/tm.texi (POINTER_SIZE): Document default.
8798
8799 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8800
8801         * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
8802
8803 2002-03-11  Richard Henderson  <rth@redhat.com>
8804
8805         * toplev.c (rest_of_compilation): Call purge_all_dead_edges
8806         if rebuild_label_notes_after_reload.
8807
8808 2002-03-12  Hans-Peter Nilsson  <hp@axis.com>
8809
8810         * config/cris/cris.c (cris_target_asm_function_prologue):  Do not
8811         emit pic register load if "internal" visibility.
8812         (cris_print_operand): Avoid traditional-warning for 0xffffffff.
8813         (cris_expand_builtin_va_arg): Do all computations on trees.
8814
8815 2002-03-11  Richard Henderson  <rth@redhat.com>
8816
8817         * rtlanal.c: Include recog.h.
8818         (keep_with_call_p): Fix thinko.
8819         * Makefile.in (rtlanal.o): Update dependencies.
8820
8821 2002-03-11  Chris Meyer  <cmeyer@gatan.com>
8822
8823         * genflags.c (gen_insn): Use IS_VSPACE.
8824         * genoutput.c (output_insn_data): Likewise.
8825         (process_template): Likewise.
8826
8827 2002-03-11  Richard Henderson  <rth@redhat.com>
8828
8829         * toplev.c (rest_of_compilation): Don't compile if we've had errors.
8830
8831 2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
8832
8833         * Makefile.in: Update.
8834         * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
8835         Update documentation.
8836         * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
8837         * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
8838
8839 2002-03-11  Zack Weinberg  <zack@codesourcery.com>
8840
8841         * Makefile.in: Give texi2pod its input file as a command line
8842         argument, not on stdin.
8843
8844 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
8845             Daniel Berlin  <dan@dberlin.org>
8846
8847         C++ alias analysis improvement.
8848         * alias.c (record_component_aliases): Record aliases for base
8849         classes too.
8850
8851 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
8852
8853         * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
8854
8855 2002-03-11  Douglas B Rupp  <rupp@gnat.com>
8856
8857         * toplev.c (vms_fopen): Remove, not needed.
8858
8859         * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
8860
8861         * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
8862
8863         * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
8864         for FP, already done later.
8865
8866         * toplev.c (debug_args): Add entry for VMS_DEBUG.
8867         * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
8868
8869 2002-03-11  Richard Sandiford  <rsandifo@redhat.com>
8870
8871         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
8872         (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
8873         LARGEST_EXPONENT_IS_NORMAL for the given mode.
8874         (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
8875         * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
8876         (ediv, emul, eldexp, esqrt): Likewise.
8877         (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
8878         (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
8879         (saturate): New function.
8880         (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
8881         (make_nan): Use a saturation value instead of a NaN if
8882         LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
8883         * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
8884         inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
8885         zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
8886         (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
8887         (_fpmul_parts, _fpdiv_parts): Only round to nearest if
8888         !ROUND_TOWARDS_ZERO.
8889         * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
8890         (ROUND_TOWARDS_ZERO): Document.
8891
8892 2002-03-11  Andreas Jaeger  <aj@suse.de>
8893
8894         * cfg.c (dump_flow_info): Remove unused variable.
8895
8896 2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>
8897
8898         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
8899         computations on trees.
8900
8901 2002-03-10  Richard Henderson  <rth@redhat.com>
8902
8903         PR 5693:
8904         * reload.c (copy_replacements_1): New.
8905         (copy_replacements): Use it to recurse through the rtx.
8906
8907 2002-03-10  Richard Henderson  <rth@redhat.com>
8908
8909         * loop.c (strength_reduce): Compute number of iterations as
8910         unsigned HOST_WIDE_INT.
8911
8912 2002-03-10  Richard Henderson  <rth@redhat.com>
8913
8914         * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
8915         to move away from the end of the block.
8916
8917 2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
8918
8919         PR preprocessor/5899
8920         * cppinit.c (init_dependency_output): Don't ignore -dM etc.
8921
8922 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8923
8924         * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
8925
8926         * attribs.c (decl_attributes): Fix signed/unsigned warning.
8927
8928 2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>
8929
8930         * config/mmix/mmix.c: Improve comments.
8931         (mmix_target_asm_function_prologue): Drop variable
8932         empty_stack_frame.  Don't allocate unused slot above fp.
8933         (mmix_target_asm_function_epilogue): Mirror prologue changes.
8934         * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
8935         brace in first column.
8936         (enum reg_class): Ditto.
8937         (FIRST_PARM_OFFSET): Now 0.
8938         (USER_LABEL_PREFIX): Remove #if 0:d definition.
8939
8940 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8941
8942         * combine.c (make_extraction): Fix error in last change.
8943
8944 2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8945
8946         * c4x.c (c4x_fp_reglist): Const-ify.
8947         * cris.c (cris_print_operand): Likewise.
8948         * i386.c (ix86_va_arg): Likewise.
8949         * ia64/unwind-ia64.c (unw_decode_table): Likewise.
8950         * m32r.c (m32r_hard_regno_mode_ok): Likewise.
8951         * m32r.h (m32r_hard_regno_mode_ok): Likewise.
8952         * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
8953         * mcore.h (regno_reg_class): Likewise.
8954         * mips.c (gen_int_relational): Likewise.
8955         * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
8956         * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
8957         * pdp11.c (move_costs): Likewise.
8958         * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
8959         * s390.c (s390_branch_condition_mnemonic, regclass_map):
8960         Likewise.
8961         * s390.h (regclass_map): Likewise.
8962         * sh.c (shift_amounts): Likewise.
8963         * sh.md (rotlsi3): Likewise.
8964
8965 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
8966
8967         * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
8968         (ne0+5): Use new clobber to generate proper shift pattern.
8969         Patch by Michael Matz <matz@kde.org>.
8970
8971 2002-03-09  Andreas Schwab  <schwab@suse.de>
8972
8973         * gcc.c (validate_all_switches): Also handle `%W{...}'.
8974
8975 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
8976
8977         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
8978
8979 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
8980
8981         PR middle-end/5877
8982         * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
8983         even for non-representable constants.
8984
8985 Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8986
8987         * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
8988         * function.c (fixup_var_refs): Add MAY_SHARE parameter.
8989         (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
8990         (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
8991         (pop_function_context): Compute MAY_SHARE parameter for
8992         fixup_var_refs.
8993         (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
8994         (gen_mem_addressof): Call fixup_var_refs with new parm.
8995
8996         * combine.c (make_extraction): Don't make extension of CONST_INT.
8997
8998 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
8999
9000         * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
9001         in o32 and o64 ABIs.
9002         * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
9003         but getting fixed-size structs passed in registers regardless of
9004         padding in o32 and o64 ABIs.
9005
9006         * config/mips/mips.c (mips_va_arg): Apply big-endianness address
9007         offset before loading address of argument passed by transparent
9008         reference.
9009
9010 2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9011
9012         * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
9013
9014 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
9015
9016         * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
9017         marker such that registers after it are saved.
9018
9019 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9020
9021         * sparc.c (arith_4096_operand): Fix error in last change.
9022
9023 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
9024
9025         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
9026         defaults for MEABI.
9027
9028 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
9029
9030         * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
9031         vectors.
9032
9033 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
9034
9035         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
9036
9037 Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>
9038
9039         * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
9040         removed; fix return value.
9041         * combine.c (combine_instructions): Dirtify blocks where we failed to
9042         update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
9043         * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
9044
9045 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9046
9047         * gcse.c (insert_insn_end_bb): Fix typo in last change.
9048
9049 Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>
9050
9051         * recog.c (peephole2_optimize): Re-distribute EH edges.
9052
9053 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
9054
9055         * expr.c (expand_expr): Use unsave lang hook.
9056         * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
9057         (LANG_HOOKS_INITIALIZER): Update.
9058         * langhooks.h (struct lang_hooks): New hook unsave.
9059         * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
9060         (unsave_expr_1): Remove unused lang_unsave_expr_now.
9061         (unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
9062         (unsave_expr_now): Remove.
9063         * tree.h (unsave_expr_now, lang_unsave,
9064         lang_unsave_expr_now): Remove.
9065         (lhd_unsave): New.
9066
9067 2002-03-08  Andreas Jaeger  <aj@suse.de>
9068
9069         * flow.c (propagate_block_delete_insn): Remove unused variable.
9070
9071 2002-03-08  Kazu Hirata  <kazu@hxi.com>
9072
9073         * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
9074         insn length for memory load/store.
9075
9076 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
9077
9078         * doc/install.texi (--with-libiconv-prefix): Document.
9079
9080 2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>
9081
9082         * doc/sourcebuild.texi: Fix typo.
9083
9084 2002-03-08  Jakub Jelinek  <jakub@redhat.com>
9085
9086         PR c/3711
9087         * builtins.c (std_expand_builtin_va_arg): Do all computations on
9088         trees.
9089
9090 Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9091
9092         * rtl.c (copy_most_rtx): Move from here ...
9093         * emit-rtl.c (copy_most_rtx): ... to here.
9094
9095 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
9096
9097         * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
9098         SUBTARGET_CPP_SIZE_SPEC.
9099         * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
9100
9101         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
9102
9103 2002-03-07  Matt Hiller  <hiller@redhat.com>
9104
9105         * gensupport.c (first_dir_md_include): Renamed from include;
9106         change all references.
9107         (last_dir_md_include): Renamed from last_include; change all
9108         references.
9109         (init_md_reader): Unconditionally initialize base_dir whether or
9110         not filename is a relative path.
9111
9112 2002-03-07  Alexandre Oliva  <aoliva@redhat.com>
9113
9114         * config/fp-bit.c (_unord_f2): Compile it in even if
9115         US_SOFTWARE_GOFAST is enabled.
9116
9117         * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
9118         NULL_RTX.  Set all HFmode operations as NULL_RTX.
9119         * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
9120         NULL_RTX, try reversing the comparison and the operands.
9121
9122 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
9123
9124         * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
9125         genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
9126         and MATCH_OP_DUP.
9127
9128 Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
9129
9130         * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
9131
9132 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
9133
9134         * basic-block.h (fixup_abnormal_edges): Declare.
9135         * reload1.c (fixup_abnormal_edges): New function.
9136         * reg-stack.c (convert_regs): Use it.
9137
9138         * gcse.c (insert_insn_end_bb): Handle trapping insns.
9139
9140         * gcse.c (hash_scan_set): Refuse instructions with EH edges.
9141
9142 2002-03-07  Richard Sandiford  <rsandifo@redhat.com>
9143
9144         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
9145         (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
9146         * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
9147         (HONOR_SIGN_DEPENDENT_ROUNDING): New.
9148         * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
9149         * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
9150         unless x and y could be infinite.
9151         (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
9152         Check that the common type of both arguments is a real, even for
9153         targets without unordered comparisons.  Allow an integer argument
9154         to be compared against a real.
9155         (expand_tree_builtin): Use expand_unordered_cmp.
9156         * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
9157         * cse.c (fold_rtx): Likewise.  Fix indentation.
9158         * fold-const.c (fold_real_zero_addition_p): New.
9159         (fold): Use it, and the new HONOR_... macros.
9160         * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
9161         * jump.c (reversed_comparison_code_parts): After searching for
9162         the true comparison mode, use HONOR_NANS to decide whether it
9163         can be safely reversed.
9164         (reverse_condition_maybe_unordered): Remove IEEE check.
9165         * simplify-rtx.c (simplify_binary_operation): Use the new macros
9166         to decide which simplifications are valid.  Allow the following
9167         simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
9168         and (a - -b) to (a + b).
9169         (simplify_relational_operation): Use HONOR_NANS.
9170         * doc/tm.texi: Document the MODE_HAS_... macros.
9171
9172 2002-03-07  Richard Earnshaw  <rearnsha@arm.com>
9173
9174         * combine.c (simplify_comparison): If simplifying a logical shift
9175         right and compare with constant, force the comparison to unsigned.
9176
9177 2002-03-07  Aldy Hernandez  <aldyh@redhat.com>
9178
9179         * doc/invoke.texi: Add documentation for -mabi=no-altivec.
9180
9181         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
9182         -mabi=no-altivec
9183         (alt_reg_names): Remove % for vrsave.
9184
9185 2002-03-06  Richard Henderson  <rth@redhat.com>
9186
9187         PR optimization/5844
9188         * genemit.c (gen_exp): New argument used.  Invoke copy_rtx
9189         if used indicates we've already emitted one copy of an operand.
9190         (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
9191         (gen_split): Supply a non-null used.
9192
9193 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
9194
9195         * reload1.c (reload): Unshare all rtl after reload is done.
9196
9197         * simplify-rtx.c (simplify_plus_minus): Do not abort,
9198         but simply fail if the expression is too complex to simplify.
9199         (simplify_gen_binary): Handle simplify_plus_minus failures.
9200
9201 Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>
9202
9203         * toplev.c (rest_of_compilation): Do jump threading before SSA path;
9204         consistently call delete_trivially_dead_insns after CSE and GCSE;
9205         fix DFI_life dumping; do jump threading after liveness; do crossjumping
9206         after liveness2; update comment in last crossjumping.
9207         * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
9208
9209 Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)
9210
9211         * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
9212         after completing fast dead code elimination.
9213
9214         * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
9215         COMPARE operator.
9216
9217 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
9218
9219         * version.c:  Fix misplaced leading blanks on first line.
9220
9221 Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>
9222
9223         * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
9224
9225 Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>
9226
9227         * cfgcleanup.c (mentions_nonequal_regs): New function.
9228         (thread_jump): Use it.
9229         * toplev.c (rest_of_compilation): Run jump threading after
9230         liveness.
9231
9232 2002-03-06  Jakub Jelinek  <jakub@redhat.com>
9233
9234         * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
9235         patch.
9236
9237 Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>
9238
9239         * predict.c (estimate_bb_frequencies): Do not reload the
9240         frequencies from notes.
9241
9242 Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>
9243
9244         * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
9245         * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
9246
9247         * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
9248         delete_noop_moves): Return indeger.
9249         * flow.c (ndead): New variable.
9250         (propagate_block_delete_insn): Use delete_insn_and_edges; remove
9251         BB argument; update callers.
9252         (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
9253         (life_analysis): Do not call purge_all_dead_edges.
9254         (update_life_info): Return number of deleted insns; print statistics.
9255         (update_life_info_in_dirty_blocks): likewise.
9256         (delete_noop_moves): Use delete_insn_and_edges; print statistics;
9257         return number of insns deleted.
9258
9259         * cse.c: Include timevar.h
9260         (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
9261         iterate until stabilizes; print statistics; return number of killed
9262         insns.
9263         * Makefile.in: (cse.o): Add timevar.h dependency
9264         * rtl.h (delete_trivially_dead_insns): New.
9265         * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
9266         * toplev.c (rest_of_compilation): Update callers.
9267
9268         * cfgcleanup.c (try_optimize_cfg): Kill blocks.
9269         (try_optimize_cfg): Do not update liveness.
9270         (cleanup-cfg): Loop until try_optimize_cfg and dead code
9271         removal stabilizes; use delete_trivially_dead_insns.
9272
9273         * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
9274
9275 2002-03-05  Zack Weinberg  <zack@codesourcery.com>
9276
9277         * cppmain.c (setup_callbacks): Disable #pragma and #ident
9278         callbacks when processing assembly language.
9279
9280 2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9281
9282         * pa.h (ASM_FILE_END): Define.
9283         * som.h (ASM_FILE_END): Delete.
9284
9285         * pa.c (function_arg): Don't pass floats in general registers in
9286         indirect calls if TARGET_ELF32.
9287
9288 2002-03-05  Richard Henderson  <rth@redhat.com>
9289
9290         * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
9291
9292 2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
9293
9294         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
9295
9296 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
9297
9298         * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
9299         -r command line.  Don't hide any symbols if not building
9300         shared libgcc.
9301
9302 Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>
9303
9304         * cfg.c (dump_flow_info): Warn about profile mismatches.
9305         * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
9306         (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
9307
9308 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
9309
9310         * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
9311         wide volatile memory by parts.
9312
9313 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
9314
9315         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
9316         is NULL.
9317
9318 2002-03-05  Richard Henderson  <rth@redhat.com>
9319
9320         * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
9321
9322 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
9323
9324         * toplev.c (documented_lang_options): Document more
9325         language-specific options.
9326         * doc/invoke.texi (Warning Options): Correct documentation for
9327         -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
9328         * c-decl.c (c_decode_option): Use a table to handle warning options.
9329
9330 2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
9331
9332         * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
9333         parameter to mmix_encode_section_info.
9334         (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
9335         relocatably.  Always produce ELF, not mmo if linking relocatably.
9336         * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
9337         first is non-zero, don't add symbol prefix.
9338         * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
9339         prototype accordingly.
9340
9341 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
9342
9343         * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
9344
9345 2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>
9346
9347         * configure.in: Increase required makeinfo version to 4.1.
9348         * configure: Regenerate.
9349
9350 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
9351
9352         * .cvsignore: Remove *.info* and genrtl*; these files are generated
9353         elsewhere now.
9354
9355 2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>
9356
9357         * doc/include/texinfo.tex: Update to version 2002-03-01.06.
9358         * doc/invoke.texi: Fix @math uses.
9359
9360 Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
9361
9362         * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
9363         removal
9364
9365 2002-03-03  Aldy Hernandez  <aldyh@redhat.com>
9366
9367         * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
9368         (powerpc-*-eabisimaltivec*): Same.
9369
9370         * config/rs6000/t-ppcendian: New.
9371
9372 2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9373
9374         * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
9375         nonimmediate_src_operand and nonimmediate_lsrc_operand to
9376         disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
9377
9378 2002-03-03  Richard Henderson  <rth@redhat.com>
9379
9380         * toplev.c (rest_of_decl_compilation): Revert last two changes.
9381
9382 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
9383
9384         * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
9385         print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
9386         tree.c, config/m68k/m68k.c:
9387         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
9388         REAL_ARITHMETIC blocks unconditional.  Delete some further
9389         #ifdef blocks predicated on REAL_ARITHMETIC.
9390         * flags.h, toplev.c: Delete remaining references to
9391         flag_pretend_float.
9392
9393         * doc/invoke.texi: Remove documentation of -fpretend-float.
9394         * doc/tm.texi: Describe the various REAL_* macros as provided by
9395         real.h, not by the target configuration files.
9396
9397         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
9398         config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
9399         config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
9400         config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
9401         config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
9402         config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
9403         config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
9404         config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
9405         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
9406         config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
9407         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
9408         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
9409         config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
9410         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
9411         config/xtensa/xtensa.h:
9412         Do not define, undefine, or mention in comments any of
9413         REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
9414         REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
9415         REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
9416         REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
9417         REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
9418         REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
9419         REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
9420         REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
9421         REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
9422
9423 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9424
9425         * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
9426         convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
9427         i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
9428         m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
9429         pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
9430         stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
9431         Delete.
9432         * defaults.h (BITS_PER_WORD): Define.
9433         * doc/tm.texi (BITS_PER_WORD): Document default value.
9434
9435         * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
9436         m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
9437         stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
9438
9439 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9440
9441         * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
9442         lieu of explicit sizeof/sizeof.
9443         * i386.c (override_options, ix86_init_mmx_sse_builtins,
9444         ix86_expand_builtin): Likewise.
9445         * mips.c (mips_add_gc_roots): Likewise.
9446         * mmix.c (mmix_output_condition): Likewise.
9447         * rs6000.c (rs6000_override_options, altivec_expand_builtin,
9448         altivec_init_builtins): Likewise.
9449         * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
9450         * cppexp.c (Nsuff, parse_number): Likewise.
9451         * cppinit.c (builtin_array_end): Likewise.
9452         * gcc.c (n_default_compilers, process_command): Likewise.
9453         * genpreds.c (output_predicate_decls): Likewise.
9454         * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
9455         * lcm.c (N_ENTITIES): Likewise.
9456         * stor-layout.c (set_sizetype): Likewise.
9457
9458 2002-03-03  Richard Henderson  <rth@redhat.com>
9459
9460         * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
9461         for types or labels.
9462
9463 2002-03-03  Richard Henderson  <rth@redhat.com>
9464
9465         * c-decl.c (start_decl): Initialized variables are not common.
9466
9467 2002-03-02  Per Bothner  <per@bothner.com>
9468
9469         * gcc.c (option_map):  Suport new --bootclasspath option.
9470         --CLASSPATH is now just an alias for --classpath.
9471
9472 2002-03-02  Richard Henderson  <rth@redhat.com>
9473
9474         * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
9475         load if "internal" visibility.
9476         * doc/extend.texi: Document visibility meanings.
9477
9478 2002-03-02  Richard Henderson  <rth@redhat.com>
9479
9480         * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
9481         to functions as well.
9482
9483 2002-03-02  Richard Henderson  <rth@redhat.com>
9484
9485         * attribs.c (handle_alias_attribute): Don't call assemble_alias.
9486         (handle_visibility_attribute): Don't call assemble_visibility.
9487         * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
9488         without asmspec.  Invoke assemble_alias when needed.
9489         * varasm.c (maybe_assemble_visibility): New.
9490         (assemble_start_function, assemble_variable, assemble_alias): Use it.
9491
9492 2002-03-02  Richard Henderson  <rth@redhat.com>
9493
9494         * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
9495         invoke ENCODE_SECTION_INFO with first call flag.
9496
9497         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
9498         config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
9499         config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
9500         config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
9501         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
9502         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
9503         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
9504         config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
9505         config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
9506         config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
9507         config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
9508         config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
9509         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
9510         config/m68hc11/m68hc11.h, config/m88k/m88k.h,
9511         config/mcore/mcore-protos.h, config/mcore/mcore.c,
9512         config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
9513         config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
9514         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
9515         config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
9516         config/sh/sh.h, config/sparc/sparc.h,
9517         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
9518         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
9519         config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
9520         FIRST argument.  As needed, examine it and do nothing.
9521
9522         * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
9523         config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
9524         config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
9525
9526         * config/arm/t-pe (pe.o): Add dependencies.
9527
9528 2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9529
9530         * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
9531         cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
9532         i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
9533         mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
9534         pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
9535         vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
9536         * defaults.h (BITS_PER_UNIT): Define.
9537         * doc/tm.texi (BITS_PER_UNIT): Document default value.
9538
9539 2002-03-02  Kazu Hirata  <kazu@hxi.com>
9540
9541         * config/h8300/h8300-protos.h: Add a prototype for
9542         compute_a_shift_length.
9543         * config/h8300/h8300.c (h8300_asm_insn_count): New.
9544         (compute_a_shift_length): Likewise.
9545         (h8300_adjust_insn_length): Do not adjust insn length of shift
9546         insns.
9547         * config/h8300/h8300.md (anonymous shift patterns): Use
9548         compute_a_shift_length.
9549
9550 Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9551
9552         * config/sparc/sparc.c (sparc_initialize_trampoline): Use
9553         trunc_int_for_mode.
9554
9555         * emit-rtl.c (offset_address): Call update_temp_slot_address.
9556
9557 2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9558
9559         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
9560         * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
9561         * flags.h (flag_zero_initialized_in_bss): Declare.
9562         * toplev.c (flag_zero_initialized_in_bss): New flag.
9563         (lang_independent_options): Add flag_zero_initialized_in_bss.
9564         * tree.c (initializer_zerop): New function.
9565         * tree.h (initializer_zerop): Declare.
9566         * varasm.c (assemble_variable): If we can emit bss, put zero
9567         initializers in the bss section.
9568
9569 2002-03-02  Alan Modra  <amodra@bigpond.net.au>
9570
9571         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
9572         like more than one symbol per .weak directive.
9573
9574 2002-03-01  Richard Henderson  <rth@redhat.com>
9575
9576         * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
9577         adjust argument_pointer by pretend_args_size.
9578         (ia64_va_start): Adjust va_start address by -pretend_args_size.
9579
9580 2002-03-01  Kazu Hirata  <kazu@hxi.com>
9581
9582         * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
9583
9584 Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
9585
9586         * toplev.c (rest_of_compilation): Delete dead jumptables before
9587         loop.
9588         * flow.c (delete_dead_jumptables): Make global.
9589         * rtl.h (delete_dead_jumptables): Declare.
9590
9591 2002-03-01  David Edelsohn  <edelsohn@gnu.org>
9592
9593         * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
9594         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
9595         * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.
9596
9597 2002-03-01  Kazu Hirata  <kazu@hxi.com>
9598
9599         * config/h8300/h8300-protos.h: Fix formatting.
9600         * config/h8300/h8300.c: Likewise.
9601         * config/h8300/h8300.h: Likewise.
9602
9603 2002-03-01  Kazu Hirata  <kazu@hxi.com>
9604
9605         * config/h8300/h8300.c (print_operand): Support 16-bit
9606         constant addresses.
9607         * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
9608
9609 2002-02-28  Richard Henderson  <rth@redhat.com>
9610
9611         * expmed.c (store_bit_field): Prevent generation of CONCATs;
9612         pun complex values as integers; use gen_lowpart instead of
9613         gen_rtx_SUBREG.
9614         (extract_bit_field): Likewise.
9615
9616 2002-03-01  Alan Modra  <amodra@bigpond.net.au>
9617             David Edelsohn  <edelsohn@gnu.org>
9618
9619         * doc/tm.texi (ASM_WEAKEN_DECL): Document.
9620         (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
9621         (SUPPORTS_WEAK): Likewise.
9622         * output.h (add_weak): Add tree param.
9623         * varasm.c (add_weak): Likewise.  Save decl.
9624         (struct weak_syms): Add decl field.
9625         (mark_weak_decls): New function.
9626         (init_varasm_once): ggc_add_root mark_weak_decls.
9627         (assemble_start_function): Use ASM_WEAKEN_DECL.
9628         (assemble_variable): Likewise.
9629         (assemble_alias): Likewise.
9630         (declare_weak): Pass decl to add_weak.
9631         (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
9632         (remove_from_pending_weak_list): Declare and define for
9633         ASM_WEAKEN_DECL.
9634         * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
9635         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
9636         * defaults.h (SUPPORTS_WEAK): Likewise.
9637         * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
9638         .weak for code sym.  Do emit .size for descriptor sym.
9639         (ASM_DECLARE_FUNCTION_SIZE): Define.
9640         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
9641         (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
9642         .lglobl unless TARGET_XCOFF.  Formatting fixes.
9643         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
9644         .weak for code sym.
9645         (HANDLE_PRAGMA_WEAK): Remove.
9646         (ASM_WEAKEN_LABEL): Remove.
9647         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
9648
9649 2002-03-01  Jason Merrill  <jason@redhat.com>
9650
9651         * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
9652         (TARGET_EXPR_CLEANUP): New macro.
9653
9654 2002-02-28  Steve Ellcey  <sje@cup.hp.com>
9655
9656         * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
9657         to take ptr_extend into account as third type of extension.
9658         (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
9659         fields used by SUBREG_PROMOTED_UNSIGNED_P.
9660         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
9661         (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
9662         * calls.c (precompute_arguments): Use new macro.
9663         (expand_call): Ditto.
9664         * combine.c (nonzero_bits): Ditto.
9665         (record_promoted_value): Ditto.
9666         * expr.c (store_expr): Ditto.
9667         (expand_expr): Ditto.
9668         * function.c (assign_parms): Ditto.
9669
9670 2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
9671
9672         * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
9673         override -shared and -shared-libgcc.
9674
9675 2002-02-28  David O'Brien  <obrien@FreeBSD.org>
9676
9677         * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
9678         of "ultrasparc".
9679         * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
9680         to be broken.
9681
9682 2002-02-28  Richard Henderson  <rth@redhat.com>
9683
9684         * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
9685         4 cycle latency from MM producers.
9686         (ia64_internal_sched_reorder): Likewise with pipeline flush.
9687
9688 2002-02-28  Jakub Jelinek  <jakub@redhat.com>
9689
9690         * mklibgcc.in: Don't use GNU make extension.
9691
9692 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
9693
9694         * c-parse.in (STATIC): New terminal.
9695         (scspec): New non-terminal.  Update productions accordingly.
9696         (program): Remove bogus ifc / end ifc.
9697         (array_declarator): Simplify production using STATIC.
9698
9699 2002-02-28  Jim Meyering  <meyering@lucent.com>
9700
9701         * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
9702         \a still means TARGET_BELL.
9703
9704 2002-02-28  Richard Henderson  <rth@redhat.com>
9705
9706         * haifa-sched.c (sched_emit_insn): New.
9707         (schedule_block): Use last_scheduled_insn to track last insn.
9708         * sched-int.h (sched_emit_insn): Prototype.
9709         * config/ia64/ia64.c (last_issued): Remove.
9710         (ia64_variable_issue): Don't set it.
9711         (nop_cycles_until): Use sched_emit_insn.
9712
9713 2002-02-28  Andrew MacLeod  <amacleod@redhat.com>
9714
9715         * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
9716         extended constants.
9717
9718 2002-02-28  Kazu Hirata  <kazu@hxi.com>
9719
9720         * config/h8300/h8300.c: Fix formatting.
9721         * config/h8300/h8300.h: Likewise.
9722
9723 2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
9724
9725         * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
9726         which may overwrite the high byte of the frame pointer.
9727
9728 2002-02-28  Bo Thorsen  <bo@suse.de>
9729
9730         * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
9731         (STARTFILE_SPEC): Add 64 bit files.
9732         (ENDFILE_SPEC): Likewise.
9733
9734 2002-02-28  Jason Merrill  <jason@redhat.com>
9735
9736         * c-decl.c (finish_function): Only warn about missing return
9737         statement with -Wreturn-type.
9738
9739 Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>
9740
9741         * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
9742
9743         * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
9744         PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
9745
9746 Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>
9747
9748         * basic-block.h (BB_REACHABLE): Renumber.
9749         (BB_DIRTY, BB_NEW): New flags.
9750         (clear_bb_flags): Declare.
9751         (update_life_info_in_dirty_blocks): Declare.
9752         * cfg.c (clear_bb_flags): New function.
9753         * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
9754         * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
9755         reorder_insns, emit_insn_after): Mark block as dirty.
9756         * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
9757         (update_life_info_in_dirty_blocks): New function.
9758         * recog.c (apply_change_group): Dirtify block.
9759
9760         * cse.c (cse_insn): Reorder emitting of jump insn to keep
9761         cfg consistent.
9762         * gcse.c (delete_null_pointer_checks): Likewise.
9763
9764         * toplev.c (dump_file_index): Move cse2 after bp,
9765         add DFI_null
9766         (dump_file_info): Similary.
9767         (rest_of_compilation): Avoid most of CFG rebuilds;
9768         do first if converision after null pointer checks, do cse2
9769         after branch prediction; avoid full liveness rebuild after
9770         initializing subregs.
9771         * invoke.texi (-d options): Document -du, renumber.
9772
9773         * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
9774         (notice_new_block): Do not set BB_UPDATE_LIFE.
9775         (try_forward_edges, merge_blocks_move_predecessor_nojumps,
9776          merge_blocks_move_successor_nojumps, merge_blocks,
9777          try_crossjump_to_edge): Likewise.
9778         (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
9779         * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
9780         * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
9781         (merge_of_block): Do not use life_data_ok.
9782         (find_if_case_1): Do not use SET_UPDATE_LIFE.
9783         (if_convert): Use BB_DIRTY mechanizm to update life.
9784         * lcm.c (optimize_mode_switching): Update
9785         update_life_info_in_dirty_blocks
9786
9787 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
9788
9789         * Makefile.in (integrate.o): Update.
9790         * c-decl.c (copy_lang_decl): Rename.
9791         * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
9792         * integrate.c: Include langhooks.h.
9793         (copy_decl_for_inlining): Update to use langhook.
9794         * langhooks-def.h (lhd_do_nothing_t,
9795         LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
9796         (LANG_HOOKS_INITIALIZER): Update.
9797         * langhooks.c (lhd_do_nothing_t): New.
9798         * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
9799         * tree.h (copy_lang_decl): Remove.
9800 objc:
9801         * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
9802
9803 2002-02-27  Andrew MacLeod  <amacleod@redhat.com>
9804
9805         * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
9806         POST_DEC, and POST_MODIFY.
9807
9808 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
9809
9810         * c-typeck.c (digest_init): Remove unused parameter; all
9811         callers changed.
9812
9813 2002-02-27  Geoffrey Keating  <geoffk@redhat.com>
9814
9815         * expmed.c (expand_shift): Correctly test for low part of a
9816         subreg.
9817
9818 2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>
9819
9820         * config/s390/s390.c (s390_chunkify_pool): Do not confuse
9821         insn UIDs with insn addresses.
9822
9823 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
9824
9825         * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
9826         c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
9827         cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
9828         builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
9829         gcc.c, toplev.c: Delete code implementing -traditional mode.
9830
9831         * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
9832         doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
9833         Document removal of -traditional mode for compilation, and
9834         remove documentation only relevant to that mode.
9835
9836         * config/nextstep.h, config/ptx4.h, config/svr4.h,
9837         config/convex/convex.h, config/d30v/d30v.h,
9838         config/i386/dgux.h, config/i386/osf1elf.h,
9839         config/i386/osfelf.h, config/i386/osfrose.h,
9840         config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
9841         config/m68k/hp310.h, config/m88k/dgux.h,
9842         config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
9843         config/m88k/m88k.h, config/m88k/openbsd.h,
9844         config/mips/abi64.h, config/mips/osfrose.h,
9845         config/mips/svr4-5.h, config/mips/svr4-t.h,
9846         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
9847         config/stormy16/stormy16.h: Remove all references to
9848         -traditional from target specs.  Delete all mention of the
9849         no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
9850         delete a couple of commented-out definitions of
9851         DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
9852         to -traditional.
9853
9854         * system.h: Poison TRADITIONAL_RETURN_FLOAT.
9855         * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
9856
9857 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
9858
9859         * mklibgcc.in: Don't use \n in a line subject to
9860         interpretation by echo.
9861
9862 2002-02-27  Graham Stott  <grahams@redhat.com>
9863
9864         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
9865         Constify NAME.
9866
9867         * loop.c (prescan_loop): Handle PARALLEL.
9868
9869         * unroll.c (loop_iterations): Return 0 if the add_val for
9870         a BIV is REG.
9871
9872         * final.c (output_operand_lossage): Constify PFX_STR.
9873
9874         * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
9875
9876 Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>
9877
9878         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
9879         * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
9880
9881 Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>
9882
9883         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
9884
9885 2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>
9886
9887         * cpplex.c (_cpp_lex_token): Handle directives in macro
9888         arguments.
9889         * cpplib.c (_cpp_handle_directive): Save and restore state
9890         if parsing macro args when entering a directive.
9891         * cppmacro.c (collect_args): No need to handle directives
9892         in macro arguments.
9893         (enter_macro_context, replace_args): Use the original macro
9894         definition in case it was redefined whilst collecting arguments.
9895 doc:
9896         * cpp.texi: Update.
9897
9898 2002-02-26  David Edelsohn  <edelsohn@gnu.org>
9899
9900         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
9901         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
9902         * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
9903         method on AIX.
9904         * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
9905         (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
9906         (load_toc_v4_PIC_2): Same.
9907
9908 2002-02-26  Alan Modra  <amodra@bigpond.net.au>
9909
9910         * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
9911
9912 2002-02-26  Richard Henderson  <rth@redhat.com>
9913
9914         * config/alpha/alpha.md (ashldi_se): Re-enable.
9915
9916 2002-02-26  Richard Henderson  <rth@redhat.com>
9917
9918         * config/alpha/alpha.c (alpha_encode_section_info): Examine
9919         MODULE_LOCAL_P; improve commentary.
9920
9921 2002-02-26  Zack Weinberg  <zack@codesourcery.com>
9922
9923         * doc/cpp.texi: Clarify documentation of relationship between
9924         #line and #include.
9925
9926 2002-02-26  Kazu Hirata  <kazu@hxi.com>
9927
9928         * config/h8300/h8300-protos.h: Update the prototype for
9929         compute_logical_op_length.  Add the prototype for
9930         compute_logical_op_cc.
9931         * config/h8300/h8300.c (compute_logical_op_length): Figure out
9932         code from operands.
9933         (compute_logical_op_cc): New.
9934         * config/h8300/h8300.md: Combine all the logical op patterns
9935         in HImode and SImode.  Use compute_logical_op_cc.
9936
9937 2002-02-26  Kelley Cook  <kelleycook@comcast.net>
9938
9939         * config/i386/i386.c (print_operand): Don't append ATT-style
9940         length suffixs to x87 opcodes when in Intel mode.
9941
9942 2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>
9943
9944         * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
9945         (init_emit_once): Update calls.
9946         * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
9947         (init_syntax_once): Prototype.
9948
9949 2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9950
9951         * pa-linux.h (LIB_SPEC): Update definition.
9952         * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
9953
9954 2002-02-26  Richard Henderson  <rth@redhat.com>
9955
9956         * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
9957         if we emitted a stop bit.
9958
9959 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
9960
9961         * configure.in (libgcc_visibility): Substitute.
9962         * configure: Rebuilt.
9963         * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
9964         defined symbols .hidden.
9965
9966 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
9967
9968         * attribs.c (c_common_attribute_table): Add visibility.
9969         (handle_visibility_attribute): New function.
9970         * varasm.c (assemble_visibility): New function.
9971         * output.h (assemble_visibility): Add prototype.
9972         * tree.h (MODULE_LOCAL_P): Define.
9973         * crtstuff.c (__dso_handle): Use visibility attribute.
9974         * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
9975         for MODULE_LOCAL_P symbols too.
9976         * config/ia64/ia64.c (ia64_encode_section_info): Handle
9977         MODULE_LOCAL_P symbols the same way as local symbols.
9978         Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
9979         into .sdata/.sbss by the user.
9980         * doc/extend.texi (Function Attributes): Document visibility
9981         attribute.
9982
9983 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
9984
9985         PR debug/5770
9986         * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
9987         STRING_CST initializer spanning the whole variable without
9988         embedded zeros.
9989         If expand_expr returned MEM, don't use it.
9990
9991 2002-02-26  Alexandre Oliva  <aoliva@redhat.com>
9992
9993         * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
9994         generate a die for the lexical block.
9995
9996 2002-02-26  Kazu Hirata  <kazu@hxi.com>
9997
9998         * config/h8300/h8300-protos.h: Add a prototype for
9999         compute_logical_op_length.
10000         * config/h8300/h8300.c (compute_logical_op_length): New.
10001         * config/h8300/h8300.md (anonymous logical patterns): Use
10002         compute_logical_op_length for length.
10003
10004 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
10005
10006         * dwarf2out.c (modified_type_die): Do not call type_main_variant
10007         for vectors.
10008         (gen_type_die): Same.
10009
10010         * attribs.c (handle_vector_size_attribute): Set debug information.
10011
10012 2002-02-26  Daniel Egger  <degger@fhm.edu>
10013
10014         * config/rs6000/rs6000.md: Swap define_insn attributes to
10015         fix incorrect generation of merge high instructions instead
10016         of merge low.
10017
10018 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
10019
10020         * c-typeck.c (really_start_incremental_init): Use
10021         bitsize_zero_node for vectors.
10022
10023 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
10024
10025         * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
10026         ("*set_vrsave_internal"): Same.
10027
10028 2002-02-25  Richard Henderson  <rth@redhat.com>
10029
10030         * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
10031         in EXPAND_SUM case.  Use host_integerp/tree_low_cst.
10032
10033 2002-02-25  Jakub Jelinek  <jakub@redhat.com>
10034
10035         PR target/5755
10036         * config/i386/i386.c (ix86_return_pops_args): Only pop
10037         fake structure return argument if it was passed on the stack.
10038
10039 2002-02-25  Jason Merrill  <jason@redhat.com>
10040
10041         * attribs.c (decl_attributes): Also re-layout PARM_DECL and
10042         RESULT_DECL.
10043
10044 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
10045
10046         * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
10047         link with shared_name only.
10048         * doc/invoke.texi (Link Options): Document new behavior.
10049
10050 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
10051
10052         * c-typeck.c (push_init_level): Handle vectors.
10053
10054 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
10055
10056         * config/sparc/sparc.c (const64_high_operand): Zero-extend
10057         operands of SPARC_SETHI_P.
10058         (input_operand): Likewise.
10059         (sparc_emit_set_const32): Likewise.
10060         * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
10061         (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
10062         (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
10063         * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
10064         (movdi_insn_sp64_vis): Likewise.
10065         (movdi split, movdf split): Use SETHI32.
10066         * doc/md.texi: Document SPARC constraints L, M and N.
10067
10068 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
10069
10070         * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
10071         ("*set_vrsave_internal"): use mfspr for Darwin.
10072
10073         * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
10074         gen_get_vrsave_internal.
10075
10076 Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10077
10078         * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
10079
10080 2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>
10081
10082         * cpplex.c (cpp_interpret_charconst): Get signedness or
10083         otherwise of wide character constants correct.
10084         * cppexp.c (lex): Get signedness of wide charconsts correct.
10085
10086 Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10087
10088         * optabs.c (widen_operand): Only call convert_modes for
10089         promoted SUBREG if signedness matches.
10090         * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
10091
10092 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
10093
10094         * cpplib.c (glue_header_name): Use local buffer to build up
10095         header name.
10096
10097 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
10098
10099         * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
10100
10101 2002-02-23  Kazu Hirata  <kazu@hxi.com>
10102
10103         * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
10104         H8/300[HS] separately.
10105         * config/h8300/h8300.md: Remove the early clobber constraint
10106         from bit field patterns.
10107
10108 2002-02-23  Kazu Hirata  <kazu@hxi.com>
10109
10110         * config/h8300/h8300.md (mulqihi3): Tighten predicates to
10111         register_operand.
10112         (mulhisi3): Likewise.
10113         (umulqisi3): Likewise.
10114         (umulhisi3): Likewise.
10115
10116 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
10117
10118         * cppinit.c (output_deps): Correct test for stdout output.
10119         (init_dependency_output): Cure warning.
10120
10121 Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10122
10123         * expr.c (store_expr): When converting expression to promoted
10124         equivalent type, allow using SUBREG_REG of TARGET as the target
10125         of the expansion of EXP.
10126         * loop.c (basic_induction_var, case SUBREG): Always look inside.
10127         * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
10128         (alpha_emit_set_const): Handle SImode when can't make new pseudos.
10129         (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
10130         * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
10131
10132 2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>
10133
10134         * doc/contribute.texi, doc/extend.texi, doc/install.texi,
10135         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
10136         doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
10137
10138 2002-02-23  Jakub Jelinek  <jakub@redhat.com>
10139
10140         PR optimization/5747
10141         * loop.c (scan_loop): Update reg info if move_movables created new
10142         pseudos.
10143
10144 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
10145
10146         * gcc.c (init_gcc_spec): Revert last change.
10147
10148 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
10149
10150         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
10151         gpc_reg_operand constraint.
10152
10153 2002-02-23  Alan Modra  <amodra@bigpond.net.au>
10154
10155         * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
10156         Simplify comparison of `low'.
10157         (add_operand): Fix formatting.
10158         (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
10159         (mask_operand): Disallow mask to wrap in 64-bit mode.
10160         (rs6000_stack_info): Remove redundant test setting push_p.
10161         (output_toc): Fix formatting.
10162         * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
10163         cc_reg_not_cr0_operand constraint.
10164         (booldi3, boolcdi3 splitters): Same.
10165
10166 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
10167
10168         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
10169
10170 2002-02-22  David Edelsohn  <edelsohn@gnu.org>
10171
10172         * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
10173         gcc invoked with -shared-libgcc.
10174
10175 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
10176
10177         PR c++/5748
10178         * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
10179         decl if any of elements was TREE_USED.
10180
10181 2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
10182
10183         * config/sparc/sol2.h: Don't include sys/mman.h.
10184         * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
10185         (arith_4096_operand): Don't throw high bits away.
10186         (const64_operand): Take sign extension of CONST_INTs into account.
10187         (const64_high_operand, sparc_emit_set_const32): Likewise.
10188         (GEN_HIGHINT64): Likewise.
10189         (sparc_emit_set_const64_quick1): Likewise.
10190         (const64_is_2insns): Likewise.
10191         (print_operand): Use trunc_int_for_mode for sign extension.
10192         * config/sparc/sparc.h (SMALL_INT32): Likewise.
10193         * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
10194         chars.  Assume CONST_INT is already properly sign-extended.
10195         (movdi split): Sign-extend each SImode part.
10196         (andsi3 split): Don't mask high bits off, so that result
10197         remains properly sign-extend.
10198         (iorsi3 split): Likewise.
10199         (xorsi3 split): Likewise.
10200
10201 2002-02-22  Richard Sandiford  <rsandifo@redhat.com>
10202
10203         * fold-const.c (fold): Fix typo in comments.
10204
10205 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
10206
10207         * Makefile.in (langhooks.o): Update dependencies.
10208
10209 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
10210
10211         * langhooks.c: Include flags.h.
10212
10213 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
10214
10215         * testsuite/gcc.dg/attr-alwaysinline.c: New.
10216
10217         * c-common.c (c_common_post_options): Set inline trees by
10218         default.
10219
10220         * doc/extend.texi (Function Attributes): Document always_inline
10221         attribute.
10222         Update documentation about inlining when not optimizing.
10223
10224         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
10225
10226         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
10227         unless DECL_ALWAYS_INLINE.
10228
10229         * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
10230         unless DECL_ALWAYS_INLINE.
10231         (c_disregard_inline_limits): Disregard if always_inline set.
10232
10233         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
10234         Disregard if always_inline set.
10235         (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
10236         unless DECL_ALWAYS_INLINE.
10237
10238         * attribs.c (handle_always_inline_attribute): New.
10239         (c_common_attribute_table): Add always_inline.
10240
10241         * config/rs6000/altivec.h: Add prototypes for builtins
10242         requiring the always_inline attribute.
10243
10244 2002-02-21  Eric Christopher  <echristo@redhat.com>
10245
10246         * expmed.c (store_bit_field): Try to simplify the subreg
10247         before generating a new one when when the mode size of
10248         value is less than maxmode.
10249
10250 2002-02-21  Richard Henderson  <rth@redhat.com>
10251
10252         * emit-rtl.c (offset_address): Use simplify_gen_binary rather
10253         than gen_rtx_PLUS to form the sum.
10254         * explow.c (force_reg): Rearrange to not allocate new pseudo
10255         when force_operand returns a register.
10256         * expr.c (expand_assignment): Allow offset_rtx expansion to
10257         return a sum.  Do not force addresses into registers.
10258         (expand_expr): Likewise.
10259         * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
10260         to canonicalize arithmetic that didn't simpify.
10261         (simplify_plus_minus): New argument force; update
10262         all callers.  Don't split CONST unless we can do something with it,
10263         and wouldn't lose the constness of the operands.
10264
10265         * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
10266         that we generated earlier.
10267
10268 2002-02-21  Tom Tromey  <tromey@redhat.com>
10269
10270         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
10271         (output_line_info): Use constant `1', with a long explanatory
10272         comment.
10273         * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
10274
10275 Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
10276
10277         * jump.c (redirect_jump): If old label has no UID, don't try to
10278         delete it.
10279
10280 Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>
10281
10282         * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
10283         If input is constant, do shifts at compile time.
10284
10285 2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>
10286
10287         * doc/extend.texi: Fix some more overfull hboxes.
10288
10289 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
10290
10291         PR optimization/4994
10292         * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
10293         register moves.
10294
10295 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
10296
10297         PR c++/4574
10298         * expr.h (expand_and): Add mode argument.
10299         * expmed.c (expand_and): Add mode argument.
10300         (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
10301         * expr.c (store_field, expand_expr, do_store_flag): Likewise.
10302         * except.c (expand_builtin_extract_return_addr): Likewise.
10303         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
10304         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
10305         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
10306         Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
10307         * config/c4x/c4x.md: Use GEN_INT (x) instead of
10308         gen_rtx (CONST_INT, VOIDmode, x).
10309
10310 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
10311
10312         PR c/4697:
10313         * stmt.c (warn_if_unused_value): Move side effects test once more.
10314
10315 2002-02-20  Torbjorn Granlund  <tege@swox.com>
10316
10317         * config/avr/avr.md: Add more patterns for mized-mode add and subtract
10318         (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
10319
10320 Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>
10321
10322         * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
10323         SUBREG or ZERO_EXTEND.
10324
10325 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
10326
10327         * sh.h (current_function_anonymous_args): Remove.
10328         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
10329         of current_function_varargs and current_function_stdarg is set.
10330         * sh.c (sh_expand_prologue): Check current_function_varargs /
10331         current_function_stdarg / TARGET_SH5 instead of
10332         current_function_anonymous_args.
10333
10334         * sh64.h (TARGET_VERSION): Define.
10335
10336 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
10337
10338         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
10339         VRSAVE_REGNO on TARGET_ALTIVEC.
10340
10341 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
10342
10343         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
10344         bits of SImode const_int.
10345         (includes_rshift_p): Likewise.
10346         (print_operand): Call mask_operand and mask64_operand with correct
10347         mode.
10348         (rs6000_output_function_epilogue): Pad traceback table to word.
10349         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
10350         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
10351         mask64_operand with correct mode.
10352         (FUNCTION_ARG_REGNO_P): Correct parentheses.
10353
10354 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
10355
10356         PR debug/4461
10357         * varasm.c (get_pool_constant_mark): New.
10358         * rtl.h (get_pool_constant_mark): Add prototype.
10359         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
10360         be represented if it has not been output.
10361
10362 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
10363
10364         * combine.c (do_SUBST): Sanity check substitutions of
10365         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
10366         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
10367         CONST_INT into its operand.
10368         (known_cond): Likewise, for ZERO_EXTEND.
10369         * simplify-rtx.c (simplify_unary_operation): Fix condition to
10370         allow for simplification of wide modes.  Reject CONST_INTs in
10371         ZERO_EXTEND when their actual mode is not given.
10372
10373 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
10374
10375         * c-decl.c (pushdecl): If no global declaration is found for an
10376         extern declaration in block scope, try a limbo one.
10377
10378 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
10379
10380         PR c++/4401
10381         * c-common.c (pointer_int_sum): Moved from...
10382         * c-typeck.c (pointer_int_sum): ...here.
10383         * c-common.h (pointer_int_sum): Add prototype.
10384
10385 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
10386
10387         PR c++/5713
10388         * c-decl.c (duplicate_decls): Return 0 if issued error about
10389         redeclaration.
10390
10391 2002-02-20  Roger Sayle  <roger@eyesopen.com>
10392             Jakub Jelinek  <jakub@redhat.com>
10393
10394         PR c/4389
10395         * tree.c (host_integerp): Ensure that the constant integer is
10396         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
10397         when pos is zero or non-zero respectively.  Clarify comment.
10398         * c-format.c (check_format_info_recurse): Fix host_integerp
10399         usage; the pos argument should be zero when assigning to a
10400         signed HOST_WIDE_INT.
10401
10402 2002-02-20  Richard Henderson  <rth@redhat.com>
10403
10404         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
10405         of the operand, rather than assuming TImode.
10406         (ix86_expand_binop_builtin): Cope with commutative patterns
10407         using nonimmediate_operand for both operands.
10408         (ix86_expand_timode_binop_builtin): Likewise.
10409         (ix86_expand_store_builtin): Validate operand 1.
10410         (ix86_expand_unop1_builtin): Likewise.
10411
10412 2002-02-20  Philip Blundell  <philb@gnu.org>
10413
10414         PR 5705
10415         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
10416
10417 2002-02-20  Richard Henderson  <rth@redhat.com>
10418
10419         PR c/5615
10420         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
10421
10422 2002-02-20  Tom Tromey  <tromey@redhat.com>
10423
10424         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
10425         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
10426         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
10427         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
10428         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
10429         unconditionally.
10430
10431 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
10432
10433         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
10434           for (const_int 0) in X not just INTVAL.
10435
10436 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
10437
10438         * doc/extend.texi: Avoid or reduce overfull hboxes.
10439
10440 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
10441
10442         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
10443         operations if the field does not start at a mode boundary.
10444
10445 2001-02-20      Joel Sherrill <joel@OARcorp.com>
10446
10447         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
10448         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
10449         Also done for -Acpu and -Amachine.
10450
10451 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
10452
10453         * cppinit.c (init_dependency_output): Take deps output file
10454         from -o if none given with -MF.  Suppress normal output.
10455         * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
10456         * doc/cpp.texi, doc/invoke.texi: Update.
10457
10458 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
10459
10460         * toplev.c (output_quoted_string): Write unprintable
10461         characters with octal escapes.
10462
10463 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
10464
10465         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
10466         really_call_used[VRSAVE_REGNO] if not Altivec.
10467
10468 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
10469
10470         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
10471         MODE_MASK.
10472         (constant_pool_expr_1): Fix formatting.
10473         (rs6000_legitimize_reload_address): Likewise.
10474
10475 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10476
10477         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
10478         now that we have one.
10479
10480 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
10481
10482         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
10483         end of first block of bitfields (which was only seven bits);
10484         rename dummy to unused_1; remove comment which is no longer true.
10485
10486 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
10487
10488         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
10489
10490 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
10491
10492         PR 5399
10493         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
10494         if generating PIC.
10495
10496         PR 5054
10497         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
10498         arm_is_longcall_p rather than inspecting call-type cookie
10499         directly.
10500         (call_value_insn) [TARGET_THUMB]: Likewise.
10501
10502 2002-02-19  Graham Stott  <grahams@redhat.com>
10503
10504         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
10505
10506 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
10507
10508         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
10509         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
10510         (FP_SAVE_INLINE): Delete.
10511
10512         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
10513         * config/rs6000/eabi.asm: Remove ABI save restore routines.
10514         * config/rs6000/t-ppccomm: Build crtsavres.o.
10515         * config/rs6000/crtsavres.asm: New file.
10516
10517 2002-02-19  Philip Blundell  <philb@gnu.org>
10518
10519         * config/arm/arm.c (use_return_insn): Don't reject interrupt
10520         functions.
10521         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
10522         (output_return_instruction): Allow interrupt functions to return with
10523         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
10524         (arm_expand_prologue): Subtract 4 before stacking LR in an
10525         interrupt function.
10526
10527 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
10528
10529         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
10530         decl, not just FUNCTION_DECL.
10531         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
10532         (arm_assemble_integer): Likewise.
10533         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
10534         marked local.
10535
10536 2002-02-19  matthew green  <mrg@eterna.com.au>
10537
10538         * config.gcc (sparc-*-netbsdelf*): Enable target.
10539         (sparc64-*-netbsd*): New target.
10540         * config/sparc/netbsd-elf.h: New file.
10541         * config/sparc/t-netbsd64: New file.
10542
10543 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
10544
10545         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
10546
10547 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
10548
10549         * doc/invoke.texi: explicitly list the style guidelines that
10550         -Weffc++ checks for.
10551
10552 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
10553
10554         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
10555
10556 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
10557
10558         PR other/5718
10559         * gcc.c (cpp_unique_options): Treat -o as indicating object file
10560         only if not -E.  If -E, pass -o through to the preprocessor.
10561
10562 2002-02-19  Kazu Hirata  <kazu@hxi.com>
10563
10564         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
10565         register number with an appropriate macro.
10566
10567 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
10568
10569         * doc/rtl.texi (Constants): Close @code tag.
10570
10571 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
10572
10573         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
10574         ("mmx_uavgv4hi3"): Same.
10575         ("pmulhrwv4hi3"): Same.
10576
10577         * tree-inline.c (walk_tree): Handle vectors.
10578
10579         * c-common.c (constant_expression_warning): Handle vectors.
10580         (overflow_warning): Same.
10581
10582         * sched-deps.c (sched_analyze_2): Handle vectors.
10583
10584         * rtlanal.c (rtx_unstable_p): Handle vectors.
10585         (rtx_varies_p): Same.
10586         (count_occurrences): Same.
10587         (regs_set_between_p): Same.
10588         (modified_between_p): Same.
10589         (modified_in_p): Same.
10590         (volatile_insn_p): Same.
10591         (volatile_refs_p): Same.
10592         (side_effects_p): Same.
10593         (may_trap_p): Same.
10594         (inequality_comparisons_p): Same.
10595         (replace_regs): Same.
10596         (computed_jump_p_1): Same.
10597
10598         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
10599         argument.
10600         (inner_mode_array): New.
10601         (copy_rtx): Handle vectors.
10602         (copy_most_rtx): Same.
10603         (rtx_equal_p): Same.
10604         (get_mode_alignment): Adjust for vectors.
10605
10606         * resource.c (mark_referenced_resources): Handle vectors.
10607         (mark_set_resources): Same.
10608
10609         * reload1.c (eliminate_regs): Handle vectors.
10610         (elimination_effects): Same.
10611         (scan_paradoxical_subregs): Same.
10612
10613         * reload.c (subst_reg_equivs): Handle vectors.
10614
10615         * regrename.c (scan_rtx): Handle vectors.
10616
10617         * regclass.c (reg_scan_mark_refs): Handle vectors.
10618
10619         * recog.c (find_single_use_1): Handle vectors.
10620
10621         * local-alloc.c (equiv_init_varies_p): Handle vectors.
10622         (contains_replace_regs): Same.
10623         (memref_referenced_p): Same.
10624
10625         * integrate.c (copy_rtx_and_substitute): Handle vectors.
10626         (subst_constants): Same.
10627
10628         * genattrtab.c (attr_copy_rtx): Handle vectors.
10629         (encode_units_mask): Same.
10630         (clear_struct_flag): Same.
10631         (count_sub_rtxs): Same.
10632
10633         * gcse.c (want_to_gcse_p): Handle vectors.
10634         (oprs_unchanged_p): Same.
10635         (hash_expr_1): Same.
10636         (oprs_not_set_p): Same.
10637         (expr_killed_p): Same.
10638         (compute_transp): Same.
10639         (store_ops_ok): Same.
10640
10641         * function.c (purge_addressof_1): Do not allow paradoxical subregs
10642         of vectors.
10643         (fixup_var_refs_1): Same.
10644         (instantiate_virtual_regs_1): Same.
10645
10646         * fold-const.c (operand_equal_p): Handle vectors.
10647         (fold): Same.
10648         (rtl_expr_nonnegative_p): Same.
10649
10650         * flow.c (mark_used_regs): Handle vectors.
10651
10652         * df.c (df_uses_record): Handle vectors.
10653
10654         * cselib.c (cselib_subst_to_values): Handle vectors.
10655         (cselib_mem_conflict_p): Same.
10656         (hash_rtx): Same.
10657
10658         * cse.c (canon_reg): Handle vectors.
10659         (fold_rt): Same.
10660         (cse_process_notes): Same.
10661         (count_reg_usage): Same.
10662         (canon_hash): Same.
10663
10664         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
10665
10666         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
10667
10668         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
10669         (gen_rtx): Handle CONST_VECTOR.
10670         (gen_const_vector_0): New.
10671         (copy_rtx_if_shared): CONST_VECTORs can be shared.
10672         (reset_used_flags): Same.
10673         (copy_insn_1): Same.
10674         (initializer_constant_valid_p): Handle VECTOR_CST.
10675
10676         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
10677
10678         * doc/rtl.texi (Constants): Document const_vector.
10679         (CONST0_RTX): Update for vectors.
10680         (RTL sharing): Same.
10681
10682         * print-tree.c (print_node): Add case for VECTOR_CST.
10683
10684         * tree.h (TREE_VECTOR_CST_ELTS): New.
10685         (struct tree_vector): New.
10686         (union tree_node): Add vector node.
10687         (build_vector): Add prototype.
10688
10689         * tree.def (VECTOR_CST): New.
10690
10691         * tree.c (build_vector): New.
10692
10693         * expmed.c (make_tree): Handle CONST_VECTOR.
10694
10695         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
10696         (CONST_VECTOR_ELT): New.
10697         (CONST_VECTOR_NUNITS): New.
10698
10699         * machmode.h (GET_MODE_INNER): New.
10700         (DEF_MACHMODE): Accept 8th arg.
10701
10702         * machmode.def: Add 8th argument for vector inner mode.
10703         Add inner vector modes for vectors.
10704
10705         * rtl.def (VEC_CONST): Remove.
10706         (CONST_VECTOR): New.
10707
10708         * expr.c (clear_storage): Allow vectors.
10709         (is_zeros_p): Handle VECTOR_CST.
10710
10711         * varasm.c (output_constant_pool): Handle vectors.
10712         (rtx_const): Add veclo and vechi fields.
10713         (kind): Add RTX_VECTOR.
10714         (decode_rtx_const): Add case for vector.
10715
10716         * config/rs6000/rs6000-protos.h: Add zero_constant.
10717
10718         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
10719         constants.  Force easy vector constants into memory.
10720         (easy_vector_constant): New.
10721         (emit_easy_vector_constant): New.
10722         (rs6000_legitimize_reload_address): Do not generate bad reloads on
10723         darwin.
10724
10725         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
10726         instruction does.
10727         ("altivec_lvxl"): Same.
10728         (altivec_lvebx): Same.
10729         (altivec_lvehx): Same.
10730         (altivec_lvewx): Same.
10731         ("*movv4si_const0"): New.
10732         ("*movv4sf_const0"): New.
10733         ("*movv8hi_const0"): New.
10734         ("*movv16qi_const0"): New.
10735
10736 2002-02-18  Kazu Hirata  <kazu@hxi.com>
10737
10738         * config/h8300/h8300.c (notice_update_cc): Use
10739         cc_status.value2.
10740
10741 2002-02-18  Kazu Hirata  <kazu@hxi.com>
10742
10743         * config/h8300/h8300.md (divmod patterns): Change the
10744         constraints for operands[1] to register_operand.
10745
10746 2002-02-18  Kazu Hirata  <kazu@hxi.com>
10747
10748         * config/h8300/h8300-protos.h: Remove the prototype for
10749         p_operand.
10750         * config/h8300/h8300.c (p_operand): Remove.
10751         * config/h8300/h8300.md: Replace p_operand with
10752         const_int_operand.
10753
10754 2002-02-18 Philip Blundell <pb@nexus.co.uk>
10755
10756         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
10757         comment.
10758         (output_return_instruction): Allow use of LDR to unstack
10759         return addresss even for interrupt handlers or when
10760         interworking.  If compiling for ARMv5, use interworking-safe
10761         return instructions by default.  Remove duplicated code and
10762         lengthy "strcat" sequences.
10763
10764 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10765
10766         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
10767         (LINK_EH_SPEC): Define.
10768         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
10769
10770 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
10771
10772         * config/s390/s390.c (s390_emit_prologue): Do not set the
10773         frame_related flag for call-clobbered registers.
10774
10775 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
10776
10777         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
10778         (construct_container): Fix handling of SSE operands.
10779         (ix86_expand_builtin): Fix handling of 64bit pointers.
10780         (mmx_maskmovq_rex): New pattern.
10781
10782 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
10783
10784         * regrename.c (kill_set_value): Handle subregs properly.
10785
10786 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
10787
10788         * objc/objc-act.c (handle_impent): Remove leading '*'
10789         from objc_class_name.
10790
10791 2002-02-17  Richard Henderson  <rth@redhat.com>
10792
10793         * config/alpha/alpha.c (some_small_symbolic_operand,
10794         some_small_symbolic_operand_1, split_small_symbolic_operand,
10795         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
10796         Handle small SYMBOL_REFs anywhere, not just inside memories.
10797         * config/alpha/alpha-protos.h: Update.
10798         * config/alpha/alpha.h (PREDICATE_CODES): Update.
10799         * config/alpha/alpha.md (small symbolic operand splitter): Update.
10800
10801 2002-02-17  Roland McGrath  <roland@frob.com>
10802
10803         * config.gcc (powerpc-*-gnu-gnualtivec*,
10804         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
10805         * config/rs6000/gnu.h: New file.
10806         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
10807         Grok "gnu" in rs6000_abi_name.
10808         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
10809         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
10810         Grok -mcall-gnu analogous to -mcall-linux et al.
10811         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
10812         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
10813         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
10814
10815 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
10816
10817         PR c/3444:
10818         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
10819         shortening.
10820
10821 2002-02-17  Philipp Thomas  <pthomas@suse.de>
10822
10823         * config/cris/cris.h: Undefine STARTFILE_SPEC and
10824         ENDFILE_SPEC before (re)defining them.
10825
10826 2002-02-17  Kazu Hirata  <kazu@hxi.com>
10827
10828         * config/h8300/h8300.c: Fix formatting.
10829         * config/h8300/h8300.h: Likewise.
10830
10831 2002-02-17  Philipp Thomas  <pthomas@suse.de>
10832
10833         * doc/tm.texi: Explain why empty strings should not be
10834         marked for translation.
10835
10836 2002-02-17  Philipp Thomas  <pthomas@suse.de>
10837
10838         * final.c (output_operand_lossage): Changed to accept
10839         printf style arguments. Change calls where necessary.
10840         * output.h (output_operand_lossage): Change declaration
10841         accordingly. Update copyright.
10842         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
10843         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
10844         Update copyright date where necessary.
10845
10846         * config/i386/i386.c (print_operand): Likewise. Remove use of
10847         sprintf.
10848
10849         * config/cris/cris.c (cris_operand_lossage): Likewise.
10850         Rename parameter so that exgettext recognizes it as
10851         translatable message.
10852         (LOSE_AND_RETURN): Rename parameter to msgid.
10853
10854 2002-02-17  Kazu Hirata  <kazu@hxi.com>
10855
10856         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
10857         hard coded register number with an appropriate macro.
10858         (HARD_REGNO_MODE_OK): Likewise.
10859         (ARG_POINTER_REGNUM): Likewise.
10860         (STATIC_CHAIN_REGNUM): Likewise.
10861         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
10862         * config/h8300/h8300.md (define_constants): Define more
10863         register numbers.
10864
10865 2002-02-17  Philipp Thomas  <pthomas@suse.de>
10866
10867         * config/i386/i386.h: Don't mark empty strings for translation.
10868
10869 2002-02-16  H.J. Lu <hjl@gnu.org>
10870
10871         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
10872
10873 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
10874
10875         * cppinit.c (merge_include_chains): Check for brack being
10876         NULL before attempting to merge it with qtail.
10877
10878 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
10879
10880         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
10881         DBX_DEBUG.
10882
10883 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10884
10885         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
10886
10887 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10888
10889         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
10890         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
10891         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
10892
10893 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10894
10895         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
10896         now only if !TARGET_FIX.
10897         (*movsi_nt_vms_fix): New pattern.
10898
10899 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
10900
10901         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
10902         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
10903         (alpha_sa_mask, alpha_sa_size): Reflect above change.
10904         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
10905         (alpha_start_function, alpha_expand_epilogue): Likewise.
10906         (unicosmk_gen_dsib): Likewise.
10907
10908 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10909
10910         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
10911
10912 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
10913
10914         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
10915         check_and_change_labels, s390_final_chunkify): Delete.
10916         (s390_split_branches, s390_chunkify_pool): New functions.
10917         (s390_function_prologue): Call them.
10918
10919         * config/s390/s390.h (S390_REL_MAX): Delete.
10920         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
10921
10922         * config/s390/s390.md (cjump, icjump, jump): Fix length
10923         attribute calculation.
10924
10925
10926 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
10927
10928         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
10929         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
10930
10931 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10932
10933         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
10934         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
10935         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
10936
10937 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
10938
10939         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
10940
10941 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
10942
10943         * reload.c (find_dummy_reload): Check that an output register
10944         is valid for its mode.
10945
10946 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
10947
10948         * combine.c (known_cond): After replacing the REG of a SUBREG, try
10949         to simplify it.
10950
10951         * function.c (assign_parms): Demote promoted argument passed by
10952         transparent reference.
10953
10954 2001-02-14      Joel Sherrill <joel@OARcorp.com>
10955
10956         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
10957         -Acpu() and -Amachine() to eliminate warnings.
10958
10959 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
10960
10961         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
10962
10963 2002-02-14  Kazu Hirata  <kazu@hxi.com>
10964
10965         * config/h8300/h8300-protos.h: Update the prototype for
10966         const_costs.
10967         * config/h8300/h8300.c (const_costs): Treat SET as a little
10968         more expensive operation.
10969         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
10970         reference to const_costs.
10971
10972 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
10973
10974         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
10975
10976 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
10977
10978         PR c/5503:
10979         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
10980         use arguments from newtype.
10981
10982 2002-02-13  Eric Christopher  <echristo@redhat.com>
10983
10984         * config/mips/mips.c (override_options): Add check for march/mipsX
10985         on the same command line. Fix error message in cpu processing.
10986         Remove architecture and ISA checks.
10987
10988 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
10989
10990         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
10991
10992         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
10993
10994 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
10995
10996         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
10997         alternatives.
10998         ("*movv8hi_internal1"): Same.
10999         ("*movv16qi_internal1"): Same.
11000         ("*movv4sf_internal1"): Same.
11001
11002         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
11003         not push_reload for altivec modes.
11004
11005 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
11006
11007         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
11008         all RTEMS targets including removal of #includes from config/*/rtems*.h
11009         file and adding them to tm_file setting. Added xm_defines=POSIX to
11010         many targets.
11011         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
11012         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
11013         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
11014         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
11015         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
11016         config/m68k/rtemself.h: Ditto.
11017         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
11018         config/mips/rtems64.h: Ditto.
11019         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
11020         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
11021         Ditto.
11022         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
11023         config/sparc/rtemself.h: Ditto.
11024         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
11025         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
11026         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
11027         more like arm-elf.
11028         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
11029         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
11030         target made more similar to i386-elf.
11031         * config/i386/t-rtems-i386: Added soft float support and multilibs.
11032         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
11033         be similar to config/m68k/t-m68kelf.
11034         * gthr-rtems.h: Encapsulate with extern "C" for C++.
11035
11036 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
11037
11038         * regmove.c (kill_value): Handle subregs.
11039
11040 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
11041
11042         * i386.md (mul patterns): Allow memory operand to be first;
11043         add expanders where needed; fix constraints.
11044         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
11045         Allow memory operand to be the first.
11046
11047         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
11048         operands.
11049
11050 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
11051
11052         PR c/5681:
11053         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
11054         GET_MODE (x).
11055
11056 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
11057
11058         PR optimization/5547:
11059         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
11060         all valid IA-32 address modes involving non-scaled %ebx and
11061         GOT/GOTOFF as displacement.
11062
11063 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
11064
11065         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
11066         after emitting ltorg insns.
11067
11068         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
11069         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
11070         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
11071         *abssf2): Fix "op_type" attribute.
11072
11073 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
11074
11075         * mkconfig.sh: Avoid using a subshell redirect.
11076         ($output.T): Change to $(output)T.
11077         (ENABLE_NLS): Remove unneeded undef.
11078
11079         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
11080         * config/alpha/x-vms (libsubdir): Define.
11081
11082         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
11083         register frame procedures. Optimize retrieving context.
11084
11085         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
11086         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
11087         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
11088
11089 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11090
11091         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
11092         Make same change as for find_base_value.
11093
11094 2002-02-13  Kazu Hirata  <kazu@hxi.com>
11095
11096         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
11097         of QImode and SImode.
11098
11099 2002-02-13  Kazu Hirata  <kazu@hxi.com>
11100
11101         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
11102         length computation of movsi.
11103         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
11104
11105 2002-02-13  Kazu Hirata  <kazu@hxi.com>
11106
11107         * config/h8300/h8300.md (subqi3): Tighten the predicate for
11108         operands[2] to register_operand.
11109
11110 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
11111
11112         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
11113
11114 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
11115
11116         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
11117         for altivec_lvx* and altivec_stvx*.
11118         ("*movv4si_internal"): Add constraint for loading from GPRs.
11119         ("*movv8hi_internal1"): Same.
11120         ("*movv16qi_internal1"): Same.
11121         ("*movv4sf_internal1"): Same.
11122
11123         * config/rs6000/rs6000.c (altivec_register_operand): New.
11124
11125         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
11126         altivec_register_operand.
11127
11128 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
11129
11130         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
11131         handle SYMBOL_REF.
11132
11133 2002-02-13  Stan Shebs  <shebs@apple.com>
11134
11135         * c-typeck.c (digest_init): Handle vectors.
11136         (really_start_incremental_init): Same.
11137         (pop_init_level): Same.
11138         (process_init_element): Same.
11139
11140         * varasm.c (output_constant): Same.
11141
11142         * expr.c (clear_storage): Same.
11143         (store_constructor): Same.
11144
11145 2002-02-12  Eric Christopher  <echristo@redhat.com>
11146
11147         * explow.c (hard_function_value): Add comment explaining
11148         signed/unsigned comparison.
11149
11150 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
11151
11152         * jump.c (never_reached_warning): Add finish argument.
11153         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
11154         real insn after end.
11155         * rtl.h (never_reached_warning): Adjust prototype.
11156         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
11157         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
11158         never_reached_warning.
11159
11160 2002-02-12  Graham Stott  <grahams@redhat.com>
11161
11162         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
11163
11164 2002-02-12  Kazu Hirata  <kazu@hxi.com>
11165
11166         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
11167         logical shifts on H8/300.
11168         (shift_alg_si): Improve several shifts on H8/300.
11169         (get_shift_alg): Likewise.
11170
11171 2002-02-12  Graham Stott  <grahams@redhat.com>
11172
11173         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
11174
11175 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11176
11177         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
11178         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
11179
11180 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
11181
11182         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
11183         non-CONST_INT through default_assemble_integer.
11184         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
11185         <case 8>: Abort for CONST_DOUBLE.
11186
11187 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11188
11189         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
11190         is specified.
11191         * config/pa/pa-linux.h (LIB_SPEC): Delete.
11192         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
11193
11194 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
11195
11196         * config/stormy16/stormy16.md (zero_extendqihi2): New.
11197
11198 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
11199
11200         * regrename.c (regrename_optimize): Don't accept a
11201         part-clobbered register if the replaced register is not part
11202         clobbered.
11203
11204         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
11205         take padding into account when computing the argument value.
11206
11207         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
11208
11209         * combine.c (try_combine): Apply substitutions in
11210         CALL_INSN_FUNCTION_USAGE too.
11211
11212 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
11213
11214         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
11215         __builtin_altivec_abs*.
11216         (bdesc_abs): New.
11217
11218         * config/rs6000/rs6000.h (rs6000_builtins): Add
11219         ALTIVEC_BUILTIN_ABS*.
11220
11221         * config/rs6000/altivec.h: Use const char for builtins expecting
11222         literals.
11223         (vec_abs): New versions for C and C++.
11224         (vec_abss): Same.
11225
11226 2002-02-10  Kazu Hirata  <kazu@hxi.com>
11227
11228         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
11229         using Pmode.
11230
11231 2002-02-10  Kazu Hirata  <kazu@hxi.com>
11232
11233         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
11234         constant definition from h8300.md.
11235         (FRAME_POINTER_REGNUM): Likewise.
11236         * config/h8300/h8300.md (define_constants): Add FP_REG.
11237
11238 2002-02-10  Kazu Hirata  <kazu@hxi.com>
11239
11240         * config/h8300/h8300.c (print_operand): Remove redundant code.
11241
11242 2002-02-10  Kazu Hirata  <kazu@hxi.com>
11243
11244         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
11245         * config/h8300/h8300.c (byte_reg): Make it static.
11246
11247 2002-02-10  Richard Henderson  <rth@redhat.com>
11248
11249         PR c/5623
11250         * c-typeck.c (incomplete_type_error): Handle flexible array members.
11251
11252 2002-02-10  Richard Henderson  <rth@redhat.com>
11253
11254         PR c++/5624
11255         * tree.c (append_random_chars): Don't abort if main_input_filename
11256         does not exist.
11257
11258 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
11259
11260         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
11261
11262 2002-02-10  Kazu Hirata  <kazu@hxi.com>
11263
11264         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
11265         (pushhi1): Likewise.
11266
11267 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11268
11269         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
11270         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
11271
11272 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
11273
11274         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
11275         remove MASK_VIS.
11276         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
11277
11278 2002-02-09  Kazu Hirata  <kazu@hxi.com>
11279
11280         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
11281         a half of an SImode register on H8/300.
11282
11283 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
11284
11285         * i386.md (movdi_2): Add missing '!'.
11286
11287 2002-02-09  Kazu Hirata  <kazu@hxi.com>
11288
11289         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
11290         definitions.
11291
11292 2002-02-09  Kazu Hirata  <kazu@hxi.com>
11293
11294         * config/h8300/h8300.md (length): Correct the distance valid
11295         for the short branch.
11296
11297 2002-02-09  Kazu Hirata  <kazu@hxi.com>
11298
11299         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
11300
11301 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
11302
11303         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
11304         registers in SImode.
11305         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
11306         part-clobbered.
11307
11308         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
11309         patch.
11310
11311         Contribute sh64-elf.
11312         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
11313         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
11314         (sh_cannot_modify_jumps_p): New function.
11315         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
11316         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
11317         (sh_ms_bitfield_layout_p): New function.
11318         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
11319                     Zack Weinberg  <zack@codesourcery.com>
11320         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
11321         expand_simple_binop instead of expand_binop.
11322         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
11323         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
11324         use of .quad and .uaquad.
11325         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
11326         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
11327         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
11328         * config/sh/sh.md (movdi_const, movdi_const_32bit,
11329         movdi_const_16bit): Make sure all CONSTs have modes.
11330         (sym2PIC): Ditto, but by adjusting all callers.
11331         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
11332         if the prologue calls the SHmedia argument decoder or register
11333         saver.
11334         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
11335         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
11336         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
11337         (sh_expand_epilogue): Don't emit USE of return target register.
11338         (prepare_move_operands): Legitimize DImode PIC addresses.
11339         (sh_media_register_for_return): Skip tr0, used to initialize the
11340         PIC register.
11341         (sh_expand_prologue): Remove explicit USE of return register.
11342         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
11343         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
11344         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
11345         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
11346         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
11347         EXTRA_CONSTRAINT_T.
11348         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
11349         (MOVI_SHORI_BASE_OPERAND_P): New.
11350         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
11351         (EXTRA_CONSTRAINT_T): Define in terms of them.
11352         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
11353         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
11354         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
11355         alternatives supporting TARGET_REGS.
11356         (UNSPEC_GOTPLT): New constant.
11357         (movdi split): Move incrementing of LABEL_NUSES...
11358         (movdi_const, movdi_const_32bit): Here.  Use
11359         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
11360         (movdi_const_16bit): New.
11361         (call, call_value) [flag_pic]: Use GOTPLT.
11362         (call_pop, call_value_pop): New expands.
11363         (call_pop_compact, call_pop_rettramp): New insns.
11364         (call_value_pop_compact, call_value_pop_rettramp): New insns.
11365         (sibcall) [flag_pic]: Use GOT.
11366         (builtint_setjmp_receiver): Remove bogus, unused expand.
11367         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
11368         (*pt, *ptb, ptrel): New insns.
11369         (sym2GOT): Handle DImode GOT.
11370         (sym2GOTPLT, symGOTPLT2reg): New expands.
11371         (sym2PIC): New expand.
11372         (shcompact_return_tramp): Use GOTPLT to return trampoline.
11373         (shcompact_return_tramp_i): Use return register explicitly.
11374         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
11375         disable flag_reorder_blocks.
11376         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
11377         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
11378         clobbers, for clarity.
11379         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
11380         restoring of r0 in macl as MAYBE_DEAD.
11381         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
11382         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
11383         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
11384         alter_subreg all over.
11385         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
11386         reload, instead of emitting instructions that would require
11387         reloading.
11388         (casesi_load_media): Add missing modes.
11389         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
11390         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
11391         as used if the argument decoder is called.
11392         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
11393         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
11394         Pmode, then extend it to DImode if necessary.
11395         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
11396         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
11397         constants in FPU-enabled SHmedia, let them be loaded from memory.
11398         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
11399         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
11400         Adjust whitespace in assembly output templates.
11401         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
11402         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
11403         mode of if_then_else.
11404         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
11405         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
11406         sh.h.
11407         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
11408                     Joern Rennecke <amylaar@redhat.com>
11409         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
11410         (SUBTARGET_CPP_PTR_SPEC): New.
11411         (SUBTARGET_CPP_SPEC): Remove.
11412         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
11413         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
11414         Fix typo in previous checkin.
11415         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
11416         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
11417         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
11418                     Alexandre Oliva  <aoliva@redhat.com>
11419         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
11420         what single FP register can hold for SHmedia target.
11421         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
11422                     Alexandre Oliva  <aoliva@redhat.com>
11423         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
11424         Do not split into SUBREG.
11425         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
11426         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
11427         and added new functions as specified in SH5 ABI r9.
11428         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
11429         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
11430         8-byte boundary.
11431         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
11432         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
11433         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
11434         and consttable_window_ends.
11435         2001-06-03  Graham Stott  <grahams@redhat,com>
11436         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
11437         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
11438         * config/sh/sh.c (print_operand): Handle floating-point pair,
11439         vector and matrix registers.
11440         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
11441         vector modes into account.
11442         * config/sh/sh.md (movv2sf): Split move between registers into
11443         movdf.
11444         (movv4sf, movv16sf): Introduce insns that get split only after
11445         reload.
11446         * config/sh/shmedia.h: Fix Copyright dates.
11447         * config/sh/ushmedia.h: Likewise.  Move loop counter
11448         declarations into conditionals that uses them.
11449         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
11450         loop boundary.
11451         * config/sh/sshmedia.h: Fix Copyright dates.
11452         (sh_media_PUTCFG): Fix constraints.
11453         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
11454         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
11455         ptrmemfunc_vbit_in_delta for SH5.
11456         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
11457         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
11458         * invoke.texi: Likewise.
11459         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
11460         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
11461         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
11462         GCC_pop_shmedia_regs_nofpu): New global symbols.
11463         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
11464         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
11465         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
11466         compact function with nonlocal labels.
11467         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
11468         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
11469         (initial_elimination_offset): Account for their stack space.
11470         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
11471         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
11472         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
11473         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
11474         least one of the operands to be a register.
11475         (movv2sf): Likewise.  Renamed to movv2sf_i.
11476         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
11477         prepare_move_operands() before emitting SHmedia insns.
11478         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
11479         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
11480         Don't save nor initialize r12.  Don't mis-align the stack.
11481         Pad the code with a nop.
11482         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
11483         stack.
11484         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
11485         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
11486         [__SHMEDIA__]: Implement.
11487         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
11488         * config/sh/sh.md: Set latency of `pt' closer to reality.
11489         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
11490         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
11491         Set move, load and store type attributes.
11492         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
11493         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
11494         profiling.
11495         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
11496         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
11497         * config/sh/sh.c (sh_media_register_for_return): New function.
11498         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
11499         branch-target register.
11500         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
11501         * config/sh/sh.md (return_media_i): Use any call-clobbered
11502         branch-target register.
11503         (return_media): If r18 wasn't copied in the prologue, copy it
11504         here.
11505         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
11506         Clear class FP0_REGS.
11507         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
11508         from elf.h.
11509         2001-03-08  DJ Delorie  <dj@redhat.com>
11510         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
11511         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
11512         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
11513         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
11514         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
11515         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
11516         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
11517         return value correctly for call_cookie.
11518         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
11519         * config/sh/crt1.asm (start): Modified so as to call
11520         ___setup_argv_and_call_main.
11521         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
11522         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
11523         SHmedia mode.
11524         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
11525         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
11526         (STRIP_NAME_ENCODING): Use it.
11527         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
11528         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
11529         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
11530         prepare_scc_operands().
11531         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
11532         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
11533         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
11534         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
11535         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
11536         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
11537         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
11538         used in shcompact_incoming_args.
11539         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
11540         change.
11541         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
11542         mode.
11543         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
11544         Adjust accordingly.
11545         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
11546         Simplify.  Adjust.  Add sanity check.
11547         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
11548         FPU_SINGLE_BIT.
11549         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
11550         TARGET_SHCOMPACT.
11551         (udivsi3, divsi3): Use them.
11552         (force_mode_for_call): New insn.
11553         (call, call_value, sibcall_value): Emit it before SHcompact
11554         calls.
11555         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
11556         * config/sh/sh.md (call, call_value, sibcall): Make sure the
11557         call cookie is non-NULL before taking its value.
11558         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
11559         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
11560         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
11561         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
11562         block.
11563         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
11564         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
11565         temporary for stack adjusts.  Use MACL and MACH to pass
11566         arguments to shcompact_incoming_args.
11567         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
11568         clobber r1.
11569         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
11570         (nested_trampoline): Load static chain address into r1.
11571         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
11572         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
11573         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
11574         fp_arith_reg_operand().
11575         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
11576         * config/sh/sh.md (casesi): Sign-extend the first two operands,
11577         and use signed compares for them.
11578         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
11579         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
11580         ones properly aligned.
11581         (find_barrier): Account for extra alignment needed for 8-byte wide
11582         constants.
11583         (machine_dependent_reorg): Require a label for the second 4-byte
11584         constant after an 8-byte one.
11585         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
11586         change.
11587         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
11588         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
11589         last_float when switching float modes.
11590         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
11591         auto-increment for general-purpose registers.
11592         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
11593         result.
11594         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
11595         for stack adjust.
11596         * config/sh/sh.c (sh_builtin_saveregs): Support using all
11597         registers for varargs.
11598         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
11599         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
11600         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
11601         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
11602         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
11603         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
11604         call_cookie accordingly.
11605         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
11606         (SHCOMPACT_BYREF): Likewise.
11607         (SHCOMPACT_FORCE_ON_STACK): New macro.
11608         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
11609         (sh_builtin_saveregs): Likewise.
11610         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
11611         shcompact_incoming_args): Use new shift values.  Support
11612         sequences of consecutive and non-consecutive pushes/pops.
11613         * config/sh/sh.md (return): Don't explicitly use PR_REG.
11614         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
11615         * config/sh/sh.h (TEXT_SECTION): Define.
11616         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
11617         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
11618         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
11619         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
11620         return values on FPU-enabled SHmedia.
11621         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
11622         FPU-enabled SHmedia.
11623         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
11624         value is returned in a non-FP reg and is not returned by
11625         reference.
11626         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
11627         jump_ind.
11628         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
11629         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
11630         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
11631         quad-aligned to be passed by callee-copy reference.
11632         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
11633         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
11634         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
11635         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
11636         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
11637         copying low-numbered FP regs to r7 and r8.
11638         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
11639         FP regs to general-purpose regs only if the copy was passed on the
11640         stack.
11641         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
11642         copying FP reg to r9.
11643         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
11644         copy FP regs to general-purpose regs only in outgoing calls.
11645         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
11646         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
11647         HOST_WIDE_INT.
11648         * config/sh/sh.h (struct sh_args): Document all fields.
11649         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
11650         passed partially on the stack should not consider making
11651         sibcalls.
11652         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
11653         stack_regs only for incoming calls.  When passing FP args,
11654         make sure there are FP regs available before modifying
11655         call_cookie.
11656         (SHCOMPACT_BYREF): Pass double args in general-purpose
11657         registers by reference.
11658         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
11659         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
11660         attempt to generate sibcalls if the caller got any arguments
11661         by reference.
11662         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
11663         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
11664         to 8-byte boundaries.
11665         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
11666         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
11667         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
11668         stored in the stack.
11669         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
11670         for the offsets to have the ISA bit set.
11671         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
11672         invocation.  Use beq instead of bgt to mark end of sequence of
11673         loads.
11674         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
11675         bgt to mark end of sequence of stores.
11676         * config/sh/sh.c (arith_operand): Don't check whether
11677         CONST_OK_FOR_J for now.
11678         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
11679         instead of long for conversion.
11680         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
11681         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
11682         before passing it to fprintf.
11683         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
11684         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
11685         Call set_fpscr before reading/writing SR.
11686         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
11687         Call set_fpscr.
11688         * config/sh/lib1funcs.asm: Add `.align 2' directives before
11689         SHmedia code.
11690         (FMOVD_WORKS): Define on SH5 with FPU.
11691         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
11692         setting.
11693         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
11694         _fpscr_values.
11695         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
11696         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
11697         address.
11698         (ia_main_table): Ditto.
11699         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
11700         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
11701         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
11702         the definitions from sh.h.
11703         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
11704         TARGET_SH5.
11705         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
11706         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
11707         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
11708         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
11709         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
11710         Increment LABEL_NUSES.
11711
11712         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
11713         TARGET_SH5.
11714         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
11715         defined.
11716         * config/sh/elf.h (SIZE_TYPE): Likewise.
11717         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
11718         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
11719         shcompact_incoming_args): Load switch table addresses using
11720         datalabel.
11721         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
11722         (NO_BUILTIN_SIZE_TYPE): Define.
11723         (SIZE_TYPE): Don't define.
11724         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
11725         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
11726         definition of __SH5__=32 for -m5-compact-nofpu.
11727         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
11728         ADDR_DIFF_VEC.
11729         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
11730         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
11731         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
11732         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
11733         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
11734         (INSN_LENGTH_ALIGNMENT): Likewise.
11735         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
11736         * config/sh/sh.md (call, call_value, sibcall): Simplify
11737         copying of non-branch-target register.
11738         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
11739         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
11740         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
11741         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
11742         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
11743         floating-point values as structs.
11744         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
11745         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
11746         general-purpose register.
11747         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
11748         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
11749         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
11750         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
11751         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
11752         (ENCODE_SECTION_INFO): Enclose variables and constants in
11753         DATALABEL unspecs.
11754         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
11755         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
11756         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
11757         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
11758         only for LABEL_REFs.  For SYMBOL_REFs, prepend
11759         SH_DATALABEL_ENCODING to the symbol name.
11760         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
11761         convert_mode().
11762         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
11763         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
11764         UNSPEC_DATALABEL.
11765         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
11766         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
11767         (DATALABEL_REF_P): Don't require CONST.
11768         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
11769         REL label.
11770         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
11771         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
11772         right.
11773         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
11774         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
11775         Use shallow_copy_rtx and PUT_MODE to change the mode of
11776         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
11777         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
11778         on SHmedia using GENERAL_REGs.
11779         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
11780         bltu_media_i): Fix reversion of conditions.
11781         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
11782         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
11783         * config/sh/sh.c (output_far_jump): Save r13 in macl.
11784         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
11785         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
11786         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
11787         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
11788         (GCC_nested_trampoline): Likewise.
11789         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
11790         * config/sh/sh.c (gen_datalabel_ref): Define.
11791         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
11792         (INITIALIZE_TRAMPOLINE): Likewise.
11793         (TRAMPOLINE_ADJUST_ADDRESS): Define.
11794         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
11795         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
11796         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
11797         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
11798         (ic_invalidate): Adjust for SH5.
11799         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
11800         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
11801         _nested_trampoline.
11802         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
11803         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
11804         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
11805         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
11806         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
11807         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
11808         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
11809         * config/sh/sh.c (target_reg_operand): Match only target-branch
11810         registers and pseudos that aren't virtual registers.
11811         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
11812         Copy operands that don't match target_reg_operand to pseudos.
11813         (call_media, call_value_media, sibcall_media): Use
11814         target_reg_operand instead of target_operand.
11815         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
11816         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
11817         * config/sh/sh.c (target_reg_operand): Match hardware registers
11818         other than branch-target registers.
11819         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
11820         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
11821         (fpscr_values) [SH5 == 32]: Define.
11822         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
11823         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
11824         Handle function addresses coming in SUBREGs.
11825         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
11826         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
11827         shcompact_return_trampoline): Use datalabel where appropriate.
11828         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
11829         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
11830         general-purpose register to copy one branch-target register to
11831         another.
11832         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
11833         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
11834         SYMBOL_REFs with VOIDmode.
11835         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
11836         bltu_media_i): New insns.
11837         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
11838         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
11839         (INIT_CUMULATIVE_ARGS): Likewise.
11840         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
11841         * machmode.def (V16SFmode): New mode.
11842         * c-common.c (type_for_mode): Support V2SF and V16SF.
11843         * tree.c (build_common_tree_nodes_2): Likewise.
11844         * tree.h (tree_index): Likewise.
11845         * calls.c (emit_call_1): Take args_so_far.  Adjust all
11846         callers.  Introduce CALL_POPS_ARGS.
11847         * tm.texi (CALL_POPS_ARGS): Document.
11848         * config/sh/crt1.asm: Implement in SHmedia mode.
11849         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
11850         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
11851         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
11852         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
11853         Implement divsi and udivsi in SHmedia mode.  Introduce
11854         SHcompact trampolines.
11855         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
11856         only in SHmedia64.
11857         (regno_reg_class): Rewrite.
11858         (fp_reg_names): Remove.
11859         (sh_register_names, sh_additional_register_names): New.
11860         (print_operand): Added `u'.  Support SUBREGs in addresses.
11861         Add parentheses around shifted CONSTs.
11862         (output_file_start): Output .mode and .abi directives.
11863         (shiftcosts, addsubcosts, multcosts): Adjust.
11864         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
11865         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
11866         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
11867         bytes, not registers.  Take into account the need for the
11868         SHcompact incoming args trampoline.  Adjust all callers.
11869         (sh_expand_prologue): Take stack_regs into account.  Call
11870         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
11871         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
11872         stack aligned as per SH5 ABI.
11873         (sh_builtin_saveregs): Support SH5 ABI.
11874         (sh_build_va_list, sh_va_start): Likewise.
11875         (initial_elimination_offset): Take alignment into account.
11876         Compute location of PR according to the SH5 stack frame.
11877         (arith_reg_operand): Reject branch-target registers.
11878         (shmedia_6bit_operand): New.
11879         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
11880         (target_reg_operand): Match DImode only.  Accept SUBREGs.
11881         (target_operand): New.
11882         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
11883         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
11884         SIBCALL_REGS for SHmedia.
11885         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
11886         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
11887         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
11888         (TARGET_SWITCHES): New SH5 flags.
11889         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
11890         VALID_REGISTER_P to disable unsupported registers.
11891         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
11892         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
11893         (FUNCTION_ARG_PADDING): Define.
11894         (FASTEST_ALIGNMENT): Adjust.
11895         (SH_REGISTER_NAMES_INITIALIZER): New.
11896         (sh_register_names): Declare.
11897         (DEBUG_REGISTER_NAMES): Define.
11898         (REGISTER_NAMES): Define based on sh_register_names.
11899         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
11900         (sh_additional_register_names): Declare.
11901         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
11902         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
11903         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
11904         (REGISTER_NATURAL_MODE): Define.
11905         (FIRST_PSEUDO_REGISTER): Adjust.
11906         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
11907         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
11908         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
11909         (VECTOR_MODE_SUPPORTED_P): Define.
11910         (REG_CLASS_CONTENTS): Adjust.
11911         (SMALL_REGISTER_CLASSES): Adjust.
11912         (REG_ALLOC_ORDER): Adjust.
11913         (INDEX_REG_CLASS): Adjust.
11914         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
11915         (CONST_OK_FOR_LETTER_P): Adjust.
11916         (PREFERRED_RELOAD_CLASS): Adjust.
11917         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
11918         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
11919         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
11920         (FIRST_FP_PARM_REG): Adjust.
11921         (CALL_POPS_ARGS): Define.
11922         (FUNCTION_ARG_REGNO_P): Adjust.
11923         (struct sh_args): New fields.
11924         (GET_SH_ARG_CLASS): Adjust.
11925         (INIT_CUMULATIVE_ARGS): Adjust.
11926         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
11927         (FUNCTION_ARG_ADVANCE): Adjust.
11928         (FUNCTION_ARG): Adjust.
11929         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
11930         (FUNCTION_ARG_CALLEE_COPIES): Define.
11931         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
11932         (STRICT_ARGUMENT_NAMING): Define.
11933         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
11934         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
11935         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
11936         (SETUP_INCOMING_VARARGS): Adjust.
11937         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
11938         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
11939         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
11940         (SUBREG_OK_FOR_INDEX_P): Adjust.
11941         (EXTRA_CONSTRAINT_S): Update.
11942         (EXTRA_CONSTRAINT_T): New.
11943         (EXTRA_CONSTRAINT): Adjust.
11944         (GO_IF_LEGITIMATE_INDEX): Adjust.
11945         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
11946         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
11947         (MOVE_MAX): Adjust.
11948         (MAX_MOVE_MAX): Define.
11949         (Pmode): Adjust.
11950         (CONST_COSTS): Adjust.
11951         (REGISTER_MOVE_COST): Adjust.
11952         (BRANCH_COST): Adjust.
11953         (TEXT_SECTION_ASM_OP): Adjust.
11954         (DBX_REGISTER_NUMBER): Adjust.
11955         (ASM_OUTPUT_DOUBLE_INT): New.
11956         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
11957         (PREDICATE_CODES): Adjust.
11958         (PROMOTE_MODE): Adjust.
11959         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
11960         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
11961         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
11962         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
11963         (DR0_REG, DR2_REG, DR4_REG): Renumber.
11964         (TR0_REG, TR1_REG, TR2_REG): New.
11965         (XD0_REG): Renumber.
11966         (UNSPEC_COMPACT_ARGS): New.
11967         (type): Added pt and ptabs.
11968         (length): Default to 4 on SHmedia.  Default pt length to 12
11969         and     20 on SHmedia32 and SHmedia64, respectively.
11970         (pt): New function unit.
11971         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
11972         Add whitespace between operands of SHmedia instructions.
11973         (movdicc): Fix.
11974         (adddi3_media, addsi3_media): Adjust constraints.
11975         (subsi3) [SHmedia]: Force operand 1 into a register.
11976         (udivsi3_i1_media, udivsi3_i4_media): New.
11977         (udivsi3): Support SHmedia.
11978         (divsi3_i1_media, divsi3_i4_media): New.
11979         (divsi3): Support SHmedia.
11980         (anddi3, iordi3, xordi3): Adjust constraints.
11981         (zero_extendhidi2, zero_extendqidi2): New.
11982         (extendsidi2, extendhidi2, extendqidi2): New.
11983         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
11984         (pop_e, pop_fpul, pop_4): Likewise.
11985         (movsi_media): Support FP and BT registers.
11986         (movsi_media_nofpu): New.  Adjust splits to DImode.
11987         (lduw, ldub): Renamed to zero_extend* above.
11988         (movqi_media): Fix typo.
11989         (movdi_media): Support FP and BT registers.
11990         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
11991         (movdi_const_32bit): New.
11992         (shori_media): Require immediate operand.  Use `u' for output.
11993         (movdf_media, movsf_media): Simplified.
11994         (movdf_media_nofpu, movsf_media_nofpu): New.
11995         (movdf, movsf): Adjust
11996         (movv2sf, movv2sf, movv16sf): New.
11997         (beq_media, beq_media_i): Adjust constraints.  Don't use
11998         scratch BT register.
11999         (bne_media, bne_media_i): Likewise.
12000         (bgt_media, bgt_media_i): Likewise.
12001         (bge_media, bge_media_i): Likewise.
12002         (bgtu_media, bgtu_media_i): Likewise.
12003         (bgeu_media, bgeu_media_i): Likewise.
12004         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
12005         bunordered): Emit jump insn.  Force operands to registers when
12006         needed.
12007         (jump_media, jump): Simplify.
12008         (call_compact, call_compact_rettramp): New.
12009         (call_value_compact, call_value_compact_rettramp): New.
12010         (call_media, call_value_media): Simplify.
12011         (sibcall_compact, sibcall_media): New.
12012         (call, call_value): Adjust for SHmedia and SHcompact.
12013         (sibcall, sibcall_value, untyped_call): Likewise.
12014         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
12015         (indirect_jump): Adjust for SHmedia.
12016         (casesi_jump_media): New.
12017         (nop): Re-enable for SHmedia.
12018         (call_site): Restrict to SH1.
12019         (casesi): Adjust for SHmedia.
12020         (casesi_shift_media, casesi_load_media): New.
12021         (return): Explicitly use PR register.  Call return trampoline
12022         on SHcompact.
12023         (return_i): Explicitly use PR register.
12024         (shcompact_return_tramp, shcompact_return_tramp_i): New.
12025         (return_media): Adjust.
12026         (shcompact_incoming_args): New.
12027         (epilogue): Adjust.
12028         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
12029         (movstrsi): Disable on SH5.
12030         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
12031         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
12032         (subsf3, subsf3_media): Likewise.
12033         (mulsf3, mulsf3_media, mac_media): Likewise.
12034         (divsf3, divsf3_media): Likewise.
12035         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
12036         (floatsisf2, fux_truncsfsi2): Likewise.
12037         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
12038         constraints.
12039         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
12040         (cmpunsf_media, cmpsf): Likewise.
12041         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
12042         (abssf2, abssf2_media): Likewise.
12043         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
12044         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
12045         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
12046         (floatsidf2, fix_truncdfsi2): Likewise.
12047         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
12048         constraints.
12049         (cmpeqdf_media, cmpgtdf_media): Likewise.
12050         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
12051         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
12052         (absdf2, absdf2_media): Likewise.
12053         (extendsfdf2, extendsfdf2_media): Likewise.
12054         (truncsfdf2, truncsfdf2_media): Likewise.
12055         * config/sh/sh64.h: New file.
12056         * config/sh/t-sh64: New file.
12057         * config/sh/shmedia.h: New file.
12058         * config/sh/ushmedia.h: New file.
12059         * config/sh/sshmedia.h: New file.
12060         * configure.in: Added sh64-*-elf.
12061         * configure: Rebuilt.
12062         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
12063         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
12064         (reg_class_from_letter): Use `b' for TARGET_REGS.
12065         (print_operand): Support `%M', `%m', `AND' and
12066         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
12067         (andcosts): Adjust for SHmedia.
12068         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
12069         Likewise.
12070         (target_reg_operand): New function.
12071         * config/sh/sh-protos.h (target_reg_operand): Declare.
12072         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
12073         FP registers on SH5.
12074         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
12075         on SH4.
12076         (TARGET_REGISTER_P): New macro.
12077         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
12078         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
12079         (EXTRA_CONSTRAINT_S): New macro.
12080         (EXTRA_CONSTRAINT): Adjust.
12081         (FLOAT_TYPE_SIZE): Define to 32.
12082         (Pmode): DImode on SHmedia.
12083         (CONST_COSTS): Adjust for SHmedia literals.
12084         (PREDICATE_CODES): Added target_reg_operand.
12085         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
12086         * config/sh/sh.md: Remove all attrs from SHmedia insns.
12087         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
12088         (cmpdi): Accept SHmedia.
12089         (movdicc_false, movdicc_true): New insns.
12090         (movdicc): New expand.
12091         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
12092         no_new_pseudos.
12093         (addsi3_media): Match `S' constraint.
12094         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
12095         (negdi2): Expand for SHmedia.
12096         (one_cmpldi2): New expand.
12097         (zero_extendsidi2): Change from expand to insn.
12098         (extendsidi2): Add constraints.
12099         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
12100         LD/ST address.  Fix SI immediate loading split.
12101         (movhi_media, movqi_media, lduw, ldub): New insns.
12102         (movhi, movqi): Accept SHmedia.
12103         (shori_media, movdi_media): Relax input constraints.  Split
12104         symbolic constants.
12105         (movdf_media, movsf_media): New insn.  New split to movdi.
12106         (movdf, movsf): Match on SHmedia.
12107         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
12108         bgeu_media): New insns and splits.  New insns with `_i' suffix.
12109         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
12110         (bunordered): New expand.
12111         (jump_compact): Renamed from `jump'.
12112         (jump_media): New insn.
12113         (jump): New expand.
12114         (call_media, call_value_media): New insns.
12115         (call, call_value): Adjust.
12116         (indirect_jump_compact): Renamed from `indirect_jump'.
12117         (indirect_jump_media): New insn.
12118         (indirect_jump): New expand.
12119         (untyped_call, return): Accept SHmedia.
12120         (return_media): New insn.
12121         (prologue, epilogue, blockage): Accept SHmedia.
12122         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
12123         (sunordered): New expand.
12124         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
12125         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
12126         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
12127         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
12128         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
12129         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
12130         abssf2_media): New insns.
12131         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
12132         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
12133         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
12134         floatdidf2, floatsidf2_media, fix_truncdfdi2,
12135         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
12136         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
12137         absdf2_media): New insns.
12138         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
12139         (extendsfdf2_media, truncdfsf2_media): New insns.
12140         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
12141         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
12142         * config/sh/sh.h (CONST_OK_FOR_J): Document.
12143         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
12144         * config/sh/sh.md (adddi3): New expand.
12145         (adddi3_media, adddi3z_media): New insns.
12146         (adddi3_compact): Renamed from adddi3.
12147         (addsi3_media): Use add.l r63 to add constant zero.
12148         (subdi3): New expand.
12149         (subdi3_media): New insn.
12150         (subdi3_compact): Renamed from subdi3.
12151         (mulsidi3): New expand.
12152         (mulsidi3_media): New insn.
12153         (mulsidi3_compact): Renamed from mulsidi3.
12154         (umulsidi3): New expand.
12155         (umulsidi3_media): New insn.
12156         (umulsidi3_compact): Renamed from umulsidi3.
12157         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
12158         (ashlsi3, ashrsi3, lshrsi3): Use them.
12159         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
12160         (ashldi3, ashrdi3, lshrdi3): Use them.
12161         (zero_extendsidi2): New expand.
12162         (extendsidi2): New insn.
12163         (movsi_media): New insn.  Split to movdi to load constants.
12164         (movsi): Enable for shmedia.
12165         (movdi_media): New insn.  Use shori_media to load wide constants.
12166         (short_media): New insn.
12167         (movdi): Enable for shmedia.
12168         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
12169         * config/sh/sh.h (CPP_SPEC): Added `m5'.
12170         (SUBTARGET_CPP_SPEC): Added `!m5'.
12171         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
12172         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
12173         to all other SH variants.
12174         (TARGET_DEFAULT): Set to SH1_BIT.
12175         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
12176         (BITS_PER_WORD): Raise to 64 on shmedia.
12177         (MAX_BITS_PER_WORD): Change to 64.
12178         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
12179         (INT_TYPE_SIZE): Keep as 32.
12180         (UNITS_PER_WORD): Raise to 8 on shmedia.
12181         (MIN_UNITS_PER_WORD): Keep as 4.
12182         (POINTER_SIZE): Raise to 64 on shmedia.
12183         (CONST_OK_FOR_J): New macro.
12184         (CONST_OK_FOR_LETTER_P): Use it.
12185         (processor_type): Add PROCESSOR_SH5.
12186         * config/sh/sh.md: Conditionalize all expands, insns and
12187         splits to TARGET_SH1.
12188         (cpu): Added sh5.
12189         (addsi3_compact): Renamed from...
12190         (addsi3): Now an expand.
12191         (addsi3_media, subsi3_media): New insns.
12192         (subsi3): Don't negate constants with SHmedia.
12193
12194         * hooks.c: New file.
12195         * hooks.h: New file.
12196         * Makefile.in (HOOKS_H): New.
12197         (TARGET_DEF_H): Added $(HOOKS_H).
12198         (OBJS): Added hooks.o.
12199         (cfgcleanup.o, bb-reorder.o): Added target.h.
12200         (hooks.o): Added dependencies.
12201         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
12202         (TARGET_INITIALIZER): this.
12203         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
12204         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
12205         * bb-reorder.c: Include target.h.
12206         (reorder_basic_blocks): Skip if cannot modify jumps.
12207         * cfgcleanup.c: Include target.h.
12208         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
12209
12210 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
12211
12212         * config/mips/mips.md (casesi_internal, casesi_internal_di):
12213         Protect jump delay slot instructions with .set noreorder and
12214         .set nomacro.
12215
12216 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
12217
12218         * config/mips/mips.md (casesi_internal_di): Calculate
12219         the index into the target offset table correctly.
12220
12221 2002-02-08  Richard Henderson  <rth@redhat.com>
12222
12223         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
12224         * final.c (output_addr_const): Accept and discard SUBREG.
12225         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
12226         mark them unknown instead.
12227         (simplify_subtraction): Handle RTX_UNKNOWN.
12228         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
12229
12230 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
12231
12232         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
12233
12234 2002-02-08  Richard Henderson  <rth@redhat.com>
12235
12236         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
12237
12238 2002-02-08  Andreas Jaeger  <aj@suse.de>
12239
12240         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
12241         * config/i386/t-linux64: New file.
12242
12243 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
12244
12245         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
12246         * c-parse.in (compstmt): Clear last_expr_type.
12247
12248 2002-02-07  Richard Henderson  <rth@redhat.com>
12249
12250         * loop.c (strength_reduce): Sink final_value when not
12251         eliminating a biv.
12252
12253 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
12254
12255         * config/sparc/freebsd.h: Fix mismatched spec {.
12256
12257 2002-02-07  Richard Henderson  <rth@redhat.com>
12258
12259         * cfgrtl.c: Include recog.h and insn-config.h.
12260         (keep_with_call_p): Fix general_operand invocation.
12261         * Makefile.in (cfgrtl.o): Update dependencies.
12262
12263 2002-02-07  Kazu Hirata  <kazu@hxi.com>
12264
12265         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
12266         comment.  Accept HImode only if TARGET_H8300.
12267
12268 2002-02-07  Eric Christopher  <echristo@redhat.com>
12269
12270         * config/mips/crtn.asm: Cleanup #ifdefs.
12271
12272 2002-02-07  Eric Christopher  <echristo@redhat.com>
12273
12274         * config/mips/crti.asm: Add changes for mips16. mips16 uses
12275         register 7 as RA instead of $31.
12276         * config/mips/crtn.asm: Ditto.
12277         * config/mips/mips.c (mips_move_2words): Add case for
12278         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
12279         (compute_frame_size): Fix typo.
12280         (save_restore_insns): Ditto.  Make documentation about using
12281         register $7 as return register more precise.
12282         (mips_expand_epilogue): Fix comment. Add code to work around not
12283         being able to add to the stack pointer directly.
12284         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
12285         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
12286         epilogue.
12287
12288 2002-02-07  Tom Rix  <trix@redhat.com>
12289
12290         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
12291         immediates in ldu and stdu DS opcode field.
12292         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
12293         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
12294         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
12295
12296 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
12297
12298         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
12299         offset for stack bias.
12300
12301 2002-02-07  H.J. Lu <hjl@gnu.org>
12302
12303         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
12304
12305 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
12306
12307         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
12308
12309 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
12310
12311         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
12312         * i386.c (x86_order_regs_for_local_alloc): New global function.
12313         * i386.h (REG_ALLOC_ORDER): CLeanup.
12314         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
12315
12316 2002-02-07  Richard Henderson  <rth@redhat.com>
12317
12318         PR optimization/2463
12319         * alias.c (find_base_value): Recall base values for fixed hard regs.
12320         * loop.c (loop_regs_update): Don't use single_set on non-insns.
12321
12322 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
12323
12324         * config/mips/mips.md (define_delay) [mips16]: Adjust required
12325         length.
12326
12327 2002-02-06  Richard Henderson  <rth@redhat.com>
12328
12329         PR c/5609
12330         * stmt.c (resolve_operand_name_1): Take more care with mixed
12331         named and unnamed operands.
12332
12333 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
12334             Jan Hubicka  <jh@suse.cz>
12335
12336         * loop.c (remove_constant_addition): Avoid clobbering a shared
12337         CONST expression.
12338
12339 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
12340
12341         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
12342         * config/s390/t-linux64: New file.
12343         * config/s390/libgcc-glibc.ver: New file.
12344
12345 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
12346
12347         * config/s390/linux64.h: Delete file.
12348         * config/s390/s390x.h: New file.
12349         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
12350         as target header file.
12351         * config/s390/linux.h (TARGET_VERSION): Define depending on
12352         DEFAULT_TARGET_64BIT.
12353         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
12354         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
12355         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
12356         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
12357         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
12358         (EXTRA_SPEC): New define.
12359         * config/s390/s390.h (TARGET_VERSION): Define depending on
12360         DEFAULT_TARGET_64BIT.
12361         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
12362
12363 2002-02-06  Jason Merrill  <jason@redhat.com>
12364
12365         * c-decl.c (finish_function): Warn about a non-void function with
12366         no return statement and no abnormal exit.
12367         (current_function_returns_abnormally): New variable.
12368         (start_function): Clear it.
12369         (struct c_language_function): Add returns_abnormally.
12370         (push_c_function_context): Save it.
12371         (pop_c_function_context): Restore it.
12372         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
12373         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
12374         an explicit return type.
12375         * c-tree.h: Declare current_function_returns_abnormally.
12376         (C_FUNCTION_IMPLICIT_INT): New macro.
12377         * c-typeck.c (build_function_call): Set it.
12378         (c_expand_return): Set current_function_returns_value even if the
12379         value is erroneous.
12380
12381 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
12382
12383         PR c/5420:
12384         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
12385         unsafe for reevaluation.
12386
12387 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
12388
12389         PR c/5482:
12390         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
12391         EXPR_STMT, but COMPOUND_STMT, recurse into it.
12392
12393 2002-02-06  Richard Henderson  <rth@redhat.com>
12394
12395         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
12396         be a general_operand.  Dest for function value must be a pseudo.
12397
12398 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
12399
12400         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
12401         as SYMBOL_REFs from the constant pool.
12402
12403 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
12404
12405         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
12406         passed by invisible reference.
12407
12408 2002-02-05  Richard Henderson  <rth@redhat.com>
12409
12410         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
12411
12412 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
12413
12414         Implement using "base addresses" in insn operands as default.
12415         * config/mmix/mmix.c (mmix_conditional_register_usage): if
12416         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
12417         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
12418         used to read the rtx value.
12419         (mmix_target_asm_function_epilogue): Fix spacing.
12420         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
12421         (mmix_legitimate_address): Ditto.
12422         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
12423         should be loaded with a GETA insn.  Don't allocate needless extra
12424         char for nul termination and fix misleading comment.
12425         (mmix_print_operand_address): Handle constants if
12426         TARGET_BASE_ADDRESSES.
12427         (mmix_output_register_setting): Use base addressing if
12428         TARGET_BASE_ADDRESSES and the number of insns is 3.
12429         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
12430         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
12431         to use R as constraint, add LDA to match s.
12432         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
12433         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
12434         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
12435         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
12436         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
12437         order with other fixed registers.
12438         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
12439         other parameter/call-clobbered registers.
12440         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
12441         -mbase-addresses, -mno-base-addresses.
12442         (MMIX Options): Ditto.
12443
12444 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12445
12446         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
12447
12448 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
12449
12450         * config/rs6000/altivec.h: Change elem to _S_elem.
12451
12452 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
12453
12454         * config/netbsd.h (WCHAR_TYPE): Define.
12455         (WCHAR_TYPE_SIZE): Ditto.
12456         (WINT_TYPE): Ditto.
12457         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
12458         (WCHAR_UNSIGNED): Ditto.
12459         (WCHAR_TYPE_SIZE): Ditto.
12460         (WINT_TYPE): Ditto.
12461         * config/arm/netbsd.h: Likewise.
12462         * config/i386/netbsd-elf.h: Likewise.
12463         * config/i386/netbsd.h: Likewise.
12464         * config/m68k/netbsd-elf.h: Likewise.
12465         * config/m68k/netbsd.h: Likewise.
12466         * config/ns32k/netbsd.h: Likewise.
12467         * config/sparc/netbsd.h: Likewise.
12468         * config/vax/netbsd.: Likewise.
12469
12470 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
12471
12472         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
12473         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
12474         (TARGET_INITIALIZER): this.
12475         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
12476         (BITFIELD_NBYTES_LIMITED): Markup fix.
12477         * tree.h (default_ms_bitfield_layout_p): Declare.
12478         (record_layout_info): Added prev_field.
12479         * tree.c (default_ms_bitfield_layout_p): New fn.
12480         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
12481         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
12482         * stor-layout.c: Include target.h.
12483         (start_record_layout): Initialize prev_field.
12484         (place_field): Handle MS bit-field layout, and disregard
12485         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
12486         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
12487         * Makefile.in (stor-layout.o): Adjust dependencies.
12488
12489 2002-02-05  Jason Merrill  <jason@redhat.com>
12490
12491         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
12492
12493 2002-02-05  Andreas Jaeger  <aj@suse.de>
12494
12495         * crtstuff.c: Fix comments.
12496
12497 2002-02-05  Richard Henderson  <rth@redhat.com>
12498
12499         PR fortran/3393
12500         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
12501         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
12502
12503         PR fortran/3392
12504         * config/mips/mips.c (function_arg): Handle TImode.
12505         (function_arg_advance): Likewise.
12506
12507 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
12508
12509         * config/rs6000/altivec.h (vec_step_help): Rename to
12510         __vec_step_help.
12511
12512 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
12513
12514         * config/rs6000/altivec.h: Fix typos.
12515
12516 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
12517
12518         * config/arm/netbsd.h: Correct a comment.
12519
12520 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
12521
12522         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
12523         building void typed builtins.
12524
12525         * config/rs6000/altivec.h (vec_ld*): Fix typos.
12526         (vec_step): Implement for C++.
12527
12528 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12529
12530         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
12531
12532 2002-02-04  Richard Henderson  <rth@redhat.com>
12533
12534         * combine.c (nonzero_bits): Re-introduce special case for
12535         sp/fp/ap wrt REGNO_POINTER_ALIGN.
12536
12537 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
12538
12539         * doc/extend.texi: Warn about unsupported usage of altivec
12540         builtins.
12541
12542         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
12543         (altivec_predicate_*): New.
12544
12545         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
12546         Add C++ version of vec_*() functions.
12547
12548         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
12549         (bdesc_2arg): Remove altivec predicates.
12550         (altivec_expand_builtin): Handle predicates.
12551         (altivec_init_builtins): Handle predicates.
12552         (altivec_expand_predicate_builtin): New.
12553
12554 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12555
12556         * pa.c (DO_FRAME_NOTES): Move forward.
12557         (store_reg): Revise handling of frame notes.
12558         (load_reg): Likewise.
12559         (set_reg_plus_d): Likewise.
12560         (hppa_expand_prologue): Likewise.
12561         (hppa_expand_epilogue): Likewise.
12562
12563 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12564
12565         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
12566
12567 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
12568
12569         PR c/4475, c++/3780:
12570         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
12571         * c-common.h (SWITCH_TYPE): Define.
12572         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
12573         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
12574         Rename spareness variable to sparseness.
12575         (expand_end_case_type): Renamed from expand_end_case, use orig_type
12576         if non-NULL instead of TREE_TYPE (orig_index).
12577         * tree.h (expand_end_case_type): Renamed from expand_end_case.
12578         (expand_end_case): Define using expand_end_case_type.
12579         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
12580         to expand_end_case_type.
12581         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
12582
12583 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12584
12585         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
12586         (BIGGEST_ALIGNMENT): Change to 128.
12587
12588 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12589
12590         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
12591
12592 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12593
12594         * pa.md (call_internal_reg_64bit): Remove unused variable.
12595
12596 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
12597
12598         * config/arm/arm.h (machine_function): Add uses_anonymous_args
12599         field.
12600         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
12601         * config/arm/arm.c (current_function_anonymous_args): Delete,
12602         replace uses with cfun->machine->uses_anonymous_args.
12603         (arm_reorg): Do not reset uses_anonymous_args.
12604
12605         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
12606         any geenral register.
12607
12608 2001-02-04  Bernd Schmidt  <bernds@redhat.com>s
12609
12610         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
12611         the entry block.
12612
12613 2002-02-04  Richard Henderson  <rth@redhat.com>
12614
12615         * combine.c (force_to_mode): Remove STACK_BIAS code.
12616         (nonzero_bits): Likewise.  Replace sp/fp special case with
12617         REGNO_POINTER_ALIGN.
12618
12619         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
12620         (HARD_FRAME_POINTER_REGNUM): New.
12621         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
12622         (FIXED_REGS, CALL_USED_REGS): Update.
12623         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
12624         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
12625         (HARD_REGNO_NREGS): Update for SFP.
12626         (STACK_POINTER_OFFSET): Include bias here ...
12627         (FIRST_PARM_OFFSET): ... not here.
12628         (STACK_BIAS): Remove.
12629         (INIT_EXPANDERS): New.
12630         (STARTING_FRAME_OFFSET): Do not include bias.
12631         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
12632         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
12633         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
12634         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
12635         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
12636         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
12637         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
12638         (MUST_SAVE_REGISTER): Likewise.
12639         (sparc_flat_function_prologue): Likewise.
12640         (sparc_flat_function_epilogue): Likewise.
12641         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
12642         (sparc_init_modes): SFP is GENERAL_REGS.
12643         (sparc_builtin_saveregs): SFP does not have bias applied.
12644
12645 2002-02-04  Richard Henderson  <rth@redhat.com>
12646
12647         * config/alpha/alpha.c (current_function_is_thunk): Don't check
12648         current_function_is_thunk.
12649         (alpha_sa_mask): Distinguish between current_function_is_thunk
12650         called from ASM_OUTPUT_MI_THUNK and not.
12651         (alpha_does_function_need_gp): Thunks always need gp.
12652         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
12653         (alpha_output_mi_thunk_osf): New.
12654         * config/alpha/alpha-protos.h: Update.
12655         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
12656
12657 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
12658
12659         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
12660         function types, not when they're taken away.
12661
12662 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
12663
12664         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
12665         CODE_LABEL and jump table when replacing a table jump with a
12666         simple jump.
12667
12668 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
12669
12670         * config/s390/s390-protos.h (legitimize_la_operand,
12671         s390_secondary_input_reload_class, s390_plus_operand,
12672         s390_expand_plus_operand): Add prototypes.
12673
12674         config/s390/s390.c (s390_secondary_input_reload_class,
12675         s390_plus_operand, s390_expand_plus_operand): New functions.
12676
12677         (struct s390_address): New member 'pointer'.
12678         (s390_decompose_address): Compute it.
12679         (legitimate_la_operand_p): Use it.
12680         (legitimize_la_operand): New function.
12681         (movti, movdi, movdf splitters): Call it.
12682
12683         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
12684         (PREDICATE_CODES): Add s390_plus_operand.
12685
12686         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
12687         (la_ccclobber): Allow GENERAL_REGS as output operand.
12688
12689         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
12690         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
12691         (*la_64, *la_31, reload_indi, reload_insi): ... these.
12692
12693 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
12694
12695         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
12696         register names for regular asm () construct.
12697
12698 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
12699
12700         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
12701         registers.
12702
12703 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
12704
12705         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
12706         pat for recog.
12707
12708 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
12709
12710         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
12711         constant pool to be identical by string address and index.
12712
12713 2002-02-04  Anthony Green  <green@redhat.com>
12714
12715         * output.h (SECTION_OVERRIDE): Define.
12716         * varasm.c (named_section): Obey SECTION_OVERRIDE.
12717
12718 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
12719
12720         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
12721         by existing arm*-*-netbsd* (a.out) target.
12722         (ns32k-*-netbsdelf*): Likewise.
12723         (sparc-*-netbsdelf*): Likewise.
12724         (vax-*-netbsdelf*): Likewise.
12725
12726 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
12727
12728         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
12729         headers and libobjc headers.
12730
12731 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
12732
12733         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
12734         (_mingw.h): Remove duplicate include.
12735
12736 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
12737
12738         * config.gcc: Set cpu_type to m68k for 68010, as well.
12739         (m68010-*-netbsdelf*): New...
12740         (m68k*-*-netbsdelf*): ...targets.
12741         * config/m68k/netbsd-elf.h: New file.
12742
12743 2002-02-02  Kazu Hirata  <kazu@hxi.com>
12744
12745         * config/h8300/h8300.c (hand_list): Move inside function_arg.
12746
12747 2002-02-02  Kazu Hirata  <kazu@hxi.com>
12748
12749         * config/h8300/h8300.c (h8_push_ops): Move inside
12750         h8300_init_once.
12751         (h8_pop_ops): Likewise.
12752         (h8_move_ops): Likewise.
12753
12754 2002-02-02  Kazu Hirata  <kazu@hxi.com>
12755
12756         * config/h8300/h8300.c (os_task): Make it static.
12757         (monitor): Likewise.
12758         (pragma_saveall): Likewise.
12759
12760 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
12761
12762         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
12763         constant is a valid sign-extension for Pmode.
12764
12765 2002-02-02  Kazu Hirata  <kazu@hxi.com>
12766
12767         * config/h8300/h8300.c: Fix formatting.
12768
12769 2002-02-02  Kazu Hirata  <kazu@hxi.com>
12770
12771         * config/h8300/h8300.md: Fix formatting.
12772
12773 2002-02-02  Kazu Hirata  <kazu@hxi.com>
12774
12775         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
12776         predicates of operands[1].  Split the patterns for each
12777         processor variant.
12778
12779 2002-02-02  Kazu Hirata  <kazu@hxi.com>
12780
12781         * config/h8300/h8300.md (xor patterns): Tighten the predicates
12782         of operands[1] to register_operand.
12783
12784 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
12785
12786         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
12787         * cpphash.c (_cpp_init_hashtable): Similarly.
12788         * cppinit.c (cpp_create_reader): Default the signed_char flag.
12789         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
12790         (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
12791         (cpp_handle_option): Handle the new options.
12792         * cpplex.c (cpp_interpret_charconst): Use new flag.
12793         * cpplib.h (struct cpp_options): New member signed_char.
12794         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
12795         (cpp_options): Handle -fsigned-char and -funsigned-char.
12796         (static_specs): Remove signed_char_spec.
12797         (do_spec1): Don't handle %c.
12798         * system.h: Poison SIGNED_CHAR_SPEC.
12799         * tradcif.y (yylex): Use flag_signed_char.
12800         * tradcpp.h (flag_signed_char): New.
12801         * tradcpp.c (flag_signed_char): New.
12802         (main): Handle new command-line options.
12803         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
12804 config:
12805         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
12806         * avr/avr.h: Remove old comments.
12807         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
12808         (CC1_SPEC): Pass -fsigned-char if -mic*.
12809         (SIGNED_CHAR_SPEC): Remove.
12810 doc:
12811         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
12812
12813 2002-02-01  Eric Christopher  <echristo@redhat.com>
12814
12815         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
12816         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
12817         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
12818         (ASM_OUTPUT_REG_POP): Ditto.
12819
12820 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
12821
12822         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
12823         patch.
12824
12825 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
12826
12827         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
12828
12829 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
12830
12831         PR c/5304:
12832         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
12833         unconditionally.
12834
12835 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
12836
12837         * cfganal.c: Include tm_p.h.
12838         (keep_with_call_p): Fix the test that determines if a register holds
12839         the return value of a call.
12840
12841 2002-02-01  DJ Delorie  <dj@redhat.com>
12842
12843         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
12844         we are given conflicting registers, switch to the other one we
12845         had allocated for us.
12846         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
12847         as TImode so we know when the "other" register is available.
12848
12849 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
12850
12851         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
12852         sparc/sparc_bi.h.
12853
12854 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
12855
12856         * cfganal.c (keep_with_call_p): New function.
12857         (flow_call_edges_add): Prevent splitting a block between a call and
12858         a single-set instruction that should be kept in the same block.
12859
12860 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
12861
12862         * doc/install.texi (avr): Update outdated URL.
12863
12864 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
12865
12866         * config/stormy16/stormy16.md (pushqi): New.
12867         (popqi): New.
12868         (pushhi): New.
12869         (pophi): New.
12870         (movhi): Remove stack operands.
12871         (movqi): Likewise.
12872         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
12873         nonimmediate_nonstack_operand.
12874         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
12875         New.
12876         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
12877         New.
12878
12879 2002-01-31  Jason Merrill  <jason@redhat.com>
12880
12881         * Makefile.in (c-parse.c): Handle .output file.
12882         * objc/Make-lang.in (objc-parse.c): Likewise.
12883
12884 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
12885
12886         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
12887         the -me[lb] option is given.  Don't output the default flag
12888         twice.
12889
12890 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
12891
12892         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
12893         the primary source file; this has not been done yet.
12894         * c-decl.c (c_expand_body): Reset input_filename from
12895         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
12896
12897 2002-01-31  Kazu Hirata  <kazu@hxi.com>
12898
12899         * rtlanal.c (subreg_regno_offset): Do not use
12900         SUBREG_REGNO_OFFSET.
12901         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
12902         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
12903
12904 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
12905
12906         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
12907         version rather than GNATS version in --version output.
12908
12909 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
12910
12911         * ifcvt.c (noce_process_if_block): Make a copy of the destination
12912         when copying back from a temporary.
12913
12914 2002-01-30  Richard Henderson  <rth@redhat.com>
12915
12916         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
12917         and new_dest are the same.
12918
12919 2002-01-30  Richard Henderson  <rth@redhat.com>
12920
12921         PR opt/5076
12922         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
12923         * rtl.c (note_insn_name): Update.
12924         * emit-rtl.c (remove_unnecessary_notes): Kill it.
12925         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
12926         to perform loop rotation.
12927         (expand_exit_loop_top_cond): New.
12928         * tree.h (expand_exit_loop_top_cond): Declare it.
12929         * c-semantics.c (genrtl_while_stmt): Use it.
12930         (genrtl_for_stmt): Likewise.
12931
12932 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
12933
12934         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
12935         arguments to 64-bit boundaries on 64-bit ABIs.
12936
12937 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
12938
12939         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
12940
12941 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
12942
12943         * c-decl.c (grokdeclarator): Handle type being a typedef for an
12944         invalid type.
12945
12946 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
12947
12948         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
12949         * config/sparc/sparc_bi.h: Remove file.
12950         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
12951
12952 2002-01-30  Richard Henderson  <rth@redhat.com>
12953
12954         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
12955
12956 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
12957
12958         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
12959
12960 2002-01-30  Jason Merrill  <jason@redhat.com>
12961
12962         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
12963         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
12964         (reg_save): Use DW_CFA_offset_extended_sf instead.
12965
12966         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
12967
12968 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
12969
12970         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
12971         in cselib_lookup.
12972
12973 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
12974
12975         * rs6000.md ("*call_value_local32"): Remove constraints.
12976         ("*call_value_local64"): Same.
12977         ("*call_value_indirect_nonlocal_aix32"): Same.
12978         ("*call_value_nonlocal_aix32"): Same.
12979         ("*call_value_indirect_nonlocal_aix64"): Same.
12980         ("*call_value_nonlocal_aix64"): Same.
12981         ("*call_value_nonlocal_sysv"): Same.
12982
12983 2002-01-29  Richard Henderson  <rth@redhat.com>
12984
12985         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
12986
12987 2002-01-29  Richard Henderson  <rth@redhat.com>
12988
12989         * expr.c (force_operand): Ignore flag_pic for detecting pic
12990         address loads.
12991         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
12992         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
12993         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
12994         instead of open-coded loop.
12995         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
12996         be fixed when in use.
12997
12998 2002-01-29  Richard Henderson  <rth@redhat.com>
12999
13000         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
13001         * sched-rgn.c (propagate_deps): Update them.
13002         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
13003         clobbers list when either gets too long.
13004
13005 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
13006
13007         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
13008         and INDEX_REGS the same as GENERAL_REGS.
13009         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
13010
13011 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
13012
13013         * tree.c (build_nonstandard_integer_type): Correct prototype.
13014
13015 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
13016
13017         * config/s390/s390.md (movstrsico, movstrdix_64,
13018         movstrsix_31): Remove, replace by ...
13019         (movstrdi_short, movstrsi_short, movstrdi_long,
13020         movstrsi_long): ... these.  New.
13021         (movstrdi, movstrsi): Adapt.
13022
13023         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
13024         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
13025         Remove unnecessary CC clobber.
13026         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
13027         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
13028
13029         (divmoddi4): Don't partially initialize TImode register.
13030
13031 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
13032
13033         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
13034
13035 2002-01-29  Richard Henderson  <rth@redhat.com>
13036
13037         * flow.c (print_rtl_and_abort): Remove.
13038         (print_rtl_and_abort_fcn): Remove.
13039         (verify_local_live_at_start): Use dump_bb instead.
13040         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
13041         (verify_wide_reg_1): Return 2 on mode test failure.
13042
13043 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
13044
13045         PR c/3325, c/3326, c/2511, c/3347
13046         * c-decl.c (enum_decl_context): Remove BITFIELD.
13047         (grokdeclarator): Take bitfield width as an input.
13048         Ensure bitfields are given the correct type.  Perform
13049         bitfield width validation with build_bitfield_integer_type
13050         rather than waiting for finish_struct.
13051         (grok_typename, grok_typename_in_parm_context, start_decl,
13052         push_parmdecl, grokfield, start_function): Update calls to
13053         grokdeclarator.
13054         (build_bitfield_integer_type): New function.
13055         (finish_struct): Move bitfield validation to grokdeclarator
13056         and build_bitfield_integer_type.
13057         * tree.c (build_nonstandard_integer_type): New function.
13058         * tree.h (build_nonstandard_integer_type): New prototype.
13059 objc:
13060         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
13061
13062 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
13063
13064         PR other/1502:
13065         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
13066         don't ignore unrecognized -W* options.
13067         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
13068         * cpplib.h (cpp_handle_option): Adjust prototype.
13069         * c-decl.c (c_decode_options): Pass 0 as last argument to
13070         cpp_handle_option.
13071
13072         PR c/2896:
13073         * gcc.c (cpp_unique_options): Split from cpp_options.
13074         (cpp_options): Source cpp_unique_options.
13075         (default_compilers): Use cpp_unique_options instead of cpp_options
13076         when used together with cc1_options.
13077         (static_specs): Add cpp_unique_options.
13078         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
13079         when used together with cc1_options.
13080
13081 2002-01-29  Kazu Hirata  <kazu@hxi.com>
13082
13083         * config/h8300/h8300-protos.h: Update the prototype of
13084         output_a_shift.
13085         * config/h8300/h8300.c (output_a_shift): Remove an unused
13086         argument 'insn'.  Remove redundant code.
13087         * config/h8300/h8300.md: Adust to the new prototype of
13088         output_a_shift.
13089
13090 2002-01-29  Kazu Hirata  <kazu@hxi.com>
13091
13092         * config/h8300/h8300-protos.h: Update the prototypes of
13093         emit_a_rotate and expand_a_rotate.
13094         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
13095         first argument to 'enum rtx_code'.
13096         (expand_a_rotate): Likewise.
13097
13098 2002-01-28  Kazu Hirata  <kazu@hxi.com>
13099
13100         * config/h8300/h8300-protos.h: Update the prototype of
13101         output_simode_bld.
13102         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
13103         'log2'.
13104         * config/h8300/h8300.md: Adjust to the new prototype.
13105
13106 2002-01-28  Kazu Hirata  <kazu@hxi.com>
13107
13108         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
13109         redundant code.
13110
13111 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13112
13113         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
13114         is a fixed register before returning pic_offset_table_rtx.
13115         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
13116         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
13117
13118 2002-01-28  Jason Merrill  <jason@redhat.com>
13119
13120         * dwarf2.h: Sync with src version.
13121
13122 2002-01-28  Paul Koning  <pkoning@equallogic.com>
13123
13124         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
13125         BT_FN_VOID_PTR_VAR.
13126         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
13127         * doc/extend.texi (__builtin_prefetch): Update documentation:
13128         first argument is now const void ptr.
13129
13130 2002-01-28  Kazu Hirata  <kazu@hxi.com>
13131
13132         * config/h8300/h8300-protos.h: Remove an unused prototype.
13133
13134 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
13135
13136         * toplev.c (lang_independent_init): Round up identifier size.
13137
13138 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
13139
13140         * config.gcc: Revert previous change.
13141
13142 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
13143
13144         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
13145
13146 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
13147
13148         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
13149         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
13150         other non-elf netbsd config frags.
13151         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
13152         collect2 will does that.
13153         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
13154         shared-lib frobbing will work.
13155
13156 2002-01-28  Kazu Hirata  <kazu@hxi.com>
13157
13158         * config/h8300/h8300.h: Fix formatting.
13159         * config/h8300/h8300.md: Likewise.
13160
13161 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
13162
13163         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
13164         the old, removed AAA_standards fix.
13165         * fixinc/fixincl.x: Rebuilt.
13166
13167 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
13168
13169         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
13170         atexit call in crtbegin, hooked in after call to frame_dummy;
13171         register EH before registering __fini__start.
13172
13173 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
13174
13175         * config/rs6000/altivec.h: Remove spurious semicolons.
13176
13177 2002-01-27  Kazu Hirata  <kazu@hxi.com>
13178
13179         * config/h8300/h8300.md: Replace dead bit extraction patterns
13180         with ones that work.
13181
13182 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13183
13184         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
13185         if not STRICT_ALIGNMENT.
13186         * rtl.h (MEM_ALIGN): Likewise.
13187
13188 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
13189
13190         * doc/invoke.texi (-fdump-translation-unit): Revert this
13191         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
13192
13193 2002-01-27  Kazu Hirata  <kazu@hxi.com>
13194
13195         * config/h8300/h8300.md (define_constants): New.
13196         (anonymous patterns) Use defined constants appropriately.
13197
13198 2002-01-27  Kazu Hirata  <kazu@hxi.com>
13199
13200         * config/h8300/h8300.c (function_arg): Remove redundant code.
13201
13202 2002-01-26  Richard Henderson  <rth@redhat.com>
13203
13204         * sched-deps.c (reg_pending_uses_head): New.
13205         (reg_pending_barrier): Rename from reg_pending_sets_all.
13206         (find_insn_list): Don't mark inline.
13207         (find_insn_mem_list): Remove.
13208         (add_dependence_list, add_dependence_list_and_free): New.
13209         (flush_pending_lists): Replace only_write param with separate
13210         for_read and for_write parameters.  Update all callers.  Use
13211         add_dependence_list_and_free.
13212         (sched_analyze_1): Do not add reg dependencies here; just set
13213         the pending bits.  Use add_dependence_list.
13214         (sched_analyze_2): Likewise.
13215         (sched_analyze_insn): Replace schedule_barrier_found with
13216         reg_pending_barrier.  Add all dependencies for pending reg
13217         uses, sets, and clobbers.
13218         (sched_analyze): Don't add reg dependencies for calls, just
13219         set pending bits.  Use regs_invalidated_by_call.  Treat
13220         sched_before_next_call as a normal list, not a fake insn.
13221         (init_deps): No funny init for sched_before_next_call.
13222         (free_deps): Free pending mems lists.  Don't zero reg_last.
13223         (init_deps_global): Init reg_pending_uses.
13224         (finish_deps_global): Free it.
13225         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
13226         (find_insn_mem_list): Remove.
13227         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
13228         (propagate_deps): Use them.  Zero temp mem lists.
13229
13230 2002-01-26  Richard Henderson  <rth@redhat.com>
13231
13232         * Makefile.in (CRTSTUFF_CFLAGS): New.
13233         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
13234         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
13235         crtstuff.c instead of alpha assembly version.
13236         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
13237         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
13238         not FORCE_{INIT,FINI}_SECTION_ALIGN.
13239         (__do_global_dtors_aux): Mark used.
13240         (frame_dummy, __do_global_ctors_aux): Mark used.
13241         (fini_dummy, init_dummy): Remove.
13242
13243         * config/alpha/crtbegin.asm: Remove file.
13244         * config/alpha/crtend.asm: Remove file.
13245         * config/alpha/t-crtbe: Remove file.
13246         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
13247         (LINK_EH_SPEC): New.
13248
13249         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
13250         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
13251         calling constructors.
13252         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
13253
13254         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
13255         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
13256         CRT_END_INIT_DUMMY hack.
13257         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
13258         FORCE_{INIT,FINI}_SECTION_ALIGN.
13259
13260         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
13261         FORCE_{INIT,FINI}_SECTION_ALIGN.
13262
13263         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
13264         invocation sequence.
13265         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
13266
13267         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
13268         (FORCE_CODE_SECTION_ALIGN): New.
13269
13270 2002-01-26  Richard Henderson  <rth@redhat.com>
13271
13272         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
13273
13274 2002-01-26  Richard Henderson  <rth@redhat.com>
13275
13276         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
13277         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
13278
13279 2002-01-26  Kazu Hirata  <kazu@hxi.com>
13280
13281         * config/h8300/h8300.md: Remove bit extraction patterns that
13282         cannot be triggered.
13283         Restrict each bit extraction pattern to a variant on which the
13284         pattern is tested.
13285
13286 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
13287
13288         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
13289
13290 2002-01-26  Kazu Hirata  <kazu@hxi.com>
13291
13292         * config/h8300/h8300.md: Remove bit test patterns that cannot
13293         be triggered.
13294         Restrict each bit test pattern to a variant on which the
13295         pattern is tested.
13296
13297 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13298
13299         * builtins.c (expand_builtin_strncat): Remove redundant check for
13300         INTEGER_CST.
13301
13302 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
13303
13304         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
13305         default setting.
13306         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
13307         existing setting.
13308
13309 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
13310
13311         * dbxout.c (dbxout_init): Use assemble_name rather than just
13312         stripping off the first character.
13313         (dbxout_source_file): Likewise.
13314
13315 2002-01-25  DJ Delorie  <dj@redhat.com>
13316
13317         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
13318         using rtx_equal_p, not by comparing pointers.
13319
13320 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
13321
13322         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
13323         for PIC_OFFSET_TABLE_REGNUM.
13324         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
13325
13326 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
13327
13328         * config.gcc (x86_64-*-freebsd*): New target.
13329         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
13330         value.
13331         (i[34567]86-*-freebsd*): Don't include svr4.h.
13332         * config/i386/freebsd64.h: New file.
13333
13334 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
13335
13336         * config/alpha/x-vms (version): Make static.
13337
13338         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
13339         in previous checkin.
13340
13341         * Makefile.in (install-headers-cp): New target.
13342         * config.gcc (alpha-dec-*vms*): Install headers with
13343         install-headers-cp
13344
13345 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
13346
13347         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
13348         avoid it's copies.
13349
13350 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13351
13352         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
13353         of compare_tree_int.
13354         (expand_builtin_strncat): Likewise.
13355         * c-decl.c (finish_struct): Use tree_low_cst.
13356         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
13357         * tree.c (compare_tree_int): Likewise.
13358
13359 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
13360
13361         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
13362         adjustments even if they are implemented by more than two insns.
13363
13364 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
13365
13366         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
13367         * df.h (struct ref): Kill B.
13368         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
13369
13370         * basic-block.h (PROP_EQUAL_NOTES): New flag.
13371         * flow.c (propagate_one_insn): Use it.
13372         (mark_used_regs): Handle NIL.
13373
13374 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
13375
13376         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
13377         to help folding.
13378
13379 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
13380
13381         * rs6000.md (prefetch): Make address V4SI mode so that the address
13382         is restricted to legitimate form for instruction.
13383
13384 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
13385
13386         * doc/install.texi (xtensa-*-elf): New target.
13387         (xtensa-*-linux*): New target.
13388         * doc/contrib.texi: Add myself.
13389
13390 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
13391
13392         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
13393         purpose register to hold an SImode (or smaller) value.
13394
13395 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
13396
13397         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
13398         registry only.
13399         * crtstuff.c: Likewise.
13400
13401 2002-01-25  Kazu Hirata  <kazu@hxi.com>
13402
13403         * config/h8300/h8300.md (negation patterns): Tighten
13404         predicates to register_operand.
13405
13406 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
13407
13408         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
13409         mode, not Pmode.
13410
13411         * builtins.c (expand_builtin_prefetch): Same.
13412
13413 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
13414
13415         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
13416         modes.
13417
13418 2002-01-24  Kazu Hirata  <kazu@hxi.com>
13419
13420         * config/h8300/h8300.c (print_operand): Remove support for
13421         operand character 'A'.
13422         * config/h8300/h8300.md (three anonymous patterns): Replace
13423         operand character 'A' with either 'T' or 'S'.
13424
13425 2002-01-24  Kazu Hirata  <kazu@hxi.com>
13426
13427         * config/h8300/h8300.c (print_operand): Remove support for
13428         operand character 'U'.
13429
13430 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
13431
13432         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
13433
13434 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
13435
13436         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
13437         values to be assigned to the stack pointer.
13438
13439 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
13440
13441         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
13442         to const_double needs to be done right for big-endian systems.
13443
13444 2002-01-24  Jason Merrill  <jason@redhat.com>
13445
13446         PR c++/2432
13447         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
13448         to can_throw_internal.
13449
13450 2002-01-23  Richard Henderson  <rth@redhat.com>
13451
13452         * fold-const.c (fold): Change UINT_MAX test to check vs precision
13453         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
13454
13455 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
13456
13457         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
13458         (symGOT2reg): Use them, then set as GOT value as unchanging.
13459         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
13460         as a temporary, if possible.
13461         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
13462         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
13463
13464 2002-01-23  Kazu Hirata  <kazu@hxi.com>
13465
13466         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
13467         accept to accept 0x80 as operands[2].
13468
13469 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
13470
13471         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
13472
13473 2002-01-23  Richard Henderson  <rth@redhat.com>
13474
13475         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
13476
13477 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
13478
13479         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
13480         (parmlist_or_identifiers_1): Verify that only a parmlist follows
13481         an attribute.
13482
13483 2002-01-23  Richard Henderson  <rth@redhat.com>
13484
13485         * expr.c (move_by_pieces_1): Extend size before negation.
13486
13487         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
13488         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
13489         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
13490         * config/m68k/t-m68kelf: Likewise.
13491
13492 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
13493
13494         * config/xtensa/elf.h: New file.
13495         * config/xtensa/lib1funcs.asm: New file.
13496         * config/xtensa/lib2funcs.S: New file.
13497         * config/xtensa/linux.h: New file.
13498         * config/xtensa/t-xtensa: New file.
13499         * config/xtensa/xtensa-config.h: New file.
13500         * config/xtensa/xtensa-protos.h: New file.
13501         * config/xtensa/xtensa.c: New file.
13502         * config/xtensa/xtensa.h: New file.
13503         * config/xtensa/xtensa.md: New file.
13504         * config.gcc (xtensa-*-elf*): New target.
13505         (xtensa-*-linux*): New target.
13506         * cse.c (canon_hash): Compare rtx pointers instead of register
13507         numbers.  This is required for the Xtensa port.
13508         * integrate.c (copy_insn_list): Handle case where the static
13509         chain is in memory and the memory address has to be copied to
13510         a register.
13511         * doc/invoke.texi (Option Summary): Add Xtensa options.
13512         (Xtensa Options): New node.
13513         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
13514
13515 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
13516
13517         * diagnostic.c (internal_error): Do ICE suppression only
13518         when ENABLE_CHECKING is not defined.
13519
13520         * c-typeck.c (require_complete_type): Return error_mark_node
13521         if type is error_mark_node.
13522
13523 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
13524
13525         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
13526         -Os and issue a warning.
13527
13528 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
13529
13530         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
13531         current (lack of) need for host configuration by hand.
13532
13533         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
13534         references.  Documentation of some target macros moved from
13535         hostconfig.texi to tm.texi.
13536
13537 2002-01-23  Will Cohen  <wcohen@redhat.com>
13538
13539         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
13540         defined.
13541
13542 2002-01-23  Kazu Hirata  <kazu@hxi.com>
13543
13544         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
13545         operand[3].
13546
13547 2002-01-23  Jason Merrill  <jason@redhat.com>
13548
13549         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
13550
13551         * function.c (assign_parms): Don't put args of inline functions
13552         into registers when not optimizing.
13553
13554 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
13555
13556         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
13557         (prologue_use): New pattern.
13558         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
13559         preference to gen_rtx_USE.
13560         (thumb_expand_prologue): Use gen_prologue_use in preference to
13561         gen_rtx_USE.
13562         (thumb_expand_epilogue): Use gen_prologue_use in preference to
13563         gen_rtx_USE.
13564
13565 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
13566
13567         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
13568
13569 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
13570
13571         PR c/3504
13572         * doc/extend.texi: Correct documentation of __alignof__.
13573
13574 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
13575
13576         * params.h: Rename arguments of DEFPARAM so that it will be
13577         recognized as a translation keyword.
13578
13579 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
13580
13581         * extend.texi: Document altivec functions.
13582         Fix N-bit adjectives in X86 builtin documentation.
13583
13584 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
13585
13586         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
13587         auto_inc_dec values.
13588
13589 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
13590
13591         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
13592         after backslash.
13593         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
13594
13595 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
13596
13597         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
13598
13599 2002-01-22  Richard Henderson  <rth@redhat.com>
13600
13601         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
13602         copy_insn not copy_rtx.
13603
13604 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
13605
13606         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
13607         "nonzero" as that might add "1" bits.  Ensure "constop" is
13608         properly sign extened.
13609         (force_to_mode): Tweak for sign extended constop.
13610
13611 2002-01-22  Richard Henderson  <rth@redhat.com>
13612
13613         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
13614         for_each_rtx instead of assuming we're already looking at the MEM.
13615         (split_small_symbolic_mem_operand): Likewise.
13616         * config/alpha/alpha.h (PREDICATE_CODES): Update.
13617         * config/alpha/alpha.md (small symbolic memory splitters): Update.
13618
13619 2002-01-22  Richard Henderson  <rth@redhat.com>
13620
13621         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
13622         sequence number for the literal.
13623         (divmoddi_internal_er): Likewise.
13624
13625 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
13626
13627         PR java/4972
13628         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
13629         in LIBICONV variable.
13630         * configure: Regenerated.
13631
13632 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
13633
13634         * dependence.c (build_def_use): Remove array_idx.
13635
13636         * dwarfout.c (last_filename): Remove.
13637         (output_compile_unit_die): Remove last_filename.
13638
13639 2002-01-22  Roger Sayle  <roger@eyesopen.com>
13640             Richard Henderson  <rth@redhat.com>
13641
13642         PR opt/3640
13643         * fold-const.c (fold): Optimize unsigned comparisons against
13644         UINT_MAX (and similar unsigned constants).
13645
13646 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
13647
13648         * Makefile.in (loop.o): Depend on OPTABS_H.
13649         * loop.c (emit_prefetch_instructions): Check the prefetch operand
13650         against the predicate.
13651
13652         PR target/5379
13653         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
13654         for the address operand.
13655
13656 2002-01-22  Richard Henderson  <rth@redhat.com>
13657
13658         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
13659
13660 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
13661
13662         PR other/5450
13663         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
13664         preprocessor flags.
13665
13666 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
13667
13668         * config.gcc (x86_64-*-netbsd*): New target.
13669         * config/i386/netbsd64.h: New file.
13670
13671 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
13672
13673         * regrename.c (kill_value): Fix typo.
13674
13675 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
13676
13677         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
13678
13679         * config/rs6000/rs6000.h: Same.
13680
13681         * function.c (instantiate_virtual_regs): Remove
13682         STARTING_FRAME_PHASE.
13683         (assign_stack_local_1): Same.
13684         Calculate frame phase.
13685
13686 2002-01-22  Nick Clifton  <nickc@redhat.com>
13687
13688         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
13689         variable declaration to outer scope in order to simplify
13690         future extensions.
13691         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
13692         arm_hard_regno_mode_ok.
13693         * config/arm/arm-protos.h: Add a prototype for
13694         arm_hard_regno_mode_ok.
13695         * config/arm/arm.c (soft_df_operand): Remove now redundant
13696         check for DImode values using IP_REGNUM.
13697         (nonimmediate_soft_df_operand): Remove now redundant check for
13698         DImode values using IP_REGNUM.
13699         (arm_hard_regno_mode_ok): New function. New check: make sure
13700         that DImode values are not stored in IP_REGNUM.
13701
13702         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
13703         note with a USE.
13704         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
13705
13706 2002-01-22  Jason Merrill  <jason@redhat.com>
13707
13708         * c-semantics.c (genrtl_compound_stmt): Only check nesting
13709         consistency if this COMPOUND_STMT is scoped.
13710
13711 2002-01-22  Kazu Hirata  <kazu@hxi.com>
13712
13713         * predict.c: Fix formatting.
13714         * print-tree.c: Likewise.
13715         * protoize.c: Likewise.
13716         * real.h: Likewise.
13717         * rtl.h: Likewise.
13718         * sbitmap.h: Likewise.
13719         * scan.c: Likewise.
13720         * sched-deps.c: Likewise.
13721         * sched-vis.c: Likewise.
13722         * sdbout.c: Likewise.
13723         * sibcall.c: Likewise.
13724         * ssa.c: Likewise.
13725         * ssa-ccp.c: Likewise.
13726         * ssa-dce.c: Likewise.
13727         * stmt.c: Likewise.
13728         * stor-layout.c: Likewise.
13729         * system.h: Likewise.
13730
13731 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13732
13733         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
13734         if fits in bounds of base type.
13735
13736         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
13737         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
13738         (add_bound_info, default): If can't find a context, make a
13739         SAVE_EXPR.
13740         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
13741
13742 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
13743
13744         * c-typeck.c (parser_build_binary_op): If result from
13745         build_binary_op is ERROR_MARK just return error_mark_node without
13746         further processing.
13747
13748 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
13749
13750         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
13751         Split a.out-specific bits into...
13752         * config/netbsd-aout.h: ...this.
13753         * config/netbsd-elf.h: New file.
13754         * config/alpha/netbsd-elf.h: Remove.
13755         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
13756         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
13757         (STARTFILE_SPEC): Remove redundant definition.
13758         (ENDFILE_SPEC): Likewise.
13759         (LINK_SPEC): Likewise.
13760         (CPP_SPEC): Likewise.
13761         (ASM_SPEC): Likewise.
13762         (LIB_SPEC): Likewise.
13763         (SWITCH_TAKES_ARG): Likewise.
13764         (TARGET_MEM_FUNCTIONS): Likewise.
13765         (CPP_PREDEFINES): Redefine.
13766         (ASM_FINAL_SPEC): Remove redefinition.
13767         (ASM_COMMENT_START): Redefine.
13768         (FUNCTION_PROFILER): Define.
13769         (TARGET_VERSION): Redefine.
13770         Comment and formatting cleanup.
13771         * config/i386/netbsd.h: Include <netbsd-aout.h>.
13772         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
13773         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
13774         big- or little-endian.
13775         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
13776         * config.gcc (*-*-netbsd*): Add definitions common to all
13777         NetBSD configs.
13778         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
13779         gnu_ld definitions.  Add netbsd-elf.h to and remove
13780         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
13781         tmake_file, and don't lose previous tmake_file contents.
13782         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
13783         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
13784         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
13785         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
13786         (mipsel-*-netbsd*): Rename this to...
13787         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
13788         mips/little.h to tm_file for mips*el-*.
13789         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
13790         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
13791         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
13792
13793 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13794
13795         * pa-protos.h (reg_before_reload_operand): New function prototype.
13796         * pa.c (reg_before_reload_operand): New function implementation.
13797         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
13798         contraints to "*m".
13799
13800 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
13801
13802         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
13803
13804 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13805
13806         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
13807         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
13808         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
13809         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
13810         (ENDFILE_SPEC): Undefine.
13811         (STARTFILE_SPEC): Redefine for PA.
13812
13813 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
13814
13815         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
13816
13817 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
13818
13819         * config.gcc: Add entries to supported PowerPC --with-cpu
13820         types.
13821
13822 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
13823
13824         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
13825         true for 64-bit mode only SSE registers in 32-bit mode.
13826
13827 2002-01-21  Kazu Hirata  <kazu@hxi.com>
13828
13829         * unwind-dw2.c: Fix formatting.
13830         * unwind-dw2-fde.c: Likewise.
13831         * unwind-dw2-fde.h: Likewise.
13832         * unwind-pe.h: Likewise.
13833         * varasm.c: Likewise.
13834         * varray.h: Likewise.
13835
13836 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
13837
13838         Remove workaround for register stack overwrite bug in mmix.
13839         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
13840         support for TARGET_REG_STACK_FILL_BUG.
13841         * config/mmix/mmix.h: Remove member has_call_without_parameters.
13842         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
13843         Delete.
13844         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
13845         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
13846         -mno-reg-stack-fill-bug-workaround.
13847         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
13848         machine member has_call_without_parameters.
13849         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
13850         -mreg-stack-fill-bug-workaround and
13851         -mno-reg-stack-fill-bug-workaround.
13852         (MMIX Options): Ditto.
13853
13854 2002-01-21  Kazu Hirata  <kazu@hxi.com>
13855
13856         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
13857         as appropriate.
13858         Remove redundant code.
13859
13860 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
13861
13862         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
13863         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
13864         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
13865         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
13866         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
13867         out target macro definitions and non-target-specific comments
13868         mostly taken from old versions of the manual.
13869
13870 2002-01-20  Kazu Hirata  <kazu@hxi.com>
13871
13872         * config/h8300/h8300.h: Fix comment formatting.
13873         * config/ia64/aix.h: Likewise.
13874         * config/ia64/ia64-protos.h: Likewise.
13875         * config/ia64/ia64.c: Likewise.
13876         * config/ia64/ia64.h: Likewise.
13877         * config/ia64/ia64intrin.h: Likewise.
13878         * config/ia64/linux.h: Likewise.
13879         * config/ia64/unwind-aix.c: Likewise.
13880         * config/ia64/unwind-ia64.c: Likewise.
13881
13882 2002-01-20  Kazu Hirata  <kazu@hxi.com>
13883
13884         * config/h8300/h8300.c: Revise comments about shift code.
13885
13886 2002-01-20  Kazu Hirata  <kazu@hxi.com>
13887
13888         * config/h8300/h8300.c (function_arg): Update a comment.
13889
13890 2002-01-20  Kazu Hirata  <kazu@hxi.com>
13891
13892         * config/h8300/h8300.md: Update the comments at the beginning
13893         of the file.
13894
13895 2002-01-20  Kazu Hirata  <kazu@hxi.com>
13896
13897         * config/i370/i370.c: Fix comment formatting.
13898         * config/i370/i370.h: Likewise.
13899         * config/i370/i370.md: Likewise.
13900         * config/i370/linux.h: Likewise.
13901
13902 Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13903
13904         * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
13905
13906         * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
13907         (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
13908         in incomplete case.
13909
13910 2002-01-20  Graham Stott  <grahams@redhat.com>
13911
13912         * cfgloop.c (flow_loop_preheader_scan): Fix typo.
13913
13914 2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13915
13916         * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
13917
13918 2002-01-19  Tom Rix  <trix@redhat.com>
13919
13920         * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
13921
13922 2002-01-18  Aldy Hernandez  <aldyh@redhat.com>
13923
13924         * doc/tm.texi (STARTING_FRAME_PHASE): Document.
13925
13926         * function.c (assign_stack_local_1): Adjust x_frame_offset with
13927         STARTING_FRAME_PHASE.
13928         (STARTING_FRAME_PHASE): New.
13929         (instantiate_virtual_regs): Check saneness of
13930         STARTING_FRAME_PHASE.
13931
13932         * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
13933
13934 2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
13935
13936         * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
13937
13938 2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>
13939
13940         * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
13941         be used for bootstrapping GCC 3.0.
13942
13943 2002-01-18  Kazu Hirata  <kazu@hxi.com>
13944
13945         * config/h8300/h8300.md: Fix an insn length.
13946
13947 2002-01-18  Kazu Hirata  <kazu@hxi.com>
13948
13949         * bitmap.h: Fix comment formatting.
13950         * combine.c: Likewise.
13951         * cppfiles.c: Likewise.
13952         * c-pragma.h: Likewise.
13953         * c-typeck.c: Likewise.
13954         * df.c: Likewise.
13955         * dwarf2out.c: Likewise.
13956         * function.c: Likewise.
13957         * gcc.c: Likewise.
13958         * genattrtab.c: Likewise.
13959         * gthr-win32.h: Likewise.
13960         * haifa-sched.c: Likewise.
13961         * predict.c: Likewise.
13962         * rtlanal.c: Likewise.
13963         * rtl.h: Likewise.
13964         * unwind-dw2-fde.h: Likewise.
13965         * unwind-pe.h: Likewise.
13966         * vmsdbgout.c: Likewise.
13967
13968 Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13969
13970         * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
13971         if type_required and passed decl.
13972
13973 2002-01-17  Aldy Hernandez  <aldyh@redhat.com>
13974
13975         * config.gcc (cpu_type): Include altivec.h in powerpc
13976         extra_headers.
13977         Same for darwin.
13978
13979         * config/rs6000/altivec.h: New.
13980
13981 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
13982
13983         * doc/install.texi (*-ibm-aix*): Update assembler and exception
13984         handling information.
13985         * doc/trouble.texi (Interoperation): Add libstdc++ information
13986         for AIX.
13987         (Misunderstandings): Add template instantiation and static template
13988         member information for AIX.
13989
13990 2002-01-17  Jason Merrill  <jason@redhat.com>
13991
13992         * dbxout.c (dbxout_type): Support const and volatile.
13993
13994         * except.c (add_partial_entry): Remove backwards compatibility code.
13995         (end_protect_partials): Likewise.
13996
13997 2002-01-17  Jakub Jelinek  <jakub@redhat.com>
13998
13999         * config/ia64/ia64.md (prologue_use): New.
14000         * config/ia64/ia64.c (ia64_expand_prologue): Use
14001         gen_prologue_use instead of gen_rtx_USE.
14002         (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
14003         as CODE_FOR_pred_rel_mutex.
14004         (ia64_sched_reorder2): Likewise.
14005
14006 2002-01-16  Eric Christopher  <echristo@redhat.com>
14007
14008         * config/mips/r3900.h: Reformat.
14009         (SUBTARGET_CPP_SIZE_SPEC): Remove.
14010         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
14011         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
14012         (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
14013         * config/mips/t-elf: Remove mips3 multilib.
14014
14015 2002-01-16  H.J. Lu <hjl@gnu.org>
14016
14017         * config/mips/linux.h: Include "mips/abi64.h".
14018
14019 2002-01-16  H.J. Lu <hjl@gnu.org>
14020
14021         * config/mips/t-linux: New.
14022
14023         * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
14024
14025         * config/mips/linux.h: Don't include "gofast.h".
14026         (INIT_SUBTARGET_OPTABS): Removed.
14027
14028 2002-01-16  Kazu Hirata  <kazu@hxi.com>
14029
14030         * config/h8300/h8300-protos.h: Replace emit_a_shift with
14031         output_a_shift.
14032         * config/h8300/h8300.c: Likewise.
14033         * config/h8300/h8300.md: Likewise.
14034
14035 2002-01-16  Kazu Hirata  <kazu@hxi.com>
14036
14037         * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
14038         spaces after an opcode name.
14039         (pushqi1_h8300hs): Likewise.
14040         (pushhi1_h8300hs): Likewise.
14041
14042 2002-01-16  Kazu Hirata  <kazu@hxi.com>
14043
14044         * doc/extend.texi: Replace "option" with "attribute"
14045         appropriately.
14046
14047 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
14048
14049         * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
14050         (and:DI () (const_int -8)).
14051         (split_small_symbolic_mem_operand): Split
14052         (mem (and:DI () (const_int -8)).
14053
14054 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
14055
14056         PR target/5309:
14057         * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
14058         same way as TYPE_IMUL.
14059         (ultrasparc_sched_reorder): Likewise.
14060         * config/sparc/sparc.md (type): Add comment to update
14061         ultrasparc_sched_reorder when making changes.
14062
14063 2002-01-16  Kazu Hirata  <kazu@hxi.com>
14064
14065         * doc/invoke.texi: Change the dump file name of block
14066         reordering pass from 28.bbro to 29.bbro.
14067         Mention -dk option.
14068
14069 Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>
14070
14071         * i386.md (minsf splitter): Fix pasto.
14072
14073 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
14074
14075         * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
14076         to frame pointer initialisation instruction.
14077         (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
14078         initialisation instruction.
14079         (soft_df_operand): Do not accept the IP register.
14080         (nonimmediate_soft_df_operand): Do not accept the IP register.
14081
14082 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
14083
14084         PR target/5357:
14085         * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
14086         MASK_V8 being both set.
14087
14088 2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>
14089
14090         * config/s390/s390.c (s390_emit_prologue): Do not emit USE
14091         insn for GOT register; add REG_MAYBE_DEAD notes instead.
14092         config/s390/s390.md (call, call_value): Add GOT register to
14093         CALL_INSN_FUNCTION_USAGE where needed.
14094         (call_exp, call_value_exp): New.
14095
14096 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
14097
14098         * config/arm/arm.c: General formatting tidy up.
14099
14100 2002-01-16  Graham Stott  <grahams@redhat.com>
14101
14102         * calls.c (try_to_integrate): Use "(size_t)" intermediate
14103         cast and when casting an integer literal to "rtx" pointer.
14104         (expand_call): Likewise.
14105         * flow.c (try_pre_increment): Likewise.
14106         (find_use_as_address): Likewise.
14107         * integrate.c (expand_iline_function): Likewise.
14108         * regmove.c (try_auto_increment): Likewise.
14109
14110 2002-01-16  Graham Stott  <grahams@redhat.com>
14111
14112         * sched-rgn.c (passed): Use sbitmap_free.
14113         (header): Likewise.
14114         (inner): Likewise.
14115         (in_queue): Likewise.
14116         (in_stack): Likewise.
14117
14118 2002-01-15  Eric Christopher  <echristo@redhat.com>
14119
14120         * flow.c (propagate_one_insn): Change to use fatal_insn.
14121
14122 2002-01-15  Kazu Hirata  <kazu@hxi.com>
14123
14124         * expmed.c (extract_fixed_bit_field): Remove unused code.
14125         * system.h: Poison SLOW_ZERO_EXTEND.
14126         * doc/tm.texi: Remove.
14127         * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
14128         * config/arm/arm.h: Likewise.
14129         * config/avr/avr.h: Likewise.
14130         * config/clipper/clipper.h: Likewise.
14131         * config/convex/convex.h: Likewise.
14132         * config/d30v/d30v.h: Likewise.
14133         * config/dsp16xx/dsp16xx.h: Likewise.
14134         * config/elxsi/elxsi.h: Likewise.
14135         * config/fr30/fr30.h: Likewise.
14136         * config/h8300/h8300.h: Likewise.
14137         * config/i370/i370.h: Likewise.
14138         * config/i386/i386.h: Likewise.
14139         * config/m68k/m68k.h: Likewise.
14140         * config/mips/mips.h: Likewise.
14141         * config/ns32k/ns32k.h: Likewise.
14142         * config/pdp11/pdp11.h: Likewise.
14143         * config/pj/pj.h: Likewise.
14144         * config/s390/s390.h: Likewise.
14145         * config/sh/sh.h: Likewise.
14146         * config/stormy16/stormy16.h: Likewise.
14147         * config/v850/v850.h: Likewise.
14148         * config/vax/vax.h: Likewise.
14149         * config/we32k/we32k.h: Likewise.
14150
14151 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
14152
14153         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
14154         (altivec_lvsl): Change constraint to b.
14155         (altivec_lvsr): Same.
14156         (altivec_lvebx): Same.
14157         (altivec_lvehx): Same.
14158         (altivec_lvewx): Same.
14159         (altivec_lvxl): Same.
14160         (altivec_lvx): Same.
14161         (altivec_stvx): Add parallel.
14162         (altivec_stvxl): Same.
14163         (altivec_stvehx): Same.
14164         (altivec_stvebx): Same.
14165         (altivec_stvebx): Same.
14166
14167 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
14168
14169         * config.gcc: Change altivec.h to altivec-defs.h.
14170
14171         * config/rs6000/altivec.h: Delete.
14172
14173         * config/rs6000/altivec-defs.h: Add.
14174
14175 2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14176
14177         * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
14178         and UMOD modes.
14179
14180         * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
14181         less than or equal to eight bytes.
14182
14183         * vax.md (andsi3): Remove constraints and change SET destination
14184         operand type to nonimmediate_operand.
14185         (andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
14186         when it is a CONST_INT.
14187
14188 2002-01-15  Jason Merrill  <jason@redhat.com>
14189
14190         * c-common.def (FILE_STMT): New code.
14191         * c-common.c (statement_code_p): It's a statement.
14192         * c-common.h (stmt_tree_s): Add x_last_filename.
14193         (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
14194         (last_expr_filename): New macro.
14195         * c-semantics.c (begin_stmt_tree): Initialize it.
14196         (add_stmt): If the filename changed, also insert a
14197         FILE_STMT.
14198         (expand_stmt): Handle seeing one.
14199
14200 2002-01-15  Eric Christopher  <echristo@redhat.com>
14201
14202         * flow.c (propagate_one_insn): Add error message and print out
14203         insn for debugging.
14204
14205 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
14206
14207         * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
14208         ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
14209         * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
14210         TRAMPOLINE_ALIGNMENT.
14211         * config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
14212         to be in bits.
14213         * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
14214         PCC_BITFIELD_TYPE_MATTERS.
14215         * config/interix.h (STDC_VALUE): Remove.  Use
14216         STDC_0_IN_SYSTEM_HEADERS.
14217         * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
14218         (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
14219         ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
14220
14221 2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>
14222
14223         * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
14224         not work on this platform currently.
14225
14226 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
14227
14228         * c-typeck.c (build_unary_op): Don't wrap msgid argument of
14229         readonly_warning in _().
14230
14231 2002-01-15  Douglas B Rupp  <rupp@gnat.com>
14232
14233         * gcc.c (delete_if_ordinary): Backout previous change.
14234
14235 2002-01-15  Kazu Hirata  <kazu@hxi.com>
14236
14237         * config/h8300/h8300.c (print_operand): Remove support for
14238         unused operand characters.
14239
14240         * read-rtl.c: Fix formatting.
14241         * real.c: Likewise.
14242         * recog.c: Likewise.
14243         * regclass.c: Likewise.
14244         * regmove.c: Likewise.
14245         * reg-stack.c: Likewise.
14246         * reload1.c: Likewise.
14247         * rtlanal.c: Likewise.
14248
14249 2002-01-15  Kazu Hirata  <kazu@hxi.com>
14250
14251         * config/i386/i386.c: Fix formatting.
14252
14253 2002-01-15  Jakub Jelinek  <jakub@redhat.com>
14254
14255         * c-typeck.c (process_init_element): Don't save_expr
14256         COMPOUND_LITERAL_EXPR if just its initializer will be used.
14257
14258 2002-01-15  David Edelsohn  <edelsohn@gnu.org>
14259
14260         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
14261         emit optional traceback table if optimize_size or TARGET_ELF.
14262         * config/rs6000/rs6000.md (prefetch): New.
14263
14264 2002-01-15  Andreas Jaeger  <aj@suse.de>
14265
14266         * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
14267
14268 2002-01-15  Kazu Hirata  <kazu@hxi.com>
14269
14270         * mips-tfile.c: Fix formatting.
14271
14272 Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>
14273
14274         * unroll.c (final_reg_note_copy): Fix previous commit.
14275
14276 2002-01-14  Kazu Hirata  <kazu@hxi.com>
14277
14278         * config/h8300/h8300-protos.h: Remove the prototype for
14279         eq_operator.
14280         * config/h8300/h8300.c (eq_operator): Remove.
14281
14282 2002-01-14  Richard Henderson  <rth@redhat.com>
14283
14284         * config/i386/i386.md (prefetch): Tidy.
14285         (prefetch_3dnow): Fix locality operand.
14286
14287 2002-01-14  Richard Henderson  <rth@redhat.com>
14288
14289         * config/mips/mips.h (HI_AND_FP_REGS): New register class.
14290         (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
14291
14292 2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>
14293
14294         * reload1.c (reload_combine): Pass reg_sum replacement through
14295         copy_rtx in loop performing multiple changes.
14296
14297 2002-01-14  Jakub Jelinek  <jakub@redhat.com>
14298
14299         * except.c (remove_unreachable_regions): New.
14300         (free_eh_status): Clear exception_handler_labels.
14301         (convert_from_eh_region_ranges): Call remove_unreachable_regions.
14302         (find_exception_handler_labels): Don't add the same label more than
14303         once.
14304         (remove_exception_handler_label): Don't die if
14305         find_exception_handler_labels hasn't been called for the current
14306         function yet.
14307
14308 Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>
14309
14310         * toplev.c (rest_of_compilation): Rebuild jump labels after
14311         gcse.
14312
14313 2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
14314
14315         * doc/extend.texi: Move documentation of X86 built-in functions
14316         here.
14317         * doc/invoke.texi: From here.
14318         * doc/sourcebuild.texi: Document location of documentation for
14319         machine built-in functions.
14320
14321 2002-01-13  Christopher Faylor  <cgf@redhat.com>
14322
14323         * cppfiles.c (TEST_THRESHOLD): New macro.
14324         (SHOULD_MMAP): Ditto.
14325         (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
14326         be used.
14327
14328 Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>
14329
14330         * unroll.c (final_reg_note_copy): Properly handle
14331         REG_LABEL
14332         (unroll_loops): Fix LOOP_CONDITION heuristics.
14333
14334 2002-01-14  Geoffrey Keating  <geoffk@redhat.com>
14335
14336         * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
14337         * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
14338
14339 Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>
14340
14341         * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
14342         threaded loop.
14343
14344 2002-01-14  Tom Rix  <trix@redhat.com>
14345
14346         * config/rs6000/rs6000.md: Fix typo with sradi.
14347
14348 2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>
14349
14350         * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
14351         movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
14352         (clrstrdi, clrstrsi): Adapt callers.
14353
14354         (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
14355
14356         (movti splitter): Never use register 0 as base register.
14357
14358 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
14359
14360         * combine.c (simplify_shift_const): Always generate new rtx
14361         for shift expression instead of reusing given expression.
14362
14363 Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14364
14365         * config/alpha/alpha.c (alpha_expand_mov): Don't call
14366         alpha_legitimize_address unless mode is Pmode.
14367
14368 2002-01-13  Geoffrey Keating  <geoffk@redhat.com>
14369
14370         * doc/md.texi (Modifiers): Document the '*' constraint for the
14371         user.
14372
14373         * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
14374         * doc/extend.texi (Function Attributes): 'interrupt' is valid
14375         for xstormy16 too.
14376
14377 2002-01-13  Richard Henderson  <rth@redhat.com>
14378
14379         * reload.c (find_reloads): Use a hard reg destination as reload reg
14380         for an input reload of the source.
14381
14382 2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
14383
14384         * doc/install.texi (Binaries): Make link to ftp.writtenword.com
14385         more generic.
14386
14387 Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>
14388
14389         * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
14390         * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
14391
14392         * config/alpha/x-vms (USE_COLLECT2): Set to empty.
14393
14394 Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14395
14396         * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
14397
14398 2002-01-12  Tom Rix  <trix@redhat.com>
14399
14400         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
14401         TARGET_POWERPC64.
14402
14403 2002-01-12  Richard Henderson  <rth@redhat.com>
14404
14405         * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
14406
14407         * doc/invoke.texi: Update Alpha options.
14408
14409         * doc/invoke.texi: Update i386 built-in function lists.
14410
14411 Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>
14412
14413         * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
14414         referencing outside.
14415
14416 Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14417
14418         * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
14419         * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
14420         offsets, and change line folding.
14421         * optabs.c (expand_binop): Remove warnings.
14422         * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
14423
14424 2002-01-12  Graham Stott <grahams@redhat.com>
14425
14426         * attribs.c (handle_deprecated_attribute): constify WHAT.
14427         * diagnostic.c (warn_deprecated_use): Add braces, fixes
14428         dangling else warning and constify WHAT.
14429         * except.h (struct function, struct inline_remap): Move
14430         struct tag forward defs before all prototypes.
14431         (duplicate_eh_regions): Whitespace.
14432
14433 2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>
14434
14435         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
14436         MODE_BASE_REG_CLASS.
14437         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
14438
14439 2002-01-12  Richard Henderson  <rth@redhat.com>
14440
14441         * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
14442         (ix86_expand_vector_move): New.
14443         (bdesc_2arg): Remove andps, andnps, orps, xorps.
14444         (ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
14445         Remove old prefetch builtins.  Special case the logicals removed above.
14446         (ix86_expand_builtin): Likewise.
14447         (safe_vector_operand): Use V4SFmode, not TImode.
14448         (ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
14449         (ix86_expand_timode_binop_builtin): New.
14450         * config/i386/i386-protos.h: Update.
14451         * config/i386/i386.h (enum ix86_builtins): Update.
14452         * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
14453         Use ix86_expand_vector_move in vector move expanders.
14454         (movti_internal, movti_rex64): Add xorps alternative.
14455         (sse_clrv4sf): Rename and adjust from sse_clrti.
14456         (prefetch): Don't work so hard.
14457         (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
14458         * config/i386/xmmintrin.h (__m128): Use V4SFmode.
14459         (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
14460
14461 2002-01-11  Richard Henderson  <rth@redhat.com>
14462
14463         * config/i386/mmintrin.h: New file.
14464         * config/i386/xmmintrin.h: New file.
14465         * config.gcc (i?86-*-*): Add extra_headers.
14466         * simplify-rtx.c (simplify_unary_operation): Handle saturating
14467         truncation codes.
14468         (simplify_binary_operation): Handle saturating arithmetic codes.
14469         * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
14470         not the lowpart subreg.
14471         (ix86_expand_builtin): Return a TImode dummy register instead of 0
14472         on error.
14473         * config/i386/i386.md (mmx_clrdi): Override memory attribute.
14474
14475 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14476
14477         * conflict.c (conflict_graph_compute): Free regsets when finished.
14478         * ssa.c (compute_coalesced_reg_partition): Likewise.
14479
14480 2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
14481
14482         * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
14483         every where we allocate a register.
14484
14485 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14486
14487         * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
14488         * lcm.c (compute_earliest, compute_farthest): Likewise.
14489
14490 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
14491
14492         * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
14493
14494 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
14495
14496         * doc/rtl.texi (Insns): Fix 2 typos.
14497
14498 2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>
14499
14500         * doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
14501         options.  Use @table @gcctabopt for MMIX options.  Add index
14502         entries for MMIX options.  Start new paragraph with first
14503         heading of the machine-dependent options.
14504
14505 2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>
14506
14507         PR other/5299
14508         * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
14509         * combine.c (force_to_mode): Same.
14510         * reload1.c (clear_reload_reg_in_use): Same.
14511
14512 2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>
14513
14514         * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
14515         and 'subtargets'.
14516
14517 2002-01-11  Andreas Jaeger  <aj@suse.de>,
14518             Brad Lucier <lucier@math.purdue.edu>
14519
14520         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
14521         mcpu.
14522
14523 Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>
14524
14525         * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
14526         Protect with IN_LIBGCC.
14527         (LINK_EH_SPEC): Add required trailing space.
14528
14529 Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>
14530
14531         * c-tree.h: Move function declarations so that they are listed
14532         under the filename which contains them.
14533         (check_identifier, finish_decl_top_level,
14534         lookup_name_current_level_global, shadow_record_fields): Remove.
14535
14536 2002-01-11  Andreas Jaeger  <aj@suse.de>
14537
14538         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
14539         march.
14540
14541 2002-01-10  Richard Henderson  <rth@redhat.com>
14542
14543         * config/alpha/alpha.c (print_operand): Add 'J'.
14544         * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
14545         new operand with the sequence number for the lituse.  When splitting
14546         the insns, use gen_movdi_er_high_g and generate a sequence number.
14547         (gen_movdi_er_high_g): Print the sequence number if non-zero.
14548
14549 2002-01-10  Aldy Hernandez  <aldyh@redhat.com>
14550
14551         * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
14552         lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
14553         stvxl.
14554         (altivec_expand_builtin): Same.
14555         (altivec_expand_stv_builtin): New.
14556
14557         * config/rs6000/rs6000.h (rs6000_builtins): Same.
14558
14559         * config/rs6000/rs6000.md ("altivec_lvebx"): New.
14560         ("altivec_lvehx"): New.
14561         ("altivec_lvewx"): New.
14562         ("altivec_lvxl"): New.
14563         ("altivec_lvx"): New.
14564         ("altivec_stvx"): New.
14565         ("altivec_stvebx"): New.
14566         ("altivec_stvehx"): New.
14567         ("altivec_stvewx"): New.
14568         ("altivec_stvxl"): New.
14569
14570 2002-01-10  Richard Henderson  <rth@redhat.com>
14571
14572         * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
14573         * reload1.c (delete_output_reload): Zap spill_reg_store.  Take
14574         care not to delete instructions twice.
14575
14576 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
14577
14578         * toplev.c: Don't declare environ (it's not used anywhere).
14579         * configure.in: Don't check for declaration of environ.
14580         * config/i386/xm-mingw32.h: Don't #define environ.
14581         * config.in, configure: Regenerate.
14582
14583 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
14584
14585         * configure.in: Set stage1_cflags for powerpc-*-darwin*.
14586         * configure: Regenerate.
14587
14588         * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
14589         DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
14590         * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
14591         alpha/xm-vms.h.
14592         * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
14593         LIMITS_H_TEST here, not in m68k/x-next.
14594         * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
14595         SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
14596
14597         * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
14598         LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
14599         * config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.
14600
14601         * config/i386/x-djgpp: Renamed i386/t-djgpp.
14602         * config/m88k/x-dolph: Renamed m88k/t-dolph.
14603         * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
14604         * config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
14605         replacement of quadlib.asm with quadlib.c.
14606
14607         * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
14608         config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
14609         config/rs6000/xm-beos.h: Delete file.
14610
14611         * config.gcc: Update to match above changes.
14612
14613 2002-01-10  Kazu Hirata  <kazu@hxi.com>
14614
14615         * config/h8300/h8300.h: Fix comment typos.
14616         * config/h8300/h8300.md: Likewise.
14617         * config/h8300/lib1funcs.asm: Likewise.
14618
14619 2002-01-10  Dale Johannesen  <dalej@apple.com>
14620
14621         PR optimization/5269
14622         * unroll.c (precondition_loop_p): Make *increment be the correct
14623         sign when n_iterations known, to avoid confusing caller.
14624
14625 2002-01-10  Kazu Hirata  <kazu@hxi.com>
14626
14627         * doc/extend.texi (deprecated): Fix a typo.
14628
14629 Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>
14630
14631         * basic-block.h (update_br_prob_note): Declare.
14632         * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
14633         (try_forward_edges): Care negative frequencies and update note.
14634         (outgoing_edges_match): Tweek conditional merging heuristics.
14635         (try_crossjump_to_edge): use update_br_prob_note.
14636         * cfglayout.c (fixup_reorder_chain): Likewise.
14637         * cfrtl.c (update_br_prob_note): New.
14638         * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
14639
14640         * i386.c (ix86_decompose_address): Return -1 if address contains
14641         shift.
14642         (legitimate_address_p): Require ix86_decompose_address to return 1.
14643
14644         * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
14645         (cprop_insn): Likewise.
14646
14647 2002-01-10  Kazu Hirata  <kazu@hxi.com>
14648
14649         * toplev.c: Fix formatting.
14650         * tree.c: Likewise.
14651         * tree-dump.c: Likewise.
14652         * unroll.c: Likewise.
14653         * unwind-dw2.c: Likewise.
14654         * unwind-dw2-fde.c: Likewise.
14655         * unwind-dw2-fde-glibc.c: Likewise.
14656         * unwind-sjlj.c: Likewise.
14657
14658 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
14659
14660         * doc/invoke.texi: Document PDP-11 options.
14661
14662 2002-01-10  Kazu Hirata  <kazu@hxi.com>
14663
14664         * config/h8300/h8300.h: Fix formatting.
14665
14666 2002-01-10  Ira Ruben   <ira@apple.com>
14667
14668         Add __attribute__ ((deprecated)).
14669         * extend.texi: Document __attribute__ ((deprecated)).
14670         * invoke.texi: Document -Wno-deprecated-declarations.
14671         * testsuite/g++.dg/other/deprecated.C: New C++ test.
14672         * testsuite/gcc.dg/deprecated.c: New C test.
14673         * attribs.c (enum attrs): Declare handle_deprecated_attribute().
14674         (c_common_attribute_table): Add "deprecated" entry.
14675         (handle_deprecated_attribute): New function.
14676         * c-decl.c (deprecated_states): New enum.
14677         deprecated_state: State of "deprecated" handling.
14678         (start_decl): Set deprecated_state based on attributes.
14679         (grokdeclarator): Test for deprecated uses, propagate attribute.
14680         * c-typeck.c (build_component_ref): Test for deprecated fields.
14681         (build_external_ref): Test for deprecated primaries.
14682         * diagnostic.c (warn_deprecated_use) New function to issue
14683         warnings about __attribute__ ((depricated)) references.
14684         * flags.h (warn_deprecated_decl): Extern declared for
14685         -W[no-]deprecated-declarations option.
14686         * print-tree.c (print_node): Show deprecated flag status.
14687         * toplev.c (warn_deprecated_decl): Defined.
14688         (W_options): Added "deprecated-declaration".
14689         * toplev.h (warn_deprecated_use): Extern declared.
14690         * tree.h (struct tree_common): Define deprecated_flag.
14691         (TREE_DEPRECATED): New macro to access flag.
14692         * cp/call.c (build_call): Test for deprecated calls.
14693         * cp/class.c (add_implicitly_declared_members): Set global
14694         flag to tell grokdeclarator to not issue deprecated warnings.
14695         * cp/cp-tree.h: Add extern for adding_implicit_members.
14696         * cp/decl.c (deprecated_states): New enum.
14697         (start_decl): Set deprecated_state based on attributes.
14698         (grokdeclarator): Test for deprecated uses, propagate attribute.
14699         * cp/lex.c (do_identifier): Test for deprecated primaries.
14700         * cp/typeck.c (build_component_ref): Test for deprecated fields.
14701
14702 2002-01-10  Ira Ruben   <ira@apple.com>
14703
14704         Fix to assign attributes to inline member functions.
14705         * cp/decl.c (start_method): Handle attrlist.
14706
14707 2002-01-10  Kazu Hirata  <kazu@hxi.com>
14708
14709         * combine.c (expand_field_assignment): Use subreg_lsb().
14710
14711 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
14712
14713         * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
14714         POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
14715         (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
14716         Recurse for any operand of AND as long as constant is non-zero.
14717
14718 2002-01-10  Kazu Hirata  <kazu@hxi.com>
14719
14720         * config/h8300/h8300.md: Remove constraints from expanders.
14721
14722 2002-01-10  Kazu Hirata  <kazu@hxi.com>
14723
14724         * varasm.c: Fix formatting.
14725         * varray.c: Likewise.
14726         * vmsdbgout.c: Likewise.
14727         * xcoffout.c: Likewise.
14728
14729 Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>
14730
14731         * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
14732         update edge probabilities to match.
14733
14734 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
14735
14736         * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
14737         dependencies.
14738         * doc/languages.texi, doc/sourcebuild.texi: New files.
14739         * doc/configfiles.texi: Make a subsubsection.  Update.
14740         * doc/configterms.texi: Add @node.  Remove warning that this isn't
14741         instructions for building GCC.
14742         * doc/makefile.texi: Make a subsection.
14743         * doc/gccint.texi: Update.
14744
14745 Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>
14746
14747         * i386.md (sse_mov?fcc_const0_?): Fix constraints.
14748
14749 Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>
14750
14751         * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
14752
14753 Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>
14754
14755         * optabs.c (expand_fix): Look for wider integer modes first.
14756
14757         * i386.md (mov?f): Avoid the fake const double trick for medium
14758         memory model.
14759         (min?f*/max?f*): Prohibit memory operands for i387 variant.
14760         (fop_df_4): Disable for SSE compilation.
14761
14762 2002-01-10  Graham Stott  <grahams@redhat.com>
14763
14764         * dwarf2out.c (indirect_string_alloc, output_indirect_string):
14765         Move prototype into DWARF2_DEBUGGING_INFO conditional block.
14766
14767 2002-01-10  Richard Henderson  <rth@redhat.com>
14768
14769         * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
14770
14771 2002-01-10  Richard Henderson  <rth@redhat.com>
14772
14773         * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
14774         (copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.
14775
14776 2002-01-10  Kazu Hirata  <kazu@hxi.com>
14777
14778         * combine.c (can_combine_p): Fix a comment typo.
14779
14780 2002-01-09  Zack Weinberg  <zack@codesourcery.com>
14781
14782         * Makefile.in (s-gencheck, s-options, s-specs): Handle an
14783         empty list correctly.  Change loop index $t to $f for
14784         consistency with rest of Makefile.
14785
14786 2002-01-08  Aldy Hernandez  <aldyh@redhat.com>
14787
14788         * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
14789         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
14790
14791         * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
14792         mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
14793         (altivec_init_builtins): Same.
14794         (altivec_expand_unop_builtin): Return NULL_RTX on error.
14795         (altivec_expand_binop_builtin): Same.
14796         (altivec_expand_ternop_builtin): Same.
14797         (bdesc_dst): New.
14798
14799         * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
14800         ("altivec_vctuxs"): Fix typo.
14801         ("altivec_vnmsubfp"): Same.
14802         ("altivec_dssall"): New.
14803         ("altivec_mfvscr"): New.
14804         ("altivec_dss"): New.
14805         ("altivec_lvsl"): New.
14806         ("altivec_lvsr"): New.
14807         ("altivec_dstt"): New.
14808         ("altivec_dstst"): New.
14809         ("altivec_dststt"): New.
14810         ("altivec_dst"): New.
14811
14812         * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
14813         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
14814
14815 2002-01-09  Richard Henderson  <rth@redhat.com>
14816
14817         * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
14818
14819 2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>
14820
14821         * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
14822         function.
14823         * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
14824         prototype.
14825         * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
14826
14827 2002-01-09  Kazu Hirata  <kazu@hxi.com>
14828
14829         * read-rtl.c: Fix formatting.
14830         * real.c: Likewise.
14831         * regclass.c: Likewise.
14832         * regrename.c: Likewise.
14833         * reg-stack.c: Likewise.
14834         * reload1.c: Likewise.
14835         * reload.c: Likewise.
14836         * rtl.c: Likewise.
14837
14838 2002-01-09  Kazu Hirata  <kazu@hxi.com>
14839
14840         * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
14841         to extract items in the expr_list chain.
14842
14843 2002-01-09  Richard Henderson  <rth@redhat.com>
14844
14845         * config/vax/vax.c (vax_rtx_cost): Never abort.
14846
14847         * config/vax/vax.h (REAL_ARITHMETIC): Define.
14848
14849 2002-01-09  Jan Hubicka  <jh@suse.cz>
14850
14851         * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
14852
14853 2002-01-09  Richard Henderson  <rth@redhat.com>
14854
14855         * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
14856         Unify code from various alternatives.
14857
14858 2002-01-09  Richard Henderson  <rth@redhat.com>
14859
14860         * regrename.c (copy_value): Ignore the copy if the source register
14861         is present in the value chain with a narrower mode.
14862
14863 2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
14864
14865         * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
14866         for the c4x target. Also improve layout.
14867
14868 2002-01-09  Richard Henderson  <rth@redhat.com>
14869
14870         * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
14871         * config/m32r/m32r.md (and ior xor splitters): Swap operands
14872         to match insn patterns.
14873
14874 2002-01-09  Richard Henderson  <rth@redhat.com>
14875
14876         * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
14877         (copyprop_hardreg_forward_1): Likewise.
14878
14879 2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14880
14881         * pa.md (decrement_and_branch_until_zero): Change predicate for
14882         operand 0 from register_operand to reg_or_nonsymb_mem_operand.
14883
14884 2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
14885
14886         * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
14887         gets undefined. For Darwin.
14888
14889 2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
14890
14891         * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
14892
14893 2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14894
14895         * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
14896
14897 2002-01-08  Richard Henderson  <rth@redhat.com>
14898
14899         * regrename.c (copy_value): Ignore overlapping copies.
14900
14901 2002-01-08  Richard Henderson  <rth@redhat.com>
14902
14903         * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
14904         as needed to avoid shared structure.
14905
14906 2002-01-08  Kazu Hirata  <kazu@hxi.com>
14907
14908         * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
14909         H8/300H and H8/S.
14910
14911 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
14912
14913         * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
14914         LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
14915         documentation of obsolete macros.
14916         * system.h: Poison these macros.
14917         * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
14918         config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
14919         config/c4x/c4x.h, config/clipper/clipper.h,
14920         config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
14921         config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
14922         config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
14923         config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
14924         config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
14925         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
14926         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
14927         config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
14928         config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
14929         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
14930         config/sparc/sparc.h, config/stormy16/stormy16.h,
14931         config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
14932         definitions and commented out definitions of obsolete macros.
14933         * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
14934         of MAX_INT_TYPE_SIZE.
14935
14936 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
14937
14938         * config/s390/s390.c (s390_preferred_reload_class): Never
14939         return ADDR_REGS if it isn't a subset of the given class.
14940         * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
14941         FP_REGS, but all superclasses as well.
14942
14943         * config/s390/s390.c (s390_function_profiler): Fix thinko.
14944
14945         * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
14946         cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
14947         must not be a const_int.
14948
14949 2002-01-08  Richard Henderson  <rth@redhat.com>
14950
14951         * Makefile.in (toplev.o): Depend on options.h.
14952         (gcc.o): Depend on specs.h.
14953
14954 2002-01-08  Jakub Jelinek  <jakub@redhat.com>
14955
14956         * expr.c (store_expr): Convert VOIDmode constants back to target's
14957         mode.
14958
14959 2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
14960
14961         * doc/invoke.texi: Markup gcc as @command.  Refer to
14962         http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
14963         of http://gcc.gnu.org/thanks.html.
14964
14965 2002-01-08  Dale Johannesen  <dalej@apple.com>
14966
14967         * config/rs6000/rs6000.md: Add missing int register
14968         target case to movdf_low.
14969
14970 2002-01-08  Zack Weinberg  <zack@codesourcery.com>
14971
14972         * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
14973         except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
14974         (cppinit.o): Depend on except.h.
14975         (gencheck.h, options.h, specs.h, s-gencheck, s-options,
14976         s-specs): New rules.
14977
14978         * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
14979         Don't create specs.h/options.h/gencheck.h here.  Remove
14980         unnecessary variable settings from last argument of AC_OUTPUT.
14981         * config.in, configure: Regenerate.
14982         * intl.c: Hardcode package name as "gcc".
14983
14984         * cppinit.c: Include except.h.
14985         (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
14986         appropriate.
14987         * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
14988         Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
14989         (!)USING_SJLJ_EXCEPTIONS.
14990         * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
14991
14992 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
14993
14994         * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
14995         ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
14996         OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
14997         documentation of obsolete macros.
14998         * system.h: Poison these macros.
14999         * config/d30v/d30v.h, config/ns32k/encore.h,
15000         config/stormy16/stormy16.h: Remove definitions and commented out
15001         definitions of obsolete macros.
15002
15003 Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>
15004
15005         * objc/objc-act.c (handle_class_ref): Mark the declaration of
15006         %sobjc_class_ref_%s as used - to prevent unwanted compiler
15007         warnings.
15008
15009 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
15010
15011         * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
15012         * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
15013         to insn adjusting stack/frame pointer.
15014         * config/s390/s390.md (reload_la_64, reload_la_31): Do not
15015         accept operands that cause the insn to be non-splittable.
15016
15017 2002-01-08  Graham Stott  <grahams@redhat.com>
15018
15019         * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
15020         (C_TYPE_FIELDS_VOLATILE): Likewise.
15021         (C_TYPE_BEING_DEFINED): Likewise.
15022         (C_IS_RESERVED_WORD): Likewise.
15023         (C_TYPE_VARIABLE_SIZE): Likewise.
15024         (C_DECL_VARIABLE_SIZE): Likewise.
15025         (C_MISSING_PROTOTYPE_WARNED): Likewise.
15026         (C_SET_EXP_ORIGINAL_CODE): Likewise.
15027         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
15028         parenthesis.
15029         (C_DECL_ANTICIPATED): Likewise.
15030         (c_build_type_variant): Add parenthesis.
15031
15032 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
15033
15034         * gcc.c (option_map): Remove --version.
15035         (process_command): Handle -fversion following the GNU Coding
15036         Standards.  Partially addresses PR other/704.
15037
15038 2002-01-08  Graham Stott  <grahams@redhat.com>
15039
15040         * combine.c (combine_instructions): Fix typo.
15041
15042 2002-01-08  Graham Stott  <grahams@redhat.com>
15043
15044         * debug.h: Use "tree" and "rtx" throughout.
15045
15046         * debug.c: Likewise.
15047
15048 2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>
15049
15050         * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
15051         constant pool, use the pool's version of the symbol instead.
15052
15053 2002-01-07  Richard Henderson  <rth@redhat.com>
15054
15055         * regrename.c (find_oldest_value_reg): Ignore the value chain if
15056         the original register was copied in a mode with a fewer number of
15057         hard registers than the desired mode.
15058         (copyprop_hardreg_forward_1): Likewise.
15059         (debug_value_data): Fix loop test.
15060         * toplev.c (parse_options_and_default_flags): Reenable
15061         -fcprop-registers at -O1.
15062
15063 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
15064
15065         * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
15066         (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
15067
15068         * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
15069         predicates.
15070
15071         * config/rs6000/rs6000.md: Add altivec predicate patterns.
15072
15073 2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15074
15075         * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
15076         (pa_output_function_prologue): Output local label at the beginning of
15077         the prologue when profiling.
15078         (hppa_profile_hook): Use the local label rather than the function label.
15079         * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
15080
15081 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
15082
15083         * config/rs6000/rs6000.c (print_operand): Remove extra space.
15084         (altivec_expand_unop_builtin): Fix thinko.
15085         (altivec_expand_binop_builtin): Same.
15086         (altivec_expand_ternop_builtin): Same.
15087         (altivec_expand_builtin): Same.
15088
15089 2002-01-07  Richard Henderson  <rth@redhat.com>
15090
15091         * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
15092
15093 2002-01-07  Jason Merrill  <jason@redhat.com>
15094
15095         * unwind-dw2.c (execute_cfa_program): Use < again.
15096
15097 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
15098
15099         * predict.c (combine_predictions_for_insn): Avoid division by zero.
15100
15101 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
15102
15103         * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
15104         Don't allow -1 - x -> ~x simplifications in the first pass.
15105
15106 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
15107
15108         * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
15109         arguments.
15110         (altivec_expand_binop_builtin): Same.
15111         (altivec_expand_unop_builtin): Same.
15112         (print_operand): Fix typo.
15113         (bdesc_1arg): Add vupk* variants.
15114
15115         * rs6000.h (rs6000_builtins): Add vupk* enums.
15116
15117         * rs6000.md: Add altivec_vupk* variants.
15118
15119 2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
15120
15121         * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
15122         doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
15123         and last update dates.
15124
15125 2002-01-07  Janis Johnson  <janis187@us.ibm.com>
15126
15127         * doc/rtl.texi (Flags): Clean up documentation of RTL flags
15128
15129 2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>
15130
15131         * config/avr/avr.c (avr_mcu_types): Add new MCU types.
15132         * config/avr/avr.h (CPP_SPEC): Likewise.
15133         (LINK_SPEC): Likewise.
15134         (CRT_BINUTILS_SPECS): Likewise.
15135         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
15136         * doc/invoke.texi (AVR Options): Document them.
15137
15138 Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>
15139
15140         * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
15141         LABEL_NUSES.
15142
15143 2002-01-07  Graham Stott  <grahams@redhat.com>
15144
15145         * config/i386/i386.h: Update copyright date.
15146         (HALF_PIC_PTR): Add parenthesis.
15147         (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
15148         (CONSTANT_ALIGNMENT): Add parenthesis.
15149         (DATA_ALIGNMENT): Likewise.
15150         (LOCAL_ALIGNMENT): Likewise.
15151         (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
15152         (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
15153         (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
15154         (HARD_REGNO_NREGS): Add paranethesis.
15155         (VALID_SSE_REG_MODE): Whitespace.
15156         (VALID_MMX_REG_MODE): Whitespace.
15157         (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
15158         (ix86_hard_regno_mode_ok): Add parenthesis.
15159         (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
15160         (RETURN_IN_MEMORY): Whitespace.
15161         (N_REG_CLASSES): Add parenthesis.
15162         (INTEGER_CLASS_P): Add parenthesis and wrap.
15163         (FLOAT_CLASS_P): Likewise.
15164         (SSE_CLASS_P): Likewise.
15165         (MMX_CLASS_P): Likewise.
15166         (MAYBE_INTEGER_CLASS_P): Likewise.
15167         (MAYBE_FLOAT_CLASS_P): Likewise.
15168         (MAYBE_SSE_CLASS_P): Likewise.
15169         (MAYBE_MMX_CLASS_P): Likewise.
15170         (Q_CLASS_P): Likewise.
15171         (GENERAL_REGNO_P): Uppercase macro parameter.
15172         (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
15173         (FP_REGNO_P): Likewise.
15174         (ANY_FP_REGNO_P): Uppercase macro parameter.
15175         (SSE_REGNO_P): Likewise.
15176         (SSE_REGNO): Likewise.
15177         (SSE_REG_P): Likewise.
15178         (SSE_FLOAT_MODE_P): Likewise.
15179         (MMX_REGNO_P): Likewise.
15180         (MMX_REG_P):Likewise.
15181         (STACK_REG_P): Likewise.
15182         (NON_STACK_REG_P): Likewise.
15183         (STACK_TOP_P): Likewise.
15184         (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
15185         (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
15186         (SECONDARY_MEMORY_NEEDED): Likewise.
15187         (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
15188         (MD_ASM_CLOBBERS): Whitespace and wrap.
15189         (MUST_PASS_IN_STACK): Whitespace and wrap.
15190         (RETURN_POPS_ARGS): Add parenthesis.
15191         (INIT_CUMULATIVE_ARGS): Likewise.
15192         (FUNCTION_ARG): Likewise.
15193         (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
15194         (SETUP_INCOMING_VARARGS): Likewise.
15195         (BUILD_VA_LIST_TYPE):  Add parenthesis.
15196         (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
15197         parenthsis.
15198         (EXPAND_BUILTIN_VA_ARG): Likewise.
15199         (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
15200         (INITIALIZE_TRAMPOLINE): Add parenthesis.
15201         (INITIAL_ELIMINATION_OFFSET): Likewise.
15202         (REGNO_OK_FOR_INDEX_P): Add parenthesis.
15203         (REGNO_OK_FOR_BASE_P): Likewise.
15204         (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
15205         (REGNO_OK_FOR_DIREG_P): Likewise.
15206         (REG_OK_FOR_INDEX_P): Whitespace.
15207         (REG_OK_FOR_BASE_P): Whitespace.
15208         (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
15209         parenthesis.
15210         (FIND_BASE_TERM): Fix typo.
15211         (LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
15212         (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
15213         (SYMBOLIC_CONST; Whitespace.
15214         (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
15215         (ENCODE_SECTION_INFO): Whitespace.
15216         (FINALIZE_PIC): Remove do { ... } while (0).
15217         (PROMOTE_MODE): Wrap in do { ... } while (0).
15218         (CONST_COSTS): Whitespace.
15219         (RTX_COSTS): Add paramethesis, whitespace and wrap.
15220         (REGISTER_MOVE_COST): Add parenthesis.
15221         (MEMORY_MOVE_COST): Likewise.
15222         (EXTRA_CC_MODES): Whitespace.
15223         (SELECT_CC_MODE): Add parenthesis and whitespace.
15224         (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
15225         (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
15226         (ASM_OUTPUT_LABEL): Add paramethesis.
15227         (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
15228         (ASM_OUTPUT_REG_POP): Likewise.
15229         (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
15230         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
15231
15232         * config/i386/i386.c: Update copyright.
15233         (CHECK_STACK_LIMIT): Add parenthesis.
15234         (AT_BP): Uppercase macro parameter.
15235         (x86_64_int_parameter_registers): Constify.
15236         (x86_64_int_return_registers): Likewise.
15237         (ix86_compare_op0): Use rtx.
15238         (construct_container): Constify INTREG parameter.
15239         (function_arg): Use rtx.
15240
15241         * diagnostic.h: Update copyright date.
15242         (output_buffer_state): Add parenthesis.
15243         (output_buffer_format_args): Likewise.
15244
15245         * combine.c (combine_instructions): Replace XEXP (links, 0)
15246         with link.
15247
15248 2002-01-06  H.J. Lu <hjl@gnu.org>
15249
15250         * cfgcleanup.c (thread_jump): Fix 2 typos.
15251
15252 2002-01-06  Aldy Hernandez  <aldyh@redhat.com>
15253
15254         * config.gcc: Add support for --enable-altivec.
15255
15256 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
15257
15258         * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
15259
15260 2002-01-06  Jakub Jelinek  <jakub@redhat.com>
15261
15262         * objc/objc-act.c (handle_impent): Use assemble_variable to emit
15263         __objc_class_name_*.
15264
15265 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
15266
15267         * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
15268
15269 2002-01-06  Richard Henderson  <rth@redhat.com>
15270
15271         * reorg.c (emit_delay_sequence): Remove death notes, not merely
15272         nop them out.  Increment label reference count for REG_LABEL.
15273         (fill_slots_from_thread): Frob label reference count around
15274         delete_related_insns.
15275
15276 2002-01-05  Richard Henderson  <rth@redhat.com>
15277
15278         * cfgcleanup.c (try_forward_edges): Detect infinite loops while
15279         jump threading.
15280
15281 2002-01-05  Richard Henderson  <rth@redhat.com>
15282
15283         * c-decl.c (c_expand_body): Don't call outlining_inline_function.
15284         * integrate.c (output_inline_function): Likewise.
15285         * toplev.c (rest_of_compilation): Do it here instead.  Move call
15286         to remove_unnecessary_notes after emitting abstract instance.
15287         Force an emitted nested function to have its parent emited as well.
15288         * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
15289         for null.
15290         (rtl_for_decl_location): Do not look at reload data structures
15291         before reload has run.
15292
15293 2002-01-05  Kazu Hirata  <kazu@hxi.com>
15294
15295         * cse.c: Fix formatting.
15296         * dwarf2asm.c: Likewise.
15297         * dwarf2out.c: Likewise.
15298         * explow.c: Likewise.
15299         * expmed.c: Likewise.
15300         * function.c: Likewise.
15301         * gcov.c: Likewise.
15302         * gencheck.c: Likewise.
15303         * genrecog.c: Likewise.
15304         * ggc-common.c: Likewise.
15305         * ggc-page.c: Likewise.
15306         * global.c: Likewise.
15307
15308 2002-01-05  Kazu Hirata  <kazu@hxi.com>
15309
15310         * combine.c: Fix formatting.
15311
15312 2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>
15313
15314         PR middle-end/1557
15315         * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
15316
15317 2002-01-05  David Edelsohn  <edelsohn@gnu.org>
15318
15319         * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
15320         as 1 for __powerpc64__ as well.
15321
15322         * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
15323
15324         * alias.c (find_base_value, PLUS/MINUS): If we found a base,
15325         return it.
15326
15327 2002-01-05  Daniel Berlin  <dan@dberlin.org>
15328
15329         * lcm.c: Revert change, due to performance regression it causes on
15330         SPEC because it's slightly more conservative (sigh, I hate
15331         edge-based LCM).
15332
15333 Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>
15334
15335         * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
15336
15337 2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
15338
15339         * doc/cppinternals.texi: Update.
15340
15341 2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>
15342
15343         * doc/invoke.texi (Option Summary) <MMIX Options>: Document
15344         -mbranch-predict, -mreg-stack-fill-bug-workaround and their
15345         negatives.
15346         (MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
15347         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
15348         kludge for pre-october-14th mmix versions to handle new-found bug
15349         with PUSHJ/PUSHGO and the register stack.
15350         * config/mmix/mmix.h (struct machine_function): Rename member
15351         has_call_value_without_parameters to has_call_without_parameters.
15352         All referers changed.
15353         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
15354         TARGET_MASK_BRANCH_PREDICT): New macros.
15355         (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
15356         -mno-reg-stack-fill-bug-workaround.
15357         * config/mmix/mmix.md ("call"): Set struct machine member
15358         has_call_without_parameters.
15359
15360 Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>
15361
15362         * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
15363
15364 Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>
15365
15366         * cfgcleanup.c: Include tm_p.h
15367         (mark_effect): Fix handling of hard register; fix handling of SET
15368
15369 2002-01-04  Kazu Hirata  <kazu@hxi.com>
15370
15371         * config/h8300/h8300.md (anonymous patterns): Check that
15372         operands are registers before using REGNO on them.
15373
15374 2002-01-03  Roland McGrath  <roland@frob.com>
15375
15376         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
15377
15378 2002-01-04  Jakub Jelinek  <jakub@redhat.com>
15379
15380         * tree.h (expand_expr_stmt_value): Add maybe_last argument.
15381         * c-common.h (genrtl_expr_stmt_value): Likewise.
15382         * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
15383         (expand_expr_stmt_value): Add maybe_last argument.
15384         Don't warn about statement with no effect if it is the last statement
15385         in expression statement.
15386         * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
15387         (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
15388         expand_expr_stmt_value.
15389         (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
15390         genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
15391         * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
15392         as maybe_last to expand_expr_stmt_value.
15393
15394 Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)
15395
15396         * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
15397         be passed in, do not build it.
15398         (c_begin_if_stmt): New function.
15399         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
15400         * c-common.h (c_expand_start_cond): Update prototype.
15401         (c_begin_if_stmt): Prototype new function.
15402         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
15403         * c-parse.in (if_prefix): Use c_begin_if_stmt,
15404         c_begin_while_stmt and c_finish_while_stmt_cond.
15405
15406 2002-01-04  William Cohen  <wcohen@redhat.com>
15407
15408         * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
15409         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
15410         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
15411         * config/pa/som.h (ASM_FILE_START): Likewise.
15412
15413 2002-01-04  Daniel Berlin  <dan@cgsoftware.com>
15414
15415         * lcm.c: Include df.h.
15416         Add available_transfer_function prototype.
15417         (compute_available): Rework to use iterative dataflow framework.
15418         (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
15419         with bb_info in df.h
15420         (available_transfer_function): New function.
15421
15422         * Makefile.in (lcm.o): add df.h to dependencies.
15423
15424 2002-01-04  Richard Henderson  <rth@redhat.com>
15425
15426         * config/alpha/alpha.c (some_operand): Accept HIGH.
15427         (input_operand): Likewise; accept simple references to globals.
15428         (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
15429         (alpha_const_double_ok_for_letter_p): Likewise.
15430         (alpha_extra_constraint): Likewise.
15431         (alpha_preferred_reload_class): Likewise.  Do not force
15432         symbolic constants to memory.
15433         (alpha_legitimate_address_p): Accept simple references
15434         to small_symbolic_operand.
15435         (alpha_legitimize_address): New arg scratch.  Be prepared to be
15436         called when no_new_pseudos.  Emit simple symbolic references.
15437         Split integers into low, high, and rest.
15438         (alpha_expand_mov): Use alpha_legitimize_address.
15439         (some_small_symbolic_mem_operand): New.
15440         (split_small_symbolic_mem_operand): New.
15441         * config/alpha/alpha-protos.h: Update.
15442         * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
15443         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
15444         (EXTRA_CONSTRAINT): Likewise.
15445         (PREFERRED_RELOAD_CLASS): Likewise.
15446         (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
15447         (PREDICATE_CODES): Update.
15448         * config/alpha/alpha.md: New post-reload splitters to convert
15449         simplfied symbolic operands to the form that references $29.
15450         (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
15451         (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
15452
15453 2002-01-03  Richard Henderson  <rth@redhat.com>
15454
15455         * local-alloc.c (function_invariant_p): Update commentary.
15456
15457 2002-01-04  H.J. Lu <hjl@gnu.org>
15458
15459         * toplev.c (rest_of_compilation): Fix a typo when calling
15460         cleanup_cfg.
15461
15462 2002-01-03  Kazu Hirata  <kazu@hxi.com>
15463
15464         * c-common.c: Fix formatting.
15465         * diagnostic.c: Likewise.
15466         * doloop.c: Likewise.
15467         * dwarf2out.c: Likewise.
15468
15469 2002-01-03  Kazu Hirata  <kazu@hxi.com>
15470
15471         * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
15472         of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
15473
15474 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
15475
15476         * cpperror.c: Update comments and copyright.
15477         * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
15478         cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
15479
15480 2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15481
15482         * collect2.c (main): Use strcmp when testing for "-shared".
15483
15484 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
15485
15486         * cppmacro.c: Don't include intl.h.  Update comments.
15487         (new_number_token): Allocate enough buffer for 64-bit unsigned
15488         integers; update prototype.
15489         * cppmain.c: Update comments.
15490
15491 2002-01-03  William Cohen  <wcohen@redhat.com>
15492
15493         * function.h (struct function): Add profile.
15494         (current_function_profile): New.
15495         doc/extend.texi: Update documentation.
15496         * final.c (final_start_function): Use current_function_profile
15497         instead of profile_flag.
15498         (profile_after_prologue): Likewise.
15499         * function.c (expand_function_start): Likewise.
15500         (expand_function_start): Likewise.
15501         * config/alpha/alpha.c (direct_call_operand):
15502         (alpha_does_function_need_gp): Likewise.
15503         (alpha_expand_prologue): Likewise.
15504         * config/arm/arm.c (arm_expand_prologue): Likewise.
15505         thumb_expand_prologue: Likewise.
15506         * config/d30v/d30v.c (d30v_stack_info): Likewise.
15507         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
15508         (fr30_expand_prologue): Likewise.
15509         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
15510         * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
15511         * config/i386/i386.h (FINALIZE_PIC): Likewise.
15512         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
15513         * config/i960/i960.c (i960_output_function_prologue): Likewise.
15514         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
15515         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
15516         (m32r_expand_prologue): Likewise.
15517         * config/m88k/m88k.c (m88k_layout_frame): Likewise.
15518         (m88k_expand_prologue): Likewise.
15519         * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
15520         * config/mips/mips.c (compute_frame_size): Likewise.
15521         (mips_expand_prologue): Likewise.
15522         (mips_can_use_return_insn): Likewise.
15523         * config/pa/elf.h (ASM_FILE_START): Likewise.
15524         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
15525         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
15526         * config/pa/som.h (ASM_FILE_START): Likewise.
15527         * config/romp/romp.c (romp_using_r14): Likewise.
15528         * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
15529         (rs6000_stack_info): Likewise.
15530         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
15531         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
15532         * config/v850/v850.c (compute_register_save_size): Likewise.
15533
15534 2002-01-03  Jakub Jelinek  <jakub@redhat.com>
15535
15536         * simplify-rtx.c (simplify_binary_operation) [DIV]: If
15537         gen_lowpart_common fails, use gen_lowpart_SUBREG.
15538
15539 2002-01-03  Turly O'Connor  <turly@apple.com>
15540
15541         * darwin.c (machopic_output_possible_stub_label): Don't generate
15542         stub routines for pseudo-stubs which we've just defined.
15543
15544 2002-01-03  Kazu Hirata  <kazu@hxi.com>
15545
15546         * builtins.c: Fix formatting.
15547         * c-typeck.c: Likewise.
15548         * combine.c: Likewise.
15549         * expr.c: Likewise.
15550         * loop.c: Likewise.
15551
15552 2002-01-03  Andreas Schwab  <schwab@suse.de>
15553
15554         * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
15555         and return true if _cpp_push_next_buffer pushed a new include
15556         file.
15557         * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
15558         _cpp_pop_file_buffer did not push a new file.
15559         * cpphash.h (_cpp_pop_file_buffer): Update declaration.
15560
15561 2002-01-02  Eric Christopher  <echristo@redhat.com>
15562
15563         * final.c (final_scan_insn): Change 0 -> NULL_RTX in
15564         FIND_REG_INC_NOTE call. Update copyright.
15565         * loop.c (canonicalize_condition): Ditto.
15566         * reorg.c (delete_scheduled_jump): Ditto.
15567
15568 2002-01-03  Kazu Hirata  <kazu@hxi.com>
15569
15570         * gcse.c: Fix formatting.
15571
15572 2002-01-03  Graham Stott  <grahams@redhat.com>
15573
15574         * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
15575         forward defs for struct tags rtx_def, union_tree, rtvec_def
15576         also output corresponding typedefs for rtx, tree, and rtvec.
15577
15578         * system.h: Move forward defs for struct tags rtx_def, union_tree,
15579         rtvec_def along with corresponding typedefs for rtx, tree, and
15580         rtvec to config.h, hconfig.h, tconfig.h.
15581
15582 2002-01-03  Graham Stott  <grahams@redhat.com>
15583
15584         * tree.h: Update copyright date.
15585         (IS_EXPR_CODE_CLASS): Add parenthesis.
15586         (TREE_SET_CODE): Add whitespace.
15587         (TREE_CHECK): Add parenthesis.
15588         (TREE_CLASS_CODE): Add parenthesis and wrap long line.
15589         (CST_OR_CONSTRUCTOR_CHECK):
15590         (EXPR_CHECK): Add parenthis, whitespace and wrap line.
15591         (TREE_SYMBOL_REFERENCED): Whitespace.
15592         (INT_CST_LT): Likewise.
15593         (INT_CST_LT_UNSIGNED): Likewise.
15594         (tree_real_cst): Unwrap comment.
15595         (tree_string): Likewise.
15596         (tree_complex): Likewise.
15597         (IDENTIFIER_POINTER): correct cast.
15598         (SAVE_EXPR_CONTEXT): Whitespace.
15599         (EXPR_WFL_FILENAME_NODE): Likewise.
15600         (EXPR_WFL_FILENAME): Remove parenthesis.
15601         (DECL_ORIGIN): Add parenthesis.
15602         (DECL_FROM_INLINE): Use NULL_TREE.
15603         (build_int_2): Whitespace.
15604         (build_type_variant): Add parenthesis.
15605
15606         * gcc/jcf-parse.c: Update copyright date.
15607         (yyparse): Constify resource_filename.
15608
15609 2002-01-03  Graham Stott  <grahams@redhat.com>
15610
15611         * rtl.h: Update copyright date.
15612         (RTL_CHECK1): Wrap long line.
15613         (RTL_CHECK2): Likewise.
15614         (RTL_CHECKC1): Wrap long line and whitespace.
15615         (RTL_CHECKC2): Likewise.
15616         (XWINT): Whitespace.
15617         (XINT): Likewise.
15618         (XSTR): Likewise.
15619         (XEXP): Likewise.
15620         (XVEC): Likewise.
15621         (XMODE): Likewise.
15622         (XBITMAP): Likewise.
15623         (XTREE): Likewise.
15624         (XBBDEF): Likewise.
15625         (XTMPL): Likewise.
15626         (X0WINT): Likewise.
15627         (X0INT):Likewise.
15628         (X0UINT): Likewise.
15629         (X0STR): Likewise.
15630         (X0EXP): Likewise.
15631         (X0VEC): Likewise.
15632         (X0MODE): Likewise.
15633         (X0BITMAP): Likewise.
15634         (X0TREE): Likewise.
15635         (X0BBDEF): Likewise.
15636         (X0ADVFLAGS): Likewise.
15637         (X0CSELIB): Likewise.
15638         (X0MEMATTR): Likewise.
15639         (XCWINT): Likewise.
15640         (XCINT): Likewise.
15641         (XCUINT): Likewise.
15642         (XCSTR): Likewise.
15643         (XCEXP): Likewise.
15644         (XCVEC): Likewise.
15645         (XCMODE): Likewise.
15646         (XCBITMAP): Likewise.
15647         (XCTREE): Likewise.
15648         (XCBBDEF): Likewise.
15649         (XCADVFLAGS): Likewise.
15650         (XCCSELIB): Likewise.
15651         (XC2EXP): Likewise.
15652         (INSN_UID): Likewise.
15653         (PREV_INSN): Likewise.
15654         (PATTERN): Likewise.
15655         (INSN_CODE): Likewise.
15656         (PUT_REG_NOTE_KIND): Likewise.
15657         (CODE_LABEL_NUMBER): Likewise.
15658         (NOTE_SOURCE_FILE): Likewise.
15659         (NOTE_BLOCK): Likewise.
15660         (NOTE_EH_HANDLER): Likewise.
15661         (NOTE_RANGE_INFO): Likewise.
15662         (NOTE_LIVE_INFO): Likewise.
15663         (NOTE_BASIC_BLOCK): Likewise.
15664         (NOTE_EXPECTED_VALUE): Likewise.
15665         (NOTE_LINE_NUMBER): Likewise.
15666         (LABEL_NAME): Likewise.
15667         (LABEL_NUSES): Likewise.
15668         (LABEL_ALTERNATE_NAME): Likewise.
15669         (ADDRESSOF_DECL): Likewise.
15670         (JUMP_LABEL): Likewise.
15671         (LABEL_NEXTREF): Likewise.
15672         (REGNO): Likewise.
15673         (ORIGINAL_REGNO: Likewise.
15674         (HARD_REGISTER_NUM_P): Add parenthesis.
15675         (SUBREG_REG): Whitespace.
15676         (SUBREG_BYTE): Likewise.
15677         (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
15678         (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
15679         (ASM_OPERANDS_OUTPUT_IDX): Likewise.
15680         (ASM_OPERANDS_INPUT_VEC): Likewise.
15681         (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
15682         (ASM_OPERANDS_INPUT): Likewise.
15683         (ASM_OPERANDS_INPUT_LENGTH): Likewise.
15684         (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
15685         (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
15686         (ASM_OPERANDS_INPUT_MODE): Likewise.
15687         (ASM_OPERANDS_SOURCE_FILE): Likewise.
15688         (ASM_OPERANDS_SOURCE_LINE): Likewise.
15689         (MEM_SET_IN_STRUCT_P): Minor reformat.
15690         (TRAP_CONDITION): Whitespace.
15691         (TRAP_CODE): Likewise.
15692         (COND_EXEC_TEST): Likewise.
15693         (COND_EXEC_CODE): Likewise.
15694         (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
15695         (PHI_NODE_P): Add parenthesis.
15696         (plus_constant): Whitespace and add parenthesis.
15697
15698 2002-01-03  Kazu Hirata  <kazu@hxi.com>
15699
15700         * config/avr/avr.c: Fix comment typos.
15701         * config/c4x/c4x.md: Likewise.
15702         * config/dsp16xx/dsp16xx.h: Likewise.
15703         * config/dsp16xx/dsp16xx.md: Likewise.
15704         * config/i386/i386.md: Likewise.
15705         * config/ia64/ia64.c: Likewise.
15706         * config/m32r/m32r.h: Likewise.
15707         * config/m68hc11/m68hc11.md: Likewise.
15708         * config/mmix/mmix.c: Likewise.
15709         * config/mn10200/mn10200.c: Likewise.
15710         * config/romp/romp.c: Likewise.
15711         * config/sh/sh.c: Likewise.
15712         * config/stormy16/stormy16.c: Likewise.
15713         * config/stormy16/stormy16.h: Likewise.
15714         * config/stormy16/stormy16.md: Likewise.
15715
15716 2002-01-03  Graham Stott  <grahams@redhat.com>
15717
15718         * loop.h: Update copyright date.
15719         (LOOP_MOVABLES): Fix typo.
15720         (LOOP_REGS): Likewise.
15721         (LOOP_IVS): Likewise.
15722
15723 2002-01-03  Graham Stott  <grahams@redhat.com>
15724
15725         * cppinit.c: Update copyright date.
15726         Don't include output.h
15727         * Makefile.in: Update copyright date.
15728         Update dependency.
15729
15730 2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
15731
15732         PR c/5226
15733         * invoke.texi (-mthreads): Remove from documented RS/6000 options.
15734         (-pthread) Add to RS/6000 options.
15735
15736 2002-01-02  Kazu Hirata  <kazu@hxi.com>
15737
15738         * except.c: Fix comment typos.
15739         * loop.c: Likewise.
15740         * varasm.c: Likewise.
15741         * doc/tm.texi: Fix a typo.
15742
15743 2002-01-02  Jakub Jelinek  <jakub@redhat.com>
15744
15745         * c-typeck.c (output_init_element): Allow initializing static storage
15746         duration objects with compound literals.
15747
15748 2002-01-02  Richard Henderson  <rth@redhat.com>
15749
15750         * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
15751         after abusing it.
15752
15753 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15754
15755         * gcc.c (default_compilers): Const-ify.
15756         * mips-tdump.c (stab_names): Likewise.
15757         * mips-tfile.c (map_coff_types, map_coff_storage,
15758         map_coff_sym_type, map_coff_derived_type, stabs_symbol,
15759         pseudo_ops_t, pseudo_ops): Likewise.
15760         * protoize.c (default_include): Likewise
15761
15762         * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
15763         (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
15764         Add array size in declaration.
15765         (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
15766         emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
15767         esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
15768         etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
15769         eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
15770         efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
15771         c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
15772         emtens, make_nan): Const-ify.
15773         (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
15774         DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
15775
15776 2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>
15777
15778         * config.gcc (ia64-*-*): Set extra_headers.
15779         (alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
15780         * config/alpha/t-osf: Remove.
15781         * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
15782
15783 2002-01-02  David Edelsohn  <edelsohn@gnu.org>
15784
15785         * config/rs6000/t-aix43: Revert previous change.
15786
15787 2002-01-02  Jason Merrill  <jason@redhat.com>
15788
15789         * c-decl.c (c_expand_body): Call outlining_inline_function when
15790         emitting an inline function out of line.
15791
15792 2002-01-02  Richard Henderson  <rth@redhat.com>
15793
15794         * dwarf2out.c (limbo_die_node): Add created_for member.
15795         (new_die): New argument created_for.  Update all callers.
15796         (mark_limbo_die_list): New.
15797         (dwarf2out_init): Register limbo_die_list as a root.
15798         (dwarf2out_finish): Force insert limbo dies into their function
15799         context.
15800
15801 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
15802
15803         PR c++/5089
15804         * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
15805
15806 2002-01-02  Kazu Hirata  <kazu@hxi.com>
15807
15808         * config/h8300/fixunssfsi.c: Update copyright.
15809         Fix comment typos.
15810         Fix formatting.
15811         * config/h8300/h8300.c: Update copyright.
15812         Eliminate warnings.
15813
15814 2002-01-02  Kazu Hirata  <kazu@hxi.com>
15815
15816         * config/romp/romp.c: Fix comment formatting.
15817         * config/romp/romp.h: Likewise.
15818         * config/romp/romp.md: Likewise.
15819         * config/s390/s390.c: Likewise.
15820         * config/stormy16/stormy16.c: Likewise.
15821         * config/stormy16/stormy16.h: Likewise.
15822
15823 2002-01-02  Alexandre Oliva  <aoliva@redhat.com>
15824
15825         * c-common.h (genrtl_expr_stmt_value): Declare.
15826         * c-semantics.c (genrtl_goto_stmt): Redirect to...
15827         (genrtl_goto_stmt_value): ... this new function.  Pass new
15828         argument down to expand_expr_stmt_value, taking
15829         TREE_ADDRESSABLE into account.
15830         * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
15831         STMT_EXPR as addressable, i.e., one whose result we want.
15832         * expr.c (expand_expr): Don't save expression statement value
15833         of labeled_blocks or loop_exprs.
15834         * stmt.c (expand_expr_stmt): Redirect to...
15835         (expand_expr_stmt_value): ... this new function.  Use new
15836         argument to tell whether to save expression value.
15837         (expand_end_stmt_expr): Reset last_expr_type and
15838         last_expr_value if we don't have either.
15839         * tree-inline.c (declare_return_variable): Mark its use
15840         statement as addressable.
15841         * tree.h: Document new use of TREE_ADDRESSABLE.
15842         (expand_expr_stmt_value): Declare.
15843
15844 2002-01-01  Tom Rix  <trix@redhat.com>
15845
15846         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
15847         rs6000_emit_allocate_stack.
15848
15849 2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
15850
15851         * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
15852         ${srcdir}/ginclude/ to every entry in extra_headers.
15853         * configure: Regenerate.
15854         * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
15855         * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
15856         * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
15857         * ginclude/proto.h: Rename to config/convex/proto.h.
15858
15859 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15860
15861         * attribs.c (handle_vector_size_attribute): Use host_integerp
15862         and tree_int_cst; remove warnings.
15863         * caller-save.c (insert_restore): Add cast to get rid of warning.
15864         (insert_save): Likewise.
15865         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
15866         * regmove.c (find_matches): Add temporary var to kill a warning.
15867
15868 2002-01-01  Douglas B Rupp  <rupp@gnat.com>
15869
15870         * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
15871         LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
15872         * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
15873         (vms-dwarf2eh.o): Add Makefile rule.
15874         * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
15875         * config/alpha/vms-dwarf2eh.asm: New file.
15876
15877         * gcc.c (delete_if_ordinary): Delete all versions.
15878
15879 2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
15880
15881         * config/mmix/mmix.md: Update FIXME to not mention
15882         define_constants.
15883         (MMIX_rJ_REGNUM): New define_constants constant.
15884         ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
15885         "*movdicc_real"): Adjust contraints formatting.
15886         ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
15887         for branch prediction.
15888         ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
15889         output template.
15890         ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
15891         "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
15892         number.  Delete related FIXMEs.
15893         * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
15894         from number to MMIX_rJ_REGNUM.
15895         (TARGET_MASK_BRANCH_PREDICT): New.
15896         (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
15897         (TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
15898         value.  Add -mbranch-predict and -mno-branch-predict.
15899         (TARGET_VERSION): Drop date.
15900         (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
15901         * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
15902         for finding out global symbols.
15903         (mmix_asm_output_labelref): Revert condition for global symbol.
15904         (mmix_print_operand): <case '+'>: Emit P for a likely branch.
15905         (mmix_print_operand_punct_valid_p): A '+' is valid.
15906
15907 See ChangeLog.6 for earlier changes.