OSDN Git Service

3b5970c0a951dde7b21e6e0d2700052d1accc321
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2001-09-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2
3         * config/i386/sol2.h (CPLUSPLUS_CPP_SPEC): Define.
4
5 2001-09-25  Bernd Schmidt  <bernds@redhat.com>
6
7         Mostly from Graham Stott  <grahams@redhat.com>
8         * c-common.c (type_for_mode): Add support for V2SFmode.
9         * tree.c (build_common_tree_nodes_2): Likewise.
10         * tree.h (enum tree_index, global_trees): Likewise.
11         * config/i386/i386.c (x86_3dnow_a): New variable.
12         (override_options): Support 3Dnow extensions.
13         (bdesc_2arg, bdesc_1arg): Some SSE instructions are also part of
14         Athlon's version of 3Dnow.
15         (ix86_init_mmx_sse_builtins): Create 3Dnow builtins.
16         (ix86_expand_builtin): Handle them.
17         (ix86_hard_regno_mode_ok): Support V2SFmode if using 3Dnow.
18         * config/i386/i386.h (MASK_3DNOW, MASK_3DNOW_A, TARGET_3DNOW,
19         TARGET_3DNOW_A): New macros.
20         (TARGET_SWITCHES): Add 3Dnow switches.
21         (VALID_MMX_REG_MODE_3DNOW): New macro.
22         (VECTOR_MODE_SUPPORTED_P): Use it.
23         (enum ix86_builtins): Add entries for 3Dnow builtins.
24         * config/i386/i386.md (movv2sf_internal, movv2sf, pushv2sf, pf2id,
25         pf2iw, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3, eqv2sf3,
26         pfmaxv23sf3, pfminv2sf3, mulv2sf3, femms, prefetch_3dnow, prefetchw,
27         pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pavgusb, pfrcpv2sf2,
28         pfrcpit1v2sf3, pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3,
29         pmulhrwvhi3, pswapdv2si2, pswapdv2sf2): New patterns.
30         (mmx_pmovmskb, mmx_maskmovq, sse_movntdi, umulv4hi3_highpart,
31         mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw,
32         mmx_pshufw, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, sfence,
33         sfence_insn, prefetch): Make these available if TARGET_SSE or
34         TARGET_3DNOW_A.
35         
36 Fri Sep 28 19:18:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
37
38         * i386-protos.h (ix86_setup_incoming_varargs, ix86_va_arg,
39         ix86_va_start, ix86_build_va_list): Declare.
40         * i386.c (ix86_setup_incoming_varargs, ix86_va_arg,
41         ix86_va_start, ix86_build_va_list): New global functions.
42         * i386.md (sse_prologue_save_insn): New insn.
43         (sse_prologue_save): New expander.
44         * i386.h (EXPAND_BUILTIN_VA_ARG, EXPAND_BUILTIN_VA_START,
45         BUILD_VA_LIST_TYPE, SETUP_INCOMING_VARARGS): New macros.
46
47 2001-09-28  Neil Booth  <neil@daikokuya.demon.co.uk>
48
49         * cpplex.c (new_buff, _cpp_get_buff, _cpp_extend_buff):
50         Use size_t everywhere, make definitions consistent with
51         prototypes.     
52
53 Fri Sep 28 14:59:34 CEST 2001  Jan Hubicka  <jh@suse.cz>
54
55         * gcse.c (replace_store_insn): Use delete_insn.
56         * loop.c (move_movables): Likewise; avoid delete_insn
57         from clobbering notes moved elsewhere.
58         (check_dbra_loop): Use delete_insn.
59         * ssa.c (convert_from_ssa): Likewise.
60         * cse.c (cse_insn): Use delete_insn.
61
62 2001-09-28  Neil Booth  <neil@daikokuya.demon.co.uk>
63
64         * cpphash.h (struct cpp_buff): Make unsigned.
65         (_cpp_get_buff): Take length of size_t.
66         (_cpp_unaligned_alloc): New.
67         (BUFF_ROOM, BUFF_FRONT, BUFF_LIMIT): New.
68         (struct cpp_reader): Remove ident_pool.  Add u_buff.
69         * cppinit.c (cpp_create_reader): Initialize u_buff, not ident_pool.
70         (cpp_destroy): Destroy u_buff, not ident_pool.
71         * cpplex.c (parse_number, parse_string, save_comment,
72         cpp_token_as_text): Update to use the unaligned buffer.
73         (new_buff): Make unsigned.
74         (_cpp_unaligned_alloc): New.
75         * cpplib.c (glue_header_name): Update to use the unaligned buffer.
76         * cppmacro.c (new_number_token, builtin_macro, stringify_arg):
77         Similarly.
78         (collect_args): Make unsigned.
79
80 2001-09-27  Zack Weinberg  <zack@codesourcery.com>
81
82         * cpplex.c (cpp_output_token): Use a putc loop for
83         SPELL_OPERATOR, and fwrite for SPELL_IDENT.
84
85         * configure.in: Detect fwrite_unlocked and fprintf_unlocked.
86         * configure, config.in: Regenerate.
87         * system.h: Replace fwrite and fprintf with their unlocked
88         variants if available.
89
90 2001-09-27  Richard Henderson  <rth@redhat.com>
91
92         * dwarf2out.c (dwarf2out_frame_finish): Never elide .debug_frame
93         in favour of .eh_frame.
94
95 2001-09-27  Aldy Hernandez  <aldyh@redhat.com>
96
97         * config/rs6000/rs6000.h (FUNCTION_VALUE): Change hardcoded 33 and 3
98         to macros.
99         (LIBCALL_VALUE): Likewise.
100
101 2001-09-27  Neil Booth  <neil@daikokuya.demon.co.uk>
102
103         * cpphash.h: Update comment.
104         * cpplex.c: Update comments.
105         (_cpp_can_paste): Remove.
106         * cpplib.h (_cpp_can_paste): Remove.
107         * cppmacro.c (paste_tokens, paste_all_tokens): Update to use the
108         lexer rather than _cpp_can_paste.
109
110 2001-09-27  Neil Booth  <neil@daikokuya.demon.co.uk>
111
112         * doc/cppinternals.texi: Update.
113
114 2001-09-26  Neil Booth  <neil@daikokuya.demon.co.uk>
115
116         * cpphash.h (struct cpp_pool): Remove locks and locked.
117         (struct cpp_context): Add member buff.
118         (struct cpp_reader): Remove member argument_pool.
119         (_cpp_lock_pool, _cpp_unlock_pool): Remove.
120         * cppinit.c (cpp_create_reader, cpp_destroy): Argument_pool is dead.
121         * cpplex.c (chunk_suitable): Remove pool argument.
122         (MIN_BUFF_SIZE, BUFF_SIZE_UPPER_BOUND, EXTENDED_BUFF_SIZE): New.
123         (new_buff, _cpp_extend_buff): Update.
124         (_cpp_get_buff): Fix silly pointer bug.  Be more selective about
125         which buffer is returned.
126         (_cpp_next_chunk, _cpp_init_pool): Pool locking removed.
127         (_cpp_lock_pool, _cpp_unlock_pool): Remove.
128         * cppmacro.c (lock_pools, unlock_pools): Remove.
129         (push_ptoken_context): Take a _cpp_buff.
130         (enter_macro_context): Pool locking removed.
131         (replace_args): Use a _cpp_buff for the replacement list with
132         arguments replaced.
133         (push_token_context): Clear buff.
134         (expand_arg): Use _cpp_pop_context.
135         (_cpp_pop_context): Free a context's buffer, if any.
136
137 2001-09-26  DJ Delorie  <dj@redhat.com>
138
139         * c-typeck.c (digest_init): Check for sizeless arrays.
140
141 2001-09-26  Richard Henderson  <rth@redhat.com>
142
143         * optabs.c (init_one_libfunc): Create a dummy function type
144         instead of using error_mark_node.
145
146 2001-09-26  Neil Booth  <neil@daikokuya.demon.co.uk>
147
148         * cpphash.h (struct _cpp_buff, _cpp_get_buff, _cpp_release_buff,
149         _cpp_extend_buff, _cpp_free_buff): New.
150         (struct cpp_reader): New member free_buffs.
151         * cppinit.c (cpp_destroy): Free buffers.
152         * cpplex.c (new_buff, _cpp_release_buff, _cpp_get_buff,
153         _cpp_extend_buff, _cpp_free_buff): New.
154         * cpplib.h (struct cpp_options): Remove unused member.
155         * cppmacro.c (collect_args): New.  Combines the old parse_arg
156         and parse_args.  Use _cpp_buff for memory allocation.
157         (funlike_invocation_p, replace_args): Update.
158
159 Wed Sep 26 13:20:51 CEST 2001  Jan Hubicka  <jh@suse.cz>
160
161         * final.c (final_scan_insn): Use delete_insn instead of delete_note.
162
163 2001-09-25  Andrew Haley  <aph@cambridge.redhat.com>
164
165         * except.c (sjlj_mark_call_sites): Change address inside sequence.
166
167 2001-09-24  Andrew Haley  <aph@cambridge.redhat.com>
168
169         * config/sh/linux.h (LINK_SPEC): Set dynamic-linker to agree with
170         glibc.
171
172 2001-09-25  Janis Johnson  <janis187@us.ibm.com>
173             Jim Wilson  <wilson@redhat.com>
174
175         * doc/install.texi (Specific, ia64-*-linux): Document.
176
177 Tue Sep 25 17:13:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
178
179         * Makefile.in (cfgrtl.o): Add.
180         * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks,
181         free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges,
182         free_aux_for_edge): Declare.
183         * cfg.c
184         (HAVE_return): Undefine.
185         * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks,
186         free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges,
187         free_aux_for_edge): New global functions.
188         (first_delete_block): New static variable.
189         (init_flow): Clear first_delete_block.
190         (basic_block_for_insn, label_value_list, tail_recursion_label_list,
191          can_delete_note_p, can_delete_label_p, commit_one_edge_insertion,
192          try_redirect_by_replacing_jump, last_loop_beg_note,
193          back_edge_of_syntactic_loop_p, force_nonfallthru_and_redirect,
194          delete_insn, delete_insn_chain, create_basic_block_structure,
195          create_basic_block, flow_delete_block, compute_bb_for_insn,
196          free_bb_for_insn, update_bb_for_insn, set_block_for_insn,
197          set_block_for_new_insns, split_block, merge_blocks_nomove,
198          block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
199          redirect_edge_and_branch, force_nonfallthru_and_redirect,
200          force_nonfallthru, redirect_edge_and_branch_force, tidy_fallthru_edge,
201          tidy_fallthru_edges, split_edge, insert_insn_on_edge,
202          commit_one_edge_insertion, commit_edge_insertions, dump_bb, debug_bb,
203          debug_bb_n, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
204          purge_all_dead_edges): Move to ....
205         * cfgrtl.c: New file; .... Here.
206
207         * bb-reorder.c (fixup_reorder_chain): Use alloc_aux_for_block.
208         (reroder_basic_block): Use alloc_aux_for_blocks.
209         * predict.c (estimate_bb_frequencies): Likewise; use
210         alloc_aux_for_edges.
211         * profile.c (compute_branch_probabilities): Likewise.
212         (branch_prob): Likewise.
213         * reg-stack.c (reg_to_stack): Likewise.
214
215         * emit-rtl.c (emit_insns_after): Never return NULL.
216
217         * basic-block.h (set_block_for_new_insns): Delete.
218         * cfgrtl.c (set_block_for_new_insns): Delete.
219
220         * cfgcleanup.c (try_optimize_cfg): Add fake exit edges for noreturn
221         calls when crossjumping.
222
223         * cfgcleanup.c (try_simplify_condjump): Cleanup invert_jump call.
224         * unroll.c (copy_loop_body): Use delete_insn.
225
226         * final.c (final, final_scan_insn): Use delete_insn/delete_note.
227         * function.c (fixup_var_refs_insn, fixup_var_refs_1,
228         keep_stack_depressed): Likewise.
229         * gcse.c (cprop_cc0_jump): Likewise.
230         * local-alloc.c (update_equiv_regs): Likewise.
231         * loop.c (scan_loop, loop_delete_insns): Likewise.
232         * regmove.c (try_auto_increment, fixup_match_1): Likewise.
233         * reload1.c (reload, calculate_needs_all_insns, reload_as_needed,
234         delete_output_reload, delete_address_reloads_1,
235         reload_cse_delete_noop_set, reload_combine, reload_cse_move2add):
236         Likewise.
237         * sibcall.c (replace_call_placeholder): Likewise.
238         * cse.c (cse_insn): Likewise.
239
240 2001-09-25  Bernd Schmidt  <bernds@redhat.com>
241
242         From Graham Stott  <grahams@redhat.com>
243         (def_builtin): Only define builtins appropriate for target_flags.  All
244         callers changed.
245         (builtin_decsription): Add new field mask which is used to determine
246         when to define the builtin via the macro def_builtin.
247
248         (bdesc_comi): Initialise new mask fields.
249         (bdesc_2srg): Likewise.
250         (bdesc_1arg): Likewise.
251
252         * config/i386/i386.c (ix86_init_builtins): Correct return type
253         building v4hi_ftype_v4hi_int_int tree node.
254         (ix86_expand_sse_comi): Fix typo swapping operands.
255         Don't swap comparision condition, it is already swapped.
256         (ix86_expand_sse_compare): Before swapping operands
257         move operand 1 into new rtx and not the target rtx.
258         Don't swap comparison condition, it is already swapped.
259         Always check whether we need to create a new TARGET.
260
261         * config/i386/i386.md: (sse_comi) Fix typos.
262         (sse_ucomi): Likewise.
263         (cvtss2si): Fix operand 0 contraint.
264         (cvttss2si): Likewise.
265         (sse_unpckhps): Fix mode for operand 2.
266         (sse_unpcklps): Likewise.
267
268 2001-09-25  Graham Stott  <grahams@redhat.com>
269
270         * sibcall.c (skip_copy_to_return_value): Tighten return value
271         copy check.
272
273 2001-09-24  David Edelsohn  <edelsohn@gnu.org>
274
275         * rs6000.c (lwa_operand): Address must be word aligned.
276
277 Mon Sep 24 18:57:59 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
278
279         * tree.c (type_hash_marked_p): Consider as marked if debug symbol
280         number has been set.
281         (type_hash_mark): Mark type itself.
282
283 2001-09-24  Neil Booth  <neil@daikokuya.demon.co.uk>
284
285         * c-lex.c (cb_def_pragma): Update.
286         (c_lex): Update, and skip padding.
287         * cppexp.c (lex, parse_defined): Update, remove unused variable.
288         * cpphash.h (struct toklist): Delete.
289         (union utoken): New.
290         (struct cpp_context): Update.
291         (struct cpp_reader): New members eof, avoid_paste.
292         (_cpp_temp_token): New.
293         * cppinit.c (cpp_create_reader): Update.
294         * cpplex.c (_cpp_temp_token): New.
295         (_cpp_lex_direct): Add PREV_WHITE when parsing args.
296         (cpp_output_token): Don't print leading whitespace.
297         (cpp_output_line): Update.
298         * cpplib.c (glue_header_name, parse_include, get__Pragma_string,
299         do_include_common, do_line, do_ident, do_pragma,
300         do_pragma_dependency, _cpp_do__Pragma, parse_answer,
301         parse_assertion): Update.
302         (get_token_no_padding): New.
303         * cpplib.h (CPP_PADDING): New.
304         (AVOID_LPASTE): Delete.
305         (struct cpp_token): New union member source.
306         (cpp_get_token): Update.
307         * cppmacro.c (macro_arg): Convert to use pointers to const tokens.
308         (builtin_macro, paste_all_tokens, paste_tokens, funlike_invocation_p,
309         replace_args, quote_string, stringify_arg, parse_arg, next_context,
310         enter_macro_context, expand_arg, _cpp_pop_context, cpp_scan_nooutput,
311         _cpp_backup_tokens, _cpp_create_definition): Update.
312         (push_arg_context): Delete.
313         (padding_token, push_token_context, push_ptoken_context): New.
314         (make_string_token, make_number_token): Update, rename.
315         (cpp_get_token): Update to handle tokens as pointers to const,
316         and insert padding appropriately.
317         * cppmain.c (struct printer): New member prev.
318         (check_multiline_token): Constify.
319         (do_preprocessing, cb_line_change): Update.
320         (scan_translation_unit): Update to handle spacing.
321         * scan-decls.c (get_a_token): New.
322         (skip_to_closing_brace, scan_decls): Update.
323         * fix-header.c (read_scan_file): Update.
324
325         * doc/cpp.texi: Update.
326
327 2001-09-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
328
329         * c-aux-info.c (affix_data_type): Use ATTRIBUTE_MALLOC.  Avoid
330         leak by passing malloc'ed pointer to reconcat, not concat.
331
332 2001-09-24  DJ Delorie  <dj@redhat.com>
333
334         * varasm.c (array_size_for_constructor): Handle STRING_CSTs also.
335
336 2001-09-24  Ulrich Weigand  <uweigand@de.ibm.com>:
337
338         * flow.c (delete_dead_jumptables): Delete jumptable if the only
339         reference is from the literal pool.
340
341 2001-09-24  Janis Johnson  <janis187@us.ibm.com>
342
343         * doc/install.texi (Final install): Request additional information
344         in mail about successful builds.
345
346 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
347
348         * pa.c (return_addr_rtx): Return NULL_RTX if count is not zero.  Use
349         initial value of return pointer register instead of value in frame-20.
350         Revise comments.
351
352 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
353
354         * som.h (ASM_OUTPUT_EXTERNAL): Improve formatting.
355         (ASM_OUTPUT_EXTERNAL_LIBCALL): Only generate a .IMPORT statement for
356         the libcall if there isn't a referenced identifier for the symbol.
357
358 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
359
360         * pa.h (TRAMPOLINE_TEMPLATE): Add two words to the template for
361         non 64-bit machines.  Use these as a plabel for the trampoline.
362         (TRAMPOLINE_SIZE): Adjust size for new words.
363         (INITIALIZE_TRAMPOLINE): Initialize new words.
364         (TRAMPOLINE_ADJUST_ADDRESS): New.  Adjust address to make it a
365         pointer to the plabel in the trampoline.
366
367 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
368
369         * pa.c (function_arg): Pass floating arguments in both general and
370         floating registers in indirect (dynamic) calls when generating code
371         for the 32 bit ABI and the HP assembler.
372
373 2001-09-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
374
375         * doc/install.texi: Markup fixes.
376         Use Solaris 2, SunOS 4 as appropriate.
377         (Specific, *-*-solaris2*): Explain this.
378         Unconditionally warn against /usr/ucb tools.
379         Remove Sun as warning, obsolete.
380         Move X11 header bug workaround here, update patches.
381         (Specific, sparc-sun-solaris2*): Detail Sun as fix status.
382         (Specific, sparc-sun-solaris2.7): Update patch 106950 status.
383
384 2001-09-23  Zack Weinberg  <zack@codesourcery.com>
385
386         * errors.h (warning, error, fatal, internal_error): Don't mark
387         with ATTRIBUTE_PRINTF_n.
388         * toplev.h (internal_error, fatal_io_error, warning, error,
389         pedwarn, pedwarn_with_file_and_line, warning_with_file_and_line,
390         error_with_file_and_line, sorry, error_for_asm, warning_for_asm):
391         Likewise.
392
393 Sun Sep 23 18:19:48 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
394
395         * function.c (pop_function_context_from): var_refs_queue
396         and temp slots now in GC memory.
397         (mark_function_status, free_after_compilation): Likewise;
398         also struct function now in GC memory.
399         (assign_stack_temp_for_type): struct temp_slot now in GC memory.
400         (combine_temp_slots): Likewise.
401         (schedule_fixup_var_refs): var_refs_queue now in GC memory.
402         (prepare_function_start): Use GC memory for struct function.
403         (mark_temp_slot): Deleted.
404         (gcc_mark_struct_function): struct function now in GC memory.
405
406         * fold-const.c (extract_muldiv, case PLUS_EXPR): Only adjust
407         code for division, not modulus.
408
409         * rtl.def (MEM): Remove obsolete part of comment.
410
411 2001-09-22  Joseph S. Myers  <jsm28@cam.ac.uk>
412
413         * c-format.c (init_function_format_info): Check __builtin_printf
414         and __builtin_fprintf even if -ffreestanding.  Check C99 functions
415         in gnu89 mode.
416
417 Sat Sep 22 09:09:32 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
418
419         * c-common.c (format_attribute_table): Remove decl.
420         * tree.h (format_attribute_table, lang_attribute_table): New decls.
421         (lang_attribute_common): Likewise.
422
423         * function.c (fix_lexical_address): Use set_mem_alias_set.
424         (expand_function_start): Likewise.
425         * config/alpha/alpha.h (SETUP_INCOMING_VARARGS): Likewise.
426
427         * varasm.c (output_constant): Fix unused variable warning.
428
429         * attribs.c: New file, from c-common.c.
430         (attribute_tables): Now four elements.
431         (format_attribute_table, lang_attribute_common): New variables.
432         (init_attributes): Reflect above changes.
433         (handle_mode_attribute): Delete check for wider than uintmax.
434         * c-common.c: Delete parts moved to attribs.c.
435         (enum attrs): Deleted; unused.
436         (c_format_attribute_table): New variable.
437         (c_common_lang_init): Initialize format_attribute_table with it.
438         * c-common.h (decl_attributes): Remove decl.
439         * tree.h (decl_attribute): Move it to here.
440         * Makefile.in (C_AND_OBJS_OBJS): Add attribs.o.
441         (attribs.o): New rule.
442
443 2001-09-22  Andreas Jaeger  <aj@suse.de>
444
445         * builtins.c (c_getstr): Remove unused variable.
446
447 2001-09-21  Richard Henderson  <rth@redhat.com>
448
449         * reload1.c (reload): Use delete_insn instead of splatting
450         NOTE_INSN_DELETED.
451
452 2001-09-21  Richard Henderson  <rth@redhat.com>
453
454         * reload.c (push_secondary_reload): Don't check for "=" in output
455         constraint after ""->ALL_REGS check.
456
457 2001-09-21  Richard Henderson  <rth@redhat.com>
458
459         * predict.c (expected_value_to_br_prob): Use pc_set.
460
461         * optabs.c (init_one_libfunc): Gen a FUNCTION_DECL for use by
462         ENCODE_SECTION_INFO; get SYMBOL_REF from make_decl_rtl.
463
464 2001-09-21  Richard Henderson  <rth@redhat.com>
465
466         * rtl.h (LCT_RETURNS_TWICE): New.
467         * calls.c (emit_call_1): Set current_function_calls_setjmp for
468         ECF_RETURNS_TWICE.
469         (emit_library_call_value_1): Map LCT_RETURNS_TWICE
470         to ECF_RETURNS_TWICE.
471         * except.c (sjlj_emit_function_enter): Use LCT_RETURNS_TWICE for
472         call to setjmp.
473
474         * unwind-sjlj.c: Invent the setjmp.h declarations if inhibit_libc.
475
476         * config/stormy16/stormy16.h (DONT_USE_BUILTIN_SETJMP): New.
477         (JMP_BUF_SIZE): New.
478
479 2001-09-21  Richard Henderson  <rth@redhat.com>
480
481         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Map 'd'
482         to R8_REGS.
483
484 2001-09-21  Richard Henderson  <rth@redhat.com>
485
486         * tree.def (FDESC_EXPR): New.
487         * expr.c (expand_expr): Handle it.
488         * varasm.c (initializer_constant_valid_p): Likewise.
489         (output_constant): Likewise.
490         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
491         * config/ia64/ia64.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
492         (ASM_OUTPUT_FDESC): New.
493         * doc/tm.texi: Document the new macros.
494
495 21-09-2001  Richard Earnshaw  (reanrsha@arm.com)
496
497         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Don't leave
498         ADDR_VEC or ADDR_DIFF_VEC jump insns as part of the basic block
499         once merging is complete.
500
501 Fri Sep 21 11:20:12 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
502
503         * integrate.c (allocate_initial_values): Eliminate unused arg warning.
504
505 21-09-2001  Richard Earnshaw  (reanrsha@arm.com)
506
507         * cfgcleanup.c (flow_find_cross_jump): Delete any REG_EQUAL notes
508         that would be invalid after a merge.
509
510 Fri Sep 21 14:24:29 CEST 2001  Jan Hubicka  <jh@suse.cz>
511
512         * basic-block.h (flow_delete_insn, flow_delete_insn_chain): Kill.
513         * cfg.c (delete_insn): Rename from ....; use remove_insn; do not
514         remove some labels.
515         (flow_delete_insn): This one.
516         (delete_insn_chain): Rename from ...; do not care labels.
517         (flow_delete_insn_chain): ... this one.
518         (flow_delete_block): Remove the insns one BB has been expunged.
519         (merge_blocks_nomove): Likewise.
520         (try_redirect_by_replacing_jump): Use delete_insn[_chain]; do not care
521         updating BB boundaries.
522         (tidy_fallthru_edge): Likewise.
523         (commit_one_edge_insertion): Likewise.
524         * cfgbuild.c (find_basic_block): Likewise.
525         (find_basic_blocks_1): Likewise.
526         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Likewise.
527         (try_crossjump_to_edge): Likewise.
528         (try_optimize_cfg): Likewise.
529         * cse.c (delete_trivially_dead_insns): Likewise.
530         * df.c (df_insn_delete): Likewise.
531         * doloop.c (doloop_modify): Use delete_related_insns.
532         * emit-rtl.c (try_split): Likewise.
533         (remove_insn): Update BB boundaries.
534         * expect.c (connect_post_landing_pads): Use delete_related_insns.
535         * flow.c (delete_dead_jumptables): Use delete_insn[_chain]; do not care
536         updating BB boundaries.
537         (propagate_block_delete_insn): Likewise.
538         (propagate_block_delete_libcall): Likewise.
539         * function.c (delete_handlers): Use delete_related_insns.
540         (thread_prologue_and_epilogue_insns): Likewise.
541         * gcse.c (delete_null_pointer_checks): Use delete_related_insns.
542         * genpeep.c (gen_peephole): Use delete_related_insns.
543         * ifcvt.c (noce_process_if_block): Use delete_insn; do not care updating
544         BB boundaries.
545         (find_cond_trap): Likewise.
546         * integrate.c (save_for_inline): Use delete_related_insns.
547         (copy_insn_list): Likewise.
548         * jump.c (pruge_linie_number_notes): Likewise.
549         (duplicate_loop_exit_test): Likewise.
550         (delete_computation): Likewise.
551         (delete_related_insn): Rename from ...; use delete_insn
552         (delete_insn): ... this one.
553         (redirect_jump): Use delete_related_insns.
554         * loop.c (scan_loop): Likewise.
555         (move_movables): Likewise.
556         (find_and_verify_loops): Likewise.
557         (check_dbra_loop): Likewise.
558         * recog.c (peephole2_optimize): Likewise.
559         * reg-stack.c (delete_insn_for_stacker): Remove.
560         (move_for_stack_reg): Use delete_insn.
561         * regmove.c (combine_stack_adjustments_for_block): Likewise.
562         * reload1.c (delete_address_reloads): Use delete_related_insns.
563         (fixup_abnormal_edges): Use delete_insn.
564         * recog.c (emit_delay_sequence): Use delete_related_insns.
565         (delete_from-delay_slot): Likewise.
566         (delete_scheduled_jump): likewise.
567         (optimize_skip): Likewise.
568         (try_merge_delay_insns): Likewise.
569         (full_simple_delay_slots): Likewise.
570         (fill_slots_from_thread): Likewise.
571         (relax_delay_slots): Likewise.
572         (make_return_insns): Likewise.
573         (dbr_schedule): Likewise.
574         * rtl.h (delete_insn): Rename to delete_related_insns.
575         (delete_insn, delete_insn_chain): New prototypes.
576         * ssa-ccp (sse_fast_dce):  Remove deleting of DEF, as it is done
577         by df_insn_delete already.
578         * ssa-dce.c (delete_insn_bb): Use delete_insn.
579         * ssa.c (convert_from_ssa): Use delete_related_insns.
580         * unroll.c (unroll_loop): Likewise.
581         (calculate_giv_inc): Likewise.
582         (copy_loop_body): Likewise.
583
584         * i386-protos.h (ix86_libcall_value, ix86_function_value,
585         ix86_function_arg_regno_p, ix86_function_arg_boundary,
586         ix86_return_in_memory, ix86_function_value): Declare.
587         * i386.c (x86_64_int_parameter_registers, x86_64_int_return_registers):
588         new static valurables.
589         (x86_64_reg_class): New enum
590         (x86_64_reg_class_name): New array.
591         (classify_argument, examine_argument, construct_container,
592          merge_classes): New static functions.
593         (optimization_options): Enable flag_omit_frame_pointer and disable
594         flag_pcc_struct_return on 64bit.
595         (ix86_libcall_value, ix86_function_value,
596         ix86_function_arg_regno_p, ix86_function_arg_boundary,
597         ix86_return_in_memory, ix86_function_value): New global functions.
598         (init_cumulative_args): Refuse regparm on x86_64, set maybe_vaarg.
599         (function_arg_advance): Handle x86_64 passing conventions.
600         (function_arg): Likewise.
601         * i386.h (FUNCTION_ARG_BOUNDARY): New macro.
602         (RETURN_IN_MEMORY): Move offline.
603         (FUNCTION_VALUE, LIBCALL_VALUE): Likewise.
604         (FUNCTION_VALUE_REGNO_P): New macro.
605         (FUNCTION_ARG_REGNO_P): Move offline.
606         (struct ix86_args): Add maybe_vaarg.
607         * next.h (FUNCTION_VALUE_REGNO_P): Delete.
608         * unix.h (FUNCTION_VALUE_REGNO_P): Delete.
609
610 2001-09-21  Hartmut Penner  <hpenner@de.ibm.com>
611
612         * s390.md: Changed attributes for scheduling.
613         * s390.c: (s390_adjust_cost, s390_adjust_priority)
614         Changed scheduling
615
616 2001-09-21  Joseph S. Myers  <jsm28@cam.ac.uk>
617
618         Table-driven attributes.
619         * c-decl.c, config/alpha/alpha.c, config/arc/arc.c,
620         config/arm/arm.c, config/arm/pe.c, config/avr/avr.c,
621         config/avr/avr.h, config/d30v/d30v.h, config/fr30/fr30.h,
622         config/h8300/h8300.c, config/i386/cygwin.h, config/i386/winnt.c,
623         config/m32r/m32r.c, config/mcore/mcore.c, config/sh/sh.c,
624         config/stormy16/stormy16.h, config/v850/v850.c, doc/c-tree.texi,
625         doc/tm.texi, ggc-common.c, integrate.c, print-tree.c, tree.c,
626         tree.h: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
627         * tree.h (struct tree_decl): Change machine_attributes to
628         attributes.
629         * doc/c-tree.texi: Document that all attributes are now attached
630         to decls and types.
631         * c-common.c (add_attribute, attrtab, attrtab_idx,
632         default_valid_lang_attribute, valid_lang_attribute): Remove.
633         (attribute_tables, attributes_initialized,
634         c_common_attribute_table, default_lang_attribute_table): New
635         variables.
636         (handle_packed_attribute, handle_nocommon_attribute,
637         handle_common_attribute, handle_noreturn_attribute,
638         handle_unused_attribute, handle_const_attribute,
639         handle_transparent_union_attribute, handle_constructor_attribute,
640         handle_destructor_attribute, handle_mode_attribute,
641         handle_section_attribute, handle_aligned_attribute,
642         handle_weak_attribute, handle_alias_attribute,
643         handle_no_instrument_function_attribute,
644         handle_no_check_memory_usage_attribute, handle_malloc_attribute,
645         handle_no_limit_stack_attribute, handle_pure_attribute): New
646         functions.
647         (init_attributes, decl_attributes): Rewrite to implement
648         table-driven attributes.
649         * c-common.h (enum attribute_flags): Move to tree.h.
650         * c-format.c (decl_handle_format_attribute,
651         decl_handle_format_arg_attribute): Rename to
652         handle_format_attribute and handle_format_arg_attribute.  Update
653         for table-driven attributes.
654         * c-common.h (decl_handle_format_attribute,
655         decl_handle_format_arg_attribute): Remove prototypes.
656         (handle_format_attribute, handle_format_arg_attribute): Add
657         prototypes.
658         * c-decl.c (grokdeclarator): Handle attributes nested inside
659         declarators.
660         * c-parse.in (setattrs, maybe_setattrs): Remove.
661         (maybe_type_quals_setattrs): Rename to maybe_type_quals_attrs.
662         Update to handle nested attributes properly.
663         (maybe_resetattrs, after_type_declarator,
664         parm_declarator_nostarttypename, notype_declarator, absdcl1_noea,
665         absdcl1_ea, direct_absdcl1): Update to handle nested attributes
666         properly.
667         (make_pointer_declarator): Update to handle nested attributes
668         properly.
669         * doc/extend.texi: Update documentation of limits of attributes
670         syntax.  Warn about problems with attribute semantics in C++.
671         * target.h (struct target): Remove valid_decl_attribute and
672         valid_type_attribute.  Add attribute_table and
673         function_attribute_inlinable_p.
674         * target-def.h (TARGET_VALID_DECL_ATTRIBUTE,
675         TARGET_VALID_TYPE_ATTRIBUTE): Remove.
676         (TARGET_ATTRIBUTE_TABLE, TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P):
677         Add.
678         (TARGET_INITIALIZER): Update.
679         * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): Remove default
680         definition.
681         (function_attribute_inlinable_p): New function.  Check for the
682         presence of any machine attributes before using
683         targetm.function_attribute_inlinable_p.
684         (function_cannot_inline_p): Update.
685         * Makefile.in (integrate.o): Update dependencies.
686         * doc/tm.texi: Update documentation of target attributes and
687         example definition of TARGET_VALID_TYPE_ATTRIBUTE.
688         * tree.c (default_valid_attribute_p, valid_machine_attribute):
689         Remove.
690         (default_target_attribute_table,
691         default_function_attribute_inlinable_p): New.
692         (lookup_attribute): Update comment to clarify handling of multiple
693         attributes with the same name.
694         (merge_attributes, attribute_list_contained): Allow multiple
695         attributes with the same name but different arguments to appear in
696         the same attribute list.
697         * tree.h (default_valid_attribute_p): Remove prototype.
698         (struct attribute_spec): New.
699         (default_target_attribute_table): Declare.
700         (enum attribute_flags): Move from c-common.h.  Add
701         ATTR_FLAG_TYPE_IN_PLACE.
702         (default_function_attribute_inlinable_p): Declare.
703         * config/alpha/alpha.c (vms_valid_decl_attribute_p): Remove.
704         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
705         (TARGET_ATTRIBUTE_TABLE): Define.
706         (vms_attribute_table): New.
707         * config/arc/arc.c (arc_valid_decl_attribute): Remove.
708         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
709         (TARGET_ATTRIBUTE_TABLE): Define.
710         (arc_attribute_table, arc_handle_interrupt_attribute): New.
711         * config/arm/arm.c (arm_valid_type_attribute_p,
712         arm_valid_decl_attribute_p, arm_pe_valid_decl_attribute_p):
713         Remove.
714         (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't
715         define.
716         (TARGET_ATTRIBUTE_TABLE): Define.
717         (arm_attribute_table, arm_handle_fndecl_attribute,
718         arm_handle_isr_attribute): New.
719         * config/avr/avr.c (avr_valid_type_attribute,
720         avr_valid_decl_attribute): Remove.
721         (TARGET_VALID_DECL_ATTRIBUTE, TARGET_VALID_TYPE_ATTRIBUTE): Don't
722         define.
723         (TARGET_ATTRIBUTE_TABLE): Define.
724         (avr_attribute_table, avr_handle_progmem_attribute,
725         avr_handle_fndecl_attribute): New.
726         * config/c4x/c4x.c (c4x_valid_type_attribute_p): Remove.
727         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
728         (TARGET_ATTRIBUTE_TABLE): Define.
729         (c4x_attribute_table, c4x_handle_fntype_attribute): New.
730         * config/h8300/h8300.c (h8300_valid_decl_attribute): Remove.
731         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
732         (TARGET_ATTRIBUTE_TABLE): Define.
733         (h8300_attribute_table, h8300_handle_fndecl_attribute,
734         h8300_handle_eightbit_data_attribute,
735         h8300_handle_tiny_data_attribute): New.
736         * config/i386/i386-protos.h (ix86_valid_type_attribute_p,
737         i386_pe_valid_decl_attribute_p, i386_pe_valid_type_attribute_p):
738         Remove prototypes.
739         (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New
740         declarations.
741         * config/i386/i386.c (ix86_valid_type_attribute_p: Remove.
742         (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't
743         define.
744         (TARGET_ATTRIBUTE_TABLE): Define.
745         (ix86_attribute_table, ix86_handle_cdecl_attribute,
746         ix86_handle_regparm_attribute): New.
747         * config/i386/winnt.c (i386_pe_valid_decl_attribute_p,
748         i386_pe_valid_type_attribute_p): Remove.
749         (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New.
750         * config/ia64/ia64.c (ia64_valid_type_attribute): Remove.
751         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
752         (TARGET_ATTRIBUTE_TABLE): Define.
753         (ia64_attribute_table): New.
754         * config/m32r/m32r.c (m32r_valid_decl_attribute, interrupt_ident1,
755         interrupt_ident2, model_ident1, model_ident2): Remove.
756         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
757         (TARGET_ATTRIBUTE_TABLE): Define.
758         (init_idents): Update.
759         (m32r_attribute_table, m32r_handle_model_attribute): New.
760         * config/m68hc11/m68hc11.c (m68hc11_valid_type_attribute_p):
761         Remove.
762         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
763         (TARGET_ATTRIBUTE_TABLE): Define.
764         (m68hc11_attribute_table, m68hc11_handle_fntype_attribute): New.
765         * config/mcore/mcore.c (mcore_valid_decl_attribute): Remove.
766         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
767         (TARGET_ATTRIBUTE_TABLE): Define.
768         (mcore_attribute_table, mcore_handle_naked_attribute): New.
769         * config/ns32k/ns32k.c (ns32k_valid_type_attribute_p): Remove.
770         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
771         (TARGET_ATTRIBUTE_TABLE): Define.
772         (ns32k_attribute_table, ns32k_handle_fntype_attribute): New.
773         * config/rs6000/rs6000.c (rs6000_valid_type_attribute_p): Remove.
774         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
775         (TARGET_ATTRIBUTE_TABLE): Define.
776         (rs6000_attribute_table, rs6000_handle_longcall_attribute): New.
777         * config/sh/sh.c (sh_valid_decl_attribute): Remove.
778         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
779         (TARGET_ATTRIBUTE_TABLE): Define.
780         (sh_attribute_table, sh_handle_interrupt_handler_attribute,
781         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
782         New.
783         * config/stormy16/stormy16.c (stormy16_valid_type_attribute):
784         Remove.
785         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define
786         (TARGET_ATTRIBUTE_TABLE): Define.
787         (stormy16_attribute_table, stormy16_handle_interrupt_attribute):
788         New.
789         * config/v850/v850.c (v850_valid_decl_attribute): Remove.
790         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
791         (TARGET_ATTRIBUTE_TABLE): Define.
792         (v850_attribute_table, v850_handle_interrupt_attribute,
793         v850_handle_data_area_attribute): New.
794         * config/v850/v850-c.c (mark_current_function_as_interrupt):
795         Return void.  Call decl_attributes instead of
796         valid_machine_attribute.
797
798 Fri Sep 21 01:49:41 2001  J"orn Rennecke <amylaar@redhat.com>
799
800         * sh-protos.h (sh_pr_n_sets): Declare.
801         * sh.c (calc_live_regs): If the initial value for PR has been copied,
802         look at the copy to determine if PR needs to be saved.
803         sh_pr_n_sets: New function.
804         * sh.h (RETURN_ADDR_RTX): Use get_hard_reg_initial_val.
805         (ALLOCATE_INITIAL_VALUE): Define.
806
807         * sh.c (initial_elimination_offset):
808         Fix RETURN_ADDRESS_POINTER_REGNUM case.
809
810 Fri Sep 21 01:13:56 2001  J"orn Rennecke <amylaar@redhat.com>
811
812         * integrate.c (allocate_initial_values): New function.
813         * integrate.h (allocate_initial_values): Declare.
814         * local-alloc.c (local_alloc): Move call to allocate_reg_info from
815         here...
816         * reload1.c (reload): And initialization of reg_equiv_memory_loc
817         from here...
818         * toplev.c (rest_of_compilation): To here.
819         Call allocate_initial_values.
820         * tm.texi: add description for ALLOCATE_INITIAL_VALUE.
821
822 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
823
824         * ggc-page.c (ggc_marked_p): Properly convert return to boolean.
825
826 2001-09-20  DJ Delorie  <dj@redhat.com>
827
828         * c-typeck.c (really_start_incremental_init): Discriminate
829         between zero-length arrays and flexible arrays.
830         (push_init_level): Detect zero-length arrays and handle them
831         like fixed-sized arrays.
832         * expr.c (store_constructor): Handle zero-length arrays and
833         flexible arrays correctly.
834         * doc/extend.texi: Update zero-length array notes.
835
836 2001-09-20  Jim Wilson  <wilson@redhat.com>
837
838         * config/ia64/ia64.c (itanium_split_issue): Allow max 2 FP per cycle.
839         (insn_matches_slot): Handle TYPE_L and TYPE_X slots when checking
840         for issue port conflicts.
841         (cycle_end_fill_slots): TYPE_L instructions take two slots.
842
843 2001-09-20  Andrew MacLeod  <amacleod@redhat.com>
844
845         * testsuite/gcc.c-torture/execute/990208-1.x: New. XFAIL at -O3
846         on ia64.
847
848 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
849
850         * fold-const.c (hashtab.h): Include.
851         (int_const_binop): Remove FORSIZE arg and compute from type; all
852         callers changed.
853         Call size_int_type_wide for all single-word constants.
854         (size_htab_hash, size_htab_eq): New functions.
855         (size_int_type_wide): Rework to use hash table.
856         * ggc-common.c (hashtab.h): Include.
857         (struct d_htab_root): New struct.
858         (d_htab_roots): New variable.
859         (ggc_add_deletable_htab, ggc_htab_delete): New functions
860         (ggc_mark_roots): Handle deletable htabs.
861         * ggc-page.c (ggc_marked_p): New function.
862         * ggc-simple.c (ggc_marked_p): Likewise.
863         * ggc.h: Reformatting throughout.
864         (ggc_marked_p, ggc_add_deletable_htab): New declarations.
865         * tree.c (init_obstacks): Make type_hash_table a deletable root.
866         (type_hash_add): Allocate struct type_hash from GC memory.
867         (mark_hash_entry, mark_type_hash): Deleted.
868         (type_hash_marked_p, type_hash_mark): New functions.
869         * Makefile.in (ggc-common.o, fold-const.o): Include hashtab.h.
870
871 Thu Sep 20 12:49:34 2001  J"orn Rennecke <amylaar@redhat.com>
872
873         * sh.c (shiftcosts): Don't use shiftcosts array for modes wider
874         than SImode.
875
876 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
877
878         * stor-layout.c (layout_type, case ARRAY_TYPE): Kludge to disable
879         array-too-large test for signed sizetype.
880
881 Thu Sep 20 12:19:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
882
883         * i386.md (indirect_jump): Allow Pmode operand.
884         (tablejump): LIkewise; perform expansion to 64bit mode.
885         * i386.c (symbolic_operand): Allow 64bit PIC references.
886         (pic_symbolic_operand): Likewise.
887         (ix86_find_base_term): Strip the 64bit PIC references.
888         (legitimate_pic_address_disp_p): Handle 64bit PIC.
889         (legitimize_pic_address): Likewise.
890         (i386_simplify_dwarf_addr): Strip down the 64bit PIC references.
891         * i386.h (CASE_VECTOR_MODE): Set to SImode for 64bit PIC compilation.
892
893 2001-09-19  Alexandre Petit-Bianco  <apbianco@redhat.com>
894
895         * stringpool.c (get_identifier_with_length): New function.
896         * tree.h (get_identifier_with_length): New prototype.
897
898 2001-09-19  Alan Modra  <amodra@bigpond.net.au>
899             David Edelsohn  <edelsohn@gnu.org>
900
901         Revert:
902         * config/rs6000/rs6000.c (logical_operand): CONST_INTs are
903         already sign-extended.
904
905         * config/rs6000/aix.h (INIT_TARGET_OPTABS): Define TFmode handlers.
906         * config/rs6000/rs6000.c (logical_operand): Always compare op as
907         HOST_WIDE_INT.
908         (rs6000_emit_set_long_const): Avoid unnecessary shift.
909         (output_profile_hook): Declare label_name const.
910         * config/rs6000/rs6000.md (boolcsi3, boolcdi3): Change predicates
911         to match constraints.
912
913 2001-09-19  Stan Shebs  <shebs@apple.com>
914
915         * alias.c: Fix typos in comments.
916         * sched-rgn.c (init_ready_list): Ditto.
917         * unwind-dw2.c (uw_frame_state_for): Ditto.
918         * unwind-dw2-fde.c (_Unwind_Find_FDE): Ditto.
919         * unwind.inc (_Unwind_RaiseException_Phase2): Ditto.
920         * config/rs6000/rs6000.c (rs6000_adjust_priority): Ditto.
921
922 2001-09-19  Richard Henderson  <rth@redhat.com>
923
924         * cfg.c (force_nonfallthru_and_redirect): Handle redirecting
925         to the exit block.
926         * Makefile.in (cfg.o): Depend on TM_P_H.
927
928 2001-09-19  Richard Henderson  <rth@redhat.com>
929
930         * config/alpha/alpha.c (local_symbol_p): Split out from ...
931         (local_symbolic_operand): ... here.
932         (small_symbolic_operand): Check mode.
933         (global_symbolic_operand): New.
934         (input_operand): Reject symbolics if explicit relocs.
935         (call_operand): Tidy.
936         (alpha_legitimize_address): Use movdi_er_high_g.
937         (alpha_expand_mov): Likewise.
938         * config/alpha/alpha-protos.h: Update.
939         * config/alpha/alpha.h (PREDICATE_CODES): Update.
940         * config/alpha/alpha.md (UNSPEC_LITERAL, UNSPEC_LITUSE): New.
941         (UNSPEC_LDGP2, UNSPECV_PLDGP2): New.
942         (UNSPECV_LDGP2): Remove.
943         (all call patterns): Use 's' not 'i' for symbolic constraint.
944         (call_osf call_value_osf): Use call_operand.
945         (all osf call patterns): Use $gp.  New peepholes for explicit relocs.
946         (movdi_er_nofix, movdi_er_fix): Remove symbolic alternative.
947         (prologue_ldgp_1_er): Remove.
948         (ldgp_er_1, ldgp_er_2, prologue_ldgp_er_2): New.
949         (builtin_setjmp_receiver_er patterns): Use them.
950         (exception_receiver_er): Likewise.
951
952 2001-09-19  Richard Henderson  <rth@redhat.com>
953
954         * cfgbuild.c (find_sub_basic_blocks): Handle insns that can throw.
955
956         * emit-rtl.c (try_split): Copy NORETURN, SETJMP, ALWAYS_RETURN
957         and NON_LOCAL_GOTO notes.
958         * recog.c (peephole2_optimize): Likewise.  Handle EH_REGION;
959         copy over CALL_INSN_FUNCTION_USAGE.
960
961 2001-09-18  Catherine Moore  <clm@redhat.com>
962
963         * config/stormy16/stormy16.h (DEFAULT_PCC_STRUCT_RETURN):
964         Define as 0.
965
966 2001-09-18  Ulrich Weigand  <uweigand@de.ibm.com>:
967
968         * config.gcc (s390-*-linux-*, s390x-*-linux*): Switch to
969         new-style tm_file specification.  Specify correct tm_p_file,
970         md_file, and out_file for s390x.
971
972         * config/s390/linux.h, linux64.h:  Don't include other target
973         macro header files.  Now handled via tm_file.
974
975         * config/s390/linux.h, s390.h:  (IEEE_FLOAT, TARGET_IEEE_FLOAT,
976         TARGET_IBM_FLOAT): Move from linux.h to s390.h to ensure they
977         are defined before use.
978
979 Tue Sep 18 09:51:11 2001  Eric Christopher  <ecechristo@redhat.com>
980
981         * config/mips/mips.c (mips_asm_file_start): Conditionalize Elf
982         code generation only for Gnu assembler.
983
984 2001-09-18  Catherine Moore  <clm@redhat.com>
985
986         * config/stormy16 (LIB_SPEC): Remove -lnosys.
987
988 2001-09-18  Richard Sandiford  <rsandifo@redhat.com>
989
990         * config/mips/mips.c (mips_frame_set): New.
991         (mips_emit_frame_related_store): When storing two 32-bit FPRs, use
992         a parallel frame-related expression with a set for each register.
993
994 2001-09-18  Philip Blundell  <philb@gnu.org>
995
996         * config/arm/lib1funcs.asm (L_dvmd_lnx): Don't rely on kernel
997         header files.
998
999 2001-09-17  Dale Johannesen  <dalej@apple.com>
1000
1001         * config/rs6000/rs6000.h (FIXED_REGISTERS): Use FIXED_R2.
1002         * config/rs6000/aix.h (FIXED_R2): Define.
1003         * config/rs6000/darwin.h (FIXED_R2): Define.
1004         * config/rs6000/sysv4.h (FIXED_R2): Define.
1005
1006 2001-09-17  Jeff Sturm  <jsturm@one-point.com>
1007
1008         * except.c (dw2_build_landing_pads): New local
1009         clobbers_hard_regs.  Emit an ASM_INPUT as a scheduling
1010         barrier after clobbers.  Fixes c++/4012.
1011
1012 2001-09-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1013
1014         * gcc.c (find_file): Use ACONCAT in lieu of alloca/strcpy/strcat.
1015
1016 2001-09-17  Joseph S. Myers  <jsm28@cam.ac.uk>
1017
1018         * dostage2, dostage3, listing, make-l2.com, makefile.vms,
1019         patch-apollo-includes, vmsconfig.com: Remove obsolete files.
1020
1021 2001-09-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1022
1023         * c-aux-info.c (affix_data_type): Use ASTRDUP in lieu of
1024         alloca/strcpy.
1025
1026 2001-09-17  Neil Booth  <neil@daikokuya.demon.co.uk>
1027
1028         * cpphash.h (_cpp_lex_direct): New.
1029         * cpplex.c (_cpp_lex_token): Update.
1030         (lex_token): Rename _cpp_lex_direct; lex into pfile->cur_token,
1031         and increment that pointer.
1032         * cppmacro.c (alloc_expansion_token): New.
1033         (lex_expansion_token): Lex macro expansion directly into
1034         macro storage.
1035
1036 2001-09-16  Brad Lucier  <lucier@math.purdue.edu>
1037
1038         * Makefile.in: Make rtl-error.o depend on $(CONFIG_H).
1039
1040 Sun Sep 16 21:59:46 CEST 2001  Jan hubicka  <jh@suse.cz>
1041
1042         * basic-block.h (free_bb_for_insn): Declare.
1043         * bb-reorder.c (label_for_bb): Use block_label.
1044         (emit_jump_to_block_after): Remove.
1045         (insert_intra_1): Do not update block_for_insn.
1046         (insert_inter_bb_scope_notes): Likewise; update bb->end
1047         * cfg.c (free_bb_for_insn): New.
1048         (try_rediret_by_replacing_jump): Avoid set_block_for_new_insns call.
1049         (force_nonfallthru_and_redirect): Likewise; do not update BB boundaries.
1050         (commit_one_edge_insertion): Likewise.
1051         (commit_one_edge_insertion): Do not update BB boundary.
1052         (commit_edge_insertions): Do not call compute_bb_for_insn.
1053         * cfgbuild.c (find_basic_blocks): Do not free basic_block_for_insn.
1054         * cfgcleanup.c (merge_blocks_move_predecessor): Use reorder_insns_nobb.
1055         (merge_blocks_move_successor_nojumps): Likewise.
1056         (try_crossjump_to_edge): Do not update block_for_insn.
1057         * combine.c (combine_instructions): Remove compute_bb_for_insn call.
1058         * df.c (df_pattern_emit_later): Do not update BB boundary.
1059         (df_jump_pattern_emit_after): Likewise.
1060         (df_insn_move_before): Use emit_insn_before.
1061         * emit-rtl.c (try_split): Emit after trial to get bb boundary updated
1062          properly.
1063         (add_insn_after, add_insn_before, emit_insns_after): Update BB
1064         boundaries and basic_block_for_insn.
1065         (reorder_insns_nobb): Rename from reorder_insns.
1066         (reorder_insns): New.
1067         (emit_block_insn_before, emit_block_insn_after): Kill.
1068         * flow.c (check_function_return_warnings): Do not call
1069         compute_bb_for_insn; Do not free basic_block_for_insn.
1070         (attempt_auto_inc): Do not update basic_block_for_insn.
1071         * function.c (emit_return_into_block): Likewise;
1072         do not update BB boundaries.
1073         * gcse.c (handle_avail_expr): Do not update basic_block_for_insn.
1074         (insert_insn_end_bb): Use emit_insn_before; Likewise.
1075         (pre_insert_copy_insn): Likewise.
1076         (update_ld_motion_notes): Likewise.
1077         (insert_insn_start_bb): Likewise.
1078         (replace_store_insn): Likewise.
1079         * ifcvt.c (noce_process_if_block): Likewise.
1080         (if_convert): Do not call compute_bb_for_insn.
1081         * lcm.c (optimize_mode_switching): Do not update BB boundaries.
1082         Use emit_insn_before and emit_insn_after.
1083         * recog.c (split_all_insns): Do not update BB boundaries;
1084         Do not call compute_bb_for_insn.
1085         (peephole2_optimize): Do not update BB boundaries.
1086         * reg-stack.c (emit_pop_insn): Use emit_insn_after and
1087         emit_insn_before.
1088         (emit_swap_insn): Likewise.
1089         (convert_regs_1): Likewise.
1090         * reload1.c (reload): Call compute_bb_for_insn.
1091         * rtl.h (reorder_insns_nobb): Declare.
1092         * ssa.c (rename_equivalent_regs): Use emit_insn_before.
1093         * toplev.c (rest_of_compilation): Call free_bb_for_insn
1094         at places CFG is invalidated; do not call compute_bb_for_insn.
1095
1096         * cfg.c (expunge_block): Invalidate BB structure.
1097
1098         * (merge_blocks_nomove): Update properly BLOCK_FOR_INSN
1099         array.
1100
1101         * cfg.c (verify_flow_info): Verify the basic_block_for_insn array.
1102
1103 2001-09-16  Neil Booth  <neil@daikokuya.demon.co.uk>
1104
1105         * cpphash.h (_cpp_lex_token): Update prototype.
1106         * cpplex.c (_cpp_lex_token): New prototype.
1107         * cpplib.c (skip_rest_of_line, check_eol, _cpp_handle_directive,
1108         lex_macro_node, read_flag, do_pragma_poison): Update.
1109         * cppmacro.c (cpp_get_token, parse_params,
1110         lex_expansion_token): Update.
1111
1112 2001-09-16  Neil Booth  <neil@daikokuya.demon.co.uk>
1113
1114         * cppmain.c (scan_translation_unit): Don't worry about
1115         putting a space after hashes.
1116         * cpplib.c (directive_diagnostics): New.
1117         (_cpp_handle_directive): Update to use directive_diagnostics.
1118         (run_directive): Don't toggle prevent_expansion.
1119         (do_line): Backup in case of the line extension.
1120         * cpplib.h (cpp_lexer_pos): Remove.
1121         * cppmacro.c (_cpp_create_definition): Precede a leading #
1122         with whitespace.
1123
1124 2001-09-15  Richard Henderson  <rth@redhat.com>
1125
1126         * c-typeck.c (comptypes): Handle zero-length arrays properly.
1127
1128 2001-09-15  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
1129
1130         * c-common.c (c_promoting_integer_type_p): Handle ?Imode types.
1131
1132 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
1133
1134         PR preprocessor/3571
1135         * tradcpp.c (handle_directive): Skip non-vertical space.
1136
1137 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
1138
1139         * cppmain.c (setup_callbacks): Set line callback only
1140         if outputting preprocessed source.
1141
1142 2001-09-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1143
1144         * collect2.c (main): Const-ification.
1145         * gcc.c (translate_options, process_command): Use xstrdup in
1146         lieu of xmalloc/strcpy.
1147         (main): Use concat in lieu of xmalloc/strcpy/strcat.
1148
1149 2001-09-14  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
1150
1151         * doc/install.texi (Specific, alphaev5-cray-unicosmk*): Fix
1152         example.
1153
1154 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
1155
1156         * scan-decls.c (scan_decls): Fix typo.
1157
1158 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
1159
1160         * cpphash.h (struct cpp_reader): Remove lexer_pos, directive_pos.
1161         Split mlstring_pos into mls_line and mls_col.
1162         * cppinit.c (cpp_create_reader): Initialize line to 1.
1163         (cpp_destroy): Free tokenruns.
1164         (push_include): Don't update lexer_pos.
1165         * cpplex.c (unterminated, parse_string): Update.
1166         (lex_token): Don't update lexer_pos, update.
1167         * cpplib.c (if_stack): Save line instead of line + col.
1168         (start_directive, _cpp_do__Pragma, do_else, do_elif,
1169         push_conditional, _cpp_pop_buffer): Update.
1170         * cppmacro.c (funlike_invocation_p): Don't save lexer_pos.
1171         (_cpp_create_definition): Update.
1172
1173 2001-09-15  Eric Christopher  <echristo@redhat.com>
1174
1175         * config/mips/abi64.h: Add support for MEABI.
1176
1177 2001-09-15  Eric Christopher  <echristo@redhat.com>
1178
1179         * config/mips/mips.md: Add unspec #2.
1180         (reload_indi): Use.
1181         (reload_outdi): Ditto.
1182         (reload_outsi): Ditto.
1183         (HILO_delay): New.
1184
1185 2001-09-15  Eric Christopher  <echristo@redhat.com>
1186             Jason Eckhardt  <jle@redhat.com>
1187
1188         * config.gcc: Add mipsisa32 target and mipsisa32-linux target.
1189         * config/mips/isa32-linux.h: New file.
1190         * config/mips/isa3264.h: Ditto.
1191         * config/mips/mips-protos.h: Add mips_hard_regno_nregs.
1192         * config/mips/mips.c (mips_hard_regno_nregs): Move here from mips.h.
1193         (output_block_mode): Support MEABI.
1194         (function_arg): Ditto. Fix floating point arg passing.
1195         (mips_va_start): Ditto.
1196         (override_options): Add isas 32 and 64, meabi, mips32 and mips64
1197         processors.
1198         (mips_asm_file_start): Add new section to pass abi to gdb.
1199         (function_arg_pass_by_reference): Support MEABI.
1200         (mips_parse_cpu): Support mips32 and mips64 processors.
1201         * config/mips/mips.h: Support ABI_MEABI, TARGET_MIPS4KC,
1202         TARGET_MIPS5KC.  Support isa32 and isa64.
1203         (processor_type): Add r4kc, r5kc, r20kc.
1204         (GENERATE_MULT3_SI): New.
1205         (GENERATE_MULT3_DI): Ditto.
1206         (GENERATE_MULT3): Remove.
1207         (ISA_HAS_64BIT_REGS): Add isa == 64.
1208         (ISA_HAS_8CC): Add mips_isa = 32 and 64.
1209         (ISA_HAS_MADD_MSUB): New.
1210         (ISA_HAS_CLZ_CLO): Ditto.
1211         (ISA_HAS_DCLZ_DCLO): Ditto.
1212         (ABI_GAS_ASM_SPEC): New.
1213         (GAS_ASM_SPEC): Use. Add support for mips32, mips64.
1214         (ASM_SPEC): Ditto.
1215         (LINK_SPEC): Ditto.
1216         (SUBTARGET_CC1_SPEC): Ditto.
1217         (SUBTARGET_CPP_SIZE_SPEC): Ditto.
1218         (PAD_VARARGS_DOWN): Support MEABI.
1219         (HARD_REGNO_NREGS): Move to mips.c.
1220         (ASM_OUTPUT_IDENT): Add #undef.
1221         * config/mips/mips.md: Add r4kc, r5kc, r20kc.
1222         (mulsi3): Use GENERATE_MULT3_SI.
1223         (mulsi3_mult3): Ditto.  Support mips32, mips64.
1224         (mul_acc_si): Use ISA_HAS_MADD_MSUB.
1225         (mul_sub_si): New pattern.
1226         (unnamed splitters): New.
1227         (muldi3): Use GENERATE_MULT3_DI.
1228         (muldi3_internal2): Ditto.
1229         (movdicc): Support mips32.
1230         * config/mips/t-isa3264: New file.
1231
1232 2001-09-15  Hans-Peter Nilsson  <hp@axis.com>
1233
1234         * rtl.h (FIND_REG_INC_NOTE) [HAVE_PRE_INCREMENT
1235         || HAVE_PRE_DECREMENT || HAVE_POST_INCREMENT
1236         || HAVE_POST_DECREMENT]: Call find_regno_note for REGs.
1237
1238         * reorg.c (fill_slots_from_thread): After call to
1239         steal_delay_list_from_target, update own_thread as new_thread may
1240         have branched.
1241
1242 2001-09-14  Neil Booth  <neil@daikokuya.demon.co.uk>
1243
1244         * cpperror.c (print_location): Take line and column, for
1245         default positioning use the previously lexed token.
1246         (_cpp_begin_message): Take line and column.
1247         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
1248         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update.
1249         * cpphash.h (_cpp_begin_message): Update prototype.
1250         * cppinit.c (push_include): Don't set output line.
1251         * cpplex.c (_cpp_lex_token): Callback for start of new output lines.
1252         * cpplib.c (do_diagnostic, _cpp_pop_buffer): Update.
1253         (do_pragma): Kludge for front ends.  Don't expand macros at all.
1254         * cpplib.h (cpp_lookahead, cpp_token_with_pos, cpp_get_line): Remove.
1255         (struct cpp_token): Remove output_line.
1256         (struct cpp_callbacks): New member line_change.
1257         * cppmacro.c (builtin_macro, paste_all_tokens, replace_args,
1258         cpp_get_token): Preserve BOL flag.
1259         (cpp_get_line): Remove.
1260         (_cpp_backup_tokens): Remove useless abort().
1261         * cppmain.c (cb_line_change): New.
1262         (scan_translation_unit): Don't worry about starting new lines here.
1263         * scan-decls.c (scan_decls): Update.
1264         * c-lex.c (c_lex, init_c_lex): Update.
1265         (cb_line_change, src_lineno): New.
1266
1267 Fri Sep 14 13:54:50 EDT 2001  John Wehle  (john@feith.com)
1268
1269         * tree.c (append_random_chars): Generate the random
1270         characters in a reproducable fashion.
1271
1272 2001-09-14  Richard Henderson  <rth@redhat.com>
1273
1274         * config/i386/i386.c (internal_label_prefix): New.
1275         (internal_label_prefix_len): New.
1276         (override_options): Set them.
1277         (local_symbolic_operand): New.
1278         (legitimate_pic_address_disp_p): Use it.
1279         (legitimize_pic_address): Likewise.
1280
1281 2001-09-14  Marc Espie <espie@openbsd.org>
1282
1283         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK):  Generate reference to GOT
1284         correctly.
1285
1286 2001-09-14  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
1287
1288         * config/alpha/alpha.md (unaligned_extendhidi_be): Fix.
1289         * config/alpha/unicosmk.h (INIT_TARGET_OPTABS): New.
1290
1291 2001-09-14  Nick Clifton  <nickc@cambridge.redhat.com>
1292
1293         * rtlanal.c (subreg_regno_offset): Add semicolon to end of
1294         invocation of SUBREG_REGNO_OFFSET.
1295
1296         * haifa-sched.c: Fix typo in FSF copyright statement.
1297         * sched-deps.c: Fix typo in FSF copyright statement.
1298         * sched-ebb.c: Fix typo in FSF copyright statement.
1299         * sched-rgn.c: Fix typo in FSF copyright statement.
1300         * sched-vis.c: Fix typo in FSF copyright statement.
1301
1302         * config.gcc: Move inclusion of arm elf specific header files
1303         from the files themselves into the tm_file variable.  Make
1304         sure that elfos.h is included before target specific elf
1305         headers.
1306         * config/arm/aout.h (NO_DOLLAR_IN_LABEL): Only define if not
1307         already defined.
1308         (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Protect definition.
1309         * config/arm.arm.h (TARGET_MEM_FUNCTIONS,
1310         ASM_OUTPUT_CASE_LABEL): Protect definition.
1311         (CC1_SPEC, FP_DEFAULT, ARM_FUNCTION_PROFILE): Only define if
1312         not already defined.
1313         * config/arm/conix-elf.h: (USER_LABEL_PREFIX,
1314         LOCAL_LABEL_PREFIX, MAKE_DECL_ONE_ONLY, UNIQUE_SECTION):
1315         Remove duplicate definition.
1316         (READONLY_DATA_SECTION, SUBTARGET_EXTRA_SECTION,
1317         (SUBTARGET_EXTRA_SECTION_FUNCTION, RDATA_SECTION_ASM_OP,
1318         (RDATA_SECTION_FUNCTION): Remove redundant definition.
1319         (STARTFILE_SPEC, ENDFILE_SPEC): Protect definition.
1320         Remove inclusion of arm/elf.h.
1321         * config/arm/unknown-elf.h: as for conix-elf.h.
1322         (STARTFILE_SPEC): Include crti.o and crtn.o.
1323         * config/arm/linux-elf.h: as for conix-elf.h.
1324         * config/arm/ecos-elf.h: Remove inclusion of unknown-elf.h.
1325         * config/arm/strongarm-elf.h: Remove inclusion of
1326         unknown-elf.h.
1327         * config/arm/xscale-elf.h: Remove inclusion of unknown-elf.h.
1328         * config/arm/unknown-elf-oabi.h: Remove inclusion of
1329         unknown-elf.h and elf.h.
1330         * config/arm/uclinux-elf.h: Remove inclusion of linux-elf.h.
1331         * config/arm/linux-gas.h (DBX_DEBUGGING_INFO,
1332         ASM_WEAKEN_LABEL): Remove redundant definition.
1333         * config/arm/elf.h: Test for inclusion of elfos.h
1334         (USER_LABEL_PREFIX, ASM_DECLARE_RESULT, ASM_DECLARE_RESULT,
1335         ASM_DECLARE_OBJECT_NAME, ASM_FINISH_DECLARE_OBJECT_NAME,
1336         SUBTARGET_EXTRA_SECTION, SUBTARGET_EXTRA_SECTION_FUNCTION,
1337         EXTRA_SECTIONS, INT_ASM_OP, ASM_WEAKEN_LABEL): Remove
1338         redundant definition.
1339         (TYPE_OPERAND_FMT, ASM_DECLARE_FUNCTION_NAME,
1340         ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_INTERNAL_LABEL,
1341         ASM_OUTPUT_ALIGNED_COMMON): Protect definition.
1342         * t-arm-elf (EXTRA_MULTILIB_PARTS): Add crti.o and crtn.o.
1343         Add rules to build crti.o and crtn.o
1344         * crti.asm: New file.
1345         * crtn.asm: New file.
1346
1347 2001-09-13  Neil Booth  <neil@daikokuya.demon.co.uk>
1348
1349         * c-parse.in (_yylex): Use _cpp_backup_tokens.
1350         * cpphash.h (struct tokenrun): Add prev.
1351         (struct lexer_state): Remove bol.
1352         (struct cpp_reader): Remove old lookahead stuff, add lookaheads.
1353         (_cpp_free_lookaheads, _cpp_release_lookahead, _cpp_push_token)
1354         : Remove.
1355         * cppinit.c (cpp_create_reader): Don't set bol.
1356         (cpp_destroy): Don't free lookaheads.
1357         * cpplex.c (lex_directive): Remove.
1358         (next_tokenrun): Update.
1359         (_cpp_lex_token): Clean up logic.
1360         (lex_token): Update to return a pointer to lexed token, since it
1361         can move to the start of the buffer.  Simpify newline handling.
1362         * cpplib.c (SEEN_EOL): Update.
1363         (skip_rest_of_line): Remove lookahead stuff.
1364         (end_directive): Line numbers are already incremented.  Revert
1365         to start of lexed token buffer if we can.
1366         (_cpp_handle_directive, do_pragma, do_pragma_dependency,
1367         parse_answer): Use _cpp_backup_tokens.
1368         (run_directive, cpp_pop_buffer): Don't set bol, set saved_flags
1369         instead.  Don't check for EOL.
1370         (do_include_common, do_line, do_pragma_system_header): Use
1371         skip_rest_of_line.
1372         * cpplib.h (BOL, _cpp_backup_tokens): New.
1373         * cppmacro.c (save_lookahead_token, take_lookahead_token,
1374         alloc_lookahead, free_lookahead, _cpp_free_lookaheads,
1375         cpp_start_lookahead, cpp_stop_lookahead, _cpp_push_token): Remove.
1376         (builtin_macro): Don't use cpp_get_line.
1377         (cpp_get_line): Short term kludge.
1378         (parse_arg): Handle directives in arguments here.  Back up when
1379         appropriate.  Store EOF at end of argument list.
1380         (funlike_invocation_p): Use _cpp_backup_tokens.
1381         (push_arg_context): Account for EOF at end of list.
1382         (cpp_get_token): Remove lookahead stuff.  Update.
1383
1384 2001-09-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1385
1386         * c-parse.in (yyerror): Const-ification and/or static-ization.
1387         * c-typeck.c (push_member_name): Likewise.
1388         * collect2.c (main): Likewise.
1389         * dbxout.c (dbxout_parms): Likewise.
1390         * diagnostic.c (format_with_decl): Likewise.
1391         * dwarf2out.c (output_ranges): Likewise.
1392         * dwarfout.c (fundamental_type_code): Likewise.
1393         * except.c (dw2_output_call_site_table): Likewise.
1394         * gcc.c (do_spec_1): Likewise.
1395         * genopinit.c (optabs): Likewise.
1396         * objc/objc-act.c (synth_id_with_class_suffix, start_class,
1397         gen_declaration_1, handle_impent): Likewise.
1398         * protoize.c (default_include, in_system_include_dir, abspath):
1399         Likewise.
1400         * sched-vis.c (visualize_stall_cycles): Likewise.
1401         * sdbout.c (plain_type_1, sdbout_end_function,
1402         sdbout_end_epilogue): Likewise.
1403         * varasm.c (decode_reg_name): Likewise.
1404
1405         * 1750a.c (mod_regno_adjust): Likewise.
1406         * alpha.c (alpha_write_one_linkage,
1407         unicosmk_output_default_externs): Likewise.
1408         * arm.c (arm_condition_codes): Likewise.
1409         * arm.h (arm_condition_codes): Likewise.
1410         * avr.c (output_movsisf, encode_section_info): Likewise.
1411         * darwin.h (GEN_BINDER_NAME_FOR_STUB, GEN_SYMBOL_NAME_FOR_SYMBOL):
1412         Likewise.
1413         * i386.c (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise.
1414         * i386.h (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise.
1415         * m88k.c (output_function_profiler): Likewise.
1416         * mips.c (mips_output_conditional_branch): Likewise.
1417         * ns32k.c (ns32k_out_reg_names): Likewise.
1418         * ns32k.h (ns32k_out_reg_names): Likewise.
1419         * pj.c (pj_output_rval): Likewise.
1420         * rs6000.c (GEN_LOCAL_LABEL_FOR_SYMBOL): Likewise.
1421         * sparc.c (sparc_flat_function_prologue,
1422         sparc_flat_function_epilogue): Likewise.
1423
1424 2001-09-13  Markus Werle <numerical.simulation@web.de>
1425             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1426
1427         * doc/install.texi (Binaries): Add "Binaries for HP-UX 11.00 at
1428         Aachen University of Technology".
1429
1430 2001-09-13  Andreas Schwab  <schwab@suse.de>
1431
1432         * config/float-m68k.h: Define DECIMAL_DIG and FLT_EVAL_METHOD for
1433         C99.
1434
1435 2001-09-13  Richard Henderson  <rth@redhat.com>
1436
1437         * config/alpha/alpha.c (small_symbolic_operand): New.
1438         (override_options): Set MASK_SMALL_DATA based on pic/PIC.
1439         (some_operand, input_operand): Don't handle HIGH.
1440         (alpha_legitimize_address): Use it.  Emit HIGH with PLUS gp.
1441         (alpha_expand_mov): Likewise.
1442         (print_operand) [H]: Just print HIGH symbol.
1443         (print_operand_address): Handle small data.
1444         * config/alpha/alpha.h (MASK_SMALL_DATA, TARGET_SMALL_DATA): New.
1445         (TARGET_SWITCHES): Add -msmall-data/large-data.
1446         (PIC_OFFSET_TABLE_REGNUM): New.
1447         (PREFERRED_RELOAD_CLASS): Don't handle HIGH.
1448         (PREDICATE_COES): Update.
1449         * config/alpha/alpha.md (adddi_er_high): New.
1450         (adddi_er_low): Handle small data.
1451         * config/alpha/elf.h (DO_SELECT_SECTION): If SMALL_DATA,
1452         prefer .sdata to .rodata.
1453         (SELECT_RTX_SECTION): Likewise.
1454
1455 2001-09-12  Josh Martin  <josh.martin@abq.sc.philips.com>
1456
1457         * fixinc/inclhack.def(hpux11_size_t): Keep HP-UX headers from
1458         defining __size_t and leaving size_t undefined.
1459
1460 2001-09-12  Diego Novillo  <dnovillo@redhat.com>
1461
1462         * basic-block.h (expunge_block): Declare.
1463         * cfg.c (expunge_block): Remove static declaration.
1464
1465 2001-09-12  Richard Henderson  <rth@redhat.com>
1466
1467         * integrate.c (copy_insn_list): Copy label name from
1468         NOTE_INSN_DELETED_LABEL.
1469
1470 2001-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1471
1472         * c-common.c (c_tree_code_name): Const-ification.
1473         * c-decl.c (c_decode_option): Likewise.
1474         * c-typeck.c (warn_for_assignment): Likewise.
1475         * collect2.c (libexts, is_ctor_dtor, main, ignore_library):
1476         Likewise.
1477         * cppinit.c (output_deps): Likewise.
1478         * dependence.c (dependence_string, direction_string): Likewise.
1479         * dwarf2out.c (output_ranges): Likewise.
1480         * fixinc/fixfixes.c (emit_gnu_type): Likewise.
1481         * fixinc/gnu-regex.c (re_error_msgid): Likewise.
1482         * gcc.c (standard_exec_prefix, standard_exec_prefix_1,
1483         standard_startfile_prefix, standard_startfile_prefix_1,
1484         standard_startfile_prefix_2, tooldir_base_prefix,
1485         standard_bindir_prefix, find_a_file): Likewise.
1486         * genattrtab.c (make_length_attrs): Likewise.
1487         * gencheck.c (tree_codes): Likewise.
1488         * genemit.c (gen_split): Likewise.
1489         * genrecog.c (special_mode_pred_table): Likewise.
1490         * graph.c (graph_ext): Likewise.
1491         * protoize (default_include): Likewise.
1492         * reload.c (reload_when_needed_name): Likewise.
1493         * sched-vis.c (visualize_stall_cycles): Likewise.
1494         * tlink.c (recompile_files): Likewise.
1495         * toplev.c (decode_g_option): Likewise.
1496         * tradcpp.c (output_deps): Likewise.
1497         * varasm.c (decode_reg_name): Likewise.
1498
1499         * arm.c (arm_condition_codes, strings_fpa, thumb_condition_code):
1500         Const-ification.
1501         * arm.md: Likewise.
1502         * avr.c (avr_regnames, encode_section_info): Likewise.
1503         * c4x.c (float_reg_names): Likewise.
1504         * darwin.h (ASM_GLOBALIZE_LABEL): Likewise.
1505         * elfos.h (const_section): Likewise.
1506         * i386.c (ix86_comp_type_attributes): Likewise.
1507         * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
1508         * ia64/aix.h (UNIQUE_SECTION): Likewise.
1509         * ia64.c (type_names): Likewise.
1510         * m68hc11.c (reg_class_names): Likewise.
1511         * m88k.c (m_options): Likewise.
1512         * mips.c (mips_output_conditional_branch, mips_unique_section):
1513         Likewise.
1514         * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
1515         * sparc.c (sparc_flat_function_prologue, sparc_flat_function_epilogue,
1516         ultra_code_names): Likewise.
1517         * sparc.h (OVERRIDE_OPTIONS): Likewise.
1518
1519 2001-09-12  Jakub Jelinek  <jakub@redhat.com>
1520
1521         * configure.in (gcc_cv_as_shf_merge): Fix a typo.
1522         Use --fatal-warnings option for gas.
1523         * configure: Rebuilt.
1524
1525 2001-09-12  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
1526
1527         * doc/install.texi (Specific, alphaev5-cray-unicosmk*): Document.
1528
1529 2001-09-11  Jim Wilson  <wilson@redhat.com>
1530
1531         * alias.c (clear_reg_alias_info): Only handle pseudo registers.
1532
1533 2001-10-11  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
1534
1535         * builtins.c (c_strlen): Treat an offset too large for a
1536         HOST_WIDE_INT as out of range.
1537
1538 Tue Sep 11 18:57:47 CEST 2001  Jan Hubicka  <jh@suse.cz>
1539
1540         * basic-block.h (EDGE_CRITICAL): Remove; renumber other flags.
1541         (EDGE_CRITICAL_P): New predicate.
1542         * cfg.c (force_nonfallthru_and_redirect, split_edge): Kill EDGE_CRITICAL
1543         handling.
1544         (insert_insn_on_edge): Use EDGE_CRITICAL_P.
1545         (dump_edge_info): Remove "crit".
1546         * cfganal.c (mark_critical_edges): Kill.
1547         * cfgbuild.c (find_basic_blocks): Remove mark_critical_edges call.
1548         * cfgcleanup.c (cleanup_cfg): Likewise.
1549         * profile.c (instrument_edges): Use EDGE_CRITICAL_P.
1550         (find_spanning_tree): Likewise.
1551         * reg-stack.c (convert_regs_1): Likewise.
1552         * ssa.c (mark_regs_equivalent_over_bad_edges): Likewise.
1553
1554         * basic-block.h (create_basic_block_structure): New.
1555         (create_basic_block): Update prototype.
1556         (force_nonfallthru): New.
1557         * bb-reorder.c (fixup_reorder_chain): Fixup use force_nonfallthru.
1558         * cfg.c (create_basic_block_structure): Rename from create_basic_block;
1559         handle updating of block_for_insn, creating of empty BBs and BBs at
1560         the end of INSN chain.
1561         (create_basic_block): New function.
1562         (split_block): Use create_basic_block.
1563         (force_nonfallthru_and_redirect): Break out from ...; cleanup
1564         (redirect_edge_and_branch_force): ... here.
1565         (force_nonfallthru): New.
1566         (split_edge): Rewrite to use force_nonfallthru and create_block.
1567         * cfgbuild.c (find_basic_blocks_1): Use create_basic_block_structure.
1568         (find_basic_blocks): Free basic_block_for_insn.
1569         * cfgcleanup.c (merge_blocks): Use force_nonfallthru.
1570
1571         * cfg.c: Fix formating.
1572         * cfgcleanup.c: Fix formating.
1573         (merge_blocks, tail_recursion_label_p): Return bool.
1574         (merge_blocks_move_predecessor_nojumps,
1575          merge_blocks_move_successor_nojumps): Return void.
1576
1577 2001-09-11  Jakub Jelinek  <jakub@redhat.com>
1578
1579         * configure.in: Check whether assembler supports section merging.
1580         * config.in: Rebuilt.
1581         * configure: Rebuilt.
1582         * varasm.c (variable_section, output_constant_pool): Pass alignment
1583         to SELECT_SECTION and SELECT_RTX_SECTION.
1584         (mergeable_string_section): New.
1585         (mergeable_constant_section): New.
1586         (default_elf_asm_named_section): Output SECTION_MERGE and
1587         SECTION_STRINGS flags plus SECTION_ENTSIZE entity size.
1588         * output.h (mergeable_string_section): New.
1589         (mergeable_constant_section): New.
1590         (SECTION_MERGE, SECTION_STRINGS, SECTION_ENTSIZE): Define.
1591         * toplev.c (flag_merge_constants): New.
1592         (f_options): Add -fmerge-constants and -fmerge-all-constants
1593         options.
1594         (toplev_main): Default to -fno-merge-constants if not optimizing.
1595         * flags.h (flag_merge_constants): Add extern.
1596         * invoke.texi (-fmerge-constants, -fmerge-all-constants): Document.
1597         * tm.texi (SELECT_SECTION, SELECT_RTX_SECTION): Document added third
1598         argument.
1599         * config/elfos.h (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START):
1600         Define if assembler has working .subsection -1 support.
1601         (SELECT_RTX_SECTION, SELECT_SECTION): Add third macro argument.
1602         Put constant into special SHF_MERGE sections if the linker should
1603         attempt to merge duplicates.
1604         * config/ia64/sysv4.h (SELECT_RTX_SECTION, SELECT_SECTION): Add third
1605         macro argument.
1606         Put constant into special SHF_MERGE sections if the linker should
1607         attempt to merge duplicates.
1608         * config/alpha/elf.h: Likewise.
1609         (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START): Define if assembler
1610         has working .subsection -1 support.
1611         * config/nextstep.h: Add third argument to SELECT_RTX_SECTION and
1612         SELECT_SECTION.
1613         * config/svr3.h: Likewise.
1614         * config/darwin.h: Likewise.
1615         * config/arm/aof.h: Likewise.
1616         * config/arm/linux-elf.h: Likewise.
1617         * config/avr/avr.h: Likewise.
1618         * config/c4x/c4x.h: Likewise.
1619         * config/d30v/d30v.h: Likewise.
1620         * config/i386/dgux.h: Likewise.
1621         * config/i386/osfrose.h: Likewise.
1622         * config/i386/sco5.h: Likewise.
1623         * config/i386/svr3gas.h: Likewise.
1624         * config/ia64/aix.h: Likewise.
1625         * config/m32r/m32r.h: Likewise.
1626         * config/m68k/m68k.h: Likewise.
1627         * config/m88k/dgux.h: Likewise.
1628         * config/m88k/m88k.h: Likewise.
1629         * config/mcore/mcore-pe.h: Likewise.
1630         * config/mips/mips.h: Likewise.
1631         * config/pa/pa.h: Likewise.
1632         * config/pa/pa-linux.h: Likewise.
1633         * config/romp/romp.h: Likewise.
1634         * config/rs6000/sysv4.h: Likewise.
1635         * config/rs6000/xcoff.h: Likewise.
1636         * config/s390/linux.h: Likewise.
1637         * config/sparc/sparc.h: Likewise.
1638         * config/sparc/sysv4.h: Likewise.
1639         * config/stormy16/stormy16.h: Likewise.
1640         * config/v850/v850.h: Likewise.
1641         * config/vax/vms.h: Likewise.
1642         * config/arm/arm.c (arm_elf_asm_named_section): Output SECTION_MERGE
1643         and SECTION_STRINGS flags plus SECTION_ENTSIZE entity size.
1644         * config/sparc/sparc.c (sparc_elf_asm_named_section): Use
1645         default_elf_asm_named_section for SHF_MERGE sections.
1646
1647 Tue Sep 11 17:55:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
1648
1649         * bb-reorder.c (fixup_reorder_chain): Fallthru edge to exit block
1650         is OK.
1651
1652 2001-09-11  Joseph S. Myers  <jsm28@cam.ac.uk>
1653
1654         * c-common.c (split_specs_attrs): Allow for empty attributes with
1655         empty TREE_PURPOSE.  Fixes PR c/4294.
1656
1657 Tue Sep 11 11:37:52 CEST 2001  Jan Hubicka  <jh@suse.cz>
1658
1659         * basic-block.h (cached_make_edge, make_single_succ): New.
1660         (make_edge): Remove first parameter.
1661         * bb-reroder.c (fixup_reorder_chain): Use make_single_succ_edge.
1662         * cfg.c (cached_make_edge): Rename from make_edge; return newly
1663         created edge; use obstack allocation.
1664         (make_edge, make_single_succ_edge): New.
1665         (first_removed_edge): New static variable.
1666         (init_flow): Initialize first_removed_edge and n_edges.
1667         (clear_edges): Use remove_edge.
1668         (flow_delete_block): Likewise.
1669         (remove_edge): Add removed edges to the removed edges list.
1670         (split_block, redirect_edge_and_branch_force, split_edge):
1671         Use make_edge.
1672         * cfganal.c (flow_call_edges_add): Updaet make_edge call.
1673         (add_noreturn_fake_exit_edges): Likewise.
1674         (connect_infinite_loops_to_exit): Liekwise.
1675         * cfgbuild.c (make_label_edge, make_edges, find_sub_basic_blocks):
1676         Use cached_make_edge.
1677         * cfgcleanup.c (try_crossjump_to_edge): Use make_single_succ_edge.
1678         * profile.c (branch_prob): Update make_edge call.
1679         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
1680
1681 2001-09-11  Richard Henderson  <rth@redhat.com>
1682
1683         * config/alpha/alpha.c: Tidy formatting.
1684         (local_symbolic_operand): Verify mode.
1685         (alpha_sa_mask): Ignore unicos for eh_return.
1686         (alpha_expand_epilogue): Handle sp_adj2 zero, not NULL.
1687         * config/alpha/alpha.md (umk divsi patterns): Remove.
1688         (extendsfdf2): Remove unicos check.
1689         (tablejump): Merge vms and unicos code; always use direct set
1690         plus label_ref use.
1691
1692 2001-09-11  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
1693
1694         * config.gcc (alpha*-*-unicosmk*): New target.
1695
1696         * config/alpha/alpha-protos.h (symbolic_operand,
1697         unicosmk_add_call_info_word, unicosmk_add_extern,
1698         unicosmk_defer_case_vector, unicosmk_unique_section,
1699         unicosmk_output_align, unicosmk_text_section, unicosmk_data_section,
1700         unicosmk_asm_file_start, unicosmk_asm_file_end,
1701         unicosmk_output_common): Declare.
1702
1703         * config/alpha/alpha.c (NUM_ARGS, override_options, call_operand,
1704         direct_return, function_arg, alpha_va_start, alpha_va_arg,
1705         alpha_does_function_need_gp, alpha_end_function): Support Cray
1706         Unicos/Mk.
1707         (alpha_init_machine_status, alpha_mark_machine_status,
1708         alpha_free_machine_status, unicosmk_output_deferred_case_vectors,
1709         unicosmk_gen_dsib, unicosmk_output_ssib, unicosmk_need_dex,
1710         unicosmk_asm_named_section, unicosmk_insert_attributes,
1711         unicosmk_section_type_flags, symbolic_operand,
1712         unicosmk_output_module_name, unicosmk_output_default_externs,
1713         unicosmk_output_dex, unicosmk_output_externs,
1714         unicosmk_output_addr_vec, unicosmk_ssib_name,
1715         unicosmk_initial_elimination_offset, unicosmk_asm_file_start,
1716         unicosmk_asm_file_end, unicosmk_output_common,
1717         unicosmk_section_type_flags, unicosmk_unique_section,
1718         unicosmk_add_call_info_word, unicosmk_text_section,
1719         unicosmk_data_section, unicosmk_extern_list, unicosmk_extern_head,
1720         unicosmk_add_extern, unicosmk_dex, unicosmk_dex_list,
1721         unicosmk_dex_count, unicosmk_special_name): New.
1722         (TARGET_INSERT_ATTRIBUTES, TARGET_SECTION_TYPE_FLAGS): Define for
1723         TARGET_ABI_UNICOSMK.
1724         (get_aligned_mem, alpha_expand_unaligned_load,
1725         alpha_expand_unaligned_store, alpha_expand_unaligned_load_words,
1726         alpha_expand_unaligned_store_words): Support big-endian mode.
1727         (print_operand): Likewise. New format specifier 't'. Use
1728         TARGET_AS_SLASH_BEFORE_SUFFIX.
1729         (alpha_is_stack_procedure): Rename from vms_is_stack_procedure.
1730         (alpha_pv_save_size): Update with above change.
1731         (alpha_sa_mask, alpha_sa_size, alpha_expand_prologue,
1732         alpha_start_function, alpha_expand_epilogue): Likewise. Support Cray
1733         Unicos/Mk.
1734
1735         * config/alpha/alpha.h (TARGET_ABI_UNICOSMK): New.
1736         (TARGET_ABI_OSF): Exclude TARGET_ABI_UNICOSMK.
1737         (TARGET_AS_SLASH_BEFORE_SUFFIX): New.
1738         (EXTRA_CONSTRAINT): New constraint 'U'.
1739         (PREDICATE_CODES): Add symbolic_operand.
1740
1741         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM,
1742         UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): New constants.
1743         (mulsi3, *mulsi_se, mulvsi3): Disable for TARGET_ABI_UNICOSMK.
1744         (integer division and modulus patterns): Split in default and
1745         Unicos/Mk versions.
1746         (*divmodsi_internal, *divmoddi_internal): Disable for
1747         TARGET_ABI_UNICOSMK.
1748         (unaligned_extend?idi, unaligned_load?i, unaligned_store?i): Split in
1749         little-endian and big-endian versions.
1750         (ext, ins, msk): Likewise.
1751         (extv, extzv, insv): Support big-endian mode.
1752         (call, call_value, tablejump): Support TARGET_ABI_UNICOSMK.
1753         (call_umk, call_value_umk, *call_umk, tablejump_umk,
1754         *tablejump_umk_internal, *call_value_umk): New.
1755         (*movdi_nofix): Add pattern for loading an address into a register on
1756         TARGET_ABI_UNICOSMK.
1757         (umk_laum, umk_lal, umk_lalm, *umk_load_ciw): New.
1758         (umk_mismatch_args, arg_home_umk): New.
1759         (various insns): Don't use mov, fmov, nop, fnop and unop.
1760         (realign): Support TARGET_ABI_UNICOSMK.
1761
1762         * config/alpha/unicosmk.h: New file.
1763         * config/alpha/t-unicosmk: New file.
1764
1765         * fixinc/inclhack.def (unicosmk_restrict): New.
1766         * fixinc/fixincl.x: Regenerate.
1767
1768         * ginclude/stddef.h (size_t): Check for and define __SIZE_T__.
1769         (wchar_t): Check for and define __WCHAR_T__.
1770
1771 2001-09-11  Richard Sandiford  <rsandifo@redhat.com>
1772
1773         * combine.c (simplify_shift_const): Treat shifts by the mode
1774         size as undefined.
1775
1776 2001-09-11  Neil Booth  <neil@daikokuya.demon.co.uk>
1777
1778         * cpphash.h (struct tokenrun): New.
1779         (struct cpp_context): New member bol.
1780         (struct cpp_reader): New members.
1781         (_cpp_init_tokenrun): New.
1782         * cppinit.c (cpp_create_reader): Set up the token runs.
1783         * cpplex.c (lex_directive, lex_token, next_tokenrun): New.
1784         (lex_token): New internalised version of _cpp_lex_token.  Don't
1785         handle directives or the multiple include opimisation here any
1786         more.  Simply lex a token.
1787         * cpplib.c (run_directive): Clear bol.
1788         (_cpp_pop_buffer): Set bol.
1789         * cppmacro.c (funlike_invocation_p): Keep tokens whilst parsing
1790         arguments.
1791
1792 2001-09-11  Michael Meissner  <meissner@redhat.com>
1793
1794         * config/mips/mips.h (CC1_SPEC): If -mgp32 default to -mfp32, and
1795         give an error if the user uses -mfp32.
1796         (CPP_FPR_SPEC): Define __mips_fpr to be 32 or 64 depending on the
1797         default options.
1798         (CPP_SPEC): Define __mips_fpr to be 32 or 64, depending on the
1799         floating point register size.
1800         (EXTRA_SPECS): Add CPP_FPR_SPEC.
1801
1802         * config/mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Use
1803         HOST_WIDE_INT_PRINT_DEC to properly print the result of
1804         int_size_in_bytes.
1805         * config/mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Ditto.
1806         * config/mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Ditto.
1807
1808 2001-09-11  Hans-Peter Nilsson  <hp@axis.com>
1809
1810         * dbxout.c (dbxout_parms): Fix typo in comment.
1811         * unroll.c (loop_find_equiv_value): Ditto.
1812         * toplev.c (rest_of_compilation): Ditto.
1813         * loop.c (scan_loop): Ditto.
1814         * dwarf2out.c (struct dw_fde_struct): Ditto.
1815
1816 2001-09-10  Zack Weinberg  <zackw@panix.com>
1817
1818         * cpplex.c (parse_identifier): Fast-path optimize.  Avoid
1819         copying identifier when we're just going to throw it away.
1820         (parse_identifier_slow): New routine to handle abnormal cases.
1821         (_cpp_lex_token): Update call site.
1822
1823         * hashtable.c (ht_lookup): Don't assume that the string we've
1824         been given is NUL-terminated.
1825         * system.h: #define __builtin_expect(a, b) to (a) if not
1826         GCC >=3.0.
1827
1828 2001-09-10  Michael Meissner  <meissner@redhat.com>
1829
1830         * config.gcc (sparc64-*-solaris2): Add alias to be compatible with
1831         binutils, gdb.
1832
1833 2001-09-10  David Edelsohn  <edelsohn@gnu.org>
1834
1835         * config/rs6000/t-aix43 (SHLIB_INSTALL): Use mode 751 (a+x,r-o).
1836
1837 Mon Sep 10 16:26:44 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1838
1839         * builtins.c (c_getstr): Correct thinko in last change and further
1840         cleanup.
1841
1842 2001-09-10  Tim Freeman <tim@fungibole.com>
1843
1844         * dwarf2out.c (incomplete_types, decl_scope_table): Make them
1845         into varray's and register them as roots with the garbage
1846         collector so they are not collected too soon.
1847
1848 Mon Sep 10 14:21:26 CEST 2001  Jan Hubicka  <jh@suse.cz>
1849
1850         * Makefile.in (cfg.o, cfganal.o, cfgloop.o, cfgbuild.o, cfgcleanup.o):
1851         New.
1852         * basic-block.h (flow_obstack, label_value_list,
1853         tail_recursion_label_list): Declare
1854         (tidy_fallthru_edges): Declare.
1855         (expunge_block, last_loop_beg_note): Delete.
1856         (can_fallthru, flow_nodes_print, flow_edge_list_print): Declare.
1857         * cfg.c: New file
1858         (basic_block_for_insn, label_value_list): Move from flow.c; make global.
1859         (n_basic_blocks, n_edges, basic_block_info, entry_exit_blocks,
1860         init_flow, clear_edges, can_delete_note_p, can_delete_label_p,
1861         flow_delete_insn, flow_delete_insn_chain, create_basic_block,
1862         expunge_block, flow_delete_block, compute_bb_for_insn,
1863         update_bb_for_insn, set_block_for_insn, set_block_for_new_insns,
1864         make_edge, remove_edge, redirect_edge_succ, redirect_edge_succ_nodup,
1865         redirect_edge_pred, split_block, marge_blocks_nomove, block_label,
1866         try_redirect_by_replacing_jump, last_loop_beg_note,
1867         redirect_edge_and_branch, redirect_edge_and_branch_force,
1868         tidy_fallthru_edge, tidy_fallthru_edges, back_edge_of_syntactic_loop_p,
1869         split_edge, insert_insn_on_edge, commit_one_edge_insertion,
1870         commit_edge_insertions, dump_flow_info, debug_flow_info,
1871         dump_edge_info, dump_bb, debug_bb, debug_bb_n, print_rtl_with_bb,
1872         verify_flow_info, purge_dead_edges, purge_all_dead_edges):
1873         Move here from flow.c
1874         * cfganal.c: New file.
1875         (forwarder_block_p, can_fallthru, mark_critical_edges,
1876          mark_dfs_back_edges, need_fake_edge_p, flow_call_edges_add,
1877          find_unreachable_blocks, create_edge_list, free_edge_list,
1878          print_edge_list, verify_edge_list, find_edge_index, flow_nodes_print,
1879          flow_edge_list_print, remove_fake_successors, remove_fake_edges,
1880          add_noreturn_fake_exit_edges, connect_infinite_loops_to_exit,
1881          flow_reverse_top_sort_order_compute, flow_depth_first_order_compute,
1882          flow_dfs_compute_reverse_init, flow_dfs-compute_reverse_add_bb,
1883          flow_dfs-compute_reverse_execute, flow_dfs_compute_reverse_finish);
1884         Move here from flow.c
1885         * cfgbuild.c: New file
1886         (count_basic_blocks, find_label_refs, make_label_edge, make_eh_edge,
1887          make_edges, find_basic_blocks_1, find_basic_blocks,
1888          find_sub_basic_blocks): Move here from flow.c
1889         * cfgcleanup.c: New file.
1890         (try_simplify_condjump, try_forward_edges, tail_recursion_label_p,
1891          merge_blocks_move_predecessor_nojumps,
1892          merge_blocks_move_successor_nojumps, merge_blocks,
1893          flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
1894          try_crossjump_bb, try_optimize_cfg): Move here from flow.c
1895         (delete_unreachable_blocks, cleanup_cfg): Likewise; return true
1896         if succeeded.
1897         * cfgloop.c: New file
1898         (flow_loops_cfg_dump, flow_loop_nested_p, flow_loop_dump,
1899          flow_loops_dump, flow_loops_free, flow_loop_entry_edges_find,
1900          flow_loop_exit_edges_find, flow_loop_nodes_find,
1901          flow_loop_pre_header_scan, flow_loop_pre_header_find,
1902          flow_loop_tree_node_add, flow_loops_tree_build,
1903          flow_loop_level_compute, flow_loops_level_compute, flow_loop_scan,
1904          flow_loops_find, flow_loops_update, flow_loop_outside_edge_p):
1905         Move here from flow.c
1906         * flow.c: Remove everything moved elsewhere
1907         * output.h (cleanup_cfg): Return bool.
1908
1909         * bb-reorder.c (reorder_block_def): Remove 'index'.
1910         (insert_intra_1): Add argument BB, set block for new note.
1911         (make_reorder_chain): Do not depdent on BB indexes.
1912         (make_reorder_chain_1): Do not use BB indexes.
1913         (label_for_bb): Likewise; set BB for new insn.
1914         (emit_jump_to_block_after): Likewise.
1915         (fixup_reoder_chain): Sanity check that all basic blocks
1916         are chained; verify newly created insn chain; remove
1917         undocnitional jump simplifying; Do not use BB indexes;
1918         properly initialize count and frequency information;
1919         dump reordered sequence.
1920         (insert_intra_bb_scope_notes): update call of insert_intra_1.
1921         (insert_inter_bb_scope_notes): Set block for new insn.
1922         (reorder_basic_blocks): Dump flow info before reoredering.
1923
1924 Mon Sep 10 06:47:35 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1925
1926         * alias.c (clear_reg_alias_info): Use K&R format definition.
1927         Avoid unsigned warning.
1928         * builtins.c: Use "unsigned int", not "unsigned".
1929         (target_char_cast): Use host_integerp and tree_low_cst.
1930         (expand_builtin_args_info, expand_builtin_frame_address): Likewise.
1931         (c_strlen): Likewise; OFFSET now HOST_WIDE_INT.
1932         (c_getstr): Likewise.
1933         (std_expand_builtin_va_arg): Use int_size_in_bytes.
1934         (builtin_memcpy_read_str): Avoid unsigned warning.
1935         (expand_builtin_memcpy): Alignments are unsigned.
1936         (expand_builtin_strncpy, expand_builtin_memset): Likewise.
1937         (expand_builtin_expect_jump): Use integer_zerop and integer_onep.
1938         * predict.c (expensive_function_p): LIMIT now unsigned.
1939         * resource.c (mark_target_live_regs): Make some vars unsigned.
1940         * sdbout.c: Use "unsigned int", not "unsigned".
1941         (MAKE_LINE_SAFE): Add cast to avoid unsigned warning.
1942         (sdbout_source_line): Likewise.
1943         (sdbout_record_type_name): Remove "const" for NAME declaration.
1944         * config/alpha/alpha.c (alpha_expand_block_move): Whitespace fixes.
1945
1946 2001-09-10  Richard Sandiford  <rsandifo@redhat.com>
1947
1948         * calls.c (store_one_arg): Expand comment.
1949
1950 2001-09-10  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
1951
1952         * calls.c (store_one_arg): Make sure that the entire argument is
1953         pushed if STACK_PARMS_IN_REG_PARM_AREA is defined.
1954
1955 2001-09-09  Richard Henderson  <rth@redhat.com>
1956
1957         * emit-rtl.c (adjust_address): Fix mode for LO_SUM.
1958
1959 Sun Sep  9 10:43:17 CEST 2001  Jan Hubicka  <jh@suse.cz>
1960
1961         * loop.c (combine_givs): Fix computing of benefit once giv is combined.
1962
1963 2001-09-09  Richard Henderson  <rth@redhat.com>
1964
1965         * config/alpha/alpha.c (alpha_next_sequence_number): New.
1966         (alpha_this_literal_sequence_number): New.
1967         (alpha_this_gpdisp_sequence_number): New.
1968         (some_operand, input_operand): Add HIGH.
1969         (local_symbolic_operand): New.
1970         (alpha_encode_section_info): New.
1971         (alpha_legitimate_address_p): Allow LO_SUM.
1972         (alpha_legitimize_address): Generate HIGH+LO_SUM.
1973         (alpha_expand_mov): Likewise.
1974         (secondary_reload_class): Check memory_operand not general_operand
1975         for FP_REGS test.
1976         (alpha_expand_unaligned_load): Force LO_SUM addresses into a register.
1977         (alpha_expand_unaligned_store): Likewise.
1978         (alpha_expand_unaligned_load_words): Likewise.
1979         (alpha_expand_unaligned_store_words): Likewise.
1980         (alpha_expand_block_clear): Likewise.
1981         (print_operand): Handle %#, %*, %H.
1982         (print_operand_address): Handle LO_SUM.
1983         (find_lo_sum): New.
1984         (alpha_does_function_need_gp): Use it.
1985         (alpha_expand_block_move): Fix signed compare warnings.
1986         (alpha_sa_mask, alpha_align_insns): Likewise.
1987         * config/alpha/alpha-protos.h: Update.
1988         * config/alpha/alpha.h (TARGET_EXPLICIT_RELOCS): New.
1989         (MASK_EXPLICIT_RELOCS): New.
1990         (TARGET_SWITCHES): Add -mexplicit-relocs.
1991         (EXTRA_CONSTRAINT): Add 'T'.
1992         (PREFERRED_RELOAD_CLASS): HIGH goes in GENERAL_REGS.
1993         (ASM_APP_ON, ASM_APP_OFF): Turn on and off asm macro expansion.
1994         (ENCODE_SECTION_INFO): Out line.
1995         (REDO_SECTION_INFO_P): New.
1996         (STRIP_NAME_ENCODING): New.
1997         (ASM_OUTPUT_LABELREF): New.
1998         (PRINT_OPERAND_PUNCT_VALID_P): Add #, *.
1999         (PREDICATE_CODES): Update.
2000         * config/alpha/alpha.md (divmodsi_internal_er, divmoddi_internal_er,
2001         call_osf_1_er_noreturn, call_osf_1_er, movdi_er_low, movdi_er_nofix,
2002         movdi_er_fix, prologue_ldgp_1_er, builtin_setjmp_receiver_sub_label_er,
2003         builtin_setjmp_receiver_er, exception_receiver_1_er,
2004         call_value_osf_1_er): New patterns.
2005         (sibcall_osf_1, sibcall_value_osf_1): Remove register alternative.
2006         (movqi, movhi, movsi): Add explicit $31 base register to lda.
2007         * config/alpha/elf.h (ASM_FILE_START): Set nomacro if explicit relocs.
2008         (FINAL_PRESCAN_INSN): New.
2009
2010 Sat Sep  8 22:00:55 CEST 2001  Jan Hubicka  <jh@suse.cz>
2011
2012         * reg-stack.c (subst_stack_regs_pat): Fix fcmov reversal code.
2013
2014 2001-09-08  Andreas Jaeger  <aj@suse.de>
2015
2016         * i386.h (TARGET_SWITCHES): Fix description.
2017
2018 2001-09-07  David Edelsohn  <edelsohn@gnu.org>
2019
2020         * rs6000.c (num_insns_constant): Compute number of instructions
2021         more accurately.
2022
2023         * doc/install.texi: Explain AIX exception handling work-around.
2024         Update URL for AIX fixes.
2025
2026 2001-09-07  Jim Wilson  <wilson@redhat.com>
2027
2028         * alias.c (clear_reg_alias_info): New.
2029         * flow.c (attempt_auto_inc): Call clear_reg_alias_info.
2030         * rtl.h (clear_reg_alias_info): Declare.
2031
2032 2001-09-07  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
2033
2034         * real.c (EMUSHORT,EMUSHORT_SIZE): Use HImode if no 16-bit type is
2035         available.
2036         (UEMUSHORT): New. Use instead of unsigned EMUSHORT.
2037         (m16m,edivm,emulm): Change declaration to match definition.
2038
2039 2001-09-07  Roman Lechtchinsky <rl@cs.tu-berlin.de>
2040
2041         * reload.c (push_reload): Check for subreg_lowpart_p instead of
2042         SUBREG_BYTE being 0 when determining if the inner part of a subreg
2043         can be reloaded.
2044
2045 2001-09-07  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
2046
2047         * c-common.c (signed_or_unsigned_type): Handle machine mode types
2048         which have no corresponding C type.
2049         * fold_const.c (target_isinf,target_isnan,target_negative): Update
2050         the representation of 64-bit doubles to work with 64-bit ints.
2051
2052 2001-09-07  Aldy Hernandez  <aldyh@redhat.com>
2053
2054         * config/mips/mips.c (override_options): Do not override ISA when ABI
2055         specified if MIPS_CPU_STRING_DEFAULT was specified.
2056
2057 2001-09-07  Richard Henderson  <rth@redhat.com>
2058
2059         * loop.c (record_giv): Avoid simplifying MULT to ASHIFT.
2060         (express_from_1): Wrap lines.
2061         * rtlanal.c (commutative_operand_precedence): Rename from
2062         operand_preference; export.
2063         * rtl.h: Declare it.
2064         * simplify-rtx.c (simplify_gen_binary): Tidy +/- const_int handling.
2065         (simplify_binary_operation): Invoke simplify_plus_minus on
2066         (CONST (PLUS ...)) as well.
2067         (struct simplify_plus_minus_op_data): New.
2068         (simplify_plus_minus_op_data_cmp): New.
2069         (simplify_plus_minus): Use them.  Avoid infinite recursion with
2070         simplify_binary_operation wrt CONST.
2071
2072 Fri Sep  7 11:52:30 2001   Kazu Hirata  <kazu@hxi.com>
2073
2074         * h8300-protos.h (general_operand_dst_push): Remove.
2075         * h8300.c (general_operand_dst_push): Likewise.
2076         * h8300.h (OK_FOR_T): Likewise.
2077         (EXTRA_CONSTRAINTS): Do not use OK_FOR_T.
2078         * h8300.md (pushqi_h8300): New.
2079         (pushqi_h8300hs): Likewise.
2080         (pushqi): Likewise.
2081         (pushhi_h8300): Likewise.
2082         (pushhi_h8300hs): Likewise.
2083         (pushhi): Likewise.
2084
2085 Fri Sep  7 12:56:26 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2086
2087         * genattrtab.c (attr_printf): First arg is unsigned.
2088         Clean up formatting of callers.
2089
2090 2001-09-06  Aldy Hernandez  <aldyh@redhat.com>
2091
2092         * config/mips/mips.c (override_options): Allow abi32 with 64 bit
2093         registers.
2094
2095 2001-09-07  Andreas Jaeger  <aj@suse.de>
2096
2097         * i386.h (TARGET_SWITCHES): Fix descriptions.
2098
2099 2001-09-07  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
2100
2101         * stor-layout.c (compute_record_mode): Check DECL_SIZE is set.
2102
2103 2001-09-06  Ira Ruben  <ira@apple.com>
2104
2105         Remove OP_IDENTIFIER.
2106         * tree.def (OP_IDENTIFIER): Remove.
2107         * tree.c (tree_node_kind enum): Remove op_id_kind.
2108         (tree_node_kind_names): Remove "op_identifiers".
2109         (make_node): Remove OP_IDENTIFIER test.
2110         (build_op_identifier): Removed because it isn't being used.
2111         * print-tree.c (print_node): Remove OP_IDENTIFIER case.
2112         * cp/pt.c (tsubst): Remove OP_IDENTIFIER case.
2113
2114 2001-09-06  Richard Henderson  <rth@redhat.com>
2115
2116         * simplify-rtx.c (simplify_binary_operation): Revert last change.
2117
2118 2001-09-06  Richard Henderson  <rth@redhat.com>
2119
2120         * simplify-rtx.c (simplify_binary_operation): Simplify contents
2121         of CONST.
2122
2123 2001-09-06  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2124
2125         * config/rs6000/rs6000.c (rs6000_emit_prologue): Fix DWARF2 register
2126         number used for CR register.
2127
2128 Thu Sep  6 11:16:35 2001  Jeffrey A Law  (law@cygnus.com)
2129                           Joern Rennecke (amylaar@cygnus.com)
2130
2131         * h8300-protos.h (h8300_return_addr_rtx): New prototype.
2132         * h8300.c (initial_offset): Handle offset between RP and FP.
2133         (h8300_return_addr_rtx): New function.
2134         * h8300.h (FIRST_PSEUDO_REGISTER): Bump now that we have a
2135         return register.
2136         (FIXED_REGISTERS, CALL_USED_REGISTERS): Corresponding changes.
2137         (REG_ALLOC_ORDER, RETURN_ADDRESS_POINTER_REGNUM): Likewise.
2138         (REG_CLASS_CONTENTS, ELIMINABLE_REGS): Likewise.
2139         (CAN_ELIMINATE, REGISTER_NAMES):
2140         (RETURN_ADDR_RTX): Call h8300_return_addr_rtx.
2141
2142 2001-09-06  Nathan Sidwell  <nathan@codesourcery.com>
2143
2144         Remove TYPE_NONCOPIED_PARTS.
2145         * tree.h (TYPE_NONCOPIED_PARTS): Remove.
2146         (struct tree_type): Remove noncopied_parts.
2147         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Map onto TYPE_BINFO.
2148         * expr.c (save_noncopied_parts, init_noncopied_parts): Remove.
2149         (fixed_type_p): Remove.
2150         (expand_expr, INIT_EXPR): Don't deal with noncopied parts.
2151         (expand_expr, MODIFY_EXPR): Likewise.
2152         * ggc-common.c (ggc_mark_trees): Remove TYPE_NONCOPIED_PARTS.
2153         * doc/c-tree.texi: Remove TYPE_NONCOPIED_PARTS FIXME.
2154
2155 2001-09-06  Alan Modra  <amodra@bigpond.net.au>
2156
2157         * config/rs6000/rs6000.c (mask_operand): Use signed vars to avoid
2158         compiler warnings.
2159         (mask64_operand): Likewise.
2160         (includes_rldic_lshift_p): Likewise.
2161         (includes_rldicr_lshift_p): Likewise.
2162
2163 2001-09-05  Ziemowit Laski  <zlaski@apple.com>
2164
2165         * objc/objc-act.c (build_message_expr): If a class method cannot
2166         be found, do not issue a warning if a corresponding instance
2167         method exists in the root class.
2168
2169 2001-09-05  Richard Henderson  <rth@redhat.com>
2170
2171         * config/alpha/alpha.c (alpha_expand_mov): Initialize temp.
2172
2173 2001-09-05  Zack Weinberg  <zack@codesourcery.com>
2174
2175         * function.c (ggc_mark_struct_function): Mark f->outer.
2176         * toplev.c (rest_of_compilation): Clear DECL_SAVED_INSNS here...
2177         * integrate.c (output_inline_function): ... not here.
2178
2179 Wed Sep  5 17:28:49 CEST 2001  Jan Hubicka  <jh@suse.cz>
2180
2181         * profile.c (branch_prob): Call add_noreturn_fake_exit_edges.
2182
2183         * i386.c (size_cost): New static variable.
2184         (override_function): Use size_cost when -Os is specified.
2185
2186         * i386.c (ix86_expand_prologue): Set use_fast_prologue_epilogue
2187         properly;  Use current_function_calls_eh_return.
2188         (ix86_expand_epilogue): Avoid dummy optimize_size tests;
2189         use leave to avoid depdendancy chain.
2190
2191         * local-alloc.c (update_equiv_regs): Use CFG to iterate over INSN stream;
2192         get BB loop_depth instead of computing it from LOOP notes.
2193
2194         * reg-stack.c (subst_stack_reg_pat): Handle reversal of conditional moves.
2195
2196 2001-09-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2197
2198         * som.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
2199         * pa.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
2200         UNALIGNED_DOUBLE_INT_ASM_OP): Define
2201
2202 2001-09-05  Jeffrey A Law  (law@cygnus.com)
2203             Jason Merrill (jason@redhat.com)
2204
2205         * stor-layout.c (layout_type): Complain if an array's size can
2206         not be represented in a size_t.
2207
2208         * config/h8300/elf.h (ENDFILE_SPEC, STARTFILE_SPEC): Define.
2209
2210 2001-09-05  David Billinghurst <David.Billinghurst@riotinto.com>
2211
2212         * gcc.c: (process_command) Add parentheses around assignment
2213         used as truth value.
2214
2215 2001-09-05  Richard Sandiford  <rsandifo@redhat.com>
2216
2217         * config/mips/mips.c (save_restore_insns): Don't mark any register
2218         save slots as unchanging if current_function_calls_eh_return.
2219
2220 2001-09-05  Richard Henderson  <rth@redhat.com>
2221
2222         * config/alpha/alpha.c (alpha_legitimate_address_p): New.
2223         * config/alpha/alpha-protos.h: Declare it.
2224         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Move to c file.
2225         (NONSTRICT_REG_OK_FOR_BASE_P): Rename from non-strict macro.
2226         (NONSTRICT_REG_OK_FP_BASE_P): Likewise.
2227         (STRICT_REG_OK_FOR_BASE_P): Rename from strict macro.
2228         (REG_OK_FOR_BASE_P): Select one of the above.
2229
2230 2001-09-05  Richard Sandiford  <rsandifo@redhat.com>
2231
2232         * config/mips/t-elf (EXTRA_PARTS): Use EXTRA_MULTILIB_PARTS instead.
2233         (crti.o): Prefix name of object file with $(T).
2234         (crtn.o): Likewise.
2235
2236 2001-09-05  David S. Miller  <davem@redhat.com>
2237
2238         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
2239         * config/sparc/linux64.h: Likewise.
2240
2241 2001-09-05  Andreas Jaeger  <aj@suse.de>
2242
2243         * doc/invoke.texi (i386 Options): -mwide-multiply is not
2244         available anymore, remove the documentation.
2245         (i386 Options): Fix typo, cleanup index entries.
2246
2247         * prefix.c (concat): Remove, we can use the version from liberty.
2248
2249 2001-09-05  Richard Henderson  <rth@redhat.com>
2250
2251         * config/alpha/alpha.c (alpha_expand_mov, alpha_expand_mov_nobwx):
2252         New functions split out of md file expanders.
2253         * config/alpha/alpha-protos.h: Declare them.
2254         * config/alpha/alpha.md (movqi, movhi, movsi, movdi): Use them.
2255
2256 2001-09-05  Neil Booth  <neil@daikokuya.demon.co.uk>
2257
2258         * cppmacro.c (funlike_invocation_p): No need to restore context.
2259
2260 2001-09-04  Richard Henderson  <rth@redhat.com>
2261
2262         * reload.c (push_reload): Export.
2263         * reload.h (push_reload): Declare it.
2264
2265         * config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Move out o' line.
2266         (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
2267         * config/alpha/alpha.c (alpha_legitimize_address): New.
2268         (alpha_legitimize_reload_address): Likewise.
2269         * config/alpha/alpha-protos.h: Declare them.
2270
2271 2001-09-04  Stan Shebs  <shebs@apple.com>
2272
2273         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Define.
2274         * config/darwin.c (machopic_stub_name): Account for internally
2275         generated lib calls such as memcpy.
2276
2277 2001-09-04  Richard Henderson  <rth@redhat.com>
2278
2279         * unwind.h (_UA_END_OF_STACK): New flag.
2280         * unwind.inc (_Unwind_ForcedUnwind_Phase2): Set it.
2281
2282 Tue Sep  4 11:16:35 2001  Jeffrey A Law  (law@cygnus.com)
2283
2284         * h8300/elf.h (LINK_SPEC): Redefine appropriately for the H8.
2285
2286 2001-09-04  Richard Sandiford  <rsandifo@redhat.com>
2287
2288         * config/mips/mips.c (save_restore_insns): Change base_offset to
2289         fp_offset in second call to mips_emit_frame_related_store.
2290
2291 2001-09-04  Hans-Peter Nilsson  <hp@axis.com>
2292
2293         * doc/rtl.texi: Mention that besides as a CODE_LABEL, a label can
2294         sometimes be represented as a NOTE of type
2295         NOTE_INSN_DELETED_LABEL.
2296         (Insns): Document NOTE_INSN_DELETED_LABEL.
2297
2298 2001-09-04  Nathan Sidwell  <nathan@codesourcery.com>
2299
2300         * c-common.h (tree_dump_index): Add more comments.
2301         * c-dump.c (dump_files): Name flags `tree' rather than `ast'.
2302         (dump_option_value_info): New struct.
2303         (dump_options): New array.
2304         (dump_switch_p): Parse switch options symbolically.
2305         * doc/invoke.texi (-fdump-ast): Rename to ...
2306         (-fdump-tree): ... here. Document that options are symbolic, and
2307         not all are applicable.
2308
2309 2001-09-04  David S. Miller  <davem@redhat.com>
2310
2311         * config/sparc/sparc.md (define_splits): Kill constraints.
2312
2313         Cleanup redundant and unused insn attributes.
2314         * config/sparc/sparc.md (define_attr "insn"): Kill address, unary,
2315         binary, and move.  Mark ialu as default.
2316         (commented out define_function_unit "alu"): Kill.
2317         (define_attr "use_clobbered"): Kill.
2318         (whole file): Kill address insn type references.  Replace
2319         all unary/binary/move references with ialu.
2320         * config/sparc/sparc.c (whole file): Kill TYPE_ADDRESS
2321         references.  Replace TYPE_{UNARY,BINARY,MOVE} references with
2322         TYPE_IALU.
2323
2324         Simplify length insn attribute and make more judicious use
2325         of insn attribute defaulting.
2326         * config/sparc/sparc.md (all insns with length > one): Mark as
2327         insn type multi if real instructions, else use default if
2328         it is a forced splitter.
2329         (all insns with length == one): Use default insn length.
2330         (all insns of type ialu): Use default insn type.
2331
2332         Fix erroneous insn attribute settings.
2333         (addx): Set insn type to misc.
2334         (mulsidi3_sp64, const_mulsidi3_sp64, umulsidi3_sp64,
2335         const_umulsidi3_sp64): Set insn type to imul.
2336
2337         Track SFmode vs DFmode insns according to UltraSPARC
2338         scheduling rules.
2339         * config/sparc/sparc.md ("fptype"): New attribute, default
2340         to "single".
2341         (all DFmode single insns): Mark as fptype "double".
2342
2343 2001-09-03  Jakub Jelinek  <jakub@redhat.com>
2344
2345         * loop.c (express_from_1): Fix CONSTANT_P(a) case.
2346
2347 2001-09-03  Richard Henderson  <rth@redhat.com>
2348
2349         * function.h (struct function): Add arg_pointer_save_area_init.
2350         * function.c (expand_function_end): Init arg_pointer_save_area.
2351         (get_arg_pointer_save_area): Do not init arg_pointer_save_area
2352         when called from a nested function.
2353
2354 2001-09-02  Angela Marie Thomas <angela@cygnus.com>
2355
2356         * fixinc/Makefile.in: Regenerate fixincl.x only if maintainer-mode
2357         is enabled.
2358
2359 Sun Sep  2 18:37:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
2360
2361         * reload1.c (fixup_abnormal_edges): Allow NOTEs in the sequence.
2362
2363 2001-09-01  Geoffrey Keating  <geoffk@redhat.com>
2364
2365         * expr.c (push_block): Make sane use of STACK_GROWS_DOWNWARD.
2366         (emit_push_insn): Use specified padding direction when
2367         STACK_PUSH_CODE is POST_INC.
2368
2369         * config/stormy16/stormy16.h (DWARF2_UNWIND_INFO): Define to 0.
2370
2371 2001-09-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2372
2373         * mips.h (INITIAL_ELIMINATION_OFFSET): Add missing `else abort'.
2374
2375 2001-09-01  Neil Booth  <neil@daikokuya.demon.co.uk>
2376
2377         * cppinit.c (cpp_start_read): Free the imacros list as we
2378         traverse it.  Don't free the chains before returning.
2379         (_cpp_push_next_buffer): Only try pushing buffers if we've
2380         completed -imacros handling.
2381
2382 2001-08-31  Eric Christopher  <echristo@redhat.com>
2383
2384         * gcc.c (handle_braces): Add explaination for abort.
2385
2386 2001-08-30  Roman Zippel  <zippel@linux-m68k.org>
2387
2388         * expmed.c (store_bit_field): Update to patch from 2001-08-27:
2389         move adjustment of bitpos instead.
2390
2391 2001-08-31  Zack Weinberg  <zack@codesourcery.com>
2392
2393         * function.c: Remove all_functions.  Make outer_function_chain
2394         static.
2395         (init_function_start): Don't add new function structure to
2396         all_functions.
2397         (find_function_data, push_function_context_to,
2398         pop_function_context_from, put_var_into_stack,
2399         trampoline_address): Update for changed structure element names.
2400         (push_function_context_to): Disentangle.
2401         (free_after_compilation): Also free F.
2402         (expand_dummy_function_end): Don't free cfun here.
2403         (put_var_into_stack): Comment why we can't use find_function_data here.
2404         (fix_lexical_addr, trampoline_address, ): Use find_function_data.
2405         (mark_function_chain): Split into maybe_mark_struct_function and
2406         ggc_mark_struct_function.  Export the latter.
2407         (init_function_once): Mark from cfun and outer_function_chain;
2408         not all_functions.
2409
2410         * function.h (struct function): Kill next_global.  Rename next
2411         to outer.  All users updated to match.
2412         (all_functions, outer_function_chain): Don't declare.
2413
2414         * ggc-common.c (ggc_mark_trees): Mark DECL_SAVED_INSNS.
2415         * integrate.c (output_inline_function): Clear DECL_SAVED_INSNS,
2416         don't touch f->inlinable, after calling rest_of_compilation.
2417
2418         * tree.h: Forward-declare struct function.  Prototype
2419         ggc_mark_struct_function.
2420
2421 2001-08-31  Kazu Hirata  <kazu@hxi.com>
2422
2423         * config/h8300/h8300.md (*andorhi3): Fix typos.
2424
2425 2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2426
2427         * calls.c (emit_library_call_value): Don't use a fixed
2428         argument after VA_CLOSE, i.e. out of scope in traditional C.
2429
2430         * emit-rtl.c (gen_rtvec): Likewise.
2431
2432 2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2433
2434         * Makefile.in (c-pragma.o): Depend on output.h.
2435         (reorg.o): Depend on except.h.
2436
2437         * c-pragma.c: Include output.h.
2438
2439         * reorg.c: Include except.h.
2440
2441         * unwind-dw2.c: Call __builtin_alloca, not alloca.
2442
2443 2001-08-31  Richard Henderson  <rth@redhat.com>
2444
2445         * sched-deps.c (add_dependence): Don't elide dependancy if the
2446         conditional used by insn is modified in elem.
2447
2448 2001-08-31  Nick Clifton  <nickc@cambridge.redhat.com>
2449
2450         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Define.
2451
2452 2001-08-31  Diego Novillo  <dnovillo@redhat.com>
2453
2454         * c-decl.c (c_decode_option): Skip '-f' prefix before calling
2455         dump_switch_p.
2456
2457 2001-08-31  Geoffrey Keating  <geoffk@redhat.com>
2458
2459         * config/stormy16/stormy16.c (stormy16_asm_out_destructor): New
2460         function.
2461         (stormy16_asm_out_constructor): New function.
2462         (TARGET_ASM_CONSTRUCTOR): Define.
2463         (TARGET_ASM_DESTRUCTOR): Define.
2464
2465 2001-08-31  Andreas Jaeger  <aj@suse.de>
2466
2467         * gcse.c (add_label_notes): REG_LABEL is an INSN_LIST.
2468         * loop.c (add_label_notes): Likewise.
2469         * reload.c (find_reloads): Likewise.
2470         * config/sh/sh.c (machine_dependent_reorg): Likewise.
2471
2472 2001-08-31  Jason Merrill  <jason_merrill@redhat.com>
2473
2474         * unwind-pe.h (read_uleb128, read_sleb128): Move actual reading
2475         code here.  Take _Unwind_{W,Sw}ord*.
2476         (read_encoded_value_with_base): Use them.
2477         * unwind-dw2.c (_Unwind_FrameState): Make cfa_offset and cfa_reg
2478         words.
2479         (extract_cie_info): Simplify read_?leb128 handling.
2480         (execute_stack_op, execute_cfa_program): Likewise.
2481         * unwind-dw2-fde.c (get_cie_encoding): Likewise.
2482
2483 2001-08-31  Geoffrey Keating  <geoffk@redhat.com>
2484
2485         * config/stormy16/stormy16.c (stormy16_expand_epilogue): Use
2486         the frame pointer to pop the stack if convenient.
2487
2488         * config/stormy16/stormy16.c (stormy16_initialize_trampoline):
2489         Don't use post-increment before combine.
2490         * config/stormy16/stormy16.h (STATIC_CHAIN_REGNUM): Don't use
2491         a call-saved register.
2492
2493 2001-08-31  Andreas Jaeger  <aj@suse.de>
2494
2495         * jump.c (mark_jump_label): Revert patch from 2001-08-28, the
2496         code was correct.
2497
2498 2001-08-30  Geoffrey Keating  <geoffk@redhat.com>
2499
2500         * config/stormy16/stormy16.md (udivmodhi4): Express using UDIV/UMOD,
2501         not DIV/MOD, of course.
2502
2503 2001-08-30  Vladimir Makarov  <vmakarov@redhat.com>
2504
2505         * rtl.def: Undo my patch commited 2001-08-27.
2506
2507         * genattrtab.c: Ditto.
2508
2509         * rtl.h: Ditto.
2510
2511         * sched-int.h: Ditto.
2512
2513         * target-def.h: Ditto.
2514
2515         * target.h: Ditto.
2516
2517         * haifa-sched.c: Ditto.
2518
2519         * sched-rgn.c: Ditto.
2520
2521         * sched-vis.c: Ditto.
2522
2523         * Makefile.in: Ditto.
2524
2525         * doc/md.texi: Ditto.
2526
2527         * doc/tm.texi: Ditto.
2528
2529         * doc/contrib.texi: Ditto.
2530
2531         * doc/gcc.texi: Ditto.
2532
2533         * genattrtab.h: Remove it.
2534
2535         * genautomata.c: Remove it.
2536
2537         * genattr.c: Undo my patch and Richard Henderson's patch commited
2538         2001-08-27.
2539
2540 Thu Aug 30 19:22:15 2001  J"orn Rennecke <amylaar@redhat.com>
2541
2542         * config.gcc (h8300-*-elf*): New case.
2543         * h8300.h (CPP_SPEC): Add subtarget_cpp_spec.
2544         (SUBTARGET_CPP_SPEC): Define.
2545         (EXTRA_SPECS): Define.
2546         (SUBTARGET_EXTRA_SPECS): Define.
2547         * config/h8300/crti.asm, config/h8300/crtn.asm: New files.
2548         * config/h8300/elf.h, config/h8300/t-elf: Likewise.
2549
2550 Thu Aug 30 18:50:37 2001  J"orn Rennecke <amylaar@redhat.com>
2551
2552         * t-h8300 (LIB1ASMFUNCS): Add _fixunssfdi and _fixunssfsi_asm.
2553         (LIB2FUNCS_EXTRA): Define.
2554         config/h8300/lib1funcs.asm: New part: L_fixunssfsi_asm .
2555         config/h8300/fixunssfsi.c: New file.
2556
2557 2001-08-30  Kazu Hirata  <kazu@hxi.com>
2558
2559         * config/h8300/h8300.md (zero_extendqihi2): Changes to
2560         define_expand to accomodate target-specific attributes.
2561         (anonymous zero_extendqihi2 patterns): New.
2562
2563 Thu Aug 30 18:10:56 2001  J"orn Rennecke <amylaar@redhat.com>
2564
2565         * h8300.md (*andorhi3): New pattern.
2566
2567 Thu Aug 30 16:00:31 2001  J"orn Rennecke <amylaar@redhat.com>
2568
2569         * h8300.c (dosize): Fix test for "sub".
2570
2571 Thu Aug 30 10:21:43 2001  J"orn Rennecke <amylaar@redhat.com>
2572
2573         * c-typeck.c (pointer_diff): Try to eliminate common term before
2574         doing conversions.
2575
2576 2001-08-30  Nick Clifton  <nickc@cambridge.redhat.com>
2577
2578         * config/arm/arm.c (arm_compute_initial_elimination_offset):
2579         Account for the saves of the FP registers.
2580
2581         * config/arm/unknown-elf.h (TEXT_SECTION): Delete.
2582         (TEXT_SECTION_ASM_OP): Define.
2583         (INIT_SECTION_ASM_OP): Define.
2584         (FINI_SECTION_ASM_OP): Define.
2585         (SUBTARGET_EXTRA_SECTIONS): Remove trailing comma.
2586         (RDATA_SECTION_FUNCITON): Provide prototype.
2587
2588 2001-08-29  Geoffrey Keating  <geoffk@redhat.com>
2589
2590         * reload1.c (move2add_note_store): Correct typo checking for
2591         argument pushes.
2592
2593 2001-08-29  Andrew MacLeod  <amacleod@redhat.com>
2594
2595         * gcse.c (compute_hash_table): The SRC part of an insn with a RETVAL
2596         note should not be considered outside the libcall block.
2597
2598 2001-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2599
2600         * genattrtab.c (attr_printf): Use VA_OPEN/VA_FIXEDARG/VA_CLOSE.
2601
2602 2001-08-29  Kazu Hirata  <kazu@hxi.com>
2603
2604         * config/h8300/h8300.md (movsi_h8300hs): Make it 64-bit safe.
2605
2606 2001-08-29  Kazu Hirata  <kazu@hxi.com>
2607
2608         * config/h8300/h8300-protos.h: Add a prototype for
2609         emit_logical_op.
2610         * config/h8300/h8300.c (emit_logical_op): New.
2611         * config/h8300/h8300.md (andhi3): Use emit_logical_op.
2612         (andsi3): Likewise.
2613         (iorhi3): Likewise.
2614         (iorsi3): Likewise.
2615         (xorhi3): Likewise.
2616         (xorsi3): Likewise.
2617
2618 2001-08-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2619
2620         * pa.c (move_operand): Cast GET_MODE_SIZE results to HOST_WIDE_INT for
2621         comparison with rtx INTVAL.
2622         (pa_output_function_prologue): Don't mix signed and unsigned in `?'
2623         expression.
2624         * pa.h (FUNCTION_ARG_SIZE): Likewise.
2625
2626 2001-08-29  Kazu Hirata  <kazu@hxi.com>
2627
2628         * config/h8300/lib1funcs.asm: Update the copyright.  Fix
2629         comment typos.
2630
2631 2001-08-29  Kazu Hirata  <kazu@hxi.com>
2632
2633         * config/h8300/h8300.md (anonymous movhi pattern): Don't move
2634         (reg n) to (mem (pre_dec (reg n))
2635         (anonymous movsi pattern): Likewise.
2636
2637 2001-08-29  Kazu Hirata  <kazu@hxi.com>
2638
2639         * config/h8300/h8300.h (RETURN_ADDR_RTX): New.
2640
2641 2001-08-29  Kazu Hirata  <kazu@hxi.com>
2642
2643         * config/h8300/h8300.md (movsi_h8300hs): Optimize loading of
2644         several special constants.
2645
2646 2001-08-29  Kazu Hirata  <kazu@hxi.com>
2647
2648         * config/h8300/lib1funcs.asm: Fix comment typos.
2649
2650 2001-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2651
2652         * iris6.h (ASM_DECLARE_OBJECT_NAME, ASM_FINISH_DECLARE_OBJECT):
2653         Fix format specifier warnings.
2654
2655         * irix6-libc-compat.c (inet_ntoa, inet_lnaof, inet_netof,
2656         inet_makeaddr, semctl): Prototype.
2657
2658         * mips.c (compute_frame_size): Fix signed/unsigned warnings.
2659         (save_restore_insns): Use base_offset, not gp_offset.
2660
2661         * mips.h (GP_REG_OR_PSEUDO_STRICT_P): Fix signed/unsigned warning.
2662         (ASM_OUTPUT_BYTE): Fix format specifier warning.
2663
2664 2001-08-29  Richard Henderson  <rth@redhat.com>
2665
2666         * bb-reorder.c (function_tail_eff_head): New.
2667         (record_effective_endpoints): Set it.
2668         (fixup_reorder_chain): Use it.
2669
2670 2001-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2671
2672         * dwarf2asm.c (dw2_asm_output_nstring): Fix typo in previous change.
2673
2674 2001-08-28  Dale Johannesen  <dalej@apple.com>
2675
2676         * config/darwin.c (machopic_function_base_name): Add const
2677         qualifier to a string.
2678         (darwin_encode_section_info): Ditto.
2679
2680 2001-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2681
2682         * tree.c (default_valid_attribute_p): Don't use PARAMS on a
2683         function definition.
2684
2685 2001-08-28  Daniel Berlin  <dan@cgsoftware.com>
2686
2687         * df.h (struct df): Add rts_order variable.
2688
2689         * df.c (df_visit_next_rts): New function.
2690         (df_visit_next): Renamed to df_visit_next_rc
2691         (df_analyse_1): Allocate/compute/free rts_order as well.
2692         (df_rd_global_compute): Use df_visit_next_rc instead of
2693         df_visit_next.
2694         (df_ru_global_compute): Use df_visit_next_rts instead of
2695         df_visit_next.
2696
2697         * flow.c (flow_reverse_top_sort_order_compute): New function.
2698
2699         * basic-block.h: Add prototype.
2700
2701 2001-08-28  Daniel Berlin  <dan@cgsoftware.com>
2702
2703         * ssa-ccp.c (ssa_ccp_df_delete_unreachable_insns): For unreachable
2704         blocks, the BB_REACHABLE is now set, rather than aux being
2705         non-NULL. Update the test to reflect this.
2706
2707 2001-08-28  Eric Christopher  <echristo@redhat.com>
2708
2709         * config/mips/crtn.asm: Add comment explaining 16 byte alignment.
2710         config/mips/crti.asm: Ditto.
2711
2712 2001-08-28  Eric Christopher <echristo@redhat.com>
2713             Richard Henderson <rth@redhat.com>
2714
2715         * c-pragma.h (add_weak): Move prototype from here...
2716         * output.h (add_weak): ... to here.
2717         * varasm.c (add_weak): Fix typo.
2718         * config/mips/crti.asm: New file.
2719         * config/mips/crtn.asm: Ditto.
2720         * config/mips/elf.h (SBSS_SECTION_ASM_OP) Add #undef.
2721         (CTOR_LISTS_DEFINED_EXTERNALLY): Remove.
2722         (INVOKE__main): Ditto.
2723         (INIT_SECTION_ASM_OP): New.
2724         (FINI_SECTION_ASM_OP): Ditto.
2725         (STARTFILE_SPEC): Add crti.
2726         (ENDFILE_SPEC): Add crtn.
2727         * config/mips/elf64.h: Same.
2728         * config/mips/rtems64.h (INVOKE__main, NAME__MAIN, SYMBOL__MAIN):
2729         Remove.
2730         * config/mips/vxworks.h: Ditto.
2731         * config/mips/t-elf: Support crti and crtn.
2732
2733 2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
2734
2735         * jump.c (mark_jump_label): Fix typo: REG_LABEL is EXPR_LIST, not
2736         INSN_LIST.
2737
2738 2001-08-28  Richard Henderson  <rth@redhat.com>
2739
2740         * config/ia64/ia64.md (andcmbi3, iorcmbi3): Fix typos.
2741         (one_cmplbi2 splitter): Remove redundant test.
2742
2743 2001-08-28  Dale Johannesen  <dalej@apple.com>
2744
2745         * config/rs6000/darwin.h (DEFAULT_SIGNED_CHAR): Define.
2746
2747 2001-08-28  Danny Smith  <dannysmith@users.sourceforge.net>
2748
2749         * config/i386/cygwin.h (BIGGEST_FIELD_ALIGNMENT): Set to 64.
2750
2751 2001-08-28  Stan Shebs  <shebs@apple.com>
2752
2753         * config/darwin.h (ASM_OUTPUT_LABELREF): Handle '*' names.
2754         (UNALIGNED_SHORT_ASM_OP): Define.
2755         (UNALIGNED_INT_ASM_OP): Define.
2756
2757 2001-08-28  Will Cohen  <wcohen@redhat.com>
2758
2759         * config/rs6000/rs6000.md (store_multiple): Correct RTL
2760         generation for first set.
2761
2762 2001-08-27  Roman Zippel  <zippel@linux-m68k.org>
2763
2764         * flow.c (redirect_edge_succ_nodup): Return new edge.
2765         (try_simplify_condjump): Use new edge.
2766         * basic-block.h (redirect_edge_succ_nodup): Update prototype.
2767
2768         * cse.c (cse_basic_block): Skip note instructions.
2769
2770 2001-08-27  Richard Henderson  <rth@redhat.com>
2771
2772         * combine.c (combine_simplify_rtx): Don't reverse condition
2773         if there is no reverse for the condition.
2774         (simplify_comparison): Don't simplify subregs from INT to FP.
2775
2776         * config/m68k/m68k.md (sordered, sordered_1, sunordered, sunordered_1,
2777         suneq, suneq_1, sunge, sunge_1, sungt, sungt_1, sunle, sunle_1,
2778         sunlt, sunlt_1, sltgt, sltgt_1, fsogt_1, fsoge_1, fsolt_1, fsole_1,
2779         bordered, bunordered, buneq, bunge, bungt, bunle, bunlt, bltgt,
2780         bordered_rev, bunordered_rev, buneq_rev, bunge_rev, bungt_rev,
2781         bunle_rev, bunlt_rev, bltgt_rev): New patterns.
2782
2783 2001-08-27  Roman Zippel  <zippel@linux-m68k.org>
2784
2785         * config/m68k/m68k.md (subreghi1ashrdi_const32, bsetmemqi,
2786         bsetmemqi+1, strict_low_part peephole): Fix SUBREG_BYTE offset.
2787         (pushqi1): New.
2788         (adddi_dilshr32, adddi_dishl32): Only data register can be
2789         source for mem destination.
2790
2791         * expmed.c (store_bit_field): Ignore adjustment to bitpos
2792         and use bitnum to decide about register move.
2793
2794 2001-08-27  Richard Henderson  <rth@redhat.com>
2795
2796         * genattr.c (main): Emit state_t even when not doing scheduling.
2797
2798 2001-08-27  Roman Zippel <zippel@linux-m68k.org>
2799             Richard Henderson  <rth@redhat.com>
2800
2801         * gcse.c (reg_first_set, reg_last_set): Replace with ...
2802         (reg_avail_info, current_bb): ... these.
2803         (oprs_unchanged_p, record_last_reg_set_info): Use them.
2804         (compute_hash_table): Likewise.
2805
2806 2001-08-27  Roman Zippel <zippel@linux-m68k.org>
2807
2808         * flow.c (verify_flow_info): Use checksums to verify edges.
2809
2810 2001-08-27  Richard Henderson  <rth@redhat.com>
2811
2812         * genautomata.c (expand_automata): Always create a description.
2813
2814 2001-08-27  Geoffrey Keating  <geoffk@redhat.com>
2815
2816         * optabs.c (expand_binop): Correctly handle the carry in multiword
2817         add/subtract operations.
2818
2819 2001-08-27  Fred Fish  <fnf@be.com>
2820
2821         * ginclude/stddef.h: Fix typo, __SIZE__TYPE__ should be
2822         __SIZE_TYPE__.
2823
2824 2001-08-27  Geoffrey Keating  <geoffk@redhat.com>
2825
2826         * reload.c (find_reloads_toplev): Back out this change:
2827
2828         Wed Jul 26 19:44:05 2000   Hans-Peter Nilsson  <hp@axis.com>
2829
2830         * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
2831         mem if the address is a mode_dependent_address_p.
2832
2833 2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
2834
2835         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
2836         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
2837         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
2838         RTL constructions.
2839
2840         * genattr.c (main): New variable num_insn_reservations.  Increase
2841         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
2842         pipeline hazard recognizer interface.
2843
2844         * genattrtab.h: New file.
2845
2846         * genattrtab.c: Include genattrtab.h.
2847         (attr_printf, check_attr_test, make_internal_attr,
2848         make_numeric_value): Move protypes into genattrtab.h.  Define them
2849         as external.
2850         (num_dfa_decls): New global variable.
2851         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
2852         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
2853         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
2854         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
2855
2856         * genautomata.c: New file.
2857
2858         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
2859
2860         * sched-int.h: (curr_state): Add the external definition for
2861         automaton pipeline interface.
2862         (haifa_insn_data): Add comments for members blockage and units.
2863
2864         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
2865         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
2866         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
2867         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
2868         TARGET_SCHED_DFA_POST_CYCLE_INSN,
2869         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
2870         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
2871         macros.
2872         (TARGET_SCHED): Use the new macros.
2873
2874         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
2875         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
2876         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
2877         dfa_bubble): New members in gcc_target.sched.
2878
2879         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
2880         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
2881         (insn_queue): Redefine it as pointer to array.
2882         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
2883         INSN_QUEUE_SIZE.
2884         (max_insn_queue_index_macro_value): New variable.
2885         (curr_state, dfa_state_size, ready_try): New varaibles for
2886         automaton interface.
2887         (ready_element, ready_remove, max_issue): New function prototypes
2888         for automaton interface.
2889         (choose_ready): New function prototype.
2890         (insn_unit, blockage_range): Add comments.
2891         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
2892         FUNCTION_UNITS_SIZE == 0.
2893         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
2894         actual_hazard, potential_hazard): Add comments.
2895         (insn_cost): Use cost -1 as undefined value.  Remove
2896         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
2897         pipeline interface.
2898         (ready_element, ready_remove): New functions for automaton
2899         interface.
2900         (schedule_insn): Add new code for automaton pipeline interface.
2901         (queue_to_ready): Add new code for automaton pipeline interface.
2902         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
2903         (debug_ready_list): Print newline when the queue is empty.
2904         (max_issue): New function for automaton pipeline interface.
2905         (choose_ready): New function.
2906         (schedule_block): Add new code for automaton pipeline interface.
2907         Print ready list before scheduling each insn.
2908         (sched_init): Add new code for automaton pipeline interface.
2909         Initiate insn cost by -1.
2910         (sched_finish): Free the current automaton state and finalize
2911         automaton pipeline interface.
2912
2913         * sched-rgn.c: Include target.h.
2914         (init_ready_list, new_ready, debug_dependencies): Add new code for
2915         automaton pipeline interface.
2916
2917         * sched-vis.c: Include target.h.
2918         (get_visual_tbl_length): Add code for automaton interface.
2919         (target_units, print_block_visualization):  Add comments.
2920
2921         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
2922         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
2923         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
2924         (getruntime.o, genautomata.o): New entries.
2925         (genattrtab.o): Add new dependency file genattrtab.h.
2926         (genattrtab): Add new dependencies.  Link it with `libm.a'.
2927         (getruntime.o, hashtab.o): New entries for canadian cross.
2928
2929         * doc/md.texi: Description of automaton based model.
2930
2931         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
2932         Add comments.
2933         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
2934         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
2935         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
2936         TARGET_SCHED_DFA_POST_CYCLE_INSN,
2937         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
2938         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
2939         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
2940         hook descriptions.
2941         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
2942         MAX_DFA_ISSUE_RATE): New macro descriptions.
2943
2944         * doc/contrib.texi: Add dfa based scheduler contribution.
2945
2946         * doc/gcc.texi: Add more information about genattrtab.
2947
2948 2001-08-27  Diego Novillo  <dnovillo@redhat.com>
2949
2950         * flow.c (flow_loop_dump): Do not display insn UIDs if this is not
2951         an RTL basic block.
2952
2953 2001-08-27  Richard Henderson  <rth@redhat.com>
2954
2955         * function.c (expand_function_end): Don't init arg_pointer_save_area.
2956         (get_arg_pointer_save_area): New.  Create an init it here.
2957         (fix_lexical_addr): Use it.
2958         * function.h: Declare it.
2959         * builtins.c (expand_builtin_setjmp_receiver): Use it.
2960         * stmt.c (expand_nl_goto_receiver): Use it.
2961
2962 2001-08-27  Richard Henderson  <rth@redhat.com>
2963
2964         * final.c (final_scan_insn): Don't enter APP_ON mode for
2965         empty asm strings.
2966
2967         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Use proper
2968         alignment for assemble_integer for DW_EH_PE_aligned.
2969         * except.c (output_function_exception_table): Likewise.
2970
2971 2001-08-26  Andreas Jaeger  <aj@suse.de>
2972
2973         * c-tree.h: Add prototyp for c_sizeof_nowarn.
2974
2975 2001-08-25 Dan Nicolaescu  <dann@ics.uci.edu>
2976
2977         * ssa-ccp.c (ssa_const_prop): Free ssa_edges.
2978
2979 2001-08-27  Alan Modra  <amodra@bigpond.net.au>
2980
2981         * config/rs6000/rs6000.c (mask_operand): Rewrite without
2982         bit-shifting loop.
2983         (mask64_operand): Likewise.
2984         (rldic_operand): Delete.
2985         (includes_lshift64_p): Delete.
2986         (includes_rldic_lshift_p): New function.
2987         (includes_rldicr_lshift_p): New function.
2988         (print_operand): Don't call rldic_operand in case 'W'.
2989         * config/rs6000/rs6000-protos.h (rldic_operand): Remove.
2990         (includes_lshift64_p): Remove.
2991         (includes_rldic_lshift_p): Declare.
2992         (includes_rldicr_lshift_p): Declare.
2993         * config/rs6000/rs6000.h (PREDICATE_CODES): Remove rldic_operand.
2994         * config/rs6000/rs6000.md <ashldi3_internal 64 bit patterns>:
2995         Replace match_operand rldic_operand predicate with
2996         const_int_operand.  Replace includes_lshift64_p condition with
2997         includes_rldic_lshift_p.
2998         <ashldi3_internal 64 bit rldicr patterns>: New.
2999
3000 2001-08-27  Andreas Jaeger  <aj@suse.de>
3001
3002         * emit-rtl.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
3003         * errors.c: Likewise.
3004         * final.c: Likewise.
3005         * dwarf2asm.c: Likewise.
3006         * doprint.c (checkit): Likewise.
3007         * diagnostic.c: Likewise.
3008         * collect2.c: Likewise.
3009         * calls.c: Likewise.
3010         * c-semantics.c (build_stmt): Likewise.
3011         * c-format.c (status_warning): Likewise.
3012         * c-errors.c (pedwarn_c99): Likewise.
3013         * builtins.c (validate_arglist): Likewise.
3014         * config/pj/pj.c (pj_printf): Likewise.
3015         * fix-header.c: Likewise.
3016         * gcc.c: Likewise.
3017         * gcov.c (fnotice): Likewise.
3018         * gensupport.c (message_with_line): Likewise.
3019         * mips-tfile.c: Likewise.
3020         * protoize.c (notice): Likewise.
3021         * read-rtl.c (fatal_with_file_and_line): Likewise.
3022         * rtl-error.c: Likewise.
3023         * tradcpp.c: Likewise.
3024         * tree.c: Likewise.
3025         * cp/tree.c (build_min_nt): Likewise.
3026         (build_min): Likewise.
3027         * cp/lex.c: Likewise.
3028         * cp/errfn.c: Likewise.
3029         * cp/rtti.c (create_pseudo_type_info): Likewise.
3030
3031 Sun Aug 26 20:25:44 2001  Denis Chertykov  <denisc@overta.ru>
3032
3033         * df.c (df_uses_record): Return after recording all uses
3034         in ASM_OPERANDS.
3035
3036 2001-08-26  Daniel Berlin  <dan@cgsoftware.com>
3037
3038         * df.c (df_insn_modify): Realloc the INSN table here, if
3039         necessary, here, too.
3040
3041 2001-08-26  Aldy Hernandez  <aldyh@redhat.com>
3042
3043         * config/mips/mips.c (mips_function_value): Handle complex return
3044         values.
3045
3046 2001-08-25  Hans-Peter Nilsson  <hp@bitrange.com>
3047
3048         * reload1.c (reload): Make all entries in reg_equiv_memory_loc
3049         unshared.
3050         * reload.c (make_memloc): Copy result if it is still
3051         reg_equiv_memory_loc[regno] on return.
3052         (subst_reloads) [ENABLE_CHECKING]: Check that none of
3053         reg_equiv_constant, reg_equiv_memory_loc, reg_equiv_address and
3054         reg_equiv_mem are modified by the substitutions.
3055
3056 Sat Aug 25 23:07:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
3057
3058         * predict.c (expensive_function_p): New.
3059         * rtl.h (expensive_function_p): Declare.
3060         * i386.c (FAST_PROLOGUE_INSN_COUNT): New constant.
3061         (use_fast_prologue_epilogue): New static variable.
3062         (expand_prologue): Set it; emit short prologues if unset.
3063         (expand_epilogue): Likewise.
3064
3065 2001-08-22  Geoffrey Keating  <geoffk@redhat.com>
3066
3067         * config.gcc: Add stormy16-*-elf case.
3068         * config/stormy16/stormy-abi: New file.
3069         * config/stormy16/stormy16-lib2.c: New file.
3070         * config/stormy16/stormy16-protos.h: New file.
3071         * config/stormy16/stormy16.c: New file.
3072         * config/stormy16/stormy16.h: New file.
3073         * config/stormy16/stormy16.md: New file.
3074         * config/stormy16/t-stormy16: New file.
3075
3076 Sat Aug 25 15:46:51 CEST 2001  Jan Hubicka  <jh@suse.cz>
3077
3078         * i386.h (no-accumulate-outgoing-args): Use proper mask.
3079
3080 2001-08-24  David Edelsohn  <edelsohn@gnu.org>
3081
3082         * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Function
3083         descriptor members are pointer size, not constant 4.
3084         * config/rs6000/rs6000.md (define_splits): Remove more unused
3085         constraints.
3086
3087 2001-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3088
3089         * sparc.h (ASM_OUTPUT_BYTE): Fix format specifier warning.
3090
3091 2001-08-24  Andreas Jaeger  <aj@suse.de>, rkl@connect.org.uk
3092
3093         * cp/rtti.c (VPARAMS): Fix parameter.
3094
3095 2001-08-24  Zack Weinberg  <zackw@panix.com>
3096
3097         * expmed.c: Default-#define HAVE_insv, HAVE_extv, and HAVE_extzv
3098         to zero.
3099         (mode_for_extraction): No need for #ifdefs.  Add default-case abort
3100         to switch.
3101         (store_bit_field): Eliminate insv_bitsize variable.  Put HAVE_insv
3102         in if controlling use of insv.
3103         (extract_bit_field): Likewise, for extv and extzv.
3104
3105 Fri Aug 24 17:27:46 CEST 2001  Jan Hubicka  <jh@suse.cz>
3106
3107         * i386.md (movcc peep2): Fix load of 0.
3108
3109 2001-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3110
3111         * fold-const.c (tree_expr_nonnegative_p): Handle *_DIV_EXPR,
3112         *_MOD_EXPR, SAVE_EXPR and NON_LVALUE_EXPR.
3113
3114 2001-08-23  Jason Merrill  <jason_merrill@redhat.com>
3115
3116         * c-pragma.h: Move weak_syms and weak_decls...
3117         * varasm.c: ...here.  Now static.
3118         (declare_weak, weak_finish, remove_from_pending_weak_list): Don't
3119         depend on HANDLE_PRAGMA_WEAK.
3120
3121         * c-common.c (c_alignof, c_alignof_expr): Move here...
3122         * c-typeck.c: ...from here.
3123         * c-tree.h, c-common.h: Adjust.
3124
3125 2001-08-23  Bernd Schmidt  <bernds@redhat.com>
3126
3127         * config/ia64/ia64.c (rws_update): If !pred, set write_count
3128         instead of incrementing it.
3129
3130         * config/ia64/ia64.c (ia64_sched_reorder): When there's more than one
3131         asm ready, don't try to move them all into the same array element.
3132
3133 Thu Aug 23 17:21:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
3134
3135         * function.c (thread_prologue_and_epilogue_insns): Avoid
3136         fallthru flag on edge to exit.
3137
3138         * i386.md (trunc?fsi splitter): Conditionionize for non-sse.
3139
3140         * flow.c (delete_noop_moves, propagate_block_delete_insn): Purge
3141         dead edges.
3142
3143 2001-08-23  Lars Brinkhoff  <lars@nocrew.org>
3144
3145         * config/mcore/mcore.h (MACHINE_DEPENDENT_SIMPLIFY): Remove.
3146         * config/mcore/mcore.c (mcore_dependent_simplify_rtx): Likewise.
3147         * config/mcore/mcore-protos.h (mcore_dependent_simplify_rtx):
3148         Remove prototype.
3149
3150 2001-08-23  Lars Brinkhoff  <lars@nocrew.org>
3151
3152         * genconstants.c, genpreds.c, libfuncs.h, optabs.h, rtl-error.h:
3153         replace "GNU CC" with "GCC".
3154
3155 2001-08-23  Richard Henderson  <rth@redhat.com>
3156
3157         * config/ia64/ia64.c (ia64_register_move_cost): Add mode arguemnt.
3158         Reorganize.  Handle ADDL like GR, add GR_AND_BR.  Handle TFmode.
3159         (ia64_secondary_reload_class): Need GR between AR/BR and anything.
3160         Need GR between FR and not GR_AND_FR.
3161         * config/ia64/ia64-protos.h (ia64_register_move_cost): Update.
3162         * config/ia64/ia64.h (reg_class): Add GR_AND_BR_REGS, move
3163         AR regs before GR regs.
3164         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
3165         (PREFERRED_RELOAD_CLASS): Tweak for reordered classes.
3166         (REGISTER_MOVE_COST): Update.
3167         (MEMORY_MOVE_COST): Add GR_AND_FR_REGS.
3168
3169 2001-08-23  Richard Henderson  <rth@redhat.com>
3170
3171         * regclass.c (init_reg_sets_1): Don't assume cost 2 within
3172         a register class.
3173
3174 2001-08-22  Geoffrey Keating  <geoffk@redhat.com>
3175
3176         * reload1.c (emit_reload_insns): Don't look for notes
3177         on a NULL store_insn.
3178
3179 2001-08-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3180
3181         * sparc.c (uns_small_int): Don't reference a constant >32-bit.
3182         (addrs_ok_for_ldd_peep): Fix signed/unsigned warning.
3183         (sparc_flat_function_prologue, sparc_flat_function_epilogue): Fix
3184         format specifier warnings.
3185         (sparc_sched_reorder): Mark parameter with ATTRIBUTE_UNUSED.
3186
3187 2001-08-22  David Billinghurst <David.Billinghurst@riotinto.com>
3188
3189         * config/i386/i386-protos.h: Correct declaration of
3190         i386_pe_asm_named_section.
3191
3192 2001-08-22  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3193
3194         * pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Add declaration for
3195         variable i.
3196         * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Likewise.
3197
3198 2001-08-22  Neil Booth  <neil@daikokuya.demon.co.uk>
3199
3200         * cpperror.c (print_location): Don't show _Pragma.
3201         * cppfiles.c (_cpp_pop_file_buffer): Handle -include file pushing
3202         and file change callback generation here.
3203         (stack_include_file): Update use of cpp_push_buffer.
3204         * cpphash.h (_cpp_pop_file_buffer): Update prototype.
3205         (struct cpp_buffer): Remove type, pfile members.
3206         * cppinit.c (cpp_handle_option): Use free_chain.
3207         * cpplex.c (_cpp_lex_token): Don't do -include file pushing here.
3208         (skip_escaped_newlines, get_effective_char, lex_percent): Take
3209         a cpp_reader rather than a cpp_buffer.
3210         (skip_escaped_newlines, get_effective_char, skip_block_comment,
3211         skip_line_comment, parse_string, lex_percent, lex_dot,
3212         _cpp_lex_token): Update accordingly.
3213         * cpplib.c (_cpp_pop_buffer): Don't do file change callback
3214         generation here.
3215         (cpp_push_buffer): Update prototype.
3216         (run_directive): Update use of cpp_push_buffer.
3217         (_cpp_do__Pragma, cpp_define, cpp_define_builtin, cpp_undef,
3218         handle_assertion): Update use of run_directive.
3219         * cpplib.h (enum cpp_buffer_type): Remove.
3220         (cpp_push_buffer): Update prototype.
3221         * fix-header.c (read_scan_file): Update.
3222
3223 2001-08-22  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
3224
3225         * gcc.c (struct prefix_list): Change prefix to const char *.
3226
3227 2001-08-22  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
3228
3229         * final.c (final_scan_insn): Call ADDR_VEC_ALIGN on next insn.
3230
3231 2001-08-22  Jason Merrill  <jason_merrill@redhat.com>
3232
3233         * explow.c (set_mem_attributes): Avoid returning a bogus alias set
3234         from a new MEM.
3235
3236         * jump.c (squeeze_notes): Take parms by reference.  Handle END being
3237         a squeezable note.
3238         * rtl.h: Adjust.
3239         * ifcvt.c (dead_or_predicable): Adjust.
3240         * loop.c (find_and_verify_loops): Adjust.
3241         * stmt.c (expand_end_case): Adjust.
3242         * flow.c (merge_blocks_move_successor_nojumps): Adjust.  Modify the
3243         head and end insn pointers in the basic block, not just local copies.
3244         (merge_blocks_move_predecessor_nojumps): Likewise.
3245
3246 2001-08-22  Lars Brinkhoff  <lars@nocrew.org>
3247
3248         * Makefile.in, alias.c, basic-block.h, bb-reorder.c, bitmap.c,
3249         bitmap.h, builtin-types.def, builtins.c, builtins.def,
3250         c-aux-info.c, c-common.c, c-common.def, c-common.h,
3251         c-convert.c, c-decl.c, c-dump.c, c-dump.h, c-errors.c,
3252         c-format.c, c-lang.c, c-lex.c, c-lex.h, c-parse.in,
3253         c-pragma.c, c-pragma.h, c-semantics.c, c-tree.h, c-typeck.c,
3254         caller-save.c, calls.c, collect2.c, collect2.h, combine.c,
3255         conditions.h, config.gcc, configure.frag, configure.in,
3256         conflict.c, convert.c, convert.h, cppspec.c, crtstuff.c,
3257         cse.c, cselib.c, cselib.h, dbxout.c, dbxout.h, defaults.h,
3258         dependence.c, df.c, df.h, diagnostic.c, diagnostic.h,
3259         doloop.c, dominance.c, dwarf.h, dwarf2.h, dwarf2asm.c,
3260         dwarf2asm.h, dwarf2out.c, dwarf2out.h, dwarfout.c,
3261         emit-rtl.c, errors.c, errors.h, except.c, except.h,
3262         exgettext, explow.c, expmed.c, expr.c, expr.h, final.c,
3263         fixproto, flags.h, flow.c, fold-const.c, fp-test.c,
3264         function.c, function.h, gbl-ctors.h, gcc.c, gcc.h, gcc.hlp,
3265         gccspec.c, gcov-io.h, gcse.c, genattr.c, genattrtab.c,
3266         gencheck.c, gencodes.c, genconfig.c, genemit.c,
3267         genextract.c, genflags.c, gengenrtl.c, genmultilib,
3268         genopinit.c, genoutput.c, genpeep.c, genrecog.c,
3269         gensupport.c, gensupport.h, ggc-callbacks.c, ggc-common.c,
3270         ggc-none.c, ggc-page.c, ggc-simple.c, ggc.h, global.c,
3271         graph.c, graph.h, gthr-aix.h, gthr-dce.h, gthr-posix.h,
3272         gthr-rtems.h, gthr-single.h, gthr-solaris.h, gthr-vxworks.h,
3273         gthr-win32.h, gthr.h, haifa-sched.c, halfpic.c, halfpic.h,
3274         hard-reg-set.h, hwint.h, ifcvt.c, input.h, insn-addr.h,
3275         integrate.c, integrate.h, jump.c, lcm.c, libgcc2.c,
3276         libgcc2.h, lists.c, local-alloc.c, loop.c, loop.h,
3277         machmode.def, machmode.h, main.c, mbchar.c, mbchar.h,
3278         mips-tdump.c, mips-tfile.c, mklibgcc.in, mkmap-flat.awk,
3279         mkmap-symver.awk, optabs.c, output.h, params.c, params.def,
3280         params.h, predict.c, predict.def, predict.h, prefix.c,
3281         prefix.h, print-rtl.c, print-tree.c, profile.c, protoize.c,
3282         read-rtl.c, real.c, real.h, recog.c, recog.h, reg-stack.c,
3283         regclass.c, regmove.c, regrename.c, regs.h, reload.c,
3284         reload.h, reload1.c, reorg.c, resource.c, resource.h, rtl.c,
3285         rtl.def, rtl.h, rtlanal.c, sbitmap.c, sbitmap.h,
3286         sched-deps.c, sched-ebb.c, sched-int.h, sched-rgn.c,
3287         sched-vis.c, sdbout.c, sdbout.h, sibcall.c, simplify-rtx.c,
3288         ssa-ccp.c, ssa-dce.c, ssa.c, ssa.h, stmt.c, stor-layout.c,
3289         stringpool.c, system.h, timevar.c, timevar.def, timevar.h,
3290         tlink.c, toplev.c, toplev.h, tree.c, tree.def, tree.h,
3291         tsystem.h, unroll.c, unwind-dw2-fde.c, unwind-dw2-fde.h,
3292         unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h,
3293         unwind.inc, varasm.c, varray.c, varray.h, xcoffout.c,
3294         xcoffout.h: replace "GNU CC" with "GCC".
3295
3296 2001-08-21  Richard Henderson  <rth@redhat.com>
3297
3298         * final.c (LABEL_ALIGN_AFTER_BARRIER): Default to no alignment.
3299         (final_scan_insn): Consider jump tables data even if we have no
3300         independant text section if !JUMP_TABLES_IN_TEXT_SECTION.  Use
3301         ADDR_VEC_ALIGN.
3302         * config/ia64/ia64.h (JUMP_TABLES_IN_TEXT_SECTION): Remove.
3303         (ASM_OUTPUT_CASE_END): Remove.
3304         (ASM_OUTPUT_ADDR_DIFF_ELT): Emit pc-relative references.
3305         * config/ia64/ia64.md (tablejump): Decode pc-relative references.
3306         * config/ia64/sysv4.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
3307
3308 2001-08-21  Richard Henderson  <rth@redhat.com>
3309
3310         * config/ia64/ia64.c (emit_all_insn_group_barriers): Flush state
3311         at barrier insns.  Emit stop bits before barriers.
3312
3313         * flow.c (flow_find_cross_jump): Don't consider unconditional
3314         return insns for commoning.
3315
3316         * final.c (compute_alignments): Fix typo.
3317
3318         * expmed.c (CODE_FOR_insv, gen_insv): Provide defaults.
3319         (CODE_FOR_extv, gen_extv, CODE_FOR_extzv, gen_extzv): Likewise.
3320         (store_bit_field): Use mode_for_extraction more places.
3321         (extract_bit_field): Likewise.
3322
3323 2001-08-21  Zack Weinberg  <zackw@panix.com>
3324
3325         * caller-save.c: Don't include insn-codes.h.
3326         (reg_save_code, reg_restore_code): Make arrays of int.
3327         All uses updated to match.
3328         (insert_save, insert_restore): No need to initialize "code"
3329         variable upon declaration.
3330         * Makefile.in: update dependencies; fix typo in clean rule.
3331
3332 2001-08-21  Richard Henderson  <rth@redhat.com>
3333
3334         * ifcvt.c (find_if_block): Allow join_bb as EXIT.
3335         (merge_if_block): Handle fallout from same.
3336
3337 2001-08-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3338
3339         * builtins.c (type_to_class): Fix typo in last change.
3340
3341 2001-08-21  Richard Henderson  <rth@redhat.com>
3342
3343         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't emit '#' if
3344         ia64_asm_output_label.
3345
3346         * config/ia64/crtbegin.asm (__do_global_dtors_aux): Use saved
3347         copy of gp while the real gp register contains garbage.
3348
3349 2001-08-21  Zack Weinberg  <zackw@panix.com>
3350
3351         * expmed.c (mode_for_extraction): New function.
3352         (store_bit_field, extract_bit_field): Use it.
3353         * expr.h: Prototype it and provide an enum for its first argument.
3354
3355         * combine.c, function.c, recog.c: Don't include insn-codes.h.
3356         Use mode_for_extraction rather than testing HAVE_insv/extv/extzv
3357         and digging through the insn_data tables.
3358         * Makefile.in: Update dependencies.
3359
3360 2001-08-22  Neil Booth  <neil@daikokuya.demon.co.uk>
3361
3362         * cppfiles.c (stack_include_file): line-map.c now handles include
3363         depth.
3364         (handle_missing_handler): Similarly.
3365         (_cpp_execute_include): Similarly.
3366         (_cpp_pop_file_buffer): Similarly.
3367         * cpphash.h (struct cpp_reader): Remove system_include_depth,
3368         buffer_stack_depth and include_depth.
3369         * cpplib.c (do_include_common): line-map.c now handles include depth.
3370         (cpp_push_buffer): Similarly.
3371         (_cpp_pop_buffer): Similarly.
3372         * cppmacro.c (builtin_macro): Update.
3373         * line-map.c (init_line_maps): Set depth.
3374         (add_line_map): Increment "used" earlier.  Update and use the
3375         include depth.
3376         (trace_include): Use the include depth.
3377         * line-map.h (struct line_maps): New member depth.
3378
3379 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
3380
3381         * cppfiles.c (stack_include_file): Don't handle -H here.
3382         * cppinit.c (cpp_start_read): Set include tracing after
3383         cpp_post_options and after stacking the main file.
3384         * line-map.c (trace_include): New.
3385         (init_line_maps, add_line_map): Update.
3386         * line-map.h (struct line_maps): New member trace_includes.
3387
3388 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
3389
3390         * cppfiles.c (stack_include_file): Harmonize system headerness tests.
3391         * cppfiles.c (stack_include_file): Only stack a file if there
3392         is something to do.  Return a boolean indicating whether a
3393         buffer was stacked or not.
3394         (_cpp_execute_include): Similarly.
3395         (_cpp_read_file): Similarly.
3396         * cpphash.h (_cpp_read_file, _cpp_execute_include): Update prototypes.
3397
3398 2001-08-21  Sam Steingold  <sds@gnu.org>
3399
3400         * tradcpp.c (rescan): define obufp_before_macroname before RECACHE
3401         (RECACHE): keep obufp_before_macroname up to date
3402
3403 2001-08-21  Zack Weinberg  <zackw@panix.com>
3404
3405         * stmt.c: Don't include insn-codes.h.
3406         (expand_end_case): Machine specific logic moved to expr.c.
3407         No need to worry about __builtin_classify_type.
3408         (check_for_full_enumeration_handling, emit_case_nodes):
3409         Kill #if 0 blocks.
3410
3411         * builtins.o (expand_builtin_classify_type): Split up so code
3412         can be shared with fold_builtin_classify_type.
3413         (type_to_class, fold_builtin_classify_type): New functions.
3414         (fold_builtins): Handle __builtin_classify_type.
3415
3416         * expr.c (do_tablejump): Now static.
3417         (case_values_threshold, try_casesi, try_tablejump): New;
3418         code mostly from stmt.c (expand_end_case).
3419         (expr.h): Update prototypes.
3420
3421         * Makefile.in (stmt.o): Update dependencies.
3422
3423 2001-08-21  Will Cohen  <wcohen@redhat.com>
3424
3425         * configure/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Added local
3426         declaration of variable i.
3427         * configure/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Added local
3428         declaration of variable i.
3429
3430 2001-08-21  Richard Henderson  <rth@redhat.com>
3431
3432         * crtstuff.c: Fix thinko last change.  Move list tails to start
3433         of CRT_END section.  Tidy ifdefs.
3434         (__EH_FRAME_BEGIN__): Always static for ELF.
3435         (__do_global_ctors_1): Rename from __frame_dummy.
3436         * config/mips/iris6.h (LINK_SPEC): Update for __do_global_ctors_1
3437         name change; don't hide __EH_FRAME_BEGIN__.
3438
3439 2001-08-21  Richard Henderson  <rth@redhat.com>
3440
3441         * gdbinit.in: Move break on exit after break on fancy_abort.
3442
3443         * config/ia64/ia64.c (ia64_return_in_memory): True for variable
3444         sized types.
3445
3446 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
3447
3448         * cpphash.h (_cpp_push_next_buffer): New.
3449         * cppinit.c (do_includes): Remove.
3450         (push_include, free_chain, _cpp_push_next_buffer): New.
3451         (cpp_start_read): Use them to rework command line option handling.
3452         (cpp_handle_option): Combine handling of -include and -imacros.
3453         * cpplex.c (_cpp_lex_token): Push a new -include buffer if
3454         appropriate.  Always insert missing \n at EOF.
3455         * cpplib.c (start_directive): Get the directive position right.
3456         * cppmain.c (cb_file_change): Always print the first line, unless
3457         preprocessed.
3458
3459 2001-08-20  Andreas Jaeger  <aj@suse.de>
3460
3461         * profile.c (compute_branch_probabilities): Remove extra new-line
3462         in error message.
3463         * flow.c (verify_flow_info): Likewise.
3464
3465 2001-08-20  Diego Novillo  <dnovillo@redhat.com>
3466
3467         * basic-block.h (basic_block): Add new field 'flags'.
3468         (BB_REACHABLE): Define.
3469         (expunge_block): Declare.
3470         * flow.c (ENTRY_BLOCK_PTR): Initialize field 'flags'.
3471         (EXIT_BLOCK_PTR): Ditto.
3472         (expunge_block): Remove static declaration.
3473         (cleanup_cfg): Clear bb->aux on every basic block.
3474         (find_unreachable_blocks): Set BB_REACHABLE bit in bb->flags when
3475         computing reachability.
3476         (delete_unreachable_blocks): Delete block b if b->flags has
3477         BB_REACHABLE unset.
3478
3479 2001-08-20  Diego Novillo  <dnovillo@redhat.com>
3480
3481         * doc/invoke.texi: Replace references to -fdump-tree with -fdump-ast.
3482
3483 2001-08-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3484
3485         * sparc.c (sparc_variable_issue): Fix typo in last change.
3486
3487 2001-08-20  Richard Henderson  <rth@redhat.com>
3488
3489         * varasm.c (assemble_integer): Document ppc-eabi -mrelocatable losage.
3490
3491 2001-08-20  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3492
3493         * pa.h (RETURN_IN_MEMORY): Improve comment.
3494
3495 2001-08-20  Janis Johnson  <janis187@us.ibm.com>
3496
3497         * doc/invoke.texi (Profiling options): Clarify the interactions
3498         between -fprofile-arcs and -ftest-coverage, -fprofile-arcs.
3499
3500 2001-08-20  Jeffrey Oldham  <oldham@codesourcery.com>
3501
3502         * crtstuff.c (__do_global_ctors): Fix typo in preprocessing
3503         command.
3504
3505 2001-08-20  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
3506
3507         * gcc.c (make_relative_prefix): Allocate a sufficiently large
3508         buffer.
3509
3510 2001-08-20  Richard Henderson  <rth@redhat.com>
3511
3512         * final.c (end_final): Fix typo last change.
3513
3514 2001-08-20  Neil Booth  <neil@daikokuya.demon.co.uk>
3515
3516         * cppinit.c (init_standard_includes): The returned buffer
3517         is already malloc-ed.
3518         * gcc.c (add_prefix): Similarly.
3519         * prefix.c (translate_name): Update to support clear buffer
3520         ownership rules.
3521         (update_path): Similarly.  Be sure to free any newly allocated
3522         key.  UPDATE_PATH_HOST_CANONICALIZE takes only one argument.
3523         (tr): New function.
3524         * prefix.h (update_path): Update prototype and document.
3525         * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): Clean
3526         up and update to new buffer ownership rules.
3527         * doc/gcc.texi (UPDATE_PATH_HOST_CANONICALIZE): Update.
3528
3529 Mon Aug 20 01:44:50 CEST 2001  Jan Hubicka  <jh@suse.cz>
3530
3531         * final.c (compute_alignments): New function.
3532         (init_insn_lengths): Do not care label_align.
3533         (LABEL_ALIGN_AFTER_BARRIER): Default to 1.
3534         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to 0.
3535         (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): New.
3536         (shorted_branches): Realloc label_align array; do
3537         not call init_insn_lengths; Do not care about loop alignments.
3538         * output.h (compute_alignments): Declare.
3539         * toplev.c (rest_of_compilation): Call compute_alignments.
3540         * tm.texi (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): Document.
3541
3542         * predict.c (block_info_def): Add npredecesors, remove nvisited;
3543         change visited to tovisit.
3544         (propagate_freq): Use faster traversing algorithm.
3545         (estimate_loops_at_level, estimate_bb_frequencies): Change visited
3546         to tovisit; reverse meaning.
3547
3548         * predict.c (struct block_info_def): Remove nvisited.
3549         (propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions.
3550         (estimate_bb_frequencies): Call mark_dfs_back_edges.
3551
3552 2001-08-19  Geoffrey Keating  <geoffk@redhat.com>
3553
3554         * doc/invoke.texi (MIPS Options): Document -mfused-madd.
3555         * config/mips/mips.h (MASK_NO_FUSED_MADD): New.
3556         (TARGET_FUSED_MADD): New.
3557         (TARGET_SWITCHES): Add -mfused-madd, -mno-fused-madd.
3558         * config/mips/mips.md: Add TARGET_FUSED_MADD as condition to
3559         the multiply-add instructions.
3560
3561 2001-08-19  Richard Henderson  <rth@redhat.com>
3562
3563         * dwarf2asm.c (dw2_output_indirect_constant_1): The symbol ref
3564         is aligned to pointer size.
3565
3566 2001-08-19  Richard Henderson  <rth@redhat.com>
3567
3568         * config/ia64/ia64.c (ia64_cycle_display): Only emit cycle
3569         display markers during final schedule.
3570
3571 2001-08-19  Richard Henderson  <rth@redhat.com>
3572
3573         * function.c (gen_mem_addressof): Don't call get_alias_set if no decl.
3574
3575 2001-08-19  Richard Henderson  <rth@redhat.com>
3576
3577         * config/ia64/ia64.h (STRIP_NAME_ENCODING): Handle @ and *
3578         in the same string.
3579         (ASM_NAME_TO_STRING): Remove.
3580         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Handle @ and *
3581         in the same string.  Remove support for expressions.
3582
3583 2001-08-19  Richard Henderson  <rth@redhat.com>
3584
3585         * config/i386/i386.md (tablejump): Make an expander; handle
3586         pic relative addressing here.
3587         (tablejump_1): Rename from tablejump_pic.
3588         (casesi): Remove.
3589
3590 2001-08-19  Richard Henderson  <rth@redhat.com>
3591
3592         * regclass.c (fix_register): Fix typo.
3593
3594 2001-08-18  Richard Henderson  <rth@redhat.com>
3595
3596         * config/ia64/unwind-ia64.c (UNW_REG_B0): New.
3597         (struct _Unwind_Context): Expand br_loc to hold it.
3598         (uw_frame_state_for): Handle leaf functions better.
3599         (uw_update_reg_address): Update for br_loc change.
3600
3601 2001-08-18  Richard Henderson  <rth@redhat.com>
3602
3603         * crtstuff.c: Move list heads before code that uses them.
3604         (__JCR_LIST__): Remove initial null.
3605         (frame_dummy, __frame_dummy): Do java registration here ...
3606         (__do_global_ctors_aux): ... not here.
3607
3608         * config/ia64/crtbegin.asm (dtor_ptr): Make gp-relative.
3609         (__do_global_dtors_aux): Update to match.
3610         (__JCR_LIST__, __do_jv_register_classes): New.
3611         (.init): Call it.
3612         * config/ia64/crtend.asm (__JCR_END__): New.
3613         (__do_global_ctors_aux): Use a GPREL64I reloc to __CTOR_END__
3614         instead of an indirect LTOFF22 reloc.
3615
3616 2001-08-18  Richard Henderson  <rth@redhat.com>
3617
3618         * flow.c (mark_regs_live_at_end): Use regs_invalidated_by_call.
3619         * regclass.c (init_reg_sets_1): Fix typo.
3620         * config/ia64/ia64.c (ar_pfs_reg_operand): New.
3621         (ia64_expand_call): Pass ar.pfs to sibcall expanders.
3622         (ia64_compute_frame_size): Make ar.unat live when in use.
3623         (ia64_epilogue_uses): Reformat; do not check current_function_is_leaf
3624         for ar.pfs; remove ar.unat handling.
3625         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): ar.unat is
3626         call-saved.
3627         (PREDICATE_CODES): Add ar_pfs_reg_operand.
3628         * config/ia64/ia64-protos.h: Update decls.
3629         * config/ia64/ia64.md (sibcall_nopic): Use ar.pfs.
3630         (sibcall_pic): Likewise.
3631
3632 2001-08-18  Richard Henderson  <rth@redhat.com>
3633
3634         * config/ia64/ia64.c (ia64_sched_reorder2): Also skip past
3635         pred_rel_mutex when searching for insn_group_barrier.
3636         * config/ia64/ia64.md (cycle_display): Combine the expander
3637         and insn patterns.
3638
3639         * config/ia64/ia64.c (ia64_internal_sched_reorder): Emit stop
3640         bit before asm as needed.
3641
3642 2001-08-18  Richard Henderson  <rth@redhat.com>
3643
3644         * timevar.def (TV_MACH_DEP): New.
3645         * toplev.c (rest_of_compilation): Use it.
3646         * config/ia64/ia64.c (ia64_reorg): Push to TV_SCHED2.
3647
3648 2001-08-18  Zack Weinberg  <zackw@panix.com>
3649
3650         * unwind-dw2.c (execute_stack_op): Add default aborts to
3651         the inner switches to prevent warnings.
3652
3653 2001-08-18  Richard Henderson  <rth@redhat.com>
3654
3655         * timevar.h (struct timevar_time_def): Change element type to float.
3656         (ticks_to_msec, clocks_to_msec): Likewise.
3657         (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Rescale to seconds; use type float.
3658         (get_time): Likewise.
3659         (timevar_print): Adjust zero check and printing to match.
3660
3661 2001-08-18  Zack Weinberg  <zackw@panix.com>
3662
3663         * doc/extend.texi, doc/gcc.texi, doc/install-old.texi,
3664         doc/invoke.texi, doc/md.texi, doc/rtl.texi, doc/include/gpl.texi:
3665         Eliminate overfull or underfull hboxes.
3666
3667 2001-08-18  Zack Weinberg  <zackw@panix.com>
3668
3669         * cpperror.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
3670
3671 2001-08-18  Zack Weinberg  <zackw@panix.com>
3672
3673         * haifa-sched.c: Convert to target hooks.  Macros replaced
3674         are ISSUE_RATE, ADJUST_COST, ADJUST_PRIORITY, MD_SCHED_INIT,
3675         MD_SCHED_REORDER, MD_SCHED_REORDER2, MD_SCHED_VARIABLE_ISSUE,
3676         MD_SCHED_FINISH, and HAVE_cycle_display.
3677         * target-def.h (TARGET_SCHED_ADJUST_COST,
3678         TARGET_SCHED_ADJUST_PRIORITY, TARGET_SCHED_ISSUE_RATE,
3679         TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_INIT,
3680         TARGET_SCHED_FINISH, TARGET_SCHED_REORDER,
3681         TARGET_SCHED_REORDER2, TARGET_SCHED_CYCLE_DISPLAY):
3682         New hook #defines to be overridden.
3683         (TARGET_SCHED): Bring them all together.
3684         (TARGET_INITIALIZER): Update.
3685         * target.h: Don't forward declare struct rtx_def.  Use 'rtx'
3686         instead of 'struct rtx_def *' throughout.
3687         (struct sched): New set of hooks for the scheduler.
3688         * Makefile.in (haifa-sched.o): Depend on target.h.
3689         * doc/tm.texi: Document the new scheduler hooks, together in
3690         their own section, instead of scattered around.
3691         Fix a bunch of underfull/overfull hboxes.
3692
3693         * a29k.h, alpha.h, arm.h, c4x.h, convex.h, d30v.h, i386.h,
3694         ia64.h, m32r.h, m88k.h, mips.h, pa.h, rs6000.h, s390.h, sh.h,
3695         sparc.h: Don't define any of the old scheduler macros.
3696
3697         * a29k.c, alpha.c, arm.c, c4x.c, convex.c, d30v.c, i386.c,
3698         ia64.c, m32r.c, m88k.c, mips.c, pa.c, rs6000.c, s390.c, sh.c,
3699         sparc.c: Create hook functions from code extracted from
3700         corresponding target header, or make existing hooks static, as
3701         appropriate.  Set the appropriate entries in targetm.
3702
3703         * alpha-protos.h, arm-protos.h, c4x-protos.h, d30v-protos.h,
3704         i386-protos.h, ia64-protos.h, m32r-protos.h, pa-protos.h,
3705         rs6000-protos.h, s390-protos.h, sparc-protos.h:
3706         Remove prototypes for functions which are now static.
3707
3708         * d30v.h, d30v.c, m32r.h, m32r.c: Remove #ifdef HAIFA and
3709         related gunk; the Haifa scheduler is now the only choice.
3710
3711 2001-08-18  Zack Weinberg  <zackw@panix.com>
3712
3713         * optabs.h (OTI_flodiv, flodiv_optab): Kill.
3714         * genopinit.c: Put floating point divide insns in sdiv_optab.
3715         * expr.c (expand_expr): Use sdiv_optab, not flodiv_optab.
3716         * config/gofast.h, config/c4x/c4x.h,
3717         config/ia64/hpux_longdouble.h, config/mips/mips.h,
3718         config/pa/long_double.h, config/rs6000/sysv4.h,
3719         config/sparc/sparc.h: Put floating point divide libcalls in sdiv_optab.
3720         * optabs.c (init_optab): Break into new_optab, init_optab, init_optabv.
3721         (init_optabs): Use init_optabv for overflow-trapping optabs.
3722         Don't init flodiv_optab.  Give mov_optab, movstrict_optab, and
3723         cmp_optab RTX codes so have_insn_for can find them.
3724
3725         * optabs.c (expand_simple_binop, expand_simple_unop,
3726         have_insn_for, gen_sub3_insn): New interfaces.
3727         * expr.h: Prototype new functions.
3728         (enum optab_methods): Move here from optabs.h.
3729
3730         * builtins.c, combine.c, doloop.c, function.c, ifcvt.c,
3731         loop.c, profile.c, simplify-rtx.c, stmt.c, unroll.c:
3732         Use new functions instead of working directly with optabs.
3733         * doloop.c, ifcvt.c, loop.c, profile.c, simplify-rtx.c,
3734         unroll.c: Don't include optabs.h.
3735         * caller-save.c, combine.c, function.c, stmt.c: Just include
3736         insn-codes.h, not optabs.h.
3737         * Makefile.in: Update dependencies.
3738
3739         * combine.c (make_compound_operation, simplify_comparison):
3740         Fix typos testing for this or that instruction.
3741
3742 2001-08-18  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
3743
3744         * mklibgcc.in: Prefer LIB1ASMFUNCS over LIB2_DIVMOD_FUNCS when
3745         generating libgcc.a.
3746
3747 2001-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3748
3749         * except.c (TYPE_HASH): Delete.
3750
3751         * objc/objc-act.c (HASHFUNCTION): Cast to size_t, not
3752         HOST_WIDE_INT.
3753
3754         * tree.c (TYPE_HASH): Delete.
3755
3756         * tree.h (TYPE_HASH): Define.
3757
3758 2001-08-18  Graham Stott  <grahams@redhat.com>
3759
3760         * config/mips/mips.md (adddi3_internal_2+1): Remove contraints from
3761         define_split.
3762         (adddi3_internal_2+2): Likewise.
3763         (eh_set_lr_di+1): Likewise.
3764
3765 2001-08-17  Richard Henderson  <rth@redhat.com>
3766
3767         * defaults.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
3768         UNALIGNED_DOUBLE_INT_ASM_OP, ASM_BYTE_OP): Move from ...
3769         * dwarf2asm.c: ... here.
3770         * dwarfout.c: Remove them.
3771
3772         * varasm.c (assemble_integer): Add align parameter.
3773         (assemble_real, output_constant, output_constructor): Likewise.
3774         * output.h: Update decls.
3775         * dwarf2asm.c, final.c, varasm.c, config/darwin.c, config/nextstep.c,
3776         config/alpha/alpha.c, config/arm/arm.md, config/clipper/clipper.c,
3777         config/m88k/m88k.c, config/mcore/mcore.md, config/mips/mips.h,
3778         config/mips/mips.md, config/pa/pa.c, config/rs6000/rs6000.c,
3779         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.md:
3780         Update all callers.
3781
3782         * final.c (end_final): Abort profile block generation if we
3783         havn't layed it out properly.
3784         * output.h (assemble_eh_integer): Remove stale decl.
3785         * varasm.c (assemble_zeros): Tidy; use assemble_integer.
3786         (min_align): New.
3787         (assemble_integer): Handle unaligned data.
3788         (assemble_real): Abort on unaligned data.
3789         (output_constructor): Don't assume ASM_OUTPUT_ALIGN 0 does
3790         anything useful.
3791         (default_dtor_section_asm_out_destructor): Use assemble_align.
3792         (default_named_section_asm_out_constructor): Likewise.
3793         (default_ctor_section_asm_out_constructor): Likewise.
3794         * config/darwin.c (machopic_asm_out_constructor): Likewise.
3795         (machopic_asm_out_destructor): Likewise.
3796         * config/nextstep.c (nextstep_asm_out_constructor): Likewise.
3797         (nextstep_asm_out_destructor): Likewise.
3798         * config/alpha/alpha.c (vms_asm_out_constructor): Likewise.
3799         (vms_asm_out_destructor): Likewise.
3800
3801 2001-08-17  Richard Henderson  <rth@redhat.com>
3802
3803         * config/mips/iris6.h (TARGET_IRIX6): New.
3804         (current_section_name, current_section_flags): New.
3805         (ASM_OUTPUT_ALIGN, ASM_FILE_START, ASM_FILE_END): New.
3806         (MAX_OFILE_ALIGNMENT): New.
3807         (ASM_OUTPUT_ALIGNED_LOCAL): Use bss_section.
3808         * config/mips/mips.c (mips_make_temp_file, temp_filename): Remove.
3809         (copy_file_data): Split out from
3810         (mips_asm_file_end): ... here.
3811         (mips_asm_file_start): Remove extra .section directive.  Use
3812         tmpfile instead of mips_make_temp_file.
3813         (mips_unique_section): Use const char * as needed for warnings.
3814         (iris6_asm_named_section_1): Renamed from iris6_asm_named_section;
3815         re-add align parameter.
3816         (iris6_asm_named_section): New.
3817         (iris_section_align_entry_eq, iris_section_align_entry_hash): New.
3818         (iris6_asm_output_align, iris6_section_align_1): New.
3819         (iris6_asm_file_start, iris6_asm_file_end): New.
3820         * config/mips/mips-protos.h: Update decls.
3821
3822 2001-08-17  Janis Johnson  <janis187@us.ibm.com>
3823
3824         * doc/install.texi (Install GCC): Add links to build status pages.
3825         (Specific): Ditto.
3826         (Final install): Ditto; request updates for specific info
3827
3828 2001-08-17  Neil Booth  <neil@daikokuya.demon.co.uk>
3829
3830         * cpperror.c (print_location):  Don't take a file name; use the
3831         line map instead.
3832         (_cpp_begin_message): Similarly.
3833         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
3834         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update.
3835         (cpp_pedwarn_with_file_and_line): Remove.
3836         * cppfiles.c (stack_include_file): Update; set filename to stdin
3837         here when appropriate.
3838         * cpphash.h (struct cpp_buffer): Remove nominal_fname.
3839         (_cpp_begin_message): Don't take a file name.
3840         * cppinit.c: Add comment.
3841         * cpplex.c: Fix end-of-directive indicator.
3842         * cpplib.c: Don't include intl.h.
3843         (run_directive, do_diagnostic): Update.
3844         (do_line): Update to not use nominal_fname.
3845         (cpp_push_buffer): Don't take a filename.
3846         * cpplib.h (struct ht): Remove.
3847         (cpp_push_buffer): Don't take a filename.
3848         (cpp_pedwarn_with_file_and_line): Remove.
3849         * cppmacro.c (struct cpp_macro): Remove file.
3850         (builtin_macro): Update.
3851         (_cpp_create_definition): Update.
3852         * cppmain.c: Correct comment.
3853         * fix-header.c (read_scan_file): Update.
3854
3855 2001-08-17  Kazu Hirata  <kazu@hxi.com>
3856
3857         * sbitmap.c: Fix comment formatting.
3858         * sched-deps.c: Likewise.
3859         * sibcall.c: Likewise.
3860         * simplify-rtx.c: Likewise.
3861         * ssa.c: Likewise.
3862         * ssa-ccp.c: Likewise.
3863         * stor-layout.c: Likewise.
3864         * timevar.c: Likewise.
3865         * toplev.c: Likewise.
3866         * unwind-dw2.c: Likewise.
3867         * unwind-dw2-fde.c: Likewise.
3868         * varasm.c: Likewise.
3869
3870 2001-08-17  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3871
3872         * pa.h (RETURN_IN_MEMORY): Return types with a size that is varable
3873         or larger than an integer in memory.
3874
3875 2001-08-17  Zack Weinberg  <zackw@panix.com>
3876
3877         * system.h: Forward-declare struct rtx_def, struct rtvec_def,
3878         and union tree_node.  Typedef rtx, rtvec, and tree.  Fix comment.
3879         * rtl.h: Don't forward-declare union tree_node here.  Don't
3880         typedef rtx or rtvec here.  Change all uses of struct rtx_def *,
3881         struct rtvec_def *, or union tree_node * to use rtx, rtvec,
3882         and tree respectively.
3883         * tree.h: Don't forward-declare struct rtx_def here.  Don't
3884         typedef tree here.  Change all uses of struct rtx_def *,
3885         struct rtvec_def *, or union tree_node * to use rtx, rtvec,
3886         and tree respectively.
3887
3888 2001-08-17  Richard Henderson  <rth@redhat.com>
3889
3890         * config/mips/elf.h, config/mips/elf64.h, config/mips/netbsd.h,
3891         config/mips/openbsd.h: Fix typos last change.
3892
3893 2001-08-17  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3894
3895         * doc/invoke.texi (Optimize Options): The default for
3896         -finline-limit is 600.
3897
3898 2001-08-17  Richard Henderson  <rth@redhat.com>
3899
3900         * varasm.c (text_section): Allow TEXT_SECTION to override the
3901         printing of TEXT_SECTION_ASM_OP.
3902         * dwarf2out.c (TEXT_SECTION_NAME): Rename from TEXT_SECTION.
3903         (DATA_SECTION, BSS_SECTION): Remove.
3904         * dwarfout.c (TEXT_SECTION_NAME, DATA_SECTION_NAME, DATA1_SECTION_NAME,
3905         RODATA_SECTION_NAME, RODATA1_SECTION_NAME, BSS_SECTION_NAME):
3906         Rename from s/_NAME//.
3907         * config/mips/mips.h (TARGET_FILE_SWITCHING): Add !TARGET_MIPS16.
3908         (ASM_DECLARE_FUNCTION_NAME): Move file switching ...
3909         (TEXT_SECTION): ... here.  New.
3910         * config/mips/elf.h (TEXT_SECTION): New; no file switching.
3911         * config/mips/elf64.h, config/mips/netbsd.h: Likewise.
3912         * config/mips/openbsd.h: Likewise.
3913         * config/mips/mips.c (mips_asm_file_start): Tidy file switching test.
3914         (mips_asm_file_end): Likewise test.
3915         (mips_output_function_epilogue): Likewise.  Switch back to data
3916         section after emitting the function.
3917
3918         * doc/tm.texi (Sections): Document TEXT_SECTION.
3919
3920 2001-08-17  Richard Henderson  <rth@redhat.com>
3921
3922         * dwarf2out.c (dwarf2out_init): Don't emit .debug_loc label here.
3923         (dwarf2out_finish): Do it here.  Emit .debug_loc before .debug_info.
3924
3925 2001-08-17  Richard Henderson  <rth@redhat.com>
3926
3927         * varasm.c (assemble_variable): Don't overalign if DECL_USER_ALIGN.
3928         * crtstuff.c (__CTOR_LIST__, __DTOR_LIST__, __EH_FRAME_BEGIN__,
3929         __JCR_LIST__, __CTOR_END__, __DTOR_END__, __FRAME_END__,__JCR_END__):
3930         Add aligned attribute.
3931
3932 2001-08-17  Andrew Haley  <aph@cambridge.redhat.com>
3933
3934         * config/sh/sh.md: Add modes to unspecs in first insn to match
3935         those in the second.
3936
3937         * Makefile.in: Fix collect2 copy for Cygwin.
3938
3939 Fri Aug 17 15:48:57 CEST 2001  Jan Hubicka  <jh@suse.cz>
3940
3941         Install the proper patch.
3942         * function.c (put_var_into_stack): Temporarily clear DECL_RTL.
3943         (assign_params): Avoid setting DECL_RTL to unfinished RTX.
3944         (expand_function_start): Likewise.
3945         * stmt.c (expand_decl): Likewise.
3946         * varasm.c (make_decl_rtx): Likewise.
3947
3948 Fri Aug 17 15:41:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
3949
3950         * final.c: Undo my previous accidental checkin.
3951         * output.h: Likewise.
3952         * tm.texi: Likewise.
3953
3954 2001-08-16  Richard Henderson  <rth@redhat.com>
3955
3956         * varasm.c (named_section_flags): Remove align parameter.
3957         * varasm.c, dwarf2out.c: Update all callers.
3958         * output.h: Update prototypes.
3959
3960         * target.h (target.asm_out.named_section): Remove align parameter.
3961         * varasm.c, config/a29k/a29k.c, config/alpha/alpha.c,
3962         config/arm/arm.c, config/c4x/c4x.c, config/h8300/h8300.c,
3963         config/i386/i386.c, config/i386/winnt.c, config/m68k/m68k.c,
3964         config/mcore/mcore.c, config/mips/mips.c, config/rs6000/rs6000.c,
3965         config/sh/sh.c, config/sparc/sparc.c: Update implementations to match.
3966
3967         * varasm.c (in_named_entry_eq, in_named_entry_hash): New.
3968         (get_named_section_flags, set_named_section_flags): New.
3969         (named_section_flags): Use them.
3970         (named_section): Do decl vs section flags check here...
3971         (default_section_type_flags): ... not here.
3972         (init_varasm_once): Create in_named_htab.
3973         (resolve_unique_section): Mark reloc unused.
3974
3975 2001-08-16  Richard Henderson  <rth@redhat.com>
3976
3977         * varasm.c (force_const_mem): Keep pool alignment in bits.
3978         (output_constant_pool): Use assemble_align.
3979
3980 2001-08-16  Zack Weinberg  <zackw@panix.com>
3981
3982         * doc/tm.texi: Remove extra @table command.
3983
3984 2001-08-16  Zack Weinberg  <zackw@panix.com>
3985
3986         * final.c (shorten_branches): Clear the end of the label_align
3987         array only if we made it larger.  Break up messy expressions
3988         for clarity.
3989
3990         * diagnostic.c (internal_error): Check for error recursion
3991         before doing ICE suppression.
3992
3993         * timevar.c: Timing variables now count in milliseconds.
3994         (init_timevar): Set up ticks_to_msec and clocks_to_msec here.
3995         (get_time): Not here.
3996         (timevar_print): Don't print any timer whose user, cpu, and
3997         wall times are all zero as displayed.
3998         * timevar.h: Update comment aboout units.  Make timevar
3999         counters unsigned.
4000
4001 Thu Aug 16 17:39:45 CEST 2001  Jan Hubicka  <jh@suse.cz>
4002
4003         * function.c (put_var_into_stack): Temporarily clear DECL_RTL.
4004         (assign_params): Avoid setting DECL_RTL to unfinished RTX.
4005         (expand_function_start): Likewise.
4006         * stmt.c (expand_decl): Likewise.
4007         * varasm.c (make_decl_rtx): Likewise.
4008
4009 2001-08-16  Jason Merrill  <jason_merrill@redhat.com>
4010
4011         * stor-layout.c (layout_decl): Don't set DECL_USER_ALIGN.
4012         (finalize_record_size): Don't set TYPE_USER_ALIGN.
4013
4014 2001-08-16  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
4015
4016         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Remove unused
4017         variables.
4018
4019 2001-08-16  Andreas Jaeger  <aj@suse.de>
4020
4021         * config/s390/s390.c: Include "debug.h" for dwarf2out_do_frame
4022         prototype.
4023
4024 Wed Aug 15 15:22:52 EDT 2001  John Wehle  (john@feith.com)
4025
4026         * rtl.h (only_sets_cc0_p): New prototype.
4027         * jump.c (sets_cc0_p): Handle INSN.
4028         (only_sets_cc0_p): New function.
4029         * flow.c (merge_blocks_nomove): Use only_sets_cc0_p.
4030         (tidy_fallthru_edge): Likewise.
4031         * integrate.c (copy_insn_list): Likewise.
4032         * unroll.c (unroll_loop): Likewise.
4033         (copy_loop_body): Likewise.
4034
4035 2001-08-15  Jason Eckhardt  <jle@redhat.com>
4036
4037         * config/i960/i960.md (trap): Change "faulteq.t" to "faulte.t".
4038
4039 Wed Aug 15 14:24:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
4040
4041         * predict.c (struct block_info_def): Remove nvisited.
4042         (propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions.
4043         (estimate_bb_frequencies): Call mark_dfs_back_edges.
4044
4045         * i386.c (ix86_agi_depdendant): Lea causes AGI only on the Pentium
4046         (ix86_adjust_cost): Teach scheduler that latency to load operand can
4047         be masked.
4048
4049 Wed Aug 15 12:41:32 CEST 2001  Jan Hubicka  <jh@suse.cz>
4050
4051         * predict.def: Update hitrates.
4052
4053 2001-08-15  Richard Henderson  <rth@redhat.com>
4054
4055         * except.c (TYPE_HASH): Cast to size_t, not HOST_WIDE_INT.
4056
4057 Tue Aug 14 17:30:59 2001  Jeffrey A Law  (law@cygnus.com)
4058
4059         * flow.c (commit_one_edge_insertion): Don't separate a LOOP_BEG
4060         note from its associated jump.
4061
4062 2001-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
4063
4064         * config/s390/linux64.h (CPP_PREDEFINES): Define __s390__
4065         also on 64-bit s390x targets.
4066
4067 2001-08-14  Nick Clifton  <nickc@cambridge.redhat.com>
4068
4069         * config/arm/arm.c (arm_compute_initial_elimination_offset): New
4070         function.
4071         (arm_expand_prologue): Handled nested functions which take a
4072         variable argument list.
4073         * config/arm/arm.h (ARM_INITIAL_ELIMINATION_OFFSET): Replace
4074         macro with an invocation of
4075         arm_compute_initial_elimination_offset.
4076         * config/arm/arm-protos.h: Prototype
4077         arm_compute_initial_elimination_offset.
4078
4079 2001-08-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4080
4081         * doc/install.texi (Specific, avr): Fix markup.
4082         (Specific, c4x): Ditto.
4083
4084 2001-08-14  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
4085
4086         * predict.c (dump_prediction): Change `bool' parameter to `int'.
4087
4088 2001-08-14  Gabriel Dos Reis  <gdr@codesourcery.com>
4089
4090         * Makefile.in (OBJS): Add rtl-error.o
4091         (rtl-error.o): New rule.
4092         (diagnostic.o): Adjust dependency.
4093         diagnostic.c (file_and_line_for_asm, diagnostic_for_asm,
4094         error_for_asm, _fatal_insn, _fatal_insn_not_found,
4095         warning_for_asm): Move to...
4096         rtl-error.c: ...here.  New file.
4097
4098 2001-08-14  Richard Henderson  <rth@redhat.com>
4099
4100         * dwarf2out.c (dwarf2out_frame_finish): Never emit .eh_frame
4101         if USING_SJLJ_EXCEPTIONS.
4102
4103 2001-08-14  Steve Ellcey <sje@cup.hp.com>
4104
4105         * tlink.c (scan_linker_output): Check string for unsatisfied in
4106         addition to undefined and unresolved.
4107
4108 2001-08-14  Graham Stott  <grahams@redhat.com>
4109
4110         * libgcc2.c (*): Replace EH_FRAME_SECTION with
4111         EH_FRAME_SECTION_NAME.
4112
4113 Tue Aug 14 14:57:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
4114
4115         * genattrtab.c (simplify_test_exp_in_temp): New function.
4116         (simplify_test_exp): Avoid explicit use of temporary obstack.
4117         (simplify_cond, insert_right_side, evaluate_eq_attr,
4118         simplify_and_tree, simplify_or_tree, eliminate_known_true):
4119         Use simplify_test_exp_in_temp.
4120         (optimize_attrs): Iterate until expression stabilizes.
4121
4122 2001-08-13  Ulrich Weigand  <uweigand@de.ibm.com>:
4123
4124         * glimits.h: Remove the __LONG_MAX__ special case for s390x.
4125         * config/s390/linux64.h: Define __LONG_MAX__ in CPP_PREDEFINES.
4126
4127 2001-08-13  Richard Henderson  <rth@redhat.com>
4128
4129         * config/arm/unknown-elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END): Remove.
4130         (DTOR_LIST_BEGIN, DTOR_LIST_END): Remove.
4131         * config/arm/conix-elf.h: Likewise.
4132
4133 2001-08-13  Geoffrey Keating  <geoffk@redhat.com>
4134
4135         * config/svr4.h (LINK_SPEC): Don't do -Wl, here, it is done
4136         in gcc.c.
4137         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
4138
4139         * gcse.c (hash_scan_set): Expressions that are set as part of
4140         jump instructions are not available.
4141
4142 2001-08-13  Ulrich Weigand  <uweigand@de.ibm.com>
4143
4144         * config/s390/s390.c (print_operand, s390_function_prologue,
4145         s390_va_start): Fixed HOST_WIDE_INT type mismatch.
4146
4147 2001-08-13  Richard Henderson  <rth@redhat.com>
4148
4149         * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): New.
4150         * defaults.h (EH_FRAME_SECTION_NAME): Respect it.
4151         * doc/tm.texi (Exception Region Output): Document it.
4152
4153 2001-08-13  Geoffrey Keating  <geoffk@redhat.com>
4154
4155         * config/rs6000/sysv4.h (PREFERRED_DEBUGGING_TYPE): Use
4156         DWARF2 instead of stabs by default.
4157
4158 2001-08-13  David Edelsohn  <edelsohn@gnu.org>
4159
4160         * config/rs6000/rs6000.c: Include optabs.h.
4161
4162 2001-08-13  David Edelsohn  <edelsohn@gnu.org>
4163
4164         * config/rs6000/eabi.asm: Define 64-bit versions of FPR
4165         save/restore routines.
4166         * ginclude/ppc-asm.h: Define 64-bit FUNC_* macros.
4167
4168 2001-08-13  Andreas Jaeger  <aj@suse.de>
4169
4170         * gcc.c (init_spec): Revert last patch by Theodore Papadopoulo,
4171         the english is correct.
4172
4173 2001-08-13  Zack Weinberg  <zackw@panix.com>
4174
4175         * expr.h: Split out optab- and libfunc-related code to...
4176         * optabs.h, libfuncs.h: ... these new headers.
4177
4178         * Makefile.in (CONFIG_H, EXPR_H): Take out insn-codes.h.
4179         (OPTABS_H): New.
4180         (various .o rules): Add $(OPTABS_H) and/or libfuncs.h to
4181         dependencies.
4182         * mkconfig.sh: Don't include insn-codes.h from config.h.
4183
4184         * reload.h: Use #ifdef GCC_INSN_CODES_H to decide whether
4185         enum insn_code is available.  Move reload_in_optab and
4186         reload_out_optab array declarations to optabs.h.
4187         * regmove.c (gen_add3_insn): Move to optabs.c, export from
4188         there, prototype in expr.h.
4189         * gencodes.c: Cleanup: zap global variables, don't use
4190         printf where puts will do, don't bother defining MAX_INSN_CODE
4191         which nothing uses, let CODE_FOR_nothing get its value implicitly.
4192
4193         * genemit.c, genopinit.c: Include optabs.h in generated file.
4194         * genoutput.c: Include insn-codes.h in generated file.
4195         * builtins.c, caller-save.c, combine.c, doloop.c, explow.c,
4196         expmed.c, expr.c, function.c, ifcvt.c, loop.c, optabs.c, profile.c,
4197         reload1.c, simplify-rtx.c, stmt.c, unroll.c, config/alpha/alpha.c,
4198         config/arm/arm.c, config/c4x/c4x.c, config/clipper/clipper.c,
4199         config/i386/i386.c, config/ia64/ia64.c, config/mn10300/mn10300.c,
4200         config/pj/pj.c, config/sh/sh.c, config/sparc/sparc.c:
4201         Include optabs.h.
4202         * builtins.c, calls.c, dwarf2out.c, except.c, expr.c, function.c,
4203         optabs.c, stmt.c, config/c4x/c4x.c, config/clipper/clipper.c,
4204         config/m88k/m88k.c, config/sparc/sparc.c:
4205         Include libfuncs.h.
4206         * reload.c: Include expr.h and optabs.h before reload.h.
4207         * config/alpha/alpha.c: Include tree.h before reload.h.
4208         * config/pa/pa.c: Include expr.h, optabs.h, libfuncs.h,
4209         and reload.h in that order.
4210         * config/sparc/sparc.c: Include debug.h.
4211         * recog.c: Include insn-codes.h.
4212
4213 2001-08-13  Andreas Jaeger  <aj@suse.de>
4214
4215         * config.gcc: Use t-slibgcc-elf to build shared libgcc_s on
4216         s390*linux.
4217
4218 2000-08-13 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
4219
4220         * dwarf2out.c (output_cfa_loc): Fix typo in comment.
4221         * gcc.c (init_spec): Fix typo in comment.
4222         * varasm.c (data_section): Fix typo in comment.
4223
4224 Mon Aug 13 02:27:39 CEST 2001  Jan Hubicka  <jh@suse.cz>
4225
4226         * predict.c (dump_prediction): New argument "USED".
4227         (combine_predictions_for_insn): Determine the used heuristics,
4228         output the case no heuristic applied.
4229         * predict.def (PRED_DS_THEORY, PRED_NO_HEURISTIC): New.
4230
4231 2001-08-13  Andreas Jaeger  <aj@suse.de>
4232
4233         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Don't capitalize
4234         register %rip.
4235
4236 2001-08-13  Kazu Hirata  <kazu@hxi.com>
4237
4238         * jump.c: Fix formatting.
4239
4240 2001-08-13  Kazu Hirata  <kazu@hxi.com>
4241
4242         * config/h8300/h8300.md (zero_extendqihi2): Correct the insn
4243         length.
4244
4245 2001-08-12  Geoffrey Keating  <geoffk@redhat.com>
4246
4247         * loop.c (check_dbra_loop): Use condjump_label to compute
4248         jump_label.
4249
4250         * rtl.h: Move prototypes of rtx_alloc and rtvec_alloc around
4251         to better document the files they're in.
4252
4253 2001-08-12  Zack Weinberg  <zackw@panix.com>
4254
4255         * recog.h (struct insn_operand_data): Shrink 'mode' field
4256         to 16 bits.
4257
4258 2001-08-12  Kazu Hirata  <kazu@hxi.com>
4259
4260         * gcc.c: Fix comment formatting.
4261         * gccspec.c: Likewise.
4262         * gcov.c: Likewise.
4263         * gcse.c: Likewise.
4264         * genemit.c: Likewise.
4265         * gengenrtl.c: Likewise.
4266         * genrecog.c: Likewise.
4267         * gensupport.c: Likewise.
4268         * ggc-page.c: Likewise.
4269         * global.c: Likewise.
4270         * graph.c: Likewise.
4271         * ifcvt.c: Likewise.
4272         * integrate.c: Likewise.
4273         * lcm.c: Likewise.
4274         * libgcc2.c: Likewise.
4275         * loop.c: Likewise.
4276         * mbchar.c: Likewise.
4277         * optabs.c: Likewise.
4278         * predict.c: Likewise.
4279         * prefix.c: Likewise.
4280         * profile.c: Likewise.
4281         * protoize.c: Likewise.
4282         * real.c: Likewise.
4283         * recog.c: Likewise.
4284         * regclass.c: Likewise.
4285         * regmove.c: Likewise.
4286         * reg-stack.c: Likewise.
4287         * reload1.c: Likewise.
4288         * resource.c: Likewise.
4289         * rtlanal.c: Likewise.
4290         * rtl.c: Likewise.
4291
4292 2001-08-12  Kazu Hirata  <kazu@hxi.com>
4293
4294         * doc/tm.texi (ENCODE_SECTION_INFO): Add documentation on how
4295         a tree representing a constant is passed to the macro.
4296
4297 2001-08-12  Richard Henderson  <rth@redhat.com>
4298
4299         * config/rs6000/rs6000.c (rs6000_elf_asm_out_constructor): New.
4300         (rs6000_elf_asm_out_destructor): New.
4301         * config/rs6000/sysv4.h (CTORS_SECTION_ASM_OP): Remove.
4302         (DTORS_SECTION_ASM_OP): Remove.
4303         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
4304         (ASM_OUTPUT_INT): Don't hack TARGET_RELOCATABLE for constructors.
4305
4306 2001-08-12  David Edelsohn  <edelsohn@gnu.org>
4307
4308         Revert:
4309         2001-08-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4310         * gcc.c (set_collect_gcc_options): New function, split out from
4311         main.
4312         Ignore elided switches.
4313         (do_spec_1): Invoke before executing command.
4314         (set_input): Export.
4315         Move declaration ...
4316         * gcc.h (set_input): ... here.
4317         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %U.s to refer to input
4318         file.
4319
4320 2001-08-12  Richard Henderson  <rth@redhat.com>
4321
4322         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Fix
4323         thinko wrt TARGET_RELOCATABLE.
4324
4325 2001-08-12  Neil Booth  <neil@daikokuya.demon.co.uk>
4326
4327         * fix-header.c (cb_file_change): Update prototype.
4328
4329 2001-08-11  Zack Weinberg  <zackw@panix.com>
4330
4331         * toplev.c (set_float_handler): Make static.
4332         * toplev.h: Don't prototype set_float_handler.
4333
4334         * simplify-rtx.c: Don't include setjmp.h.
4335         (simplify_unary_real, simplify_binary_real, simplify_binary_is2orm1):
4336         New functions.
4337         (simplify_unary_operation, simplify_binary_operation): Use them,
4338         via do_float_handler.
4339
4340         * fold-const.c: Don't include setjmp.h.
4341         (exact_real_inverse_1): New function.
4342         (exact_real_inverse): Use it, via do_float_handler.
4343
4344         * varasm.c: Don't include setjmp.h.
4345         (assemble_real_1): New function.
4346         (assemble_real): Use it, via do_float_handler.
4347         Call internal_error if we get a trap here.
4348
4349         * c-parse.in, cse.c, cselib.c, config/i386/i386.c,
4350         config/pj/pj.c, config/s390/s390.c: Don't include setjmp.h.
4351
4352 2001-08-11  Zack Weinberg  <zackw@panix.com>
4353
4354         * defaults.h: Define PREFERRED_STACK_BOUNDARY to
4355         STACK_BOUNDARY if not already defined.
4356
4357         * calls.c, function.c, reload1.c, explow.c: Don't default
4358         PREFERRED_STACK_BOUNDARY.  Remove all #if/#ifdef on
4359         PREFERRRED_STACK_BOUNDARY and/or STACK_BOUNDARY.
4360
4361         * explow.c (allocate_dynamic_stack_space): Change unsafe #if
4362         to run-time test.
4363
4364         * doc/tm.texi: Document that STACK_BOUNDARY is required;
4365         clarify difference between it and PREFERRED_STACK_BOUNDARY.
4366
4367 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
4368
4369         * cppmacro.c (enter_macro_context): Push macro expansions even
4370         if empty.
4371
4372 2001-08-11  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4373
4374         * config/rs6000/rs6000.c: Include integrate.h to silence warning.
4375         (rs6000_elf_section_type_flags): Actually return a value.
4376
4377 2001-08-11  Ulrich Weigand  <uweigand@de.ibm.com>
4378
4379         * s390.c, s390.h, s390.md, s390-protos.h, linux.h, t-linux:
4380         Clean up code: add missing comments and prototypes, fix warnings,
4381         remove obsolete code, fix spacing to conform to coding style.
4382
4383 2001-08-11  Ulrich Weigand  <uweigand@de.ibm.com>
4384
4385         * config/s390/s390.c (targetm): Define TARGET_ASM_OPEN_PAREN
4386         and TARGET_ASM_CLOSE_PAREN.
4387         (regclass_map): CC register belongs to class NO_REGS.
4388         (legitimize_pic_address): Don't generate unnecessary moves
4389         (to avoid confusing loop optimization).
4390         (check_and_change_labels): Replace jump_long by indirect_jump.
4391         (s390_final_chunkify): Don't start a new literal pool on section
4392         switch in 64-bit code.
4393         (s390_va_start, s390_va_arg): Fixed incorrect sizes for 64-bit.
4394
4395         * config/s390/s390.h (TARGET_SWITCHES): Renamed debug_arg to debug.
4396         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE): Set to 64 (for 64-bit).
4397         (HARD_REGNO_MODE_OK, RETURN_IN_MEMORY): Support complex integer
4398         modes correctly.
4399         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Remove CC_REGS.
4400         (EH_RETURN_HANDLER_RTX): Fixed incorrect offset for 64-bit.
4401         (CONST_COSTS): Fixed incorrect costs.
4402
4403         * config/s390/s390.md (fixuns_trunc[sd]f[sd]i2, udivsi3, umodsi3):
4404         Use emit_jump instead of emit_jump_insn (gen_jump).
4405         (divsi3, modsi3): Clobber low word of divmoddisi3 before shifting
4406         (to avoid confusing flow analysis).
4407         (tablejump, tablejump1, tablejump2): Removed.  Replaced by casesi.
4408         (casesi, casesi_jump): New.
4409         (jump_long): Removed.  Functionality merged into indirect_jump.
4410         (indirect_jump): Accept address_operand, not just register_operand.
4411         (cjump_long, icjump_long): Use same logic as indirect_jump.
4412         (builtin_setjmp_setup, builtin_setjmp_receiver, builtin_longjmp):
4413         Fixed broken setjmp/longjmp handling.
4414         (do_builtin_setjmp_setup): Removed.
4415
4416         * config/s390/linux.h (ASM_OUTPUT_DOUBLE_INT): Work around
4417         broken GNU as versions that don't accept .quad with large
4418         negative values.  Use hexadecimal output instead.
4419         (ASM_OUTPUT_ADDR_DIFF_ELT): Adapt to new casesi insn.
4420         (ASM_OPEN_PAREN, ASM_CLOSE_PAREN, FUNCTION_PROLOGUE,
4421         FUNCTION_EPILOGUE): Removed.  Now in targetm.
4422
4423         * config/s390/linux64.h (CALL_USED_REGISTERS): Add CC register.
4424
4425         * config/s390/fixdfdi.h: Add missing copyright statement.
4426         Fix type conflicts on 64-bit.  Add missing SFmode routines.
4427
4428         * s390.c, s390.h, s390.md, linux.h, linux64.h: Fixed incorrect
4429         email address.
4430
4431 2001-08-11  Richard Henderson  <rth@redhat.com>
4432
4433         * rtl.h (REG_EH_RETHROW): Remove.
4434         * rtl.c (reg_note_name): Update.
4435         * combine.c (distribute_notes): Don't check for it.
4436
4437 2001-08-11  Richard Henderson  <rth@redhat.com>
4438
4439         * combine.c (distribute_notes): Place REG_SETJMP.
4440
4441 2001-08-11  Richard Henderson  <rth@redhat.com>
4442
4443         * doc/extend.texi (Arrays and pointers implementation): Discourage
4444         relying on sign-extension of pointers.
4445
4446 2001-08-11  H.J. Lu <hjl@gnu.org>
4447
4448         * config/mips/linux.h (EXTRA_SECTIONS): Remove in_ctors and
4449         in_dtors.
4450         (EXTRA_SECTION_FUNCTIONS): Remove DTORS_SECTION_ASM_OP and
4451         RDATA_SECTION_ASM_OP.
4452
4453 2001-08-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4454
4455         * doc/install.texi (Specific, c4x): Fix cross-reference to the
4456         main manual to work both for info and HTML versions.
4457
4458 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
4459             Matt Kraai <kraai@alumni.carnegiemellon.edu>
4460
4461         * cpphash.c (_cpp_destroy_hashtable): Use ht_destroy.
4462         * cpphash.h (CPP_IN_SYSTEM_HEADER): Fix.
4463         (struct cpp_pool): New member first.
4464         * cppinit.c (append_include_chain): Plug memory leaks.
4465         * cpplib.c (cpp_register_pragma, cpp_register_pragma_space):
4466         Allocate pragma structures from the (aligned) macro pool to
4467         avoid leaking memory.
4468         * cpplex.c (_cpp_init_pool, _cpp_free_pool): Use pool->first
4469         so we don't leak memory.
4470         * hashtable.c (ht_destroy): New.
4471         * hashtable.h (ht_destroy): New.
4472
4473 2001-08-11  Neil Booth  <neil@daikokuya.demon.co.uk>
4474             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4475
4476         * c-lex.c (map): Make const.
4477         (cb_file_change): Update for callback passing a line map.
4478         Don't assume we have a previous map.  Remove sanity check
4479         about popping too many files.
4480         * cpperror.c (print_location): Make map const.
4481         * cppfiles.c (stack_include_file): Update; line maps now hold sysp.
4482         (cpp_make_system_header): Similarly.
4483         (search_from): Similarly.
4484         (_cpp_execute_include): Don't remember where we came from.
4485         * cpphash.h (struct cpp_buffer): Remove return_to_line, sysp.
4486         (struct cpp_reader): Make map const.
4487         (CPP_IN_SYSTEM_HEADER, _cpp_do_file_change): Update.
4488         * cpplib.c (do_line): Update; line maps now hold sysp.
4489         (cpp_push_buffer): Similarly.
4490         (_cpp_do_file_change): Similarly; callback with map instead.
4491         (cpp_get_line_maps): Constify return value.
4492         (_cpp_pop_buffer): Update.
4493         * cpplib.h (struct cpp_file_change): Remove.
4494         (struct cpp_callbacks): Update.
4495         (cpp_get_line_maps): Constify return value.
4496         * cppmacro.c (_cpp_create_definition): Update.
4497         * cppmain.c (struct printer): Constify map.
4498         (maybe_print_line): Similarly.
4499         (print_line): Similarly.  Deduce flags 1 and 2 here.
4500         (cb_file_change): Update.
4501         * line-map.c (free_line_maps): Warn regardless.
4502         (add_line_map): Return pointer to const.  When passed NULL to_file
4503         with LC_LEAVE, use the obvious values for the return point so the
4504         caller doesn't have to figure them out.
4505         (lookup_line): Return pointer to const.
4506         (print_containing_files): Take pointer to const.
4507         * line-map.h (struct line_map): New members reason, sysp.
4508         (add_line_map): Return pointer to const.
4509         (lookup_line): Similarly.
4510         (print_containing_files): Take pointer to const.
4511
4512 2001-08-10  Roman Zippel  <zippel@linux-m68k.org>
4513             Richard Henderson  <rth@redhat.com>
4514
4515         * regmove.c (regmove_optimize): Avoid setting a register twice in
4516         a parallel set.
4517
4518 2001-08-10  Richard Henderson  <rth@redhat.com>
4519
4520         * doc/extend.texi (Arrays and pointers implementation): Document
4521         behavior of pointer/integer conversion.
4522
4523 2001-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
4524
4525         * glimits.h (__LONG_MAX__): Add s390x as 64-bit architecture.
4526
4527 2001-08-10  Richard Henderson  <rth@redhat.com>
4528
4529         * doc/extend.texi (C Implementation): New chapter.
4530         * doc/gcc.texi (Top): Link it in.
4531
4532 2001-08-10  Andrew Cagney  <ac131313@redhat.com>
4533
4534         * doc/install.texi (Specific): Fix CVS merge botch.
4535
4536 2001-08-10  Richard Henderson  <rth@redhat.com>
4537
4538         * config/m68k/m68k.c (m68k_svr3_asm_out_constructor): Protect with
4539         ifdef CTOR_LIST_BEGIN instead of INIT_SECTION_ASM_OP.
4540
4541 2001-08-10  Zack Weinberg  <zackw@stanford.edu>
4542
4543         * calls.c, function.c: Always define PREFERRED_STACK_BOUNDARY
4544         if not already defined.  Remove all #ifdefs on STACK_BOUNDARY;
4545         this macro is now required.
4546
4547         * cselib.c (cselib_process_insn), flow.c (propagate_block),
4548         loop.c (find_and_verify_loops), reload.c (reload): Check
4549         for rtx code of CALL_INSN, not CALL, when deciding if we
4550         need to check for REG_SETJMP note.
4551
4552         * gcse.c (compute_hash_table, compute_store_table): Update
4553         the #ifdef NON_SAVING_SETJMP code to the new REG_SETJMP
4554         logic.
4555
4556         * config/avr/avr.c: Fix typo.
4557         * config/convex/convex.c (expand_movstr): Use adjust_address.
4558         * config/dsp16xx/dsp16xx.c: Define dsp16xx_compare_gen
4559         variable.
4560         * config/dsp16xx/dsp16xx.md: Correct calls to replace_equiv_address.
4561         * config/elxsi/elxsi.c: Include tree.h, expr.h, regs.h, and flags.h.
4562         Fix typo.
4563         * config/elxsi/elxsi.h: Don't define Rmode (typo for Pmode?)
4564         Do define STACK_BOUNDARY.
4565         * config/i370/i370.c: Include expr.h.
4566         * config/i860/sysv3.h, config/i860/sysv4.h, config/m32r/m32r.h,
4567         config/pa/som.h, config/v850/v850.h: Take in_ctors and
4568         in_dtors out of EXTRA_SECTIONS; take CTORS_SECTION_FUNCTION
4569         and DTORS_SECTION_FUNCTION out of EXTRA_SECTION_FUNCTIONS.
4570         * config/m88k/m88k.c: Include c-tree.h after expr.h.
4571         * config/pdp11/pdp11.c: Include expr.h and toplev.h.
4572         * config/romp/romp.c: Include expr.h after tree.h.
4573         Include toplev.h.
4574         (output_fpop): Use xmalloc, not oballoc.
4575         * config/we32k/we32k.c: Include expr.h.
4576
4577 2001-08-10  Kazu Hirata  <kazu@hxi.com>
4578
4579         * config/h8300/h8300.h: Fix formatting.
4580
4581 2001-08-08  Jason Merrill  <jason_merrill@redhat.com>
4582
4583         * c-common.h (RETURN_NULLIFIED_P): Lose.
4584         * c-semantics.c (genrtl_return_stmt): Don't check it.
4585
4586 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
4587
4588         * config/mips/mips.c (mips_add_large_offset_to_sp): New function.
4589         (mips_annotate_frame_insn): New function.
4590         (mips_emit_frame_related_store): New function.
4591         (save_restore_insns): Don't mark instructions that set up the base
4592         registers as frame-related.  Add REG_FRAME_RELATED_EXPR notes to
4593         the store instructions instead.
4594         (mips_expand_prologue): If the stack size is moved into a temporary
4595         register, do not mark that move as frame-related.  Add a
4596         REG_FRAME_RELATED_EXPR note to the stack adjustment instruction.
4597
4598 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
4599
4600         * config/mips/mips.c (save_restore_insns): Don't mark the RA's
4601         stack slot as unchanging if current_function_calls_eh_return.
4602
4603 2001-08-10  Richard Sandiford  <rsandifo@redhat.com>
4604
4605         * config/mips/mips.md (reload_incc): Use HARD_REGNO_NREGS to
4606         access the second half of the TFmode scratch operand.
4607
4608 2001-08-10  Anthony Green  <green@redhat.com>
4609
4610         * java/class.c (emit_register_classes): Conditionalize code on
4611         JCR_SECTION_NAME.
4612
4613 2001-08-10  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4614
4615         * doc/install.texi (Specific, avr): Fix cross-reference to the
4616         main manual to work both for info and HTML versions.
4617
4618 2001-08-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4619
4620         * stmt.c (expand_null_return_1): Remove code to generate simple returns
4621         and "use_goto" argument.
4622         (expand_null_return, expand_value_return): Update all callers.
4623         * function.c (expand_function_end): Remove code to generate simple
4624         return.
4625         * config/vax/vax.md (epilogue): New expander for function return.
4626         * doc/md.texi (epilogue): Remove "if defined".
4627
4628 2001-08-09  Zack Weinberg  <zackw@stanford.edu>
4629
4630         * Makefile.in: Partially revert my previous change:
4631         put -DGENERATOR_FILE back in HOST_CFLAGS, take it out
4632         of the hashtab.o and safe-ctype.o rules.
4633
4634 2001-08-09  Richard Henderson  <rth@redhat.com>
4635
4636         * Makefile.in (MAYBE_USE_COLLECT2): Remove; purge all uses.
4637         (USE_COLLECT2): Remove duplicate definition.
4638         * config.gcc (a29k-udi, a29k-wrs-vxworks) [tm_file]: Remove a29k/udi.h.
4639         (use_collect2): Remove dead code.
4640         * configure.in (use_collect2): Remove will_use_collect2 and
4641         maybe_use_collect2; add USE_COLLECT2 to host_xm_defines and xm_defines.
4642         * configure: Rebuild.
4643
4644         * target.h (targetm.asm_out.constructor): New.
4645         (targetm.asm_out.destructor, targetm.have_ctors_dtors): New.
4646         * target-def.h (TARGET_ASM_CONSTRUCTOR): New.
4647         (TARGET_ASM_DESTRUCTOR, TARGET_HAVE_CTORS_DTORS): New.
4648         * varasm.c (in_ctors, in_dtors): New.
4649         (assemble_constructor, assemble_destructor): Remove.
4650         (default_stabs_asm_out_destructor): New.
4651         (default_named_section_asm_out_destructor): New.
4652         (dtors_section, default_dtor_section_asm_out_destructor): New.
4653         (default_stabs_asm_out_constructor): New.
4654         (default_named_section_asm_out_constructor): New.
4655         (ctors_section, default_ctor_section_asm_out_constructor): New.
4656         * output.h: Update declarations.
4657         * c-decl.c (c_expand_body): Use target hooks instead of
4658         assemble_constructor and assemble_destructor.
4659         * profile.c (output_func_start_profiler): Likewise.
4660         * objc/objc-act.c (finish_objc): Likewise.
4661         (build_module_descriptor): Tidy.  Set TREE_PUBLIC properly
4662         for the constructor.
4663         * objc/Make-lang.in (objc-act.o): Depend on TARGET_H.
4664
4665         * crtstuff.c (CTORS_SECTION_ASM_OP): Don't define.
4666         (DTORS_SECTION_ASM_OP): Likewise.
4667         (__CTOR_LIST__): Use attribute section when possible.
4668         (__DTOR_LIST__, __CTOR_END__, __DTOR_END__): Likewise.
4669
4670         * defaults.h (EH_FRAME_SECTION_NAME): Don't depend on
4671         ASM_OUTPUT_CONSTRUCTOR.
4672
4673         * config/darwin.c (machopic_asm_out_constructor): New.
4674         (machopic_asm_out_destructor): New.
4675         * config/darwin-protos.h: Update declarations.
4676         * config/darwin.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
4677         (ASM_OUTPUT_DESTRUCTOR): Remove.
4678         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
4679         * config/nextstep.c (nextstep_asm_out_constructor): New.
4680         (nextstep_asm_out_destructor): New.
4681         * config/nextstep.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
4682         (ASM_OUTPUT_DESTRUCTOR): Remove.
4683         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
4684         * config/nextstep21.h: Undef TARGET_ASM_*STRUCTOR instead of
4685         ASM_OUTPUT_*STRUCTOR.
4686         * config/i386/aix386ng.h: Likewise.
4687
4688         * config/elfos.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Remove.
4689         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): No ctors/dtors.
4690         (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove.
4691         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
4692         * config/lynx.h: Likewise.
4693         * config/netware.h: Likewise.
4694         * config/psos.h: Likewise.
4695         * config/alpha/alpha-interix.h: Likewise.
4696         * config/alpha/elf.h: Likewise.
4697         * config/arc/arc.h: Likewise.
4698         * config/arm/aof.h: Likewise.
4699         * config/arm/coff.h: Likewise.
4700         * config/arm/elf.h: Likewise.
4701         * config/c4x/c4x.h: Likewise.
4702         * config/h8300/h8300.h: Likewise.
4703         * config/i386/cygwin.h: Likewise.
4704         * config/i386/djgpp.h: Likewise.
4705         * config/i386/i386-coff.h: Likewise.
4706         * config/i386/i386-interix.h: Likewise.
4707         * config/i386/sco5.h: Likewise.
4708         * config/i386/vsta.h: Likewise.
4709         * config/i386/win32.h: Likewise.
4710         * config/i960/i960-coff.h: Likewise.
4711         * config/ia64/sysv4.h: Likewise.
4712         * config/m68hc11/m68hc11.h: Likewise.
4713         * config/m68k/coff.h: Likewise.
4714         * config/m68k/mot3300.h: Likewise.
4715         * config/m88k/m88k.h: Likewise.
4716         * config/mcore/mcore-pe.h: Likewise.
4717         * config/mcore/mcore.h: Likewise.
4718         * config/mips/elf.h: Likewise.
4719         * config/mips/elf64.h: Likewise.
4720         * config/mips/iris6.h: Likewise.
4721         * config/pa/pa64-hpux.h: Likewise.
4722         * config/rs6000/sysv4.h: Likewise.
4723         * config/sh/sh.h: Likewise.
4724         * config/sparc/litecoff.h: Likewise.
4725
4726         * config/svr3.h (CTORS_SECTION_ASM_OP): Remove.
4727         (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove.
4728         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
4729         * config/1750a/1750a.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
4730         (ASM_OUTPUT_DESTRUCTOR): Remove.
4731         * config/a29k/a29k.c: Move include of tree.h.
4732         * config/a29k/udi.h: Delete file.
4733         * config/alpha/alpha.c (vms_asm_out_constructor): New.
4734         (vms_asm_out_destructor): New.
4735         * config/alpha/vms.h (EXTRA_SECTIONS): No ctors/dtors.
4736         (EXTRA_SECTION_FUNCTIONS): Likewise.
4737         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
4738         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
4739         * config/c4x/c4x.c: Move include of tree.h.
4740         * config/clipper/clipper.c (clix_asm_out_constructor): New.
4741         (clix_asm_out_destructor): New.
4742         * config/clipper/clix.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
4743         (ASM_OUTPUT_DESTRUCTOR): Remove.
4744         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
4745         * config/i386/aix386.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
4746         (TARGET_ASM_CONSTRUCTOR): New.
4747         * config/i386/i386.c (ix86_svr3_asm_out_constructor): New.
4748         (sco_asm_out_constructor): New.
4749         * config/i386/sco5.h (TARGET_ASM_CONSTRUCTOR): New.
4750         * config/i386/svr3gas.h: Remove stack grows up code.
4751         Remove code duplicated from i386/sysv3.h.
4752         (TARGET_ASM_CONSTRUCTOR): New.
4753         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove.
4754         (DTORS_SECTION_FUNCTION, CTORS_SECTION_FUNCTION): Remove.
4755         * config/i386/sysv3.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
4756         (TARGET_ASM_CONSTRUCTOR): New.
4757         * config/m68hc11/m68hc11.c (m68hc11_asm_out_constructor): New.
4758         (m68hc11_asm_out_destructor): New.
4759         * config/m68hc11/m68hc11.h (TARGET_ASM_CONSTRUCTOR): New.
4760         (TARGET_ASM_DESTRUCTOR): New.
4761         * config/m68k/auxgas.h: Don't undef ASM_OUTPUT_*STRUCTOR.
4762         * config/m68k/dpx2.h: Properly undef all the bits inherited from
4763         config/svr3.h pertaining to section manipulation.
4764         * config/m68k/dpx2g.h: Remove #if 0 code.
4765         * config/m68k/m68k.c (m68k_svr3_asm_out_constructor): New.
4766         * config/m68k/tower-as.h (ASM_OUTPUT_SOURCE_LINE): Fix typo.
4767         (ASM_OUTPUT_CONSTRUCTOR): Remove.
4768         (TARGET_ASM_CONSTRUCTOR): New.
4769         * config/m88k/m88k.c (m88k_layout_frame): Don't use assign_stack_local.
4770         (m88k_svr3_asm_out_constructor): New.
4771         (m88k_svr3_asm_out_destructor): New.
4772         * config/m88k/sysv3.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
4773         (ASM_OUTPUT_DESTRUCTOR): Remove.
4774         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
4775         * config/mips/mips.h: Remove #if 0 ASM_OUTPUT_*STRUCTOR code.
4776         * config/rs6000/aix.h: Likewise.
4777         * config/mips/rtems64.h: Don't undef removed constructor related bits.
4778         * config/mips/vxworks.h: Likewise.
4779         * config/rs6000/lynx.h: Likewise.
4780         * config/sh/elf.h: Likewise.
4781         * config/rs6000/sysv4.h (CTORS_SECTION_ASM_OP): New.
4782         (DTORS_SECTION_ASM_OP): New.
4783         * config/sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
4784         (ASM_OUTPUT_DESTRUCTOR): Remove.
4785         * config/sparc/sol2-sld-64.h: Likewise.
4786         * config/vax/vax.c (vms_asm_out_constructor): New.
4787         (vms_asm_out_destructor): New.
4788         * config/vax/vms.h (ASM_OUTPUT_CONSTRUCTOR): Remove.
4789         (ASM_OUTPUT_DESTRUCTOR): Remove.
4790         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
4791
4792         * doc/tm.texi (@node Initialization): Update.
4793
4794 2001-08-09  Richard Henderson  <rth@redhat.com>
4795
4796         * config/alpha/crtbegin.asm (__JCR_LIST__): New.
4797         (__do_global_dtors_aux): Use gp-relative static data to avoid
4798         one dynamic relocation.
4799         (__do_frame_setup): Register Java classes.
4800         * config/alpha/crtend.asm (__JCR_END__): New.
4801
4802 2001-08-09  Zack Weinberg  <zackw@stanford.edu>
4803
4804         * Makefile.in (HOST_CFLAGS): Take out -DGENERATOR_FILE.
4805         (CONFIG_H, TCONFIG_H, TM_P_H): Update.
4806         (GEN, STAGESTUFF): Add new files.
4807         (insn-constants.h, s-constants, tm-preds.h, s-preds,
4808         genconstants, genpreds, genconstants.o, genpreds.o): New rules.
4809         (hashtab.o, safe-ctype.o): Add -DGENERATOR_FILE.
4810         * mkconfig.sh: Include tm-preds.h in tm_p.h; insn-constants.h
4811         as well as insn-codes.h and insn-flags.h in config.h; and no
4812         extra headers in tconfig.h and hconfig.h.
4813
4814         * gencodes.c: Eliminate code to generate predicate declarations
4815         or #defines for md-file constants.
4816         * genconstants.c, genpreds.c: New files.
4817
4818         * i386.md: Re-order guard expressions such that TARGET_64BIT
4819         comes first, when this permits better optimization.  Add
4820         TARGET_64BIT to more x86-64 patterns.  Add comment explaining
4821         why this is desirable.
4822
4823 2001-08-09  Jakub Jelinek  <jakub@redhat.com>
4824
4825         * config/ia64/fde-glibc.c: Require glibc 2.2.4+ headers.
4826         (find_fde_for_dso): Remove.
4827         (_Unwind_IteratePhdrCallback): New.
4828         (_Unwind_FindTableEntry): Use dl_iterate_phdr.
4829         * config/ia64/crtbegin.asm (__ia64_app_header): Remove.
4830
4831 Thu Aug  9 11:30:20 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4832
4833         * expr.c (emit_single_push_insn): Only exists ifdef PUSH_ROUNDING.
4834         (move_by_pieces_1): If would call it, abort if no PUSH_ROUNDING.
4835
4836 2001-08-09  Graham Stott  <grahams@redhat.com>
4837
4838         * sched-vis.c (MAX_VISUAL_NO_UNIT): Define.
4839         (vis_no_unit): Use it.
4840         (visualize_no_unit): Add the insn only if room exists.
4841
4842 2001-08-09  Graham Stott  <grahams@redhat.com>
4843
4844         * predict.c (estimate_probability): Replace magic numbers with
4845         appropriate enumeration.
4846
4847 2001-08-09  Graham Stott  <grahams@redhat.com>
4848
4849         * cppexp.c (EXTRACT_PRIO): Uppercase and parenthsize macro
4850         parameter.
4851         (EXTRACT_FLAGS): Likewise.
4852
4853 2001-08-09  Aldy Hernandez  <aldyh@redhat.com>
4854
4855         * config/mips/mips.c    (mips_legitimate_address_p): Check for
4856         CONST_INT in last patch.
4857
4858 2001-08-08  Anthony Green  <green@redhat.com>
4859
4860         * java/class.c (emit_register_classes): Use assemble_jcr if
4861         possible.  Keep the original mechanism as a fallback.
4862         * defaults.h (JCR_SECTION_NAME): Define if we have named section
4863         and weak symbol support.
4864         * crtstuff.c (__JCR_LIST__): Define.
4865         (__JCR_END__): Define.
4866         (_Jv_RegiserClasses): Define weak symbol if possible.
4867         (__do_global_ctors_aux): Register classes for ELF targets with
4868         weak symbol support.
4869
4870 2001-08-08  Kazu Hirata  <kazu@hxi.com>
4871
4872         * dbxout.c: Fix comment formatting.
4873         * dependence.c: Likewise.
4874         * df.c: Likewise.
4875         * diagnostic.c: Likewise.
4876         * dominance.c: Likewise.
4877         * doprint.c: Likewise.
4878         * dwarf2out.c: Likewise.
4879         * dwarfout.c: Likewise.
4880         * emit-rtl.c: Likewise.
4881         * except.c: Likewise.
4882         * explow.c: Likewise.
4883         * expmed.c: Likewise.
4884         * expr.c: Likewise.
4885         * flow.c: Likewise.
4886         * fold-const.c: Likewise.
4887         * function.c: Likewise.
4888
4889 2001-08-08  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4890
4891         * global.c (retry_global_alloc): Avoid shadowing allocno.
4892
4893 2001-08-08  Mark Mitchell  <mark@codesourcery.com>
4894
4895         * except.c (remove_fixup_regions): Fix typo.
4896
4897 2001-08-08  Jan van Male <jan.vanmale@fenk.wau.nl>
4898
4899         * emit-rtl.c (adjust_address, adjust_address_nv): Cast offset to
4900         unsigned HOST_WIDE_INT to avoid warning.
4901         * final.c (final): Cast INSN_UID to unsigned to avoid warning.
4902         * flow.c (set_block_for_new_insns): Likewise.
4903
4904 Wed Aug  8 21:08:14 CEST 2001  Jan Hubicka  <jh@suse.cz>
4905
4906         * sibcall.c (return_value_pseudo): New static variable.
4907         (skip_copy_to_return_value): Handle return_value_pseudo.
4908         (call_ends_block_p): Ensure that return_value_pseudo is set.
4909         (optimize_sibling_and_tail_recursive_call): Discover the
4910         load of pseudo return value in alternate exit block.
4911
4912 Wed Aug  8 21:06:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
4913
4914         * calls.c (ECF_ALWAYS_RETURN): New constant.
4915         (emit_call_1): Add REG_ALWAYS_RETURN note if needed.
4916         (expand_call): Use LCF_ALWAYS_RETURN for __bb_fork_func.
4917         (emit_library_call_value_1): Handle LCT_ALWAYS_RETRUN.
4918         * flow.c (need_fake_edge_p): Handle REG_ALWAYS_RETURN.
4919         * rtl.c (reg_note_name): New name.
4920         * rtl.h (enum reg_note): Add REG_ALWAYS_RETURN.
4921
4922 2001-08-07  Aldy Hernandez  <aldyh@redhat.com>
4923
4924         * config/mips/mips.c (mips_legitimate_address_p): Limit "la" addresses.
4925
4926 2001-08-08  Jason Merrill  <jason_merrill@redhat.com>
4927
4928         * alias.c (get_alias_set): Return a previously calculated
4929         alias set for a VAR_DECL.
4930         * function.c (gen_mem_addressof): Calculate the alias set before
4931         touching the RTL.
4932
4933 Wed Aug  8 18:44:37 CEST 2001  Jan Hubicka  <jh@suse.cz>
4934
4935         * predict.def: Set hitrates according our experimental run.
4936
4937 Wed Aug  8 18:01:58 CEST 2001  Jan Hubicka  <jh@suse.cz>
4938
4939         * i386.h (HARD_REGNO_RENAME_OK): New macro.
4940
4941 2001-08-08  H.J. Lu <hjl@gnu.org>
4942
4943         * config/mips/mips.c (mips_unique_section): New. Copied from
4944         config/mips/elf.h.
4945
4946         * config/mips/mips-protos.h (mips_unique_section): New
4947         prototype.
4948
4949         * config/mips/elf.h (UNIQUE_SECTION): Use mips_unique_section.
4950
4951         * config/mips/little.h: New. Generic little endian mips
4952         targets. Only mips*-*-linux* is converted to use it so far.
4953
4954         * config/mips/linux.h: Include "gofast.h" and "mips/mips.h".
4955         (WCHAR_TYPE): Defined
4956         (WCHAR_TYPE_SIZE): Likewise.
4957         (INIT_SUBTARGET_OPTABS): Likewise.
4958         (BSS_SECTION_ASM_OP): Likewise.
4959         (SBSS_SECTION_ASM_OP): Likewise.
4960         (ASM_OUTPUT_ALIGNED_BSS): Likewise.
4961         (ASM_DECLARE_OBJECT_NAME): Likewise.
4962         (UNIQUE_SECTION): Likewise.
4963         (EXTRA_SECTIONS): Likewise.
4964         (ASM_OUTPUT_CONSTRUCTOR): Likewise.
4965         (ASM_OUTPUT_DESTRUCTOR): Likewise.
4966         (ASM_OUTPUT_DEF): Likewise.
4967         (HANDLE_SYSV_PRAGMA): Removed.
4968         (NO_IMPLICIT_EXTERN_C): Likewise.
4969         (TARGET_MEM_FUNCTIONS): Likewise.
4970         (STARTFILE_SPEC): Likewise.
4971         (ENDFILE_SPEC): Likewise.
4972         (LIB_SPEC): Likewise.
4973         (INVOKE__main): Likewise.
4974         (CTOR_LIST_BEGIN): Likewise.
4975         (CTOR_LIST_END): Likewise.
4976         (DTOR_LIST_BEGIN): Likewise.
4977         (DTOR_LIST_END): Likewise.
4978         (SET_ASM_OP): Likewise.
4979         (ASM_OUTPUT_SOURCE_LINE): Likewise.
4980         (ASM_OUTPUT_DEF): Likewise.
4981         (ASM_OUTPUT_IDENT): Likewise.
4982
4983         * config/mips/mips.h (ASM_SPEC): Undefine before define.
4984         (CPLUSPLUS_CPP_SPEC): Likewise.
4985         (ASM_APP_ON) Redefine only if not defined.
4986         (ASM_APP_OFF): Likewise.
4987         (ASM_OUTPUT_SOURCE_LINE): Likewise.
4988         (ASM_OUTPUT_IDENT): Likewise.
4989
4990         * config.gcc: Update tm_file for Linux/mips.
4991
4992 2001-08-08  Bernd Schmidt  <bernds@redhat.com>
4993
4994         * cselib.c (cselib_record_sets): If insn is predicated, turn
4995         sources into IF_THEN_ELSEs.
4996
4997         * config/ia64/ia64.md (cond_opsi2_internal, cond_opsi2_internal_b):
4998         Turn into define_insn_and_split.
4999
5000         * sched-deps.c: Include "cselib.h".
5001         (add_insn_mem_dependence, sched_analyze_1, sched_analyze_2):
5002         Use cselib to turn memory addresses into VALUEs.
5003         (sched_analyze): Call cselib_init/cselib_finish if necessary.
5004         * sched-int.h (struct sched_info): New member USE_CSELIB.
5005         * sched-ebb.c (ebb_sched_info): Initialize it.
5006         * sched-rgn.c (rgn_sched_info): Likewise.
5007         * Makefile.in (sched-deps.o): Update dependencies.
5008
5009         * cselib.h (cselib_subst_to_values): Declare.
5010         * cselib.c (cselib_subst_to_values): No longer static.  Allow MEMs
5011         that have no value and autoincs to be handled by generating a new
5012         dummy value.
5013
5014 2001-08-08  Graham Stott  <grahams@redhat.com>
5015
5016         * final.c (shorten_branches): Update the INSN_ADDRESSES of insns
5017         within fixed length SEQUENCE.
5018
5019 2001-08-08  Graham Stott  <grahams@redhat.com>
5020
5021         * diagnostic.h (diagnostic_format_decoder): Parenthesize macro parameter.
5022         (diagnostic_prefixing_rule): Likewise.
5023         (diagnostic_line_cutoff): Likewise.
5024         (diagnostic_kind_count): Likewise.
5025
5026 2001-08-08  Graham Stott  <grahams@redhat.com>
5027
5028         * alias.c (find_base_decl): Delete redundent assignment.
5029
5030 2001-08-08  Graham Stott  <grahams@redhat.com>
5031
5032         * dependence.c (INDEX_LIMIT_CHECK): Uppercase macro parameter.
5033         (abs): Uppercase and paranthesize macro parameter.
5034         (MEM_DEPENDENCY): Add whitespace.
5035
5036 2001-08-08  Graham Stott  <grahams@redhat.com>
5037
5038         * config/mips/mips.c (mips_legitimate_address_p): Fix enable checking
5039         failure check for CONST_INT
5040
5041 2001-08-08  Graham Stott  <grahams@redhat.com>
5042
5043         * flow.c (back_edge_of_syntactic_loop_p): Add whitespace.
5044         (libcall_dead_p): Likewise.
5045
5046         (mark_used_regs): Constify fmt.
5047         (find_use_as_address): Likewise.
5048
5049 2001-08-08  Graham Stott  <grahams@redhat.com>
5050
5051         * c-typeck.c (RESTORE_SPELLING_DEPTH): Uppercase and parenthesize macro
5052          parameter.
5053
5054 2001-08-08  Graham Stott  <grahams@redhat.com>
5055
5056         * combine.c (combine_simplify_rtx): Update comment and
5057         remove erroneous test.
5058
5059 2001-08-07  Neil Booth  <neil@daikokuya.demon.co.uk>
5060
5061         * cppinit.c (cpp_finish): Pop the final buffer without comment.
5062         * cpplex.c (_cpp_lex_token): Don't pop the final buffer; and
5063         take care to avoid multiple no-newline at EOF warnings in that
5064         case.
5065
5066 Tue Aug  7 22:18:06 CEST 2001  Jan Hubicka  <jh@suse.cz>
5067
5068         * calls.c (expand_call): Do not emit INSN_SETJMP note.
5069         (emit_library_call_value_1): Likewise.
5070         (emit_call_1): Emit REG_SETJMP note.
5071         * cse.c (cse_end_of_basic_block): Use REG_SETJMP instead
5072         of INSN_SETJMP
5073         * cselib.c (cselib_process_insn): Likewise.
5074         * flow.c (propagate_block): Likewise.
5075         * loop.c (find_and_verify_loops): Likewise.
5076         * reload.c (find_equiv_regs): Likewise.
5077         * reload1.c (reload): Likewise.
5078         * resource.c (mark_referenced_resources,
5079         mark_set_resources): Likewise.
5080         * sched-deps (sched_analyze_insn, sched_analyze): Likewise.
5081         * final.c (final_scan_insn): Remove NOTE_INSN_SETJMP.
5082         * haifa-sched.c (unlink_other_notes): Likewise.
5083         (reemit_notes): Likewise.
5084         * sched-ebb.c (sched_ebb): Likewise.
5085         * sched-rgc.c (sched_region): Likewise.
5086         * rtl.c (note_insn_name): Likewise.
5087         (reg_note_name): Add REG_SETJMP
5088         * rtl.h (reg_note): Add REG_SETJMP.
5089         (insn_note): Remove NOTE_INSN_SETJMP.
5090
5091         * profile.c (branch_prob): Add fake edges for setjmp.
5092
5093 2001-08-07  Daniel Jacobowitz  <drow@mvista.com>
5094
5095         * config.gcc: Quote target_cpu_default2 correctly for
5096         powerpc*-*-* targets.
5097
5098 2001-08-07  Neil Booth  <neil@daikokuya.demon.co.uk>
5099
5100         * cpplib.h, line-map.h: Update comments.
5101         * cppmain.c (printer_init): Move inline.
5102         (maybe_print_line, print_line): Take a map pointer.
5103         (cb_ident, cb_define, cb_undef, cb_include, cb_def_pragma): Update.
5104         (cb_file_change): Don't use prior value of print.map.
5105
5106 2001-08-07  David Edelsohn  <edelsohn@gnu.org>
5107
5108         * doc/install.texi: Document fine-grained multilib configuration.
5109
5110 Tue Aug  7 16:52:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
5111
5112         * rtlanal.c (find_first_parameter_load): Call note_stores
5113         only on the instructions.
5114
5115 Tue Aug  7 14:56:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
5116
5117         * alias.c (nonlocal_mentioned_p):
5118         Rename CONST_CALL_P to CONST_OR_PURE_CALL_P
5119         * calls.c (emit_call_1): Likewise.
5120         * cse.c (cse_insn, invalidate_skipped_block): Likewise.
5121         * cselib.c (cselib_process_insn): Likewise.
5122         * df.c (df_insns_modify): Likewise.
5123         * flow.c (need_fake_edge_p): Likewise.
5124         (propagate_one_insn): Likewise.
5125         * haifa-sched.c (reemit_notes): Likewise.
5126         * integrate.c (copy_insn_list): Likewise.
5127         * jump.c (delete_prior_computation): Likewise.
5128         * local-alloc.c (validate_equiv_mem): Likewise.
5129         * loop.c (scan_loop): Likewise.
5130         * predict.c (estimate_probability): Likewise.
5131         * reload.c (reload): Likewise.
5132         * sched-deps (sched_analyze): Likewise.
5133         * rtl.h (CONST_CALL_P): rename to CONST_OR_PURE_CALL_P.
5134         * gcse.c (compute_hash_table): Likewise.
5135         (mark_call): Likewise.
5136         (store_killed_in_insn): Likewise.
5137
5138 2001-08-07  Jason Merrill  <jason_merrill@redhat.com>
5139
5140         * c-semantics.c (make_rtl_for_local_static): Use DECL_RTL_SET_P.
5141
5142 2001-08-06  Richard Henderson  <rth@redhat.com>
5143
5144         * varasm.c (assemble_gc_entry): Remove.
5145         * output.h: Likewise.
5146
5147 2001-08-06  Richard Henderson  <rth@redhat.com>
5148
5149         * varasm.c (assemble_constructor): Take a symbol_ref and a
5150         priority instead of a bare string.  Move priority handling
5151         here from cp/decl2.c.
5152         * output.h: Update decls.
5153
5154         * c-decl.c (c_expand_body): Update calls to assemble_constructor
5155         and assemble_destructor.
5156         * profile.c (output_func_start_profiler): Likewise.
5157         * objc/objc-act.c (finish_objc): Likewise.
5158         (build_module_descriptor): Return the symbol not the symbol name.
5159
5160 2001-08-06  David Edelsohn  <edelsohn@gnu.org>
5161
5162         * config/rs6000/darwin.h (DOUBLE_INT_ASM_OP): Add whitespace.
5163         * config/rs6000/linux64.h (RS6000_MCOUNT): Define.
5164         ({SAVE,RESTORE}_FP_{PREFFIX,SUFFIX}): Define.
5165         * config/rs6000/rs6000.h (ASM_OUTPUT_DOUBLE_INT): Remove whitespace.
5166         * config/rs6000/sysv4.h (DOUBLE_INT_ASM_OP): Add whitespace.
5167         * config/rs6000/xcoff.h (DOUBLE_INT_ASM_OP): Add whitespace.
5168
5169 2001-08-06  Neil Booth  <neil@daikokuya.demon.co.uk>
5170
5171         * cpperror.c (print_containing_files): Moved to line-map.c.
5172         (print_location): line-map.c handles re-listing or otherwise.
5173         * cpphash.h (struct lexer_state): Remove next_bol.
5174         (struct cpp_buffer): Remove include_stack_listed.
5175         * cpplib.c (do_line, cpp_push_buffer, _cpp_pop_buffer):
5176         Remove faked buffer handling.
5177         (_cpp_do_file_change): Tweak.
5178         * cpplib.h (enum cpp_buffer_type): Remove BUF_FAKE.
5179         * cppmain.c (struct printer): Remove filename.
5180         (print_line, cb_file_change): Update accordingly.
5181         * line-map.c: Include intl.h.
5182         (init_line_maps): Initialize last_listed.
5183         (free_line_maps): Sanity check, warn if ENABLED_CHECKING.
5184         (add_line_map): Sanity check inputs, warn if ENABLED_CHECKING.
5185         (print_containing_files): New.
5186         * line-map.h (struct line_maps): New member last_listed.
5187         (print_containing_files, INCLUDED_FROM): New.
5188         * Makefile.in: Update.
5189         * po/POTFILES.in: Add line-map.c.
5190
5191 2001-08-06  Richard Henderson  <rth@redhat.com>
5192
5193         * except.c (convert_from_eh_region_ranges_1): Never mark
5194         USE or CLOBBER insns as throwing.
5195
5196         * expr.c (store_constructor): Don't clobber memory targets.
5197
5198 2001-08-06  Andreas Jaeger  <aj@suse.de>
5199
5200         * profile.c (branch_prob): Remove unused variable insn.
5201
5202         * Makefile.in (local-alloc.o): Add dependency on except.h.
5203
5204         * local-alloc.c: Include except.h for can_throw_internal prototype.
5205
5206 2001-08-06  Richard Henderson  <rth@redhat.com>
5207
5208         * config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New.
5209         * function.c (expand_main_function): Implement it.
5210         * doc/tm.texi: Document it.
5211
5212 2001-08-06  Stan Shebs  <shebs@apple.com>
5213
5214         * doc/install.texi: Document powerpc-*-darwin* details.
5215
5216 2001-08-06  Daniel Berlin  <dan@cgsoftware.com>
5217
5218         * config/rs6000/aix.h (CPP_CPU_SPEC): Move back to rs6000.h
5219         (ASM_CPU_SPEC): Move back to rs6000.h
5220         #undef CPP_DEFAULT_SPEC and ASM_DEFAULT_SPEC before redefining them.
5221
5222         * config/rs6000/darwin.h (DOUBLE_INT_ASM_OP): New macro.
5223
5224         * config/rs6000/linux.h: Remove vtable thunks stuff we accidently
5225         readded.
5226
5227         * config/rs6000/linux64.h: Ditto.
5228
5229         * config/rs6000/rs6000.h: Move CPP_CPU_SPEC and ASM_CPU_SPEC back
5230         to here. Define default ASM_DEFAULT_SPEC and CPP_DEFAULT SPEC to
5231         nothing.
5232
5233         Remove accidently readded definitions of FUNCTION_PROLOGUE,
5234         FUNCTION_EPILOGUE,  ASM_OPEN_PAREN, ASM_CLOSE_PAREN
5235
5236         * config/rs6000/sysv4.h: Move CPP_CPU_SPEC and ASM_CPU_SPEC back
5237         to rs6000.h
5238
5239 2001-08-05  Richard Henderson  <rth@redhat.com>
5240
5241         * local-alloc.c (update_equiv_regs): Do not move insns that
5242         can throw.
5243
5244 2001-08-05  Jan Hubicka  <jh@suse.cz>
5245
5246         * Makefile.in (reload1.o): Add dedendancy on except.h
5247         * basic-block.h (purge_all_dead_edges, purge_dead_edges): Update
5248         prototypes.
5249         * flow.c (purge_dead_edges, purge_all_dead_edges): Return bool
5250         indicating wehther edges has been cleaned up.
5251         * reload1.c: Inlucde except.h
5252         (fixup_abnormal_edges): Accept deleted insns.
5253         * toplev.c (rest_of_compilation): Purge dead edges unconditionally
5254         after combine.
5255
5256 2001-08-06  Neil Booth  <neil@daikokuya.demon.co.uk>
5257
5258         * cpplib.c (do_line): Correct line number after pop_buffer.
5259
5260 2001-08-05  Neil Booth  <neil@daikokuya.demon.co.uk>
5261
5262         PR preprocessor/3824
5263         * line-map.c: Update comments.
5264         * line-map.h: Update comments.
5265         * tradcif.y: Don't consider large numbers unsigned.
5266
5267 2001-08-05  Neil Booth  <neil@daikokuya.demon.co.uk>
5268
5269         PR preprocessor/3081
5270         * c-lex.c (map): New.
5271         (cb_file_change): Update map and use it.
5272         (cb_def_pragma, cb_define, cb_undef): Use map and line.
5273         (c_lex): Update to use map.
5274         * cpperror.c (print_location): Move to using logical line numbers.
5275         * cppfiles.c (stack_include_file): Update for new _cpp_do_file_change.
5276         (cpp_make_system_header): Similarly.
5277         (_cpp_execute_include): Stop line numbering hacks.  Store the
5278         line we will return to.
5279         * cpphash.h (CPP_BUF_LINE): Remove.
5280         (struct cpp_buffer): Remove lineno and pseudo_newlines.
5281         Add map and return_to_line.
5282         (_cpp_do_file_change): Update.
5283         * cppinit.c (cpp_start_read): Update line kludge.
5284         * cpplex.c (handle_newline): Don't update lineno and pseudo_newlines.
5285         (trigraph_ok): Use logical line numbers for diagnostics.
5286         (skip_block_comment): Likewise.
5287         (skip_whitespace): Likewise.
5288         (skip_line_comment): Use pfile->line instead.
5289         (_cpp_lex_token): Update to use logical line numbering exclusively.
5290         Handle BOL locally.  Accept new lines in directives, but keep
5291         pfile->line decremented.  Diagnostics use logical lines.  Update
5292         directive handling.
5293         * cpplib.c (SEEN_EOL): New.
5294         (skip_rest_of_line, check_eol): Use it.
5295         (end_directive): Increase line number when accepting the newline
5296         at the end of a directive.
5297         (run_directive): Simplify.
5298         (do_line): Bad LC_LEAVEs become LC_RENAMEs.  Update.
5299         (_cpp_do_file_change): Update to take buffer line number as an
5300         argument, and store the current map in the cpp_reader.  Remove
5301         line number kludges.
5302         (_cpp_do__Pragma): Restore output position after a _Pragma.
5303         (cpp_push_buffer): Don't set output line or lineno.
5304         (_cpp_pop_buffer): Transfer more info from a faked buffer.
5305         Remove line kludge.  Set output_line.
5306         * cppmacro.c (builtin_macro): Update handling of __LINE__.
5307         (parse_arg): Use logical lines.
5308         (save_lookahead_token): Save EOFs too now.
5309         * cppmain.c (struct printer): Fix comments.
5310         (printer_init): Simplify, let caller do errors.
5311         (scan_translation_unit, check_multiline_token, dump_macro): Update.
5312         (maybe_print_line): Simplify.
5313         (print_line): Don't print a linemarker if -P.
5314         (cb_define, cb_undef, cb_def_pragma, cb_ident, cb_include): Update.
5315         (cb_file_change): Simplify.
5316         * line-map.h (LAST_SOURCE_LINE): Fix.
5317         (CURRENT_LINE_MAP): New.
5318
5319 2001-08-05  Bernd Schmidt  <bernds@redhat.com>
5320
5321         * doloop.c (doloop_modify_runtime): Properly compute number of
5322         iterations if loop was unrolled.
5323
5324         * alias.c (rtx_equal_for_memref_p): VALUEs are only identical
5325         if their CSELIB_VAL_PTRs are.
5326
5327         * config/ia64/ia64.c (struct spill_fill_data): New member prev_insn.
5328         (setup_spill_pointers): Initialize it.
5329         (spill_restore_mem): Set it.
5330         (do_spill, do_restore): Use it to add REG_INC note.
5331         * config/ia64/ia64.md (movti_internal): Add REG_INC notes as needed.
5332
5333         * config/ia64/ia64.c (ia64_sched_reorder): Defer scheduling of
5334         asms if other insns are available.
5335
5336         * config/ia64/ia64.c (condop_operator): New predicate.
5337         * config/ia64/ia64.h (PREDICATE_CODES): Add it.
5338         * config/ia64/ia64.md (cond_opsi2_internal and splitters): New
5339         patterns.
5340
5341         * expr.c (expand_expr, case COND_EXPR): Prefer working with a
5342         temporary register than directly using a MEM.
5343
5344 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
5345
5346         * config/sh/sh.c (sh_asm_named_section): Fix typo in align
5347         parameter in last change.
5348
5349 2001-08-04  Zack Weinberg  <zackw@panix.com>
5350
5351         * sparc.md: Don't use #if inside C test expression.
5352
5353 2001-08-04  Richard Henderson  <rth@redhat.com>
5354
5355         * i386.c: Revert 07-30 ix86_output_main_function_alignment_hack.
5356
5357 2001-08-04  Neil Booth  <neil@daikokuya.demon.co.uk>
5358
5359         * cpphash.h (struct cpp_reader): New member directive_line.
5360         * cpplib.h (struct cpp_callbacks): Update prototypes of callbacks.
5361         * cpplib.c (do_define, do_undef, do_ident, do_include_common,
5362         do_pragma): Pass line to callbacks.
5363         (start_directive): Record line of directive.
5364         * cppmain.c (cb_ident, cb_define, cb_undef, cb_def_pragma,
5365         cb_include): Similarly.
5366         * c-lex.c (cb_ident, cb_define, cb_undef, cb_def_pragma):
5367         Similarly.
5368
5369 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
5370
5371         * config/d30v/d30v.h: Fix typo in start of UNIQUE_SECTION
5372         comment.
5373
5374 Sat Aug  4 13:51:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
5375
5376         * loop.c (try_copy_prop); Kill invalidated REG_EQUAL notes.
5377
5378         * reload1.c (fixup_abnormal_edges): New static function.
5379         (reload): Use it.
5380
5381         * flow.c (need_fake_edge_p): New function.
5382         (flow_call_edges_add): Fix handling of noreturn and sibbling calls;
5383         avoid call insn to be very last insn in the insn stream.
5384
5385         * profile.c (branch_prob): Call flow_call_edges_add instead of
5386         doing that by hand; cleanup cfg to re-merge basic blocks once
5387         we are done.
5388
5389 2001-08-04  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
5390
5391         * Makefile.in (CPPLIB_H): New, so that dependencies on cpplib.h
5392         are also on line-map.h.
5393         * cppfiles.c (stack_include_file): Update.
5394         * cpphash.h (struct cpp_buffer): New member return_at_eof.
5395         (_cpp_pop_buffer): New.
5396         * cppinit.c (cpp_destroy, cpp_finish): Update.
5397         (do_includes): Mark each buffer to return at EOF.
5398         * cpplex.c (_cpp_lex_token): Pop buffers at EOF.  Continue or
5399         return as requested.
5400         * cpplib.c (run_directive, do_line, cpp_push_buffer): Update.
5401         (cpp_pop_buffer): Rename _cpp_pop_buffer.  Stop skipping.
5402         * cpplib.h (cpp_pop_buffer): Remove.
5403         (cpp_scan_buffer_nooutput): Rename cpp_scan_nooutput.
5404         * cppmacro.c (cpp_scan_buffer_nooutput): Similarly.  No need to pop
5405         buffers.
5406         * cppmain.c (scan_buffer): Rename scan_translation_unit.  No need
5407         to pop buffers.
5408         (do_preprocessing): Update.
5409         * fix-header.c (read_scan_file): Update.  No need to pop buffers.
5410         * c-parse.in (_yylex): Similarly.
5411         * scan-decls.c (scan_decls): Similarly.
5412         * line-map.h: Update comments.
5413
5414         * objc/Make-lang.in (objc-act.o): Update dependencies.
5415
5416 2001-08-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5417
5418         * config/m68hc11/m68hc11.md ("cmphi_1", "cmpqi_1"): Allow memory
5419         and soft register for operand 0.
5420         ("cmphi_z_used", "cmpqi_z_used"): Allow memory for operand 0.
5421
5422 2001-08-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5423
5424         * config/m68hc11/m68hc11.md ("bitcmpqi"): Allow memory and soft
5425         register for operand 0.
5426         ("bitcmpqi_z_used"): Allow memory for operand 0.
5427         (split "bitcmpqi"): New split to handle address reg as operand 1.
5428
5429 2001-08-04  Andreas Jaeger  <aj@suse.de>
5430
5431         * gcse.c: Revert Daniel's last patch.
5432
5433 2001-08-03  Zack Weinberg  <zackw@stanford.edu>
5434
5435         * sparc-protos.h: Add prototypes for fp_zero_operand and
5436         reg_or_0_operand.
5437         * sh-protos.h: Add prototype for fpul_operand.
5438
5439 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
5440
5441         * doc/extend.texi (Other Builtins): Fix typo in last change.
5442
5443 2001-08-03  Richard Henderson  <rth@redhat.com>
5444
5445         * target.h (gcc_target): Add asm_out.named_section,
5446         section_type_flags, have_named_sections.
5447         * target-def.h (TARGET_ASM_NAMED_SECTION): New.
5448         (TARGET_HAVE_NAMED_SECTIONS): New.
5449         (TARGET_SECTION_TYPE_FLAGS): New.
5450
5451         * Makefile.in (toplev.o): Depend on TARGET_H.
5452         (varasm.o, dbxout.o): Likewise.
5453         * c-common.c (decl_attributes): Check targetm.have_named_sections
5454         instead of ifdef ASM_OUTPUT_SECTION_NAME.
5455         * dbxout.c (dbxout_function_decl): Likewise.
5456         (dbxout_function_end): Likewise.
5457         * toplev.c (compile_file): Likewise.
5458         * varasm.c (exception_section): Likewise.
5459         * cp/decl2.c (finish_objects): Likewise.
5460
5461         * defaults.h (EH_FRAME_SECTION): Remove.
5462         (EH_FRAME_SECTION_ASM_OP): Remove.
5463         (EH_FRAME_SECTION_NAME): New.
5464         (UNIQUE_SECTION): Don't depend on ASM_OUTPUT_SECTION_NAME.
5465         (UNIQUE_SECTION_P): Remove.
5466         * dwarf2out.c (SECTION_FORMAT): Remove.
5467         (ASM_OUTPUT_SECTION): Remove.
5468         (output_call_frame_info): Use named_section_flags.
5469         (output_comp_unit, dwarf2out_start_source_file): Likewise.
5470         (dwarf2out_end_source_file, dwarf2out_define): Likewise.
5471         (dwarf2out_undef, dwarf2out_init, dwarf2out_finish): Likewise.
5472         * varasm.c (in_eh_frame, eh_frame_section): Remove.
5473         (named_section_flags): New.
5474         (named_section): Use it and targetm.section_type_flags.
5475         (resolve_unique_section): New.
5476         (assemble_start_function): Use it.
5477         (asm_emit_uninitialised, assemble_variable): Likewise.
5478         (default_section_type_flags): New.
5479         (default_no_named_section, default_elf_asm_named_section): New.
5480         (default_coff_asm_named_section, default_pe_asm_named_section): New.
5481         * output.h: Update varasm.c decls.
5482         (SECTION_*): New flags.
5483
5484         * crtstuff.c: Check EH_FRAME_SECTION_NAME not EH_FRAME_SECTION_ASM_OP.
5485         (__EH_FRAME_BEGIN__, __FRAME_END__): Use attribute section.
5486
5487         * config/elfos.h (UNIQUE_SECTION_P): Remove.
5488         * config/alpha/elf.h, config/arm/linux-elf.h: Likewise.
5489         * config/arm/pe.h, config/arm/unknown-elf.h: Likewise.
5490         * config/i386/cygwin.h, config/i386/djgpp.h: Likewise.
5491         * config/i386/i386-interix.h, config/i386/win32.h: Likewise.
5492         * config/ia64/sysv4.h, config/mcore/mcore-pe.h: Likewise.
5493         * config/mips/elf.h, config/mips/elf64.h: Likewise.
5494         * config/mips/iris6gld.h, config/mips/mips.h: Likewise.
5495         * config/pa/pa64-hpux.h,
5496
5497         * config/elfos.h (ASM_OUTPUT_SECTION_NAME): Remove.
5498         (TARGET_ASM_NAMED_SECTION): New.
5499         * config/psos.h, config/a29k/a29k.h, config/alpha/elf.h: Likewise.
5500         * config/alpha/vms.h, config/arm/coff.h: Likewise.
5501         * config/arm/conix-elf.h, config/arm/elf.h: Likewise.
5502         * config/arm/linux-elf.h, config/arm/pe.h: Likewise.
5503         * config/arm/unknown-elf.h, config/avr/avr.h: Likewise.
5504         * config/c4x/c4x.h, config/h8300/h8300.h: Likewise.
5505         * config/i386/cygwin.h, config/i386/djgpp.h: Likewise.
5506         * config/i386/i386-interix.h, config/i386/i386elf.h : Likewise.
5507         * config/i386/sco5.h, config/i386/win32.h: Likewise.
5508         * config/m68k/coff.h, config/mcore/mcore-pe.h: Likewise.
5509         * config/mcore/mcore.h, config/mips/elf.h: Likewise.
5510         * config/mips/elf64.h, config/mips/iris6.h: Likewise.
5511         * config/mips/netbsd.h, config/mips/openbsd.h: Likewise.
5512         * config/pa/pa64-hpux.h, config/rs6000/sysv4.h: Likewise.
5513         * config/rs6000/xcoff.h, config/sh/sh.h: Likewise.
5514         * config/sparc/sysv4.h: Likewise.
5515
5516         * config/nextstep.h: Error until named sections implemented.
5517
5518         * config/a29k/a29k.c (a29k_asm_named_section): New.
5519         * config/alpha/alpha.c (SECTION_VMS_OVERLAY): New.
5520         (vms_section_type_flags, vms_asm_named_section): New.
5521         * config/arm/arm.c (arm_elf_asm_named_section): New.
5522         * config/avr/avr.c (asm_output_section_name): Remove.
5523         * config/avr/avr-protos.h: Update.
5524         * config/c4x/c4x.c (c4x_asm_named_section): New.
5525         * config/h8300/h8300.c (h8300_asm_named_section): New.
5526         * config/i386/i386.c (sco_asm_named_section): New.
5527         * config/i386/winnt.c (SECTION_PE_SHARED): New.
5528         (i386_pe_section_type_flags): New.
5529         (i386_pe_asm_named_section): New.
5530         * config/i386/i386-protos.h: Update.
5531         * config/m68k/m68k.c (m68k_coff_asm_named_section): New.
5532         * config/mcore/mcore.c (mcore_asm_named_section): New.
5533         * config/mips/mips.c (iris6_asm_named_section): New.
5534         * config/mips/mips.h (ENCODE_SECTION_INFO): Use DECL_ONE_ONLY
5535         instead of UNIQUE_SECTION_P.
5536         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): New.
5537         (xcoff_asm_named_section): New.
5538         * config/sh/sh.c (sh_asm_named_section): New.
5539         * config/sparc/sparc.c (sparc_elf_asm_named_section): New.
5540
5541         * config/i386/djgpp.h (EH_FRAME_SECTION_ASM_OP): Remove.
5542         * config/i386/sco5.h (EH_FRAME_SECTION_ASM_OP*): Remove.
5543         (EH_FRAME_SECTION_NAME): New.
5544         (EXCEPTION_SECTION): New.
5545         * config/ia64/ia64.h (EH_FRAME_SECTION_ASM_OP): Remove.
5546         (DEBUG_*_SECTION): Remove.
5547         * config/m68k/rtemself.h (EH_FRAME_SECTION_ASM_OP): Remove.
5548         * config/mips/iris6.h (DEBUG_*_SECTION): Remove.
5549         (EH_FRAME_SECTION_ASM_OP): Remove.
5550
5551         * doc/tm.texi (UNIQUE_SECTION_P): Remove.
5552         (ASM_OUTPUT_SECTION_NAME): Remove.
5553         (TARGET_ASM_NAMED_SECTION): New.
5554         (TARGET_HAVE_NAMED_SECTIONS): New.
5555         (TARGET_SECTION_TYPE_FLAGS): New.
5556         (EH_FRAME_SECTION_ASM_OP): Remove.
5557         (EH_FRAME_SECTION_NAME): New.
5558
5559 2001-08-03  Zack Weinberg  <zackw@stanford.edu>
5560
5561         * builtins.c (fold_builtin_constant_p): Return integer_zero_node
5562         for complex expressions when cfun == 0.
5563         * doc/extend.texi: Document that __builtin_constant_p can be
5564         used in data initializers as well as functions.
5565
5566 2001-08-03  Alexandre Oliva  <aoliva@redhat.com>
5567
5568         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Declare
5569         variable I locally, instead of expecting a declaration in the
5570         calling context.
5571
5572 2001-08-03  Richard Henderson  <rth@redhat.com>
5573
5574         * except.c (collect_one_action_chain): Add an explicit cleanup
5575         action if regions surrounding a catch were encoded entirely
5576         within the call-site entry.
5577
5578 2001-08-03  Richard Henderson  <rth@redhat.com>
5579
5580         * dbxout.c (dbxout_symbol_location): Flatten subregs first;
5581         don't take REGNO of a non-register.
5582
5583 2001-08-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5584
5585         * gthr-dce.h (__GTHREAD_MUTEX_INIT_FUNCTION and
5586         __GTHREAD_MUTEX_INIT_DEFAULT): New macros for mutex initialization.
5587         (__gthread_key_delete): Remove code for __PTHREAD_LIBRARY_VERSION_1 >= 1
5588         (__gthread_mutex_init_function): New function for mutex initialization.
5589
5590 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
5591
5592         * Makefile.in: Revert screwed up commit.
5593
5594 2001-08-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
5595
5596         * config/m68hc11/t-m68hc11-gas (T_CPPFLAGS): Add _ctor and _dtor.
5597         * config/m68hc11/larith.asm (_exit): Split in several sub-sections
5598         merged by linker script to get a final _exit().
5599         (__do_global_dtors): New for destructor handling in specific exit
5600         section.
5601         (__do_global_ctors): New for constructors in specific install section.
5602         (__map_data_section): Map data sections before running constructors.
5603         * config/m68hc11/m68hc11.h (INT_ASM_OP): Define to use .word.
5604         (CTORS_SECTION_ASM_OP): Define to put in readonly section.
5605         (DTORS_SECTION_ASM_OP): Likewise.
5606         (CTORS_SECTION_FUNCTION): Define to force a reference to
5607         __do_global_ctors.
5608         (DTORS_SECTION_FUNCTION): Likewise for __do_global_dtors.
5609
5610 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
5611
5612         * ChangeLog: Fix date on previous ChangeLog entry for GCSE.
5613
5614         * Makefile.in: Add df.h to gcse.c dependencies.
5615
5616 2001-08-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5617
5618         * varasm.c (output_constant_def_contents): Use for the length of a
5619         string constant either its TREE_STRING_LENGTH or its int_size_in_bytes
5620         depending on which is larger.
5621
5622 2001-08-03  Daniel Berlin  <dan@cgsoftware.com>
5623
5624         * gcse.c: Include df.h for use as a dataflow analyzer.
5625         Remove regvec.
5626         Declaration of reg_set_info: gone.
5627         New df_analyzer variable used by store motion.
5628         (reg_set_info): Deleted.
5629         (mark_mem_regs): New function, analyze regs used by a mem.
5630         (store_ops_ok): Use dataflow analyzer results to determine if
5631         necessary regs are changed in the block.
5632         (find_moveable_store): Remove check for symbol ref, we can handle
5633         much more complex expressions now.
5634         (compute_store_table): Remove most of the code, it's unnecessary
5635         now that the dataflow analyzer records the info for us.
5636         (store_killed_after): Add parameter to say whether to do the
5637         store_ops_okay test, used to speed up testing when we already know
5638         the answer, and just want to know if the store itself was killed.
5639         (build_store_vector): Largely rewritten to calculate the various
5640         vectors properly, and somewhat optimized.
5641         (store_motion): Init the df_analyzer, get REG_DEF chains.
5642         Also handle trapping expressions (since mems almost always trap)
5643         (simple_mem): Redefine what a simple mem is.
5644
5645 2001-08-03  DJ Delorie  <dj@redhat.com>
5646
5647         * ifcvt.c (noce_get_alt_condition): Don't make an auxiliary
5648         set from a constant part of the condition.
5649
5650 2001-08-01  Andrew Cagney  <ac131313@redhat.com>
5651
5652         * mkdeps.c (deps_add_default_target): Make local variable
5653         ``start'' a const char pointer.
5654         * dwarf2out.c (compute_section_prefix): Localize use of ``p''.
5655
5656 2001-08-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5657
5658         * doc/install.texi (Configuration): Fix markup.
5659         (Specific, i?86-*-udk): Likewise.
5660         (Specific, alpha*-dec-osf*): Warn against --with-gnu-as,
5661         --with-gnu-ld.
5662         Document --enable-threads and --enable-libgcj status.
5663         (Specific, mips-sgi-irix*): Canonicalize triples.
5664         (Specific, mips-sgi-irix5): Warn about problems with this config.
5665         Mention required GNU as patch.
5666         Native assembler problems are fixed.
5667         (Specific, mips-sgi-irix6): Update O32 ABI support status.
5668         Document --enable-threads and --enable-libgcj status.
5669
5670 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
5671
5672         * Makefile.in, mklibgcc.in: Restore changes with fixed invocation
5673         of mkinstalldirs.
5674
5675 2001-08-03  Richard Henderson  <rth@redhat.com>
5676
5677         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't write to
5678         constant data.
5679
5680 2001-08-03  Richard Henderson  <rth@redhat.com>
5681
5682         * rtlanal.c (find_first_parameter_load): Stop if we
5683         reach a CODE_LABEL at BOUNDARY.
5684
5685 2001-08-03  Richard Henderson  <rth@redhat.com>
5686
5687         * config/alpha/alpha.md (force_movdi): New insn.
5688         * config/alpha/alpha.c (alpha_expand_prologue): Use it.
5689         Tweek FRP marking of VMS prologue insns.
5690         * config/alpha/vms.h (EPILOGUE_USES): New.
5691
5692 2001-08-02  Richard Henderson  <rth@redhat.com>
5693
5694         * Makefile.in, mklibgcc.in: Revert mkinstalldirs change.
5695
5696 2001-08-02  Lars Brinkhoff  <lars@nocrew.org>
5697
5698         * combine.c, config.gcc, cse.c, defaults.h, real.c, reload.c,
5699         simplify-rtx.c, config/alpha/alpha.h, config/avr/avr.h,
5700         config/convex/convex.h, config/d30v/d30v.c,
5701         config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
5702         config/elxsi/elxsi.h, config/fr30/fr30.h, config/m88k/m88k.c,
5703         config/mips/mips.h, config/mn10200/mn10200.h,
5704         config/mn10300/mn10300.h, config/pdp11/pdp11.md,
5705         config/v850/v850.h, config/vax/openbsd.h,
5706         config/vax/openbsd1.h, config/vax/ultrix.h,
5707         config/vax/vax-protos.h, config/vax/vax.c, config/vax/vax.h,
5708         config/vax/vax.md, config/vax/vaxv.h, config/vax/xm-vms.h,
5709         cp/decl2.c, doc/contrib.texi, doc/cpp.texi, doc/gcc.texi,
5710         doc/install.texi, doc/invoke.texi, doc/md.texi, doc/rtl.texi,
5711         doc/tm.texi: consistently use "VAX", "VAXen", and "MicroVAX"
5712         in comments and documentation.
5713
5714 2001-08-03  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
5715
5716         * line-map.c: New.
5717         * line-map.h: New.
5718         * Makefile.in (line-map.o): New.
5719         (LIBCPP_OBJS, LIBCPP_DEPS): Update.
5720         * c-lex.c (cb_file_change): Update for new cpp_file_change structure.
5721         * cpperror.c (print_containing_files): Similarly.
5722         (print_location): Update.  Don't output a space before _Pragma.
5723         * cppfiles.c (stack_include_file): Set to line 1 immediately.
5724         (stack_include_filee, cpp_make_system_header): Update.
5725         (_cpp_execute_include): Get logical line number right for calling
5726         as-yet-unterminated #include.
5727         * cpphash.h (struct cpp_reader): Add line_maps.
5728         (_cpp_do_file_change): Update.
5729         * cppinit.c (cpp_create_reader): Initialize line maps.
5730         (cpp_destroy): Destroy line maps.
5731         (cpp_start_read): Get logical line number right.
5732         * cpplex.c (parse_string): Only warn once for multi-line strings.
5733         Use boolean variable for null warning.
5734         * cpplib.c (_cpp_handle_directive): End the directive if it isn't
5735         already.
5736         (do_include_common): End the directive early.
5737         (do_line): Don't warn about out-of-range lines in preprocessed
5738         source.  Update.  Remove unused variables.
5739         (_cpp_do_file_change): Update for new line mapping.
5740         (pragma_cb): New typedef.
5741         (cpp_register_pragma): Stop looking ahead before calling the
5742         handler.  Clean up.
5743         (do_pragma_system_header): End directive early.
5744         (cpp_get_line_maps): New.
5745         (cpp_pop_buffer): Fudge logical line.  Update.
5746         * cpplib.h: Include line-map.h
5747         (enum cpp_fc_reason): Remove.
5748         (struct cpp_file_change): Update.
5749         (cpp_get_line_maps): New.
5750         * cppmain.c (struct_printer): New member map.
5751         (cb_file_change): Update for new mappings.
5752         * fix-header.c (cb_file_change): Similarly.
5753
5754 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
5755
5756         * Makefile.in (libgcc.mk): Define mkinstalldirs.
5757         * mklibgcc.in: Use mkinstalldirs instead of mkdir.
5758
5759 2001-08-02  Lars Brinkhoff  <lars@nocrew.org>
5760
5761         * config/vax/vax.c: include expr.h.
5762
5763 2001-08-02  Nick Clifton  <nickc@cambridge.redhat.com>
5764
5765         * Makefile.in ($(srcdir)/configure): Only rebuild in
5766         maintainer mode.
5767         ($(srcdir)/config.in): Only define in maintainer mode.
5768         ($(srcdir)/cstamp-h.in): Only define in maintainer mode.
5769
5770 2001-08-02  David Edelsohn  <edelsohn@gnu.org>
5771
5772         * doc/install.texi (Install GCC: Binaries): Update Bull info.
5773
5774 2001-08-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5775
5776         * gcc.c (set_collect_gcc_options): New function, split out from
5777         main.
5778         Ignore elided switches.
5779         (do_spec_1): Invoke before executing command.
5780         (set_input): Export.
5781         Move declaration ...
5782         * gcc.h (set_input): ... here.
5783         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %U.s to refer to input
5784         file.
5785
5786 2001-08-02  Nathan Sidwell  <nathan@codesourcery.com>
5787
5788         Kill -fhonor-std.
5789         * doc/c-tree.texi (Namespaces): Remove std & -fhonor-std
5790         interaction.
5791         * doc/invoke.texi (C++ Dialect Options): Remove -fno-honor-std.
5792
5793 2001-08-02  Richard Sandiford  <rsandifo@redhat.com>
5794
5795         * mips.md (movdicc): Make conditional on TARGET_64BIT.  Likewise
5796         for the unnamed instructions it expands to.
5797
5798 2001-08-02  Richard Henderson  <rth@redhat.com>
5799
5800         * regclass.c (call_really_used_regs): Conditionally define.
5801         (init_reg_sets_1): Don't use it if not defined.
5802         (fix_register): Similarly, don't set it.
5803
5804 2001-08-01  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5805
5806         * params.def (PARAM_MAX_INLINE_INSNS): Change default to 600.
5807         Correct comment that had been missed in the previous change.
5808
5809 2001-08-01  Stan Shebs  <shebs@apple.com>
5810
5811         * config/darwin.c (machopic_stub_name): Try matching by name.
5812         (update_stubs): New function.
5813         (darwin_encode_section_info):  Call it and update_non_lazy_ptrs
5814         unconditionally.
5815
5816 2001-08-01  Richard Henderson  <rth@redhat.com>
5817
5818         * except.c (output_function_exception_table): Use assemble_align.
5819         * varasm.c (assemble_eh_label): Remove.
5820         (assemble_eh_align, assemble_eh_integer): Remove.
5821
5822 2001-08-01  Robert Lipe  <robertl@caldera.com>
5823
5824         * dwarfout.c: Remove reference to README.DWARF.
5825
5826 2001-08-01  Andrew MacLeod  <amacleod@redhat.com>
5827
5828         * regclass.c (call_really_used_regs): New array for registers which
5829         are actually used by a call.
5830         (init_reg_sets_1): Initialize regs_invalidated_by_call with the
5831         new array.
5832         (fix_register): Set call_really_used too.
5833         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): Initialize.
5834         * doc/tm.texi (CALL_REALLY_USED_REGISTERS): Document.
5835
5836 2001-08-01  Richard Henderson  <rth@redhat.com>
5837
5838         * read-rtl.c (read_name): Consider \r whitespace.
5839
5840 2001-07-11  Andrew Cagney  <ac131313@redhat.com>
5841
5842         * config.gcc: Recognize powerpc-*-netbsd*.
5843
5844         * doc/install.texi (Host/target specific installation notes for
5845         GCC): Mention powerpc-*-netbsd*.
5846
5847         * config/rs6000/netbsd.h: New file.
5848         (STANDARD_STARTFILE_PREFIX, LINK_SHLIB_SPEC): Redefine.
5849         (LIB_DEFAULT_SPEC, STARTFILE_DEFAULT_SPEC): Redefine.
5850         (ENDFILE_DEFAULT_SPEC, LINK_START_DEFAULT_SPEC): Redefine.
5851         (LINK_OS_DEFAULT_SPEC, CPP_OS_DEFAULT_SPEC): Redefine.
5852         (TARGET_VERSION): Redefine.
5853
5854         * config/rs6000/t-ppccomm (MULTILIB_MATCHES_SYSV): Recognize
5855         mcall-netbsd as a match for mcall-sysv.
5856         (EXTRA_MULTILIB_PARTS): Add ncrti$(objext) and ncrtn$(objext).
5857         (ncrti.S, ncrtn.S): New targets.
5858         ($(T)ncrti$(objext), $(T)ncrtn$(objext)): New targets.
5859
5860         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Recognize
5861         "netbsd' as a V4 ABI.
5862         (ASM_SPEC): Check for -mcall-netbsd.
5863         (CC1_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC): Ditto.
5864         (CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC): Ditto.
5865         (LIB_SPEC, ENDFILE_SPEC): Ditto.
5866         (LIB_NETBSD_SPEC, STARTFILE_NETBSD_SPEC): Define.
5867         (ENDFILE_NETBSD_SPEC, LINK_START_NETBSD_SPEC): Define.
5868         (LINK_OS_NETBSD_SPEC, CPP_OS_NETBSD_SPEC): Define.
5869         (SUBTARGET_EXTRA_SPECS): Add NetBSD specs.
5870
5871         * doc/invoke.texi (Option Summary): Add -mcall-netbsd.
5872         (RS/6000 and PowerPC Options): Mention -mcall-netbsd.
5873
5874 2001-08-01  Mark Kettenis  <kettenis@gnu.org>
5875
5876         * unwind-pe.h (base_of_encoded_value, read_encoded_value): Define
5877         only if NO_BASE_OF_ENCODED_VALUE isn't defined.
5878         * unwind-dw2-fde.c (NO_BASE_OF_ENCODED_VALUE): Define before
5879         including "unwind-pe.h".
5880
5881 Wed Aug  1 20:01:42 CEST 2001  Jan Hubicka  <jh@suse.cz>
5882
5883         * rs6000.md (define_splits): Kill unused constraints.
5884
5885 Wed Aug  1 20:02:12 CEST 2001 Graham Stott  <grahams@redhat.com>
5886                               Jan Hubicka  <jh@suse.cz>
5887
5888         * function.c (thread_prologue_and_epilogue_insns): Kill code
5889         dealing with non-existent CFG.
5890
5891 2001-08-01  Kazu Hirata  <kazu@hxi.com>
5892
5893         * alias.c: Fix comment formatting.
5894         * bitmap.c: Likewise.
5895         * builtins.c: Likewise.
5896         * calls.c: Likewise.
5897         * c-common.c: Likewise.
5898         * c-decl.c: Likewise.
5899         * c-dump.c: Likewise.
5900         * c-lex.c: Likewise.
5901         * collect2.c: Likewise.
5902         * combine.c: Likewise.
5903         * conflict.c: Likewise.
5904         * cppfiles.c: Likewise.
5905         * cppinit.c: Likewise.
5906         * cpplex.c: Likewise.
5907         * cpplib.c: Likewise.
5908         * cppmacro.c: Likewise.
5909         * cppspec.c: Likewise.
5910         * c-pragma.c: Likewise.
5911         * crtstuff.c: Likewise.
5912         * cse.c: Likewise.
5913         * cselib.c: Likewise.
5914         * c-semantics.c: Likewise.
5915         * c-typeck.c: Likewise.
5916
5917 2001-08-01  H.J. Lu <hjl@gnu.org>
5918
5919         * config/mips/linux.h (ASM_OUTPUT_IDENT): Defined.
5920
5921 2001-08-01  H.J. Lu <hjl@gnu.org>
5922
5923         * gcc/config/mips/linux.h (ASM_OUTPUT_SOURCE_LINE): Defined.
5924
5925 2001-08-01  Ziemowit Laski  <zlaski@apple.com>
5926
5927         * c-parse.in (OBJC_NEED_RAW_IDENTIFIER): Define macro and flag for
5928         contextualizing Objective-C class name lookup by the lexer.
5929         (typespec_reserved_nonattr): Disable ObjC class name lookup after
5930         seeing a TYPESPEC.
5931         (protocoldef): Add support for forward @protocol declarations.
5932         (yylexname): Suppress ObjC class name lookup in certain contexts;
5933         re-enable after lookup is complete.
5934         (_yylex): Re-enable ObjC class name lookup when certain
5935         punctuation marks are seen.
5936
5937         * objc/objc-act.c (check_protocol_recursively): New function used
5938         for finding circular dependencies in protocols.
5939         (objc_declare_protocols): New function for handling forward
5940         @protocol declarations.
5941         (receiver_is_class_object): Detect the case when 'self' is used
5942         inside of a class method.
5943         (build_message_expr): Issue a warning if class method is desired
5944         but instance method is found instead.
5945         (conforms_to_protocol): Streamline.
5946         (objc_comptypes): Detect the fact that 'Bar<Foo> foo' conforms to
5947         protocol Foo, even if 'Bar foo' does not.
5948         (check_protocols): Streamline.
5949         (start_protocol): Add checks for circular and duplicate protocol
5950         definitions.
5951         (encode_aggregate_within): For typedefs of structs, encode the
5952         underlying struct.
5953         * objc/objc-act.h (PROTOCOL_DEFINED): New tree accessor.
5954         (objc_declare_protocols): New prototype.
5955
5956 2001-08-01  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
5957
5958         * cpphash.h (struct cpp_reader): New members line, pseudo_newlines.
5959         * cpplex.c (handle_newline): Update prototype.  Maintain logical
5960         line number.
5961         (skip_escaped_newlines, skip_block_comment, parse_string):
5962         Update accordingly.
5963         (_cpp_lex_token): Update, and store token position within the token.
5964         * cpplib.h (struct cpp_token): Add line and column entries.
5965         * cppmacro.c (replace_args): Position stringified tokens correctly.
5966
5967 2001-08-01  Andreas Jaeger  <aj@suse.de>
5968
5969         * basic-block.h: Add prototype for last_loop_beg_note.
5970
5971 2001-07-31  Alexandre Petit-Bianco  <apbianco@redhat.com>
5972
5973         * expr.c (safe_from_p): Use WITH_CLEANUP_EXPR_RTL instead of
5974         RTL_EXPR_RTL while handling WITH_CLEANUP_EXPR nodes. Fixed typo in
5975         comment.
5976         (expand_expr): Use WITH_CLEANUP_EXPR_RTL instead of RTL_EXPR_RTL
5977         while handling WITH_CLEANUP_EXPR node. Use second operand calling
5978         expand_decl_cleanup.
5979         * tree.c (firt_rtl_op): The third operand of WITH_CLEANUP_EXPR is
5980         the first RTX.
5981         (simple_cst_equal): WITH_CLEANUP_EXPR node to use its second
5982         operand while calling simple_cst_equal.
5983         * tree.def (WITH_CLEANUP_EXPR): Switched operands: the second
5984         operand is the cleanup expression, the third is the RTL_EXPR.
5985         * tree.h (WITH_CLEANUP_EXPR_RTL): New macro.
5986
5987 2001-07-31  Jeff Sturm  <jsturm@one-point.com>
5988
5989         * except.c (duplicate_eh_regions): Test n_array[i] for NULL.
5990
5991 2001-07-31  matthew green  <mrg@eterna.com.au>
5992
5993         * config.gcc (i386-*-netbsdelf): New description.
5994         * config/i386/netbsd-elf.h: New file.
5995
5996 2001-07-30  Geoffrey Keating  <geoffk@redhat.com>
5997
5998         * loop.c (check_dbra_loop): Use single_set to compute
5999         jump_label.
6000
6001 2001-07-31  Daniel Berlin  <dan@cgsoftware.com>
6002
6003         PowerPC reorg and support for powerpc64-*-linux*.
6004
6005         Also fixes emitting of constants on 32 bit and 64 bit
6006         platforms.
6007
6008         * config.gcc: powerpc64-*-linux* is a new target.
6009         Things that needed aix.h now also include xcoff.h
6010
6011         * config/rs6000/rs6000.h: Split XCOFF specific stuff into
6012         xcoff.h.
6013         Move AIX specific stuff into aix.h.
6014         (TARGET_AIX): Renamed to TARGET_XCOFF, since the AIX ABI is used
6015         with more than just XCOFF now.
6016         (SET_ASM_OP): Remove, now defined where needed.
6017         (FUNCTION_PROLOGUE): New macro definition.
6018         (FUNCTION_EPILOGUE): New macro definition.
6019         (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): New macro definition.
6020
6021         * config/rs6000/xcoff.h: New file.
6022
6023         * config/rs6000/linux64.h: New file.
6024
6025         * config/rs6000/darwin.h: Copy needed AIX alignment definitions.
6026
6027 2001-07-31  Alan Modra  <amodra@bigpond.net.au>
6028
6029         * rs6000.c (print_operand_address): Handle ELF syntax.
6030         (output_toc): Simplify.  Use DOUBLE_INT_ASM_OP.
6031         * rs6000.md (load_toc_aix_di): Handle ELF syntax.
6032         * rs6000.h (ASM_OUTPUT_DOUBLE_INT, ASM_LONG): Use DOUBLE_INT_ASM_OP.
6033
6034 2001-07-31  David Edelsohn  <edelsohn@gnu.org>
6035
6036         * rs6000.c (rs6000_override_options): Only disable
6037         flag_function_sections for XCOFF.
6038         (exact_log2_cint_operand): New predicate.
6039         (reg_or_{add,sub}_cint64_operand): New predicates.
6040         (add_operand): Compare CONST_INT with fewer function calls.
6041         (rs6000_emit_set_const, rs6000_emit_set_long_const): New functions.
6042         (print_operand, case 'p'): Ensure positive operand.
6043         (rs6000_emit_load_toc_table): No load_toc_v4_pic_di.
6044         * rs6000.h (CONST_OK_FOR_LETTER_P, case 'N'): Ensure positive value.
6045         (PREDICATE_CODES): Add new predicates.
6046         * rs6000.md (addsi3): Split 32-bit constants more correctly.
6047         (divsi3, modsi3): Ensure positive power-of-2.
6048         (adddi3): Use new predicate.  Split 32-bit constants more
6049         correctly.  Re-arrange splitter to handle any constant.
6050         (subdi3): Use new predicate.
6051         (divdi3, moddi3): Ensure positive power-of-2.
6052         (movdi): Use rs6000_emit_set_const.
6053         (load_toc_v4_pic_di): Delete.
6054
6055 2001-07-31  Graham Stott <grahams@redhat.com>
6056
6057         * function.c (pad_below): Revert 2001-07-26 patch.
6058
6059 Tue Jul 31 15:37:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
6060
6061         * reg-stack (convert_regs_1): Fix best edge condition.
6062
6063 Tue Jul 31 15:33:27 CEST 2001  Jan Hubicka  <jh@suse.cz>
6064
6065         * jump.c (duplicate_loop_exit_test): Better test for jumps
6066         entering the loop; create loop pre_header.
6067
6068 2001-07-31 Hartmut Penner <hpenner@de.ibm.com>
6069
6070         * doc/install.texi: Add s390 and s390x as new targets.
6071         * doc/invoke.texi: Add documantation of S/390 and zSeries
6072         target options.
6073         * doc/md.texi: Add documantation of S/390 and zSeries constraints.
6074
6075 2001-07-30  Roman Zippel  <zippel@linux-m68k.org>
6076
6077         * config/m68k/m68k.md: Replace all general_operand with
6078         nonimmediate_operand for all destinations.
6079         * config/m68k/m68k.c (not_sp_operand): Likewise.
6080
6081 Mon Jul 30 23:20:34 EDT 2001  John Wehle  (john@feith.com)
6082
6083         * flow.c (merge_blocks): Return 1 if an extra jump is inserted.
6084
6085 2001-07-30  Richard Henderson  <rth@redhat.com>
6086
6087         * config/ia64/ia64.h (DEBUG_RANGES_SECTION): New.
6088         * config/mips/iris6.h (DEBUG_RANGES_SECTION): New.
6089
6090 2001-07-30  Roman Zippel  <zippel@linux-m68k.org>
6091
6092         * config/m68k/m68k.h (TARGET_SWITCHES/TARGET_OPTIONS):
6093         Add missing doc strings
6094         * config/m68k/linux-aout.h (SUBTARGET_SWITCHES): Likewise
6095         * config/m68k/linux.h (SUBTARGET_SWITCHES): Likewise
6096
6097 Mon Jul 30 22:16:08 CEST 2001  Jan Hubicka  <jh@suse.cz>
6098
6099         * i386.c (ix86_output_main_function_alignment_hack): New function.
6100         (TARGET_ASM_FUNCTION_PROLOGUE): Default to it.
6101
6102         * flow.c (mark_dfs_back_edges): Move from loop_p ; mark back
6103         edges by EDGE_DFS_BACK flag.
6104         (dump_edge_info): Add dfs_back flag.
6105         * basic-block.h (EDGE_DFS_BACK): New constant.
6106         (mark_dfs_back_edges): Declare.
6107         * alias.c (loop_p): Remove.
6108         (mark_constant_function): Use mark_dfs_back_edges.
6109
6110         * reg-stack.c (block_info_def): Add predecesors counter and stack_out.
6111         (reg_to_stack): Call mark_dfs_back_edges; count the predecesors.
6112         (compensate_edge): Break out from ...
6113         (convert_regs_1): ... here; do smart choosing of stack_out to copy.
6114         (convert_regs_2): Set block_done once block is really done;
6115         Do updating of the predecesors counts.
6116
6117         * toplev.c (rest_of_compilation): Recompute block_for_insn
6118         before post-reload cfg_cleanup.
6119         * function.c (thread_prologue_epilogue_insns):
6120         Call set_block_for_new_insns when emitting prologue directly.
6121
6122 2001-07-30  Andreas Jaeger  <aj@suse.de>
6123
6124         * jump.c: Add prototype for mark_modified_reg.
6125
6126         * cse.c (set_live_p): Add unused attribute.
6127
6128         * gcov.c (calculate_branch_probs): Use gcov_type to avoid
6129         overflow.
6130         (scan_for_source_files): Use long for count to avoid overflow.
6131         (output_data): Likewise.
6132         (output_data): Don't use string concatatenation to silence gcc
6133         -traditional.
6134
6135         * predict.c: Fix typos and grammar.
6136
6137         * gcse.c (insert_insn_end_bb): Remove unused variables.
6138
6139 Mon Jul 30 21:54:53 CEST 2001  Jan Hubicka  <jh@suse.cz>
6140
6141         * flow.c (mark_set_1): Use REG_FREQ_FROM_BB.
6142         (attempt_auto_inc): LIkewise.
6143         (mark_used_reg): Likewise.
6144         (try_pre_increment_1): Likewise.
6145         * regclass.c (regclass): Likewise.
6146         * global.c (allocno_compare): Update comment; change scaling factor.
6147         * local-alloc.c (QTY_CMP_PRI): Likewise.
6148         * regs.h (REG_FREQ_FROM_BB): New.
6149         (REG_FREQ_MAX): Likewise.
6150
6151 2001-07-30  H.J. Lu <hjl@gnu.org>
6152
6153         * config/mips/linux.h (CPLUSPLUS_CPP_SPEC): Add
6154         -D_GNU_SOURCE.
6155
6156 2001-07-30  H.J. Lu  (hjl@gnu.org)
6157
6158         * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Defined.
6159         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
6160         (FUNCTION_NAME_ALREADY_DECLARED): Likewise.
6161
6162 2001-07-30  Nick Clifton  <nickc@cambridge.redhat.com>
6163
6164         * config/arm/t-arm-elf (MULTILIB_EXCEPTIONS): Skip -mthumb as well
6165         as -mthumb-interwork when -mcpu=arm7 is specified.
6166
6167 Mon Jul 30 17:44:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
6168
6169         * predict.def (noreturn, loop branch, loop exit): Mark as first
6170         match heuristics.
6171
6172 Mon Jul 30 12:52:11 CEST 2001  Jan Hubicka  <jh@suse.cz>
6173
6174         * combine.c (try_combine): Avoid barrier after noop jumps.
6175
6176 2001-07-29  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
6177
6178         * cpphash.h (struct cpp_reader): Remove import_warning.
6179         * cpplib.c (skip_rest_of_line): Don't bother turning off
6180         macro expansion.
6181         (parse_include): Move include handling to...
6182         (do_include_common): ... here.  Move import warning from...
6183         (do_import): ... here.
6184         (do_pragma_poison): Don't do a callback for poison identifiers.
6185         * cpplib.h (struct cpp_callbacks): Don't do poison callbacks.
6186         * cppmain.c (setup_callbacks): Similarly.
6187
6188 Sun Jul 29 23:26:50 CEST 2001  Jan Hubicka  <jh@suse.cz>
6189
6190         * rtlanal.c (parms_set, find_first_parameter_load): Break out from...;
6191         handle multiple sets.
6192         * except.c (sjlj_mark_call_sites): .... here.
6193         * gcse.c (insert_insn_end_bb): Use find_first_parameter_load.
6194
6195 Sun Jul 29 21:38:45 CEST 2001  Jan Hubicka  <jh@suse.cz>
6196
6197         Suggested by Richard Henderson and Richard Kenner:
6198         * combine.c (recog_for_combine): Use the fake recog
6199         only if instruction does not match.
6200         * rtl.h (NOOP_MOVE_INSN_CODE): New.
6201         * rtlanal.c (noop_move_p): Always return 1 for NOOP_MOVE_INSN_CODE.
6202
6203         * combine.c (try_combine): Discover noop jump as direct jump.
6204
6205 2001-07-29  Daniel Berlin  <dan@cgsoftware.com>
6206
6207         * df.c (df_rd_global_compute): Add successors to worklist, not
6208         current item.
6209         (df_ru_global_compute): Ditto.
6210
6211 2001-07-27  Daniel Berlin  <dan@cgsoftware.com>
6212
6213         * regclass.c (reg_scan_mark_refs): Increment REG_N_REFS when we
6214         increment REG_N_SETS.
6215
6216 2001-07-26  Daniel Berlin  <dan@cgsoftware.com>
6217
6218         * sbitmap.h: New prototype for sbitmap_a_xor_b.
6219
6220         * sbitmap.c (sbitmap_a_xor_b): New function.
6221         ifdef the basic block stuff on IN_GCC.
6222
6223 2001-07-29  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
6224
6225         * cppexp.c (parse_defined): Always record the macro name.
6226         (lex): Don't worry about identifiers, or special-case
6227         CPP_NOT here.
6228         (_cpp_parse_expr): Figure out at the end of the routine
6229         whether we saw a valid !defined() expression.
6230         * cppfiles.c (stack_include_file): Update for mi_valid.
6231         (_cpp_pop_file_buffer): Similarly.
6232         * cpplex.c (_cpp_lex_token): Similarly.
6233         * cpphash.h (enum mi_state, enum mi_ind, mi_state,
6234         mi_if_not_defined, mi_lexed): Remove.
6235         (mi_valid): New.
6236         * cpplib.c (do_if): Simplify.
6237         (do_endif, push_conditional, _cpp_handle_directive): Update
6238         for renaming of mi_state to mi_valid.
6239 doc:
6240         * cpp.texi: Add index entries for digraphs, and add comment
6241         that C++ refers to them as alternative tokens.
6242
6243 Sun Jul 29 18:59:13 CEST 2001  Jan Hubicka  <jh@suse.cz>
6244
6245         * basic-block.h (CLEANUP_PRE_LOOP): New.
6246         * except.c (finish_eh_generation): Update call of cleanup_cfg.
6247         * sibcall.c (optimize_sibling_calls): Likewise.
6248         * toplev.c (rest_of_compilation): Likewise.
6249         * flow.c (try_forward_edges): Take argument MODE;
6250         do not forward over loop pre-headers if CLEANUP_PRE_LOOP.
6251         (try_optimize_cfg): Update call of try_forward_edges.
6252
6253 Sun Jul 29 18:59:56 CEST 2001  Roman Zippel  <zippel@linux-m68k.org>
6254                                Jan Hubicka  <jh@suse.cz>
6255
6256         * (validate_replace_rtx_1): Fix simplification of MINUS.
6257
6258 2001-07-29  Neil Booth  <neil@daikokuya.demon.co.uk>
6259
6260         PR preprocessor/3669
6261         * cppinit.c (init_dependency_output): Turn off dump requests
6262         if sending dependencies to stdout.
6263
6264 2001-07-28  Richard Henderson  <rth@redhat.com>
6265
6266         * flow.c (life_analysis): Elide PROP_ALLOW_CFG_CHANGES if
6267         not optimizing.
6268
6269 2001-07-28  Golubev I. N.  <gin@mo.msk.ru>
6270
6271         * config/i386/sco5.h (DWARF2_DEBUGGING_INFO): Define.
6272
6273 2001-07-28  Kazu Hirata  <kazu@hxi.com>
6274
6275         * config/h8300/h8300.h (ENCODE_SECTION_INFO): Check to see if DECL
6276         is VAR_DECL first to prevent an ICE.
6277
6278 2001-07-28  Richard Henderson  <rth@redhat.com>
6279
6280         * varasm.c (immed_real_const_1): Don't elide special cases for
6281         nested functions.
6282         (clear_const_double_mem): Clear const_tiny_rtx too.
6283
6284 2001-07-28  Richard Henderson  <rth@redhat.com>
6285
6286         * dwarf2out.c (dw_val_class_offset): New.
6287         (struct dw_ranges_struct, dw_ranges_ref): New.
6288         (ranges_table, ranges_table_allocated): New.
6289         (ranges_table_in_use, RANGES_TABLE_INCREMENT): New.
6290         (add_AT_offset, add_ranges, output_ranges): New.
6291         (print_die, output_die): Handle dw_val_class_offset.
6292         (attr_checksum, size_of_die, value_format): Likewise.
6293         (gen_lexical_block_die): Handle non-contiguous blocks.
6294         (gen_block_die): Likewise.
6295         (dwarf2out_finish): Add a DW_AT_entry_pc to the compilation unit
6296         if needed.  Dump the ranges table.
6297         * final.c (final_start_function): Remove unnecessary notes and
6298         rebuild the block tree before numbering the blocks.
6299         * function.c (reorder_blocks_0): Walk the existing block tree
6300         to unmark all blocks.
6301         (reorder_blocks_1): Create block fragments when duplicate block
6302         notes are seen.
6303         (reorder_fix_fragments): New.
6304         (reorder_blocks): Call it.
6305         * tree.h (BLOCK_FRAGMENT_ORIGIN, BLOCK_FRAGMENT_CHAIN): New.
6306
6307 2001-07-28  Richard Henderson  <rth@redhat.com>
6308
6309         * emit-rtl.c (adjust_address): Make a copy of the memory address.
6310
6311 2001-07-28  Richard Henderson  <rth@redhat.com>
6312
6313         * flow.c (add_to_mem_set_list): New function.
6314         (init_propagate_block_info): Use it.
6315         (mark_set_1): Likewise.
6316         (insn_dead_p): Canonicalize memory address for dead store
6317         comparison.  Allow wider mode stores to kill narrower mode stores.
6318         (invalidate_mems_from_autoinc): Use invalidate_mems_from_set.
6319         (invalidate_mems_from_set): Don't handle MEMs.
6320
6321 2001-07-28  Kazu Hirata  <kazu@hxi.com>
6322
6323         * config/h8300/h8300.h: Fix formatting.
6324
6325 Sat Jul 28 23:35:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
6326
6327         * basic-block.h (EDGE_FREQUENCY): New macro.
6328         * bb-reorder (fixup_reorder_chain): Set counts and frequencies
6329         for new BB/edges.
6330         * flow.c (find_sub_basic_blocks): Likewise.
6331         (try_crossjump_to_edge): Likewise; use EDGE_FREQUENCY
6332         (redirect_edge_and_branch): Use EDGE_FREQUENCY.
6333
6334         * predict.c (DEF_PREDICTOR): New argument FLAGS.
6335         (HITRATE): New macro.
6336         (PRED_FLAG_FIRST_MATCH): New constant.
6337         (predictor_info): New field flgags.
6338         (combine_predictions_for_insn): Use DS theory to combine
6339         probabilities; set the edge probabilities when finished.
6340         (estimate_probability): Avoid duplicated matches
6341         of LOOP_BRANCH heuristics for nested loops; update comment.
6342         * predict.def: Add flags for each prediction, set probabilities
6343         according to B&L paper.
6344         * predict.h (DEF_PREDICTOR): New argument FLAGS.
6345
6346         * profile.c (compute_branch_probabilities):  Cleanup way the edge
6347         probabilities are computed and REG_BR_PROB notes are dropped; if
6348         values does not match, emit error.
6349         (init_branch_prob): Do error instead of warning when profile driven
6350         feedback is missing or corrupt.
6351
6352 2001-07-27  DJ Delorie  <dj@redhat.com>
6353
6354         * ifcvt.c (noce_get_alt_condition): If the condition is a compare
6355         against a constant, try to adjust the compare to have the desired
6356         constant in it so that min/max optimizations happen more often.
6357
6358 Fri Jul 27 17:53:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
6359
6360         * flow.c (last_loop_beg_note): New function.
6361         (redirect_edge_and_branch): Use it.
6362         (split_edge): Likewise.
6363
6364         * alias.c (loop_p): Avoid uninitialized memory access.
6365
6366         * flow.c (try_forward_edges): Avoid accessing freed memory.
6367
6368         * flow.c (backward_edge_of_syntactic_loop_p): Avoid uninitialized
6369         variable access.
6370
6371 2001-07-26  Andrew Haley  <aph@redhat.com>
6372         Joern Rennecke <amylaar@redhat.com>
6373
6374         * config/sh/linux.h (CPP_DEFAULT_CPU_SPEC): New.
6375         (SUBTARGET_CPP_ENDIAN_SPEC): New.
6376         (SUBTARGET_CPP_SPEC): New.
6377         (CPP_SPEC): Remove.
6378         * config/sh/sh.h (SUBTARGET_CPP_ENDIAN_SPEC): New.
6379         (SUBTARGET_CPP_PTR_SPEC): New.
6380         (CPP_DEFAULT_CPU_SPEC): New.
6381         (EXTRA_SPECS): Add SUBTARGET_CPP_ENDIAN_SPEC,
6382         SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC.
6383         (CPP_SPEC): Break out parts into SUBTARGET_CPP_ENDIAN_SPEC,
6384         SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC.
6385         (SUBTARGET_CPP_SPEC): Define as an empty string.
6386
6387 2001-07-27  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6388
6389         * doc/install.texi (Configuration): Properly link the host
6390         specific instructions also when generating HTML.
6391
6392 Fri Jul 27 00:33:35 EDT 2001  John Wehle  (john@feith.com)
6393
6394         * flow.c (redirect_edge_and_branch_force): Test
6395         target->global_live_at_start.
6396
6397 2001-07-26  Richard Henderson  <rth@redhat.com>
6398
6399         * simplify-rtx.c (avoid_constant_pool_reference): Export.
6400         * rtl.h (avoid_constant_pool_reference): Declare it.
6401         * dwarf2out.c (add_location_or_const_value_attribute): Use it.
6402         (add_const_value_attribute): Use add_AT_unsigned for unsigned values.
6403
6404 Thu Jul 26 22:30:22 CEST 2001  Jan Hubicka  <jh@suse.cz>
6405
6406         * rtl.h (cleanup_barriers): Declare.
6407         * jump.c (cleanup_barriers): New function.
6408         * toplev.c (rest_of_compilation): Call cleanup_barriers
6409         before loop optimizer and after bb_reorder.
6410
6411         * flow.c (back_edge_of_syntactic_loop_p): New.
6412         (split_edge): Use it.
6413
6414 2001-07-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6415
6416         * glimits.h (_MACH_MACHLIMITS_H_): Delete.
6417
6418 Thu Jul 26 22:22:21 2001  Denis Chertykov  <denisc@overta.ru>
6419
6420         * cse.c (cse_process_notes): Replace any registers if the address
6421         remains valid.
6422
6423 Thu Jul 26 14:04:03 EDT 2001  John Wehle  (john@feith.com)
6424
6425         * basic-block.h (PROP_ALLOW_CFG_CHANGES): Define.
6426         (PROP_FINAL): Include PROP_ALLOW_CFG_CHANGES.
6427         (propagate_block): Update prototype.
6428         * flow.c (update_life_info): Simplify the CFG and
6429         recalculate the global regs which are alive when
6430         removing dead code during a global update.
6431         (propagate_block): Return non-zero if an INSN is
6432         deleted.
6433
6434 2001-07-26  Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
6435
6436         * Makefile.in (LIBICONV): Define.
6437
6438 2001-07-26  Catherine Moore  <clm@redhat.com>
6439
6440         * config/v850/v850.h (ENCODE_SECTION_INFO):  Change order
6441         of conditional to avoid tree checking errors.
6442
6443 2001-07-26  Kazu Hirata  <kazu@hxi.com>
6444
6445         * regmove.c (regmove_optimize): Don't replace a reg with
6446         another reg of a different mode.
6447
6448 2001-07-26  Andrew MacLeod  <amacleod@redhat.com>
6449
6450         * params.def (PARAM_MAX_PENDING_LIST_LENGTH): Add parameter to
6451         limit length of dependancy flush list.
6452         * params.h (MAX_PENDING_LIST_LENGTH): Define.
6453         * sched-int.h  (struct deps): Add pending_flush_length field.
6454         * sched-deps.c (flush_pending_lists): Last_pending_memory_flush now
6455         has 1 element in it.
6456         (sched_analyze_1): Use MAX_PENDING_LIST_LENGTH.
6457         (sched_analyze): After a jump, if the pending memory flush list is too
6458         large, flush the pending lists.
6459         (init_deps): Initialize pending_flush_length to 0.
6460         * doc/invoke.texi (max_pending_list_length): Document parameter.
6461
6462 2001-07-26  Neil Booth  <neil@daikokuya.demon.co.uk>
6463
6464         * toplev.c, varasm.c, final.c: Include xcoffout.h if appropriate.
6465         * dbxout.c (dbxout_global_decl): Move outside #ifdef.
6466         * Makefile.in (varasm.o, final.o, toplev.o): Update dependencies.
6467
6468 2001-07-26  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
6469
6470         * cpphash.h (struct_lexer_state): Delete was_skipping.
6471         Move skipping here from struct cpp_reader.
6472         * cpplex.c (parse_identifier): Update.
6473         (_cpp_lex_token): Don't skip tokens in a directive.
6474         * cpplib.c (struct if_stack): Update.
6475         (start_directive, end_directive): Don't change skipping state.
6476         (_cpp_handle_directive): Update.
6477         (do_ifdef, do_ifndef, do_if, do_elif): Similarly.
6478         (do_else, do_endif): Update; only check for excess tokens if not
6479         in a skipped conditional block.
6480         (push_conditional): Update for new struct if_stack.
6481
6482 2001-07-26  Graham Stott  <grahams@redhat.com>
6483
6484         * function.c (locate_and_pad_parm): Also pad initial offset
6485         so that the total argument size also includes the padding.
6486
6487 2001-07-26  Graham Stott <grahams@redhat.com>
6488
6489         * gensupport.c (alter_output_for_insn): Correct enable checking failure
6490         change XSTR to XTMPL.
6491
6492         (process_one_cond_exec): Likewise
6493
6494 2001-07-25  Richard Henderson  <rth@redhat.com>
6495
6496         * varasm.c (assemble_variable): Create DECL_RTL before setting
6497         TREE_ASM_WRITTEN.
6498
6499 Thu Jul 26 00:19:30 CEST 2001  Jan Hubicka  <jh@suse.cz>
6500
6501         * predict.c (estimate_probability): Avoid duplicated predictions.
6502
6503         * loop.c (find_and_verify_loops): Grok multiple barriers.
6504
6505 Wed Jul 25 18:00:05 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6506
6507         * config/alpha/alpha.c (print_operand, case '/'): Don't write '/'.
6508
6509         * dbxout.c: Consistently use putc instead of fputc.
6510         (print_wide_int): New function; call instead of direct fprintf.
6511         (dbxout_type_index): Adjust calls of CHARS to be more accurate.
6512         (dbxout_type_fields, dbxout_type_method_1): Likewise.
6513         (dbxout_type_methods, dbxout_range_type, dbxout_type): Likewise.
6514         (print_int_cst_octal): Likewise.
6515         (print_octal): Show we wrote characters.
6516         (dbxout_type): Set have_used_extensions in more places.
6517
6518 2001-07-25  Catherine Moore  <clm@redhat.com>
6519
6520         * config/v850/v850.c (v850_va_arg):  Use addr
6521         instead of valist to build incr.
6522
6523 Wed Jul 25 22:48:59 CEST 2001  Jan Hubicka  <jh@suse.cz>
6524
6525         * flow.c (delete_dead_jumptables): New function.
6526         (life_analyzis): Call it.
6527         * bb-reorder.c (skip_insns_after_block): Handle contradictory
6528         sequences.
6529
6530 2001-07-25  Richard Henderson  <rth@redhat.com>
6531
6532         * except.c (reachable_handlers): Handle a region being removed
6533         out from under a RESX.
6534
6535 2001-07-25  Richard Henderson  <rth@redhat.com>
6536
6537         * config/alpha/alpha.c (alpha_emit_conditional_move): Always
6538         swap GE/GT if it is an fp comparison.
6539
6540 2001-07-25  Andrew Haley  <aph@cambridge.redhat.com>
6541
6542         * alias.c (rtx_equal_for_memref_p): Allow strings as types in
6543         operands.
6544
6545 Wed Jul 25 08:25:01 2001  Jeffrey A Law  (law@cygnus.com)
6546
6547         * ssa.c (rename_insn_1): Do not wrap an assignment to a
6548         paradoxical SUBREG inside a SEQUENCE.  Fix minor formatting
6549         glitch.
6550
6551         * ssa-ccp.c (visit_expression): Handle CALL_INSNs that can
6552         throw an exception.
6553         (visit_expression): When attempting to simplify an expression,
6554         retrieve any modes for arguments before they are simplified
6555         to constants.
6556
6557 2001-07-25  Andrew MacLeod  <amacleod@redhat.com>
6558             Janis Johnson  <janis@us.ibm.com>
6559
6560         * stmt.c (expand_goto): A nonlocal goto can be a call too.
6561         * builtins.c (expand_builtin_longjmp): Reverse label and static chain
6562         pointer parameters to match documented usage of nonlocal_goto.
6563         * config/ia64/ia64.md (nonlocal_goto): Revert label and static chain
6564         parameters to their correct order.
6565         * config/sparc/sparc.md (nonlocal_goto): Revert label and static chain
6566         parameters to their correct order.
6567
6568 2001-07-25  Andrew MacLeod  <amacleod@redhat.com>
6569
6570         * config/ia64/ia64.h (STRIP_NAME_ENCODING): Strip out '*' as well.
6571
6572 2001-07-25  Jan Hubicka  <jh@suse.cz>
6573             Richard Henderson  <rth@redhat.com>
6574
6575         * flow.c (find_sub_basic_blocks): Fix handling of the last BB in
6576         the sequence.
6577         (make_edges): New argument update_p; populate the edge cache if set.
6578         (find_basic_blocks): Update make_edges invocation.
6579
6580 2001-07-24  Joel Sherrill <joel@OARcorp.com>
6581
6582         * config/i960/i960.h (CPP_SPEC): Define _SOFT_FLOAT for -msoft-float.
6583
6584 2001-07-24  Joel Sherrill <joel@OARcorp.com>
6585
6586         * config/sparc/rtems.h (CPP_PREDEFINES): Remove redundant
6587         -Acpu and -Amachine.h.
6588         * config/sparc/rtemself.h (CPP_PREDEFINES): Likewise.
6589         Corrected header to say ELF not a.out.
6590         * config/sparc/sparc.h (CPP_CPU_SPEC): Define _SOFT_FLOAT
6591         when given -msoft-float.
6592
6593 2001-07-24  Joel Sherrill <joel@OARcorp.com>
6594
6595         * config.gcc (arm*-*-rtems*): Include crtinit.o and crtfini.o as
6596         extra multilib parts like arm-elf.
6597         (i960-*-coff*, i960-*-rtems): Should not use collect2.
6598         (m68020-*-elf*, m68k-*-elf*, m68k-*-rtems*): Include crtinit.o and
6599         crtfini.o as extra multilib parts.
6600
6601 2001-07-24  Joel Sherrill <joel@OARcorp.com>
6602
6603         * configure.in: Add rtems as a supported thread model.
6604         * gthr-rtems.h: Add missing entry point __gthread_active_p.
6605         * configure: Rebuilt.
6606
6607 2001-07-24  Lars Brinkhoff  <lars@nocrew.org>
6608
6609         * stor-layout.c (get_mode_alignment): make it work when
6610         BITS_PER_UNIT is not a power of two.
6611         * builtins.c (get_pointer_alignment): Likewise.
6612
6613 2001-07-24  Richard Henderson  <rth@redhat.com>
6614
6615         * simplify-rtx.c (avoid_constant_pool_reference): Coerce
6616         the retrieved constant into the expected mode.
6617
6618 Wed Jul 25 01:41:27 CEST 2001  Jan Hubicka  <jh@suse.cz>
6619
6620         * flow.c (try_simplify_condjump): Avoid duplicated edges.
6621         (verify_flow_info): Check for duplicated edges; clarify
6622         error reporting.
6623
6624         * flow.c (block_label): Update basic_block_for_insn.
6625         (commit_edge_insertions): Call compute_bb_for_insn.
6626
6627         * flow.c (purge_dead_edges): Handle conditional jumps and conditional
6628         returns too.
6629
6630         * flow.c (redirect_edge_and_branch,
6631         try_optimize_cfg): Use redirect_edge_succ_nodup
6632         (redirect_edge_succ_nodup): New.
6633         * basic_block.h (redirect_edge_succ_nodup): Declare.
6634
6635         * toplev.c (rest_of_compilation): Rebuild CFG before cfg_cleanup
6636         after gcse.
6637
6638 Wed Jul 25 00:32:49 CEST 2001  Jan Hubicka  <jh@suse.cz>
6639
6640         * flow.c (try_forward_edges): Accept fallthru edge; Update comment.
6641         (try_crossjump_to_edge): Update commetns.
6642         (try_crossjump_bb): Likewise.
6643
6644 2001-07-24  Richard Henderson  <rth@redhat.com>
6645
6646         * combine.c (distribute_notes): Move set of need_refresh
6647         for noop_move_p down to catch all cases.
6648
6649 Tue Jul 24 20:32:44 CEST 2001  Jan Hubicka  <jh@suse.cz>
6650
6651         * recog.c (split_all_insns_noflow): New.
6652         * rtl.h (split_all_insns_noflow): Declare.
6653         * ia64.c (ia64_reorg): Use split_all_insns_noflow.
6654         * m68hc11.c (m68hc11_reorg): Likewise.
6655         * sh.c (machine_dependent_reorg): Likewise.
6656         * toplev.c (rest_of_compilation): Likewise for last split_all_insns
6657         call.
6658
6659 2001-07-18  Andrew Haley  <aph@cambridge.redhat.com>
6660
6661         * config/sh/sh.md (ashlsi3_std splitter): Split only after reload.
6662         (ashlsi3_n splitter): Likewise.
6663         (lshrsi3_n splitter): Likewise.
6664
6665         (GOTaddr2picreg): Make const SImode.
6666         (sym_label2reg): Likewise.
6667         (symGOT2reg): Likewise.
6668         (symGOTOFF2reg) Likewise.
6669
6670         (casesi_worker_0): Make unspec SImode.
6671
6672 2001-07-18  Andrew Haley  <aph@cambridge.redhat.com>
6673
6674         * config/sh/sh.c (barrier_align): Check that an operand really is
6675         an insn before extracting its INSN_CODE.
6676
6677 2001-07-24  Andrew Haley  <aph@cambridge.redhat.com>
6678
6679         * config/sh/sh.h (OVERRIDE_OPTIONS): Add braces to get rid of
6680         dangling else.
6681
6682         * config/sh/sh.h (INITIALIZE_TRAMPOLINE): Truncate operands
6683         for SImode to prevent overflow.
6684
6685 2001-07-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6686
6687         * config/mips/irix6-libc-compat.c: New file.
6688         * config/mips/t-iris6 (LIB2FUNCS_STATIC_EXTRA): Use it.
6689         * doc/install.texi (Specific, mips*-sgi-irix6): Mention structure
6690         passing workaround.
6691
6692 2001-07-24  lars brinkhoff  <lars@nocrew.org>
6693
6694         * rtl.texi (REG_POINTER): Document.
6695         (Machine Modes): Document BImode, OImode, PQImode, PHImode,
6696         QFmode, HFmode, TQFmode, QCmode, and HCmode.
6697
6698 Tue Jul 24 10:49:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
6699
6700         * flow.c (delete_noop_moves): Do not confuse libcall regions.
6701
6702 2001-07-23  Richard Henderson  <rth@redhat.com>
6703
6704         * flow.c (try_simplify_condjump): Use tidy_fallthru_edge.
6705
6706 2001-07-23  Kazu Hirata  <kazu@hxi.com>
6707
6708         * config/h8300/h8300-protos.h: Add a prototype for
6709         general_operand_dst_push.
6710         * config/h8300/h8300.c (general_operand_dst_push): New.
6711         * config/h8300/h8300.h (OK_FOR_T): New.
6712         (EXTRA_CONSTRAINT): Use it.
6713         * config/h8300/h8300.md (movqi_push): Remove and integrate into
6714         the existing movqi pattern.
6715         (movhi_push): Likewise.
6716
6717         * reload.c: Fix comment typos.
6718
6719 Mon Jul 23 23:34:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
6720
6721         * gcse.c (cprop_insn): Update call of cprop_cc0_jump.
6722
6723 2001-07-23  H.J. Lu  (hjl@gnu.org)
6724
6725         * doc/extend.texi: Update __builtin_return_address and
6726         __builtin_frame_address.
6727
6728 2001-07-23  Richard Henderson  <rth@redhat.com>
6729
6730         * config/i386/i386.c (ix86_expand_setcc): Don't use method 0
6731         before CSE.
6732         * config/i386/i386.md: New setcc+movzbl peephole2.
6733
6734 2001-07-23  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
6735
6736         * objc/Make-lang.in (objc-act.o): Depend on debug.h.
6737         * objc/objc-act.c: Include debug.h.
6738         (synth_module_prologue): Save and restore debug hooks too.
6739
6740 2001-07-23  lars brinkhoff  <lars@nocrew.org>
6741
6742         * tm.texi (TARGET_FLOAT_FORMAT): Document IBM_FLOAT_FORMAT
6743         and C4X_FLOAT_FORMAT.
6744         (BOOL_TYPE_SIZE): Document.
6745
6746 Mon Jul 23 11:54:23 2001  Clinton Popetz  <cpopetz@cpopetz.com>
6747
6748         * unroll.c (loop_iterations): Fix miscalculation of initial
6749         giv offset.
6750
6751 2001-07-13  Andrew Haley  <aph@redhat.com>
6752
6753         * doc/tm.texi (MD_CAN_REDIRECT_BRANCH): New macro.
6754         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): New macro.
6755         * config/sh/sh.c (sh_can_redirect_branch): New function.
6756         * config/sh/sh-protos.h (sh_can_redirect_branch): Declare.
6757         * reorg.c (steal_delay_list_from_target): Use
6758         MD_CAN_REDIRECT_BRANCH to see if redirection is possible.
6759
6760 Mon Jul 23 17:20:18 CEST 2001  Jan Hubicka  <jh@suse.cz>
6761
6762         * flow.c (try_simplify_condjump): Unlink insn chain on
6763         fallthru edge; use can_fallthru.
6764
6765 Mon Jul 23 16:03:19 CEST 2001  Jan Hubicka  <jh@suse.cz>
6766
6767         * basic-block.h (find_sub_basic_block): Declare.
6768         * flow.c (make_edges): New arguments MIN and MAX;
6769         (find_sub_basic_blocks): Revamp to use make_edges
6770         and purge_dead_edges.
6771         (find_basic_blocks): Update call of find_sub_basic_block.
6772
6773         * recog.c (split_all_insns): Always expect CFG to be consistent;
6774         call find_sub_basic_blocks in case something has changed.
6775         * toplev.c (rest_of_compilation): Always call split_all_insns once CFG
6776         has been built.
6777
6778         * basic-block.h (delete_noop_moves): Declare.
6779         * combine.c (combine_instructions): Call it.
6780         (recog_for_combine): Tolerate noop moves
6781         (distribute_notes): Force refresh when register dies at noop move.
6782         * flow.c (delete_noop_moves): Use BB structure; delete JUMP insns
6783         too.
6784         (life_analysis): Update delete_noop_moves call.
6785         (set_noop_p): Move too ...
6786         * rtlanal.c (noop_move_p): ... here.
6787         * rtl.h (noop_move_p): Declare.
6788
6789         * basic-block.h (purge_all_dead_edges, purge_dead_edges): New functions.
6790         * toplev.c (rest_of_compilation): Conditionally call purge_all_dead_edges
6791         after combine.
6792         * gcse.c (cprop_cc0_jump, cprop_insn): New argument "basic_block".
6793         (cprop_jump): Likewise; call purge_dead_edges if substitution suceeded.
6794
6795 2001-07-23  Hans-Peter Nilsson  <hp@bitrange.com>
6796
6797         * reload.c (push_reload): Fix typo in comment.
6798         (find_reloads_address): Ditto.
6799         (reg_overlap_mentioned_for_reload_p): Ditto in head comment.
6800
6801 2001-07-22  Richard Henderson  <rth@redhat.com>
6802
6803         * flow.c: Grammar check and clarify a lot of comments.
6804         (try_simplify_condjump): Rename variables to be clearer.
6805         (try_forward_edges): Skip complex and fallthru edges.
6806         Rearrange tests to avoid duplicate checks.
6807         (flow_find_cross_jump): Likewise.
6808         (outgoing_edges_match): Allow match if neither branch has
6809         probability data.  Loosen probability match to 5%.
6810         (try_crossjump_to_edge): Hoist repeated indirection into
6811         local variables.
6812         (try_crossjump_bb): Don't check complex edges.  Eliminate
6813         redundant crossjump tests.
6814         (try_optimize_cfg): Fix use of bool.  Reorganize cheaper
6815         checks before more expensive checks.
6816
6817 2001-07-22  Richard Henderson  <rth@redhat.com>
6818
6819         * fold-const.c (fold): Test vs FLOAT_TYPE_P instead of
6820         INTEGRAL_TYPE_P when folding comparisons with operand_equal_p
6821         arguments.
6822
6823 2001-07-22  Richard Henderson  <rth@redhat.com>
6824
6825         * m68k.c (const_uint32_operand): Abort if mode is <= 32 bits.
6826         (const_sint32_operand): Likewise.
6827         * m68k.md (anon mulsi pattern): Use const_int_operand not
6828         const_sint32_operand.
6829         (umulsi3_highpart): Zero extend a constant input.
6830         (smulsi3_highpart): Don't bother checking SImode constant.
6831         (const_umulsi3_highpart): Give op3 DImode.
6832         (const_smulsi3_highpart): Likewise.
6833
6834 2001-07-22  Richard Henderson  <rth@redhat.com>
6835
6836         * flow.c (split_block): Make sure bb_note is included in the
6837         new block when splitting before a label.
6838
6839 Sun Jul 22 23:28:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
6840
6841         * basic-block.h (redirect_edge_and_branch_force,
6842         redirect_edge_and_branch, block_label, forwarder_block_p): Declare.
6843         * flow.c (redirect_edge_and_branch_force,
6844         redirect_edge_and_branch, block_label, forwarder_block_p): Make global.
6845         (redirect_edge_and_branch_force): Fix copying of lifeness information.
6846         (block_label): Handle EXIT_BLOCK_PTR by returning NULL.
6847         * ifcvt.c (dead_or_predictable): Take BB as an new destionation
6848         instead of label; update CFG after transformation.
6849         (find_if_case_1): Update call, use redirect_edge_and_branch_force
6850         for finishing the transformation; handle even case where ELSE
6851         does not follow THEN.
6852         (find_if_case_2): Update call of dead_or_predictable; simplify
6853         CFG update.
6854
6855         * emit-rtl.c (split_branch_probability): New global variable.
6856         (try_split): Take care to set split_branch_probability and
6857         create REG_BR_PROB note for new jump insns.
6858         * md.texi (define_split): Document new feature.
6859
6860         * i386.c (ix86_split_fp_branch): Redistribute branch probability notes.
6861
6862 2001-07-22  Neil Booth  <neil@daikokuya.demon.co.uk>
6863
6864         * varasm.c: Don't inlcude dbxout.h, sdbout.h or xcoffout.h.
6865         (asm_out_file): Remove redundant declaration.
6866         (assemble_asm): Remove old #if 0 block.
6867         (assemble_variable): Remove end of function; debug output is
6868         now handled with global_decl.  Remove old #if 0 block.  Update.
6869         Remove saved_in_section and associated no-op code.
6870         * Makefile.in (varasm.o): Correct dependencies.
6871
6872 Sun Jul 22 17:55:11 2001  Alexandre Oliva  <aoliva@redhat.com>
6873
6874         * config/i386/freebsd-aout.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
6875         the definition in defaults.h.
6876
6877 Sun Jul 22 21:31:04 CEST 2001  Jan Hubicka  <jh@suse.cz>
6878
6879         * jump.c: Update comments.
6880         (delete_barrier_successors, delete_unreferenced_labels,
6881         delete_noop_moves, tension_vector_labels, delete_from_jump_chain,
6882         delete_labelref_insn, redirect_tablejump, jump_optimize_1,
6883         jump_optimize, jump_optimize_minimal): Kill.
6884         (rebuild_jump_labels): Move code from jump_optimize_1.
6885         (purge_line_number_notes): Likewise.
6886         (copy_loop_headers): Likewise.
6887         * reg-stack.c: Update comment.
6888         * stmt.c: Likewise.
6889         * rtl.h (jump_optimize, jump_optimize_1, JUMP_NOOP_MOVES,
6890         JUMP_AFTER_REGSCAN): Kill.
6891         * toplev.c (rest_of_compilation): Use cleanup_cfg, call
6892         purge_line_number_notes and copy_loop_headers.
6893
6894 2001-07-22 Neil Booth  <neil@daikokuya.demon.co.uk>
6895            Richard Henderson  <rth@redhat.com>
6896
6897         * dbxout.c (dbxout_global_decl): New.
6898         (xcoff_debug_hooks, dbx_debug_hooks): Use it.
6899         * sdbout.c (sdbout_finish): New.
6900         (sdbout_debug_hooks): Use it, add comments.
6901         (sdbout_global_decl): Defer initialised public vars to
6902         sdbout_finish.
6903         * varasm.c (assemble_variable): Don't output debug information
6904         for file-scope variables.
6905
6906 2001-07-22  Richard Henderson  <rth@redhat.com>
6907
6908         * config/alpha/alpha.c (get_trap_mode_suffix): New.
6909         (get_round_mode_suffix): New.
6910         (print_operand): Use them for [/].  Remove support for [&'`()+].
6911         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Update.
6912         * config/alpha/alpha.md (attr round_suffix): New.
6913         (attr trap_suffix): New.
6914         (all insns): Set them appropriately.  Use %/ instead of the
6915         myriad punctuators.
6916
6917 2001-07-22  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
6918
6919         * dbxout.c, sdbout.c, varasm.c: Revert most recent debug patch.
6920
6921 2001-07-22  Richard Henderson  <rth@redhat.com>
6922
6923         * regrename.c (regrename_optimize): Compute nregs for each
6924         potential target register.
6925
6926 2001-07-21 Neil Booth  <neil@daikokuya.demon.co.uk>
6927            Richard Henderson  <rth@redhat.com>
6928
6929         * dbxout.c (dbxout_global_decl): New.
6930         (xcoff_debug_hooks, dbx_debug_hooks): Use it.
6931         * sdbout.c (sdbout_finish): New.
6932         (sdbout_debug_hooks): Use it, add comments.
6933         (sdbout_global_decl): Defer initialised public vars to
6934         sdbout_finish.
6935         * varasm.c (assemble_variable): Don't output debug information
6936         for file-scope variables.
6937
6938 2001-07-21  H.J. Lu  (hjl@gnu.org)
6939
6940         * config/mips/mips.c (mips_cpu): Moved into ...
6941         (override_options): Here.
6942
6943         * config/mips/mips.h (mips_cpu_attr): Replace mips_cpu with
6944         mips_tune.
6945         (mips_cpu): Removed.
6946
6947 2001-07-21  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
6948
6949         * config/m68hc11/m68hc11.md ("andqi3"): Accept d as second operand.
6950         ("iorqi3"): Likewise.
6951         ("xorqi3"): Likewise.
6952         ("*addhi3"): Fix constraint to avoid reloading in a soft register.
6953         ("*subhi3_sp): Likewise.
6954         ("*subhi3"): Likewise.
6955         ("extendhisi2"): Accept D, X and Y as source operand to avoid
6956         reload problems.
6957
6958 2001-07-21  Nathan Sidwell  <nathan@codesourcery.com>
6959
6960         * doc/tm.texi: Remove DEFAULT_VTABLE_THUNKS.
6961         * config/freebsd.h: Likewise.
6962         * config/linux.h: Likewise.
6963         * config/openbsd.h: Likewise.
6964         * config/alpha/linux-elf.h: Likewise.
6965         * config/arm/linux-elf.h: Likewise.
6966         * config/d30v/d30v.h: Likewise.
6967         * config/fr30/fr30.h: Likewise.
6968         * config/ia64/aix.h: Likewise.
6969         * config/ia64/ia64.h: Likewise.
6970         * config/mips/linux.h: Likewise.
6971         * config/pj/pj.h: Likewise.
6972         * config/rs6000/linux.h: Likewise.
6973         * config/sparc/linux.h: Likewise.
6974         * config/sparc/linux64.h: Likewise.
6975
6976 2001-07-20  Bruce Korb  <bkorb@gnu.org>
6977
6978         * fixinc/fixincl.c(test_for_changes): force unsigned char comparisons
6979         because getc() and char* may disagree on signedness.
6980
6981 2001-07-20  Richard Henderson  <rth@redhat.com>
6982
6983         * doc/rtl.texi (REG_DEAD): Update for current semantics.
6984
6985         * flow.c (try_redirect_by_replacing_jump): Correctly compute which
6986         insns to delete in the presence of cc0 in a jump insn.
6987
6988 Fri Jul 20 22:14:49 CEST 2001  Roman Zippel  <zippel@linux-m68k.org>
6989                                Jan Hubicka  <jh@suse.cz>
6990
6991         * m68k.md (zero_extend?i?i2 expander): Use gen_lowpart instead
6992         of doing the change by hand.
6993
6994 Fri Jul 20 21:59:42 CEST 2001  Jan Hubicka  <jh@suse.cz>
6995
6996         * rtlanal.c (set_noop_p): Return true for noop jumps.
6997
6998         * expr.c (emit_single_push_insn): Add call to push expander.
6999         * expr.h (optab_index): Add OTI_push
7000         (push_optab): New constant.
7001         * genopinit.c (optabs): Add push_optab.
7002         * optabs.c (init_optab): Init push optab.
7003         * md.texi (push??1): Document
7004
7005 2001-07-20  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7006
7007         * config/m68hc11/m68hc11.md ("movdi", "movdi_internal"): Use an
7008         expand to emit the pattern; put a REG_INC note for push/pop
7009         instructions.
7010         ("movdf", "movdf_internal"): Likewise.
7011         ("movsi", "movsi_internal"): Likewise.
7012         ("movsf", "movsf_internal"): Likewise.
7013         ("movhi", "movqi"): Emit a REG_INC note for push/pop instructions.
7014
7015 2001-07-20  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7016
7017         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Don't use
7018         gen_highpart.
7019
7020 2001-07-20  Daniel Berlin  <dan@cgsoftware.com>
7021
7022         * params.def: Change default max inline insns to 100.
7023
7024 2001-07-20  Diego Novillo  <dnovillo@redhat.com>
7025
7026         * combine.c (combine_simplify_rtx): Generate a new shift operation
7027         when simplifying the first operand of a (neg (ashift)) expression.
7028
7029 2001-07-20  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
7030
7031         * regclass.c (N_REG_INTS): Use only 32 bits per element.
7032
7033 2001-07-20  Kelley Cook  <kelley.cook@home.com>
7034
7035         * doc/install.texi (sparc-sun-solaris*): Add in 4.x assembler bug
7036         information.   Move rest into ...
7037         (*-*-solaris): ... here.  Eliminate redundant information and
7038         reword necessary packages section.  Delete 4.x assembler bug info.
7039         (sparc-sun-*): Merge into ...
7040         (sparc-sun-sunos*): here.
7041
7042 2001-07-20  Catherine Moore  <clm@redhat.com>
7043
7044         * config/v850/v850.md (casesi): Generate LABEL_REF
7045         with Pmode.
7046
7047 Fri Jul 20 14:12:57 CEST 2001  Jan Hubicka  <jh@suse.cz>
7048
7049         * i386-protos.h (ix86_zero_extend_to_Pmode): Declare.
7050         * i386.c (ix86_zero_extend_to_Pmode): Make global.
7051         * i386.md (strclrsi expander): Use it.
7052
7053 Fri Jul 20 13:24:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
7054
7055         * integrate.c (copy_insn_list): handle
7056         NOTE_INSN_DELETED_LABEL, as if it were CODE_LABEL.
7057         (copy_rtx_and_substitute): Likewise; behave to NOTE_INSN_DELETED_LABEL
7058         identically as to CODE_LABEL.
7059
7060         * fold-const (fold): Convert A/B/C to A/(B*C) and
7061         A/(B/C) to (A/B)*C
7062
7063         * except.c (connect_post_landing_pads): Delete the RESX insns.
7064
7065 2001-07-20  Aldy Hernandez  <aldyh@redhat.com>
7066
7067         * config/mips/mips.h (ISA_HAS_NMADD_NMSUB): New macro.
7068
7069         * config/mips/mips.md (nmadd/nmsub): Use macro.
7070
7071 2001-07-20  Nathan Sidwell  <nathan@codesourcery.com>
7072
7073         * cppinit.c (remove_dup_dir): Make static.
7074         (remove_dup_dirs): Make static. Only warn about preempting a
7075         system directory with a non-system directory.
7076
7077 2001-07-19  Geoffrey Keating  <geoffk@redhat.com>
7078
7079         * ifcvt.c (noce_try_store_flag_constants): Correct order
7080         of parameters to trunc_int_for_mode.
7081
7082 2001-07-19  Mark Mitchell  <mark@codesourcery.com>
7083
7084         * reorg.c (fill_simple_delay_slots): If an instruction might throw
7085         an exception that will be caught within this function, do not fill
7086         its delay slot with any subsequent instruction.
7087
7088 2001-07-19  Steve Ellcey <sje@cup.hp.com>
7089
7090         * tm.texi (POINTERS_EXTEND_UNSIGNED) Modify definition.
7091         * optabs.c (can_extend_p) Check HAVE_ptr_extend for a specialized
7092         pointer extension instruction.
7093         * combine.c (nonzero_bits,num_sign_bit_copies) Likewise.
7094         * simplify-rtx.c (simplify_unary_operation) Likewise.
7095         * explow.c (convert_memory_address) Check value of
7096         POINTERS_EXTEND_UNSIGNED to avoid some conversions when
7097         less than zero.
7098         * config/ia64/t-hpux (LIBGCC, INSTALL_LIBGCC, MULTILIB_OPTIONS,
7099         MULTILIB_DIRNAMES, MULTILIB_MATCHES) Add multilib support.
7100         * config/ia64/hpux.h (CPP_SPEC, ASM_SPEC, SUBTARGET_SWITCHES)
7101         Add Multilib Support.
7102         (POINTERS_EXTEND_UNSIGNED)  Define for ILP32 support.
7103         * config/ia64/ia64.h (MASK_ILP32, TARGET_ILP32, SUBTARGET_SWITCHES)
7104         Add Multilib Support.
7105         (POINTER_SIZE, LONG_TYPE_SIZE, MAX_LONG_TYPE_SIZE) Modify for ILP32
7106         support.
7107         * config/ia64/ia64.c (rtx_needs_barrier) Add support for addp4.
7108         * config/ia64/ia64.md (ptr_extend) New instruction to "swizzle"
7109         a 32 bit HP-UX pointer into a 64 bit HP-UX pointer.
7110
7111 2001-07-19  Alexandre Oliva  <aoliva@redhat.com>
7112
7113         * simplify-rtx.c (simplify_replace_rtx): Try to obtain mode from
7114         old and new operands in `<', `3' and `b'.
7115
7116 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
7117
7118         * Makefile.in (emit-rtl.o, c-decl.o): Depend on debug.h.
7119         (final.o): Don't depend on xcoffout.h, dbxout.h or sdbout.h.
7120         (toplev.o): Don't depend on xcoffout.h.
7121         * c-decl.c: Include debug.h
7122         (duplicate_decls): Use debug hook.
7123         * dbxout.c (dbxout_source_file, dbxout_args): Make static.
7124         (dbx_debug_hooks, xcoff_debug_hooks): Update.
7125         (dbxout_types): Remove.
7126         * dbxout.h (dbxout_source_file, dbxout_types, dbxout_args): Remove.
7127         * debug.c (do_nothing_debug_hooks): Update.
7128         (debug_true_tree, debug_nothing_rtx): New.
7129         * debug.h (struct rtx_def): New.
7130         (struct gcc_debug_hooks): New hooks ignore_block,
7131         outlining_inline_function and label.
7132         (debug_true_tree, debug_nothing_rtx, dwarf2out_frame_init,
7133         dwarf2out_frame_finish): New.
7134         * dwarf2out.c (dwarf2out_ignore_block, dwarf2out_abstract_function):
7135         Make static, update prototype.
7136         (dwarf2_debug_hooks): Update.
7137         * dwarf2out.h (dwarf2out_ignore_block, dwarf2out_abstract_function,
7138         dwarf2out_frame_init, dwarf2out_frame_finish): Remove.
7139         * dwarfout.c (dwarf_debug_hooks): Update.
7140         * emit-rtl.c: Include debug.h.
7141         (remove_unnecessary_notes): Use debug hook.
7142         * final.c: Don't include dbxout.h, xcoffout.h or sdbout.h.
7143         (final_scan_insn): Use debug hook.
7144         * integrate.c (output_inline_function): Use debug hook.
7145         * sdbout.c (sdbout_toplevel_data, sdbout_label): Make static.
7146         (sdb_debug_hooks): Update.
7147         * sdbout.h (sdbout_label, sdbout_toplevel_data): Remove.
7148         * toplev.c: Don't include xcoffout.h.
7149         (note_outlining_of_inline_function, debug_ignore_block): Remove.
7150         * toplev.h (note_outlining_of_inline_function, debug_ignore_block):
7151         Remove.
7152         * tree.h (dwarf2out_do_frame): Remove.
7153
7154 2001-07-19  Catherine Moore  <clm@cygnus.com>
7155
7156         * config/v850/v850.h (ASM_OUTPUT_LABELREF): Restore.
7157
7158 2001-07-19  Geoffrey Keating  <geoffk@redhat.com>
7159
7160         * reload1.c (eliminate_regs_in_insn): When updating a set
7161         to the frame pointer to the hardware frame pointer, perform
7162         the update always not just when REPLACE is set.
7163
7164         * reload1.c (choose_reload_regs): Don't inherit a reload
7165         that crosses multiple registers if registers past the first
7166         don't fit in the desired class.
7167
7168         * ifcvt.c (noce_try_store_flag_constants): Use trunc_int_for_mode
7169         when negating constants.
7170
7171 2001-07-19  Toon Moene  <toon@moene.indiv.nluug.nl>
7172
7173         * tree.def: Document restriction on {L|R}SHIFT_EXPR's second argument.
7174         * doc/tree.texi: Ditto.
7175
7176 2001-07-19  Mark Kettenis  <kettenis@wins.uva.nl>
7177             Jakub Jelinek  <jakub@redhat.com>
7178
7179         * unwind-dw2.c (_Unwind_FrameState): Add eh_ptr.
7180         (extract_cie_info): Handle "eh" augmentation properly,
7181         remember eh_ptr.
7182         (struct frame_state, __frame_state_for): New.
7183
7184 2001-07-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7185
7186         * config/alpha/osf.h (ASM_OUTPUT_WEAK_ALIAS, ASM_WEAKEN_LABEL,
7187         HANDLE_SYSV_PRAGMA): Define.
7188         * mips-tfile.c (add_ext_symbol): Pass complete symbol ptr, inline
7189         previous args.
7190         (copy_object): Caller changed.
7191
7192 2001-07-19  Andreas Schwab  <schwab@suse.de>
7193
7194         * configure.in (assembler dwarf2 debug_line support): Define nop
7195         insn for m68k.
7196         * configure: Regenerated.
7197
7198 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
7199
7200         * Makefile.in (toplev.o, dwarfout.o, final.o): Don't depend on
7201         dwarfout.h.
7202         * dbxout.c (dbxout_function): Rename dbxout_funciton_decl, move
7203         to conditionally compiled block.
7204         (dbx_debug_hooks, xcoff_debug_hooks): Update.
7205         * dbxout.h (dbxout_function): Remove.
7206         * debug.c (do_nothing_debug_hooks): Update.
7207         * debug.h (struct gcc_debug_hooks): New hooks function_decl,
7208         global_decl, deferred_inline_function.
7209         * dwarf2out.c (dwarf2_debug_hooks): Update.
7210         (dwarf2out_global_decl): New.
7211         * dwarfout.c: Don't include dwarfout.h.
7212         (dwarfout_global_decl, dwarfout_function_decl,
7213         dwarfout_deferred_inline_function): New.
7214         (dwarf_debug_hooks): Update.
7215         * dwarfout.h: Remove.
7216         * final.c: Don't include dwarfout.h.
7217         * sdbout.c (sdbout_global_decl): New.
7218         (sdbout_debug_hooks): Update.
7219         * toplev.c: Don't include dwarfout.h.
7220         (check_global_declarations, rest_of_compilation): Use new debug hooks.
7221         (note_deferral_of_defined_inline_function): Remove.
7222         * toplev.h (note_deferral_of_defined_inline_function): Remove.
7223         * ch/Makefile.in (lex.o): No dependence on dwarfout.h.
7224         * ch/lex.c: Don't include dwarfout.h.
7225         * cp/Make-lang.in (decl2.o): No dependence on dwarfout.h, dwarf2out.h.
7226         (semantics.o, optimize.o): Depend on debug.h not dwarfout.h.
7227         * cp/decl2.c: Don't include dwarfout.h and dwarf2out.h.
7228         * cp/optimize.c: Include debug.h.
7229         (maybe_clone_body): Use debug hook.
7230         * cp/semantics.c: Include debug.h.
7231         (expand_body): Use debug hook.
7232         * po/POTFILES.in: Remove dwarfout.h.
7233
7234 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
7235
7236         * c-lex.c (c_lex): Remove CPP_INT, CPP_FLOAT cases.
7237         * c-parse.in (yyerror, _yylex): Similarly.
7238         * cppexp.c (parse_number, parse_defined, lex, _cpp_parse_expr):
7239         Don't use CPP_INT, CPP_FLOAT; CPP_NUMBER is enough.
7240         Update comments.
7241         * cpplib.h (CPP_INT, CPP_FLOAT): Remove.
7242         * cp/spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases.
7243
7244 2001-07-18  Jeff Sturm  <jsturm@one-point.com>
7245
7246         * dwarf2out.c (dwarf2out_abstract_function): Don't emit
7247         in-class declaration at -g1.  Fixes c++/2814.
7248
7249 2001-07-18  Richard Henderson  <rth@redhat.com>
7250
7251         * doc/md.texi (reload_in/out): Document restrictions in predicates
7252         and constraints for these patterns.  Document empty string matching
7253         ALL_REGS.
7254
7255 2001-07-18  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7256
7257         * defaults.h (ASM_OUTPUT_WEAK_ALIAS): Check for ASM_WEAKEN_LABEL.
7258
7259 Wed Jul 18 20:47:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
7260
7261         * cse.c: Undo my previous patch.
7262
7263 2001-07-18  Tom Tromey  <tromey@redhat.com>
7264
7265         For PR java/2812:
7266         * configure: Rebuilt.
7267         * configure.in: Don't check for iconv.h or iconv(); use AM_ICONV
7268         instead.
7269         * aclocal.m4 (AM_ICONV): New macro from Bruno Haible.
7270
7271 Wed Jul 18 18:46:30 CEST 2001  Richard Henderson <rth@cygnus.com>
7272                                Jan Hubicka  <jh@suse.cz>
7273
7274         * flow.c (redirect_edge_and_branch): Bail out on complex edges.
7275         (try_optimize_cfg): Do not remove tail recursive labels before sibcall.
7276         * jump.c (mark_jump_label): Do not forward branches.
7277
7278 Wed Jul 18 18:35:01 CEST 2001  Jan Hubicka  <jh@suse.cz>
7279
7280         * cse.c (delete_trivially_dead_insns): Delete the libcall block
7281         when return value is unused.
7282
7283 Wed Jul 18 18:28:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
7284
7285         * gcse.c (pre_insert_copy_insn): Call update_ld_motion_stores.
7286
7287 Wed Jul 18 12:05:29 2001  Nicola Pero  <n.pero@mi.flashnet.it>
7288
7289         * gthr-posix.h (__gthread_objc_mutex_trylock): Fixed return value
7290         on error.  We can't blindly return the result of
7291         pthread_mutex_trylock because it returns a positive number on
7292         error, while we must return -1 on error.
7293         (__gthread_objc_mutex_lock, __gthread_objc_mutex_unlock): Similar
7294         fixes.
7295         Reported by Stephen Brandon <stephen@brandonitconsulting.co.uk>.
7296
7297 2001-07-18  Andreas Jaeger  <aj@suse.de>
7298
7299         * integrate.c (output_inline_function): Correct type of debug_hooks.
7300
7301 2001-07-18  Toon Moene  <toon@moene.indiv.nluug.nl>
7302
7303         * combine.c (combine_simplify_rtx): DIV can be treated
7304         associatively for floats if unsafe math optimisations are enabled.
7305
7306 2001-07-17  Richard Henderson  <rth@redhat.com>
7307
7308         * reload.c (push_secondary_reload): Accept empty-string for ALL_REGS.
7309
7310 2001-07-17  Richard Henderson  <rth@redhat.com>
7311
7312         * calls.c (prepare_call_address): New parameter SIBCALLP.  If true,
7313         don't force the function address into a register.
7314         (expand_call, emit_library_call_value_1): Update callers.
7315         * builtins.c (expand_builtin_apply): Likewise.
7316         * expr.h (prepare_call_address): Update decl.
7317
7318 2001-07-17  Chandrakala Chavva  <cchavva@redhat.com>
7319
7320         * config.gcc: For *-*-chorusos triplet, get chorus.h file from
7321         config directory.
7322         * config/i386/chorus.h: Move up.
7323         * config/sparc/chorus.h: Likewise.
7324         * config/rs6000/chorus.h: Likewise.
7325         * config/chorus.h: Moved here.
7326
7327 2001-07-17  Andreas Schwab  <schwab@suse.de>
7328
7329        * configure.in  (assembler eh_frame optimization): Handle big
7330        endian.
7331        * configure: Regenerated.
7332
7333 Tue Jul 17 23:43:31 CEST 2001  Jan Hubicka  <jh@suse.cz>
7334
7335         * expr.c (epxand_expr): Convert divisions into multiplications by
7336         reciprocals if -ffast-math.
7337
7338 2001-07-17  Neil Booth  <neil@daikokuya.demon.co.uk>
7339
7340         * dbxout.c (dbxout_really_begin_function): Rename to
7341         dbxout_begin_function.
7342         (dbx_debug_hooks, xcoff_debug_hooks): Update.
7343         (dbxout_begin_function): Remove.
7344         (dbxout_function): Update.
7345         (dbxout_source_line): Update prototype.
7346         * dbxout.h (dbxout_begin_function): Remove.
7347         * debug.c (do_nothing_debug_hooks): Update.
7348         (debug_nothing_tree): Update.
7349         (debug_nothing_charstar_rtx): Remove.
7350         * debug.h (union tree_node): Declare.
7351         (struct rtx_def): Remove.
7352         (gcc_debug_hooks): New hooks begin_prologue, end_prologue,
7353         begin_function.  Change source_line prototype.
7354         (debug_nothing_tree): New.
7355         (debug_nothing_charstar_rtx): Delete.
7356         (dwarf2out_begin_prologue): Moved from ...
7357         * tree.h: ... here.
7358         * dwarf2out.c (dwarf2_debug_hooks): Update.
7359         (dwarf2out_begin_prologue): Update prototype.  If genuine dwarf2
7360         debug info, call dwarf2out_source_line.
7361         (dwarf2out_souce_line): Update prototype.
7362         * dwarfout.c (dwarfout_begin_function): Rename dwarfout_end_prologue.
7363         Change prototype, make static.
7364         (dwarfout_source_line): Update prototype.
7365         (dwarf_debug_hooks): Update.
7366         * dwarfout.h (dwarfout_begin_function): Remove.
7367         * final.c (final_start_function, final_scan_insn): Use appropriate
7368         debug hooks, update to use notice_source_line.
7369         (output_source_line): Rename notice_source_line.  Don't call the
7370         source_line debug hook.
7371         * sdbout.c (sdbout_begin_function): Rename sdbout_begin_prologue,
7372         make static, update prototype.
7373         (sdbout_mark_begin_function): Rename sdbout_begin_function, update
7374         prototype.
7375         (sdbout_end_prologue): New.
7376         (sdbout_source_line): Update prototype.
7377         (sdbout_debug_hooks): Update.
7378         (sdbout_symbol): Remove unused var.
7379         * sdbout.h (sdbout_begin_function, sdbout_mark_begin_function):
7380         Delete.
7381         * varasm.c: Include debug.h.
7382         (assemble_start_function): Use begin_function debug_hook.
7383         * xcoffout.c (xcoffout_begin_prologue): Rename xcoffout_begin_function,
7384         update with prototype.
7385         (xcoffout_source_line): Update prototype.
7386         * xcoffout.h (xcoffout_begin_prologue): Rename xcoffout_begin_function,
7387         update prototype.
7388         (xcoffout_source_line): Update prototype.
7389
7390 2001-07-17  Richard Henderson  <rth@redhat.com>
7391
7392         * c-typeck.c (build_binary_op): Do not shorten unsigned
7393         right shift after sign extension.
7394
7395 Tue Jul 17 16:56:05 CEST 2001  Jan Hubicka  <jh@suse.cz>
7396
7397         * combine.c (combine_simplify_rtx): Attempt to simplify
7398         a*(b/c) as (a*b)/c for floats in unsafe_math mode.
7399
7400         * simplify-rtx.c (avoid_constatn_pool_reference): New static function.
7401         (simplify_binary_operation, simplify_unary_operation,
7402          simplify_relational_operation): Use it.
7403
7404         * combine.c (combine_simplify_rtx): Don't do associative law
7405         on divisions; allow associative law on floats.
7406
7407 2001-07-17  H.J. Lu <hjl@gnu.org>
7408             Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
7409
7410         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define iff ASM_WEAKEN_LABEL and
7411         ASM_OUTPUT_WEAK_ALIAS are defined.
7412         * defaults.h (ASM_OUTPUT_WEAK_ALIAS): Define if possible.
7413         * config/mips/iris6.h (ASM_OUTPUT_WEAK_ALIAS, ASM_WEAKEN_LABEL):
7414         Moved ...
7415         * config/mips/iris5.h: ... here.
7416         (HANDLE_SYSV_PRAGMA): Defined as 1.
7417         * varasm.c (weak_finish): Use ASM_OUTPUT_WEAK_ALIAS.
7418         * doc/tm.texi (ASM_OUTPUT_WEAK_ALIAS): Support the undefined weak
7419         symbol.
7420
7421 2001-07-17  Joseph S. Myers  <jsm28@cam.ac.uk>
7422
7423         * c-parse.in (all_prefix_attributes): New variable.
7424         (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): New macros.
7425         (maybe_resetattrs): New production.
7426         (c_parse_init, datadef, fndef, datadecl, setspecs, setattrs, decl,
7427         maybe_type_quals_setattrs, initdecls, notype_initdecls, initdcl,
7428         notype_initdcl, nested_function, notype_nested_function,
7429         component_decl, components, components_notype,
7430         component_declarator, component_notype_declarator,
7431         absdcl_maybe_attribute, parm, firstparm, setspecs_fp, ivar_decl,
7432         ivars, mydecl, myparm): Update.  Avoid prefix attributes just
7433         after a comma being applied to more than one declarator.
7434         * doc/extend.texi (Attribute Syntax): Update.  Remove
7435         documentation of bugs that are no longer present.
7436
7437 2001-07-13  Eric Christopher  <echristo@redhat.com>
7438
7439         * config/mips/mips.h: Change TUNE_MIPS* options to use
7440         mips_tune.
7441         (EXTRA_SPECS): Add cc1_cpu_spec.
7442         * config/mips/mips.md (muldf3): Fix typo.
7443
7444 2001-07-16  Richard Henderson  <rth@redhat.com>
7445
7446         * config/m68k/m68k.c: Include expr.h and reload.h.
7447         (print_operand_address) [16 bit int]: Cast INTVAL to int for %d.
7448         [general int]: Use HOST_WIDE_INT_PRINT_DEC.
7449
7450 2001-07-16  Daniel Berlin  <dan@cgsoftware.com>
7451             Richard Henderson  <rth@redhat.com>
7452
7453         * cse.c (set_live_p): Take INSN argument for cc0; update callers.
7454         (insn_live_p): Fix fall off end of function.
7455         (dead_libcall_p): Remove COUNTS argument; update callers.
7456         (delete_trivially_dead_insns): Remove unused variables.
7457
7458 2001-07-17  Andreas Jaeger  <aj@suse.de>
7459
7460         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix output format for
7461         x86-64 pic support.
7462
7463         * lcm.c (optimize_mode_switching): Avoid warning for unused
7464         variable if !NORMAL_MODE.
7465
7466         * flow.c (try_crossjump_to_edge): Remove unused variable.
7467
7468 2001-07-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7469
7470         * inclhack.def (ultrix_atexit_param): New hack to fix ultrix 4.3
7471         atexit declaration in stdlib.h.
7472
7473 2001-07-16  Richard Begg  <Richard.Begg@colesmyer.com.au>
7474
7475         * fixinc/inclhack.def(hpux_vsnprintf): brokenness in stdio.h
7476
7477 Mon Jul 16 22:48:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
7478
7479         * basic-block.h (CLEANUP_PRE_SIBCALL): New constant.
7480         * except.c (finish_eh_generation): Update call of cleanup_cfg;
7481         do rebuild_jump_labels instead of jump_optimize
7482         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
7483         * toplev.c (rest_of_compulation): Likewise for -Wreturn_type.
7484         * flow.c (try_optimize_cfg): Remove unneeded code_labels.
7485
7486         * flow.c: Include timevar.h
7487         (find_basic_block): Push/pop timevar;
7488         (cleanup_cfg): Likewise.
7489         * timevar.def (TV_CFG, TV_CLEANUP_CFG): New.
7490         * Makefile: Add dependencies on timevar.h
7491
7492         * integrate.c (save_for_inline): Kill all BASIC_BLOCK notes.
7493         (copy_insn_list): Avoid killing of BASIC_BLOCK notes.
7494
7495         * rtl.h (delete_trivially_dead_insns): Add new parameter.
7496         * toplev.c (rest_of_compilation): Update calls.
7497         * cse.c (set_live_p, insn_live_p, dead_libcall_p): Break out from ...
7498         (delete_trivially_dead_insns): ... here; accept new argument
7499         preserve_basic_blocks; preserve basic blocks if set.
7500
7501         * reg-stack.c (stack_regs_mentioned): Return 0 if
7502         stack_regs_mentioned_data is not initialized.
7503         (reg_to_stack): Make stack_regs_mentioned survive after the
7504         reg-stack is completted; do not call cleanup_cfg.
7505         * toplev.c (rest_of_compilation): Do cleanup_cfg before bb-reorder;
7506         make cleanup_cfg after bb-reorder to output to debug file.
7507
7508 2001-07-16  Richard Henderson  <rth@redhat.com>
7509
7510         * regclass.c (init_reg_sets): Use only 32 bits per initializer
7511         from int_reg_class_contents.
7512
7513 2001-07-16  Richard Henderson  <rth@redhat.com>
7514
7515         * hard-reg-set.h (regs_invalidated_by_call): Declare.
7516         * regclass.c (regs_invalidated_by_call): Move from cse.c.
7517         (init_reg_sets_1): Move initialization from cse_main.
7518         * cse.c (regs_invalidated_by_call): Move to regclass.c.
7519         (cse_main): Move its initialization also.
7520         * df.c (df_insn_refs_record): Use regs_invalidated_by_call.
7521         * flow.c (propagate_one_insn): Likewise.
7522         * gcse.c (compute_hash_table): Likewise.
7523         (compute_kill_rd, compute_store_table): Likewise.
7524         * sched-deps.c (sched_analyze_1): Likewise.
7525
7526 Mon Jul 16 18:07:07 2001  J"orn Rennecke <amylaar@redhat.com>
7527
7528         * gcse.c (pre_insert_copy_insn): Use gen_move_insn instead of
7529         gen_rtx_SET.
7530
7531 2001-07-16  Steve Ellcey <sje@cup.hp.com>
7532
7533         * dominance.c (calc_dfs_tree_nonrec): Reverse order of tests
7534         in if statement so we don't access undefined memory.
7535
7536 2001-07-16  Daniel Berlin  <dan@cgsoftware.com>
7537
7538         * gcse.c: Update comment at top.
7539         Update comment on mem handling.
7540         mem_last_set, mem_first_set, mem_set_in_block: gone.
7541         Declaration of reg_set_info: gone.
7542         (oprs_unchanged_p): Don't use mem_*set_* anymore. They are
7543         pointless with load_killed_in_block_p (they are *more*
7544         conservative then it, not less, and less accurate).
7545         (oprs_not_set_p): Ditto.
7546         (alloc_gcse_mem): Don't allocate mem_set_in_block
7547         (free_gcse_mem): Don't free it, either.
7548         (record_last_mem_set_info): Update comment in front, remove
7549         mem_*set_* stuff. Note the reason we don't handle stores directly
7550         here.
7551         (compute_hash_table): Update comments to reflect reality. Remove
7552         mem_*set_* references.
7553         (reset_opr_set_tables): Remove mem_*set_* references.
7554         (mark_call): Ditto.
7555         (mark_set): Ditto.  Also remove double sets of bitmaps for REG's.
7556         (mark_clobber): Ditto (on both parts, we double set here too).
7557         (expr_killed_p): Remove mem_set_in_block test.
7558         (compute_transp): Remove mem_set_in_block test.
7559
7560         * ssa-ccp.c: (optimize_unexecutable_edges): Add note about removal
7561         of edge, and removal of phi alternative to dump file.
7562         (ssa_ccp_substitute_constants): Add note about register now being
7563         constant, and which uses were replaced in what insns to dump file.
7564
7565 2001-07-16  Andreas Jaeger  <aj@suse.de>
7566
7567         * gcov.c (output_data): Use HOST_WIDEST_INT_PRINT_DEC to output
7568         variables of type HOST_WIDEST_INT.
7569
7570         * libgcc2.c (__bb_exit_func): Handle gcov_type as long long.
7571         (__bb_exit_func): Correct type of count_max to avoid overflow.
7572         (num_digits): Handle long long argument.
7573
7574         * combine.c (gen_lowpart_for_combine): Remove unused variable.
7575
7576 2001-07-16  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
7577
7578         * output.h (sdb_begin_function_line): Restore as an extern
7579         variable.
7580         * sdbout.c (sdb_begin_function_line): Make extern.
7581
7582 2001-07-15  Richard Henderson  <rth@redhat.com>
7583
7584         * machmode.def (Pmode): Redefine if GENERATOR_FILE.
7585         * genrecog.c (maybe_both_true_mode): New.
7586         (maybe_both_true_2): Use it.
7587         (write_switch): Don't put Pmode in a switch.
7588         * rtl.c (mode arrays): Don't explicitly size them.
7589
7590 Sun Jul 15 14:07:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
7591
7592         * toplev.c (rest_of_compilation): Fix register_life_up_to_date
7593         handling; move unconditional splitting before mode switching.
7594
7595         * i386.md (type): Add fistp type.
7596         (i387, length_attr, scheduling definitions): Handle this type.
7597         (fix_trunc?f?i2): Revamp to use mode switching.
7598         (fix_trunct?f?i_nonmemory, fix_trunc?f?i_memory): New patterns.
7599         * i386.h (fp_cw_mode): New enum
7600         (OPTIMIZE_MODE_SWITCHING, NUM_MODES_FOR_MODE_SWITCHING, MODE_NEEDED,
7601         MODE_PRIORITY_TO_MODE, ENUM_MODE_SET): New macros.
7602
7603 Sun Jul 15 12:53:51 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7604
7605         * Makefile.in (integrate.o): Add debug.h.
7606         * integrate.c (debug.h): Add.
7607         (output_inline_function): Save, reset, and restore debug_hooks.
7608
7609 2001-07-15  Richard Henderson  <rth@redhat.com>
7610
7611         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use CCmode
7612         instead of COMPARE for the EQUIV expression.
7613
7614 2001-07-15  Richard Henderson  <rth@redhat.com>
7615
7616         * flow.c (redirect_edge_and_branch_force): Initialize
7617         global_live_at_start and global_live_at_end.
7618         (allocate_bb_life_data): Export.
7619         * basic-block.h (allocate_bb_life_data): Declare.
7620         * toplev.c (rest_of_compilation): Call it.
7621
7622 2001-07-15  Richard Henderson  <rth@redhat.com>
7623
7624         * config/alpha/alpha.c (alpha_tablejump_addr_vec): New.
7625         (alpha_tablejump_best_label): New.
7626         * config/alpha/alpha-protos.h: Declare them.
7627         * config/alpha/alpha.md: Use braced strings for code blocks.
7628         (tablejump_osf): Break out add with r29.
7629         (tablejump_osf_internal): Remove.
7630         (tablejump_osf_nt_internal): Rename from tablejump_nt_internal,
7631         use alpha_tablejump_addr_vec and alpha_tablejump_best_label.
7632
7633 Sun Jul 15 00:53:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
7634
7635         * loop.c (scan_loop): Add USEs inside PARALLELs into dependencies
7636         of the movable.
7637
7638         * toplev.c (rest_of_compilation): Allow new pseudoes for mode switching.
7639
7640         * i386-protos.h (ix86_split_fp_branch): Update prototype.
7641         (ix86_fp_jump_nontrivial_p): New.
7642         * i386.md (fp_jcc_?): Update call of split_fp_branch;
7643         use ix86_fp_jump_nontrivial_p.
7644         * i386.c (ix86_fp_jump_nontrivial_p): New.
7645         (ix86_split_fp_branch): Accept code instead of rtx.
7646         (ix86_expand_compare): Expand comparison early in case
7647         doing so is resonably cheap.
7648
7649 2001-07-15  Nick Clifton  <nickc@cambridge.redhat.com>
7650
7651         * config/rs6000/sysv4.h (CPP_ENDIAN_BIG_SPEC): Assert 'endian'
7652         not 'machine'.
7653         (CPP_ENDIAN_LITTLE_SPEC): Assert 'endian' not 'machine'.
7654         (CPP_ENDIAN_SOLARIS_SPEC): Assert 'endian' not 'machine'.
7655
7656 2001-07-15  Neil Booth  <neil@daikokuya.demon.co.uk>
7657
7658         * dbxout.c (dbxout_source_line): Make static, update prototype.
7659         (dbx_debug_hooks, xcoff_debug_hooks): Add new hooks.
7660         (dbxout_init, dbxout_finish, dbxout_source_line,
7661         dbxout_begin_block, dbxout_end_block): Update for new prototypes.
7662         * dbxout.h (dbxout_source_line): Delete.
7663         * debug.c (debug_nothing_file, debug_nothing_file_int,
7664         debug_nothing_file_charstar_rtx): New.
7665         (do_nothing_debug_hooks): Update.
7666         (debug_nothing_void, debug_nothing_charstar_rtx,
7667         dwarf2out_end_epilogue): New.
7668         (debug_nothing_file_charstar, debug_nothing_file_int_int): Rename.
7669         * debug.h (struct rtx_def): Declare.
7670         (gcc_debug_hooks): New hooks source_line, end_epilogue
7671         and end_function.
7672         (debug_nothing_void, debug_nothing_charstar_rtx,
7673         dwarf2out_end_epilogue): New.
7674         (debug_nothing_file_charstar, debug_nothing_file_int_int): Rename.
7675         * dwarf2out.c (dwarf2out_source_line): Make static, update prototype.
7676         (dwarf2_debug_hooks): Update.
7677         (dwarf2out_init, dwarf2out_finish, dwarf2out_source_line,
7678         dwarf2out_begin_block, dwarf2out_end_block): Update for new prototypes.
7679         * dwarf2out.h (dwarf2out_source_line): Remove.
7680         * dwarfout.c (dwarfout_end_epilogue, dwarfout_end_function):
7681         Make static, update prototype.
7682         (dwarfout_init, dwarfout_finish, dwarfout_source_line,
7683         dwarfout_begin_block, dwarfout_end_block): Update for new prototypes.
7684         (dwarf_debug_hooks): Update.
7685         * dwarfout.h (dwarfout_end_epilogue, dwarfout_source_line,
7686         dwarfout_end_function): Remove.
7687         * final.c (profile_function): Use debug hooks for ending functions
7688         and epilogues.
7689         (output_source_line, final_end_function): Update prototype,
7690         use debug hooks.
7691         (final_start_function, final_scan_insn): Update.
7692         * output.h (sdb_begin_function_line): Remove.
7693         (final_end_function): Update prototype.
7694         * sdbout.c (sdb_begin_function_line): Make static.
7695         (PUT_SDB_EPILOGUE_END): Move to sdbout_end_epilogue.
7696         (sdbout_source_line): New.
7697         (sdbout_end_epilogue, sdbout_end_function): Make static, update
7698         prototypes.
7699         (sdb_debug_hooks): Update.
7700         (sdbout_init, sdbout_source_line,
7701         sdbout_begin_block, sdbout_end_block): Update for new prototypes.
7702         * sdbout.h (sdbout_end_epilogue, sdbout_end_function): Remove.
7703         * toplev.c (compile_file, rest_of_compilation): Update.
7704         * tree.h (dwarf2out_end_epilogue): Move to debug.h.
7705         * xcoffout.c (xcoffout_source_line, xcoffout_begin_block,
7706         xcoffout_end_block, xcoffout_end_epilogue, xcoffout_end_function):
7707         Update for prototype changes.
7708         * xcoffout.h (xcoffout_source_line, xcoffout_begin_block,
7709         xcoffout_end_block, xcoffout_end_epilogue): Update prototypes.
7710
7711 2001-07-15  Richard Henderson  <rth@redhat.com>
7712
7713         * config/alpha/alpha.h (TARGET_ABI_OSF): New.
7714         (TARGET_ABI_WINDOWS_NT, TARGET_ABI_OPEN_VMS): Rename; update users.
7715         * config/alpha/alpha-protos.h: Update TARGET_ABI_* users.
7716         * config/alpha/alpha.c: Likewise.
7717         * config/alpha/alpha.md: Likewise.
7718         * config/alpha/alpha32.h: Likewise.
7719         * config/alpha/vms.h: Likewise.
7720         (OPEN_VMS): Remove.
7721
7722 2001-07-14  Richard Henderson  <rth@redhat.com>
7723
7724         * config/alpha/alpha.md: Use define_constants for unspec values.
7725         Substitute throughout.
7726
7727 2001-07-14  Tim Josling  <tej@melbpc.org.au>
7728
7729         * tree.def (EXPON_EXPR) remove. Never supported anyway.
7730
7731 2001-07-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7732
7733         * pa.md: Remove unused constraints from define_split's.
7734
7735 2001-04-14  Richard Henderson  <rth@redhat.com>
7736
7737         * ifcvt.c (find_cond_trap): Test for exit block.
7738
7739 Sun Jul 15 00:50:20 CEST 2001  Jan Hubicka  <jh@suse.cz>
7740
7741         Re-install recently reverted patch.
7742         * emit-rtl.c (try_split): Update mark_jump_label call.
7743         * flow.c (find_sub_basic_blocks): Likewise.
7744         * jump.c (cross_jump_death_matters, find_cross_jump, do_cross_jump,
7745         jump_back_p): Kill.
7746         (mark_all_labels): Kill second parameter.
7747         (jump_optimize, jump_optimize_1): Kill cross_jump parameter.
7748         (rebuild_jump_labels, jump_optimize_minimal): Update call
7749         of jump_optimize_1.
7750         (jump_optimize_1): Kill crossjumping code.
7751         (mark_jump_label): Kill cross_jump parameter.
7752         * rtl.h (mark_jump_label, jump_optimize): Update prototypes.
7753         (JUMP_CROSS_JUMP, JUMP_CROSS_JUMP_DEATH_MATTERS): Kill.
7754         * reg-stack.c (reg_to_stack): Do not rebuild if not needed; do
7755          splitting.
7756         * toplev.c (enum dump_file_index): Kill DFI_jump2; put DFI_stack before
7757         DFI_bpro.
7758         (dump_file_info): Likewise.
7759         (rest_of_compilation): Update calls to jump_optimize; kill jump2 pass;
7760         reorganize passes to do reg-stack first, bb-reorder second.
7761         * invoke.texi (-d letters doc): Remove the jump2 pass.
7762
7763 2001-07-14  Richard Henderson  <rth@redhat.com>
7764
7765         * ifcvt.c (find_cond_trap): New.
7766         (find_if_header): Call it.
7767         (merge_if_block): Relax existing jump sanity check.
7768         * jump.c (jump_optimize_1): Remove conditional trap handling.
7769
7770 2001-07-14  Alan Modra  <amodra@bigpond.net.au>
7771
7772         * config/pa/pa.c (emit_hpdiv_const): Return reg is r2 for 64-bit
7773         millicode.
7774         (insn_refs_are_delayed): Correct comment.
7775         * config/pa/pa.h (INSN_REFERENCES_ARE_DELAYED): Likewise.
7776         * config/pa/pa.md (mulsi3): If TARGET_64BIT, clobber r2
7777         instead of r31.  Make associated insn !TARGET_64BIT, and
7778         provide an additional 64-bit insn that clobbers r2.
7779         (divsi3): Likewise.
7780         (udivsi3): Likewise.
7781         (modsi3): Likewise.
7782         (umodsi3): Likewise.
7783
7784 Sat Jul 14 02:58:38 CEST 2001  Jan Hubicka  <jh@suse.cz>
7785
7786         * bb-reorder.c (skip_insn_after_block): Get past the line number notes.
7787
7788         * flow.c (redirect_edge_and_branch_force, split_edge,
7789         try_crossjump_to_edge): Use set_block_for_new_insns.
7790         * bb-reorder.c (emit_jump_to_block_after): Call set_block_for_new_insns.
7791
7792 2001-07-13  H.J. Lu  (hjl@gnu.org)
7793
7794         * config/elfos.h (UNIQUE_SECTION): Enable .bss section with
7795         the correct patch.
7796
7797 2001-07-13  Geoffrey Keating  <geoffk@redhat.com>
7798
7799         Revert H.J. Lu's UNIQUE_SECTION patch of 2001-07-13.
7800
7801 2001-07-13  Joseph S. Myers  <jsm28@cam.ac.uk>
7802
7803         * c-common.c (decl_attributes): Take a pointer to the node to
7804         which attributes are to be attached, and a flags argument.
7805         * c-common.h (enum attribute_flags): New.
7806         (decl_attributes): Update prototype.
7807         * c-decl.c (start_decl, push_parm_decl, finish_struct,
7808         finish_enum, start_function): Update calls to decl_attributes.
7809         * c-parse.in (component_declarator, component_notype_declarator,
7810         label): Update calls to decl_attributes.
7811
7812 Fri Jul 13 23:04:00 2001  Denis Chertykov  <denisc@overta.ru>
7813
7814         * config/avr/avr.md (strlenhi): PARALLEL keyword removed.
7815         * config/avr/avr.c (legitimate_address_p): Return value changed
7816         from letter to register classes. For better debugging.
7817
7818 2001-07-13  Kazu Hirata  <kazu@hxi.com>
7819
7820         * jump.c (reversed_comparison_code_parts): Fix comment typos.
7821
7822 2001-07-13  H.J. Lu  (hjl@gnu.org)
7823
7824         * config/elfos.h (UNIQUE_SECTION): Enable .bss section.
7825
7826 2001-07-13  Marc Espie  <espie@cvs.openbsd.org>
7827
7828         * config.gcc (*-*-openbsd*):  Add fragment to compile libgcc
7829         correctly for shared configurations.
7830         * config/t-libgcc-pic:  New.
7831         * config/{i386,m68k,sparc}/t-openbsd:  New.
7832         * config/openbsd.h:  Include cpu_spec in cpp_spec where needed.
7833         Support -shared.  Support debugging libraries with -g.
7834         * config/i386/openbsd.h:  Correct ASM_COMMENT_START.  Ensure dwarf2
7835         frame information does not emit pointer diffs.
7836         * config/sparc/openbsd.h:  Ensure dwarf2 frame information does not
7837         emit pointer diffs.
7838
7839 2001-07-13  Geoffrey Keating  <geoffk@redhat.com>
7840
7841         Revert Jan Hubicka's patch of Fri Jul 13 14:46:21 CEST 2001.
7842
7843 2001-07-13  David Edelsohn  <edelsohn@gnu.org>
7844
7845         * combine.c (try_combine): Ensure const_int pow2 is positive.
7846
7847 2001-07-13  Hartmut Penner  <hpenner@de.ibm.com>
7848
7849         * config.gcc: Add configuration for s/390.
7850         * config/s390/s390.c: New. Subroutines for code generation.
7851         * config/s390/s390.h: New. Definitions for s/390.
7852         * config/s390/s390-protos.h: New. Prototypes.
7853         * config/s390/linux.h: New. Definitions for linux for s/390.
7854         * config/s390/linux64.h: New. Definitions for linux for zSeries.
7855         * config/s390/t-linux: New. Makefile fragment.
7856         * config/s390/s390.md: New. Machine description for s/390 and zSeries.
7857         * config/s390/fixdfdi.h: New. Fix L_fix*di.
7858
7859 Fri Jul 13 14:46:21 CEST 2001  Jan Hubicka  <jh@suse.cz>
7860
7861         * emit-rtl.c (try_split): Update mark_jump_label call.
7862         * flow.c (find_sub_basic_blocks): Likewise.
7863         * jump.c (cross_jump_death_matters, find_cross_jump, do_cross_jump,
7864         jump_back_p): Kill.
7865         (mark_all_labels): Kill second parameter.
7866         (jump_optimize, jump_optimize_1): Kill cross_jump parameter.
7867         (rebuild_jump_labels, jump_optimize_minimal): Update call
7868         of jump_optimize_1.
7869         (jump_optimize_1): Kill crossjumping code.
7870         (mark_jump_label): Kill cross_jump parameter.
7871         * rtl.h (mark_jump_label, jump_optimize): Update prototypes.
7872         (JUMP_CROSS_JUMP, JUMP_CROSS_JUMP_DEATH_MATTERS): Kill.
7873         * reg-stack.c (reg_to_stack): Do not rebuild if not needed; do
7874          splitting.
7875         * toplev.c (enum dump_file_index): Kill DFI_jump2; put DFI_stack before
7876         DFI_bpro.
7877         (rest_of_compilation): Update calls to jump_optimize; kill jump2 pass;
7878         reorganize passes to do reg-stack first, bb-reorder second.
7879         * invoke.texi (-d letters doc): Remove the jump2 pass.
7880
7881 2001-07-12  Steve Ellcey <sje@cup.hp.com>
7882
7883         * toplev.c (compile_file): Put call of ASM_FILE_START inside ifdef.
7884
7885 Thu Jul 12 17:57:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
7886
7887         * flow.c (try_optimize_cfg): Delete whole chain of trivially dead
7888         basic blocks.
7889         (verify_flow_info): Make diagnostics prettier.
7890
7891 Thu Jul 12 16:48:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
7892
7893         * flow.c (find_basic_blocks_1): Do not emit NOP after call.
7894
7895         * flow.c (outgoing_edges_match): Return early if condition reversal
7896         failed.
7897
7898 2001-07-06  Richard Sandiford  <rsandifo@redhat.com>
7899
7900         * config/mips/mips.c (print_operand): Extend '%D' to memory operands.
7901         (mips_move_2words): When splitting a move into two instructions,
7902         prefix the second address operand with '%D'.
7903
7904 2001-07-12  Neil Booth  <neil@daikokuya.demon.co.uk>
7905
7906         * Makefile.in (final.o): Depend on debug.h.
7907         * dbxout.c (dbxout_begin_block, dbxout_end_block): New.
7908         (dbx_debug_hooks): Add new hooks.
7909         (xcoff_debug_hooks): New.
7910         * debug.c (debug_nothing_file_int_int): New.
7911         (do_nothing_debug_hooks): Update.
7912         * debug.h (gcc_debug_hooks): New hooks begin_block and end_block.
7913         (debug_nothing_file_int_int): New.
7914         * dwarf2out.c (dwarf2out_begin_block, dwarf2out_end_block): Make
7915         static, update prototype.
7916         (dwarf2_debug_hooks): Update.
7917         * dwarf2out.h (dwarf2out_begin_block, dwarf2out_end_block): Remove.
7918         * dwarfout.c (dwarfout_begin_block, dwarfout_end_block): Make
7919         static, update prototype.
7920         (dwarf_debug_hooks): Update.
7921         * dwarfout.h (dwarfout_begin_block, dwarfout_end_block): Remove.
7922         * final.c: Include debug.h.
7923         (final_scan_insn): Use debug hooks when beginning and ending blocks.
7924         * sdbout.c (sdbout_begin_block, sdbout_end_block): Make
7925         static, update prototype.
7926         (sdb_debug_hooks): Update.
7927         * sdbout.h (sdbout_begin_block, sdbout_end_block): Remove.
7928         * toplev.c: Distinguish between xcoff and dbx.
7929
7930         * f/lex.c (ffelex_file_pop_, ffelex_file_push_, ffelex_hash_):
7931         Call all debug hooks, not just dwarf ones.
7932
7933 2001-07-11  Timothy Wall  <twall@redhat.com>
7934
7935         * config.gcc: Add configuration for AIX5/IA64.
7936         * config/ia64/aix.h: New.  AIX5/IA64-specific configuration.
7937         * config/ia64/crt[in].asm: New.  Generic static ctor/dtor
7938         support prefix/suffix code.
7939         * config/ia64/t-aix: New.  Makefile fragment.
7940         * config/ia64/unwind-aix.c: New.  Unwind table entry lookup.
7941
7942 2001-07-11  Kazu Hirata  <kazu@hxi.com>
7943
7944         * recog.c (validate_change): Fix a comment typo.
7945
7946 2001-07-11  Neil Booth  <neil@daikokuya.demon.co.uk>
7947
7948         * Makefile.in (c-lex.o): Wrap long lines.  Depend on debug.h.
7949         * c-lex.c (cb_file_change, cb_define, cb_undef): Use debug
7950         hooks directly.
7951         * dbxout.c (dbx_debug_hooks): Add new hooks.
7952         (dbxout_start_new_source_file): Rename dbxout_start_source_file,
7953         make static.
7954         (dbxout_resume_previous_source_file): Rename dbxout_end_source_file,
7955         make static.
7956         * dbxout.h (dbxout_start_new_source_file,
7957         dbxout_resume_previous_source_file): Delete.
7958         * debug.c (do_nothing_debug_hooks): Add new hooks.
7959         (debug_nothing_init_finish): Rename debug_nothing_file_charstar.
7960         (debug_nothing_int_charstar, debug_nothing_int): New.
7961         * debug.h (gcc_debug_hooks): New hooks define, undef,
7962         start_source_file and end_source_file.
7963         (debug_nothing_init_finish): Rename debug_nothing_file_charstar.
7964         (debug_nothing_int_charstar, debug_nothing_int): New.
7965         * dwarf2out.c (dwarf2_debug_hooks): Add new hooks.  Move into
7966         the conditionally compiled section.
7967         (dwarf2out_start_source_file, dwarf2out_end_source_file,
7968         dwarf2out_define, dwarf2out_undef): Make static.
7969         * dwarf2out.h (dwarf2out_start_source_file, dwarf2out_end_source_file,
7970         dwarf2out_define, dwarf2out_undef): Remove.
7971         * dwarfout.c (dwarf_debug_hooks): Add new hooks.
7972         (dwarfout_start_source_file, dwarfout_end_source_file,
7973         dwarfout_define, dwarfout_undef): Make static.
7974         (dwarfout_start_source_file_check,
7975         dwarfout_end_source_file_check): New.
7976         (dwarfout_define, dwarfout_finish): Update.
7977         * dwarfout.h (dwarfout_start_new_source_file,
7978         dwarfout_resume_previous_source_file, dwarfout_define,
7979         dwarfout_undef): Remove.
7980         * sdbout.c (sdb_debug_hooks): Add new hooks.
7981         (sdbout_start_new_source_file): Rename sdbout_start_source_file,
7982         make static.
7983         (sdbout_resume_previous_source_file): Rename sdbout_end_source_file,
7984         make static, take an arg.
7985         * sdbout.h (sdbout_start_new_source_file,
7986         sdbout_resume_previous_source_file): Delete.
7987         * toplev.c (debug_start_source_file, debug_end_source_file,
7988         debug_define, debug_undef): Delete.
7989         * toplev.h (debug_start_source_file, debug_end_source_file,
7990         debug_define, debug_undef): Delete.
7991
7992         * java/jcf-parse.c: Include debug.h.
7993         (parse_class_file): Update to use debug hooks directly.
7994         * java/Make-lang.in (jcf-parse.o): Depend on debug.h.
7995
7996 Wed Jul 11 10:07:18 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7997
7998         * alias.c (set_mem_alias_set): New function.
7999         * rtl.h (set_mem_alias_set): Declare it.
8000         * builtins.c (expand_builtin_return_addr): Call it instead of
8001         using MEM_ALIAS_SET accessor.
8002         (expand_builtin_setjmp_setup, expand_builtin_longjmp): Likewise.
8003         (get_memory_rtx, expand_builtin_va_arg): Likewise.
8004         (expand_builtin_va_copy):Likewise.
8005         * caller-save.c (setup_save_areas): Likewise.
8006         * calls.c (compute_argument_addresses): Likewise.
8007         * explow.c (set_mem_attributes): Likewise.
8008         * expr.c (emit_single_push_insn, emit_push_insn): Likewise.
8009         (expand_assignment, store_constructor_field, store_field): Likewise.
8010         (expand_expr_unaligned): Likewise.
8011         * function.c (assign_stack_temp_for_type): Likewise.
8012         (put_reg_into_stack, gen_mem_addressof): Likewise.
8013         * ifcvt.c (noce_try_cmove_arith): Likewise.
8014         * reload1.c (reload, alter_reg): Likewise.
8015         * config/alpha/alpha.c (get_aligned_mem): Likewise.
8016         (alpha_set_memflags_1, alpha_expand_unaligned_load): Likewise.
8017         (alpha_expand_unaligned_store): Likewise
8018         (alpha_expand_unaligned_load_words): Likewise.
8019         (alpha_expand_unaligned_store_words): Likewise.
8020         (alpha_expand_block_clear, alpha_expand_prologue): Likewise.
8021         (alpha_expand_epilogue): Likewise.
8022         * config/arc/arc.c (arc_setup_incoming_varargs): Likewise.
8023         * config/clipper/clipper.c (clipper_builtin_saveregs): Likewise.
8024         * config/i386/i386.c (legitimize_pic_address): Likewise.
8025         * config/i960/i960.c (setup_incoming_varargs): Likewise.
8026         * config/ia64/ia64.c (spill_restore_mem): Likewise.
8027         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
8028         * config/m8k/m88k.c (m88k_builtin_saveregs): Likewise.
8029         * config/mips/mips.c (mips_va_arg): Likewise.
8030         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
8031         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
8032         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
8033         (setup_incoming_varargs, rs6000_va_arg): Likewise.
8034         (rs6000_emit_eh_toc_restore, rs6000_emit_prologue): Likewise.
8035         (rs6000_emit_epilogue): Likewise.
8036         * config/sh/sh.c (sh_builtin_saveregs): Likewise.
8037         * config/sparc/sparc.c (sparc_va_arg): Likewise.
8038         * config/v850/v850.c (v850_va_arg): Likewise.
8039
8040 Wed Jul 11 21:27:25 CEST 2001  Jan Hubicka  <jh@suse.cz>
8041
8042         * flow.c (merge_blocks_move_successor_nojumps): Do not crash
8043         when fallthru edge is present.
8044         (mege_blocks): Handle case where creation of jump insn
8045         is required.
8046
8047         * basic-block.h (CLEANUP_EXPENSIVE, CLEANUP_CROSSJUMP,
8048         CLEANUP_POST_REGSTACK): New constants.
8049         * except.c (finish_eh_generation): Update call of cleanup_cfg,
8050         * jump.c (rtx_renumbered_equal_p): Handle 't' fields.
8051         * output.h (cleanup_cfg): Update prototype.
8052         * reg-stack.c (reg_to_stack): Use cleanup_cfg instead of jump_optimize
8053         * sibcall.c (optimize_sibling_and_tail_recursive_call): Update
8054         cleanup_cfg call; kill missleading comment.
8055         * toplev.c (rest_of_compilation): Update all cleanup_cfg calls.
8056         * flow.c (merge_blocks, try_optimize_cfg, cleanup_cfg): Accept mode
8057         parameter; control optimizations performed using it.
8058         (flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
8059         try_crossjump_bb): New functions.
8060
8061 2001-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8062
8063         * pa.c (pa_output_function_prologue): Delete prototype.  Make function
8064         extern.
8065         * pa.h (ASM_OUTPUT_MI_THUNK): Rename output_function_prologue to
8066         pa_output_function_prologue.
8067         * pa-protos.h (pa_output_function_prologue): New prototype.
8068
8069 2001-07-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8070
8071         * stmt.c (emit_case_nodes): Widen high and low instead of new_bound
8072         and low to get correct sign extension in low+high test.
8073
8074 2001-07-11  Janis Johnson <janis@us.ibm.com>
8075
8076         * gcov.c (arcdata): Use gcov_type to fix branch percentage
8077         for large hit count.
8078
8079         * profile.c (branch_prob): Fix .bbg info for computed gotos
8080         and C++ EH code.
8081
8082 2001-07-11  Mark Mitchell  <mark@codesourcery.com>
8083
8084         * stmt.c (parse_output_constraint): New function, split out
8085         from ...
8086         (expand_asm_operands): ... here.  Use parse_output_constraint.
8087         * tree.h (parse_output_constraint): Declare it.
8088
8089 2001-07-11  Richard Henderson  <rth@redhat.com>
8090
8091         * bitmap.c: Comment some functions; fiddle whitespace.
8092         (bitmap_free): Don't export.
8093         (bitmap_element_allocate): Use memset.
8094         * bitmap.h (bitmap_free): Don't declare.
8095
8096 2001-07-11  Daniel Berlin  <dan@cgsoftware.com>
8097
8098         * gcse.c, lcm.c, sched-deps.c:
8099         s/free on sbitmap vectors/sbitmap_vector_free on sbitmap vectors/g
8100
8101         * flow.c (flow_loops_find): Free dom if we found no loops, since
8102         we aren't going to save it.
8103
8104         * lcm.c (pre_edge_rev_lcm): Free st_antin, st_antout when we are
8105         done.
8106
8107 Wed Jul 11 09:00:48 2001  Jeffrey A Law  (law@cygnus.com)
8108
8109         * ssa-ccp.c (ssa_fast_dce): Free worklist when completed.
8110
8111 Wed Jul 11 10:07:18 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8112
8113         * dwarf2out.c (dwarf2out_init, dwarf2out_finish): Add dummy version
8114         #ifndef DWARF2_DEBUGGING_INFO.
8115
8116 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
8117
8118         * simplify-rtx.c (simplify_gen_subreg): Return null for QUEUED rtxes.
8119
8120 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
8121
8122         * config/mips/mips.c (gen_int_relational): Tell the caller not to
8123         reverse a branch if a NE comparison is implemented with GTU.
8124
8125 2001-07-11  Richard Sandiford  <rsandifo@redhat.com>
8126             H.J. Lu  <hjl@gnu.org>
8127
8128         * mips.md (call_internal1): Use CONSTANT_ADDRESS_P to check for
8129         constant addresses.
8130         (call_internal2): Likewise.
8131         (call_value_internal1): Likewise.
8132         (call_value_internal2): Likewise.
8133         (call_value_multiple_internal1): Likewise.
8134         (call_value_multiple_internal2): Likewise.
8135
8136 2001-07-10  Kazu Hirata  <kazu@hxi.com>
8137
8138         * calls.c (emit_library_call_value_1): Fix a comment typo.
8139         * dwarf2out.c (mem_loc_descriptor): Likewise.
8140         * config/i386/i386.c (ix86_expand_aligntest): Likewise.
8141
8142 2001-07-11  David Billinghurst <David.Billinghurst@riotinto.com>
8143
8144         * simplify-rtx.c (simplify_subreg): Fix typo in comment
8145
8146 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8147
8148         * recog.c (offsettable_address_p): Handle LO_SUM case.
8149         * config/mips/mips.c (double_memory_operand): Use adjust_address_nv
8150         instead of plus_constant.
8151
8152 2001-07-10  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8153
8154         * reload1.c (merge_assigned_reloads): After a RELOAD_OTHER merge,
8155         fix setting of the reloads of that reload to RELOAD_FOR_OTHER_ADDRESS.
8156
8157 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8158
8159         * config/rs6000/rs6000.c (print_operand, case 'L', 'Y', 'Z'): Use
8160         adjust_address_nv instead of plus_constant.
8161
8162 2001-07-10  Neil Booth  <neil@daikokuya.demon.co.uk>
8163
8164         * Makefile.in (toplev.o, sdbout.o, dbxout.o, dwarfout.o,
8165         dwarf2out.o): Depend on debug.h, wrap long lines.
8166         * dbxout.c: Include debug.h.
8167         (dbx_debug_hooks): New.
8168         (dbxout_init): Make static, take just 2 args.
8169         (dbxout_finish): Make static.
8170         * dbxout.h (dbxout_init, dbxout_finish): Delete.
8171         * debug.c: New file.
8172         * debug.h: New file.
8173         * dwarf2out.c: Include debug.h.
8174         (dwarf2_debug_hooks): New.
8175         (dwarf2out_init): Make static.
8176         (dwarf2out_finish): Make static, take 2 args.
8177         * dwarf2out.h (dwarf2out_init, dwarf2out_finish): Delete.
8178         * dwarfout.c: Include debug.h.
8179         (dwarf_debug_hooks): New.
8180         (dwarfout_init): Make static.
8181         (dwarfout_finish): Make static, take 2 args.
8182         * dwarfout.h (dwarfout_init, dwarfout_finish): Delete.
8183         * sdbout.c: Include debug.h.
8184         (sdb_debug_hooks): New.
8185         (sdbout_init): Make static, take 2 args.
8186         * sdbout.h (sdbout_init): Delete.
8187         * toplev.c: Include debug.h.
8188         (debug_hooks): New.
8189         (compile_file): Set deubg_hooks based on command line options.
8190         Use the hooks unconditionally rather than conditional compilation.
8191
8192 Tue Jul 10 09:04:45 2001  Jeffrey A Law  (law@cygnus.com)
8193
8194         * ssa-ccp.c (first_phi_node): Remove.  Replace uses with calls to
8195         first_insn_after_basic_block_note instead.
8196
8197         * df.c (df_bb_refs_unlink): #if 0 out for now.
8198
8199 2001-07-10  David Billinghurst <David.Billinghurst@riotinto.com
8200
8201         * ssa.h: Add prototype for ssa_const_prop
8202         * ssa-ccp.c: Add prototype for ssa_fast_dce and mark_references
8203         (ssa_ccp_substitute_constants): Fix signed vs unsigned comparison
8204         (ssa_fast_dce): Remove unused variable
8205
8206 2001-07-10  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
8207
8208         * diagnostic.c (finish_diagnostic): Rename to
8209         diagnostic_finish. Make it take an 'output_buffer *'.  Adjust
8210         calls thourghout.
8211
8212 2001-07-10  Jason Merrill  <jason_merrill@redhat.com>
8213
8214         * dwarf2out.c (dwarf2out_line): Emit -dA comment even when we have
8215         .loc support.
8216
8217         * collect2.c (main): Set COLLECT_NO_DEMANGLE for subprocesses.
8218         (dump_file): Only pad the demangled name with spaces if the
8219         mangled name was padded with spaces.
8220
8221 2001-07-10  Bernd Schmidt  <bernds@redhat.com>
8222
8223         * bb-reorder.c (make_reorder_chain_1): Correct branch/fallthru
8224         edge detection.
8225
8226 Tue Jul 10 07:27:53 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8227
8228         * expr.c (expand_expr, case COMPONENT_REF): Don't force using bitfield
8229         extraction if no direct load if either EXPAND_CONST_ADDRESS or
8230         EXPAND_INITIALIZER.
8231
8232         * emit-rtl.c (adjust_address, adjust_address_nv): Change criteria for
8233         whether can put offset inside LO_SUM to check mode alignment, not size.
8234
8235 2001-07-10  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
8236
8237         * doc/tm.texi (Misc): Fix thinko.
8238
8239 2001-07-10  Jan van Male  <jan.vanmale@fenk.wau.nl>
8240
8241         * regmove.c (replace_in_call_usage): Fix warnings.
8242         * sched-deps.c (add_dependence): Fix warnings.
8243         * simplify-rtx.c (simplify_subreg): Likewise.
8244         Return NULL_RTX instead of NULL.
8245
8246         * reg-stack.c (emit_swap_insn): Eliminate warnings.
8247         (subst_asm_stack_regs): Likewise.
8248
8249         * combine.c (num_sign_bit_copies): Cast bitwidth to int to avoid
8250         warnings.
8251
8252         * dwarf2out.c (output_call_frame_info): Declare i as int.
8253         (build_abbrev_table): Declare n_alloc as int.
8254         (dwarf2out_finish): Initialize die.
8255         * except.c: Declare sjlj_funcdef_number as unsigned.
8256         (connect_post_landing_pads): Declare j as unsigned.
8257         (convert_to_eh_region_ranges): Initialize call_site.
8258         (output_function_exception_table): Initialize tt_format_size.
8259         * expr.c (move_by_pieces_1): Initialize to1.
8260         (store_constructor): Initialize minelt and maxelt.
8261         * flow.c (mark_regs_live_at_end): Declare i as unsigned.
8262         * function.c (instantiate_decls): Avoid signed/unsigned warning.
8263
8264         * c-decl.c (combine_parm_decls): Unused, remove.
8265         * c-tree.h: Remove prototype for combine_parm_decls.
8266
8267         * reload.c (push_reload): Fix warning.
8268         (regno_clobbered_p): Likewise.
8269         * reload1.c (replace_pseudos_in_call_usage): Likewise.
8270         (reload_combine): Likewise.
8271
8272         * bitmap.c: Rename bitmap_zero to bitmap_zero_bits to fix warnings.
8273         * bitmap.h: Rename bitmap_zero to bitmap_zero_bits to fix
8274         warnings.
8275         * bitmap.c (bitmap_operation): Change user.
8276         * bitmap.h (EXECUTE_IF_AND_COMPL_IN_BITMAP): Likewise.
8277
8278 2001-07-10  Eric Christopher  <echristo@redhat.com>
8279
8280         * config/mips/mips.c (override_options): Fix typo.
8281
8282 2001-07-09  Stan Shebs  <shebs@apple.com>
8283
8284         * target.h (struct gcc_target): New fields init_builtins and
8285         expand_builtin.
8286         * target-def.h (TARGET_INIT_BUILTINS): New macro.
8287         (TARGET_EXPAND_BUILTIN): New macro.
8288         (TARGET_INITIALIZER): Add them.
8289         * builtins.c: Include target.h.
8290         (expand_builtin): Use targetm.expand_builtin.
8291         (default_init_builtins): New function.
8292         (default_expand_builtin): New function.
8293         * expr.h (default_init_builtins): Declare.
8294         (default_expand_builtin): Declare.
8295         * c-common.c (c_common_nodes_and_builtins): Use
8296         targetm.init_builtins.
8297         * defaults.h (MD_INIT_BUILTINS): Remove.
8298         * Makefile.in (builtins.o): Depend on target.h.
8299
8300         * config/arm/arm.c (TARGET_INIT_BUILTINS): Define.
8301         (TARGET_EXPAND_BUILTIN): Define.
8302         * config/arm/arm.h (MD_INIT_BUILTINS): Remove.
8303         (MD_EXPAND_BUILTIN): Remove.
8304
8305         * config/c4x/c4x.c (TARGET_INIT_BUILTINS): Define.
8306         (TARGET_EXPAND_BUILTIN): Define.
8307         (c4x_init_builtins): Make endlink arg a local.
8308         (c4x_print_operand): Fix typos in adjust_address usages.
8309         * config/c4x/c4x-protos.h (c4x_init_builtins): Update decl.
8310         * config/c4x/c4x.h (MD_INIT_BUILTINS): Remove.
8311         (MD_EXPAND_BUILTIN): Remove.
8312
8313         * config/i386/i386.c (TARGET_INIT_BUILTINS): Define.
8314         (TARGET_EXPAND_BUILTIN): Define.
8315         (ix86_init_mmx_sse_builtins): New function, was ix86_init_builtins.
8316         (ix86_init_builtins): Call new function only if TARGET_MMX.
8317         * config/i386/i386-protos.h (ix86_init_mmx_sse_builtins): Declare.
8318         * config/i386/i386.h (MD_INIT_BUILTINS): Remove.
8319         (MD_EXPAND_BUILTIN): Remove.
8320
8321         * config/ia64/ia64.c (TARGET_INIT_BUILTINS): Define.
8322         (TARGET_EXPAND_BUILTIN): Define.
8323         * config/ia64/ia64.h (MD_INIT_BUILTINS): Remove.
8324         (MD_EXPAND_BUILTIN): Remove.
8325
8326         * doc/tm.texi: Document these changes.
8327
8328 2001-07-09  Diego Novillo  <dnovillo@redhat.com>
8329
8330         * basic-block.h (tree_node): Forward declare if needed.
8331         (struct basic_block_def): Add fields 'head_tree' and 'end_tree'.
8332         (BLOCK_HEAD_TREE): Define.
8333         (BLOCK_END_TREE): Define.
8334         (struct loops): Rename field 'tree' to 'tree_root'.
8335         * flow.c (entry_exit_blocks): Add initializers for 'head_tree' and
8336         'end_tree'.
8337         (flow_loops_tree_build): Rename reference to field 'tree' to
8338         'tree_root'.
8339         (flow_loops_level_compute): Ditto.
8340         * predict.c (estimate_bb_frequencies): Ditto.
8341         * tree.h (struct tree_common): Add field 'aux'.
8342
8343 2001-07-09  Stan Shebs  <shebs@apple.com>
8344
8345         * config/darwin.c (darwin_encode_section_info): Don't mark any
8346         DECL_EXTERNAL node as defined.
8347
8348 2001-07-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8349
8350         * pa.c (pa_init_machine_status, pa_mark_machine_status,
8351         pa_free_machine_status, hppa_init_pic_save): Delete.
8352         (hppa_pic_save_rtx): New.  Use get_hard_reg_initial_val.
8353         (hppa_profile_hook): Use hppa_pic_save_rtx.
8354         * pa.h (struct machine_function, PIC_OFFSET_TABLE_SAVE_RTX,
8355         hppa_init_pic_save): Delete.
8356         (hppa_pic_save_rtx): Declare.
8357         * pa.md (call, call_value, sibcall, sibcall_value,
8358         builtin_setjmp_receiver): Use hppa_pic_save_rtx.
8359
8360 2001-07-09  Kazu Hirata  <kazu@hxi.com>
8361
8362         * config/h8300/t-h8300 (LIB1ASMFUNCS): Add _floatdisf and _fixsfdi.
8363         * config/mn10200/t-mn10200 (LIB1ASMFUNCS): Likewise.
8364
8365 2001-07-09  Andreas Jaeger  <aj@suse.de>
8366
8367         * output.h: Add declaration of final_forward_branch_p.
8368
8369         * config/i386/i386.c (output_fix_trunc): Remove unused variable.
8370
8371         * varray.c: Include errors.h for internal_error and trim_filename
8372         declarations.
8373
8374         * Makefile.in (varray.o): Add errors.h.
8375
8376 2001-07-09  Toon Moene  <toon@moene.indiv.nluug.nl>
8377
8378         * expr.h: Adjust prototypes for have_add2_insn, have_sub2_insn.
8379         * optabs.c (have_add2_insn): Check whether the add insn chosen
8380         really accepts the operands.  (have_sub2_insn): Ditto for sub insn.
8381         * reload1.c (reload_cse_move2add): Adjust calls of have_add2_insn.
8382
8383 Mon Jul  9 13:26:40 2001  Jeffrey A Law  (law@cygnus.com)
8384
8385         * Makefile.in (OBJS): Add ssa-ccp.o
8386         (ssa-ccp.o): Add dependencies.
8387         * toplev.c (DFI_ssa_ccp): New dump file enum.
8388         (dump_file): Add entry for dumping after SSA CCP.
8389         (flag_ssa_ccp): New flag variable.
8390         (f_options): Add -fssa-ccp.
8391         (rest_of_compilation): Run SSA CCP if requested.
8392         * timevar.def (TV_SSA_CCP): New timevar.
8393         * ssa.c (mark_phi_and_copy_regs): Handle deleted PHI nodes.
8394         * doc/gcc.texi (Passes): Add documentation for SSA CCP pass.
8395         Fix minor typo in SSA DCE documentation.
8396         * doc/invoke.texi: Add documentation for new flag -fssa-ccp.
8397         Add documentation for new dump option.  Renumber dump files
8398         appropriately.
8399
8400 Mon Jul  9 21:36:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
8401
8402         * emit-rtl.c (gen_highpart_mode): New.
8403         * rtl.h (gen_highpart_mode): Declare.
8404         * sparc.md (insn splitters): Use gen_highpart_mode, whenever the
8405         operand can be VOIDmode constant.
8406
8407 Mon Jul  9 17:23:10 CEST 2001  Jan Hubicka  <jh@suse.cz>
8408
8409         * flow.c (redirect_edge_and_branch_force): New.
8410         (can_fallthru): Ensure that basic blocks are succeeding.
8411         (try_optimize_cfg): Do not delete basic block if it is the last one.
8412
8413         * flow.c (try_redirect_by_replacing_jump): Do not remove
8414         jumps with side effects, unlink chain on fallthru edge;
8415         set block for new jump instruction; avoid basic block to
8416         over by line number note.
8417
8418         * flow.c (try_simplify_condjump): Verify that the condjump
8419         is not always falling trought.
8420
8421         Re-install patch:
8422         * flow.c (try_redirect_by_replacing_jump): Remove cc0 setter.
8423
8424         * flow.c (forwarder_block_p): Fix for fallthru blocks.
8425         (try_redirect_by_replacing_jump): Update properly the count
8426         and frequency information.
8427
8428 Mon Jul  9 06:41:07 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8429
8430         * emit-rtl.c (adjust_address, adjust_address_nv): Handle an
8431         address that is a LO_SUM specially.
8432         * explow.c (plus_constant_wide, case LO_SUM): Deleted.
8433
8434         * c-lang.c (start_cdtor): Remove extra parameter from start_function.
8435
8436         * emit-rtl.c (adjust_address_nv, replace_equiv_address_nv): New fcns.
8437         (operand_subword): Use them.
8438         (change_address_1): Renamed from change_address; new arg VALIDATE.
8439         * expr.h: Reflect above changes; change_address now macro.
8440         * alias.c (canon_rtx): Use replace_equiv_address_nv instead of
8441         making MEM.
8442         * cselib.c (add_mem_for_addr): Likewise.
8443         * expr.c (protect_from_queue, emit_move_insn_1): Likewise.
8444         * regmove.c (try_apply_stack_adjustment): Likewise.
8445         * reload.c (push_reload, make_memloc): Likewise.
8446         * reload1.c (eliminate_regs): Likewise.
8447         * simplify-rtx.c (simplify_replace_rtx): Likewise.
8448         * caller-save.c (setup_save_areas): Use adjust_address_nv instead of
8449         adjust_addess.
8450         * combine.c (make_extraction, simplify_shift_const): Likewise.
8451         (gen_lowpart_for_combine): Likewise.
8452         * cse.c (gen_lowpart_if_possible): Likewise.
8453         * function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
8454         * expr.c (expand_expr, case COMPONENT_REF): Likewise.
8455         * optabs.c (gen_move_insn): Likewise.
8456         * reload1.c (alter_reg): Likewise.
8457         * simplify-rtx.c (simplify_subreg): Likewise.
8458         * stmt.c (expand_anon_union_decl): Likewise.
8459         * recog.c (validate_replace_rtx_1): Likewise.
8460         (expr.h): Include.
8461         * Makefile.in (recog.o): Add $(EXPR_H).
8462         * explow.c (stabilize): Call replace_equiv_address.
8463         * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
8464         * final.c (alter_subreg): OFFSET is HOST_WIDE_INT.
8465
8466 2001-07-03  Andrew Haley  <aph@redhat.com>
8467
8468         * expmed.c (store_fixed_bit_field): Don't use a mode bigger than
8469         the mode of the memory location.
8470
8471 2001-07-09  Bo Thorsen  <bo@suse.co.uk>
8472
8473         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix x86-64 vtable support.
8474
8475 2001-07-09  Neil Booth  <neil@daikokuya.demon.co.uk>
8476
8477         * final.c (output_addr_const): Use target opening and
8478         closing parentheses.
8479         * target-def.h: Define TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN
8480         defaults, add to TARGET_ASM_OUT.
8481         * target.h (struct gcc_target): Add open_paren and close_paren.
8482         * doc/md.texi: Update.
8483         * doc/tm.texi: Document TARGET_ASM_FUNCTION_END_PROLOGUE,
8484         TARGET_ASM_FUNCTION_BEGIN_EPILOGUE, TARGET_ASM_OPEN_PAREN and
8485         TARGET_ASM_CLOSE_PAREN.
8486         * config/i386/i386.c (TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN):
8487         Override.
8488         * config/pdp11/pdp11.c (TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN):
8489         Override.
8490         * config/1750a/1750a.h (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): Remove.
8491         * config/a29k/a29k.h: Similarly.
8492         * config/alpha/alpha.h: Similarly.
8493         * config/arc/arc.h: Similarly.
8494         * config/arm/aof.h: Similarly.
8495         * config/arm/aout.h: Similarly.
8496         * config/avr/avr.h: Similarly.
8497         * config/c4x/c4x.h: Similarly.
8498         * config/clipper/clipper.h: Similarly.
8499         * config/convex/convex.h: Similarly.
8500         * config/d30v/d30v.h: Similarly.
8501         * config/dsp16xx/dsp16xx.h: Similarly.
8502         * config/elxsi/elxsi.h: Similarly.
8503         * config/fr30/fr30.h: Similarly.
8504         * config/h8300/h8300.h: Similarly.
8505         * config/i370/i370.h: Similarly.
8506         * config/i386/i386.h: Similarly.
8507         * config/i860/i860.h: Similarly.
8508         * config/i960/i960.h: Similarly.
8509         * config/ia64/ia64.h: Similarly.
8510         * config/m32r/m32r.h: Similarly.
8511         * config/m68hc11/m68hc11.h: Similarly.
8512         * config/m68k/m68k.h: Similarly.
8513         * config/m88k/m88k.h: Similarly.
8514         * config/mcore/mcore.h: Similarly.
8515         * config/mips/mips.h: Similarly.
8516         * config/mn10200/mn10200.h: Similarly.
8517         * config/mn10300/mn10300.h: Similarly.
8518         * config/ns32k/ns32k.h: Similarly.
8519         * config/pa/pa.h: Similarly.
8520         * config/pdp11/pdp11.h: Similarly.
8521         * config/pj/pj.h: Similarly.
8522         * config/romp/romp.h: Similarly.
8523         * config/rs6000/rs6000.h: Similarly.
8524         * config/sh/sh.h: Similarly.
8525         * config/sparc/sparc.h: Similarly.
8526         * config/v850/v850.h: Similarly.
8527         * config/vax/vax.h: Similarly.
8528         * config/we32k/we32k.h: Similarly.
8529
8530 2001-07-09  Joseph S. Myers  <jsm28@cam.ac.uk>
8531
8532         * doc/c-tree.texi: Document representation of attributes.
8533
8534 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
8535
8536         * doc/tm.texi: Update some places for the rename of target to
8537         targetm.  Fix typo.
8538
8539 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
8540
8541         * target.h (struct gcc_target): Add insert_attributes.
8542         * target-def.h (TARGET_INSERT_ATTRIBUTES): Define.
8543         (TARGET_INITIALIZER): Update.
8544         * tree.c, tree.h (default_insert_attributes): New function.
8545         Update comments on other default functions to refer to targetm,
8546         not target.
8547         * doc/tm.texi (INSERT_ATTRIBUTES): Update to document
8548         TARGET_INSERT_ATTRIBUTES.
8549         (SET_DEFAULT_DECL_ATTRIBUTES): Remove.
8550         * c-common.c (decl_attributes): Use targetm.insert_attributes.
8551         Don't use PRAGMA_INSERT_ATTRIBUTES.
8552         * Makefile.in (c-common.o): Depend on $(TARGET_H).
8553         * c-decl.c (start_decl, start_function): Don't call
8554         SET_DEFAULT_DECL_ATTRIBUTES.
8555         * config/c4x/c4x.h (SET_DEFAULT_DECL_ATTRIBUTES): Don't define.
8556         * config/c4x/c4x-protos.h (c4x_set_default_attributes): Don't
8557         declare.
8558         * config/c4x/c4x.c (TARGET_INSERT_ATTRIBUTES): Define.
8559         (c4x_check_attribute): Avoid modifying attribute list itself.
8560         (c4x_set_default_attributes): Rename to c4x_insert_attributes.
8561         Make static.
8562         * config/sh/sh.h (PRAGMA_INSERT_ATTRIBUTES): Don't define.
8563         * config/sh/sh-protos.h (sh_pragma_insert_attributes): Don't
8564         declare.
8565         * config/sh/sh.c (TARGET_INSERT_ATTRIBUTES): Define.
8566         (sh_pragma_insert_attributes): Rename to sh_insert_attributes.
8567         Make static.
8568         * config/v850/v850.h (SET_DEFAULT_DECL_ATTRIBUTES): Don't define.
8569         * config/v850/v850-protos.h (v850_set_default_decl_attr): Don't
8570         declare.
8571         * config/v850/v850.c (TARGET_INSERT_ATTRIBUTES): Define.
8572         (v850_set_default_decl_attr): Rename to v850_insert_attributes.
8573         Adjust parameters.  Make static.
8574
8575 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
8576
8577         * c-common.c (decl_attributes): Only take a single attributes
8578         parameter.
8579         * c-common.h (decl_attributes): Update prototype.
8580         * c-decl.c (start_decl, start_function): Only take a single
8581         attributes parameter.  Update calls to decl_attributes.
8582         (finish_struct, finish_enum): Update calls to decl_attributes.
8583         (push_parm_decl): Expect unified list of attributes.  Update call
8584         to decl_attributes.
8585         * c-parse.in (fndef, initdcl, notype_initdcl, nested_function,
8586         notype_nested_function, component_declarator,
8587         component_notype_declarator, label): Update calls to
8588         decl_attributes.
8589         (absdcl_maybe_attribute, parm, firstparm, myparm): Unify attribute
8590         lists that are passed to push_parm_decl.
8591         * c-tree.h (start_function, start_decl): Update prototypes.
8592         * config/sh/sh-protos.h, config/sh/sh.c
8593         (sh_pragma_insert_attributes): Only take a single attributes
8594         parameter.
8595         * config/sh/sh.h (PRAGMA_INSERT_ATTRIBUTES): Likewise.
8596         * doc/tm.texi (INSERT_ATTRIBUTES): Update.
8597         * objc/objc-act.c (define_decl, generate_objc_symtab_decl,
8598         build_module_descriptor, generate_static_references,
8599         generate_strings, build_selector_translation_table,
8600         generate_descriptor_table, generate_protocols,
8601         generate_ivars_list, generate_dispatch_table,
8602         generate_protocol_list, generate_category,
8603         generate_shared_structures, really_start_method, add_objc_decls,
8604         generate_classref_translation_entry): Update calls to start_decl
8605         and start_function.
8606         (build_tmp_function_decl, start_method_def): Unify attribute lists
8607         that are passed to push_parm_decl.
8608
8609 2001-07-08  Neil Booth  <neil@daikokuya.demon.co.uk>
8610
8611         * final.c (no_asm_to_stream): New.
8612         (final_scan_insn): Use target structures for prologue ends
8613         and epilogue starts.
8614         * output.h (no_asm_to_stream): New.
8615         * target-def.h (TARGET_ASM_FUNCTION_END_PROLOGUE,
8616         TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): New.
8617         (TARGET_ASM_OUT): Update.
8618         * target.h (struct gcc_target): New members function_end_prologue
8619         and function_begin_epilogue.
8620         * config/1750/1750.h (ASM_OUTPUT_FUNNAM): Delete as unused.
8621         * config/alpha/alpha-protos.h (output_end_prologue): Delete.
8622         * config/alpha/alpha.c (output_end_prologue): Rename to
8623         alpha_output_function_end_prologue.  Use in target struct
8624         and make static.
8625         * config/alpha/alpha.h (FUNCTION_END_PROLOGUE): Delete.
8626         * config/ia64/ia64-protos.h (ia64_output_end_prologue): Delete.
8627         * config/ia64/ia64.c (ia64_output_end_prologue): Rename to
8628         ia64_output_function_end_prologue.  Use in target struct
8629         and make static.
8630         (ia64_function_prologue, ia64_funciton_epilogue): Rename
8631         mistyped prototypes.
8632         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE): Delete.
8633         * config/m88k/m88k-protos.h (m88k_end_prologue, m88k_begin_epilogue):
8634         Delete.
8635         * config/m88k/m88k.c (m88k_end_prologue, m88k_begin_epilogue): Rename
8636         an use in target struct, make static.
8637         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE, FUNCTION_BEGIN_EPILOGUE):
8638         Delete.
8639
8640 2001-07-08  Richard Henderson  <rth@redhat.com>
8641
8642         * stmt.c (emit_case_nodes): Convert modes properly in low+high test.
8643
8644 2001-07-08  Richard Henderson  <rth@redhat.com>
8645
8646         * config/i386/i386.md: Remove constraints strings from define_split
8647         and define_peephole2 patterns.
8648         (eh_return_si, eh_return_di): Split eh_return_1 for modes.
8649         (eh_return): Use them.
8650
8651 2001-07-08  Richard Henderson  <rth@redhat.com>
8652
8653         * doc/tm.texi (Exception Handling): New subnode of Stack and Calling.
8654         Document MD_FALLBACK_FRAME_STATE_FOR.
8655
8656 2001-07-07  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8657
8658         * config/m68hc11/m68hc11.c (m68hc11_initial_elimination_offset):
8659         Take into account m68hc11_sp_correction for FRAME_POINTER_REGNUM
8660         elimination.
8661         * config/m68hc11/m68hc11.h (STARTING_FRAME_OFFSET): Use 0.
8662
8663 2001-07-07  Nick Clifton  <nickc@cambridge.redhat.com>
8664
8665         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Append # to end
8666         of the label inside NAME as opposed to just the end of NAME.
8667
8668 2001-07-07  Neil Booth  <neil@daikokuya.demon.co.uk>
8669
8670         * config/alpha/alpha-protos.h (vms_valid_decl_attribute_p): Delete.
8671         * config/alpha/alpha.c (alpha_init_machine_status,
8672         alpha_mark_machine_status, alpha_free_machine_status): Delete.
8673         (TARGET_VALID_DECL_ATTRIBUTE): Define for VMS.
8674         (vms_valid_decl_attribute_p): Make static, conditionally compile.
8675         * config/alpha/alpha.h (VALID_MACHINE_DECL_ATTRIBUTE): Delete.
8676
8677 2001-07-06  Stan Shebs  <shebs@apple.com>
8678
8679         * target.h (targetm): Rename global from "target", so as not to
8680         conflict with local variables.
8681         * c-decl.c: Ditto.
8682         * c-typeck.c: Ditto.
8683         * final.c: Ditto.
8684         * tree.c: Ditto.
8685         * cp/decl.c: Ditto.
8686         * cp/decl2.c: Ditto.
8687         * cp/typeck.c: Ditto.
8688         * 1750a/1750a.c: Ditto.
8689         * a29k/a29k.c: Ditto.
8690         * arc/arc.c: Ditto.
8691         * arm/arm.c: Ditto.
8692         * avr/avr.c: Ditto.
8693         * clipper/clipper.c: Ditto.
8694         * convex/convex.c: Ditto.
8695         * d30v/d30v.c: Ditto.
8696         * dsp16xx/dsp16xx.c: Ditto.
8697         * elxsi/elxsi.c: Ditto.
8698         * fr30/fr30.c: Ditto.
8699         * h8300/h8300.c: Ditto.
8700         * i370/i370.c: Ditto.
8701         * i386/i386.c: Ditto.
8702         * i860/i860.c: Ditto.
8703         * i960/i960.c: Ditto.
8704         * ia64/ia64.c: Ditto.
8705         * m32r/m32r.c: Ditto.
8706         * m68hc11/m68hc11.c: Ditto.
8707         * m68k/m68k.c: Ditto.
8708         * m88k/m88k.c: Ditto.
8709         * mips/mips.c: Ditto.
8710         * ns32k/ns32k.c: Ditto.
8711         * pa/pa.c: Ditto.
8712         * pdp11/pdp11.c: Ditto.
8713         * romp/romp.c: Ditto.
8714         * rs6000/rs6000.c: Ditto.
8715         * sh/sh.c: Ditto.
8716         * sparc/sparc.c: Ditto.
8717         * vax/vax.c: Ditto.
8718         * we32k/we32k.c: Ditto.
8719         * doc/tm.texi: Update the manual to match.
8720
8721 2001-07-06  Richard Henderson  <rth@redhat.com>
8722
8723         * except.h (MUST_USE_SJLJ_EXCEPTIONS): Examine the value of
8724         DWARF2_UNWIND_INFO not just whether it is defined.
8725
8726 2001-07-06  Diego Novillo  <dnovillo@redhat.com>
8727
8728         * combine.c (combine_simplify_rtx): Also recompute 'mode' if the
8729         call to simplify_binary_operation returns a new pattern.
8730
8731 2001-07-06  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
8732
8733         * glimits.h (__SHRT_MAX__): New.
8734         (SHRT_MIN, USHRT_MAX): Define in terms of SHRT_MAX.
8735         (SHRT_MAX): Define in terms of __SHRT_MAX__.
8736
8737 2001-07-06  Jan van Male  <jan.vanmale@fenk.wau.nl>
8738
8739         * alias.c (base_alias_check): Cast GET_MODE_UNIT_SIZE to int to
8740         avoid warnings.
8741
8742 2001-07-06  Richard Henderson  <rth@redhat.com>
8743
8744         * bitmap.c (bitmap_release_memory): Move adjacent to the
8745         allocation functions.
8746         (bitmap_first_set_bit, bitmap_last_set_bit): Streamline knowing
8747         the implementation.  Binary search for the set bit.
8748         (bitmap_union_of_diff): Allocate the temporary on the stack
8749         instead of using xmalloc.
8750
8751 2001-07-06  Richard Henderson  <rth@redhat.com>
8752
8753         * genrecog.c (validate_pattern): Warn for constraints in
8754         define_{expand,split,peephole2}.  Remove strict_low_part
8755         before looking up match_dup.
8756
8757 2001-07-06  DJ Delorie  <dj@redhat.com>
8758
8759         * doc/gcc.texi (Makefile): Rename to be a more general purpose
8760         chapter about various build hints and history.  Add section
8761         talking about the various types of native and cross builds.
8762
8763 2001-07-06  Neil Booth  <neil@daikokuya.demon.co.uk>
8764
8765         * Makefile.in (final.o): Depend on target.h.
8766         * final.c: Include target.h.
8767         (default_function_pro_epilogue): New.
8768         (final_start_function): Use target structure for function prologues.
8769         (final_end_function): Use target structure for function epilogues.
8770         * fold-const.c (real_hex_to_f): Constify s and p.
8771         * output.h (default_function_pro_epilogue): New.
8772         * real.h (real_hex_to_f): Update prototype.
8773         * target-def.h (TARGET_ASM_FUNCTION_PROLOGUE,
8774         TARGET_ASM_FUNCTION_EPILOGUE, TARGET_ASM_OUT): New.
8775         (TARGET_INITIALIZER): Update.
8776         * target.h (gcc_target): Add struct asm_out.
8777         * doc/tm.texi: Update.
8778
8779 config:
8780         Update each arch to use TARGET_ASM_FUNCTION_PROLOGUE and
8781         TARGET_ASM_FUNCTION_EPILOGUE.  Move macro code to functions
8782         in cpu/cpu.c, or rename old functions consistently.  Take
8783         a HOST_WIDE INT not an int as the SIZE parameter.  Remove now
8784         redundant macros and prototypes.  Make new functions static.
8785
8786         * 1750a/1750a.c: Similarly.
8787         * 1750a/1750a.h: Similarly.
8788         * a29k/a29k-protos.h: Similarly.
8789         * a29k/a29k.c: Similarly.
8790         * a29k/a29k.h: Similarly.
8791         * arc/arc-protos.h: Similarly.
8792         * arc/arc.c: Similarly.
8793         * arc/arc.h: Similarly.
8794         * arm/arm-protos.h: Similarly.
8795         * arm/arm.c: Similarly.
8796         * arm/arm.h: Similarly.
8797         * avr/avr-protos.h: Similarly.
8798         * avr/avr.c: Similarly.
8799         * avr/avr.h: Similarly.
8800         * clipper/clipper-protos.h: Similarly.
8801         * clipper/clipper.c: Similarly.
8802         * clipper/clipper.h: Similarly.
8803         * convex/convex.c: Similarly.
8804         * convex/convex.h: Similarly.
8805         * d30v/d30v-protos.h: Similarly.
8806         * d30v/d30v.c: Similarly.
8807         * d30v/d30v.h: Similarly.
8808         * d30v/d30v.md: Similarly.
8809         * dsp16xx/dsp16xx-protos.h: Similarly.
8810         * dsp16xx/dsp16xx.c: Similarly.
8811         * dsp16xx/dsp16xx.h: Similarly.
8812         * elxsi/elxsi.c: Similarly.
8813         * elxsi/elxsi.h: Similarly.
8814         * fr30/fr30.c: Similarly.
8815         * fr30/fr30.md: Similarly.
8816         * h8300/h8300-protos.h: Similarly.
8817         * h8300/h8300.c: Similarly.
8818         * h8300/h8300.h: Similarly.
8819         * i370/i370-protos.h: Similarly.
8820         * i370/i370.c: Similarly.
8821         * i370/i370.h: Similarly.
8822         * i386/i386.c: Similarly.
8823         * i386/osf1elf.h: Similarly.
8824         * i386/osfrose.h: Similarly.
8825         * i860/i860-protos.h: Similarly.
8826         * i860/i860.c: Similarly.
8827         * i860/i860.h: Similarly.
8828         * i960/i960-protos.h: Similarly.
8829         * i960/i960.c: Similarly.
8830         * i960/i960.h: Similarly.
8831         * ia64/ia64-protos.h: Similarly.
8832         * ia64/ia64.c: Similarly.
8833         * ia64/ia64.h: Similarly.
8834         * m32r/m32r-protos.h: Similarly.
8835         * m32r/m32r.c: Similarly.
8836         * m32r/m32r.h: Similarly.
8837         * m68hc11/m68hc11-protos.h: Similarly.
8838         * m68hc11/m68hc11.c: Similarly.
8839         * m68hc11/m68hc11.h: Similarly.
8840         * m68k/crds.h: Similarly.
8841         * m68k/dpx2.h: Similarly.
8842         * m68k/m68k-protos.h: Similarly.
8843         * m68k/m68k.c: Similarly.
8844         * m68k/m68k.h: Similarly.
8845         * m68k/news.h: Similarly.
8846         * m88k/m88k-protos.h: Similarly.
8847         * m88k/m88k.c: Similarly.
8848         * m88k/m88k.h: Similarly.
8849         * mips/mips-protos.h: Similarly.
8850         * mips/mips.c: Similarly.
8851         * mips/mips.h: Similarly.
8852         * ns32k/merlin.h: Similarly.
8853         * ns32k/ns32k.c: Similarly.
8854         * ns32k/ns32k.h: Similarly.
8855         * ns32k/tek6000.h: Similarly.
8856         * pa/pa-protos.h: Similarly.
8857         * pa/pa.c: Similarly.
8858         * pa/pa.h: Similarly.
8859         * pdp11/2bsd.h: Similarly.
8860         * pdp11/pdp11-protos.h: Similarly.
8861         * pdp11/pdp11.c: Similarly.
8862         * pdp11/pdp11.h: Similarly.
8863         * romp/romp-protos.h: Similarly.
8864         * romp/romp.c: Similarly.
8865         * romp/romp.h: Similarly.
8866         * rs6000/rs6000-protos.h: Similarly.
8867         * rs6000/rs6000.c: Similarly.
8868         * rs6000/rs6000.h: Similarly.
8869         * rs6000/sysv4.h: Similarly.
8870         * sh/sh-protos.h: Similarly.
8871         * sh/sh.c: Similarly.
8872         * sh/sh.h: Similarly.
8873         * sparc/sparc-protos.h: Similarly.
8874         * sparc/sparc.c: Similarly.
8875         * sparc/sparc.h: Similarly.
8876         * vax/vax.c: Similarly.
8877         * vax/vax.h: Similarly.
8878         * vax/vms.h: Similarly.
8879         * we32k/we32k.c: Similarly.
8880         * we32k/we32k.h: Similarly.
8881
8882 Fri Jul  6 11:47:59 2001  Jeffrey A Law  (law@cygnus.com)
8883
8884         * basic-block.h (first_insn_after_basic_block_note): Declare.
8885         * flow.c (first_insn_after_basic_block_note): Define.  Moved
8886         from...
8887         * ssa.c (first_insn_after_basic_block_note): Remove.
8888         * ssa-dce.c (find_inherently_necessary): Consider BARRIERs
8889         necessary.
8890         (ssa_eliminate_dead_code): Properly update the CFG and PHI
8891         nodes when we find a dead conditional branch.  Insert BARRIERs
8892         after any blocks with no successors, but which do not have
8893         any BARRIERs.
8894
8895 2001-07-06  Zack Weinberg  <zackw@stanford.edu>
8896
8897         * varray.c (varray_check_failed): Use internal_error.
8898
8899 2001-07-05  Andrew Haley  <aph@redhat.com>
8900
8901         * Makefile.in (LIB2_DIVMOD_FUNCS): New.
8902         (LIB2FUNCS): Move divmod functions to LIB2_DIVMOD_FUNCS.
8903         * mklibgcc.in: Compile LIB2_DIVMOD_FUNCS.
8904
8905 2001-07-02  Jason Merrill  <jason_merrill@redhat.com>
8906
8907         * dwarf2out.c (mem_loc_descriptor): Only look through a constant pool
8908         reference if the target constant is also a SYMBOL_REF.
8909
8910 2001-07-05  Eric Christopher  <echristo@redhat.com>
8911
8912         * config/mips/mips.h (MASK_MIPS3900): Remove.
8913         (MASK_MIPS16,MASK_NO_CHECK_ZERO_DIV,MASK_CHECK_RANGE_DIV,
8914         MASK_UNINIT_CONST_IN_RODATA): Change for 3900 mask removal.
8915         (TARGET_MIPS3900): Change to use mips_arch.
8916         (TARGET_MIPS4000): New.
8917         (TARGET_MIPS4100): New.
8918         (TARGET_MIPS4300): New.
8919         (TARGET_SWITCHES): Change 3900 and 4650 options to NULL.
8920         (SUBTARGET_TARGET_OPTIONS): Add -march. Change help text
8921         for -mipsX.
8922         (GENERATE_BRANCHLIKELY): Move TARGET_MIPS3900.
8923         (ISA_HAS_BRANCHLIKELY): To here.
8924         (CC1_CPU_SPEC):  New.
8925         (CC1_SPEC): Use here.  Remove 4650 and 3900 options.
8926         (mips_arch_string): Declare.
8927         (mips_arch): Declare.
8928         (TARGET_OPTIONS): Add -march and -mtune.
8929
8930         * config/mips/mips.c (mips_arch_string): New.
8931         (mips_arch): New.
8932         (override_options): Handle -march for codegen and -mtune
8933         for scheduling. Use mips_arch. Move tx39 target default here.
8934         (mips_parse_cpu): Move error message to override_options.
8935
8936         * config/mips/r3900.h (TARGET_DEFAULT): Remove.
8937
8938         * config/mips/mips.md: Use TARGET_MIPS4000 and TARGET_MIPS4300.
8939
8940         * doc/invoke.texi (Option Summary): Add -march and -mtune entries.
8941         (MIPS Options): Ditto.  Change mcpu entry to historical text.
8942
8943 2001-07-05  H.J. Lu  (hjl@gnu.org)
8944
8945         * config/mips/mips.c (mips_parse_cpu): New function to parse
8946         -march=*/-mcpu=*.
8947
8948 2001-07-05  Jim Wilson  <wilson@redhat.com>
8949
8950         * config/ia64/lib1funcs.asm: Revert 2001-07-02 change.
8951         * config/ia64/t-ia64: Likewise.
8952         (LIB1ASMFUNCS): Update comment.
8953
8954 2001-07-05  David Edelsohn  <edelsohn@gnu.org>
8955
8956         * doc/install.texi (Install GCC: Binaries): Fix typo.
8957
8958 2001-07-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8959
8960         * config/m68hc11/m68hc11.md ("*ashlsi3"): Operand 1 can be a memory
8961         reference using the stack pointer, adjust it since we push Y
8962         temporarily.
8963         ("*ashrsi3"): Likewise.
8964         ("*lshrsi3"): Likewise.
8965
8966 2001-07-05  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8967
8968         * config/m68hc11/m68hc11.h (RETURN_ADDR_RTX): Fix return address
8969         when -fomit-frame-pointer is used.
8970
8971 2001-07-05  Jeffrey Oldham  <oldham@codesourcery.com>
8972
8973         * flow.c: Reverse Jan Hubicka's patch of 02July2001.
8974         (try_redirect_by_replacing_jump): Reverse updating properly the
8975         count and frequency information.  Reverse removing cc0 setter.
8976         (forwarder_block_p): Reverse fixing for fallthru blocks.
8977
8978 2001-07-05  DJ Delorie  <dj@redhat.com>
8979
8980         * gcc.c (TARGET_OPTION_TRANSLATE_TABLE): New.
8981         (translate_options): If the above is defined, use it to map
8982         given options to new options.
8983         * doc/tm.texi: Document it.
8984
8985 2001-07-05  Brad Lucier <lucier@math.purdue.edu>
8986             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8987
8988         * doc/invoke.texi (Optimize Options): Document that -fgcse may
8989         cause programs using computed gotos to run more slowly.
8990
8991 2001-07-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8992
8993         * doc/install.texi (Specific): Markup, spelling and typo fixes.
8994         Fixed sorting.
8995         Consistently require binutils 2.11.2, not prereleases.
8996         (Specific, decstation-*): Canonicalize as mips-dec-*.
8997         (Specific, i?86-*-sco3.2v5*): Remove make bootstrap requirement,
8998         always necessary.
8999         (Specific, m68k-altos): Removed reference to README.altos, deleted.
9000         (Specific, mips-*): Reword MIPS C compiler requirements.
9001         (Specific, powerpc*-*-*): New, mention --with-cpu once.
9002         (Specific, sunv5): Removed, obsolete.
9003
9004 2001-07-05  Nathan Sidwell  <nathan@codesourcery.com>
9005
9006         * dwarf2out.c (output_loc_list): Use an all ones mask for
9007         .text asm output and don't rely on long long
9008         literals. Reformat some long lines.
9009
9010 2001-07-05  Andreas Jaeger  <aj@suse.de>
9011
9012         * doc/gcc.texi (GNU/Linux): Remove accidental re-add of GPL
9013         section.
9014
9015 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
9016
9017         * dwarf2out.c (dwarf2out_define): Update comment.
9018         (dwarf2out_undef): Ditto.
9019         (dwarf2out_start_source_file): Ditto.
9020         (dwarf2out_end_source_file): Ditto.
9021         (dwarf2out_finish): Output DW_MACINFO_end_file for primary file,
9022         since we never call the start/end debug hook for the primary file.
9023
9024 2001-07-04  Kazu Hirata  <kazu@hxi.com>
9025
9026         * config/h8300/h8300.c (get_shift_alg): Remove an extra operand
9027         from shll.
9028
9029 2001-07-04  Nathan Sidwell  <nathan@codesourcery.com>
9030
9031         * cppinit.c (remove_dup_dirs): Inform if a system include
9032         directory is being reordered.
9033         * doc/invoke.texi (Directory Options): GCC warns if you hide a
9034         system include.
9035         * doc/cpp.texi (Search Paths): Likewise.
9036         * doc/gcc.texi (Interoperation): Remove information about
9037         -I/usr/include.
9038
9039 2001-07-04  Nathan Sidwell  <nathan@codesourcery.com>
9040
9041         * varray.h (VARRAY_TOP_GENERIC_PTR): Remove spurious parameter.
9042         (VARRAY_TOP_CHAR_PTR): Likewise.
9043
9044 2001-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9045
9046         * gcc.c (process_command): Don't assign elements of a const char*.
9047
9048 Wed Jul  4 13:40:02 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9049
9050         * emit-rtl.c (change_address): Don't abort if invalid address while
9051         reload is in progress.
9052
9053 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
9054
9055         * c-lex.c (cb_file_change): Pass line number to
9056         debug_start_source_file.
9057         (cb_undefine): Pass correct line number to debug_undef.
9058
9059         * toplev.c (debug_start_source_file): Add line number to
9060         parameters. Pass it along to dwarf2out_start_source_file.
9061         (decode_g_option): Stop resetting debug level back to normal when
9062         we change debug formats, unless the current level is
9063         none. (Before, -g3 -gdwarf-2 would use debug level 2, rather than
9064         3).
9065
9066         * toplev.h (debug_start_source_file): Add line number to
9067         parameters.
9068
9069         * dwarf2out.h (dwarf2out_start_source_file): Add line number to
9070         parameters.
9071
9072         * dwarf2out.c (dwarf2out_start_source_file): Add line number to
9073         parameters.
9074         Output debug_macinfo data for starting file if requested.
9075         (dwarf2out_end_source_file): Output debug_macinfo data for ending
9076         file if requested.
9077         (dwarf2out_define): Output debug_macinfo data for defining a macro
9078         if requested.
9079         (dwarf2out_undef): Output debug_macinfo data for undefining a
9080         macro if requested.
9081         (DEBUG_MACINFO_SECTION): New. DWARF2 macro info section name.
9082         (DEBUG_MACINFO_SECTION_LABEL): New. DWARF2 macro info section label.
9083         (macinfo_section_label): New. DWARF2 macro info section label.
9084         (dwarf2out_init): If we want macro info, output the start label
9085         for the section.
9086         (dwarf2out_finish): If we want macro info, add a DW_AT_macro_info
9087         attribute to the compilation unit die pointing to the macro info.
9088
9089 2001-07-04  Daniel Berlin  <dan@cgsoftware.com>
9090
9091         * dwarf2out.c (new_loc_list): Move to inside #ifdef
9092         DWARF2_DEBUGGING_INFO.
9093         (add_loc_descr_to_loc_list): Ditto.
9094         (output_loc_list): Ditto.
9095         Also, fix thinko in curr not being initialized.
9096         (gen_internal_sym): Ditto.
9097
9098 Wed Jul  4 13:40:02 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9099
9100         * emit-rtl.c (replace_equiv_address): New function.
9101         * expr.h (replace_equiv_address): New declaration.
9102         * explow.c (validize_mem): Call it instead of change_address and
9103         also call if -fforce-addr and address is constant.
9104         * expr.c: Replace more calls to change_address with adjust_address
9105         and/or replace_equiv_address or to validize_mem.
9106         * function.c, regmove.c, config/alpha/alpha.c: Likewise.
9107         * config/arm/arm.md, config/clipper/clipper.md: Likewise.
9108         * config/dsp16xx/dsp16xx.md, config/fr30/fr30.c: Likewise.
9109         * config/i370/i370.md, config/i860/i860.md: Likewise.
9110         * config/i960/i960.md, config/mips/mips.c: Likewise.
9111         * config/mips/mips.md, config/pa/pa.md: Likewise.
9112         * config/pdp11/pdp11.md, config/rs6000/rs6000.c: Likewise.
9113         * config/rs6000/rs6000.md, config/sh/sh.md: Likewise.
9114
9115 2001-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9116
9117         * bitmap.c (bitmap_union_of_diff): Don't use BITMAP_ALLOCA.
9118
9119         * bitmap.h (BITMAP_ALLOCA): Don't pass alloca as an argument to a
9120         function.
9121
9122 2001-07-04  Joseph S. Myers  <jsm28@cam.ac.uk>
9123
9124         * doc/include: New directory.
9125         * doc/fdl.texi: Move to doc/include/fdl.texi.
9126         * doc/texinfo.tex: Move to doc/include/texinfo.tex.
9127         * doc/include/funding.texi, doc/include/gpl.texi: New files.
9128         * doc/gcc.texi: Use funding.texi and gpl.texi.
9129         * Makefile.in ($(docdir)/cpp.info, $(docdir)/gcc.info,
9130         $(docdir)/cppinternals.info, cpp.dvi. gcc.dvi. cppinternals.dvi):
9131         Update dependencies and use -I $(docdir)/include.
9132
9133 2001-07-04  Anthony Green  <green@redhat.com>
9134
9135         * config/v850/t-v850 (v850-c.o): Add missing dependencies.
9136
9137 2001-07-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9138
9139         * doc/install.texi (sparc64-*-*): Remove garbage.
9140
9141 Wed Jul  4 09:07:44 2001  Jan van Male  <jan.vanmale@fenk.wau.nl>
9142
9143         * i386.c (ix86_expand_builtin, case IX86_BUILTIN_SETPS):
9144         Fix typo in last change to use adjust_address.
9145
9146 2001-07-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9147
9148         * doc/install.texi (Specific): Update information for *-*-solaris*.
9149
9150 Tue Jul  3 22:33:15 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9151
9152         * explow.c (plus_constant_wide): Reinitialize Y for restart.
9153
9154 2001-07-03  Stan Shebs  <shebs@apple.com>
9155
9156         * config/darwin.h (SECTION_FUNCTION): Remove WAS_TEXT argument, remove
9157         case for flag_no_mach_text_sections.
9158         (EXTRA_SECTION_FUNCTIONS): Remove arg from uses of SECTION_FUNCTION.
9159         * config/darwin.c (flag_no_mach_text_sections): Remove.
9160         * config/darwin-protos.h (darwin_init_pragma): Remove decl.
9161
9162 Tue Jul  3 15:35:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9163
9164         * explow.c (plus_constant_wide, case PLUS): Call find_constant_term
9165         and avoid checking for constant as first operand.
9166         * recog.c (find_constant_term_loc): No longer static.
9167         (adj_offettable_operand): Delete.
9168         * rtl.h (adj_offsettable_operand): Delete declaration.
9169         (find_constant_term): Add declaration.
9170         * caller-save.c: Replace calls to adj_offsettable_operand with calls
9171         to adjust_address.
9172         * config/arm/arm.c, config/c4x/c4x.c: Likewise.
9173         * config/clipper/clipper.md, config/h8300/h8300.c: Likewise.
9174         * config/i386/i386.c, config/i386/i386.md: Likewise.
9175         * config/i860/i860.c, config/i960/i960.c: Likewise.
9176         * config/i960/i960.md, config/m68hc11/m68hc11.c: Likewise.
9177         * config/m68k/m68k.c, config/m68k/m68k.md: Likewise.
9178         * config/m88k/m88k.md, config/mcore/mcore.c: Likewise.
9179         * config/mips/mips.c, config/mips/mips.md: Likewise.
9180         * config/mn10200/mn10200.c, config/mn10300/mn10300.c: Likewise.
9181         * config/ns32k/ns32k.c, config/ns32k/ns32k.md: Likewise.
9182         * config/pa/pa.c, config/pdp11/pdp11.c: Likewise.
9183         * config/pdp11/pdp11.md, config/sh/sh.c, config/v850/v850.c: Likewise.
9184         * config/vax/vax.md, config/ns32k/ns32k.c: Likewise.
9185         * config/ns32k/ns32k.md: Likewise.
9186
9187 2001-07-03  Zack Weinberg  <zackw@stanford.edu>
9188
9189         * rtl.c (copy_rtx): Handle 'T' format letter.
9190         * gensupport.c (collect_insn_data): Likewise.
9191         * print-rtl.c (print_rtx): Print 'T' slots like 's'.
9192
9193 2001-07-03  Nick Clifton  <nickc@cambridge.redhat.com>
9194
9195         * doc/invoke.texi (Directory Options): Specifiy range for <N> in
9196         -B option.  Use 'dir' not 'foo' as example directory name.
9197
9198 2001-07-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9199
9200         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
9201         Fixes PRs bootstrap/3067, bootstrap/3249, bootstrap/3275.
9202
9203 2001-07-03  Joseph S. Myers  <jsm28@cam.ac.uk>
9204
9205         * doc/cppinternals.texi: Improve formatting and logical markup.
9206
9207 2001-07-03  Andreas Jaeger  <aj@suse.de>
9208
9209         * Makefile.in (insn-recog.o): Add dependency on reload.h.
9210
9211         * genrecog.c (write_header): Include reload.h for prototypes in
9212         insn-recog.c.
9213
9214 2001-07-03  Neil Booth  <neil@daikokuya.demon.co.uk>
9215
9216 config:
9217         * i386/cygwin.h (VALID_MACHINE_DECL_ATTRIBUTE,
9218         VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
9219         * i386/i386-protos.h (i386_pe_valid_decl_attribute_p,
9220         i386_pe_valid_type_attribute_p): Add.
9221         * i386/i386.c (TARGET_INITIALIZER): Override for cygwin targets.
9222         * i386/winnt.c (i386_valid_decl_attribute_p): Return directly.
9223
9224 Mon Jul  2 21:52:19 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9225
9226         * explow.c (plus_constant_wide, case LO_SUM): New case.
9227         (plus_constant_for_output_wide): Delete.
9228         * rtl.h (plus_constant_for_output): Delete.
9229         * alias.c (canon_rtx, init_alias_analysis): Call plus_constant
9230         instead of plus_constant_for_output.
9231         * recog.c (offsettable_address_p, adj_offsettable_operand): Likewise.
9232         * config/darwin.c, config/arm/arm.c, config/m68k/m68k.c: Likewise.
9233         * config/m88k/m88k.c, config/mips/mips.c, config/pa/pa.c: Likewise.
9234         * config/rs6000/rs6000.c, config/sparc/sparc.c: Likewise.
9235         * config/sparc/sparc.md: Likewise.
9236         Convert some change_address calls to adjust_address.
9237
9238 2001-07-03  Joseph S. Myers  <jsm28@cam.ac.uk>
9239
9240         * doc/extend.texi, doc/gcc.texi, doc/invoke.texi, doc/md.texi,
9241         doc/rtl.texi, doc/tm.texi: Improve formatting.  Improve
9242         documentation of -std and -Wwrite-strings.
9243
9244 2001-07-02  Geoffrey Keating  <geoffk@redhat.com>
9245
9246         * cse.c (canon_hash): Don't register registers in very small
9247         register classes, as extending their lifetime might cause
9248         reload to fail.
9249
9250 Mon Jul  2 23:14:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
9251
9252         * flow.c (try_redirect_by_replacing_jump): Remove cc0 setter.
9253
9254         * flow.c (forwarder_block_p): Fix for fallthru blocks.
9255         (try_redirect_by_replacing_jump): Update properly the count
9256         and frequency information.
9257
9258 Mon Jul  2 14:20:13 2001  Jeffrey A Law  (law@cygnus.com)
9259
9260         * toplev.c (dump_file_index): Move SSA dumps just after first
9261         jump dump.
9262         (dump_file): Corresponding changes.
9263         (rest_of_compilation): Move SSA path to just after the first
9264         jump pass.
9265         * doc/gcc.texi (Passes): Update due to movement of SSA path.
9266         * doc/invoke.texi: Update dump file #s as they were completely
9267         out of date with reality.
9268
9269 2001-07-02  Geoffrey Keating  <geoffk@redhat.com>
9270
9271         * doc/tm.texi (Frame Layout): Document STACK_PUSH_CODE.
9272
9273         * expr.c (emit_move_insn_1): Deal with non-default
9274         STACK_PUSH_CODE.
9275
9276         * expr.c (emit_single_push_insn): Fix warning.
9277
9278 2001-07-02  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
9279
9280         * expr.c (emit_move_insn_1): Avoid modifying
9281         cfun->expr->x_stack_pointer when PUSH_ROUNDING is defined.
9282
9283 Mon Jul  2 15:33:31 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9284
9285         * emit-rtl.c (adjust_address): New function.
9286         * expr.h (adjust_address): Add declaration.
9287         * builtins.c: Replace some calls to change_address with calls to it
9288         or to validize_mem.
9289         * caller-save.c, dwarf2out.c, except.c, expmed.c, expr.c: Likewise.
9290         * function.c, config/a29k/a29k.md, config/alpha/alpha.c: Likewise.
9291         * config/arm/arm.c, config/convex/convex.c: Likewise.
9292         * config/dsp16xx/dsp16xx.md, config/fr30/fr30.c: Likewise.
9293         * config/i386/i386.c, config/i386/i386.md: Likewise.
9294         * config/ia64/ia64.c, config/ia64/ia64.md: Likewise.
9295         * config/m32r/m32r.c, config/m68k/m68k.md: Likewise.
9296         * config/m88k/m88k.c, config/mips/mips.md: Likewise.
9297         * config/ns32k/ns32k.c, config/rs6000/rs6000.c: Likewise.
9298         * config/sh/sh.c, config/sparc/sparc.md: Likewise.
9299
9300 2001-07-02  Jim Wilson  <wilson@redhat.com>
9301
9302         * config/ia64/ia64.h: Delete obsolete lib1funcs.asm comment.
9303
9304 2001-07-02  Steve Ellcey  <sje@cup.hp.com>
9305
9306         * config/ia64/t-ia64: Change LIB1ASMFUNCS to use single underscore.
9307         * config/ia64/lib1funcs.asm: Change macro names to match t-ia64.
9308
9309 2001-07-02  Zack Weinberg  <zackw@stanford.edu>
9310
9311         * cppinit.c (lang_defaults): New table.
9312         (set_lang): Just read from lang_defaults into the live options
9313         structure.
9314
9315 2001-07-02  Zack Weinberg  <zackw@stanford.edu>
9316
9317         * Makefile.in (doc): Depend on $(GENERATED_MANPAGES).
9318         * doc/.cvsignore: Add gcc.1, cpp.1, gcov.1.
9319         * doc/gcc.1, doc/cpp.1, doc/gcov.1: Removed.
9320
9321 2001-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9322
9323         * doc/install.texi: Various spelling and markup fixes.
9324         (Installing GCC): Component specific installation instructions are
9325         gone.
9326         Fix reference.
9327         Warn about removing old install dir in the presence of shared libs.
9328         (Configuration): Invoke with options target to match configure
9329         --help.
9330         Consistently refer to gas, gld pathnames.
9331         Invert --enable-multilib documentation.
9332         Remove references to old compiler versions.
9333
9334 Mon Jul  2 12:50:51 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9335
9336         * flow.c (try_simplify_condjump): Fix typo in updating fallthru flags.
9337
9338 2001-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9339
9340         * doc/install.texi (Specific, mips*-sgi-irix4): Split from IRIX 5
9341         section.
9342         (Specific, mips*-sgi-irix5): Note IDO download.
9343         Reworded MIPS C hints.
9344         Use GNU as instead of GAS.
9345         Markup fixes.
9346         Removed SGI Freeware reference, IRIX 6 only.
9347         (Specific, mips*-sgi-irix6): Removed ranlib caveats, obsolete.
9348         Note N64 library requirement/workaround.
9349         Update O32 hints.
9350         Complete list of structure passing bug victims.
9351
9352 2001-07-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9353
9354         * doc/install.texi: Remove CVS Id.
9355
9356 2001-07-02  Andreas Jaeger  <aj@suse.de>
9357
9358         * ssa-dce.c (note_inherently_necessary_set): Add unused attribute.
9359         (find_inherently_necessary): Remove unused variable.
9360
9361 2001-07-02  Nathan Sidwell  <nathan@codesourcery.com>
9362
9363         * c-common.h (TDI_inlined): New ast dump phase.
9364         (dump_flag_name): New function.
9365         * c-dump.c (dump_files): Add inlined phase.
9366         (dump_flag_name): Define.
9367         * doc/invoke.texi (-fdump-ast-inlined): Document.
9368
9369 Mon Jul  2 06:29:36 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9370
9371         * stor-layout.c (layout_decl): Revert change to handling of alignment
9372         in packed types.
9373
9374 Sun Jul  1 11:53:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9375
9376         * c-common.c (decl_attributes, case A_MODE): Don't call layout_decl
9377         for FIELD_DECL.
9378
9379 2001-07-01  Geoffrey Keating  <geoffk@redhat.com>
9380
9381         * doc/tm.texi (FUNCTION_ARG): Document that the last call
9382         is special.
9383
9384 2001-07-01  Nathan Sidwell  <nathan@codesourcery.com>
9385
9386         * tlink.c (recompile_files): Remove COMPILER_PATH and
9387         LIBRARY_PATH from the environment.
9388
9389 2001-07-01  Zack Weinberg  <zackw@stanford.edu>
9390
9391         * c-common.h (enum rid): Add RID_FIRST_AT, RID_LAST_AT,
9392         RID_LAST_PQ.  Move RID_FIRST_PQ down with the other FIRST/LAST
9393         enumerators.
9394         (OBJC_IS_AT_KEYWORD, OBJC_IS_PQ_KEYWORD): New macros.
9395
9396         * c-parse.in (OBJC_STRING): Kill.
9397         (objc_string): Decompose to [objc_string] '@' STRING.
9398         (reswords): Take the leading '@' off all the Objective C keywords.
9399         (objc_rid_sans_at): Kill.
9400         (init_reswords): Don't initialize it.
9401         (yylexname): Use OBJC_IS_AT_KEYWORD and OBJC_IS_PQ_KEYWORD.
9402         (_yylex): Kill reconsider label.  Look ahead one token after
9403         an '@'; if we get an identifier, check whether it's an
9404         Objective C @-keyword.  If so, return the keyword.  Otherwise,
9405         put back the token and return the '@' as a terminal.
9406
9407         * cpplib.c (lex_macro_node): Remove unnecessary check for
9408         leading '@' on identifier.  Clarify control flow and commentary.
9409
9410 Sun Jul  1 11:53:52 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9411
9412         * cse.c (new_label_ref): Variable deleted.
9413         (insert): Remove set of new_label_ref.
9414         (check_for_label_ref): New function.
9415         (cse_basic_block): Don't check new_label_ref; call check_for_label_ref.
9416
9417 See ChangeLog.5 for earlier changes.