OSDN Git Service

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