OSDN Git Service

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