OSDN Git Service

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