OSDN Git Service

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