OSDN Git Service

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