OSDN Git Service

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