OSDN Git Service

3fc1c4862a48b7fbc4e2e367fa8581cf46f950c1
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2001-05-25  Jeff Knaggs  <jknaggs@redhat.com>
2
3         * config/alpha/alpha.md (movtf_internal): Use reg_overlap_mentioned_p
4         instead of rtx_equal_p for early clobber test.
5
6 2001-05-26  Mark Mitchell <mark@codesourcery.com>
7
8         * builtins.def: Encode additional information, such as names and
9         types, here.
10         * builtin-types.def: New file.
11         * builtins.c (built_in_names): Adjust use of DEF_BUILTIN.
12         (built_in_decls): Likewise.  Don't explicitly initialize global
13         data to NULL.
14         (expand_builtin_mathfn): Handle float and long double variants of
15         math builtins.
16         (expand_builtin): Likewise.
17         * c-common.c (c_common_nodes_and_builtins): Make it table-driven.
18         (expand_tree_builtin): Handle long, long long, float, and long
19         double variants of math functions.
20         * c-common.h (c_tree_index): Remove some unused nodes.
21         (void_ftype): Remove.
22         (void_type_ptr): Likewise.
23         (int_ftype_int): Likewise.
24         (ptr_ftype_sizetype): Likewise.
25         * c-decl.c (init_decl_processing): Remove creation of DWARF
26         builtins.
27         * defaults.h (MD_INIT_BUILTINS): Provide default definition.
28         * tree.h (built_in_function): Adjust definition of DEF_BUILTIN.
29         * Makefile.in (c-common.o): Depend on builtin-types.def.
30         
31 2001-05-25  Dale Johannesen  <dalej@apple.com>
32
33         * config/rs6000/t-darwin: Fix dependencies for darwin.o.
34
35 2001-05-25  Neil Booth  <neil@daikokuya.demon.co.uk>
36
37         * c-parse.in (notype_initdcl): Remove redundant line.
38
39 2001-05-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
40
41         * aclocal.m4: Fixed typo.
42         (gcc_AC_HEADER_STDBOOL): Define.
43         (gcc_AC_C__BOOL): Define.
44         * configure.in: Use them.
45         (AC_CHECK_HEADERS): Remove stdbool.h
46         * configure, config.in: Regenerate.
47
48 2001-05-25  Richard Henderson  <rth@redhat.com>
49
50         * function.c (expand_function_start): Don't abort on PARALLEL
51         returns from hard_function_value.
52
53 2001-05-25  Richard Henderson  <rth@redhat.com>
54
55         * config/i386/i386.md: Revert previous change.  Do not apply
56         the peephole if the components do not die after the sequence.
57
58 2001-05-25  Joseph S. Myers  <jsm28@cam.ac.uk>
59
60         * c-parse.in (array_declarator): New.  Handle C99 constructs.
61         Don't restrict [*] declarators to C only.
62         (after_type_declarator, parm_declarator_starttypename,
63         parm_declarator_nostarttypename, notype_declarator,
64         direct_absdcl1): Use it.
65         * c-decl.c (build_array_declarator, set_array_declarator_type):
66         New functions.  Warn that [*] isn't properly implemented; pedwarn
67         for [*] outside C99 mode if pedantic rather than giving a hard
68         error.
69         (grokdeclarator): Handle static and type qualifiers in parameter
70         array declarators.
71         * c-tree.h (build_array_declarator, set_array_declarator_type):
72         Declare.
73         * extend.texi (Attribute Syntax): Document attributes in parameter
74         array declarators.
75
76 2001-05-25  Mark Mitchell  <mark@codesourcery.com>
77
78         * config/i386/i386.md: Make sure cmpstr peepholes do not 
79         affect liveness information.
80
81 2001-05-24  Mark Mitchell  <mark@codesourcery.com>
82
83         * c-typeck.c (digest_init): Issue error messages about 
84         invalid constants, not warnings.
85
86 2001-05-24  Mark Mitchell  <mark@codesourcery.com>
87
88         * invoke.texi (-fno-builtin): Document that this is always on
89         in C++.
90
91 2001-05-24  Philip Blundell  <philb@gnu.org>
92
93         * doc/install.texi (arm*-*-linux-gnu): Say that binutils 2.10 is
94         required.
95
96 2001-05-24  Philip Blundell  <philb@gnu.org>
97
98         * config/arm/arm.c (output_return_instruction): Correctly handle
99         interworking and interrupt functions.
100
101 2001-05-24  Philip Blundell  <philb@gnu.org>
102
103         * config/arm/arm.h (TARGET_SWITCHES): Correct misleading help for
104         -m{no-}sched-prolog.  Fix typos and improve formatting.
105
106 2001-05-24  Philip Blundell  <philb@gnu.org>
107
108         * invoke.texi (ARM Options): Improve wording slightly.  Add
109         documentation for more options, including those for Thumb mode.
110         Don't mention options that don't exist or are unimplemented.
111         (Thumb Options): Delete; merged into above section.
112
113 2001-05-24  Geoff Keating  <geoffk@redhat.com>
114
115         * config/rs6000/linux.h (SIGNAL_FRAMESIZE): Define.
116         (MD_FALLBACK_FRAME_STATE_FOR): Use it.
117
118 Thu May 24 19:47:19 CEST 2001  Jan Hubicka  <jh@suse.cz>
119
120         * simplify-rtx.c (simplify_subreg): Fix CONCAT simplification;
121         fix hard register simplification.
122
123 Thu May 24 00:15:17 2001  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
124
125         * sparc/sol2.h (CPLUSPLUS_CPP_SPEC): Add all of CPP_SPEC instead
126         of just copying CPP_CPU_SPEC.
127
128 Thu May 24 15:56:48 CEST 2001  Jan Hubicka  <jh@suse.cz>
129
130         * i386.c (incdec_operand): Accept only 1 and -1.
131
132 2001-05-23  Kelley Cook  <kelley.cook@home.com>
133
134         * Makefile.in: Move many of the *_H definitions eariler in the
135         file, so that rules in t-* files that use them for
136         dependencies will work in a parallel build.
137         * config/i386/t-cygwin (winnt.o): Depend on $(CONFIG_H).
138
139 2001-05-23  Richard Henderson <rth@redhat.com>
140
141         * integrate.c (expand_inline_function): Handle CONCAT DECL_RESULT.
142
143 2001-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
144
145         * cpp.texi: Update for handling of charconsts.
146         * cpplex.c (maybe_read_ucs): Don't accept D800-DFFF.  Update
147         diagnostics.  Skip to the end if the UCS is too short.
148         (cpp_interpret_charconst): Long charconsts issue a warning
149         not an error.
150
151 2001-05-23  Richard Henderson  <rth@redhat.com>
152
153         * doc/install.texi (alpha-linux): Require binutils 2.11.
154
155 2001-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
156
157         * c-lex.c (read_escape, read_ucs): Delete.
158         (lex_string): Use cpp_parse_escape.
159         * cpplex.c (read_ucs): Rename maybe_read_ucs.  Do nothing
160         if not C++ or not C99.  Warn if traditional.
161         (parse_escape): Rename cpp_parse_escape.  Make the bitmask
162         unsigned.  Warn for out-of-range escape sequences here.
163         Update to use maybe_read_ucs.
164         (cpp_interpret_charconst):  Don't warn here.
165         * cpplib.h (cpp_parse_escape): New exported function.
166
167 2001-05-23  Joseph S. Myers  <jsm28@cam.ac.uk>
168
169         * extend.texi (Attribute Syntax): Clarify application of
170         attributes to parameters declared as functions or arrays.
171
172 2001-05-23  Jason Merrill  <jason_merrill@redhat.com>
173
174         * dbxout.c (dbxout_type_methods): Do still group methods by name.
175
176 2001-05-23  Zack Weinberg  <zackw@stanford.edu>
177
178         * diagnostic.c (vnotice): Kill.
179         (fnotice): Call vfprintf directly.
180         (diagnostic_for_decl, output_do_verbatim, output_verbatim,
181         verbatim, set_diagnostic_context): Rename string argument to
182         indicate that it is run through gettext.
183         (vbuild_message_string, build_message_string, output_do_printf):
184         Rename string argument to indicate that it is NOT run through
185         gettext.
186         (output_printf, diagnostic_for_decl, fatal_io_error, sorry,
187         output_do_verbatim, set_diagnostic_context, fnotice, _fatal_insn):
188         Run msgid argument through gettext.
189         (default_print_error_function): Run constant strings through
190         gettext when nothing else will.
191         (fatal_error, internal_error, error_recursion): Use fnotice.
192         Present complete sentences to gettext.
193
194 2001-05-23  Mark Mitchell  <mark@codesourcery.com>
195
196         * jump.c (mark_jump_label): Fix thinko in 2001-05-19 change.
197
198 2001-05-23  Richard Henderson  <rth@redhat.com>
199
200         * function.c (expand_function_start): Always use a pseudo
201         for the function result value.
202
203 2001-05-22  Richard Henderson  <rth@redhat.com>
204
205         * config/mips/iris6.h (EH_FRAME_SECTION_ASM_OP): Give the
206         section pointer alignment.
207
208         * doc/install.texi (alpha-linux): Require binutils >= 2.10.
209
210         * unwind-dw2-fde.c (__deregister_frame_info): Stringize use
211         of __USER_LABEL_PREFIX__.
212
213 2001-05-22  Richard Henderson  <rth@redhat.com>
214
215         * unwind-dw2-fde.c (__deregister_frame_info): Stubbify in favour of...
216         (__deregister_frame_info_bases): New.
217         * unwind-dw2-fde.h: Declare it.
218         * libgcc-std.ver: Export it.
219         * crtstuff.c (__do_global_dtors_aux): Call it if we would have
220         called __register_frame_info_bases.
221
222 2001-05-22  Loren J. Rittle  <ljrittle@acm.org>
223
224         * config/freebsd.h (FBSD_CPP_PREDEFINES): Use #endif/#if pair
225         instead of #elif (which is OK for this case but not in general).
226
227 2001-05-22  Andrew MacLeod  <amacleod@redhat.com>
228
229         * builtins.c (expand_builtin_longjmp): A longjmp can be a call too.
230         * config/ia64/ia64.md (nonlocal_goto): Reverse label and frame pointer
231         parameters to __ia64_nonlocal_goto. Flag as NO_RETURN.
232         * config/ia64/ia64.c (ia64_expand_epilogue): Make sure we are issuing 
233         "r2" to the assembly file. Only issue allocs with non-zero parameters.
234
235 2001-05-22  Loren J. Rittle  <ljrittle@acm.org>
236             David O'Brien  <obrien@freebsd.org>
237
238         * config/freebsd.h (LIB_SPEC): Key the exact setting to
239         configure-time options and target version of FreeBSD.  Set-up
240         to match architectural change in threading support.  Correctly
241         report when -pthread option is not supported by configure-time
242         options.
243         (FBSD_CPP_PREDEFINES): Move from architecture-specific files
244         and extend to encode target version number in run-time setting
245         of __FreeBSD__ macro to match the system compiler.
246         (CPP_PREDEFINES): Likewise.
247         (PREFERRED_DEBUGGING_TYPE): Change to DWARF2_DEBUG.
248
249         * config/alpha/freebsd.h (CPP_PREDEFINES): Moved to common freebsd.h.
250         * config/i386/freebsd.h (CPP_PREDEFINES): Likewise.
251
252 2001-05-22  Loren J. Rittle  <ljrittle@acm.org>
253             David O'Brien  <obrien@freebsd.org>
254
255         * config.gcc (the unlabeled system switch statement): Add
256         generic configuration section to handle *-*-freebsd*.  Also,
257         to match the system compiler, default to threading support (it
258         may be disabled with the standard --disable-threads
259         configuration-time switch).
260         (i[34567]86-*-freebsd* in machine-specific section): Use it.
261         (alpha*-*-freebsd* in machine-specific section): Likewise.
262
263         * config/freebsd3.h: New file to expose FBSD_MAJOR macro (3).
264         * config/freebsd4.h: New file to expose FBSD_MAJOR macro (4).
265         * config/freebsd5.h: New file to expose FBSD_MAJOR macro (5).
266         * config/freebsd6.h: New file to expose FBSD_MAJOR macro (6).
267         * config/freebsd-nthr.h: New file to expose FBSD_NO_THREADS macro.
268
269 2001-05-22  Loren J. Rittle  <ljrittle@acm.org>
270             David O'Brien  <obrien@freebsd.org>
271
272         * config/t-freebsd (TARGET_LIBGCC2_CFLAGS): Add -fPIC.
273         * config/t-freebsd-thread (TARGET_LIBGCC2_CFLAGS): Add
274         -pthread instead setting macro.
275
276 2001-05-22  Richard Henderson  <rth@redhat.com>
277
278         * crtstuff.c (__register_frame_info_bases): Declare.
279         (frame_dummy): Use it, if CRT_GET_RFIB_TEXT or CRT_GET_RFIB_DATA.
280         (__do_global_dtors_aux, __do_global_dtors): Streamline.
281
282         * config/i386/linux.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New.
283         (CRT_GET_RFIB_DATA): New.
284         * config/i386/sysv4.h: Likewise.
285         * config/i386/sco5.h: Likewise.
286         (ASM_PREFERRED_EH_DATA_FORMAT): New.
287
288 2001-05-22  Richard Henderson  <rth@redhat.com>
289
290         * rtl.c (read_string): Break out from ...
291         (read_rtx): ... here.
292
293 2001-05-22  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
294
295         * doc/install.texi (Specific): Remove a bogus and duplicate part
296         copied from the end of the document.
297
298 2001-05-22  Bernd Schmidt  <bernds@redhat.com>
299
300         * Makefile.in (LIBGCC_DEPS): Correct LIB1ASMSRC dependency.
301
302 2001-05-22  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
303
304         * install.texi: Remove obsolete information on SunOS as well as
305         i386-sun-sunos4, i860-intel-osf1, and powerpcle-*-solaris2*.
306         (Installing GNU CC on the Sun): Remove section.
307
308 2001-05-22  Alexandre Oliva  <aoliva@redhat.com>
309
310         * cppfiles.c (remove_component_p): Don't assume lstat/stat will
311         keep errno unchanged on success.
312
313 2001-05-22  Joseph S. Myers  <jsm28@cam.ac.uk>
314
315         * c-lex.c (lex_number): If pedantic and not C99, pedwarn exactly
316         once for hexadecimal floats, whether or not they contain a decimal
317         point.  Don't let the setting of pedantic otherwise affect the
318         parsing of hexadecimal floats.
319
320 2001-05-22  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
321
322         * README.ACORN: Remove obsolete file.
323
324 2001-05-22  Jan Hubicka  <jh@suse.cz>
325
326         * combine.c (gen_binary): Use swap_commutative_operands_p
327         (simplify_comparison): Likewise.
328         * expmed.c (emit_store_flag): Likewise.
329         * expr.c (compare_from_rtx): Likewise.
330         (do_compare_rtx_and_jump): Likewise.
331         * optabs.c (emit_cmp_and_jump_insn): Revert last patch; abort
332         if not emitting a branch and operands want swapping.
333
334 2001-05-22  Neil Booth  <neil@daikokuya.demon.co.uk>
335
336         * c-lex.c (c_lex): Just cast cpp's hashnode to gcc's one.
337         * stringpool.c: (IS_FE_IDENT, make_identifier): Delete.
338         (maybe_get_identifier): Update.
339         * tree.h (make_identifier): Delete.
340
341 2001-05-21  Richard Henderson  <rth@redhat.com>
342
343         * combine.c (subst): Do not substitute for a register as
344         a destination subreg/strict_low_part/zero_extract.
345
346         * combine.c (simplify_comparison): Update op1 after constant
347         extension.
348         * recog.c (const_int_operand): Accept only constants valid
349         for the given mode.
350         * genrecog.c: Update comments wrt const_int_operand.
351
352         * emit-rtl.c (init_emit_once): Zero unused memory in a
353         CONST_DOUBLE.
354
355 2001-05-21  Mark Mitchell  <mark@codesourcery.com>
356
357         * tree.h (type_num_arguments): Declare it.
358         * tree.c (type_num_arguments): New function.
359
360 2001-05-21  Richard Henderson  <rth@redhat.com>
361
362         * dwarf2out.c (current_funcdef_number): Move outside dwarf2
363         conditional ifdef.
364
365 2001-05-21  Geoff Keating  <geoffk@redhat.com>
366
367         * config/rs6000/rs6000.md (maxsf3): Use rs6000_emit_minmax.
368         (maxsf3+1): Delete.
369         (minsf3): Use rs6000_emit_minmax.
370         (minsf3+1): Generalize to handle both SMIN and SMAX.  Use
371         rs6000_emit_minmax.
372         (movsfcc): Use rs6000_emit_cmove.
373         (fselsfsf4): Don't compare a CONST_INT with a floating-point value.
374         Don't generate emit_fselsfsf4.
375         (fseldfsf4): Likewise.
376         (maxdf3): Use rs6000_emit_minmax.
377         (maxdf3+1): Delete.
378         (mindf3): Use rs6000_emit_minmax.
379         (mindf3+1): Generalize to handle both SMIN and SMAX.  Use
380         rs6000_emit_minmax.
381         (movdfcc): Use rs6000_emit_cmove.
382         (fseldfdf4): Don't compare a CONST_INT with a floating-point value.
383         Don't generate emit_fselsfsf4.
384         (fselsfdf4): Likewise.
385         * config/rs6000/rs6000.c (zero_fp_constant): New predicate.
386         (min_max_operator): New predicate.
387         (rs6000_emit_cmove): New function.
388         (rs6000_emit_minmax): New function.
389         * config/rs6000/rs6000-protos.h: Prototype new functions.
390         * config/rs6000/rs6000.h (PREDICATE_CODES): Add zero_fp_constant
391         and min_max_operator.
392
393         * config/rs6000/rs6000.c (output_cbranch): Handle all
394         conditional types in the switch statement.
395
396 2001-05-21  Mark Mitchell  <mark@codesourcery.com>
397
398         * c-decl.c (finish_decl): Don't set DECL_C_HARD_REGISTER for
399         non-register variables.
400         * extend.texi: Document that asm-specifications do not make sense
401         for non-static local variables.
402
403 2001-05-21  Jason Merrill  <jason_merrill@redhat.com>
404
405         * dbxout.c (MINIMAL_DEBUG, flag_minimal_debug): Lose.
406         (dbxout_type_fields): Lose minimal_debug support.
407         (dbxout_type_methods, dbxout_type): Likewise.
408
409 2001-05-17  Andrew Haley  <aph@redhat.com>
410
411         * config/rs6000/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.
412
413 2001-05-21  Richard Henderson  <rth@redhat.com>
414
415         * dwarf2out.c (DEBUG_FRAME_SECTION): Rename from FRAME_SECTION.
416         Update all users.
417
418 2001-05-20  Richard Henderson  <rth@redhat.com>
419
420         * dwarf2out.c (DEBUG_ABBREV_SECTION, DEBUG_ARANGES_SECTION,
421         DEBUG_MACINFO_SECTION, DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION,
422         DEBUG_STR_SECTION): Rename from s/DEBUG_//.  Update all users.
423         * dwarfout.c (DEBUG_SFNAMES_SECTION, DEBUG_SRCINFO_SECTION,
424         DEBUG_MACINFO_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_ARANGES_SECTION):
425         Likewise.
426         * config/mips/iris6.h (DEBUG_SFNAMES_SECTION, DEBUG_SRCINFO_SECTION,
427         DEBUG_MACINFO_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_ARANGES_SECTION,
428         DEBUG_FRAME_SECTION, DEBUG_ABBREV_SECTION): Rename as above.
429         (DEBUG_LOC_SECTION, DEBUG_STR_SECTION): New.
430         * config/ia64/ia64.h (DEBUG_ABBREV_SECTION, DEBUG_ARANGES_SECTION,
431         DEBUG_PUBNAMES_SECTION): Rename as above.
432         (DEBUG_MACINFO_SECTION, DEBUG_LOC_SECTION, DEBUG_STR_SECTION): New.
433
434 2001-05-20  Richard Henderson  <rth@redhat.com>
435
436         * optabs.c (emit_cmp_and_jump_insns): Don't swap commutative
437         operands unless the operation is commutative.
438
439 2001-05-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
440
441         * fold-const.c (tree_expr_nonnegative_p): Detect more non-negative
442         cases.
443
444 2001-05-21  Joseph S. Myers  <jsm28@cam.ac.uk>
445
446         * extend.texi: Clarify documentation of extensions included in ISO
447         C99.  Prefer C99 terminology and syntax to old GNU terminology and
448         syntax.  Add more index entries.  Document mixed declarations and
449         code as an extension in C89 mode.  Warn about future changes to
450         semantics of inline functions.  Fixes PR other/930.
451
452 Sun May 20 16:39:24 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
453
454         * expr.c (expand_expr, case ARRAY_REF): Don't fold constant
455         access if EXPAND_CONST_ADDRESS or EXPAND_INITIALIZER.
456         (expand_expr, case COMPONENT_REF): Do copy if misaligned even
457         if EXPAND_CONST_ADDRESS or EXPAND_INITIALIZER.
458
459         * stmt.c (expand_decl): Set mode, alignment, and sizes for CONST_DECL.
460
461 2001-05-20  Richard Henderson  <rth@redhat.com>
462
463         * sched-deps.c (sched_analyze_insn): Force volatile memory reads
464         to be output before a branch.
465
466 2001-05-20  Richard Henderson  <rth@redhat.com>
467
468         * Makefile.in (dwarf2asm.o): Depend on $(TREE_H).
469
470 2001-05-20  Richard Henderson  <rth@redhat.com>
471
472         * config/i386/att.h (ASM_SHORT, ASM_LONG): Add trailing \t.
473         (ASM_DOUBLE): Remove.
474         * config/i386/bsd.h, config/i386/sco5.h: Likewise.
475         * config/i386/sun386.h: Likewise.
476
477         * config/i386/i386.h (UNALIGNED_SHORT_ASM_OP): New.
478         (UNALIGNED_INT_ASM_OP, INT_ASM_OP): New.
479         
480         * config/i386/cygwin.h (INT_ASM_OP): Remove.
481         * config/i386/freebsd-aout.h, config/i386/i386-aout.h: Likewise.
482         * config/i386/i386-coff.h, config/i386/i386-interix.h: Likewise.
483         * config/i386/netbsd.h, config/i386/openbsd.h: Likewise.
484         
485         * config/i386/cygwin.h: Adjust uses of ASM_LONG for trailing \t.
486         * config/i386/djgpp.h, config/i386/i386.h: Likewise.
487         * config/i386/i386elf.h, config/i386/ptx4-i.h: Likewise.
488         * config/i386/sco5.h, config/i386/svr3gas.h: Likewise.
489         * config/i386/sysv4.h, config/i386/vsta.h: Likewise.
490         * config/i386/win32.h: Likewise.
491
492 2001-05-20  Joseph S. Myers  <jsm28@cam.ac.uk>
493
494         * invoke.texi: Add more options to summary list.
495
496 2001-05-20  Joseph S. Myers  <jsm28@cam.ac.uk>
497
498         * invoke.texi: Document meaning of -pedantic when -std=gnu* is
499         used.  Fixes PR c/2291.
500         * gcc.1: Regenerate.
501
502 2001-05-20  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
503
504         * config/m68hc11/m68hc11.c (m68hc11_override_options): Ignore
505         the -fpic and -fPIC options, clear flag_pic.
506
507 2001-05-20  Neil Booth  <neil@daikokuya.demon.co.uk>
508
509         * hashtable.c (calc_hash): Fix HASHSTEP definition.
510         * stringpool.c (make_identifier): No statistics here anymore.
511         * objc-act.c (steup_string_decl): Remove redundant check.
512
513 2001-05-20  Neil Booth  <neil@daikokuya.demon.co.uk>
514
515         * Makefile.in (OBJS, LIBCPP_OBJS, LIBCPP_DEPS,
516         cpplib.o, cpphash.o, fix-header): Update.
517         (hashtable.o): New target.
518         * c-common.h: Include cpplib.h.  Define C_RID_CODE and
519         struct c_common_identifier here.
520         * c-lang.c (c_init_options): Update.  Call set_identifier_size.
521         * c-lex.c (c_lex): Update.
522         * c-pragma.h: Update.
523         * c-tree.h (struct lang_identifier): Contain c_common_identifier.
524         Delete rid_code.
525         (C_RID_CODE): Delete.
526         * cpphash.c: Rewrite to use hashtable.c.
527         * cpphash.h: Update include guards.
528         (struct cpp_reader): Remove hashtab.
529         hash_ob and buffer_ob are no longer pointers.  Add hash_table
530         and our_hashtable.
531         (HASHSTEP, _cpp_init_hashtable, _cpp_lookup_with_hash): Delete.
532         (_cpp_cleanup_hashtable): Rename _cpp_destroy_hashtable.
533         (_cpp_cleanup_stacks): Rename _cpp_init_directives.
534         * cppinit.c (cpp_create_reader): Update.
535         * cpplex.c (cpp_ideq, parse_identifier, cpp_output_token): Update.
536         (cpp_interpret_charconst): Eliminate warning.
537         * cpplib.c (do_pragma, do_endif, push_conditional,
538         cpp_push_buffer, cpp_pop_buffer): Update.
539         (_cpp_init_stacks): Rename cpp_init_directives.
540         (_cpp_cleanup_stacks): Remove.
541         * cpplib.h: Update include guards.  Include tree-core.h and c-rid.h.
542         (cpp_hashnode, cpp_token, NODE_LEN, NODE_NAME,
543          cpp_forall_identifiers, cpp_create_reader): Update.
544         (C_RID_CODE, cpp_make_node): New.
545         (c_common_identifier): New identifier node for C front ends.
546         * cppmain.c (main): Update.
547         * fix-header.c (read_scan_file): Update.
548         * flags.h (id_clash_len): Make unsigned.
549         * ggc.h (ggc_mark_nonnull_tree): New.
550         * hashtable.c: New.
551         * hashtable.h: New.
552         * stringpool.c: Update comments and copyright.  Update to use
553         hashtable.c.
554         * toplev.c (approx_sqrt): Move to hashtable.c.
555         (id_clash_len): Make unsigned.
556         * toplev.h (ident_hash): New.
557         * tree.c (gcc_obstack_init): Move to hashtable.c.
558         * tree.h: Include hashtable.h.
559         (IDENTIFIER_POINTER, IDENTIFIER_LENGTH): Update.
560         (GCC_IDENT_TO_HT_IDENT, HT_IDENT_TO_GCC_IDENT): New.
561         (struct tree_identifier): Update.
562         (make_identifier): New.
563 cp:
564         * cp-tree.h (struct lang_identifier, C_RID_YYCODE): Update.
565         (C_RID_CODE): Remove.
566         * lex.c (cxx_init_options): Call set_identifier_size.  Update.
567         (init_parse): Don't do it here.
568 objc:
569         * objc-act.c (objc_init_options): Call set_identifier_size. Update.
570
571 Sat May 19 18:23:04 2001  Richard Henderson <rth@redhat.com>
572
573         * except.c (dw2_build_landing_pads): Use word_mode, not Pmode,
574         as ncessary.
575         (expand_eh_return): Convert between word_mode and Pmode.
576         * unwind-dw2.c (extract_cie_info): Do not assume words and pointers
577         are the same size.
578         (execute_stack_op): Likewise.
579         (execute_cfa_program): Likewise.
580         (uw_frame_state_for): Likewise.
581         (uw_update_context_1): Likewise.
582         * unwind.inc (_Unwind_Reason_Code): Likewise.
583         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Define.
584         (EH_RETURN_STACKADJ_RTX): Likewise.
585         * config/mips/mips.c (compute_frame_size): Make space for saving
586         EH return registers.
587         (mips_expand_epilogue): Handle EH stack adjustments.
588         * config/mips/mips.md (eh_return): New pattern.
589         (eh_set_lr_si): Likewise.
590         (eh_set_lr_di): Likewise.
591         Add splitter to perform EH return after reload.
592                 
593 2001-05-19  Mark Mitchell  <mark@codesourcery.com>
594
595         * jump.c (mark_jump_label): Tidy previous change.
596
597 2001-05-19  Bruce Korb  <bkorb@gnu.org>
598
599         * fixinc/genfixes: no need for two warnings
600         * fixinc/Makefile.in: open stdin for those building with a closed one.
601
602 2001-05-19  Mark Mitchell  <mark@codesourcery.com>
603
604         * jump.c (jump_optimize_1): Tidy.
605         (mark_jump_label): When changing the label in a LABEL_REF, change
606         update any REG_EQUAL notes as well.
607
608 2001-05-19  Joseph S. Myers  <jsm28@cam.ac.uk>
609
610         * c-parse.in (parm_declarator): Split into
611         parm_declarator_starttypename and parm_declarator_nostarttypename.
612         (parm_declarator_starttypename, parm_declarator_nostarttypename):
613         New.  Allow parenthesised sub-declarators which don't begin with a
614         TYPENAME.  Fixes PR c/166.
615
616 2001-05-19  Mark Mitchell  <mark@codesourcery.com>
617
618         * defaults.h (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): New
619         macro.
620         * tm.texi (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER):
621         Document it.
622         * toplev.c (main): If the target does not allow profiling without
623         a frame pointer, issue an error message.
624         * config/i386/linux.h (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): 
625         Define it to false.
626         
627 Sat May 19 07:53:42 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
628
629         * recog.c (general_operand): Modify last change to allow it if reload
630         has completed.
631
632 Sat May 19 10:23:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
633
634         * recog.c (general_operand): Prohibit nonzero subreg bytes on
635         subregs containing mem.
636
637 Sat May 19 09:40:45 2001  Denis Chertykov  <denisc@overta.ru>
638
639         * regrename.c (regrename_optimize): frame pointer register can
640         use a few hardregs.
641
642 2001-05-18  Jason Merrill  <jason_merrill@redhat.com>
643
644         * README.DWARF: Move into dwarfout.c.
645
646 2001-05-18  Dale Johannesen  <dalej@apple.com>
647
648         * config/rs6000/rs6000.c (secondary_reload_class): Fix Darwin
649         specific misuse of r0 as a reload address.
650
651 Fri May 18 22:42:04 CEST 2001  Jan Hubicka  <jh@suse.cz>
652
653         * combine.c (combine_simplify_rtx): Clear op0_mode if simplification
654         suceeded.
655
656 Fri May 18 07:26:34 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
657
658         * genrecog.c (enum decision_type): Add DT_elt_zero-wide_safe.
659         (add_to_sequence): Make that decision type.
660         (maybe_both_true_2, nodes_identical_1, factor_tests): Use it.
661         (write_switch, write_cond, debug_decision_2): Likewise.
662
663         * dbxout.c (dbxout_type): Use host_integerp and fix typo in testing
664         for INTEGER_TYPE.
665         (dbxout_symbol, case TYPE_DECL): Don't generate tag for records of
666         variable size.
667
668 2001-05-18  Stan Shebs  <shebs@apple.com>
669
670         * configure.in (gcc_cv_as_eh_frame): Cope with old assemblers.
671         * configure: Regenerate.
672
673 2001-05-18  Per Bothner  <per@bothner.com>
674
675         Changes needed for java/jvspec.c
676         * gcc.h (n_infiles, outfiles):  Add declarations.
677         * gcc.c (n_infiles, outfiles):  Mske no longer static.
678
679 Fri May 18 10:14:42 2001  Jeffrey A Law  (law@cygnus.com)
680
681         * config/pa/som.h (EXCEPTION_SECTION): Define.
682
683 2001-05-18  Daniel Berlin  <dan@cgsoftware.com>
684
685         * dwarf2out.c: Add dw_loc_list_ref, a reference to a location
686         list.
687         Add have_location_lists, a variable to determine whether we need a
688         .debug_loc section or not.
689         (enum dw_val_class): Add dw_val_class_loc_list.
690         (dw_val_struct): Add val_loc_list.
691         (dw_loc_list_struct): New structure, represents location lists.
692         (new_loc_list): New function, return a new location list, given
693         the range and location expression.
694         (add_loc_descr_to_loc_list): New function, add a location
695         expression to a location list, given the expression and range.
696         (output_loc_list): New function, output a location list.
697         (gen_internal_sym): Modified to take symbol prefix, so we can
698         reuse it for location list symbols.
699         (add_AT_loc_list): New function, add a location list to a DIE at
700         the named attribute.
701         (AT_loc_list): New function, return the location list reference
702         for a given attribute, if it's a location list.
703         (print_die): Handle dw_val_class_loc_list.
704         (size_of_die): Ditto.
705         (value_format): Ditto.
706         (output_die): Ditto.
707         (output_location_lists): New function, output all of the location
708         lists for a DIE and it's children.
709         (dwarf2out_finish): Call output_location_lists if we have location
710         lists.
711
712
713 Fri May 18 15:39:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
714
715         * gcse.c (try_replace_reg): First try global replace, later try to
716         simplify the expression.
717
718         * gcse.c (find_used_regs): Change calling convention; work via
719         note_uses.
720         (cprop_insn): Update call of find_used_regs; work for CALL_INSNs too.
721
722 2001-05-18  Bernd Schmidt  <bernds@redhat.com>
723
724         Revert
725         2001-02-09  Nick Clifton  <nickc@redhat.com>
726         * config/arm/arm.md: Change output constraint on post inc
727         load/store multiple patterns to be a read/write constraint.
728
729 2001-05-18  Mark Mitchell  <mark@codesourcery.com>
730
731         * basic-block.h (struct basic_block_def): Add documentation about
732         what a basic block is, and what the various fields are used for.
733         * flow.c (calculate_globlal_regs_live): Add documentation about
734         how the algorithm works, and how we know that it will terminate.
735         Check that the the inductive assumption that guarantees
736         termination actually holds.
737         (mark_used_regs): Treat conditionally set registers as used.
738         (debug_regset): Add comment.
739         * rtl.texi (cond_exec): Add documentation.
740
741         * function.c (expand_function_start): Avoid creating BLKmode
742         pseudos.
743
744 2001-05-17  Mark Mitchell  <mark@codesourcery.com>
745
746         * dwarf2out.c (output_comp_unit): Always output a compilation-unit
747         DIE, even if it has no children.
748         (dwarf2out_finish): Always output the line-number table, even if
749         it has no content.
750
751 2001-05-18  David Edelsohn  <edelsohn@gnu.org>
752
753         * rs6000.md (movsfcc,movdfcc): Remove NE case.
754
755 2001-05-17  Bruce Korb <bkorb@gnu.org>
756
757         * fixinc/fixincl.tpl: rewritten as an AutoGen version 5 template
758         * fixinc/genfixes: emit a warning if AutoGen is out of date
759
760 2001-05-17  Brendan Conoboy <blc@cygnus.com>
761             Bruce Korb <bkorb@gnu.org>
762
763         * fixinc/fixincl.sh(FIXINC): accept local directory if fixincl not
764         found in fixinc directory.  Facilitates binary distributions.
765
766 2001-05-17  Jeffrey Oldham  <oldham@codesourcery.com>
767
768         * dbxout.c (dbxout_symbol_location): For CONCAT, skip types not
769         COMPLEX_TYPE.
770
771 Thu May 17 19:42:39 2001  Mark Kettenis  <kettenis@wins.uva.nl>
772
773         * dwarf2out.c (modified_type_die): Equate qualified type to die.
774
775 Thu May 17 23:19:46 CEST 2001  Jan Hubicka  <jh@suse.cz>
776
777         * integrate.c (copy_rtx_and_substitute): Use simplify_gen_subreg.
778         (simplify_subreg): Handle complex types represented as CONCAT.
779
780         * recog.c (validate_replace_rtx_1): Properly canonicalize expression
781         * rtl.h (swap_commutative_operands_p): Declare.
782         * rtlanal.c (swap_commutative_operands_p): New.
783         (operand_preference): New static function.
784
785         * combine.c (combine_simplify_rtx): Use swap_commutative_operands_p.
786         (gen_binary): Likewise.
787         * optabs.c (emit_cmp_and_jump_insns, emit_conditional_move): Likewise.
788         * simplify-rtx.c (simplify_gen_binary,
789         simplify_gen_relational): Likewise.
790
791 Thu May 17 20:43:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
792
793         * cse.c (fold_rtx): Use simplify_subreg.
794
795         * simplify-rtx.c (simplify_replace_rtx): Use simplify_gen_subreg.
796         (simplify_gen_subreg): New.
797         (simplify_rtx): Use simplify_subreg.
798         * rtl.h (simplify_gen_subreg): Declare.
799
800 2001-05-17  Mark Mitchell  <mark@codesourcery.com>
801
802         * doc/install.texi: Update Solaris information.
803
804         * except.h (protect_cleanup_actions): Remove it.
805         (lang_protect_cleanup_actions): Declare it.
806         * except.c (protect_cleanup_actions): Remove it.
807         (lang_protect_cleanup_actions): New variable.
808         (init_eh): Don't make protect_cleanup_actions a GC root.
809         (expand_eh_region_and_cleanup): Call
810         lang_protect_cleanup_actions.
811         (output_function_exception_table): Remove unused `align'
812         variable.
813         * varasm.c (assemble_external): Abort if we have not yet
814         opened the assembly output file.
815         
816 Thu May 17 11:54:50 2001  Jeffrey A Law  (law@cygnus.com)
817
818         * except.c (sjlj_emit_function_enter): Call assemble_external_libcall
819         for eh_personality_libfunc.
820
821 Thu May 17 19:48:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
822
823         * recog.c (validate_replace_rtx_1): Use "TO" mode if not VOIDmode
824         when calling simplify_subreg.  This is needed to allow replacing
825         of expression of one mode by expression of different mode.
826
827 Thu May 17 19:40:03 CEST 2001  Jan Hubicka  <jh@suse.cz>
828
829         * simplify-rtx.c  (simplify_subreg): Avoid creating of incorrect subregs.
830
831 2001-05-17  Bernd Schmidt  <bernds@redhat.com>
832
833         * expr.c (protect_from_queue): Protect against subsequent calls to
834         emit_queue.
835         (expand_expr, case ADDR_EXPR): Prevent protect_from_queue from being
836         too clever.
837
838 Thu May 17 18:17:34 CEST 2001  Jan Hubicka  <jh@suse.cz>
839
840         * simplify_rtx.c (simplify_subreg): Fix simplification of nested subregs.
841
842 2001-05-17  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
843
844         * gccbug.in (CATEGORIES): Add "bootstrap".
845
846 Thu May 17 16:59:41 CEST 2001  Jan Hubicka  <jh@suse.cz>
847
848         * simplify-rtx.c (simplify_subreg): Break out from ...
849         * combine.c (combine_splify_rtx) ... here and ...
850         * recog.c (validate_replace_rtx_1): ... here;
851         * rtl.h (subreg_lowpart_parts_p, simplify_subreg): Declare.
852         * emit-rtl.c (subreg_lowpart_parts_p): Break out from ...
853         (subreg_lowpart_p): ... here.
854
855 2001-05-17  Bernd Schmidt  <bernds@redhat.com>
856
857         * stmt.c (expand_asm_operands): For inout operands, make sure
858         the substitution of '=' for '+' makes it into the rtl.
859
860         * reload1.c (delete_output_reload): Call eliminate_regs on substed.
861         (reload_as_needed): Call update_eliminable_offsets a bit later.
862
863 2001-05-17  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
864
865         * gcc.texi (gccbug): Refer to the web pages for detailed information
866         on GNATS.
867
868 2001-05-16  Zack Weinberg  <zackw@stanford.edu>
869
870         * libgcc1-test.c, libgcc1.c, config/i386/perform.h: Delete file.
871
872         * Makefile.in: Delete variables: OLDCC, CCLIBFLAGS, OLDAR,
873         OLDAR_FLAGS, LIBGCC1, LIBGCC1_TEST, CROSS_LIBGCC1,
874         LIB1FUNCS, and LIB1FUNCS_EXTRA.  Delete rules: libgcc1-test,
875         libgcc1-test.o.  Clarify commentary now that libgcc1 no longer exists.
876         * cross-make: Don't set LIBGCC1.
877         * mklibgcc.in: Delete all code for building from libgcc1.c.
878         Always honor LIB1ASMFUNCS if set.
879
880         * crtstuff.c, floatlib.c, longlong.h, config/fp-bit.c,
881         config/arc/lib1funcs.asm, config/arm/lib1funcs.asm,
882         config/d30v/libgcc1.asm, config/fr30/lib1funcs.asm,
883         config/h8300/lib1funcs.asm, config/i386/cygwin.asm,
884         config/i386/uwin.asm, config/m68hc11/larith.asm,
885         config/m68k/lb1sf68.asm, config/mcore/lib1.asm,
886         config/mn10200/lib1funcs.asm, config/sh/lib1funcs.asm,
887         config/sparc/lb1spc.asm, config/sparc/lb1spl.asm,
888         config/v850/lib1funcs.asm, config/c4x/libgcc.S:
889         Delete or update references to libgcc1 in commentary.
890
891         * config/t-libc-ok, config/t-linux, config/t-linux-aout,
892         config/t-netbsd, config/a29k/t-a29kbare, config/a29k/t-vx29k,
893         config/alpha/t-interix, config/alpha/t-osf, config/alpha/t-vms,
894         config/arc/t-arc, config/arm/t-arm-aout, config/arm/t-arm-coff,
895         config/arm/t-arm-elf, config/arm/t-linux, config/arm/t-pe,
896         config/arm/t-semi, config/arm/t-strongarm-coff,
897         config/arm/t-strongarm-elf, config/arm/t-strongarm-pe,
898         config/arm/t-xscale-coff, config/arm/t-xscale-elf, config/avr/t-avr,
899         config/c4x/t-c4x, config/d30v/t-d30v, config/fr30/t-fr30,
900         config/h8300/t-h8300, config/i386/t-beos, config/i386/t-cygwin,
901         config/i386/t-i386elf, config/i386/t-interix, config/i386/t-netware,
902         config/i386/t-next, config/i386/t-rtems-i386, config/i386/t-sol2,
903         config/i960/t-960bare, config/i960/t-vxworks960, config/ia64/t-ia64,
904         config/m32r/t-m32r, config/m68hc11/t-m68hc11-gas, config/m68k/t-lynx,
905         config/m68k/t-m68kbare, config/m68k/t-m68kelf,
906         config/m68k/t-mot3300-gald, config/m68k/t-mot3300-gas,
907         config/m68k/t-next, config/m68k/t-vxworks68, config/m88k/t-bug,
908         config/m88k/t-dgux, config/m88k/t-dgux-gas, config/m88k/t-dguxbcs,
909         config/m88k/t-luna, config/m88k/t-luna-gas, config/m88k/t-m88k,
910         config/m88k/t-m88k-gas, config/m88k/t-sysv4, config/mcore/t-mcore,
911         config/mcore/t-mcore-pe, config/mips/t-bsd, config/mips/t-bsd-gas,
912         config/mips/t-cross64, config/mips/t-ecoff, config/mips/t-elf,
913         config/mips/t-iris6, config/mips/t-r3900, config/mips/t-svr3,
914         config/mips/t-svr3-gas, config/mips/t-svr4, config/mips/t-svr4-gas,
915         config/mips/t-ultrix, config/mn10200/t-mn10200,
916         config/mn10300/t-mn10300, config/pa/t-linux, config/pa/t-linux64,
917         config/pa/t-pa, config/pa/t-pa64, config/pa/t-pro,
918         config/pdp11/t-pdp11, config/pj/t-pj, config/rs6000/t-aix43,
919         config/rs6000/t-beos, config/rs6000/t-darwin, config/rs6000/t-newas,
920         config/rs6000/t-ppccomm, config/rs6000/t-rs6000, config/sh/t-linux,
921         config/sh/t-sh, config/sparc/t-chorus-elf, config/sparc/t-elf,
922         config/sparc/t-sol2, config/sparc/t-sp86x, config/sparc/t-sparcbare,
923         config/sparc/t-sparclite, config/sparc/t-splet,
924         config/sparc/t-sunos41, config/sparc/t-vxsparc,
925         config/sparc/t-vxsparc64, config/v850/t-v850:
926         Don't set any of LIBGCC1, CROSS_LIBGCC1, or LIBGCC1_TEST.
927
928         * config/alpha/alpha.h, config/i386/i386.h, config/i860/i860.h: 
929         Don't set FLOAT_VALUE_TYPE, FLOAT_ARG_TYPE, INTIFY, or FLOATIFY.
930         * config/d30v/d30v.h: Don't mention LIBGCC_NEEDS_DOUBLE,
931         FLOAT_VALUE_TYPE, FLOAT_ARG_TYPE, FLOATIFY, INTIFY,
932         nongcc_SI_type, nongcc_word_type, or perform_*
933         * config/i860/fx2800: Don't define perform_umodsi3 or perform_modsi3.
934
935         * config/i386/386bsd.h, config/i386/beos-elf.h,
936         config/i386/linux-aout.h, config/i386/linux-oldld.h,
937         config/i386/linux.h, config/i386/mach.h, config/i386/netbsd.h,
938         config/i386/openbsd.h, config/i386/osfrose.h, config/i386/rtemself.h:
939         Don't include i386/perform.h.
940
941         * config/a29k/t-a29k, config/arm/t-semiaof, config/i370/t-i370,
942         config/i370/t-linux, config/i370/t-mvs, config/i370/t-oe,
943         config/i386/t-djgpp, config/i386/t-i386bare, config/i386/t-vsta,
944         config/ia64/t-hpux, config/mips/t-mips, config/mips/t-mips-gas,
945         config/mips/t-osfrose, config/sparc/t-sp64, config/sparc/t-sunos40,
946         config/vax/t-openbsd, config/vax/t-vax: Delete.
947
948         * config.gcc: Remove references to deleted files.
949         (arm-semi-aof): Use arm/t-semi for tmake_file.
950
951         * gcc.texi, install.texi, invoke.texi, tm.texi:
952         Delete or rewrite text which is no longer relevant now that
953         libgcc1 no longer exists.
954
955         * config/t-openbsd, config/alpha/t-interix, config/i386/t-interix:
956         No need to set INSTALL_ASSERT_H.  (Missed in previous sweep.)
957
958 2001-05-16  Wolfgang Bangerth <wolfgang.bangerth@iwr.uni-heidelberg.de>
959         Bruce Korb <bkorb@gnu.org>
960
961         * fixinc/inclhack.def(solaris27_mutex_init):  Fix broken mutex
962         initializer
963
964 2001-05-16  Zack Weinberg  <zackw@stanford.edu>
965
966         * i386.md: Add two peepholes to clean up code generated by
967         cmpstr* expanders.
968
969 2001-05-16  Richard Henderson  <rth@redhat.com>
970
971         * dwarf2asm.c (eh_data_format_name): Add names for "pointer size" 
972         variants of non-absolute encodings.
973
974         * config/i386/i386.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
975
976         * libgcc-std.ver (_Unwind_Find_FDE, __register_frame_info_bases,
977         __register_frame_info_table_bases): Export.
978
979 2001-05-16  Richard Henderson  <rth@redhat.com>
980
981         * except.c (eh_data_format_name): Move to ...
982         * dwarf2asm.c: ... here.  Use designated initializers if available.
983         (dw2_asm_output_encoded_addr_rtx): Accept varargs commentary.
984         * dwarf2asm.h: Update declarations.
985         * dwarf2out.c (output_cfi) [DW_CFA_set_loc]: If for_eh, mind
986         ASM_PREFERRED_EH_DATA_FORMAT.
987         (output_call_frame_info): Likewise.  Use 'L' augmentation for
988         the LSDA encoding.
989
990         * unwind-dw2-fde.h (struct fde_vector): New.
991         (struct old_object): Rename from struct object.
992         (struct object): New.
993         (__register_frame_info_bases): Declare.
994         (__register_frame_info_table_bases): Declare.
995         (struct dwarf_fde): Remove explicit pc_begin/pc_range members.
996         * unwind-dw2-fde.c (objects): Remove.
997         (unseen_objects, seen_objects): New.
998         (__register_frame_info_bases): New.
999         (__register_frame_info): Use it.
1000         (__register_frame_info_table_bases): New.
1001         (__register_frame_info_table): Use it.
1002         (__deregister_frame_info): Rewrite for changed object struct.
1003         (base_from_object, get_cie_encoding, get_fde_encoding): New.
1004         (fde_unencoded_compare): Rename from fde_compare; uninline.
1005         (fde_single_encoding_compare, fde_mixed_encoding_compare): New.
1006         (start_fde_sort): Adjust for new definition of fde_vector.
1007         (fde_insert): Likewise.
1008         (end_fde_sort): Likewise.  Select comparison function based
1009         on properties of the object.
1010         (fde_split): Take object and fde_compare_t arguments.
1011         (frame_heapsort, fde_merge): Likewise.
1012         (classify_object_over_fdes): Rename from count_fdes.  Handle
1013         encoded pointers.  Collect encoding, mixed_encoding, and pc_begin
1014         for the object.
1015         (add_fdes): Handle encoded pointers.
1016         (init_object): Rename from frame_init.  Update for new struct object.
1017         (linear_search_fdes): Rename from search_fdes.  Handle encoded
1018         pointers.
1019         (binary_search_unencoded_fdes): Broken out from _Unwind_Find_FDE.
1020         (binary_search_single_encoding_fdes): New.
1021         (binary_search_mixed_encoding_fdes): New.
1022         (search_object): New.
1023         (_Unwind_Find_FDE): Update for new struct object.  Fill in
1024         the dwarf_eh_bases.
1025         * unwind-dw2.c: Include unwind-pe.h.  Constify all pointers
1026         iterating over EH data.
1027         (_Unwind_FrameState): Remove saw_lsda, addr_encoding.  Add
1028         fde_encoding, lsda_encoding.
1029         (read_uleb128, read_sleb128): Remove.
1030         (read_encoded_pointer): Remove.  All callers use read_encoded_value.
1031         (extract_cie_info): Set lsda_encoding from 'L' augmentation.
1032         (uw_frame_state_for): Don't set bases.func.  Handle encoded fde
1033         pointers.
1034         * unwind-pe.h: Add "struct" to _Unwind_Context references.
1035
1036 2001-05-16  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
1037
1038         * cppexp.c (lex): Use NODE_NAME and NODE_LEN.
1039         * cpphash.c (_cpp_lookup_with_hash): Similarly.
1040         * cpplex.c (cpp_ideq, parse_identifier, cpp_token_len,
1041         cpp_spell_token, cpp_output_token): Similarly.
1042         * cpplib.c (lex_macro_node, do_undef, do_pragma,
1043         do_pragma_poison, parse_assertion, do_assert): Similarly.
1044         * cppmacro.c (builtin_macro, parse_args, funlike_invocation_p,
1045         save_parameter, _cpp_create_definition, check_trad_stringification,
1046         cpp_macro_definition): Similarly.
1047         * cppmain.c (cb_define, cb_undef, dump_macro): Similarly.
1048         * c-lex.c (cb_undef, c_lex): Similarly.
1049         * fix-header.c (recognized_function): Similarly.
1050         * cpplib.h (NODE_LEN, NODE_NAME): New.
1051         (cpp_hashnode): Rename length len.
1052
1053 Wed May 16 13:41:10 2001  Jeffrey A Law  (law@cygnus.com)
1054
1055         * pa32-regs.h (HARD_REGNO_MODE_OK): Allow TI/TFmode values in
1056         GPRs.
1057
1058 2001-05-16  Andreas Jaeger  <aj@suse.de>
1059
1060         * Makefile.in (toplev.o): Add dependency on dwarf2asm.h.
1061
1062         * toplev.c: Include dwarf2asm.h for prototype of
1063         dw2_output_indirect_constants.
1064
1065 Wed May 16 19:53:53 CEST 2001  Jan Hubicka  <jh@suse.cz>
1066
1067         * stmt.c (expand_asm_operands): Be able to offload addressof
1068         expression to memory. (PR optimization/185)
1069
1070 Wed May 16 18:53:23 CEST 2001  Jan Hubicka  <jh@suse.cz>
1071
1072         * combine.c (combine_simplify_rtx): Set op0_mode to VOIDmode after
1073         applying distributive law.
1074
1075 2001-05-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1076
1077         * pa-hpux10.h (THREAD_MODEL_SPEC): Define.
1078
1079         * gthr-dce.h (UNUSED): Attribute unused macro.
1080         (__gthread_key_dtor): Make arguments UNUSED.
1081         (__gthread_key_delete): Revise for compatibility with DRAFT4
1082         implementation.
1083
1084 2001-05-16  David Edelsohn  <edelsohn@gnu.org>
1085
1086         * doc/install.texi: Update AIX information.
1087         * README.RS6000: Remove obsolete file.
1088
1089 2001-05-16  Jakub Jelinek  <jakub@redhat.com>
1090             Nathan Sidwell  <nathan@codesourcery.com>
1091
1092         * gcc.c (give_switch): Don't write before start of string.
1093         Always append suffix.
1094
1095 2001-05-16  Nathan Sidwell  <nathan@codesourcery.com>
1096
1097         * cpplex.c (_cpp_lex_token, '/' case): Comments can't appear
1098         after stage3.
1099
1100 2001-05-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1101
1102         * README.ALTOS: Remove obsolete file.
1103
1104 2001-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
1105
1106         * c-lex.h (save_and_forget_protocol_qualifiers,
1107         forget_protocol_qualifiers, remember_protocol_qualifiers):
1108         Remove deleted functions' prototypes.
1109
1110 2001-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
1111
1112         * c-parse.in (methodtype): New production.
1113         (methoddef, methodproto): Collapse separate '-' and '+'
1114         handlers into 1.
1115
1116 2001-05-16  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
1117
1118         * c-common.h (RID_FIRST_PQ): New.
1119         * c-parse.in (objc_pq_context): New.
1120         (objc parser): Set objc_pq_context rather than calling
1121         remember_protocol_qualifiers and forget_protocol_qualifiers.
1122         Don't call save_and_forget_protocol_qualifiers.
1123         (yylexname): Handle objc protocol qualifiers here.
1124         * stringpool.c (struct str_header): Replace with sp_hashnode.
1125         (SP_EMPTY, SP_LEN, SP_TREE, SP_STR, SP_VALID): New.
1126         (alloc_string): Rename alloc_ident.  Use the SP_ accessors.
1127         Allocate an IDENTIFIER_NODE for each identifier.
1128         (FORALL_STRINGS, set_identifier): Delete.
1129         (FORALL_IDS, expand_string_table, stringpool_statistics): Update.
1130         (ggc_alloc_string): Use an obstack.
1131         (get_identifier, maybe_get_identifier, mark_string_hash): Update.
1132         * tree.h: Update comments.
1133         (set_identifier): Delete.
1134         * objc/objc-act.c (N_PQ, saved_pq, saved_not_pq,
1135         save_and_forget_protocol_qualifiers, forget_protocol_qualifiers,
1136         remember_protocol_qualifiers): Delete.
1137
1138 Tue May 15 22:14:09 2001  Jeffrey A Law  (law@cygnus.com)
1139
1140         * flow.c (life_analysis): After life analysis is complete, do
1141         an optional scan over insns looking for REG_LABEL notes that
1142         reference a deleted label.
1143         (propagate_block_delete_insn): Verify INOTE is a CODE_LABEL
1144         before peeking at LABEL_NUSES.
1145
1146 2001-05-15  Richard Henderson  <rth@redhat.com>
1147
1148         * unwind-sjlj.c (_Unwind_GetDataRelBase): New.
1149         (_Unwind_GetTextRelBase): New.
1150
1151 2001-05-15  Mark Mitchell  <mark@codesourcery.com>
1152
1153         * config/sparc/sol2.h (CPLUSPLUS_CPP_SPEC): Define.
1154
1155 2001-05-15  Geoffrey Keating  <geoffk@redhat.com>
1156
1157         * objc/objc-act.c (handle_class_ref): Use rest_of_decl_compilation
1158         so that CHOOSE_SECTION gets used.
1159
1160         * config/rs6000/sysv4.h (ASM_PREFERRED_EH_DATA_FORMAT): Treat
1161         TARGET_RELOCATABLE like flag_pic for now.
1162
1163 2001-05-15  David Edelsohn  <edelsohn@gnu.org>
1164
1165         * rs6000.md (movdi splitter): Sign extend more efficiently.
1166         * rs6000.c (reg_or_arith_cint_operand): Redefine 64-bit constant
1167         to "long long" valid on 32-bit and 64-bit hosts.
1168         (logical_operand): Cast trunc_int_for_mode return value.
1169         (rs6000_emit_move): Shift macro to encapsulate variable.
1170         (rs6000_va_start): Use HOST_WIDE_INT_PRINT_DEC.
1171         (rs6000_emit_{prologue,epilogue}): EH regno is unsigned but
1172         plus_constant requires signed argument.
1173
1174 2001-05-15  Loren J. Rittle  <ljrittle@acm.org>
1175
1176         * gthr-posix.h: Make additional pthread-* functions weak.
1177
1178 Tue May 15 13:51:32 CEST 2001  Jan Hubicka  <jh@suse.cz>
1179
1180         * recog.c (apply_change_group): Avoid unneeded validating.
1181
1182 2001-05-14  David Edelsohn  <edelsohn@gnu.org>
1183
1184         * rs6000.c (num_insns_constant_wide): Constants are sign-extended.
1185         (num_insns_constant): CONST_INT can be 64-bits.
1186
1187 2001-05-14  Stan Shebs  <shebs@apple.com>
1188
1189         * config/darwin.h (LIB_SPEC): Just use -lSystem.
1190         (LIBGCC_SPEC): Don't define.
1191
1192 2001-05-14  Richard Henderson  <rth@redhat.com>
1193
1194         * configure.in (gcc_cv_as_eh_frame): New test.
1195         * config.in, configure: Rebuild.
1196         * gcc.c (init_spec): Honor USE_AS_TRADITIONAL_FORMAT.
1197
1198 2001-05-14  Andrew MacLeod  <amacleod@redhat.com>
1199
1200         * config/ia64/lib1funcs.asm (__divtf3): Fix incorrect bits in
1201         extended precision divide.
1202
1203 2001-05-14  Andrew MacLeod  <amacleod@redhat.com>
1204
1205         * config/ia64/ia64.c (rtx_needs_barrier): Call rtx_needs_barrier
1206         for RETURNS as well.
1207
1208 Mon May 14 17:34:48 CEST 2001  Jan Hubicka  <jh@suse.cz>
1209
1210         * i386.h (TARGET_64BIT): Define to constant if !TARGET_BI_ARCH
1211         (CPP_CPU??_SIZE_TYPE): New.
1212         (CPP_CPU??_SPEC, CPP_CPUCOMMON_SPEC): Break out from...
1213         (CPP_CPU_SPEC): ... here; support choosing of CPU.
1214         (EXTRA_SPECS): Add cpp_cpu??, cpp_cpu??sizet, cpp_cpucommon.
1215         (MAX_LONG_TYPE_SIZE, MAX_BITS_PER_WORD): Define to 32 for 32bit-only
1216         compiler.
1217         * i386.c (override_options): Add sorry about not suported modes.
1218
1219 Mon May 14 08:56:47 2001  Jeffrey A Law  (law@cygnus.com)
1220
1221         * config/pa/som.h (NM_FLAGS): Remove.
1222         (ASM_OUTPUT_FUNCTION_PREFIX): No longer truncate subspace names.
1223         (ASM_OUTPUT_SECTION_NAME): Remove.
1224         (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Likewise.
1225
1226 2001-05-14  Mark Mitchell  <mark@codesourcery.com>
1227
1228         * regrename.c (regrename_optimize): Do not rename registers to
1229         leaf registers.
1230
1231 2001-05-14  Alexandre Oliva  <aoliva@redhat.com>
1232
1233         * rtl.texi (CALL_INSN_FUNCTION_USAGE): Note that (and when) it may
1234         contain MEMs.  Remove useless distinction about clobbering
1235         registers.
1236
1237 2001-05-13  Geoff Keating  <geoffk@redhat.com>
1238
1239         * config/rs6000/rs6000.h (EXCEPTION_SECTION): Move to...
1240         * config/rs6000/aix.h (EXCEPTION_SECTION): ... here.
1241         * config/rs6000/sysv4.h (CONST_SECTION_ASM_OP): Delete.
1242         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
1243         (EXCEPTION_SECTION): Define.
1244
1245 2001-05-13  Zack Weinberg  <zackw@stanford.edu>
1246
1247         * libgcc2.c, libgcc2.h: Restore __eprintf.  Label as used for
1248         binary backward compat only.
1249         * Makefile.in (LIB2FUNCS_ST): New.  Put _eprintf here, not
1250         in LIB2FUNCS.  Pass it to mklibgcc.
1251         * mklibgcc.in: Handle LIB2FUNCS_ST.
1252
1253         * Makefile.in (installdirs): Don't create $(gcc_tooldir).
1254
1255 2001-05-13  Alexandre Oliva  <aoliva@redhat.com>
1256
1257         * tm.texi (THREAD_MODEL_SPEC): Document it.
1258         * gcc.c (main): Use it.
1259         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Define it.
1260         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Likewise.
1261
1262 2001-05-13  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1263
1264         * rtl.h (SYMBOL_REF_WEAK): New macro.
1265         * rtlanal.h (rtx_addr_can_trap): Use it, a weak SYMBOL_REF can trap.
1266         * varasm.c (make_decl_rtl): Mark SYMBOL_REF weak if necessary.
1267         * rtl.texi (SYMBOL_REF_WEAK): Document it.
1268         * gcc.texi: Remove wrong description.
1269
1270 2001-05-13  Mark Mitchell  <mark@codesourcery.com>
1271
1272         * Makefile.in (STAMP): New macro.
1273         Replace all uses of `touch' with $(STAMP).
1274         * fixinc/Makefile.in: Likewise.
1275
1276 Sun May 13 07:26:34 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1277
1278         * configure.in: ldopen is never in -lexc, so don't test for it.
1279         Add test for exc_resume in -lexc for Ada.
1280         * configure: Regenerated.
1281
1282 2001-05-12  Richard Henderson  <rth@redhat.com>
1283
1284         * dwarf2asm.c (size_of_encoded_value): New function.
1285         * dwarf2asm.h: Declare it.
1286         * except.c (output_function_exception_table): Align the TType
1287         array only as wide as the encoding.
1288
1289 2001-05-12  Zack Weinberg  <zackw@stanford.edu>
1290
1291         * extend.texi: Document #pragma GCC java_exceptions.
1292
1293 2001-05-12  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
1294
1295         * c-parse.in (bison parser, init_reswords): Remove uses of
1296         doing_objc_thang.
1297         * c-tree.h (doing_objc_thang): Remove.
1298
1299 2001-05-12  Neil Booth  <neil@daikokuya.demon.co.uk>
1300
1301         * cpplex.c (_cpp_lex_token): Ensure we warn at most once
1302         about files not ending in newlines.
1303
1304 2001-05-12  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
1305
1306         * dwarfout.c (dwarfout_init): Add cast.
1307         * sched-deps.c (sched_analyze_insn): Remove unused vars.
1308         * unwind-dw2-fde.c (_Unwind_Find_FDE): Flag unused parameter so.
1309 cp:
1310         * method.c (build_mangled_C99_name): Remove unused prototype.
1311
1312 2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
1313
1314         * config/arm/arm.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Use delta.
1315
1316 2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
1317
1318         * defaults.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
1319         * tm.texi (TARGET_PRTMEMFUNC_VBIT_LOCATION): Document.
1320
1321 2001-05-11  Richard Henderson  <rth@redhat.com>
1322
1323         * defaults.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
1324         * dwarf2asm.c (dw2_force_const_mem, dw2_output_indirect_constant_1,
1325         dw2_output_indirect_constants, dw2_asm_output_encoded_addr_rtx): New.
1326         * dwarf2asm.h (dw2_asm_output_encoded_addr_rtx): Prototype.
1327         (dw2_output_indirect_constants): Prototype.
1328         * dwarf2out.c (dwarf2out_begin_prologue): Generate
1329         current_function_func_begin_label if we'll need it for EH.  Exit
1330         early for IA64_UNWIND_INFO.
1331         * except.c: Get DW_EH_PE_* defines from dwarf2.h.
1332         (eh_data_format_name): Update for indirect references.
1333         (output_function_exception_table): Care for IA64_UNWIND_INFO.
1334         Handle ASM_PREFERRED_EH_DATA_FORMAT.
1335         * except.h (MUST_USE_SJLJ_EXCEPTIONS): IA64_UNWIND_INFO needn't
1336         define HAVE_eh_return etc.
1337         * final.c (final_start_function): Always call dwarf2out_begin_prologue.
1338         (final_end_function): Don't call output_function_exception_table.
1339         * toplev.c (compile_file): Call dw2_output_indirect_constants.
1340         (rest_of_compilation): Invoke output_function_exception_table
1341         for ia64 before assemble_end_function.
1342         * tm.texi (ASM_PREFERRED_EH_DATA_FORMAT): Document.
1343         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Document.
1344
1345         * unwind-dw2.c (_Unwind_GetTextRelBase, _Unwind_GetDataRelBase): New.
1346         * unwind.h: Declare them.
1347         * libgcc-std.ver: Export them.
1348         * unwind-pe.h: New file.
1349
1350         * config/alpha/elf.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
1351
1352         * config/ia64/fde-glibc.c: Use "struct unw_table_entry"
1353         instead of "fde".
1354         (find_fde_for_dso): Extract DT_PLTGOT.
1355         (_Unwind_FindTableEntry): Rename from __ia64_find_fde; return
1356         the segment and gp as well.
1357         * config/ia64/frame-ia64.c: Remove file.
1358         * config/ia64/frame-ia64.h: Remove file.
1359         * config/ia64/unwind-ia64.c: New file.
1360         * config/ia64/unwind-ia64.h: New file.
1361         * config/ia64/ia64.h (ASM_OUTPUT_EH_CHAR): Remove.
1362         (ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT): Remove.
1363         (ASM_OUTPUT_EH_DOUBLE_INT): Remove.
1364         (ASM_PREFERRED_EH_DATA_FORMAT): New.
1365         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New.
1366         (IA64_UNWIND_INFO): Re-enable.
1367         (HANDLER_SECTION): Remove.
1368         (EH_RETURN_DATA_REGNO): New.
1369         * config/ia64/ia64.md (exception_receiver): Remove.
1370         * config/ia64/t-glibc (LIB2ADDEH): Re-enable.
1371         * config/ia64/t-ia64 (LIB2ADDEH): Re-enable.
1372
1373 2001-05-11  Richard Henderson  <rth@redhat.com>
1374
1375         * config/ia64/ia64.c (group_barrier_needed_p): Don't allow
1376         calls and jumps to be bundled together.
1377         (ia64_reorg): Emit a break after a noreturn call that ends
1378         a function.
1379         * config/ia64/ia64.md (break_f): New.
1380
1381 2001-05-12  Neil Booth  <neil@daikokuya.demon.co.uk>
1382
1383         * c-lex.c (lex_charconst): Convert into a simple wrapper
1384         around cpp_interpret_charconst, to which most of the code
1385         body is moved.
1386         * cppexp.c (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE,
1387         MAX_LONG_TYPE_SIZE, MAX_INT_TYPE_SIZE, MAX_CHAR_TYPE_MASK,
1388         MAX_WCHAR_TYPE_MASK, parse_escape, parse_charconst): Remove.
1389         (lex): Use cpp_interpret_charconst.
1390         * cpplex.c (parse_escape, read_ucs, cpp_interpret_charconst,
1391         hex_digit_value): New functions.
1392         (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): New macros.
1393         * cpplib.h (cpp_interpret_charconst): New prototype.
1394         * Makefile.in: Update.
1395
1396 2001-05-12  Dean Wakerley  <dean@wakerley.com>
1397
1398         * doc/install.texi: New file. Converted to texinfo from the HTML
1399         documentation in wwwdocs/htdocs/install.
1400
1401 Fri May 11 15:50:13 2001  Jeffrey A Law  (law@cygnus.com)
1402
1403         * gcse.c (insert_insn_end_bb): Do not search for assignments to
1404         non-argumment registers that are mentioned in CALL_INSN_FUNCTION_USAGE.
1405
1406         * toplev.c (compile_file): Move comment for opening output
1407         file to just before the code that opens the output file.
1408
1409 2001-05-11  Jakub Jelinek  <jakub@redhat.com>
1410
1411         * regmove.c (regmove_optimize): Suppress the optimization for
1412         unchanging destination register.  Add comment above function.
1413
1414 2001-05-11  Zack Weinberg  <zackw@stanford.edu>
1415
1416         * Makefile.in: Exterminate all references to assert.h.
1417         * cross-make: Likewise.
1418         * assert.h: Delete.
1419         * configure.in: Correct commentary.
1420         * configure: Regenerate.
1421
1422         * libgcc-std.ver, libgcc2.c, libgcc2.h, sys-protos.h:
1423         Remove __eprintf.
1424
1425         * config/t-freebsd, config/t-linux, config/t-linux-aout,
1426         config/t-netbsd, config/t-rtems, config/x-linux,
1427         config/i386/t-beos, config/mcore/t-mcore, config/mcore/t-mcore-pe:
1428         No need to override INSTALL_ASSERT_H.
1429
1430         * fixinc/fixinc.dgux, fixinc/fixinc.interix, fixinc/fixinc.ptx,
1431         fixinc/fixinc.svr4, fixinc/fixinc.winnt, fixinc/fixinc.wrap,
1432         fixinc/fixincl.sh: Don't install assert.h into objdir/include.
1433
1434 2001-05-11  Graham Stott  <grahams@redhat.com>
1435
1436         * combine.c (simplify_comparison): Fix typo.
1437
1438 2001-05-11  Mark Mitchell  <mark@codesourcery.com>
1439
1440         * loop.h (struct movables): Remove `num'.
1441         * loop.c (scan_loop): Don't set it.  Use count_insns_in_loop.
1442         Adjust call to strength_reduce.
1443         (num_unmoved_movables): New function.
1444         (move_movables): Don't set movables->num.
1445         (strength_reduce): Compute the number of instructions in the loop
1446         here, rather than in the caller.
1447         (check_dbra_loop): Always clear reversible_mem_store if there
1448         are any memory sets.
1449         (loop_regs_scan): Don't count instructions here.
1450         (count_insn_in_loop): New function.
1451
1452 2001-05-11  Mark Mitchell  <mark@codesourcery.com>
1453
1454         * optabs.c (emit_libcall_block): Don't mark calls as CONST_CALL_P.
1455
1456 2001-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>
1457
1458         * c-common.c (finish_label_expr): New function, lifted from
1459         from cp/semantics.c.
1460         * c-common.h (finish_label_expr, lookup_label): New prototypes.
1461         * c-parse.in: Move 3 blocks of parser code into new functions.
1462         * c-typeck.c (simple_asm_stmt, c_cast_expr): New functions.
1463         * c-tree.h (simple_asm_stmt, c_cast_expr): New prototypes.
1464         (lookup_label): Remove.
1465
1466 2001-05-11  Alexandre Oliva  <aoliva@redhat.com>
1467
1468         * config/mn10300/t-mn10300 (dp-bit.c, fp-bit.c): Don't define
1469         FLOAT_BIT_ORDER_MISMATCH.
1470
1471 2001-05-10  David Edelsohn  <edelsohn@gnu.org>
1472
1473         * expr.c (emit_push_insn): Convert PUSH_ROUNDING argument to
1474         bytes.  Reported by Kazu Hirata <kazu@hxi.com>.
1475
1476 2001-05-10  David Edelsohn  <edelsohn@gnu.org>
1477
1478         * expr.c (emit_group_load): extract_bit_field requires a REG or
1479         MEM as an argument.
1480
1481 Thu May 10 14:45:44 2001  Jeffrey A Law  (law@cygnus.com)
1482
1483         * cse.c (cse_insn): Mostly remove first hunk of code which collapsed
1484         a computed jump into an unconditional jump.
1485         In second hunk of code for collapsing computed and conditional jumps
1486         into unconditional jumps, reemit the jump in additional cases.
1487
1488         * jump.c (jump_optimize_1): Do not wrap the new jump target
1489         inside a LABEL_REF; gen_jump will do that automatically.
1490
1491 2001-05-10  Toon Moene  <toon@moene.indiv.nluug.nl>
1492
1493         * dwarf2out.c (mem_loc_descriptor): Do not pass constant pool
1494         contents for a SYMBOL_REF in case of floating point constants.
1495
1496 2001-05-10  DJ Delorie  <dj@redhat.com>
1497
1498         * c-common.c (combine_strings): Widen strings in a
1499         host-endian-independent way.
1500
1501 2001-05-10  Joseph S. Myers  <jsm28@cam.ac.uk>
1502
1503         * c-parse.in: Remove many shift/reduce conflicts.  Update
1504         %expect values.
1505         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
1506         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
1507         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
1508         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
1509         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
1510         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
1511         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
1512         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea, declspecs_ts,
1513         declspecs_nots, declspecs_ts_nosa, declspecs_nots_nosa,
1514         declspecs_nosc_ts, declspecs_nosc_nots, declspecs_nosc, declspecs,
1515         maybe_type_quals_setattrs, typespec_nonattr, typespec_attr,
1516         typespec_reserved_nonattr, typespec_reserved_attr,
1517         typespec_nonreserved_nonattr, maybe_setattrs, structsp_attr,
1518         structsp_nonattr, components_notype, component_notype_declarator,
1519         absdcl1_ea, absdcl1_noea, direct_absdcl1, absdcl_maybe_attribute,
1520         firstparm, setspecs_fp): New
1521         (typed_declspecs, reserved_declspecs, typed_typespecs,
1522         reserved_typespecquals, declmods, typespec, typespecqual_reserved,
1523         typed_declspecs_no_prefix_attr reserved_declspecs_no_prefix_attr
1524         declmods_no_prefix_attr, nonempty_type_quals, structsp,
1525         type_quals): Remove.  Users updated.
1526         (initdecls, notype_initdecls, after_type_declarator,
1527         parm_declarator, notype_declarator, absdcl1, components, ivars):
1528         Don't allow attributes at the start of a declarator; include them
1529         in the production containing the declarator instead.  Always
1530         require type specifiers before trying to redeclare a typedef name.
1531         (typename): Allow for attributes but warn that they are ignored.
1532         (parmlist, firstparm, setspecs_fp): Include attributes in
1533         parmlist; suck them off the parser stack in firstparm using
1534         setspecs_fp.
1535
1536 Thu May 10 09:17:42 2001  Jeffrey A Law  (law@cygnus.com)
1537
1538         * ifcvt.c (merge_if_block): Use any_uncondjump_p, not simplejump_p
1539         to determine if a block has an unconditional jump at its end.
1540
1541         * jump.c (jump_optimize_1): When converting a conditional jump
1542         to an unconditional jump, build the jump using gen_jump instead
1543         of just modify operands in-place.
1544
1545 2001-05-09  Zack Weinberg  <zackw@stanford.edu>
1546
1547         * cppinit.c (cpp_post_options): Shut off macro expansion if
1548         -fpreprocessed.
1549         * cpplib.c (_cpp_handle_directive): If -fpreprocessed, accept
1550         IN_I directives only if the # is in column 1 and the directive
1551         name begins in column 2.
1552         * cppmain.c (scan_buffer): Insert a space between # and an
1553         identifier, when that identifier is a directive name.
1554
1555         * tradcpp.c (struct file_buf): Add a pointer to the next entry
1556         in the header search path.
1557         (enum node_type): Add T_INCLUDE_NEXT.
1558         (directive_table): Add entry for include_next.
1559         (do_include_next): New function.
1560         (process_include): New routine, broken out of do_include.
1561         (finclude): Insert 'nhd' argument, to be copied into
1562         next_header_dir of the new buffer.
1563         (main): Adjust to match.
1564         * gsyslimits.h, limity.h: Un-indent #include_next.
1565
1566 2001-05-09  Joseph S. Myers  <jsm28@cam.ac.uk>
1567
1568         * objc.texi: Move from ../libobjc/objc-features.texi.  Adjust for
1569         inclusion as a chapter of the GCC manual.
1570         * gcc.texi: Include objc.texi.
1571         * fdl.texi: Use @unnumberedsec for the addendum.
1572         * Makefile.in ($(srcdir)/gcc.info, gcc.dvi): Update dependencies.
1573
1574 Wed May  9 16:01:41 CEST 2001  Jan Hubicka  <jh@suse.cz>
1575
1576         * i386.md (DImode move splitters): Use !MMX and !SSE for the condition.
1577
1578 Wed May  9 10:40:25 2001  Alexandre Oliva  <aoliva@redhat.com>
1579
1580         * regclass.c (scan_one_insn): Update REG_N_REFS when optimizing
1581         handling of two-address insns.
1582
1583 Wed May  9 10:36:18 2001  Alexandre Oliva  <aoliva@redhat.com>
1584
1585         * Makefile.in (NM_FOR_TARGET): Look for ./nm, then
1586         ../binutils/nm-new instead of ../binutils/nm.
1587
1588 Wed May  9 12:15:46 CEST 2001  Jan Hubicka  <jh@suse.cz>
1589
1590         * i386.md (movdi splitter): Fix the splitting condition
1591         (float_extenddftf splitter): Fix mode.
1592
1593 Wed May  9 12:05:39 CEST 2001  Jan Hubicka  <jh@suse.cz>
1594
1595         * genrecog.c (write_switch): Avoid outputting of switch for
1596         types wider than int.
1597
1598 2001-05-03  Andrew Haley  <aph@cambridge.redhat.com>
1599
1600         * reload1.c (copy_eh_notes): New function.
1601         (emit_input_reload_insns): Call it.
1602         (emit_output_reload_insns): Call it.
1603
1604 2001-05-07  Zack Weinberg  <zackw@stanford.edu>
1605
1606         * config.gcc (i[34567]86-*-sco3.2v4*, i[34567]86-*-sco*):
1607         Delete stanzas.
1608         * config/i386/sco.h, config/i386/sco4.h, config/i386/scodbx.h,
1609         config/i386/sco4dbx.h, config/i386/x-sco4: Delete file.
1610
1611         * optabs.c: Delete #ifdef BROKEN_LDEXP block.
1612
1613 2001-05-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1614
1615         * pa.md (interspace_jump): Revise comment.
1616         (builtin_longjmp): Block initial setup insns from delay slot of
1617         interspace branch.
1618         (builtin_setjmp_receiver): New expander to save and restore PIC
1619         register.
1620
1621         * som.h (NM_FLAGS): Remove `-n' sort option.  Revise comment.
1622
1623 Mon May  7 09:30:14 2001  Jeffrey A Law  (law@cygnus.com)
1624
1625         * toplev.c (compile_file): Set up the output file before we call
1626         the various initializers for the compiler.
1627
1628         * except.c (sjlj_mark_call_sites): Do not search for assignments to
1629         non-argumment registers that are mentioned in CALL_INSN_FUNCTION_USAGE.
1630
1631         * pa.h (MAX_LONG_TYPE_SIZE): Should be 32, not 64.
1632         * pa-64.h (*_TYPE_SIZE): Undefine before redefining.
1633
1634 2001-05-06  Zack Weinberg  <zackw@stanford.edu>
1635
1636         * Makefile.in (tradcpp0): Correct typo in dependency list.
1637
1638 2001-05-06  Geoff Keating  <geoffk@redhat.com>
1639
1640         * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't save
1641         the link register if we're not going to use it.
1642
1643         * config/rs6000/rs6000.c (output_profile_hook): Fix a warning.
1644         (output_function_profiler): Likewise.
1645
1646 2001-05-07  Alan Modra  <amodra@one.net.au>
1647
1648         * pa.c (compute_frame_size): 64-bit frame marker is 16 bytes.
1649
1650 2001-05-06  Alexandre Oliva  <aoliva@redhat.com>
1651
1652         * unroll.c (loop_iterations): Don't sign-extend abs_diff;
1653         zero-extend it.  Make abs_inc unsigned.
1654
1655         * optabs.c (expand_binop): Sign-extend xop0 and xop1 from the
1656         widest mode in narrowing and widening operations.
1657
1658         * config/mips/mips.md: Sign extend CONST_INTs.
1659
1660 2001-05-06  Andreas Jaeger  <aj@suse.de>
1661
1662         * invoke.texi (Option Summary): Add -momit-leaf-frame-pointer
1663         (i386 Options): Document -momit-leaf-frame-pointer.
1664
1665 2001-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
1666
1667         * c-typeck.c (internal_build_compound_expr): Check for
1668         array to pointer conversion just once.
1669
1670 2001-05-05  Richard Henderson  <rth@redhat.com>
1671
1672         * integrate.c (copy_insn_list): Substitute NOTE_EXPECTED_VALUE.
1673
1674 2001-05-05  Richard Henderson  <rth@redhat.com>
1675
1676         * except.c (remove_fixup_regions): Adjust REG_EH_REGION notes
1677         to the parent of the fixup region.
1678
1679 2001-05-05  Jakub Jelinek  <jakub@redhat.com>
1680
1681         * gcc.c (cpp_options): Define __NO_INLINE__ unless we are honoring
1682         "inline" keyword.
1683         * cpp.texi (__NO_INLINE): Document it.
1684
1685 2001-05-05  Neil Booth  <neil@daikokuya.demon.co.uk>
1686
1687         * cppfiles.c (struct include_file): New member err_no.
1688         (find_or_create_entry): Set it.
1689         (open_file): Don't set fds to -2.  Instead, use err_no to
1690         remember previous errors, if any.
1691
1692 2001-05-05  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1693
1694         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Optimize moves
1695         between X and Y by using sequences of xgdx and xgdy.
1696
1697 2001-05-05  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1698
1699         * config/m68hc11/m68hc11.md ("*logicalsi3_silshr16"): Use '?' instead
1700         of '!' for the 'D' alternative ('!' is too strong).
1701         ("*logicalsi3_silshl16"): Likewise.
1702         ("movstricthi"): Accept 'A' when 'd' constraint, remove spurious '+'.
1703         ("movstrictsi"): Remove spurious '+'.
1704         ("movstrictqi"): Don't accept 'A' and remove spurious '+'.
1705         ("tstqi_1", "*lshrqi3_const1"): Put 'm' constraint before 'd'.
1706         ("subqi3"): Disparage with '!' the 'x' and 'y' registers to avoid
1707         a reload to them.
1708
1709 2001-05-04  David Edelsohn  <edelsohn@gnu.org>
1710
1711         * calls.c (store_one_arg): Don't divide align by BITS_PER_UNIT.
1712
1713 2001-05-04  Lars Brinkhoff  <lars@nocrew.org>
1714
1715         * simplify-rtx.c (simplify_binary_operation): Simplify ~a + 1
1716         into -a.
1717
1718 2001-05-04  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1719
1720         * config/rs6000/rs6000.md (ashldi3 splits): Guard with
1721         TARGET_POWERPC64.
1722
1723 2001-05-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1724
1725         * config/m68hc11/m68hc11.md (lshrhi3_const1): Fix shift of
1726         soft register, use ror instead of rol.
1727
1728 2001-05-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1729
1730         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Take
1731         into account pre/post increment decrement for 68HC12.
1732         Fix other problems in replacement and fix call to reg_mentioned_p.
1733
1734 2001-05-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1735
1736         * config/m68hc11/larith.asm (L_regs_frame): New for _.frame.
1737         Put the soft registers in bss for 68HC12.
1738         (L_regs_d3_4): New for _.d3 and _.d4.
1739         (L_regs_d5_6): Likewise.
1740         (L_regs_d1_2): Likewise.
1741         * config/m68hc11/t-m68hc11-gas (T_CPPFLAGS): Compile new parts.
1742
1743 2001-05-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1744
1745         * config/m68hc11/m68hc11.h (CPP_SPEC): Pass -D__HAVE_SHORT_DOUBLE__
1746         to the pre-processor when -fshort-double is specified.
1747         * config/m68hc11/m68hc11.2 (CPP_SPEC): Likewise.
1748
1749 2001-05-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1750
1751         * config/m68hc11/larith.asm (divmodhi4): Empty for 68HC12.
1752         (__mulsi3): Rewrite for 68HC12.
1753         * config/m68hc11/m68hc11.md (divmodhi4): Use idivs for 68HC12.
1754         Mark 'x' constraint with earlyclobber to prevent a
1755         RELOAD_FOR_OTHER_ADDRESS to go in it.
1756         (mulhi3_m68hc12): New pattern.
1757         (mulhi3_m68hc11): Rename of mulhi3.
1758         (mulhi3): New expand for 68HC12 optimisation.
1759         (umulhisi3, mulhisi3): New patterns for 68HC12.
1760
1761 2001-05-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1762
1763         * config/m68hc11/m68hc11.md (*tbne, *tbeq): New patterns for 68HC12.
1764         (extendqisi2, extendqihi2, extendhisi2): Use sex for 68HC12.
1765         (uminqi3, umaxqi3, uminhi3, umaxhi3): New pattern for 68HC12.
1766
1767 2001-05-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1768
1769         * config/m68hc11/m68hc11.h (CONST_COSTS): Make the cost of
1770         constants cheap after reload.
1771         * config/m68hc11/m68hc11.c (m68hc11_shift_cost): Shift by 16 and 32
1772         are cheap.
1773         (m68hc11_rtx_costs): Cost of multiplication by 65536 is expensive
1774         so that gcc prefers a shift by 16.
1775         (m6811_cost, m6812_cost): Make the shift cheap compared to an add.
1776
1777 2001-05-04  Nick Clifton  <nickc@cambridge.redhat.com>
1778
1779         * config/arm/elf.h (ASM_OUTPUT_ALIGNED_COMMON): Define.
1780
1781 2001-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1782
1783         * alpha.h: NULL_PTR -> NULL.
1784         * arm.c: Likewise.
1785         * arm.h: Likewise.
1786         * avr.h: Likewise.
1787         * c4x.c: Likewise.
1788         * c4x.h: Likewise.
1789         * i386.c: Likewise.
1790         * i386.md: Likewise.
1791         * i860.c: Likewise.
1792         * ia64.c: Likewise.
1793         * m68hc11.h: Likewise.
1794         * rs6000.h: Likewise.
1795         * sh.c: Likewise.
1796         * sh.h: Likewise.
1797         * sparc.h: Likewise.
1798         * v850.c: Likewise.
1799
1800         * expr.c: Likewise.
1801         * final.c: Likewise.
1802         * gcc.c: Likewise.
1803         * recog.c: Likewise.
1804
1805 2001-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1806
1807         * i386.c (ix86_emit_restore_regs_using_mov, ix86_save_reg): Change
1808         `bool' parameter to `int'.
1809
1810         * hash.c (hash_lookup): Likewise.
1811
1812         * hash.h (hash_lookup): Likewise.
1813
1814         * tlink.c (symbol_hash_lookup, demangled_hash_lookup): Likewise.
1815
1816 Fri May  4 13:10:03 CEST 2001  Jan Hubicka  <jh@suse.cz>
1817
1818         * i386.c (x86_initialize_trampoline): Fix mode of constant.
1819
1820 2001-05-03  Geoff Keating  <geoffk@redhat.com>
1821
1822         * invoke.texi (i386 Options): Delete references to -malign-jumps,
1823         -malign-loops, -malign-functions.
1824         * i386.c (ix86_align_funcs): Delete.
1825         (ix86_align_loops): Delete.
1826         (ix86_align_jumps): Delete.
1827         (override_options): Mark -malign-* as obsolete.  Emulate their
1828         behaviour with the -falign-* options.  Default -falign-* from
1829         the processor table.
1830         * i386.h (FUNCTION_BOUNDARY): Define to 16; revert Richard Kenner's
1831         patch of Wed May 2 13:09:36 2001.
1832         (LOOP_ALIGN): Delete.
1833         (LOOP_ALIGN_MAX_SKIP): Delete.
1834         (LABEL_ALIGN_AFTER_BARRIER): Delete.
1835         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Delete.
1836
1837 2001-05-04  Andreas Jaeger  <aj@suse.de>
1838
1839         * except.h: Add prototype declaration for
1840         expand_builtin_init_dwarf_reg_sizes.
1841
1842 2001-05-03  Geoffrey Keating  <geoffk@redhat.com>
1843
1844         * Makefile.in (site.exp): Set TESTING_IN_BUILD_TREE.
1845
1846 2001-05-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1847
1848         * config/m68hc11/m68hc11.md ("bitcmpqi"): New pattern for bitb
1849         instruction.
1850         ("bitcmpqi2"): New pattern for bit-extract and test.
1851         ("bitcmphi"): New pattern for bitb/bita instructions.
1852
1853 2001-05-03  Joseph S. Myers  <jsm28@cam.ac.uk>
1854
1855         * gccbug.in: Use a temporary directory when the mktemp command is
1856         not available.
1857
1858 2001-05-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1859
1860         * config/m68hc11/m68hc11.h (STATIC_CHAIN_REGNUM): Use soft z register
1861         instead of _.d1.
1862         (INITIALIZE_TRAMPOLINE): Call it.
1863         (TRAMPOLINE_SIZE): Define according to 68HC11/68HC12.
1864         (TRAMPOLINE_TEMPLATE): Remove.
1865         * config/m68hc11/m68hc11.c (m68hc11_initialize_trampoline): New.
1866         * config/m68hc11/m68hc11-protos.h (m68hc11_initialize_trampoline):
1867         Declare.
1868
1869 2001-05-03  David O'Brien  <obrien@FreeBSD.org>
1870
1871         * config/t-freebsd: Don't install "assert.h" in gcc.  Compile crtbeginS.o
1872         and crtendS.o with PIC.
1873
1874 2001-05-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1875
1876         * config/m68hc11/larith.asm (__mulqi3): Fix multiplication of two
1877         negative numbers.
1878         (___subdi3, ___adddi3): Use x instead of y as index register.
1879         (__init_bss_section, __map_data_section): Optimize for 68HC12.
1880         (__memset, __memcpy): Likewise.
1881         (regs): Put the soft registers in bss for 68HC12.
1882         (abort): Use trap to abort for 68hc12.
1883         (__mulhi3, __mulhi32): Use emul for 68hc12.
1884         (__mulsi3): Avoid to use the tmp soft register for 68hc12.
1885
1886 2001-05-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1887
1888         * config/m68hc11/m68hc11.h (LIMIT_RELOAD_CLASS): Don't define.
1889         * config/m68hc11/m68hc11-protos.h (limit_reload_class): Remove.
1890         * config/m68hc11/m68hc11.c (limit_reload_class): Remove.
1891         (m68hc11_override_options): Remove setting of flag_no_nonansi_builtin.
1892         Set 68HC12 min offset to -65536.
1893         (print_operand): Put parenthesis arround the operand if it refers
1894         to a symbol having the same name as a register.
1895         (m68hc11_z_replacement): When z register is replaced by its
1896         equivalent soft register, force the insn to be re-recognized.
1897         (m68hc11_check_z_replacement): Fix the test when destination is
1898         the index register and z dies in the insn.
1899         (m68hc11_reorg): Remove the REG_DEAD notes beforce recomputing them.
1900
1901 2001-05-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1902
1903         * config/m68hc11/m68hc11.c (m68hc11_override_options): Initialize
1904         costs according to processor variant.
1905         (m68hc11_shift_cost): New function to compute shift costs.
1906         (m68hc11_rtx_costs): Define costs according to processor variant.
1907         (m6811_cost): Costs for 68HC11.
1908         (m6812_cost): Costs for 68HC12.
1909         (COSTS_N_INSNS): Remove.
1910
1911         * config/m68hc11/m68hc11.h (RTX_COSTS): New.
1912         (DEFAULT_RTX_COSTS): Remove.
1913         (CONST_COSTS): Define costs according to OUTER_CODE.
1914         (processor_costs): New struct to define costs.
1915         (m68hc11_cost): Pointer to current costs.
1916
1917 2001-05-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1918
1919         * config/m68hc11/m68hc11.md (*addhi3_68hc12): Fix generation
1920         and use m68hc11_notice_keep_cc when using leax/leay.
1921         (addhi3 split): Reject split if the insn is handled by
1922         leax/leay above.
1923         * config/m68hc11/m68hc11.c (m68hc11_split_move): For 68HC12 the
1924         push must be handled in a special way if the source operand uses
1925         sp as index register.
1926         (m68hc11_notice_keep_cc): New function.
1927         (m68hc11_gen_movhi): Use it when an insn changes a register but
1928         not the flags.
1929         (m68hc11_gen_movqi): Fix move for 68HC12.
1930         * config/m68hc11/m68hc11-protos.h (m68hc11_notice_keep_cc): Declare.
1931
1932 2001-05-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1933
1934         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use LCT_CONST
1935         and don't pass operands[0] to emit_library_call_value.
1936
1937 2001-05-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1938
1939         * config/m68hc11/m68hc11.md (tsthi_1): Use cpd for 68HC12.
1940         (zero_extendsi split): Simplify and use (zero_extendhi).
1941         (*addhi3): Remove 'w' constraint since stack pointer is handled
1942         by (addhi3_sp).
1943         (*ashlhi3_2): Operand 2 is clobbered use '+' for its constraint.
1944         (*ashlhi3, *ashrhi3, *lshrhi3): Likewise.
1945         (*ashrhi3_const): Fix shift by 7.
1946         (*lshrsi3_const16): Fix template.
1947         (call, call_value): Fix constraint and predicate.
1948
1949 2001-05-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1950
1951         * config/m68hc11/m68hc11.md (X_REGNUM, D_REGNUM): New constant.
1952         (Y_REGNUM, SP_REGNUM, PC_REGNUM, A_REGNUM, B_REGNUM): Likewise.
1953         (CC_REGNUM): Likewise.
1954         (*unnamed splits): Use above constants instead of hard coded numbers.
1955         (*adcq, *subcq, *addsi_carry, *rotlqi3_with_carry): Likewise.
1956         (*rotlhi3_with_carry, *rotrhi3_with_carry): Likewise.
1957         (*return_16bit, *unnamed peepholes): Likewise.
1958
1959 2001-05-03  David O'Brien  <obrien@FreeBSD.org>
1960
1961         * config.gcc(rs6000-ibm-aix|powerpc-ibm-aix):  Do not include
1962         rs6000/rs6000.h twice.
1963
1964 2001-05-03  Mark Elbrecht  <snowball3@bigfoot.com>
1965
1966         * config/i386/djgpp.h (CPP_PREDEFINES): Define __GO32__.
1967         (CPP_SPEC): Conditionally define MSDOS and GO32.
1968         (SUBTARGET_SWITCHES): Ignore -mbnu210 and -mno-bnu210.
1969         (SUBTARGET_OVERRIDE_OPTIONS): Warn that -mbnu210 and -mno-bnu210 are
1970         ignored.
1971         (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Remove.
1972
1973 2001-05-03  Alexandre Oliva  <aoliva@redhat.com>
1974
1975         * config/mn10300/mn10300.md: Sign-extend GEN_INT operands.
1976
1977 2001-05-03  Mark Mitchell  <mark@codesourcery.com>
1978
1979         * integrate.h (struct inline_remap): Add leaf_reg_map table.
1980         * integrate.c (expand_inline_function): Use xcalloc to allocate
1981         memory.
1982         (copy_rtx_and_substitute): Use the leaf_reg_map for leaf
1983         registers.
1984
1985 2001-05-03  Mark Mitchell  <mark@codesourcery.com>
1986
1987         * c-dump.c (dequeue_and_dump): Don't look at DECL_ASSEMBLER_NAME
1988         if it is not set.
1989
1990 2001-05-03  Alexandre Oliva  <aoliva@redhat.com>
1991
1992         * config/mn10300/mn10300.h (LINK_SPEC): Pass --relax to the
1993         linker if -mrelax is given.
1994         (TARGET_SWITCHES): Document -mrelax.
1995
1996         Re-installed 2001-01-09's patch:
1997         * hwint.h (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT): Use long long
1998         if it's wider than long and the target's long is wider than the
1999         host's.
2000
2001 2001-05-02  David O'Brien  <obrien@FreeBSD.org>
2002
2003         * config.gcc, config/rs6000/aix51.h, config/rs6000/mach.h:  Do not
2004         directly include rs6000/rs6000.h.  Instead do it in tm.h.
2005
2006 2001-05-02  Stan Shebs  <shebs@apple.com>
2007
2008         * objc/objc-act.c (STRING_OBJECT_CLASS_NAME): Default to
2009         NSConstantString for NeXT-style runtimes.
2010         (STRING_OBJECT_GLOBAL_NAME): New macro.
2011         (enum objc_tree_index): Add values OCTI_CNST_STR_GLOB_ID and
2012         OCTI_STRING_CLASS_DECL.
2013         (constant_string_global_id): New macro.
2014         (string_class_decl): Ditto.
2015         (setup_string_decl): New function.
2016         (build_objc_string_object): Use it to build a NeXT runtime
2017         compatible string initializer.
2018
2019 2001-05-02  Jakub Jelinek  <jakub@redhat.com>
2020
2021         * tradcpp.c (do_define): Make sure we don't walk past limit.
2022
2023 2000-05-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2024
2025         * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow any stack
2026         offsets if not REG_OK_STRICT.
2027
2028         * config/rs6000/rs6000.h (REG_OK_STRICT_FLAG): New macro.
2029         (INT_REG_OK_FOR_INDEX_P): Likewise.
2030         (INT_REG_OK_FOR_BASE_P): Likewise.
2031         (REG_OK_FOR_INDEX_P): Use INT_REG_OK_FOR_INDEX_P.
2032         (REG_OK_FOR_BASE_P): Use INT_REG_OK_FOR_BASE_P.
2033         (LEGITIMATE_OFFSET_ADDRESS_P): Use INT_REG_OK_FOR_INDEX_P and
2034         INT_REG_OK_FOR_BASE_P instead of REG_OK_FOR_INDEX_P and
2035         REG_OK_FOR_BASE_P. Take an additional parameter.
2036         (LEGITIMATE_INDEXED_ADDRESS_P): Likeewise.
2037         (LEGITIMATE_INDIRECT_ADDRESS_P): Likewise.
2038         (LEGITIMATE_LO_SUM_ADDRESS_P): Likewise.
2039         (GO_IF_LEGITIMATE_ADDRESS): Move code into new function
2040         rs6000_legitimate_address() and use it.
2041         * config/rs6000/rs6000.c: Update all callers.
2042         (rs6000_legitimate_address): New function.
2043
2044 2001-05-02  David Edelsohn  <edelsohn@gnu.org>
2045
2046         * config/rs6000/rs6000.c (rs6000_emit_move): Merge
2047         special_constant conditional blocks together.
2048
2049 2001-05-02  Dale Johannesen  <dalej@apple.com>
2050
2051         * config/rs6000/rs6000.h (RS6000_ARG_SIZE): Remove unused NAMED
2052         parameter.
2053         (STRICT_ARGUMENT_NAMING): Define.
2054         * config/rs6000/rs6000.c (function_arg_advance, function_arg,
2055         function_arg_partial_nregs, setup_incoming_varargs): Remove
2056         args logic which depends on "named" now that STRICT_ARGUMENT_NAMING
2057         is defined.
2058
2059 Wed May  2 13:09:36 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2060
2061         * config/i386/i386.h (FUNCTION_BOUNDARY): Result is unsigned.
2062
2063         * function.c (fixup_var_regs_1, case SUBREG): Use promoted mode
2064         for replacement.
2065
2066         * expr.c (store_field): Do nothing except elaborate side-effects if
2067         zero-bit field.
2068
2069 2001-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2070
2071         * c-lex.c: NULL_PTR -> NULL.
2072         * cse.c: Likewise.
2073         * emit-rtl.c: Likewise.
2074         * gcse.c: Likewise.
2075         * genpeep.c: Likewise.
2076         * jump.c: Likewise.
2077         * mips-tdump.c: Likewise.
2078         * reload1.c: Likewise.
2079         * rtlanal.c: Likewise.
2080         * stmt.c: Likewise.
2081         * stor-layout.c: Likewise.
2082         * toplev.c: Likewise.
2083
2084 2001-05-01  Per Bothner  <per@bothner.com>
2085
2086         * expr.c (expand_expr):  When compiling LABELED_BLOCK_EXPR,
2087         call do_pending_stack_adjust before emiting label.
2088
2089 2001-05-01  Mark Mitchell  <mark@codesourcery.com>
2090
2091         * extend.texi: Fix typo.
2092
2093 2001-05-01  Stan Shebs  <shebs@apple.com>
2094
2095         * objc/objc-act.c (build_module_descriptor): Clear DECL_CONTEXT
2096         of UOBJC_MODULES_decl.
2097         (generate_strings): Clear DECL_CONTEXT of new decl nodes.
2098         (generate_descriptor_table): Ditto.
2099         (generate_protocols): Ditto.
2100         (generate_protocol_list): Ditto.
2101         (generate_classref_translation_entry): Ditto.
2102
2103 2001-05-01  Jeffrey Oldham  <oldham@codesourcery.com>
2104
2105         * invoke.texi (Optimize Options): Add documentation for `--param
2106         max-delay-slot-insn-search' and `--param
2107         max-delay-slot-live-search' and reorder --param section.
2108         * params.def: Modify initial comment.
2109         * params.h (param_info): Add `help' member.
2110         * toplev.c (lang_independent_params): Include `help' description.
2111         (display_help): Print --param parameters.
2112
2113 2001-05-01  Zack Weinberg  <zackw@stanford.edu>
2114
2115         * config.gcc: Don't default xmake_file to ${cpu_type}/x-${cpu_type}.
2116         Remove references to deleted files.
2117         (*-*-openbsd): No need to override xmake_file.
2118         (*-*-sysv4): Treat like *-*-sysv.
2119
2120         * configure.in: Probe for ldopen in various places, and set up
2121         collect2 to be linked with them if found.
2122         Don't dink with Windows registry stuff unless $host_os is a
2123         Win32 os name.  Check to see if we need -ladvapi32.
2124         * configure: Regenerate.
2125
2126         * Makefile: Get rid of CLIB and HOST_CLIB.
2127         Substitute in COLLECT2_LIBS and link collect2 against its contents.
2128         * build-make: Get rid of HOST_CLIB.
2129
2130         * config/a29k/x-unix, config/alpha/x-osf, config/i386/x-aix,
2131         config/i386/x-osfrose, config/m68k/x-dpx2, config/mips/x-iris3,
2132         config/mips/x-mips, config/mips/x-osfrose, config/mips/x-sony,
2133         config/mips/x-sysv, config/rs6000/x-aix31, config/rs6000/x-aix41,
2134         config/rs6000/x-rs6000: Delete.
2135
2136         * config/i386/x-cygwin, config/m68k/t-aux, config/mips/x-iris:
2137         Don't set CLIB.
2138
2139         24 x-host fragments remain, 0 x-cpu, 3 top level.
2140
2141 2001-05-01  Zack Weinberg  <zackw@stanford.edu>
2142
2143         * aclocal.m4 (gcc_AC_C_CHAR_BIT): Correct test program.
2144         * configure: Regenerate.
2145
2146 2001-05-01  Angela Marie Thomas <angela@cygnus.com>
2147
2148         * Makefile.in (install-headers): Remove redundant dependency.
2149
2150 2001-05-01  Nathan Sidwell  <nathan@codesourcery.com>
2151
2152         * c-tree.texi (USING_STMT): Document.
2153
2154 2001-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2155
2156         * bitmap.c: Change NULL_PTR to NULL or "(rtx*)0".
2157         * c-common.c: Likewise.
2158         * c-decl.c: Likewise.
2159         * combine.c: Likewise.
2160         * rs6000.c: Likewise.
2161         * except.c: Likewise.
2162         * explow.c: Likewise.
2163         * expr.c: Likewise.
2164         * fold-const.c: Likewise.
2165         * function.c: Likewise.
2166         * gcc.c: Likewise.
2167         * gcse.c: Likewise.
2168         * integrate.c: Likewise.
2169         * loop.c: Likewise.
2170         * objc/objc-act.c: Likewise.
2171         * recog.c: Likewise.
2172         * reg-stack.c: Likewise.
2173         * reload.c: Likewise.
2174         * reload1.c: Likewise.
2175         * simplify-rtx.c: Likewise.
2176         * stmt.c: Likewise.
2177         * varasm.c: Likewise.
2178
2179 2001-05-01  Gabriel Dos Reis  <gdr@codesourcery.com>
2180
2181         * diagnostic.def: New file.
2182         * diagnostic.h (diagnostic_t): New enum.
2183         * Makefile.in (diagnostic.o): Depend on diagnostic.def
2184
2185 2001-04-30  Zack Weinberg  <zackw@stanford.edu>
2186
2187         * tsystem.h: Test only POSIX for availability of string.h
2188         and time.h.
2189         * config.gcc (all systems): If USG appeared in xm_defines,
2190         change it to POSIX.  If both USG and POSIX appeared, just
2191         delete USG. Remove unnecessary quotes around xm_defines
2192         settings.
2193         (m68k-crds-unos*): Don't #define unos - tested nowhere.
2194         (m68k-apple-aux*): Don't #define AUX - tested nowhere.
2195         (alpha*-*-linux*ecoff*, powerpc-*-linux*libc1,
2196         powerpc-*-linux*): No need to set xm_defines - handled by
2197         global settings for *-*-linux*.
2198
2199 2001-04-30  Zack Weinberg  <zackw@stanford.edu>
2200
2201         * dbxout.c, mips-tfile.c, config/mips/mips.c, xcoffout.c:
2202         Always include gstab.h, not system stab.h.  Don't provide
2203         default definitions of N_CATCH or N_OPT.  Always use the
2204         gstab.h variant of STAB_CODE_TYPE.
2205         * final.c: Don't include stab.h/gstab.h at all, or provide
2206         defaults for N_SLINE and N_SOL.
2207
2208         * xcoffout.c: Can assume N_MAIN, N_DSLINE, N_BSLINE, N_BINCL,
2209         N_EINCL, N_EXCL, N_M2C, N_SCOPE, N_CATCH, and N_OPT are
2210         available.
2211         * sdbout.c: Always include gsyms.h instead of system syms.h.
2212
2213         * configure.in: No need to check for stab.h.
2214         * configure, config.in: Regenerate.
2215         * Makefile.in (final.o): Don't depend on gstab.h.
2216
2217 2001-04-30  Mark Mitchell  <mark@codesourcery.com>
2218             Richard Henderson  <rth@redhat.com>
2219
2220         * extend.texi: Improve documentation of volatile asms.
2221
2222 2001-04-30  Mark Mitchell  <mark@codesourcery.com>
2223
2224         * c-tree.texi: Fix thinko.
2225         * gcc.texi: Likewise.
2226
2227 2001-04-30  Richard Henderson  <rth@redhat.com>
2228
2229         * c-common.c (c_promoting_integer_type_p): New function, from the
2230         corpse of old macro.  Properly promote too-small enumerations and
2231         booleans.  Adjust all callers.
2232         * c-common.h (C_PROMOTING_INTEGER_TYPE_P): Remove.
2233         (c_promoting_integer_type_p): Declare.
2234         * c-decl.c: Adjust C_PROMOTING_INTEGER_TYPE_P invocations.
2235         * c-typeck.c: Likewise.
2236         (default_conversion): Remove now redundant boolean check.
2237
2238 2001-04-30  Jan Hubicka  <jh@suse.cz>
2239             Richard Henderson  <rth@redhat.com>
2240
2241         * regmove.c (try_apply_stack_adjustment): Remove now redundant
2242         sanity checks.
2243         (combine_stack_adjustments_for_block): Don't combine stack
2244         allocation followed by deallocations.  Handle grow-up stacks.
2245
2246 2001-04-30  Mark Mitchell  <mark@codesourcery.com>
2247
2248         * fdl.texi: New file.
2249         * c-tree.texi: Use the GFDL.
2250         * gcc.texi: Likewise.
2251
2252 2001-04-30  Stan Shebs  <shebs@apple.com>
2253
2254         * invoke.texi: Add a section documenting Objective-C options.
2255
2256 2001-04-27  Andrew Haley  <aph@cambridge.redhat.com>
2257
2258         * emit-rtl.c (try_split):  Copy EH notes to sequence.
2259
2260 2001-04-30  Mark Mitchell  <mark@codesourcery.com>
2261
2262         * regmove.c (record_stack_memrefs): Catch all references to the
2263         stack pointer.
2264
2265 2001-04-29  Toomas Rosin <toomas at ns dot tklabor dot ee>
2266
2267         * Makefile.in (stmp-fixinc): quote shell assignment values
2268
2269 2001-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2270
2271         * c-aux-info.c: NULL_PTR->NULL in calls to `concat'.
2272
2273         * gcc.c: Likewise.
2274
2275         * prefix.c: Likewise.
2276
2277 2001-04-28  Stan Shebs  <shebs@apple.com>
2278
2279         * objc/objc-act.c (handle_class_ref): Rewrite to flush target
2280         specific code and use new macro ASM_DECLARE_UNRESOLVED_REFERENCE.
2281         * config/darwin.h (ASM_DECLARE_UNRESOLVED_REFERENCE): Define.
2282         * tm.texi (ASM_DECLARE_UNRESOLVED_REFERENCE): Document.
2283
2284         * config/darwin.h (STANDARD_EXEC_PREFIX): Don't define.
2285         (NEXT_OBJC_RUNTIME): Define.
2286
2287 Sat Apr 28 21:02:58 CEST 2001  Jan Hubicka  <jh@suse.cz>
2288
2289         * rtl.h (simplify_gen_relational): Add cmp_mode parameter.
2290         * simplify-rtx.c (simplify_gen_relational): Likewise.
2291
2292         * simplify-rtx.c (simplify_replace_rtx): Handle relationals and MEMs.
2293
2294         * i386.h (VALID_SSE_REG_MODE): Accept MMX modes if SSE2
2295         * i386.md (movsi_1, movdi2, movdi_1_rex64): Handle SSE2 moves.
2296
2297         * i386.md (negsf2, negdf2, abssf2, absdf2): Force operands to
2298         registers in SSE case; fix handling of the immediates.
2299         (negsf2_ifs, abssf2_ifs): Tweak constraints; require
2300         operands to be in regsiters before reload.
2301         (negdf2_ifs, absdf2_ifs): Likewise; disable for 64bit
2302         (negdf2_ifs_rex64, absdf2_ifs_rtx64): New.
2303         (abstf,absxf,negtf,negxf splitters): Compute
2304         properly the regnum for x86_64.
2305         (avsdf2_if_rex64): New.
2306
2307 Sat Apr 28 10:36:23 2001  Jeffrey A Law  (law@cygnus.com)
2308
2309         * flow.c (propagate_block_delete_insn): Handle deletion of ADDR_VEC
2310         and ADDR_DIFF_VEC insns when the proceeding CODE_LABEL was put
2311         into the constant pool.
2312         * jump.c (jump_optimize_1): Remove barrier successors after all
2313         the LABEL_NUSES counds have been computed.
2314         (delete_barrier_successors): When deleting a tablejump insn, also
2315         delete the jump table it uses.
2316         * varasm.c (force_const_mem): Set LABEL_PRESERVE_P when forcing a
2317         label into memory.
2318
2319 2001-04-28  Martin Kalen  <martin.kalen@todaysystems.com.au>
2320
2321         * pa.c (FRP): Remove erroneous white space in macro definition.
2322
2323 2001-04-28  Andreas Jaeger  <aj@suse.de>
2324
2325         * invoke.texi: Use XX-bit instead of XXbit or XX bit where
2326         appropriate.
2327         * extend.texi: Likewise.
2328         * tm.texi: Likewise.
2329
2330 2001-04-28  Andreas Jaeger  <aj@suse.de>
2331
2332         * md.texi: Use XX-bit instead of XXbit or XX bit where
2333         appropriate.
2334
2335 2001-04-28  Jens Schweikhardt <schweikh@schweikhardt.net>
2336
2337         * gcc.c (process_command): Allow -l lib in addition to -llib
2338         for POSIX compliance. This fixes PR c/2347.
2339
2340         * invoke.texi: Update section on Link Options accordingly.
2341
2342 2001-04-27  Zack Weinberg  <zackw@stanford.edu>
2343
2344         * function.c (purge_addressof_1): Remove the duplicate
2345         if (code == SET) block.  Fold the two if (code == ADDRESSOF)
2346         blocks together.
2347
2348 2001-04-28  Jason Merrill  <jason_merrill@redhat.com>
2349
2350         * except.c (expand_eh_region_start): Don't start a new block.
2351         (expand_eh_region_end): Don't end a block.
2352         * stmt.c (expand_end_bindings): Don't end EH blocks.
2353         (expand_decl_cleanup): Starting an EH region won't change the block.
2354         (mark_block_as_eh_region, mark_block_as_not_eh_region): Lose.
2355         (is_eh_region): Lose.
2356         * tree.h: Adjust.
2357
2358 2001-04-27  Jeffrey Oldham  <oldham@codesourcery.com>
2359
2360         * except.c (expand_eh_region_end_cleanup): word_mode, not Pmode.
2361
2362         * collect2.c (main): Add `-L' case to remove duplicate entries.
2363         (is_in_args): New function to check for a duplicate argument.
2364         * defaults.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): New macro.
2365         * tm.texi (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): New documentation.
2366         * config/mips/iris6.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES):
2367         Define to be nonzero.
2368
2369 2001-04-27  Andreas Jaeger  <aj@suse.de>
2370             Richard Henderson  <rth@redhat.com>
2371
2372         * md.texi (Machine Constraints): Document additional i386
2373         constraints and fix description of "A".
2374
2375 Fri Apr 27 10:43:49 2001  Jeffrey A Law  (law@cygnus.com)
2376
2377         * tm.texi (TARGET_MEM_FUNCTIONS): Update text.
2378
2379 2001-04-27  Jason Merrill  <jason_merrill@redhat.com>
2380
2381         * except.c (get_exception_filter): word_mode, not Pmode.
2382
2383 2001-04-26  Geoffrey Keating  <geoffk@redhat.com>
2384
2385         * config/sparc/sparc.md (movsf_no_f_insn): Add more alternatives
2386         common to other movsf patterns.  Move up so that in future
2387         people who change the other patterns will change it too.
2388         (movsf_lo_sum): Allow even for soft-float; add appropriate
2389         constraints.
2390         (movsf_high): Likewise.
2391         (movsf_high+1): Allow even for soft-float.
2392
2393         * function.c (expand_function_end): Always clobber the
2394         return registers, even if there is no return label.
2395
2396 Thu Apr 26 20:28:21 CEST 2001  Jan Hubicka  <jh@suse.cz>
2397
2398         * (ix86_expand_fp_movcc): Re-enable SSE conditional move generation.
2399
2400 Thu Apr 26 19:20:28 CEST 2001  Jan Hubicka  <jh@suse.cz>
2401
2402         * i386.md (abs/neg splitter): Fix calculation of sign bit for TFmodes
2403         (pushqi2_rex64, pushhi2_rex64): Add.
2404
2405 2001-04-26  Andrew Haley  <aph@cambridge.redhat.com>
2406
2407         * except.c (expand_eh_region_end_cleanup): Force pending stack
2408         adjust before emitting label that branches around cleanup code.
2409
2410 2001-04-26  H.J. Lu  (hjl@gnu.org)
2411
2412         * config.gcc (mips*-*-linux*): Add elfos.h to tm_file.
2413
2414         * config/mips/ecoff.h (STARTFILE_SPEC): Undefine before
2415         define.
2416         * config/mips/elf64.h (MAX_OFILE_ALIGNMENT): Likewise.
2417         (ASM_OUTPUT_SECTION_NAME): Likewise.
2418         (ASM_WEAKEN_LABEL): Likewise.
2419         (UNIQUE_SECTION): Likewise.
2420         (ASM_OUTPUT_CONSTRUCTOR): Likewise.
2421         (ASM_OUTPUT_DESTRUCTOR): Likewise.
2422         * config/mips/elf.h (MAX_OFILE_ALIGNMENT): Likewise.
2423         (ASM_OUTPUT_SECTION_NAME): Likewise.
2424         (ASM_WEAKEN_LABEL): Likewise.
2425         (UNIQUE_SECTION): Likewise.
2426         (ASM_OUTPUT_CONSTRUCTOR): Likewise.
2427         (ASM_OUTPUT_DESTRUCTOR): Likewise.
2428         * config/mips/linux.h (HANDLE_SYSV_PRAGMA): Likewise.
2429         * config/mips/mips.h (DBX_CONTIN_LENGTH): Likewise.
2430         (ASM_FILE_START): Likewise.
2431         (ASM_OUTPUT_SOURCE_LINE): Likewise.
2432         (ASM_DECLARE_OBJECT_NAME): Likewise.
2433         (ASM_FILE_END): Likewise.
2434         (ASM_DECLARE_FUNCTION_NAME): Likewise.
2435         (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
2436         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
2437         (ASM_OUTPUT_CASE_LABEL): Likewise.
2438         (ASM_OUTPUT_SKIP): Likewise.
2439         (ASM_OUTPUT_ASCII): Likewise.
2440         (ASM_OUTPUT_IDENT): Likewise.
2441         (READONLY_DATA_SECTION): Likewise.
2442         (EXTRA_SECTIONS): Likewise.
2443         (EXTRA_SECTION_FUNCTIONS): Likewise.
2444         (SELECT_RTX_SECTION): Likewise.
2445         (SELECT_SECTION): Likewise.
2446
2447         * config/mips/linux.h (INVOKE__main): Undefine.
2448         (CTOR_LIST_BEGIN): Likewise.
2449         (CTOR_LIST_END): Likewise.
2450         (DTOR_LIST_BEGIN): Likewise.
2451         (DTOR_LIST_END): Likewise.
2452         (SET_ASM_OP): Defined it to ".dummy".
2453         (ASM_OUTPUT_DEF): Defined.
2454         (ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Defined.
2455
2456 2001-04-26  Nick Clifton  <nickc@cambridge.redhat.com>
2457
2458         * config/arm/arm.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define, if the
2459         assembler supports .p2align.
2460
2461 2001-04-26  Nathan Sidwell <nathan@codesourcery.com>
2462
2463         * c-lex.c (c_lex): Remove # from %o diagnostic formatting.
2464
2465 2001-04-26  Jakub Jelinek  <jakub@redhat.com>
2466
2467         * integrate.c (expand_inline_function): Check for error_mark_node
2468         in actual argument.
2469
2470 2001-04-26  Jakub Jelinek  <jakub@redhat.com>
2471
2472         * config/i386/i386.h (CC1_CPU_SPEC): Fix deprecation warnings for
2473         -m386 and -m486.
2474
2475 2001-04-26  Alexandre Oliva  <aoliva@redhat.com>
2476
2477         * configure.in (configargs.h): Define thread_model.
2478         * configure: Rebuilt.
2479         * gcc.c (main): Print it with -v.
2480
2481 2001-04-25  Joseph S. Myers  <jsm28@cam.ac.uk>
2482
2483         * invoke.texi: Document -Wmissing-braces, -dumpspecs,
2484         -dumpmachine, -dumpversion, -fmem-report and -ftime-report.
2485         * gcc.1: Regenerate.
2486
2487 2001-04-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2488
2489         * dwarfout.c (is_pseudo_reg, type_main_variant, is_tagged_type,
2490         is_redundant_typedef): Use static inline instead of inline static.
2491
2492 Wed Apr 25 18:21:01 2001  Christopher Faylor <cgf@cygnus.com>
2493
2494         * config/i386/cygwin.h: Move W32API search to LINK_SPEC to ensure that
2495         this directory is always searched.
2496
2497 2001-04-25  Richard Henderson  <rth@redhat.com>
2498
2499         * config/i386/i386.c (ix86_expand_epilogue): Properly compute size
2500         of registers to restore along non eh_return path.
2501
2502 2001-04-25  Jakub Jelinek  <jakub@redhat.com>
2503
2504         * c-format.c (check_format_info_recurse): Handle
2505         PLUS_EXPR for format string.
2506
2507 2001-04-25  Jakub Jelinek  <jakub@redhat.com>
2508
2509         * config/ia64/ia64.h (CC1_SPEC): Define.
2510         * config/ia64/linux.h (CC1_SPEC): Define.
2511
2512 Wed Apr 25 17:09:50 2001  J"orn Rennecke <amylaar@redhat.com>
2513
2514         * emit-rtl.c (constant_subword): Also do sign extension in
2515         BITS_PER_WORD == 16 case.
2516
2517 2001-04-25  Jason Merrill  <jason_merrill@redhat.com>
2518
2519         * loop.c (try_swap_copy_prop): Go back to checking insn.
2520
2521 2001-04-25  Jakub Jelinek  <jakub@redhat.com>
2522
2523         * emit-rtl.c (subreg_hard_regno): Only do HARD_REGNO_MODE_OK check
2524         if check_mode is non-zero.
2525
2526 2001-04-25  Jakub Jelinek  <jakub@redhat.com>
2527
2528         * config/i386/i386.c (ix86_expand_int_movcc): If overlap between
2529         out and comparison sequence has been detected, put result into
2530         proper temporary pseudo.
2531
2532 2001-04-24  Zack Weinberg  <zackw@stanford.edu>
2533
2534         * Makefile.in (LIB2FUNCS): Remove _varargs and __dummy.
2535         * libgcc-std.ver: Remove __builtin_saveregs, __dummy, and __empty.
2536         * libgcc2.c: Remove __dummy and __builtin_saveregs.
2537         * libgcc2.h: Don't prototype __builtin_saveregs or __dummy.
2538         * config/i860/varargs.asm: New file - preserve i860 __builtin_saveregs
2539         for future reference.
2540
2541 2001-04-24  Jason Merrill  <jason_merrill@redhat.com>
2542
2543         * except.c (reachable_handlers): Step out one level from a RESX.
2544
2545         * except.c (struct eh_region): Rename 'last' to 'resume'.
2546         (mark_eh_region, duplicate_eh_region_1): Adjust.
2547         (expand_eh_region_end_cleanup): Remember the jump, not the barrier.
2548         (build_post_landing_pads): Likewise.
2549         (expand_end_catch, expand_eh_region_end_allowed): Don't set it.
2550         (expand_eh_region_end_must_not_throw): Likewise.
2551         (connect_post_landing_pads): Thread (only) regions with non-deleted
2552         resume insns.
2553
2554         * except.c (expand_eh_region_end_cleanup): Save the EH return data
2555         registers around the cleanup.
2556         (get_exception_filter): New fn.
2557         (finish_eh_generation): Use it.
2558
2559 2001-04-24  Nathan Sidwell <nathan@codesourcery.com>
2560
2561         * c-semantics.c (add_scope_stmt): Don't call
2562         current_scope_stmt_stack multiple times.
2563
2564 2001-04-24  Zack Weinberg  <zackw@stanford.edu>
2565             Nathan Sidwell <nathan@codesourcery.com>
2566
2567         Lazy __FUNCTION__ generation.
2568         * c-common.h (RID_FUNCTION_NAME, RID_PRETTY_FUNCTION_NAME,
2569         RID_C99_FUNCTION_NAME): New _RIDs.
2570         (CTI_FUNCTION_ID, CTI_PRETTY_FUNCTION_ID, CTI_FUNC_ID): Remove.
2571         (CTI_FUNCTION_NAME_DECL, CTI_PRETTY_FUNCTION_NAME_DECL,
2572         CTI_C99_FUNCTION_NAME_DECL, CTI_SAVED_FUNCTION_NAME_DECLS): New
2573         global tree slots.
2574         (function_id_node, pretty_function_id_node, func_id_node): Remove.
2575         (c99_function_name_decl_node, function_name_decl_node,
2576         pretty_function_name_decl_node, saved_function_name_decls):
2577         Declare.
2578         (struct language_function): Remove x_function_name_declared_p.
2579         (make_fname_decl): Remove a parameter.
2580         (declare_function_names): Remove prototype.
2581         (start_fname_decls, finish_fname_decls): Prototype.
2582         (fname_as_string): Likewise.
2583         (fname_string, fname_decl): Likewise.
2584         * c-common.c (make_fname_decl): Adjust.
2585         (struct fname_var_t): New struct.
2586         (fname_vars): New static array.
2587         (declare_function_name): Remove.
2588         (start_fname_decls, finish_fname_decls): New functions.
2589         (fname_as_string): New function from remnants of
2590         declare_function_name.
2591         (fname_string, fname_decl): New functions.
2592
2593         * c-decl.c (c_function_name_declared_p): Remove.
2594         (init_decl_processing): Don't generate __FUNCTION__ et al ids,
2595         don't call declare_function_name. Call start_fname_decls.
2596         (c_make_fname_decl): Adjust parameters. Generate the name. Don't
2597         clobber the line number. Call finish_decl.
2598         (start_function): Call start_fname_decls.
2599         (finish_function): Call finish_fname_decls.
2600         Remove c_function_name_declared_p.
2601         (push_c_function_context): Don't push c_function_name_declared_p.
2602         (pop_c_function_context): Don't pop c_function_name_declared_p.
2603         (c_begin_compound_stmt): Don't check c_function_name_declared_p.
2604         * c-parse.in (STRING_FUNC_NAME, VAR_FUNC_NAME): New tokens.
2605         (program): Call finish_fname_decls for C.
2606         (primary): Add VAR_FUNC_NAME.
2607         (reswords): Add slots for __FUNCTION__ et al.
2608         (rid_to_yy): Add mappings for __FUNCTION__ et al.
2609         (yylexname): If it's a STRING_FUNC_NAME generate the function name
2610         now. Don't look for VAR_DECLs containing __FUNCTION__ et al.
2611         * c-semantics.c (prune_unused_decls): Remove.
2612         (finish_stmt_tree): Don't call prune_unused_decls.
2613         (genrtl_decl_stmt): Don't prune unused decls here.
2614
2615 2001-04-24  Nick Clifton  <nickc@cambridge.redhat.com>
2616
2617         * dwarf2out.c (mem_loc_descriptor): If a SYMBOL_REF is in the
2618         constant pool, use the pool's SYMBOL_REF instead.
2619
2620         * config/v850/v850.h (STRICT_ALIGNMENT): Always set, even for the
2621         v850e.
2622
2623 2001-04-23  Joseph S. Myers  <jsm28@cam.ac.uk>
2624
2625         * c-convert.c (convert): When converting to a BOOLEAN_TYPE, avoid
2626         passing nested NOP_EXPRs to fold.
2627
2628 Mon Apr 23 14:32:12 CEST 2001  Jan Hubicka  <jh@suse.cz>
2629
2630         * reg-stack.c (emit_swap_insn): Do not get pass CALL_INSNs.
2631
2632 2001-04-22  Mark Mitchell  <mark@codesourcery.com>
2633
2634         * loop.c (loop_delete_insns): Add prototype.
2635
2636 2001-04-23  Phil Edwards  <pme@sources.redhat.com>
2637
2638         * configure.in:  Remove ENABLE_STD_NAMESPACE.
2639         * config.in:  Regenerated.
2640         * configure:  Regenerated.
2641
2642 2001-04-22  Stan Shebs  <shebs@apple.com>
2643
2644         * config.gcc (powerpc-*-darwin*): Move the flag in xm-darwin.h
2645         into xm_defines.
2646         * config/rs6000/xm-darwin.h: Remove file.
2647
2648 2001-04-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2649
2650         * collect2.c (main): Use concat in lieu of xmalloc/sprintf.
2651         (write_c_file_stat): Likewise.
2652
2653         * dbxout.c (dbxout_init): Likewise.
2654
2655         * profile.c (output_func_start_profiler): Likewise.
2656
2657 2001-04-22  Philipp Thomas  <pthomas@suse.de>
2658
2659         * ABOUT-GCC-NLS: Now that gettext 0.10.37 is out,
2660         require it instead of the CVS version.
2661         * cpperror.c (v_message): Put a blank before the macro
2662         body to not confuse exgettext.
2663
2664 2001-04-21  Mark Mitchell  <mark@codesourcery.com>
2665
2666         * flow.c (proagate_one_insn): Remove useless assignment.
2667         * jump.c (delete_insn): Tidy.
2668         * loop.c (try_copy_prop): When deleting an instruction with a
2669         REG_RETVAL note, delete the entire libcall sequence.
2670         (loop_delete_insns): New function.
2671         * unroll.c (initial_reg_note_copy): Copy INSN_LIST notes, even if
2672         we're not substituting into them yet.
2673
2674 2001-04-21  Kazu Hirata  <kazu@hxi.com>
2675
2676         * config/h8300/h8300.c (general_operand_src): Fix a comment typo.
2677
2678         * config/sparc/sparc.c (sparc_flat_eligible_for_epilogue_delay):
2679         Fix a comment typo.
2680         * config/i960/i960.c (signed_arith_operand): Likewise.
2681
2682         * calls.c (expand_call): Fix a comment typo.
2683
2684 2001-04-20  Zack Weinberg  <zackw@stanford.edu>
2685
2686         * configure.in: Probe for times, clock, struct tms, and clock_t.
2687         * configure, config.in: Regenerate.
2688         * timevar.c: Replace ifdef forest in get_time with (relatively)
2689         straightforward series of checks based on autoconf's probes.
2690
2691 Fri Apr 20 12:24:50 2001  Jeffrey A Law  (law@cygnus.com)
2692
2693         * config/pa/som.h (NM_FLAGS): Define.
2694
2695 2001-04-20  Bernd Schmidt  <bernds@redhat.com>
2696
2697         * ia64.h (MD_SCHED_REORDER, MD_SCHED_REORDER2): Pass CLOCK to called
2698         function.
2699         * ia64-protos.h (ia64_sched_reorder): Additional arg for clock.
2700         * ia64.c (nop_cycles_until): New function.
2701         (prev_cycle, prev_first, last_issued): New static variables.
2702         (ia64_sched_reorder): Additional arg for clock.
2703         On final scheduling pass, emit extra NOPs as needed.
2704         Set prev_first and prev_cycle.
2705         (ia64_sched_reorder2): Pass clock arg down to ia64_sched_reorder.
2706         (ia64_variable_issue): Set last_issued.
2707
2708 2001-04-20  Alexandre Oliva  <aoliva@redhat.com>
2709
2710         * config/i386/i386.c (ix86_expand_int_movcc,
2711         ix86_expand_strlensi_unroll_1): Sign-extend CONST_INTs.
2712
2713 2001-04-20  Geoff Keating  <geoffk@redhat.com>
2714
2715         * config/rs6000/rs6000.md (ctrsi_internal1, ctrsi_internal2,
2716         ctrsi_internal3, ctrsi_internal4, ctrsi_internal5,
2717         ctrsi_internal6, ctrdi_internal1, ctrdi_internal2,
2718         ctrdi_internal3, ctrdi_internal4, ctrdi_internal5,
2719         ctrdi_internal6): In the short-branch case, this insn is only 4
2720         bytes long.  Reported by Reza Yazdani <reza@apple.com>.
2721
2722 2001-04-20  Jakub Jelinek  <jakub@redhat.com>
2723
2724         * reg-stack.c (check_asm_stack_operands): Issue error if "=t" resp.
2725         "=u" is used together with "st" resp. "st(1)" clobber.
2726
2727 2001-04-20  Jakub Jelinek  <jakub@redhat.com>
2728
2729         * gcse.c (gcse_main): Fix comment typo.
2730         (delete_null_pointer_check): Likewise.
2731         (hash_scan_set): Don't consider sets with REG_EQUIV MEM notes.
2732         * cse.c (cse_insn): Likewise.
2733         * function.c (fixup_var_refs_insns_with_hash): The sequence is
2734         toplevel.
2735
2736 2001-04-19  Zack Weinberg  <zackw@stanford.edu>
2737
2738         * toplev.c: Excise all code for the undocumented -dm option.
2739         (float_signal): Call signal just once, unconditionally.
2740
2741 2001-04-19  Geoff Keating  <geoffk@redhat.com>
2742
2743         * fold-const.c (fold): Use first_rtl_op rather than
2744         TREE_CODE_LENGTH when looping over parameters of a tree.
2745         Correct strange grouping in test for evaluated SAVE_EXPR.
2746
2747 Thu Apr 19 19:15:26 2001  Jeffrey A Law  (law@cygnus.com)
2748
2749         * config/pa/pa-linux.h (CPLUSPLUS_CPP_SPEC): Undefine.
2750         * config/pa/pa.h (CPLUSPLuS_CPP_SPEC): Define.
2751
2752         * config/pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Truncate subspace
2753         name at 32 total characters.
2754         (ASM_OUTPUT_SECTION_NAME): Similarly.  Also, only support placing
2755         functions in named sections -- data items can still go into unique
2756         sections, but they have normal names (ie $LIT$ and $DATA$).
2757
2758         * config/pa/som.h (SUPPORTS_INIT_PRIORITY): SOM does not support
2759         INIT_PRIORITY.
2760
2761 2001-04-19 DJ Delorie  <dj@redhat.com>
2762
2763         * config/alpha/vms.h: Change OBJECT_SUFFIX and EXECUTABLE_SUFFIX
2764         to TARGET_OBJECT_SUFFIX and TARGET_EXECUTABLE_SUFFIX.
2765         * config/i386/cygwin.h: Likewise.
2766         * config/i386/mingw32.h: Likewise.
2767         * config/vax/vms.h: Likewise.
2768         * config/i386/djgpp.h: Remove NO_AUTO_EXE_SUFFIX.
2769
2770         * config/alpha/xm-vms.h: Change OBJECT_SUFFIX and EXECUTABLE_SUFFIX
2771         to HOST_OBJECT_SUFFIX and HOST_EXECUTABLE_SUFFIX.
2772         * config/i386/xm-cygwin.h: Likewise.
2773         * config/i386/xm-djgpp.h: Likewise.
2774         * config/i386/xm-mingw32.h: Likewise.
2775         * config/vax/xm-vms.h: Likewise.
2776
2777         * mkdeps.c (deps_add_default_target): Use TARGET_OBJECT_SUFFIX
2778         instead of OBJECT_SUFFIX.
2779         * collect2.c (find_a_file): Look for files matching the extension
2780         HOST_EXECUTABLE_SUFFIX instead of EXECUTABLE_SUFFIX.
2781         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION): Depend on
2782         TARGET_EXECUTABLE_SUFFIX.
2783         (find_a_file): Use HOST_EXECUTABLE_SUFFIX.
2784         (make_relative_prefix): Likewise.
2785         (convert_filename): Use TARGET_ suffixes throughout.  Remove
2786         NO_AUTO_EXE_SUFFIX.
2787         (process_command): Likewise.
2788         (do_spec_1): Likewise.
2789         * java/lang.c (init_parse): Likewise.
2790
2791         * gcc.texi : Document four new options matching the pattern
2792         (HOST|TARGET)_(OBJECT|EXECUTABLE)_SUFFIX.  Remove documentation
2793         for deleted macros OBJECT_SUFFIX and EXECUTABLE_SUFFIX.  Remove
2794         documentation for NO_AUTO_EXE_SUFFIX.
2795
2796 2001-04-19  Mark Mitchell  <mark@codesourcery.com>
2797
2798         * toplev.h (struct lang_hooks): Allow decode_option to indicate
2799         that language-independent processing should not be done.
2800         * toplev.c (main): Adjust accordingly.
2801
2802         * rtl.texi (jump_insn): Expand on JUMP_LABEL documentation.
2803         * loop.c (load_mems): Handle a NULL JUMP_LABEL for a JUMP_INSN.
2804
2805         * mips.md (reload_outputdi): Require that operand0 be a
2806         general_operand.
2807
2808 2001-04-19  Jakub Jelinek  <jakub@redhat.com>
2809
2810         * invoke.texi (-Wshadow): Clarify.
2811
2812 2001-04-18  Mark Mitchell  <mark@codesourcery.com>
2813
2814         * loop.c (load_mems): Examine all the instructions in the loop
2815         before concluding that all jumps branch to the first instruction
2816         after the loop.
2817
2818 Wed Apr 18 20:32:03 2001  Christopher Faylor <cgf@cygnus.com>
2819
2820         * config/i386/xm-cygwin.h (CPP_SPEC): Fix typo.
2821
2822 2001-04-18  Jakub Jelinek  <jakub@redhat.com>
2823
2824         * cpp.texi (-Wwhite-space): Remove.
2825         (-Wall): -Wall does not imply -Wwhite-space.
2826
2827 2001-04-17  Zack Weinberg  <zackw@stanford.edu>
2828
2829         * dbxout.c (dbxout_init): If DBX_OUTPUT_GCC_MARKER is defined,
2830         use it instead of blindly generating a .stabs.
2831         * xcoffout.h: Define DBX_OUTPUT_GCC_MARKER so we put the type
2832         in the right place.
2833         * xcoffout.c: Don't bother defining default for N_CATCH.
2834         (UNKNOWN_STAB): Use internal_error.
2835         (stab_to_sclass): Remove now-unnecessary aborts.
2836         Remove #if 0'ed case N_BROWS.  Add #ifdef N_OPT block.
2837
2838 Tue Apr 17 21:41:11 2001  Jeffrey A Law  (law@cygnus.com)
2839
2840         * jump.c (mark_all_labels): Canonicalize the tail recursion
2841         label attached to CALL_PLACEHOLDER insns.
2842
2843 2001-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2844
2845         * output.h (dump_flow_info, free_basic_block_vars,
2846         which_alternative): Delete redundant prototypes.
2847
2848         * rtl.h (bss_section): Likewise.
2849
2850 2001-04-17  Loren J. Rittle  <ljrittle@acm.org>
2851
2852         * dbxout.c (N_OPT): Define if not available from <stab.h>
2853
2854 2001-04-17  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2855
2856         * vax.h (PROMOTE_PROTOTYPES): Define for compatibility with system
2857         libraries and native K&R compilers.
2858
2859 2001-04-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2860
2861         * c-typeck.c (convert_arguments): Don't check for width changes
2862         with -Wtraditional.
2863
2864         * invoke.texi (-Wtraditional): Update documentation.
2865
2866 2001-04-16  Zack Weinberg  <zackw@stanford.edu>
2867
2868         * toplev.c (output_lang_identify): Delete.
2869         (compile_file): Don't call ASM_IDENTIFY_GCC or ASM_IDENTIFY_LANGUAGE.
2870         Don't generate gcc2_compiled. label.  Don't emit a nop if profiling.
2871         If IDENT_ASM_OP is defined, emit an .ident "GCC (GNU) <version>"
2872         after calling ASM_FILE_END.
2873
2874         * dbxout.c (dbxout_init): Don't call ASM_IDENTIFY_GCC_AFTER_SOURCE.
2875         Instead, unconditionally emit an N_OPT stab with string equal
2876         to STABS_GCC_MARKER, which defaults to "gcc2_compiled."
2877
2878         * defaults.h: Don't provide default for ASM_IDENTIFY_LANGUAGE.
2879
2880         * config/dbxelf.h, config/freebsd.h, config/nextstep.h,
2881         config/psos.h, config/ptx4.h, config/1750a/1750a.h,
2882         config/alpha/alpha.h, config/alpha/elf.h, config/arc/arc.h,
2883         config/arm/aof.h, config/arm/coff.h, config/arm/elf.h,
2884         config/arm/linux-elf.h, config/avr/avr.h, config/d30v/d30v.h,
2885         config/dsp16xx/dsp16xx.h, config/h8300/h8300.h,
2886         config/i370/i370.h, config/i386/beos-elf.h,
2887         config/i386/osf1elf.h, config/i386/osfrose.h,
2888         config/ia64/sysv4.h, config/m68k/3b1.h, config/m68k/auxgas.h,
2889         config/m68k/crds.h, config/m68k/hp320.h, config/m68k/m68kv4.h,
2890         config/m68k/mot3300.h, config/m68k/news.h, config/m68k/sgs.h,
2891         config/m68k/tower-as.h, config/mcore/mcore-elf.h,
2892         config/mips/iris6.h, config/mips/osfrose.h,
2893         config/mips/sni-svr4.h, config/pa/som.h, config/pdp11/pdp11.h,
2894         config/sparc/sp64-elf.h:
2895         Delete definitions of any or all of: ASM_IDENTIFY_GCC,
2896         ASM_IDENTIFY_GCC_AFTER_SOURCE, and ASM_IDENTIFY_LANGUAGE.
2897
2898         * config/elfos.h, config/freebsd.h, config/linux.h,
2899         config/alpha/elf.h, config/arm/linux-elf.h, config/i386/i386elf.h,
2900         config/i386/ptx4-i.h, config/mips/gnu.h, config/mips/linux.h,
2901         config/sparc/linux.h, config/sparc/linux64.h: Delete definitions
2902         of ASM_FILE_START which merely emit a .version directive.  Delete
2903         definitions of ASM_FILE_END which merely emit an .ident directive.
2904
2905         * config/avr/avr.h, config/vax/vax.h: Delete definition of
2906         ASM_IDENTIFY_GCC and move part of its logic into
2907         ASM_FILE_START.
2908
2909         * config/i386/att.h, config/i386/gas.h, config/i386/linux.h,
2910         config/sparc/linux-aout.h: Don't emit .version directive in
2911         ASM_FILE_START.
2912
2913         * config/i386/dgux.c, config/m88k/m88k.c, config/sh/sh.c
2914         (output_file_start): Correct comment.
2915
2916         * config/i386/osfrose.h: Don't emit trailing .ident directive.
2917         * config/m68k/mot3300.h: Override STABS_GCC_MARKER to "gcc2_compiled%"
2918         to match gdb.
2919         * config/pa/lib2funcs.asm: Delete gcc_compiled. label.
2920         * config/rs6000/aix.h: Correct comment.
2921
2922         * config/i386/i386afe.h: Delete.
2923         * config.gcc: Remove references to i386afe.h.
2924
2925         * tm.texi: Delete documentation of ASM_IDENTIFY_GCC.  The
2926         other macros deleted by this patch were undocumented.
2927
2928 Mon Apr 16 08:03:48 2001  Jeffrey A Law  (law@cygnus.com)
2929
2930         * pa.md (reload_outdi): Operand 0 must be a non hard register.
2931
2932         * pa.c (secondary_reload_class): SAR<->FP copies require a
2933         secondary register.
2934
2935         * install.texi (mips-mips-bsd): Update list of functions
2936         required to include memmove.
2937         * tm.texi (TARGET_MEM_FUNCTIONS): Update list of implicitly
2938         used functions to include memmove.
2939
2940 2001-04-15  Toon Moene  <toon@moene.indiv.nluug.nl>
2941
2942         * i386.md (sqrtdf2): SFmode should be DFmode.
2943
2944 2001-04-15  Alexandre Oliva  <aoliva@redhat.com>
2945
2946         * gcse.c (compute_ld_motion_mems): ASM outputs aren't moveable.
2947         (find_moveable_store): Likewise.
2948
2949 2001-04-15  Jim Wilson  <wilson@redhat.com>
2950
2951         * function.c (expand_function_end): Handle PARALLEL real_decl_rtl.
2952
2953 Sat Apr 14 16:24:19 CEST 2001  Jan Hubicka  <jh@suse.cz>
2954
2955         * i386.md (ashldi3_1_rex64): Add 'J' to the constraints
2956         (ashrdi3_1_rex64): Change 'n' constraint to 'J'.
2957
2958 2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
2959
2960         * config/mn10300/mn10300.md (cmpsi): Tell reload to disregard the
2961         first alternative.
2962
2963 2001-04-14  Alan Modra  <amodra@one.net.au>
2964
2965         * pa.c (force_mode): New function.
2966         (emit_move_sequence): Use it instead of generating new rtx_REGs.
2967
2968 2001-04-13  Jim Wilson  <wilson@redhat.com>
2969
2970         * config/ia64/ia64.c (ia64_expand_epilogue): Emit alloc if sibcall_p.
2971         (first_instruction): New static variable.
2972         (rtx_needs_barrier): Return 1 for alloc.
2973         (init_insn_group_barriers): Set first_instruction.
2974         (rws_sum): Delete duplicate definition.
2975         (group_barrier_needed_p): Return 0 when first_instruction true.
2976         (safe_group_barrier_needed_p): Save and restore first_instruction
2977         around group_barrier_needed_p call.
2978
2979 Fri Apr 13 21:40:28 2001  Loren J. Rittle  <ljrittle@acm.org>
2980
2981         * expr.h (enum libfunc_index): Add LTI_memmove.
2982         (memmove_libfunc): Define macro.
2983         * optabs.c (init_optabs): Initialize memmove_libfunc.
2984         * expr.c (expand_assignment): Use memmove_libfunc instead of
2985         memcpy_libfunc.
2986
2987 2001-04-13  Alan Modra  <alan@linuxcare.com.au>
2988
2989         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Disallow PIC LO_SUM
2990         fp mode addresses.
2991
2992 2001-04-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2993
2994         * Makefile.in (reg-stack.o): Depend on reload.h.
2995         (insn-attrtab.o): Depend on flags.h.
2996
2997         * genattrtab (main): Include flags.h in insn-attrtab.c.
2998
2999         * reg-stack.c: Include reload.h.
3000
3001         * sparc.h (flag_pic): Delete redundant declaration.
3002
3003         * output.h (flag_pic): Likewise.
3004
3005         * tree.h (pedantic): Likewise.
3006
3007 2001-04-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3008
3009         * Makefile.in (toplev.o, jump.o, regmove.o): Depend on reload.h
3010
3011         * jump.c, regmove.c, toplev.c: Include reload.h.
3012
3013         * reload.h (reload_cse_regs): Declare.
3014
3015         * rtl.h (find_equiv_reg, operands_match_p, safe_from_earlyclobber,
3016         reload_cse_regs, init_reload, mark_home_live, reload,
3017         init_caller_save): Delete redundant prototypes.
3018
3019 2001-04-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3020
3021         * Makefile.in (ssa.o, regclass.o): Depend on $(EXPR_H).
3022
3023         * regclass.c, ssa.c: Include expr.h.
3024
3025         * rtl.h (memory_address, force_reg, emit_queue, emit_move_insn,
3026         gen_move_insn): Delete redundant declarations.
3027
3028 2001-04-13  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3029
3030         * Makefile.in (CFLAGS, BOOT_CFLAGS): Partly revert 2000-10-27 patch.
3031         (stage1_build): Instead pass down STAGE1_CFLAGS here. Pass down
3032         MAKEINFO and MAKEINFOFLAGS too.
3033         (stage4_build): Correctly order -B flags.
3034
3035 2001-04-13  Alan Modra  <amodra@one.net.au>
3036
3037         * pa.c (hppa_init_pic_save): Set rtx_unchanging for
3038         PIC_OFFSET_TABLE_SAVE_RTX.
3039         (zdepi_cint_p): Describe zdepi insn.
3040         Formatting and white space fixes throughout file.
3041
3042         * pa.c (uint32_operand): Don't use long constant >= 2^32.
3043         (emit_move_sequence): Use HOST_WIDE_INT constants.  Don't worry
3044         about 32->64 bit sign extension if 32 bit HOST_WIDE_INTs.
3045         (compute_movstrsi_length): Make `align' unsigned to avoid warning.
3046         (output_64bit_and): Use plain `int's for shift counts.
3047         (output_64bit_ior): Likewise.
3048         (function_arg_partial_nregs): Use unsigned vars to avoid warnings.
3049         * pa.h (CONST_OK_FOR_LETTER_P): Use HOST_WIDE_INT constants for case
3050         `N', and simplify.
3051
3052         * pa-hpux10.h (NEW_HP_ASSEMBLER): Define to 1.
3053         * pa-hpux11.h (NEW_HP_ASSEMBLER): Likewise.
3054         * pa.h (LEGITIMATE_CONSTANT_P) Collapse two defines depending on
3055         NEW_HP_ASSEMBLER into one.  Kill warnings.
3056
3057         * pa-gas.h: Delete file.
3058         * config.gcc: Match `parisc' as well as `hppa' for cpu_type=pa.
3059         Add new targets hppa*64*-*-linux* and parisc*64*-*-linux*.  Update
3060         hppa*-*-linux*.  For all pa targets, remove pa/gas.h from tm_file,
3061         instead setting MASK_GAS | MASK_JUMP_IN_DELAY in target_cpu_default2.
3062
3063         * config/pa/mill32.S: New file.
3064         * config/pa/mill64.S: New file.
3065         * config/pa/t-linux (LIBGCC1, CROSS_LIBGCC1, LIB1ASMFUNCS,
3066         LIB1ASMSRC, CRTSTUFF_T_CFLAGS_S, TARGET_LIBGCC2_CFLAGS): Define.
3067         * config/pa/t-linux64: New file.
3068         * config/pa/t-pa64 (CROSS_LIBGCC1): Change to libgcc1-asm.a
3069         (LIB1ASMFUNCS, LIB1ASMSRC): Define.
3070         (TARGET_LIBGCC2_CFLAGS): Add -Dpa64=1 -DELF=1.
3071
3072         * elfos.h (SELECT_SECTION): Undef before defining.
3073         * pa-linux.h (LINUX_DEFAULT_ELF, PTRDIFF_TYPE, CPP_SPEC): Remove.
3074         (LIB_SPEC): Remove -lmilli.
3075         (DBX_REGISTER_NUMBER): Remove.
3076         (PREFERRED_DEBUGGING_TYPE, DWARF2_ASM_LINE_DEBUG_INFO,
3077         (DWARF2_UNWIND_INFO, ASM_SPEC, LINK_SPEC, FUNCTION_OK_FOR_SIBCALL,
3078         NO_PROFILE_COUNTERS, SELECT_RTX_SECTION, INCOMING_RETURN_ADDR_RTX,
3079         DWARF_FRAME_RETURN_COLUMN, STRING_ASM_OP, TEXT_SECTION_ASM_OP,
3080         DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP, ASM_FILE_START,
3081         ASM_OUTPUT_DEF, ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT,
3082         ASM_OUTPUT_LABEL, ASM_GLOBALIZE_LABEL, ASM_DECLARE_FUNCTION_NAME,
3083         TARGET_GAS): Define.
3084         * pa.c (output_arg_descriptor): Disable for TARGET_ELF32.
3085         (function_arg): If TARGET_ELF32, pass fp args in both general and fp
3086         regs if we don't have a prototype.
3087         * pa.md (canonicalize_funcptr_for_compare): Not for TARGET_ELF32.
3088         * pa.h (TARGET_ELF32): Default to 0 if undefined.
3089         (EH_RETURN_DATA_REGNO, EH_RETURN_STACKADJ_RTX,
3090         EH_RETURN_HANDLER_RTX): Define.
3091         * pa32-regs.h (DBX_REGISTER_NUMBER): Remove unnecessary test.
3092         (DWARF_FRAME_REGNUM): Define.
3093         * pa64-regs.h (DWARF_FRAME_REGNUM): Define.
3094         * pa32-linux.h: New file.
3095         * pa64-linux.h: New file.
3096
3097         * pa-64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
3098         (ASM_OUTPUT_DOUBLE_INT): Format, protect macro with do..while.
3099         (LINK_SPEC, LIB_SPEC, MD_EXEC_PREFIX, MD_STARTFILE_PREFIX,
3100         NEW_HP_ASSEMBLER, ASM_FILE_START, OBJECT_FORMAT_ELF,
3101         DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_FORMAT,
3102         DWARF2_ASM_LINE_DEBUG_INFO, USE_CONST_SECTION, CONST_SECTION_ASM_OP,
3103         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
3104         FINI_SECTION_ASM_OP, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
3105         READONLY_DATA_SECTION, CONST_SECTION_FUNCTION, CTORS_SECTION_FUNCTION,
3106         DTORS_SECTION_FUNCTION, ASM_OUTPUT_SECTION_NAME, MAKE_DECL_ONE_ONLY,
3107         UNIQUE_SECTION_P, UNIQUE_SECTION, INT_ASM_OP, ASM_OUTPUT_CONSTRUCTOR,
3108         ASM_OUTPUT_DESTRUCTOR, TYPE_ASM_OP, SIZE_ASM_OP, ASM_WEAKEN_LABEL,
3109         TYPE_OPERAND_FMT, ASM_DECLARE_RESULT): Move to..
3110         * pa64-hpux.h: New file.
3111         (ASM_FILE_START): Correct typo.
3112         (PREFERRED_DEBUGGING_FORMAT): Rename to PREFERRED_DEBUGGING_TYPE.
3113         * config.gcc: Modify for above.
3114
3115 Fri Apr 13 00:09:22 EDT 2001  John Wehle  (john@feith.com)
3116
3117         * jump.c (jump_optimize_1): Don't delete dead stores here.
3118         * toplev.c (rest_of_compilation): Call delete_trivially_dead_insns
3119         prior to running jump optimize before cse2.
3120
3121 2001-04-12  Richard Henderson  <rth@redhat.com>
3122
3123         * Makefile.in (regmove.o): Depend on except.h.
3124         * regmove.c: Include it.
3125
3126 2001-04-12  Stan Shebs  <shebs@apple.com>
3127
3128         * objc/objc-act.c: Remove all code ifdefed with the never-used
3129         macro OBJC_INT_SELECTORS.
3130         * config/d30v/d30v.h: Remove commented-out ref to OBJC_INT_SELECTORS.
3131         * tm.texi: Remove doc for OBJC_INT_SELECTORS.
3132
3133 Thu Apr 12 18:13:37 2001  Rodney Brown  <RodneyBrown@mynd.com>
3134
3135         * config/pa/quadlib.c: Add prototypes.
3136
3137 2001-04-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3138
3139         * bitmap.h (debug_bitmap): Delete redundant prototype.
3140
3141         * rtl.h (get_frame_size): Likewise.
3142
3143 2001-04-12  Jim Wilson  <wilson@redhat.com>
3144
3145         * config/ia64/ia64.md (extendsfdf2, extendsftf2, extenddftf2): Simplify
3146         to just emit an fnorm.
3147
3148 2001-04-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3149
3150         * c-common.h (truthvalue_conversion, type_for_mode,
3151         type_for_size): Delete redundant declarations.
3152
3153         * c-lex.h (is_class_name): Likewise.
3154
3155         * c-tree.h (pedantic, convert, getdecls, gettags,
3156         global_bindings_p, init_decl_processing, insert_block,
3157         maybe_build_cleanup, poplevel, print_lang_decl,
3158         print_lang_identifier, print_lang_type, pushdecl, pushlevel,
3159         set_block, incomplete_type_error, build_function_call,
3160         lvalue_or_else, mark_addressable): Likewise.
3161
3162         * expr.h (expand_tree_builtin): Likewise.
3163
3164 2001-04-12  Mark Mitchell  <mark@codesourcery.com>
3165
3166         * invoke.texi: Document --param max-gcse-memory.
3167
3168 2001-04-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3169
3170         * configure.in (errno): Check for declaration.
3171         * configure, config.in: Regenerated.
3172
3173         * system.h (errno): Only declare if not already done.
3174
3175 2001-04-12  Alexandre Oliva  <aoliva@redhat.com>
3176
3177         * recog.c (general_operand, immediate_operand,
3178         nonmemory_operand): Require CONST_INTs to be sign-extended
3179         values for their modes.
3180
3181 2001-04-12  Alexandre Oliva  <aoliva@redhat.com>
3182
3183         * expmed.c (store_bit_field): Truncate CONST_INTs.
3184         (expand_mult_highpart, expand_divmod): Likewise.
3185         * expr.c (convert_modes, store_field): Likewise.
3186         * integrate.c (expand_inline_function): Use promote_mode() to
3187         determine whether to convert_modes() an argument as signed
3188         or unsigned.
3189         * optabs.c (expand_binop): Get CONST_INT operands
3190         sign-extended for their appropriate modes.
3191         * stmt.c (emit_case_nodes): Convert node values to the
3192         appropriate mode.
3193         (expand_end_case): Convert minval and range to the appropriate
3194         mode.
3195         * unroll.c (loop_iterations): Truncate abs_diff to the mode of
3196         the iteration variable.
3197         * varasm.c (immed_double_const): Don't require words to be
3198         narrower than host wide ints to properly sign-extend
3199         CONST_INTs.
3200
3201 2001-04-12  kaz Kojima  <kkojima@rr.iij4u.or.jp>
3202
3203         * sh.md (builtin_setjmp_receiver): New expander.
3204
3205 2001-04-12  David Edelsohn  <dje@watson.ibm.com>
3206
3207         * config/rs6000/rs6000.c (rs6000_emit_move): Do not
3208         special-case HOST_BITS_PER_WIDE_INT != 32.  Use same criteria
3209         for generating CONST_INT and CONST_DOUBLE.
3210
3211 2001-04-12  Alexandre Oliva  <aoliva@redhat.com>
3212
3213         * config/rs6000/rs6000.c (logical_operand): CONST_INTs are
3214         already sign-extended.
3215         (rs6000_emit_prologue): Make register iterator signed.
3216         (rs6000_emit_epilogue): Likewise.
3217         * config/rs6000/rs6000.md (addsi3, adddi3): Sign-extend high
3218         and low.
3219         (movsf split, movdf split): Sign-extend CONST_INTs.
3220         (movdi splits): Likewise.
3221
3222 2001-04-12  Kelley Cook <kelley.cook@home.com>
3223
3224         * config-lang.in (lang_dirs): Add in zlib.
3225
3226 2001-04-11  Alexandre Oliva  <aoliva@redhat.com>
3227
3228         * config/i386/i386.md: Apply trunc_int_for_mode() to GEN_INT
3229         operands that make it to RTL.
3230
3231 2001-04-11  Stan Shebs  <shebs@apple.com>
3232
3233         Add Darwin (Mac OS X kernel) native support.
3234         * config.gcc (powerpc-*-darwin*): Add native bits.
3235         * config/darwin.c: New file, generic Darwin support functions.
3236         * config/darwin.h: New file, generic Darwin definitions.
3237         * config/darwin-protos.h: New file, generic Darwin prototypes.
3238         * rs6000/darwin.h: New file, Darwin for PowerPC.
3239         * rs6000/t-darwin: New file, Darwin makefile fragment.
3240         * rs6000/rs6000.h (OBJECT_MACHO): New macro.
3241         (TARGET_MACHO): Ditto.
3242         (rs6000_abi): Add ABI_DARWIN.
3243         (RS6000_REG_SAVE): Add ABI_DARWIN case.
3244         (RS6000_SAVE_AREA): Ditto.
3245         (FP_ARG_MAX_REG): Ditto.
3246         (RETURN_ADDRESS_OFFSET): Ditto.
3247         * rs6000/rs6000.c (rs6000_legitimize_address): Add TARGET_MACHO
3248         cases.
3249         (rs6000_emit_move): Add ABI_DARWIN cases.
3250         (print_operand): Ditto.
3251         (first_reg_to_save): Ditto.
3252         (rs6000_stack_info): Ditto, also align stack by 16 instead of 8.
3253         (debug_stack_info): Ditto.
3254         (rs6000_emit_prologue): Ditto.
3255         (rs6000_emit_epilogue): Ditto.
3256         (output_profiler_hook): Ditto.
3257         (output_function_profiler): Ditto.
3258         (rs6000_add_gc_roots): Call machopic_add_gc_roots if TARGET_MACHO.
3259         (output_mi_thunk): Add TARGET_MACHO case.
3260         (add_compiler_stub): Ditto.
3261         (output_compiler_stub): Ditto.
3262         (no_previous_def): Ditto.
3263         (output_call): Ditto.
3264         (machopic_output_stub): Ditto.
3265         (rs6000_machopic_legitimize_pic_address): Ditto.
3266         (toc_section): Ditto.
3267         * rs6000/rs6000.md (addsi3_high): New TARGET_MACHO pattern.
3268         (macho_high): Ditto.
3269         (macho_low): Ditto.
3270         (movsi_low): Ditto.
3271         (load_macho_picbase): Ditto.
3272         (call): Add TARGET_MACHO case to modify function.
3273         (call_value): Ditto.
3274         (call_nonlocal_sysv): Add ABI_DARWIN case.
3275         (call_value_nonlocal_sysv): Ditto.
3276         * rs6000/rs6000-protos.h (rs6000_machopic_legitimize_pic_address):
3277         Add prototype.
3278         (machopic_output_stub): Ditto.
3279         * ginclude/stddef.h: Test _BSD_WCHAR_T_DEFINED_.
3280
3281 2001-04-11  Mark Mitchell  <mark@codesourcery.com>
3282
3283         * dwarf2out.c (modified_type_die): Don't create new types here.
3284         * tree.h (get_qualified_type): New function.
3285         (build_qualified_type): Adjust comment.
3286         * tree.c (get_qualified_type): New function.
3287         (build_qualified_type): Use it.
3288
3289 2001-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3290
3291         * cpp.texi (-Wtraditional): Update description.
3292
3293         * invoke.texi (-Wtraditional): Likewise.
3294
3295 2001-04-11  Jim Wilson  <wilson@redhat.com>
3296
3297         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Return 128 if argument
3298         requires more than 64 bits of alignment.
3299
3300 2001-04-11  Neil Booth  <neil@daikokuya.demon.co.uk>
3301
3302         * cpplib.c (do_line): Sanity check iff enable checking.
3303
3304 2001-04-11  Richard Henderson  <rth@redhat.com>
3305
3306         * Makefile.in (insn-recog.o): Depend on toplev.h.
3307         (insn-emit.o, doloop.o): Likewise.
3308         * genrecog.c, genemit.c: Include toplev.h in generated file.
3309         * doloop.c: Include toplev.h.
3310
3311 2001-04-11  Mark Mitchell  <mark@codesourcery.com>
3312
3313         * Makefile.in (gcse.o): Depend on params.h.
3314         * gcse.c: Include params.h.
3315         (gcse_main): Don't do GCSE if doing so will take inordinate
3316         amounts of memory.
3317         * params.def (PARAM_MAX_GCSE_MEMORY): New  parameter.
3318         * params.h (MAX_GCSE_MEMORY): New macro.
3319
3320 2001-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3321
3322         * Makefile.in (insn-output.o): Depend on $(EXPR_H).
3323
3324         * genoutput.c (output_prologue): Include expr.h in insn-output.c.
3325
3326 2001-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3327
3328         * output.h (assemble_real): Declare if REAL_VALUE_TYPE is defined.
3329
3330         * real.h (ereal_atof, real_value_truncate, target_isnan,
3331         target_isinf, target_negative, assemble_real, debug_real): Delete
3332         redundant prototypes.
3333
3334         * Makefile.in (ifcvt.o): Depend on toplev.h.
3335
3336         * c-semantics.c: Include expr.h.
3337
3338         * ifcvt.c: Include toplev.h.
3339
3340         * expr.h (rtx_equal_p): Delete prototype.
3341
3342         * rtl.h (exact_log2_wide, floor_log2_wide, permalloc,
3343         protect_from_queue, gen_jump, gen_beq, gen_bge, gen_ble,
3344         eliminate_constant_term, expand_complex_abs, find_single_use,
3345         make_tree, init_expr_once, init_optabs, supports_one_only):
3346         Likewise.
3347
3348         * tree.h (exact_log2_wide, floor_log2_wide, expand_null_return,
3349         rest_of_type_compilation, emit_queue, do_pending_stack_adjust,
3350         expand_assignment, store_expr, emit_line_note_after,
3351         emit_line_note_force, split_specs_attrs, label_rtx): Likewise.
3352
3353         * toplev.h (exact_log2_wide, floor_log2_wide): Add prototype.
3354
3355         * sparc-protos.h: Delete redundant prototypes.
3356
3357 2001-04-11  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
3358
3359         * reload.c (push_reload): Add condition missed in SUBREG byte
3360         offset patch.
3361
3362 Wed Apr  4 00:28:23 2001  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3363
3364         * sparc/sol2-sld-64.h (STARTFILE_SPEC): Added missing blank.
3365
3366 Wed Apr 11 14:06:10 CEST 2001  Jan Hubicka  <jh@suse.cz>
3367
3368         * i386.md (floatsisf_sse): Fix output template
3369         * i386.c (ix86_expand_fp_movcc)
3370
3371         * reg-stack.c (emit_pop_insn): Handle complex modes.
3372         (move_for_stack_reg): Emit proper move mode.
3373         (subst_stack_regs_pat): Handle complex modes.
3374
3375 2001-04-11  Jakub Jelinek  <jakub@redhat.com>
3376
3377         * cpplex.c (_cpp_lex_token): Only warn if -Wcomment.
3378
3379 2001-04-10  Richard Henderson  <rth@redhat.com>
3380
3381         * libgcc2.h (__terminate_func_ptr): Remove typedef.
3382         (__pure_virtual, __terminate, __terminate_set_func,
3383         __default_terminate, __throw_type_match, __empty,
3384         __get_eh_context, __get_eh_info, __get_dynamic_handler_chain,
3385         __eh_rtime_match, __unwinding_cleanup, __rethrow,
3386         __sjthrow, __sjpopnthrow, __eh_alloc, __eh_free):
3387         Remove prototypes of deleted functions.
3388
3389 2001-04-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3390
3391         * c-typeck.c (convert_arguments): -Wtraditional now activates
3392         -Wconversion warnings, except for changes in signed-ness.
3393         Detect complex<->int & int<->complex conversions as well.
3394
3395         * invoke.texi (-Wtraditional): Document it.
3396
3397 Tue Apr 10 17:45:50 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3398
3399         * gcse.c (update_ld_motion_stores): Don't use variable I for an insn.
3400         * flow.c (set_block_for_new_insns): Remove needless cast and
3401         properly check for unset block number.
3402
3403 2001-04-10  Andrew MacLeod  <amacleod@redhat.com>
3404
3405         * function.c (purge_single_hard_subreg_set): Only check REGNO if
3406         the subreg was a hard register. Pseudos are left as subregs.
3407
3408 2001-04-09  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3409
3410         * Makefile.in (LIB2FUNCS_STATIC_EXTRA): New macro.
3411         (LIB2ADD_ST): New macro, pass it to mklibgcc.
3412         * mklibgcc.in (libgcc2_st_objs): New variable, set it from LIB2ADD_ST.
3413         (libgcc_st_objs): New, set from libgcc2_st_objs. Use it for libgcc.a.
3414         * config/rs6000/t-ppccomm (LIB2FUNCS_STATIC_EXTRA): New macro.
3415
3416 2001-04-09  Bo Thorsen  <bo@suse.co.uk>
3417
3418         * config/i386/i386.md: "TARGET_64BIT && TARGET_64BIT": Removed one.
3419
3420 2001-04-09  Andrew MacLeod  <amacleod@redhat.com>
3421
3422         * output.h (set_block_num): Missed it earlier, remove deprecated
3423         prototype.
3424
3425 2001-04-09  Andrew MacLeod  <amacleod@redhat.com>
3426
3427         * gcse.c (oprs_unchanged_p): Pass basic_block to load_killed_in_block_p.
3428         (load_killed_in_block_p): Change bb parameter from int to basic_block.
3429         (oprs_not_set_p): Pass basic_blocks instead of ints as parameters.
3430         (handle_rd_kill_set): Change bb parameter from int to basic_block.
3431         (compute_kill_rd): Pass basic_blocks instead of ints as parameters.
3432         (expr_killed_p): Change bb parameter from int to basic_block, pass
3433         basic_blocks instead of ints as parameters.
3434         (compute_ae_kill): Pass basic_blocks instead of ints as parameters.
3435         (expr_reaches_here_p_work, expr_reaches_here_p): Change bb parameter
3436         from int to basic_block, pass basic_blocks instead of ints as parms.
3437         (pre_expr_reaches_here_p_work, pre_expr_reaches_here_p): Change bb
3438         parameter from int to basic_block, pass basic_blocks instead of ints.
3439         (process_insert_insn): Pass basic_blocks instead of ints as parameters.
3440         (insert_insn_end_bb): Change bb parameter from int to basic_block,
3441         pass basic_blocks instead of ints.
3442         (pre_edge_insert, pre_insert_copy_insn, pre_insert_copies): Pass
3443         basic_blocks instead of ints as parameters.
3444         (pre_delete): Pass basic_blocks instead of ints as parameters.
3445         (hoist_expr_reaches_here_p): Change bb parameter from int to
3446         basic_block, pass basic_blocks instead of ints.
3447         (hoist_code): Pass basic_blocks instead of ints as parameters.
3448         (reg_set_info, store_ops_ok, store_killed_after, store_killed_before):
3449         Change bb parameter from int to basic_block.
3450         (build_store_vectors): Pass basic_blocks instead of ints as parameters.
3451         (insert_insn_start_bb): Change bb parameter from int to basic_block,
3452         pass basic_blocks instead of ints.
3453         (insert_store): Pass basic_blocks instead of ints as parameters.
3454         (replace_store_insn, delete_store): Change bb parameter from int to
3455         basic_block, pass basic_blocks instead of ints.
3456         (store_motion): Pass basic_blocks instead of ints as parameters.
3457
3458 2001-04-09  Andrew MacLeod  <amacleod@redhat.com>
3459
3460         * basic-block.h (set_new_block_for_insns): New Prototype.
3461         (set_block_num): Delete prototype.
3462         * flow.c (set_block_num): Remove obsolete function.
3463         (set_block_for_new_insns): Set BB for single or multiple insns.
3464         * gcse.c (handle_avail_expr): Use set_block_for_new_insns.
3465         (process_insn_end_bb): Use set_block_for_new_insns or
3466         set_block_for_insn instead of set_block_num.
3467         (pre_insert_copy_insn): Use set_block_for_new_insns.
3468         (update_ld_motion_stores): Use set_block_for_new_insns.
3469         (insert_insn_start_bb): Use set_block_for_new_insns.
3470         (replace_store_insn): Use set_block_for_new_insns.
3471
3472 2001-04-09  Andrew MacLeod  <amacleod@redhat.com>
3473             Jeff Law  <law@redhat.com>
3474
3475         * alias.c (get_addr): Externalize.
3476         (canon_true_dependence): New function. Behaves like true_dependance
3477         except it already assumes a MEM has been canonicalized.
3478         * flags.h (flag_gcse_lm, flag_gcse_sm): New optimization flags.
3479         * gcse.c (struct ls_expr): Add load/store expressions structure.
3480         (modify_mem_list, canon_modify_mem_list): New variable.
3481         (gcse_main): Initialize & finalize alias analysis. Use enhanced
3482         load motion and store motion if requested.
3483         (alloc_gcse_mem): Allocate space for modify_mem_list array.
3484         (free_gcse_mem): Free the modify_mem_list array.
3485         (oprs_unchanged_p): Use load_killed_in_block_p.
3486         (gcse_mems_conflict_p, gcse_mem_operand): New variables.
3487         (mems_conflict_for_gcse_p): New function.  Don't kill loads
3488         with stores to themselves if its in the load/store expression list.
3489         (load_killed_in_block_p): New function.
3490         (canon_list_insert): New Function.
3491         (record_last_mem_set_info): Keep a list of all instructions which
3492         can modify memory for each basic block.
3493         (compute_hash_table, reset_opr_set_tables): Clear modify_mem_list.
3494         (oprs_not_set_p): Use load_killed_in_block_p.
3495         (mark_call, mark_set, mark_clobber): Use record_last_mem_set_info.
3496         (expr_killed_p): Use load_killed_in_block_p.
3497         (compute_transp): Do not pessimize memory references.
3498         (pre_edge_insert): Update stores for a load motion expression.
3499         (one_pre_gcse_pass): Check loads/stores for extra load motion.
3500         (ldst_entry): Find or create a ldst_expr structure.
3501         (free_ldst_entry): Free memory for an individual item.
3502         (free_ldst_mems): Free entire load/store expression list.
3503         (print_ldst_list): Print debug info.
3504         (find_rtx_in_ldst): Try to find an rtx expression in the ldst list.
3505         (enumerate_ldsts): Assign integer values to each entry in list.
3506         (first_ls_expr): First expression in the list.
3507         (next_ls_expr): Next expression in the list.
3508         (simple_mem): Check if expression qualifies for ld/st expression list.
3509         (invalidate_any_buried_refs): Remove from expression list if its
3510         used in some other way we dont understand.
3511         (compute_ld_motion_mems): Find all potential enhanced load motion
3512         expression.
3513         (trim_ld_motion_mems): Remove any expressions which are invalid.
3514         (update_ld_motion_stores): Copy store values to registers for loads
3515         which have been moved.
3516         (regvec, st_antloc, num_store): New global statics.
3517         (reg_set_info): Marks registers as set.
3518         (store_ops_ok): Verfies registers expressions are valid in a block.
3519         (find_moveable_store): Look for moveable stores in a pattern.
3520         (compute_store_table): Find stores in a function worth moving, maybe.
3521         (load_kills_store): Check dependance of a load and store.
3522         (find_loads): Find any loads in a pattern.
3523         (store_killed_in_insn): Check if a store is killed in an insn.
3524         (store_killed_after): Check is store killed after an insn in a block.
3525         (store_killed_before): Check is store killed before an insn in a block.
3526         (build_store_vectors): Generate the antic and avail vectors.
3527         (insert_insn_start_bb): Insert at the start of a BB, update BLOCK_HEAD.
3528         (insert_store): Add a store to an edge.
3529         (replace_store_insn): Replace a store with a SET insn.
3530         (delete_store): Delete a store insn.
3531         (free_store_memory): Free memory.
3532         (store_motion): Perform store motion.
3533         * invoke.texi: Add documentation for -fcse-lm and -fgcse-sm.
3534         * rtl.h (get_addr, canon_true_dependence): Add prototypes.
3535         * toplev.c (flag_gcse_lm, flag_gcse_sm): New Variables.
3536         (f_options): Add gcse-lm and gcse-sm.
3537
3538 Mon Apr  9 16:18:03 CEST 2001  Jan Hubicka  <jh@suse.cz>
3539
3540         * i386.c (expand_fp_movcc): Fix condition reversal code.
3541
3542         * i386.c (ix86_register_move_cost): Fix handling of reformating penalty
3543         * i386.h (INTEGER_CLASS_P, MAYBE_INTEGER_CLASS_P): New.
3544         (CLASS_MAX_NREGS): Use it.
3545
3546         * i386.h (HARD_REGNO_NREGS): Handle properly TF and TCmodes on 64bit;
3547         handle properly complex values.
3548         (CLASS_MAX_NREGS): Likewise; update comment.
3549
3550 2001-04-05  Bernd Schmidt  <bernds@redhat.com>
3551
3552         * ia64.c (ia64_flag_schedule_insns2): New variable.
3553         (ia64_override_options): Initialize it.  Clear
3554         flag_schedule_insns_after_reload.
3555         (ia64_reorg): Only do scheduling if ia64_flag_schedule_insns2.
3556
3557 Mon Apr  9 15:09:13 CEST 2001  Jan Hubicka  <jh@suse.cz>
3558
3559         * i386.md (truncdfsf2_*): Add i387->int/sse reg alternatives;
3560         Do not require source to match destination anymore;
3561         Add abort to the nontrivial cases that should be handled by split.
3562         (fix_trunc?fdi): Add SSE case for x86_64.
3563         (floatdi?f): Likewise.
3564         (floatdi?f_sse): New.
3565         (fix_trunc?fdi_sse): New.
3566
3567 2001-04-09  Richard Sandiford   <rsandifo@redhat.com>
3568
3569         * dwarfout.c (DEBUG_ARANGES_BEGIN_LABEL): New label.
3570         (DEBUG_ARANGES_END_LABEL): Ditto.
3571         (dwarfout_init): Generate length and version fields at the start
3572         of the .debug_aranges info.  Insert DEBUG_ARANGES_BEGIN_LABEL
3573         after the length field.
3574         (dwarfout_finish): Insert DEBUG_ARANGED_END_LABEL at the end of
3575         the .debug_aranges info.
3576
3577 Sun Apr  8 00:43:27 CEST 2001  Jan Hubicka  <jh@suse.cz>
3578
3579         * i386.c (call, call_value): Make sure that resulting call_insn
3580         does have proper second operand.
3581
3582 Sun Apr  8 22:50:49 2001  Christopher Faylor <cgf@cygnus.com>
3583
3584         * config/i386/xm-cygwin.h (GET_ENV_PATH_LIST): Eliminate obsolete
3585         function.  Remove include of sys/cygwin.h.
3586
3587 Sun Apr  8 22:20:27 2001  Christopher Faylor <cgf@cygnus.com>
3588
3589         * config/i386/cygwin.h (STARTFILE_SPEC): search */lib/w32api by default.
3590         (CPP_SPEC): Always search */include/w32api for header files.
3591         (ASM_OUTPUT_SECTION_NAME): Avoid testing NULL DECL.
3592         (LINK_SPEC): Add "cyg" to the library search prefixes.
3593
3594 2001-04-08  Philip Blundell  <philb@gnu.org>
3595
3596         * config/arm/arm.h (ASM_OUTPUT_LABELREF): Use asm_fprintf.
3597
3598 2001-04-08  Neil Booth  <neil@daikokuya.demon.co.uk>
3599
3600         * cpperror.c (print_location): Don't special case <stdin>.
3601         (_cpp_begin_message): Handle WARNING_SYSHDR the same as
3602         WARNING, but we don't check if we're in system headers.
3603         * cpplib.h (enum error_type): WARNING_SYSHDR: New.
3604         * cpplib.c (do_warning): Warn in system headers.
3605
3606 2001-04-07  Mumit Khan <khan@NanoTech.Wisc.EDU>
3607
3608         * mbchar.c: Include config.h first.
3609
3610 2001-04-07  Zack Weinberg  <zackw@stanford.edu>
3611
3612         * config.gcc: Set default for xmake_file at top, not bottom.
3613         Change places that set xmake_file to "none" to set to the
3614         empty string instead, or remove them entirely if there is no
3615         default xmake_file for this cpu_type.  Remove references to
3616         deleted files.
3617
3618         * config/x-lynx, config/convex/x-convex, config/elxsi/x-elxsi,
3619         config/i386/x-isc, config/i386/x-isc3, config/i386/x-ncr3000,
3620         config/i386/x-next, config/i386/x-sco, config/i386/x-sysv3,
3621         config/i386/x-vsta, config/i860/x-sysv4, config/m68k/x-amix,
3622         config/m68k/x-apollo68, config/m68k/x-ccur, config/m68k/x-crds,
3623         config/m68k/x-hp2bsd, config/m68k/x-mot3300, config/m68k/x-mot3300-gas,
3624         config/m68k/x-tower, config/m88k/x-sysv4, config/mips/x-dec-osf1,
3625         config/mips/x-sni-svr4, config/mips/x-ultrix, config/romp/x-mach,
3626         config/romp/x-romp, config/rs6000/x-beos, config/rs6000/x-lynx,
3627         config/rs6000/x-mach, config/rs6000/x-sysv4, config/sparc/x-sysv4:
3628         Delete.
3629
3630         * config/a29k/x-unix, config/i386/x-aix, config/i386/x-osf1elf,
3631         config/i386/x-osfrose, config/m68k/x-dpx2, config/mips/x-iris3,
3632         config/mips/x-mips, config/mips/x-osfrose, config/mips/x-sony,
3633         config/mips/x-sysv, config/rs6000/x-aix31:
3634         Just set CLIB to -lld or -lmld, as appropriate.
3635
3636         * config/arm/x-riscix, config/i370/x-oe, config/i386/x-dgux,
3637         config/i386/x-sco4, config/i386/x-sco5, config/m68k/x-hp320,
3638         config/m68k/x-hp320g, config/m68k/x-next, config/m88k/x-dgux,
3639         config/mips/x-iris, config/pa/x-pa:
3640         Just set (some of) FIXPROTO_DEFINES, STMP_FIXPROTO,
3641         OTHER_FIXINCLUDES_DIRS.
3642
3643         * config/i386/x-djgpp: Don't set LN or LN_S.
3644         * config/m88k/x-dolph: Don't define __m88k__.
3645         * config/m88k/x-tekXD88: Don't set AR_FLAGS.
3646         * config/pa/x-pa-mpeix: Just set up quadlib.asm.
3647         * config/i860/fx2800.h: No need to #undef SVR4.
3648
3649         38 x-host fragments remain, 2 x-cpu.
3650
3651 2001-04-07  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
3652
3653         * c4x.h (HARD_REGNO_NREGS): HCmode mode uses 2 regs not 4.
3654
3655 2001-04-06  Neil Booth  <neil@daikokuya.demon.co.uk>
3656
3657         * cpplib.c (cpp_push_buffer): Give stdin buffers the name <stdin>.
3658
3659 2001-04-06  Neil Booth  <neil@daikokuya.demon.co.uk>
3660
3661         * configure.in: Add check for lstat.
3662         * configure, config.in: Regenerate.
3663         * cppinit.c (append_include_chain): Make empty path ".".
3664         * cpplib.c (do_line): Don't simplify #line paths.
3665         * cppfiles.c (remove_component_p): New function.
3666         (find_or_create_entry): Acknowledge stat () errors during
3667         path simplification.
3668         (handle_missing_header): Don't simplify paths.
3669         (_cpp_simplify_pathname): Don't simplify VMS paths.  Return
3670         the empty path untouched.  Don't leave a trailing '/'.
3671
3672 2001-04-06  Benjamin Kosnik  <bkoz@redhat.com>
3673
3674         * cppdefault.c (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Add.
3675         * Makefile.in (-DGPLUSPLUS_BACKWARD_INCLUDE_DIR): Add.
3676
3677 2001-04-06  Neil Booth  <neil@daikokuya.demon.co.uk>
3678
3679         * cppfiles.c (open_file): Fail directories silently, but
3680         with an errno of NOENT set.
3681         (read_include_file): Move the common exit code to the sole
3682         caller.  Return an int indicating success or failure.  Let
3683         open_file handle directories.
3684         (stack_include_file): If read_include_file fails,
3685         push a "null" buffer.
3686
3687 2001-04-05  DJ Delorie  <dj@redhat.com>
3688
3689         * function.h (virtuals_instantiated): Declare.
3690         * function.c: (virtuals_instantiated): Make global.
3691         * calls.c (emit_library_call_value_1): Use
3692         virtual_outgoing_args_rtx only if it hasn't been instantiated.
3693         Otherwise, use the stack pointer directly.
3694
3695 Thu Apr  5 19:13:33 CEST 2001  Jan Hubicka  <jh@suse.cz>
3696
3697         * i386.c (x86_initialize_trampoline): New global function.
3698         * i386.h (TRAMPOLINE_SIZE): Size is 23 for x86_64.
3699         (INITIALIZE_TRAMPOLINE): Move offline.
3700         * i386-protos.h (x86_initialize_trampoline): Declare.
3701
3702 Thu Apr  5 19:02:15 CEST 2001  Jan Hubicka  <jh@suse.cz>
3703
3704         * i386.md (movdi_1_rex64): Allow SSE->SSE reg move.
3705         (lea_0): Rename to lea_1.
3706         (lea_1_zext, lea_1_rex64, lea_2_rex64): New patterns.
3707         (lea_general_?): Allow SImodes on TARGET_64BIT
3708         (lea_general_?_zext): New patterns.
3709         (call_1, call_1_rex64): Fix.
3710
3711 Thu Apr  5 19:00:15 CEST 2001  Jan Hubicka  <jh@suse.cz>
3712
3713         * i386.c (ix86_split_long_move): Use PUT_MODE instead of change_address.
3714
3715 Thu Apr  5 18:25:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
3716
3717         * i386.c (function_arg): Return constm1_rtx for last argument.
3718         (ix86_expand_prologue): Update gen_call calls.
3719         * i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Likewise.
3720         * i386.md (call_pop): Likewise.
3721         (call): Second operand is VOIDmode.
3722         (call_0): Likewise; Support 64bits.
3723         (call_exp): New expander.
3724         (call_1): Get to the sync.
3725         (call_1_exp): New pattern.
3726         (call_value): Support 64bit.
3727         (call_value_exp): New pattern.
3728         (untyped_call): Update gen_call call.
3729         (call_value_pop): Disable for 64bit.
3730         (call_value_0_rex64): New pattern.
3731         (call_value_1_rex64): Likewise.
3732
3733 2001-04-05  Bo Thorsen  <bo@suse.de>
3734
3735         * i386.md: Don't allow "builtin_setjmp_receiver" for TARGET_64BIT.
3736
3737 Thu Apr  5 13:44:17 2001  J"orn Rennecke <amylaar@redhat.com>
3738
3739         * i386.md (*andsi_1+3): If used after reload, make sure the operand
3740         satisfies ANY_QI_REG_P.
3741
3742 2001-04-05  Bernd Schmidt  <bernds@redhat.com>
3743
3744         * config/ia64/ia64.c (rtx_needs_barrier): A PARALLEL can contain
3745         ASM_OPERAND.
3746
3747         * sched-deps.c (sched_analyze_insn): Revert more of the March 27
3748         change.
3749
3750 2001-04-04  Zack Weinberg  <zackw@stanford.edu>
3751
3752         * config.gcc: Remove default for xm_file.  Clean up local
3753         machine type handling.  Remove settings of xm_file to
3754         something that doesn't exist.  In the big switch, set xm_file,
3755         don't append to it (the value before the big switch is always
3756         null).  Don't force build_xm_file or host_xm_file to have a value.
3757         * configure.in: Remove default for xm_file.  Do not special
3758         case $cpu/xm-$cpu.h not existing.
3759         * configure: Regenerate.
3760
3761 2001-04-04  Diego Novillo  <dnovillo@redhat.com>
3762
3763         * simplify-rtx.c (simplify_binary_operation): Check for overflow
3764         when folding integer division and modulo operations.
3765
3766 2001-04-04  Andrew MacLeod  <amacleod@redhat.com>
3767
3768         * dwarf2out.c (output_cfi): Add 'for_eh' parameter, use PTR_SIZE
3769         instead of DWARF2_ADDR_SIZE for EH addresses.
3770         (output_call_frame_info): Use PTR_SIZE instead of DWARF2_ADDR_SIZE for
3771         EH addresses.
3772
3773 2001-04-04  Richard Henderson  <rth@redhat.com>
3774
3775         * config/ia64/ia64.h (IA64_UNWIND_INFO): Disable.
3776         * config/ia64/t-glibc (LIB2ADDEH): Disable.
3777         * config/ia64/t-ia64 (LIB2ADDEH): Disable.
3778
3779 2001-04-04  Richard Henderson  <rth@redhat.com>
3780
3781         * configure.in (gcc_cv_as_leb128): Escape "." in regexp.
3782         * configure: Rebuilt.
3783
3784 2001-04-04  Jakub Jelinek  <jakub@redhat.com>
3785
3786         * gcse.c (delete_null_pointer_checks_1): Add delete_list argument,
3787         push insns to delete to it instead of deleting them.
3788         (delete_null_pointer_checks): Delete insns from delete_list after
3789         all delete_null_pointer_checks_1 passes are done.
3790
3791 2001-04-04  Richard Henderson  <rth@redhat.com>
3792
3793         * configure.in (gcc_cv_as_leb128): Tweek minor number extraction.
3794         * configure: Rebuilt.
3795
3796 2001-04-04  Zack Weinberg  <zackw@stanford.edu>
3797
3798         * expr.h: Remove #ifdef FUNCTION_CONVERSION_BUG logic.
3799         * config/romp/xm-romp.h: Delete.
3800
3801 2001-04-04  Bernd Schmidt  <bernds@redhat.com>
3802
3803         * sched-deps.c (sched_analyze_insn): Partially revert March 27
3804         change.
3805
3806 2001-04-04 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
3807
3808         * emit-rtl.c (mark_label_nuses) Increment the label uses for
3809         all labels present in rtx.
3810         (try_split) Call new function for all split insns.
3811
3812 2001-04-04  Jakub Jelinek  <jakub@redhat.com>
3813
3814         * recog.c (validate_replace_rtx_1): Instead of aborting just make
3815         sure the change won't be validated.
3816
3817 Wed Apr  4 00:45:38 EDT 2001  John Wehle  (john@feith.com)
3818
3819         * rtl.h (set_noop_p): Declare.
3820         * flow.c (set_noop_p): Move from here ...
3821         * rtlanal.c (set_noop_p): ... to here and enhance.
3822         * cse.c (delete_trivially_dead_insns): Use it.
3823         * gcse.c (hash_scan_set): Likewise.
3824         * jump.c (delete_noop_moves): Likewise.
3825         * recog.c (split_all_insns): Likewise.
3826
3827 2001-04-04  Alan Modra  <alan@linuxcare.com.au>
3828
3829         * dwarf2out.c (dwarf2out_frame_debug_expr): Support adjusting
3830         stack pointer via a LO_SUM.  Ditto for setting a temp register
3831         used to save to the stack.  Set cfa_temp when setting fp, and
3832         allow matches to cfa_temp in addition to cfa_store when saving
3833         regs.  Handle POST_INC and LO_SUM register stores.  Document the
3834         changes and errors in rule 12 doco.
3835
3836         * pa.c (set_reg_plus_d, store_reg, load_reg): Return last insn.
3837         (actual_fsize, local_fsize, save_fregs): Move for store_reg to see.
3838         (load_reg): Move closer to epilogue code.
3839         (DO_FRAME_NOTES): Define to control the following..
3840         (FRP): Define to set RTX_FRAME_RELATED_P on insns.
3841         (hppa_expand_prologue): Use FRP and REG_FRAME_RELATED_EXPR
3842         notes as necessary.
3843         (hppa_expand_epilogue): Likewise.
3844
3845 2001-04-03  Richard Henderson  <rth@redhat.com>
3846
3847         * configure.in (gcc_cv_as_leb128): Reject gas before 2.11.
3848         * configure: Rebuild.
3849
3850 2001-04-03  Richard Henderson  <rth@redhat.com>
3851
3852         * rtl.h (LCT_THROW): New.
3853         * calls.c (emit_library_call_value_1): Handle it.
3854         * except.c (connect_post_landing_pads): Use it.
3855
3856 2001-04-03  Zack Weinberg  <zackw@stanford.edu>
3857
3858         * gansidecl.h: Delete file.
3859         * configure.in: Change all refs to gansidecl.h to use
3860         ansidecl.h.  Adjust *_file_list so they know where ansidecl.h
3861         lives.
3862         * configure: Regenerate.
3863
3864         * Makefile.in (intl.o): Don't depend on gansidecl.h.
3865         * defaults.h: s/gansidecl.h/ansidecl.h/ in comment.
3866         * ggc.h, config/fr30/fr30.h, config/mcore/mcore.c:
3867         Don't include gansidecl.h.
3868         * intl.c, main.c, version.c, fixinc/fixlib.h,
3869         fixinc/procopen.c, fixinc/server.c: Include ansidecl.h not
3870         gansidecl.h.
3871
3872 Tue Apr  3 19:41:21 CEST 2001  Jan Hubicka  <jh@suse.cz>
3873
3874         * i386.c (ix86_force_to_memory, ix86_free_from_memory):
3875         Update for 64bit.
3876
3877 2001-04-03  Zack Weinberg  <zackw@stanford.edu>
3878
3879         * config/i386/xm-beos.h, config/i386/xm-isc.h,
3880         config/i386/xm-next.h, config/i386/xm-sco.h,
3881         config/i386/xm-sco5.h, config/m68k/xm-plexus.h,
3882         config/m88k/xm-m88k.h: Delete.
3883
3884         * config/i386/xm-djgpp.h: Don't define __MSDOS__.
3885         * config/romp/xm-romp.h: Don't define bcopy.
3886         * config/rs6000/xm-beos.h: Don't define bcopy, HAVE_VPRINTF,
3887         HAVE_PUTENV, HAVE_RENAME, or USE_C_ALLOCA.
3888
3889         * config.gcc: Remove references to deleted files.
3890
3891         14 xm-host.h remain, 1 xm-cpu.h.
3892
3893 2001-04-03  Jakub Jelinek  <jakub@redhat.com>
3894             David S. Miller  <davem@pierdol.cobaltmicro.com>
3895             Andrew MacLeod  <amacleod@redhat.com>
3896
3897         Use byte offsets in SUBREGs instead of words.
3898
3899         * alias.c (nonlocal_mentioned_p): Use subreg_regno function.
3900         * caller-save.c (mark_set_regs): Change callers of subreg_hard_regno
3901         to pass new argument.
3902         (add_stored_regs): Use subreg_regno_offset function.
3903         * calls.c (expand_call): For non-paradoxical SUBREG take endianess
3904         into account.
3905         (precompute_arguments): Use gen_lowpart_SUBREG.
3906         * combine.c (try_combine): Replace explicit XEXP with SUBREG_REG.
3907         (combine_simplify_rtx): Rework to use SUBREG_BYTE.
3908         (simplify_set): Rework to use SUBREG_BYTE.
3909         (expand_field_assignment): Use SUBREG_BYTE.
3910         (make_extraction): Use SUBREG_BYTE.
3911         (if_then_else_cond): Use SUBREG_BYTE.
3912         (apply_distributive_law): Use SUBREG_BYTE and fixup subreg comments.
3913         (gen_lowpart_for_combine): Compute full byte offset.
3914         * cse.c (mention_regs): Use SUBREG_BYTE.
3915         (remove_invalid_subreg_refs): Rework to use SUBREG_BYTE.
3916         (canon_hash): Use SUBREG_BYTE.
3917         (fold_rtx): Pass SUBREG_BYTE div UNITS_PER_WORD to operand_subword.
3918         (gen_lowpart_if_possible): Formatting.
3919         * dbxout.c (dbxout_symbol_location): Compute SUBREG hard regnos
3920         correctly.
3921         * dwarf2out.c (is_pseudo_reg): Fixup explicit XEXP into SUBREG_REG
3922         (mem_loc_descriptor): Fixup explicit XEXP into SUBREG_REG
3923         (loc_descriptor): Fixup explicit XEXP into SUBREG_REG
3924         * dwarfout.c (is_pseudo_reg): Fixup explicit XEXP into SUBREG_REG
3925         (output_mem_loc_descriptor): Fixup explicit XEXP into SUBREG_REG
3926         (output_loc_descriptor): Fixup explicit XEXP into SUBREG_REG
3927         * emit-rtl.c (gen_rtx_SUBREG): New function, used to verify
3928         certain invariants about SUBREGs the compiler creates.
3929         (gen_lowpart_SUBREG): New function.
3930         (subreg_hard_regno): New function to get the final register number.
3931         (gen_lowpart_common): Use SUBREG_BYTE.
3932         (gen_imagpart): Spacing nits.
3933         (subreg_realpart_p): Use SUBREG_BYTE.
3934         (gen_highpart): Use SUBREG_BYTE.
3935         (subreg_lowpart_p): Always compute endian corrected goal offset,
3936         even at the byte level, then compare against that.
3937         (constant_subword): New function, pulled out all constant cases
3938         from operand_subword and changed second argument name to offset.
3939         (operand_subword): Detect non REG/SUBREG/CONCAT/MEM cases early
3940         and call constant_subword to do the work.  Return const0_rtx if
3941         looking for a word outside of OP.
3942         (operand_subword_force): Change second arg name to offset.
3943         * expmed.c (store_bit_field): Use SUBREG_BYTE.
3944         (store_split_bit_field): Use SUBREG_BYTE.
3945         (extract_bit_field): Use SUBREG_BYTE.
3946         (extract_split_bit_field): Use SUBREG_BYTE.
3947         (expand_shift): Use SUBREG_BYTE.
3948         * expr.c (store_expr, expand_expr): Use gen_lowpart_SUBREG.
3949         * final.c (alter_subreg) Use subreg_hard_regno and SUBREG_BYTE.
3950         * flow.c (set_noop_p): Use SUBREG_BYTE.
3951         (mark_set_1): Remove ALTER_HARD_SUBREG. Use subreg_regno_offset instead.
3952         * function.c (fixup_var_refs_1): Fixup explicit XEXP into a SUBREG_REG.
3953         (fixup_memory_subreg): Use SUBREG_BYTE and remove byte endian
3954         correction code.
3955         (optimize_bit_field): Use SUBREG_BYTE.
3956         (purge_addressof_1): Use SUBREG_BYTE.
3957         (purge_single_hard_subreg_set): Use subreg_regno_offset function.
3958         (assign_params): Mark arguments SUBREG_PROMOTED_VAR_P if they are
3959         actually promoted by the caller and PROMOTE_FOR_CALLS_ONLY is true.
3960         * gengenrtl.c (special_rtx): Add SUBREG.
3961         * global.c (mark_reg_store): Use SUBREG_BYTE.
3962         (set_preference): Rework to use subreg_regno_offset and SUBREG_BYTE.
3963         * ifcvt (noce_emit_move_insn): Use SUBREG_BYTE.
3964         * integrate.c (copy_rtx_and_substitute): Use SUBREG_BYTE and make sure
3965         final byte offset is congruent to subreg's mode size.
3966         (subst_constants): Use SUBREG_BYTE.
3967         (mark_stores): Use subreg_regno_offset function.
3968         * jump.c (rtx_renumbered_equal_p, true_regnum): Use subreg_regno_offset
3969         function and SUBREG_BYTE.
3970         * local-alloc.c (combine_regs): Use subreg_regno_offset function.
3971         (reg_is_born): Use subreg_hard_regno.
3972         * recog.c (valid_replace_rtx_1): Use SUBREG_BYTE and remove byte
3973         endian correction code.  Don't combine subregs unless resulting
3974         offset aligns with type.  Fix subreg constant extraction for DImode.
3975         Simplify SUBREG of VOIDmode CONST_DOUBLE.
3976         (general_operand): Remove dead mode_altering_drug code.
3977         (indirect_operand): Use SUBREG_BYTE.
3978         (constrain_operands): Use subreg_regno_offset function.
3979         * reg-stack.c (get_true_reg): Use subreg_regno_offset function.
3980         * regmove.c (regmove_optimize): Use SUBREG_BYTE.
3981         (optimize_reg_copy_3): Use gen_lowpart_SUBREG.
3982         * regs.h (REG_SIZE): Allow target to override.
3983         (REGMODE_NATURAL_SIZE): New macro which target can override.
3984         * reload.c (reload_inner_reg_of_subreg): subreg_regno should be used
3985         on the entire subreg rtx.
3986         (push_reload): Use SUBREG_BYTE in comments and code.
3987         (find_dummy_reload): Use subreg_regno_offset.  Only adjust offsets
3988         for hard registers inside subregs.
3989         (operands_match_p): Use subreg_regno_offset.
3990         (find_reloads): Use SUBREG_BYTE and only advance offset for subregs
3991         containing hard regs.
3992         (find_reload_toplev): Use SUBREG_BYTE.  Remove byte endian
3993         corrections when fixing up MEM subregs.
3994         (find_reloads_address_1): Use SUBREG_BYTE, subreg_regno, and
3995         subreg_regno_offset where appropriate.
3996         (find_reloads_subreg_address): Use SUBREG_BYTE.  Remove
3997         byte endian corrections when fixing up MEM subregs.
3998         (subst_reloads): When combining two subregs, make sure final
3999         offset is congruent to subreg's mode size.
4000         (find_replacement): Use SUBREG_BYTE and subreg_regno_offset.
4001         (refers_to_regno_for_reload_p): Use subreg_regno.
4002         (reg_overlap_mentioned_for_reload_p): Use subreg_regno_offset.
4003         * reload1.c (eliminate_regs) Use SUBREG_BYTE. Remove byte endian
4004         correction code for memory subreg fixups.
4005         (forget_old_reload_1): Use subreg_regno_offset.
4006         (choose_reload_regs): Use subreg_regno.
4007         (emit_input_reload_insns): Use SUBREG_BYTE.
4008         (reload_combine_note_store): Use subreg_regno_offset.
4009         (move2add_note_store): Use subreg_regno_offset.
4010         * resource.c (update_live_status, mark_referenced_resources): Use
4011         subreg_regno function.
4012         (mark_set_resources): Use subreg_regno function.
4013         * rtl.h (SUBREG_WORD): Rename to SUBREG_BYTE.
4014         (subreg_regno_offset, subreg_regno): Define prototypes.
4015         (subreg_hard_regno, constant_subword, gen_rtx_SUBREG): Newi functions.
4016         (gen_lowpart_SUBREG): Add prototype.
4017         * rtl.texi (subreg): Update to reflect new byte offset representation.
4018         Add mentioning of the effect that BYTES_BIG_ENDIAN has on subregs now.
4019         * rtlanal.c (refers_to_regno_p): Use subreg_regno.
4020         (reg_overlap_mentioned_p): Use subreg_regno.
4021         (replace_regs); Make sure final offset of combined subreg is
4022         congruent to size of subreg's mode.
4023         (subreg_regno_offset): New function.
4024         (subreg_regno): New function.
4025         * sched-vis.c (print_value): Change SUBREG_WORD to SUBREG_BYTE.
4026         * sdbout.c (sdbout_symbol): Compute offset using alter_subreg.
4027         * stmt.c (expand_anon_union_decl): Use gen_lowpart_SUBREG.
4028         * tm.texi (ALTER_HARD_SUBREG): Remove, it is now dead.
4029         (SUBREG_REGNO_OFFSET): Describe SUBREG_REGNO_OFFSET overrides.
4030         * config/a29k/a29k.c (gpc_reg_operand): Use subreg_regno.
4031         (a29k_get_reloaded_address): Use SUBREG_BYTE.
4032         (print_operand): Use SUBREG_BYTE.
4033         * config/alpha/alpha.c (print_operand_address): Use SUBREG_BYTE.
4034         * config/arm/arm.c (arm_reload_in_hi): Use SUBREG_BYTE.
4035         (arm_reload_out_hi): Use SUBREG_BYTE.
4036         * config/d30v/d30v.c (d30v_split_double): Use subreg_regno_offset
4037         instead of SUBREG_WORD.
4038         (d30v_print_operand_memory_reference): Use subreg_regno_offset.
4039         * config/dsp16xx/dsp16xx.md (extendqihi2, zero_extendqihi2): Fix
4040         SUBREG creation to use byte offset.
4041         * config/h8300/h8300.md (Unnamed HImode zero extraction and 16bit
4042         inverted load insns): Fix explicit rtl subregs to use byte
4043         offsets.
4044         * config/i370/i370.md (cmpstrsi, movstrsi, mulsi3, divsi3,
4045         udivsi3, umodsi3): Generate SUBREGs with byte offsets.
4046         * config/i860/i860.c (single_insn_src_p): Use SUBREG_BYTE.
4047         * config/i860/i860.md (mulsi3_big): Fixup explicit SUBREGs in rtl
4048         to use byte offsets.
4049         (unnamed fmlow.dd insn): Fixup SUBREGS to use byte offsets.
4050         * config/i960/i960.md (extendhisi2): Generate SUBREGs with byte
4051         offsets, also make sure it is congruent to SUBREG's mode size.
4052         (extendqisi2, extendqihi2, zero_extendhisi2, zero_extendqisi2,
4053         unnamed ldob insn): Generate SUBREGs with byte offset.
4054         (zero_extendqihi2): SUBREG's are byte offsets.
4055         * config/m68hc11/m68hc11.c (m68hc11_gen_lowpart): Use SUBREG_BYTE.
4056         (m68hc11_gen_highpart): Use SUBREG_BYTE.
4057         * config/m68k/m68k.md (zero_extendhisi2, zero_extendqihi2,
4058         zero-extendqisi2): Generate SUBREGs with byte offset.
4059         (umulsidi3, mulsidi3, subreghi1ashrdi_const32,
4060         subregsi1ashrdi_const32, subreg1lshrdi_const32): Fixup explicit
4061         subregs in rtl to use byte offsets.
4062         * config/m88k/m88k.md (extendsidi2): fixup subregs to use byte offset.
4063         * config/mips/mips.c (mips_move_1word): Use subreg_regno_offset.
4064         (mips_move_2words): Use subreg_regno_offset.
4065         (mips_secondary_reload_class): Use subreg_regno_offset.
4066         * config/mips/mips.md (DImode plus, minus, move, and logical op
4067         splits): Fixup explicit subregs in rtl to use byte offsets.
4068         * config/mn10200/mn10200.c (print_operand): Use subreg_regno function.
4069         * config/mn10300/mn10300.c (print_operand): Use subreg_regno function.
4070         * config/ns32k/ns32k.md (udivmoddisi4): Fix explicit subregs in
4071         rtl to use byte offsets.
4072         * config/pa/pa.c (emit_move_sequence): Use SUBREG_BYTE.
4073         * config/pa/pa.md (floatunssisf2, floatunssidf2, mulsi3): fix explicit
4074         subregs to use byte offsets.
4075         * config/pdp11/pdp11.md (zero_extendhisi2, modhi3, modhi3+1):
4076         Fixup explicit subregs in rtl to use byte offsets.
4077         * config/romp/romp.c (memory_offset_in_range_p): Use SUBREG_BYTE
4078         and remove byte endian correction code.
4079         * config/sh/sh.c (output_movedouble): Use subreg_regno.
4080         (gen_ashift_hi): Use SUBREG_BYTE.
4081         (regs_used): Use subreg_regno_offset.
4082         (machine_dependent_reorg): Use subreg_regno_offset.
4083         * config/sh/sh.h (INDEX_REGISTER_RTX_P): Use SUBREG_BYTE.
4084         * config/sh/sh.md (DImode and DFmode move splits): Use subreg_regno.
4085         (movdf_i4): Subregs are byte offsets now.
4086         * config/sparc/sparc.c (ultra_find_type): Use SUBREG_BYTE.
4087         * config/sparc/sparc.h (ALTER_HARD_SUBREG): Removed.
4088         (REGMODE_NATURAL_SIZE): Override.
4089         (REG_SIZE): For SUBREG check float mode on SUBREG_REG's mode.
4090         * config/sparc/sparc.md (TFmode move splits): Generate SUBREGs
4091         with byte offsets.
4092         (zero_extendhisi2, zero_extendqidi2_insn, extendhisi2,
4093         extendqihi2, sign_extendqihi2_insn, sign_extendqisi2_insn,
4094         extendqidi2): Generate SUBREGs with byte offsets, also make sure
4095         it is congruent to SUBREG's mode size.
4096         (smulsi3_highpart_v8plus): Fix explicit subregs in rtl to use byte
4097         offsets.
4098         (cmp_siqi_trunc, cmp_siqi_trunc_set, cmp_diqi_trunc,
4099         cmp_diqi_trunc_set, lshrdi3_v8plus+1, lshrdi3_v8plus+2,
4100         lshrdi3_v8plus+3, lshrdi3_v8plus+4): Use proper
4101         SUBREG_BYTE offset for non-paradoxical subregs in patterns.
4102         * config/v850/v850.c (print_operand, output_move_double): Use
4103         subreg_regno function.
4104
4105 2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
4106
4107         * configure.in (target_subdir): Use target_alias, not target.
4108         * configure: Rebuilt.
4109
4110         * config/sh/crtn.asm (init, fini): Restore r15 from r14, not the
4111         other way round.
4112         * config/sh/crti.asm: Fix typos in comments.
4113
4114 2001-04-03  Alan Modra  <alan@linuxcare.com.au>
4115
4116         * pa.h: Revise comments for TARGET_NO_SPACE_REGS and
4117         TARGET_FAST_INDIRECT_CALLS.
4118         * pa.c (override_options): TARGET_NO_SPACE_REGS is now OK with
4119         -fPIC.  Don't warn.
4120         (return_addr_rtx): Short circuit export stub matching when
4121         TARGET_NO_SPACE_REGS.
4122         (output_millicode_call): For out of range calls, make -fPIC
4123         take precedence, then TARGET_PORTABLE_RUNTIME, then ble.  Don't
4124         return before delay slot checks when TARGET_PORTABLE_RUNTIME.
4125         * pa.md: Modify length attr calculation of all millicode insns to
4126         match above.
4127
4128 2001-04-02  Geoffrey Keating  <geoffk@redhat.com>
4129
4130         * configure.in (gcc_cv_as_leb128): Correct name of cache variable.
4131         Require at least 2.11 in the version test.  Specifically check
4132         for and reject GAS version 2.10.90.
4133         * configure: regenerate.
4134
4135 2001-04-03  Alan Modra  <alan@linuxcare.com.au>
4136
4137         * pa.c (override_options): Remove PIC profiling warning.
4138         (hp_profile_labelno): Delete.
4139         (hp_profile_label_rtx): Delete.
4140         (hp_profile_label_name): Delete.
4141         (pa_add_gc_roots): Remove reference to hp_profile_label_rtx.
4142         (output_function_prologue): Remove profiling code and all tests on
4143         profile_flag.  Move store of PIC_OFFSET_TABLE_REGNUM now that
4144         merge_sp_adjust_with_store can work for PIC and profiling.
4145         (hppa_expand_epilogue): Remove profile_flag test.
4146         (hppa_can_use_return_insn_p): Likewise.
4147         (hppa_init_pic_save): Emit before tail_recursion_reentry, and
4148         cater for PROFILE_HOOK.
4149         (hppa_profile_hook): New function.
4150         * pa.h (FUNCTION_PROFILER): Now does nothing.
4151         (PROFILE_HOOK): Define.
4152         (hppa_profile_hook): Declare.
4153         (PROFILE_BEFORE_PROLOGUE): Delete.
4154         (ASM_OUTPUT_REG_PUSH): Delete.
4155         (ASM_OUTPUT_REG_POP): Delete.
4156         * pa.md (call_profiler): Turn it into a call insn, and don't `use'
4157         r24.  Accept function name operand, and use this and a locally
4158         generated label to calculate pc-rel offset to func start.
4159
4160 2001-04-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4161
4162         * $(HOST_PREFIX_1)errors.o, $(HOST_PREFIX_1)ggc-none.o,
4163         ggc-common.o, ggc-simple.o, ggc-page.o, ggc-none.o: Depend on
4164         $(SYSTEM_H).
4165
4166 2001-04-03  Alan Modra  <alan@linuxcare.com.au>
4167
4168         * dwarf2out.c (dwarf2out_frame_debug_expr): Move errant HIGH and
4169         LO_SUM cases to where they belong.
4170
4171 2001-04-02  Richard Henderson  <rth@redhat.com>
4172
4173         * except.h (lang_eh_type_covers): Mark extern.
4174         (lang_eh_runtime_type): Likewise.
4175
4176 2001-04-02  Zack Weinberg  <zackw@stanford.edu>
4177
4178         * genattr.c, gencheck.c, gencodes.c, genconfig.c, genflags.c,
4179         gengenrtl.c:  Wrap generated header in multiple-include guard.
4180         Improve error checking.
4181
4182 2001-04-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4183
4184         * configure.in: Don't check for putenv.
4185         * configure: Regenerate.
4186         * gcc.c (putenv): Don't define.
4187         * vax/xm-vms.h: Handle putenv.
4188
4189 2001-04-02  Jakub Jelinek  <jakub@redhat.com>
4190
4191         * ifcvt.c (noce_emit_move_insn): New.
4192         (noce_try_store_flag, noce_try_store_flag_constants,
4193         noce_try_store_flag_inc, noce_try_store_flag_mask,
4194         noce_try_cmove, noce_try_cmove_arith, noce_try_minmax,
4195         noce_try_abs): Use it.
4196         (noce_process_if_block): Likewise.
4197         For STRICT_LOW_PART, take mode from its SUBREG.
4198
4199 2001-04-02  Jakub Jelinek  <jakub@redhat.com>
4200
4201         * fold-const.c (fold): Before optimizing unsigned comparison with
4202         0x7fffffffU, make sure arg0 is integral type.
4203
4204 2001-04-02  Joseph S. Myers  <jsm28@cam.ac.uk>
4205
4206         * c-tree.texi: Document representation of wide strings.
4207
4208 2001-04-01  Richard Henderson  <rth@redhat.com>
4209
4210         * except.h (expand_builtin_dwarf_fp_regnum): Declare.
4211
4212 Sun Apr  1 11:49:05 CEST 2001  Jan Hubicka  <jH@suse.cz>
4213
4214         * i386.md: remove obsoleted comments.
4215         (adddi_?): Rename to adddi_?_rex64; disable for 32bit.
4216         (x86_movsicc_0_m1_rex64): Rename to x86_movdicc_0_m1_rex64;
4217         fix output template.
4218
4219 2001-03-31  Marek Michalkiewicz  <marekm@linux.org.pl>
4220
4221         * config/avr/libgcc.S (__mulhi3): Optimize previous change.
4222
4223 2001-03-30  Bernd Schmidt  <bernds@redhat.com>
4224
4225         * loop.c (load_mems): When generating a load from a pseudo, update
4226         REGNO_LAST_UID.
4227
4228 Fri Mar 30 17:36:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
4229
4230         * i386.c (ix86_split_long_move): Use change address to compensate
4231         stack pointer change in push instruction.
4232
4233 Fri Mar 30 00:31:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
4234
4235         * i386.md (sse_movdfcc_eq): Fix constraint (sse_mov?fcc splitter): Use operands_match_p
4236         instead of rtx_equal_p; fix the output template.
4237
4238 Fri Mar 30 00:21:41 CEST 2001  Jan Hubicka  <jh@suse.cz>
4239
4240         * i386.c (ix86_expand_setcc): Support 64bit.
4241         (ix86_expand_int_movcc): Likewise.
4242         * i386.md (movdicc_rex64, x86_movsicc_0_m1_rex64, movdicc_c_rex64):
4243         New patterns.
4244
4245         * i386.md (allocate_stack_worker): Turn to expander.
4246         (allocate_stack_worker_1, allocate_stack_worker_rex64): New insns.
4247
4248         * i386.c (print_reg): Do not print x86_64 style regs on IA-32
4249
4250 2001-03-29  Richard Henderson  <rth@redhat.com>
4251
4252         * libgcc2.c [L__main]: Include unwind-dw2-fde.h instead of frame.h.
4253
4254 2001-03-28  Matthew Hiller  <hiller@redhat.com>
4255
4256         * config/mn10300/mn10300.md (cmpsi): Fix first alternative's
4257         output template.
4258
4259         * MAINTAINERS: Added self.
4260
4261 2001-03-28  Richard Henderson  <rth@redhat.com>
4262
4263         * Makefile.in (cs-tconfig.h): Depend on CONFIG_H, not GCONFIG_H.
4264         Use ALL_CFLAGS not HOST_CFLAGS for sjlj detection.
4265
4266 2001-03-28  Jim Wilson  <wilson@redhat.com>
4267
4268         * config/ia64/ia64.md (movtf): Change DImode to TFmode in calls to
4269         operand_subword.
4270
4271 2001-03-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4272
4273         * toplev.h (fatal_error): Add ATTRIBUTE_NORETURN.
4274
4275         * tradcif.y (yyerror): Likewise.  Add format specifier in call to
4276         `error'.
4277
4278         * tradcpp.c (macroexpand): Likewise for call to `error_with_line'.
4279
4280 2001-03-28  DJ Delorie  <dj@redhat.com>
4281
4282         * Makefile.in (stage1_build): Revert CFLAGS patch.
4283
4284 2001-03-28  Marek Michalkiewicz  <marekm@linux.org.pl>
4285
4286         * config/avr/libgcc.S (__mulhi3): Correct tests to exit the loop
4287         when multiplier or multiplicand is zero.
4288
4289 2001-03-28  Bernd Schmidt  <bernds@redhat.com>
4290
4291         * cselib.c (hash_rtx): Don't do tail recursion elimination by hand.
4292
4293         * config/ia64/ia64.c (update_set_flags): New function, broken out of
4294         rtx_needs_barrier.
4295         (set_src_needs_barrier): Likewise.
4296         (rtx_needs_barrier): For SET case, use these two functions.  Rework
4297         PARALLEL case to handle all inputs before all outputs.
4298         (emit_insn_group_barriers): Call init_insn_group_barriers only if we
4299         saw a label and no stop bit since then.
4300         (maybe_rotate, process_epilogue): Add prototypes.
4301
4302 2001-03-28  Richard Henderson  <rth@redhat.com>
4303
4304         * config/rs6000/rs6000.h (EPILOGUE_USES): Use TARGET_AIX,
4305         not TARGET_TOC for special toc restore handling.
4306         * config/rs6000/rs6000.md (eh_return): Likewise.
4307
4308 2001-03-28  Richard Henderson  <rth@redhat.com>
4309
4310         * config/sparc/sparc.c (eligible_for_epilogue_delay): False if
4311         current_function_calls_eh_return.
4312         (output_function_epilogue): Handle eh_return.
4313         * config/sparc/sparc.h (DOESNT_NEED_UNWINDER): Remove.
4314         (EH_RETURN_DATA_REGNO): New.
4315         (EH_RETURN_STACKADJ_RTX): New.
4316         (EH_RETURN_HANDLER_RTX): New.
4317         * config/sparc/sparc.md (call/short branch peepholes): Check
4318         can_throw_internal instead of in_same_eh_region.
4319
4320         * config/rs6000/rs6000.c (rs6000_stack_info): Allocate space
4321         for eh_return data registers.
4322         (rs6000_emit_prologue): Save eh_return data registers.
4323         (rs6000_emit_epilogue): Force inline restores if eh_return.
4324         Restore eh_return data registers.  Mind EH_RETURN_STACKADJ_RTX.
4325         * config/rs6000/rs6000.h (rs6000_stack_t): Add ehrd_offset.
4326         (EH_RETURN_DATA_REGNO, EH_RETURN_STACKADJ_RTX): New.
4327         (EPILOGUE_USES): True for TOC_REGISTER if calls_eh_return and
4328         the target uses one.
4329         * config/rs6000/rs6000.md (eh_epilogue, eh_reg_restore): Remove.
4330         (return_eh_si, return_eh_di): Remove.
4331         (eh_return): New, from corpse of eh_epilogue.
4332         (eh_set_lr_si, eh_set_lr_di): New.
4333
4334         * config/i386/i386.c (general_no_elim_operand): Disallow virtual regs.
4335         (ix86_save_reg): If maybe_eh_return, true for EH_RETURN_DATA_REGNOs.
4336         True for pic register if current_function_calls_eh_return.
4337         (ix86_expand_epilogue): Change "emit_return" argument into "style".
4338         Handle eh_return requirements.
4339         * config/i386/i386.h (EH_RETURN_DATA_REGNO): New.
4340         (EH_RETURN_STACKADJ_RTX): New.
4341         * config/i386/i386.md (exception_receiver): Remove.
4342         (eh_return, eh_return_1): New.
4343         * config/i386/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.
4344
4345         * config/alpha/alpha.c (alpha_sa_mask): Add EH_RETURN_DATA_REGNOs.
4346         (alpha_mark_machine_status): No eh_epilogue_sp_ofs ...
4347         (alpha_expand_epilogue): ... use EH_RETURN_STACKADJ_RTX instead.
4348         * config/alpha/alpha.h (machine_function): Remove eh_epilogue_sp_ofs.
4349         (EH_RETURN_DATA_REGNO): New.
4350         (EH_RETURN_STACKADJ_RTX, EH_RETURN_HANDLER_RTX): New.
4351         * config/alpha/alpha.md (eh_epilogue): Remove.
4352         (exception_receiver): Use $26 for ldgp input.
4353         * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.
4354
4355 2001-03-28  Richard Henderson  <rth@redhat.com>
4356
4357         * except.c: Rewrite entirely for IA-64 ABI exception handling.
4358         * except.h: Likewise.
4359
4360         * Makefile.in (LIB2ADDEH): Mention unwind-dw2*.c
4361         (LIB2ADDEHDEP): New.
4362         (LIB2FUNCS_EH): Remove.
4363         (LIB2ADD): Remove LIB2ADDEH.
4364         (libgcc.mk): Pass LIB2ADDEHDEP, don't pass LIB2FUNCS_EH.
4365         (LIBGCC_DEPS): Use LIB2ADDEHDEP.
4366         (crt{begin,end}[S].o): Likewise.
4367         (except.o): Update includes.
4368         * mklibgcc.in: Remove LIB2FUNCS_EH, add LIB2ADDEH, LIB2ADDEHDEP.
4369         (libgcc2_c_dep): Use LIB2ADDEHDEP.
4370
4371         * basic-block.h (struct basic_block_def): Remove eh_beg, eh_end.
4372         * bb-reorder.c (reorder_basic_blocks): Don't disable for EH.
4373         * builtins.def (BUILT_IN_EH_RETURN_DATA_REGNO): New.
4374         * builtins.c (expand_builtin): Implement it.
4375         [BUILT_IN_EH_RETURN]: Update for nr arguments change.
4376         * c-common.c (c_common_nodes_and_builtins): Declare it.
4377         * c-decl.c (init_decl_processing): Update __builtin_eh_return.
4378         * calls.c (libfunc_nothrow): Remove.
4379         (emit_library_call_value_1): Don't call it.
4380         * crtstuff.c: Include unwind-dw2-fde.h instead of frame.h.
4381         * dwarf2.h (dwarf_call_frame_info): Add dwarf2.1 elements.
4382         (DW_EH_PE_*): New defines for pointer encoding in .eh_frame.
4383         * dwarf2out.c (struct dw_fde_struct): Add uses_eh_lsda, funcdef_number.
4384         (current_funcdef_number): Globalize.
4385         (output_call_frame_info): Emit frame data if an lsda is needed.
4386         Generate augmentation for personality routine.  Don't play with
4387         difference symbols.
4388         (dwarf2out_begin_prologue): Record funcdef_number.
4389         * dwarf2out.h (current_funcdef_number): Declare.
4390         * expr.c (expand_expr): Update for except.h name changes.
4391         Remove POPDCC_EXPR, POPDHC_EXPR.  Add EXC_PTR_EXPR.
4392         * expr.h (LTI_throw, LTI_rethrow): Remove.
4393         (LTI_sjthrow, LTI_sjpopnthrow, LTI_terminate): Remove.
4394         (LTI_eh_rtime_match): Remove.
4395         (LTI_unwind_resume, LTI_eh_personality): Add.
4396         (LTI_unwind_sjlj_register, LTI_unwind_sjlj_unregister): Add.
4397         * final.c (final): Don't call check_exception_handler_labels,
4398         init_insn_eh_region, or free_insn_eh_region.
4399         (final_scan_insn): Always emit debug labels for
4400         NOTE_INSN_EH_REGION notes.
4401         * flags.h (flag_new_exceptions): Remove.
4402         * flow.c (entry_exit_blocks): Remove eh_beg, eh_end.
4403         (record_active_eh_regions): Remove.
4404         (count_basic_blocks): Check all instructions for REG_EH_REGION.
4405         Use can_throw_internal.
4406         (find_basic_blocks_1): Likewise.
4407         (move_stray_eh_region_notes): Remove.
4408         (find_label_refs): No eh_return_stub_label.
4409         (make_edges): Likewise.  No init/free_eh_nesting_info.  Handle RESX.
4410         (make_eh_edge): No eh_nest_info.  Update for reachable_handlers
4411         changes.
4412         (delete_unreachable_blocks): Don't track deleted handlers.
4413         (flow_delete_block): Use maybe_remove_eh_handler.
4414         (delete_eh_regions): Remove.
4415         (merge_blocks): Don't check for eh region match.
4416         (mark_regs_live_at_end): Handle EH_RETURN_DATA_REGNO,
4417         EH_RETURN_STACKADJ_RTX, EH_RETURN_HANDLER_RTX.
4418         (init_propagate_block_info): Disable dead frame store optimization
4419         when current_function_calls_eh_return.
4420         (dump_bb): Don't print eh_beg, eh_end.
4421         * function.c (fixup_var_refs): No catch_clauses.
4422         (expand_function_end): Likewise.  Call expand_eh_return before
4423         the return register use.  Call sjlj_emit_function_exit_after.
4424         (expand_function_start): Force pseudo DECL_RESULT if sjlj exceptions.
4425         * function.h (struct function): Add calls_eh_return, uses_eh_lsda.
4426         * ifcvt.c (dead_or_predicable): Remove eh region check.
4427         * integrate.c (function_cannot_inline_p): Disallow __builtin_eh_return.
4428         Don't check for EH vs parameters.
4429         (expand_inline_function_eh_labelmap, eif_eh_map): Remove.
4430         (expand_inline_function): Call duplicate_eh_regions.
4431         (copy_insn_list): Don't handle NOTE_INSN_EH_REGION_BEG/END.
4432         (copy_insn_notes): Remap REG_EH_REGION notes.
4433         (copy_rtx_and_substitute): Remove SYMBOL_REF_NEED_ADJUST check.
4434         * integrate.h (struct inline_remap): Add local_return_label.
4435         * jump.c (jump_optimize_1): Don't init/free_insn_eh_region, nor
4436         check_exception_handler_labels, nor exception_optimize.
4437         (find_cross_jump): No EH region check.
4438         * optabs.c (init_optabs): Update for changed eh libfuncs.
4439         * rtl.def (RESX): New.
4440         * rtl.h (SYMBOL_REF_NEED_ADJUST): Remove.
4441         * stmt.c (expand_decl_cleanup): Simplify using_eh_for_cleanups_p
4442         checks.  Update for except.h name changes.
4443         (expand_cleanups): Likewise.
4444         (expand_dcc_cleanup, expand_dhc_cleanup): Remove.
4445         * toplev.c (dump_file_index, dump_file): Add .02.eh dump.
4446         (compile_file): Call init_eh before init_optabs.  Don't
4447         output_exception_table here.
4448         (rest_of_compilation): Call convert_from_eh_region_ranges,
4449         convert_to_eh_region_ranges, output_function_exception_table.
4450         Don't emit_eh_context.
4451         * tree.def (POPDHC_EXPR, POPDCC_EXPR): Remove.
4452         (EXC_PTR_EXPR): New.
4453
4454         * md.texi (eh_epilogue): Remove.
4455         (eh_return): Document.
4456         * tm.texi (EH_RETURN_DATA_REGNO): Document.
4457         (EH_RETURN_STACKADJ_RTX, EH_RETURN_HANDLER_RTX): Document.
4458
4459         * eh-common.h: Remove file.
4460         * frame-dwarf2.c, frame.c, frame.h: Remove files.
4461         * libgcc2.c (L_eh): Remove.
4462
4463         * unwind-dw2-fde.c: New file, largely copied from frame.c.
4464         * unwind-dw2-fde.h: New file.
4465         * unwind-dw2.c: New file, largely cribbed from frame-dwarf2.c.
4466         * unwind-sjlj.c, unwind.h, unwind.inc: New files.
4467         * libgcc-std.ver: Update for eh symbols.
4468
4469 2001-03-27  Richard Henderson  <rth@redhat.com>
4470
4471         * regmove.c (perhaps_ends_bb_p): Use can_throw_internal to
4472         reduce false positives.
4473         (regmove_optimize): Disable if flag_non_call_exceptions.
4474
4475         * stmt.c (expand_return): Remove always true predicate.
4476         (expand_decl_cleanup_no_eh): Remove dead code.
4477
4478         * sched-deps.c (sched_analyze_insn): Consolidate scheduling
4479         barrier code.  Add a scheduling barrier if a non-call insn
4480         can throw internally.
4481
4482         * rtlanal.c (rtx_addr_can_trap_p): Virtual registers cannot trap.
4483         Auto-inc addresses trap only if their base register does.
4484
4485         * except.c (can_throw_internal): Rename from can_throw.
4486         * except.h, resource.c: Update references.
4487
4488         * integrate.c (copy_insn_list): Use returnjump_p.
4489         (copy_insn_notes): Recurse for CALL_PLACEHOLDER.
4490
4491         * function.h (struct function): Move all boolean valued fields
4492         to single bit fields at the end of the struct.
4493
4494         * bb-reorder.c, dwarf2out.c, except.c, except.h, flow.c,
4495         jump.c, toplev.c:
4496         Rename asynchronous_exceptions to flag_non_call_exceptions.
4497
4498         * gthr-single.h (UNUSED): New.  Distinguish between how C
4499         and C++ mark unused function arguments.  Use throughout.
4500
4501         * Makefile.in (cs-tconfig.h): Copy USING_SJLJ_EXCEPTIONS
4502         value to target configuration header.
4503         * configure.in (CONFIG_SJLJ_EXCEPTIONS): New.
4504         * config.in, configure: Rebuild.
4505         * except.h (USING_SJLJ_EXCEPTIONS): New.  Define based on
4506         configuration and target defines.
4507         (exceptions_via_longjmp): Remove.
4508         * dwarf2out.c, except.c, final.c, toplev.c, config/ia64/ia64.c:
4509         Use USING_SJLJ_EXCEPTIONS instead of exceptions_via_longjmp.
4510
4511         * except.h (flag_non_call_exceptions): Move ...
4512         * flags.h: ... here.
4513
4514         * combine.c (distribute_notes) [REG_EH_REGION]: If non-call
4515         exceptions, put the note on the trapping instruction.
4516
4517         * flags.h (flag_new_exceptions): Remove.
4518         * toplev.c: Don't set it.
4519         * final.c: Don't check it.
4520         * except.c: Provide stub definition.
4521
4522         * flow.c (tidy_fallthru_edges): Don't combine complex edges.
4523         (calculate_global_regs_live): Kill call-clobbered registers
4524         across exception edges.
4525         * reg-stack.c (convert_regs_1): Kill the entire target stack
4526         across non-call exception edges.
4527
4528         * flow.c (cleanup_cfg): Take no argument.
4529         * output.h, sibcall.c, toplev.c: Update all calls.
4530
4531 2001-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4532
4533         * configure.in: Don't check for bcopy.
4534         * configure, config.in: Regenerate.
4535
4536         * system.h: Don't define or prototype bcopy, instead poison it.
4537
4538 2001-03-27  Richard Henderson  <rth@redhat.com>
4539
4540         * function.c (expand_function_start): Set DECL_REGISTER on
4541         a pseudo used for DECL_RESULT.
4542
4543         * rtl.h (LCT_NORETURN): New.
4544         * calls.c (emit_library_call_value_1): Handle it.
4545
4546 2001-03-27  Stan Shebs  <shebs@apple.com>
4547
4548         * objc/objc-act.c (objc_init): Use dump_base_name.
4549         (gen_declaration): Clear the buffer arg.
4550         (gen_declaration_1): New function, body of gen_declaration.
4551         (adorn_decl): Call gen_declaration_1 instead of gen_declaration.
4552         (gen_method_decl): Ditto, plus always clear buffer arg.
4553         (error_with_ivar): Simplify.
4554         (warn_with_method): Ditto.
4555         (build_message_expr): Don't clear buffers.
4556         (dump_interface): Ditto.
4557         (objc_debug): Ditto.
4558         (build_keyword_selector): Clear the buffer by only zeroing
4559         the first element.
4560         (objc_implementation_context): Declare.
4561         (start_class): Warn about missing @end.
4562         (finish_objc): Ditto.
4563
4564 2001-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4565
4566         * reload1.c (eliminate_regs): Don't abort on MEM USEs.
4567
4568 2001-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4569
4570         * Makefile.in (SYSTEM_H): Define.
4571         Depend on $(SYSTEM_H), not system.h.
4572
4573         * objc/Make-lang.in: Depend on $(SYSTEM_H), not system.h.
4574
4575 2001-03-27  Jim Wilson  <wilson@redhat.com>
4576
4577         * final.c (final_scan_insn, case NOTE_INSN_BASIC_BLOCK): Call
4578         IA64_UNWIND_EMIT.
4579         * config/ia64/ia64.c (block_num, need_copy_state): New static vars.
4580         (process_epilogue): New static function.
4581         (process_set): Call process_epilogue instead of emitting .restore
4582         directly.
4583         (process_for_unwind_directive): Handle NOTE_INSN_BASIC_BLOCK.
4584
4585         * flow.c (struct reg_cond_life_info): New fields orig_condition
4586         and stores.
4587         (init_propagate_block_info): Set new fields.
4588         (mark_regno_cond_dead): Set and use new fields.
4589         (flush_reg_cond_reg_1): Likewise.
4590         (and_reg_cond, case AND): Check for redundant AND conditions.
4591         (mark_used_reg): Delete unnecessary clears before freeing splay trees.
4592         Set new fields.
4593
4594 2001-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
4595
4596         * cppmacro.c (stringify_arg): Null terminate strings.
4597
4598 2001-03-27  Zack Weinberg  <zackw@stanford.edu>
4599
4600         * config.gcc (m68hc11-*-*, m68hc12-*-*): Convert to new tm.h
4601         inclusion style.  xm-m68hc11.h no longer exists.
4602         * config/m68hc11/xm-m68hc11.h: Delete file.
4603         * config/m68hc11/m68hc12.h: Convert to new tm.h inclusion style.
4604
4605         * config/m68hc11/m68hc11.h: Convert to new tm.h inclusion style.
4606         Don't define GCC_VERSION, N_, or PARAMS; don't include
4607         gansidecl.h or stdio.h.  Define inhibit_libc here.
4608         Make code conditioned on #if GCC_VERSION > 2095 unconditional.
4609         Delete code conditioned on #if GCC_VERSION == 2095.
4610
4611         * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c:
4612         Make code conditioned on #if GCC_VERSION > 2095 unconditional.
4613         Delete code conditioned on #if GCC_VERSION == 2095.
4614
4615 2001-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4616
4617         * system.h: Include symcat.h.
4618         (STRINGIFY): Don't define.
4619
4620         * configure.in: Adjust comment.
4621
4622         * builtins.c: Use STRINGX, not STRINGIFY.
4623         * gencheck.c: Likewise.
4624         * gengenrtl.c: Likewise.
4625         * protoize.c: Likewise.
4626
4627         * cpplex.c: Don't include symcat.h.
4628         * cpplib.c: Likewise.
4629
4630         * gansidecl.h (HAVE_STRINGIZE): Don't define.
4631
4632 2001-03-27  Alan Modra  <alan@linuxcare.com.au>
4633
4634         * c-typeck.c (digest_init): Fold init expression.
4635
4636 2001-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4637
4638         * sbitmap.c (sbitmap_copy): Call memcpy, not bcopy.
4639
4640 2001-03-27  Alan Modra  <alan@linuxcare.com.au>
4641
4642         * except.c (eh_regs): Save results of build_pointer_type to a temp
4643         as FUNCTION_VALUE macro may evaluate its args multiple times.
4644
4645 2001-03-26  Mark Mitchell  <mark@codesourcery.com>
4646
4647         * c-common.h (DECL_NUM_STMTS): New macro.
4648         * c-decl.c (duplicate_decls): Copy DECL_NUM_STMTS, not
4649         DECL_FRAME_SIZE.
4650         (pushdecl): Likewise.
4651         * c-semantics.c (add_stmt): Update DECL_NUM_STMTS.
4652         * integrate.c (expand_inline_function): Don't check
4653         DECL_FRAME_SIZE.
4654         * print-tree.c (print_node): Don't print it.
4655         * toplev.c (rest_of_compilation): Don't try to inline when
4656         flag_no_inline is on.
4657         * tree.h (DECL_FRAME_SIZE): Remove.
4658         (tree_decl): Adjust accordingly.
4659
4660 2001-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4661
4662         * combine.c (try_combine): Use memcpy, not bcopy.
4663
4664         * genattrtab.c (expand_units): Likewise.
4665
4666 Mon Mar 26 15:55:08 CEST 2001  Jan Hubicka  <jh@suse.cz>
4667
4668         * i386.md (push mem DI peep2): New.
4669         (mov 0, mov -1 peep2): Handle 64bit.
4670         (lea to arithmetics peep2): Handle 64bit leas.
4671         (rsp arithmetics to push/pop peep2s): New.
4672
4673         * i386.md (truncdfsf2_3, trunctfsf2_2): Change predicate to memory_operand.
4674
4675 Mon Mar 26 14:35:18 CEST 2001  Jan Hubicka  <jh@suse.cz>
4676
4677         * i386.c (struct machine_function): Add save_varrargs_registers.
4678         (ix86_save_varrargs_registers): New macro.
4679         (ix86_frame_layout): Support 64bit; support red zones and varrargs area.
4680         (ix86_expand_prologue): Likewise.
4681         (ix86_emit_epilogue_esp_adjustement): Likewise.
4682         (ix86_expand_epilogue): Likewise.
4683         * i386.md (pro_epilogue_adjust_stack): Turn to expander; support 64bit.
4684         (pro_epilogue_adjust_stack_1): New insn.
4685         (pro_epilogue_adjust_stack_rex64): Likewise.
4686         * i386.h (MASK_NO_RED_ZONE): New constant.
4687         (TARGET_RED_ZONE): New macro.
4688         (TARGET_OPTIONS): Add "red-zone" and "no-red-zone"
4689         (RED_ZONE_SIZE): New constant.
4690         (RED_ZONE_RESERVE): New constant.
4691
4692 2001-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4693
4694         * toplev.c (set_float_handler): Use memcpy, not bcopy.
4695
4696 2001-03-25  Kazu Hirata  <kazu@hxi.com>
4697
4698         * config/h8300/h8300.md (umodqi3): Output a tab instead of a
4699         space.
4700         (modqi3): Likewise.
4701         (umodhi3): Likewise.
4702         (modhi3): Likewise.
4703
4704 2001-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4705
4706         * mkconfig.sh (DEFINES): Handle entries with '='.
4707
4708         * config.gcc: Don't use i370/xm-mvs.h or ns32k/xm-pc532-min.h.
4709         Set xm_defines to MACRO=value instead.
4710
4711         * i370/xm-mvs.h: Delete.
4712
4713         * ns32k/xm-pc532-min.h: Likewise.
4714
4715 Sun Mar 25 15:01:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
4716
4717         * i386.md (ashldi3, ashrdi3, lshrdi3): Change predicates to
4718         shiftdi_operand;
4719         use ix86_expand_binary_operator
4720         (?sh??i_?): Disable for 64bit.
4721         * i386.h (PREDICATE_CODES): Add shiftdi_operand.
4722         * i386.c (shiftdi_operand): New predicate.
4723
4724         * (ashldi3_1_rex64, ashldi3_cmp_rex64, ashlsi3_1_zext, ashlsi3_cmp_zext,
4725         ashrdi3_63_rex64, ashrdi3_1_one_bit_rex64, ashrdi3_1_rex64,
4726         ashrdi3_one_bit_cmp_rex64, ashrdi3_cmp_rex64, ashrsi3_31_zext,
4727         ashrsi3_1_one_bit_zext, ashrsi3_1_zext, ashrsi3_one_bit_cmp_zext,
4728         ashrsi3_cmp_zext, lshrdi3_1_one_bit_rex64, lshrdi3_1_rex64,
4729         lshrdi3_cmp_one_bit_rex64, lshrdi3_cmp_rex64, lshrsi3_1_one_bit_zext,
4730         lshrsi3_1_zext, lshrsi3_cmp_one_bit_zext, lshrsi3_cmp_zext,
4731         rotlsi3_1_one_bit_rex64, rotldi3_1_rex64,
4732         rotlsi3_1_one_bit_zext, rotlsi3_1_zext, rotrdi3_1_one_bit_rex64,
4733         rotrdi3_1_rex64, rotrsi3_1_one_bit_zext, rotrsi3_1_zext): New patterns.
4734         (rotldi3, rotrdi3): New expanders.
4735
4736 Sun Mar 25 14:25:33 CEST 2001  Jan Hubicka  <jh@suse.cz>
4737
4738         * i386.md (movstrsi): Move offline.
4739         (movstrdi): New.
4740         (strmovdi_rex64): New.
4741         (strmov?i): Accept 64bit.
4742         (strmov?i_rex64): New.
4743         (strmov?i_rex_1): New.
4744         (strmov?i_1): Disable for 64bit.
4745         (rep_mov?i_rex64): New.
4746         (rep_mov?i): Disable for 64bit.
4747         (clrstrsi): Move offline.
4748         (strset?i_rex64): New.
4749         (strset?i: Accept 64bit.
4750         (rep_stos?i): Disable for 64bit.
4751         (rep_stos?i_rex64): New.
4752         (strset?i_rex_1): New.
4753         (strset?i_1): Disable for 64bit.
4754         (cmpstrsi): Accept 64bit.
4755         (cmpstrsi_nz_1): Rename to cmpstrqi_nz_1; Disable for 64bit.
4756         (cmpstrqi_nz_rex_1): New.
4757         (cmpstrsi_1): Rename to cmpstrqi_1; Disable for 64bit.
4758         (strlensi): Move offline.
4759         (strlendi): New.
4760         (strlenqi_1): Disable for 64bit; fix constraints.
4761         (strlenqi_rex_1): New.
4762         * i386.c (ix86_adjust_counter): New static function.
4763         (ix86_zero_extend_to_Pmode): Likewise.
4764         (ix86_expand_aligntest): Likweise.
4765         (ix86_expand_strlensi_unroll_1): Make static; update for 64bit.
4766         (ix86_expand_movstr): New global function.
4767         (ix86_expand_clrstr): New global function.
4768         (ix86_expand_strlen): New global function.
4769         * i386-protos.h (ix86_expand_movstr, ix86_expand_clrstr,
4770         ix86_expand_strlen): Declare.
4771         (ix86_expand_strlensi_unroll_1): Delete.
4772
4773 Sat Mar 24 23:15:19 CET 2001  Jan Hubicka  <jh@suse.cz>
4774
4775         * i386.md (cmpdi): Fix operand predicates.
4776         (cmpdi_ccno_1_rex64, cmpdi_minus_1_rex64, cmpdi_1_rex64,
4777          cmpdi_1_insn_rex64): New patterns.
4778         (adddi3): Turn to expander.
4779         (adddi3_1, adddi3_carry_rex64, adddi3_cc_rex64): New patterns.
4780         (addsi3_carry_zext): New pattern.
4781         (adddi_?_rex64): New patterns and splitters.
4782         (addsi_?_zext): New patterns.
4783         (subsi3_carry_zext): New pattern.
4784         (subdi_?_rex64): New patterns and splitters.
4785         (iorsi_?_zext): New patterns.
4786         (iordi_?_rex64): New patterns and splitters.
4787         (iorsi_?_zext): New patterns.
4788         (iorsi_?_zext_imm): New patterns.
4789         (xorsi_?_zext): New patterns.
4790         (xordi_?_rex64): New patterns and splitters.
4791         (xorsi_?_zext): New patterns.
4792         (negdi*): New patterns.
4793         (one_cmpldi*): Likewise.
4794         (one_cmplsi*_zext, negsi*_zext): Likewise.
4795         (testqi_ext_3_rex64): New pattern.
4796
4797 Sat Mar 24 21:13:28 CET 2001  Jan Hubicka  <jh@suse.cz>
4798
4799         * i386-protos.h (ix86_split_long_move): Return void.
4800         * i386.c (ix86_split_to_parts): Handle 64bit target.
4801         (ix86_split_long_move): Likewise.
4802         * i386.md (all calls to ix86_split_long_move): Update.
4803
4804 2001-03-23  Richard Henderson  <rth@redhat.com>
4805
4806         * config/mips/iris4.h (ASM_OUTPUT_ASCII): Rename local variables
4807         to avoid shadowing arguments.
4808
4809 2001-03-23  Jakub Jelinek  <jakub@redhat.com>
4810
4811         * varasm.c (make_decl_rtl): Don't append var_labelno discriminator
4812         to variable names where DECL_NAME is different from
4813         DECL_ASSEMBLER_NAME.
4814
4815 2001-03-23  Jim Wilson  <wilson@redhat.com>
4816
4817         * varasm.c (make_decl_rtl): Add TREE_PUBLIC check to abort test.
4818         (assemble_alias): Call make_decl_rtl.
4819
4820 Fri Mar 23 16:59:08 2001  J"orn Rennecke <amylaar@redhat.com>
4821
4822         * stor-layout.c (layout_type): Give OFFSET_TYPE a MODE_INT type.
4823
4824 2001-03-23  Bryce McKinlay  <bryce@albatross.co.nz>
4825
4826         * extend.texi: Document the "java_interface" attribute.
4827
4828 2001-03-22  Zack Weinberg  <zackw@stanford.edu>
4829
4830         * mkconfig.sh: Use a subshell with redirected stdout,
4831         instead of closing stdout and confusing commands that run
4832         afterward.  Throw away output of cmp.
4833
4834 2001-03-22  Gordon Sadler  <gbsadler1@lcisp.com>
4835
4836         * Makefile.in (stage1_build): Pass CFLAGS to stage1_build.
4837
4838 Thu Mar 22 22:15:59 CET 2001  Jan Hubicka  <jh@suse.cz>
4839
4840         * i386.md (zero_extendsidi2_32): Break out from ...
4841         (zero_extendsidi2): ... here ; turn to expander.
4842         (zero_extendsidi2_rex64): New.
4843         (extendsidi2_32): Break out from ...
4844         (extendsidi2): ... here ; turn to expander.
4845         (extendsidi2_rex64): New.
4846         (zero_extendhidi2, zero_extendqidi2, extendhidi2, extendqidi2): New.
4847         (trunc?f?f splitters): Add 64bit versions.
4848
4849 Thu Mar 22 21:41:16 CET 2001  Jan Hubicka  <jh@suse.cz>
4850
4851         * i386.md (pushsi, pushsi2_prologue): Disable.
4852         (pushsi2_rex64): New.
4853         (movabs?i_1_rex64, movabs?i_2_rex64): New.
4854         (movqi_ext_1): Disable for 64bit.
4855         (movqi_ext_1_rex64): New.
4856         (pushdi2_rex64): New pattern, peep2s and splitter.
4857         (pushdi2_prologue_rex64): New pattern.
4858         (popdi1_epilogue_rex64, popdi1, movdi_xor_rex64, movdi_or_rex64):
4859         Likewise.
4860         (movdi splitters): Disable for 64bit.
4861         (movdi_1_rex64): New pattern, peep2s and splitters.
4862         (swapdi): New pattern.
4863         (pushsf): Disable for 64bit.
4864         (pushsf_rex64): New pattern and splitter.
4865         (pushdf_nointeger): Disable for 64bit.
4866         (pushdf_integer): Handle the 64bit case.
4867         (pushtf): Likewise; update splitters.
4868
4869 2001-03-22  Richard Henderson  <rth@redhat.com>
4870
4871         * mkconfig.sh: Include insn-flags.h.
4872         * Makefile.in (CONFIG_H): Include insn-flags.h.
4873         (lots of objects): Remove insn-codes.h and insn-flags.h.
4874
4875         * alias.c, bb-reorder.c, calls.c, do-loop.c, flow.c, haifa-sched.c,
4876         integrate.c, jump.c, loop.c, predict.c, profile.c, reg-stack.c,
4877         regmove.c, reorg.c, a29k/a29k.c, alpha/alpha.c, arc/arc.c, arm/arm.c,
4878         avr/avr.c, clipper/clipper.c, convex/convex.c, d30v/d30v.c,
4879         dsp16xx/dsp16xx.c, fr30/fr30.c, h8300/h8300.c, i370/i370.c,
4880         i386/i386.c, i860/i860.c, ia64/ia64.c, m32r/m32r.c, m68hc11/m68hc11.c,
4881         m68k/m68k.c, m88k/m88k.c, mcore/mcore.c, mn10200/mn10200.c,
4882         mn10300/mn10300.c, ns32k/ns32k.c, pa/pa.c, pdp11/pdp11.c,
4883         pj/pj.c, romp/romp.c, rs6000/rs6000.c, sh/sh.c, sparc/sparc.c,
4884         v850/v850.c, vax/vax.c:
4885         Don't include insn-flags.h.
4886
4887         * diagnostic.c, expr.h, reload.c, toplev.c:
4888         Don't include insn-codes.h.
4889
4890         * builtins.c, combine.c, except.c, explow.c, expmed.c, expr.c,
4891         final.c, function.c, optabs.c, recog.c, reload1.c, stmt.c,
4892         c4x/c4x.c, i960/i960.c, mips/mips.c:
4893         Don't include insn-codes.h or insn-flags.h.
4894
4895         * genemit.c, genopinit.c, genoutput.c: Don't include insn-codes.h
4896         or insn-flags.h in the generated code.
4897         * genflags.c (gen_proto): Use "struct rtx_def *" instead of "rtx".
4898         (main): Forward declare struct rtx_def.
4899
4900 2001-03-22  Joseph S. Myers  <jsm28@cam.ac.uk>
4901
4902         * invoke.texi (-ffast-math): Remove duplicate line about
4903         __FAST_MATH__.
4904
4905         * gcc.texi: Remove more obsolete documentation of bugs and
4906         installation problems.
4907
4908 2001-03-21  Kazu Hirata  <kazu@hxi.com>
4909
4910         * config/h8300/h8300.md (movsi_h8300hs): Split the 2nd alternative
4911         into two parts.
4912
4913 2001-03-20  Jason Merrill  <jason@redhat.com>
4914
4915         * collect2.c (is_ctor_dtor): Always use '_' in the file fn names,
4916         not '.' or '$'.
4917         * tree.c (FILE_FUNCTION_FORMAT): Likewise.
4918         * varasm.c (CHKR_PREFIX): Likewise.
4919
4920 Wed Mar 21 14:27:11 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4921
4922         * gcse.c (hash_scan_set): An expression is not anticipatible if it
4923         is part of a multi-SET insn.
4924
4925         * cse.c (find_comparison_args): Remove previous change.
4926         * ifcvt.c (noce_process_if_block): When moving an insn, remove any
4927         REG_EQUAL notes.
4928
4929         * config/i386/i386.md (conditional_trap): Remove warning.
4930
4931         * recog.c (push_operand): Fix error in last change that caused
4932         undefined symbol on many targets.
4933
4934         * sdbout.c: #include ggc.h.
4935         (sdbout_init): Move to end of file.
4936         Call ggc_add_tree_root for anonymous_types.
4937         (sdbout_symbol): Use DECL_NAME for local, not DECL_ASSEMBLER_NAME.
4938         (sdbout_one_type): Use DECL_NAME for field name.
4939         * Makefile.in (sdbout.o): Show includes ggc.h.
4940
4941 Wed Mar 21 20:33:26 CET 2001  Jan Hubicka  <jh@suse.cz>
4942
4943         * i386.c (override_options): Default ix86_regparm to REGPARM_MAX.
4944         (override_options): Use properlimits for preferred_stack_boundary.
4945         (ix86_valid_type_attribute_p): Disable stdcall and cdecl attributes
4946         on x86_64.
4947         (ext_register_operand): Accept DImode.
4948         (load_pic_register): Abort on 64bit.
4949         (gen_push): Use Pmode instead of SImode.
4950         (ix86_save_reg): Pic reg is never used on 64bit.
4951         (ix86_expand_prologue): Likewise.
4952         (ix86_emit_save_regs): Use Pmode instead of SImode.
4953         (legitimate_address_p): Check displacement for 64bit.
4954         (print_operand): Avoid outputting of (%rip) on 64bit.
4955         (print_operand_address): Output (%rip) where possible.
4956         (split_di): Abort on 64bit registers.
4957         (ix86_expand_branch): DImode comparison is simple for x86_64.
4958         (memory_address_length): Recognize memory addresses formed using
4959         PRE/POST modify.
4960         (ix86_data_alignment, ix86_local_alignment): Align arrays to 16 bytes
4961         for x86_64.
4962         * i386.h (TARGET_USE_SAHF): Disable for 64bit.
4963
4964 Wed Mar 21 18:51:19 CET 2001  Jan Hubicka  <jh@suse.cz>
4965
4966         * recog.c (push_operand): Recognize new format of push instructions.
4967
4968 Wed Mar 21 10:53:57 CET 2001  Jan Hubicka  <jh@suse.cz>
4969
4970         * i386.md (pushqi1): New.
4971         * i386-protos.h (x86_64_general_operand, x86_64_szext_general_operand,
4972         x86_64_nonmemory_operand, x86_64_szext_nonmemory_operand,
4973         x86_64_immediate_operand, x86_64_immediate_operand,
4974         x86_64_zext_immediate_operand): Declare.
4975         * i386.c (x86_64_general_operand, x86_64_szext_general_operand,
4976         x86_64_nonmemory_operand, x86_64_szext_nonmemory_operand,
4977         x86_64_immediate_operand, x86_64_immediate_operand,
4978         x86_64_zext_immediate_operand): define.
4979         * i386.h (PREDICATE_CODES): Add new predicates.
4980
4981 Wed Mar 21 10:25:13 CET 2001  Jan Hubicka  <jh@suse.cz>
4982
4983         * i386.md (pophi1, popqi1, pushqi1): Remove.
4984
4985         * expr.c (emit_single_push_insn): New function.
4986         (move_by_pieces): Accept NULL as destination for push instructions.
4987         (gen_push_operand): Kill.
4988         (emit_push_insn): Pass NULL when pushing; avoid updating of
4989         stack_pointer_delta.
4990         * expr.h (gen_push_operand): Kill.
4991
4992 Tue Mar 20 20:15:06 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4993
4994         * rtl.texi (COMPARE): Clarify documentation and reference section
4995         on comparisons.
4996
4997 2001-03-20  Stan Shebs  <shebs@apple.com>
4998
4999         * objc/objc-act.c (get_static_reference): Use NULL_TREE.
5000         (get_object_reference): Ditto.
5001         (error_with_ivar): Use error_with_file_and_line.
5002         (warn_with_method): Use warning_with_file_and_line.
5003
5004 2001-03-20  Tom Tromey  <tromey@redhat.com>
5005
5006         * libgcc-std.ver: Added __fixunssfsi and __fixunsdfsi.
5007
5008 2001-03-20  Mark Mitchell  <mark@codesourcery.com>
5009
5010         * tree.c (set_decl_assembler_name): Set DECL_ASSEMBLER_NAME for
5011         variables that are TREE_PUBLIC, even if not TREE_STATIC.
5012
5013 2001-03-20  DJ Delorie  <dj@redhat.com>
5014
5015         * Makefile.in (install-libgcc): Pass complete list of variables.
5016         (install-multilib): Ditto.
5017
5018 2001-03-20  David Billinghurst  <David.Billinghurst@riotinto.com>
5019
5020         * config/i386/cygwin.h: Declare ctor_section, dtor_section
5021         drectve_section, switch_to_section.
5022
5023         * winnt.c: Declare functions associated_type, gen_stdcall_suffix,
5024         i386_pe_dllexport_p, i386_pe_dllimport_p, i386_pe_mark_dllexport,
5025         i386_pe_mark_dllimport.
5026
5027 2001-03-20  David Billinghurst <David.Billinghurst@riotinto.com>
5028
5029         * config/i386/cygwin.h: Include <stdio.h> Declare and constify
5030         functions i386_pe_*.
5031
5032         * config/i386/winnt.c: Include "tm_p.h" and "toplev.h" Constify
5033         i386_pe_* functions with char * arguments.
5034
5035 2001-03-20  Alexandre Oliva  <aoliva@redhat.com>
5036
5037         * config/sh/sh.md (movsf_ie): Fix output patterns for fpul load
5038         and store.
5039         (movsi_ie): Introduce fpul store.
5040
5041 2001-03-20  Alan Modra  <alan@linuxcare.com.au>
5042
5043         * Makefile.in (OBJS): Remove hashtab.o.
5044
5045 2001-03-19  Stan Shebs  <shebs@apple.com>
5046
5047         * objc/objc-act.c (maybe_objc_method_name): Remove, never called.
5048         * c-lang.c (maybe_objc_method_name): Ditto.
5049         * c-tree.h (maybe_objc_method_name): Remove decl.
5050
5051 2001-03-19  Tom Tromey  <tromey@redhat.com>
5052
5053         * gcc.c (init_gcc_specs): Fix comment.
5054
5055 2001-03-19  Mark Mitchell  <mark@codesourcery.com>
5056
5057         Compute DECL_ASSEMBLER_NAME lazily.
5058         * tree.h (DECL_ASSEMBLER_NAME): Compute it lazily.
5059         (DECL_ASSEMBLER_NAME_SET_P): New macro.
5060         (SET_DECL_ASSEMBLER_NAME): Likewise.
5061         (COPY_DECL_ASSEMBLER_NAME): Likewise.
5062         (set_decl_assembler_name): Declare.
5063         (lang_set_decl_assembler_name): Likewise.
5064         * tree.c (lang_set_decl_assembler_name): New variab.e
5065         (set_decl_assembler_name): New function.
5066         (init_obstacks): Set lang_set_decl_assembler_name.
5067         (build_decl): Don't set DECL_ASSEMBLER_NAME.
5068         * c-decl.c (duplicate_decls): Use SET_DECL_ASSEMBLER_NAME,
5069         COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
5070         where it's not necessary.
5071         (builtin_function): Likewise.
5072         (finish_decl): Likewise.
5073         * dbxout.c (dbxout_type_methods): Likewise.
5074         * ggc-common.c (ggc_mark_trees): Likewise.
5075         * profile.c (output_func_start_profiler): Likewise.
5076         * varasm.c (make_decl_rtl): Likewise.
5077
5078         * cse.c (find_comparison_args): Update documentation.  Fix
5079         mishandling of COMPARE operations.
5080
5081         * tree.def (ABS_EXPR): Add documentation.
5082         * fold-const.c (fold): Improve folding of ABS_EXPRs.
5083
5084 2001-03-19  Zack Weinberg  <zackw@stanford.edu>
5085
5086         * Makefile.in (hash.o): Depend on $(GCONFIG_H), not $(CONFIG_H).
5087
5088 2001-03-19  Jakub Jelinek  <jakub@redhat.com>
5089
5090         * crtstuff.c (init_dummy): Use CRT_END_INIT_DUMMY if defined.
5091         Remove ia32 linux PIC kludge and move it...
5092         * config/i386/linux.h (CRT_END_INIT_DUMMY): ...here.
5093
5094 Mon Mar 19 18:53:54 CET 2001  Jan Hubicka  <jh@suse.cz>
5095
5096         * i386.md (absdf2 expander): Fix 64bit case.
5097
5098 2001-03-19  Brad Lucier  <lucier@math.purdue.edu>
5099
5100         * Makefile.in: Have splay-tree.o depend on $(GCONFIG_H).
5101
5102 2001-03-16  Andrew Haley  <aph@cambridge.redhat.com>
5103
5104         * config/ia64/libgcc-ia64.ver: Add __ia64_backtrace.
5105
5106 2001-03-19  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5107
5108         * README.X11: Remove obsolete file.
5109
5110 2001-03-18  Anthony Green  <green@redhat.com>
5111
5112         * config/pj/pj.h: Remove some trailing commas.
5113         (ASM_SPEC): Use -EB and -EL, not -mb and -ml.
5114
5115 2001-03-18  Richard Henderson  <rth@redhat.com>
5116
5117         * defaults.h (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Move from ...
5118         * calls.c: ... here.
5119         * combine.c, expr.c, final.c, function.c toplev.c: Don't provide
5120         defaults for them here.
5121
5122 2001-03-17  Anthony Green  <green@redhat.com>
5123
5124         * config/pj/lib1funcs.S: Fix broken comment.
5125         * config/pj/pj.h (LOCAL_LABEL_PREFIX): Prefix internal
5126         labels with '.'.
5127
5128 2001-03-18  Joseph S. Myers  <jsm28@cam.ac.uk>
5129
5130         * gcc.texi: Remove obsolete information relating to build and
5131         installation problems with enquire or the Pyramid C compiler.
5132
5133 2001-03-17  Richard Henderson  <rth@redhat.com>
5134
5135         * dwarf2out.c (queue_reg_save): New.
5136         (flush_queued_reg_saves, clobbers_queued_reg_save): New.
5137         (dwarf2out_frame_debug_expr): Call queue_reg_save instead of
5138         dwarf2out_reg_save.
5139         (dwarf2out_frame_debug): Call flush_queued_reg_saves when needed.
5140         (cfa, cfa_store, cfa_temp): Make static.
5141         * final.c (final_scan_insn): Always call dwarf2out_frame_debug.
5142
5143 2001-03-17  Richard Henderson  <rth@redhat.com>
5144
5145         * integrate.h (struct inline_remap): Add local_return_label.
5146         * integrate.c (expand_inline_function): Initialize it and emit
5147         it after copy_insn_notes.
5148         (copy_insn_list): Don't store local_return_label here.
5149         (copy_insn_notes): New function split out from copy_insn_list.
5150
5151 2001-03-17  Richard Henderson  <rth@redhat.com>
5152
5153         * dwarf2out.c (lookup_filename): Emit .file if the assembler
5154         is generating .debug_line.
5155         (dwarf2out_init): Add main_input_filename to the file table first.
5156         * configure.in (as_dwarf2_debug_line): Test with file number 1
5157         instead of file number 0.
5158
5159 Sat Mar 17 11:52:34 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5160
5161         * combine.c (undobuf): Remove field previous_undos; all refs deleted.
5162         (gen_rtx_combine): Deleted; all references changed as appropriate.
5163         (gen_unary): Deleted; all refs changed to call simplify_gen_unary.
5164
5165         * print-tree.c (print_node): Print DECL_NONADDRESSABLE_P.
5166
5167 2001-03-17  David Billinghurst  <David.Billinghurst@riotinto.com>
5168
5169         * config/i386/xm-cygwin.h: Include <sys/cygwin.h.  Remove unused
5170         variable.
5171
5172 2001-03-16  Jim Wilson  <wilson@redhat.com>
5173
5174         * config/ia64/ia64.c (ia64_compute_frame_size): If reg_fp is zero,
5175         then set it to LOC_REG (79) instead of aborting.
5176
5177 2001-03-16  Phil Edwards  <pme@sources.redhat.com>
5178
5179         * gccbug.in:  Remove high priority.
5180
5181 2001-03-16  Richard Henerson  <rth@redhat.com>
5182
5183         * aclocal.m4 (gcc_AC_EXAMINE_OBJECT): Substitute leading od
5184         output with a space instead of deleting it.
5185         * configure: Regenerate.
5186
5187 2001-03-16  Zack Weinberg  <zackw@stanford.edu>
5188
5189         * aclocal.m4 (gcc_AC_EXAMINE_OBJECT): New utility macro which
5190         handles the gory details of converting an object file into
5191         something that's safe to grep.
5192         (gcc_AC_C_COMPILE_BIGENDIAN): Rename to
5193         gcc_AC_C_COMPILE_ENDIAN.  Use gcc_AC_EXAMINE_OBJECT.  Put
5194         newlines at either end of the string we're looking for.
5195         Make 'checking ...' message less stilted.
5196         (gcc_AC_C_FLOAT_FORMAT): Use gcc_AC_EXAMINE_OBJECT.  Handle
5197         ARM in-memory layout and its hypothetical converse.  Don't
5198         define HOST_FLOAT_WORDS_BIG_ENDIAN unless it's different from
5199         HOST_WORDS_BIG_ENDIAN.
5200
5201         * configure.in: Adjust for renamed macro.  Move
5202         gcc_AC_C_FLOAT_FORMAT below gcc_AC_C_COMPILE_ENDIAN.
5203         * configure, config.in: Regenerate.
5204
5205 2001-03-16  Laurynas Biveinis  <lauras@softhome.net>
5206
5207         * fixinc/Makefile.in: Set SHELL.
5208
5209 2001-03-16  Laurynas Biveinis  <lauras@softhome.net>
5210
5211         * fixinc/fixincl.c (fix_with_system): Quote file names before
5212         passing them to shell.
5213
5214 2001-03-16  Laurynas Biveinis  <lauras@softhome.net>
5215
5216         * Makefile.in: Use fix-header$(build_exeext) instead
5217         of fix-header.
5218
5219 2001-03-16  Richard Henderson  <rth@redhat.com>
5220
5221         * dwarf2out.c: Revert most of 2000-11-25 and 2001-01-24 changes.
5222         (LN_PROLOG_AS_LABEL, LN_PROLOG_END_LABEL): New.
5223         (size_of_line_prolog): Remove.
5224         (output_line_info): Compute prologue size via label difference.
5225         (lookup_filename): Return "unspecified" for <internal> and <built-in>.
5226
5227         * configure.in (HAVE_AS_DWARF2_DEBUG_LINE): Require that the
5228         assembler error when redefining file numbers.
5229         * config.in, configure: Rebuild.
5230
5231         * dwarf2asm.c (dw2_asm_output_data): Mask data to the output size.
5232         (dw2_asm_output_data_uleb128): Use space not tab after .uleb128.
5233         (dw2_asm_output_delta_uleb128): Likewise.
5234         (dw2_asm_output_delta_sleb128): Similarly.
5235         (dw2_asm_output_data_sleb128): Similarly.  Print number in decimal.
5236
5237 2001-03-16  Michael Meissner  <meissner@redhat.com>
5238
5239         * mips.h (BITMASK_HIGH): Replacement for 0x80000000 that avoids
5240         warnings.
5241         (BITMASK_UPPER16): Replacement for 0xffff0000 that avoids
5242         warnings.
5243         (BITMASK_LOWER16): Replacement for 0x0000ffff.
5244
5245         * mips.c (save_restore_insns): Use BITMASK_UPPER16/BITMASK_LOWER16
5246         instead of 0xffff0000/0x0000ffff to avoid warnings about constants
5247         being unsigned in ISO C and signed in traditional.
5248         (expand_prologue): Ditto.
5249         (RA_MASK): Use BITMASK_HIGH to avoid warnings.
5250
5251         * mips.md (divmodsi4,divmodsi4): Use BITMASK_HIGH to avoid
5252         warnings.
5253         (divsi3,divdi3): Ditto.
5254         (modsi3,moddi3): Ditto.
5255         (fix_truncdfsi2,fix_truncdfdi2): Ditto.
5256         (fix_truncsfsi2,fix_truncsfdi2): Ditto.
5257         (movsi split): Use BITMASK_UPPER16/BITMASK_LOWER16 to avoid
5258         warnings.
5259
5260 Fri Mar 16 14:47:57 CET 2001  Jan Hubicka  <jh@suse.cz>
5261
5262         * i386.c (ix86_expand_fp_movcc): Do not attempt to construct
5263         SSE based conditional moves on LTGT/UNEQ conditions;
5264         Canonicalize EQ to NE.
5265         * i386.md (sse_mov?fcc): Disallow EQ and NE in IEEE mode.
5266         (sse_mov?fcc_ne): New.
5267
5268         * i386-protos.h (sign_extended_value, zero_extended_value): Declare.
5269
5270 2001-03-16  Alexandre Oliva  <aoliva@redhat.com>
5271
5272         * config/sh/sh.c (sh_expand_prologue): Insns that set up the PIC
5273         register may be dead.
5274
5275 2001-03-16  Brad Lucier  <lucier@math.purdue.edu>
5276
5277         * Makefile.in (hash.o): Depend on CONFIG_H.
5278
5279 2001-03-15  Mark Mitchell  <mark@codesourcery.com>
5280
5281         * dwarf2out.c (rtl_for_decl_location): Use DECL_RTL_IF_SET.
5282
5283 2001-03-15  Richard Henderson  <rth@redhat.com>
5284
5285         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): New.
5286         (ASM_OUTPUT_DWARF_PCREL): New.
5287         * config/ia64/hpux.h (ASM_OUTPUT_DWARF_OFFSET): Remove.
5288
5289 2001-03-16  Alexandre Oliva  <aoliva@redhat.com>
5290
5291         * cppfiles.c (stack_include_file): Use MAX of sysp.
5292
5293 2001-03-15  Steve Ellcey  <sje@cup.hp.com>
5294
5295         * config.gcc (ia64*-*-hpux*): New case.
5296         * config/ia64/hpux.h: New file for HP-UX support.
5297         * config/ia64/t-hpux: New file for HP-UX support.
5298
5299 2001-03-16  Bruce Korb  <bkorb@gnu.org>, Alexandre Oliva  <aoliva@redhat.com>
5300
5301         * fixinc/inclhack.def (irix_stdio_va_list): New.
5302         * fixinc/fixincl.x: Rebuilt.
5303
5304 2001-03-15  Richard Henderson  <rth@redhat.com>
5305
5306         * dwarf2asm.c (dw2_asm_output_offset): Use ASM_OUTPUT_DWARF_OFFSET
5307         if provided by the target.
5308         (dw2_asm_output_pcrel): Likewise with ASM_OUTPUT_DWARF_PCREL.
5309         (dw2_asm_output_addr): New.
5310         * dwarf2asm.h (dw2_asm_output_addr): Declare.
5311         * dwarf2out.c (output_cfi): Use it for program addresses.
5312         (output_call_frame_info, output_die): Likewise.
5313         (output_aranges, output_line_info): Likewise.
5314
5315 2001-03-15  Bruce Korb  <bkorb@gnu.org>
5316
5317         * gcc.c(main): make more rigorous
5318         * collect2.c(main): guard against ignoring SIGCHLD
5319         * protoize.c(main): ditto
5320         * gcc/fixinc/fixincl.c(initialize): ditto
5321
5322 2001-03-15  Mark Mitchell  <mark@codesourcery.com>
5323
5324         * sdbout.c (sdbout_symbol): Use DECL_RTL_SET_P, SET_DECL_RTL.
5325         (sdbout_parms): Likewise.
5326
5327 Thu Mar 15 12:57:14 2001  Jeffrey A Law  (law@cygnus.com)
5328
5329         * reload1.c (reload_cse_simplify_set): For LOAD_EXTEND_OP, do not
5330         "widen" a destination that is already wider than a word.  Also do
5331         not widen if LOAD_EXTEND_OP is NIL for the given mode.
5332
5333 2001-03-15  Bernd Schmidt  <bernds@redhat.com>
5334
5335         * config/ia64/ia64.c (ia64_sched_reorder): Remove debugging aids.
5336
5337 Thu Mar 15 11:30:31 EST 2001  John Wehle  (john@feith.com)
5338
5339         * i960.h (ROUND_TYPE_SIZE_UNIT): Fix typo.
5340
5341 Thu Mar 15 11:24:29 EST 2001  John Wehle  (john@feith.com)
5342
5343         * i960.h (i960_maxbitalignment,
5344         i960_last_maxbitalignment): Declare.
5345         * i960.c (i960_maxbitalignment,
5346         i960_last_maxbitalignment): Make global.
5347         (process_pragma): Delete.
5348         (i960_pr_align, i960_pr_noalign): Move from here ...
5349         * i960-c.c: ... to this new file.
5350         * t-960bare (i960-c.o): New rule.
5351         * t-vxworks960 (i960-c.o): Likewise.
5352         * config.gcc (i960-*-*): Define c_target_objs and
5353         cxx_target_objs.
5354
5355 2001-03-15  Bernd Schmidt  <bernds@redhat.com>
5356
5357         * cselib.c (hash_rtx): For REG and MEM, just use value of expression
5358         without adding in rtx code and mode.
5359
5360         * alias.c (init_alias_analysis): Don't use any rtx whose value
5361         varies as a known value.
5362         Delete a superfluous test.
5363
5364         * config/ia64/ia64.c (maybe_rotate): New function, broken out of
5365         ia64_sched_reorder.
5366         (ia64_sched_reorder): Call maybe_rotate; also rotate after
5367         scheduling a stop bit.
5368         (ia64_emit_nops): Correctly handle ASMs.
5369
5370 2001-03-15  Mark Mitchell  <mark@codesourcery.com>
5371
5372         * varasm.c (assemble_variable): Use DECL_RTL_SET_P.
5373
5374 2001-03-15  Neil Booth  <neil@daikokuya.demon.co.uk>
5375
5376         * cpp.texi: Update documentation for -include and -imacros.
5377         * cppfiles.c (struct include_file): Remove "defined" memeber.
5378         (find_or_create_entry): Make a copy of the file name, and
5379         simplify it.
5380         (open_file): Update to ensure we use the simplified filename.
5381         (stack_include_file): Don't set search_from.
5382         (cpp_included): Don't simplify the path name here.
5383         (find_include_file): New prototype.  Call search_from to
5384         get the start of the "" include chain.  Don't simplify the
5385         filenames here.
5386         (_cpp_execute_include): New prototype.  Move diagnostics to
5387         do_include_common.  Update.
5388         (_cpp_pop_file_buffer): Don't set defined.
5389         (search_from): New prototype.  Use the preprocessor's cwd
5390         for files included from the command line.
5391         (read_name_map): Don't simplify the pathname here.
5392         * cpphash.h (enum include_type): New.
5393         (struct buffer): Delete search from.  New search_cached.
5394         (_cpp_execute_include): Update prototype.
5395         * cppinit.c (do_includes): Use _cpp_execute_include.
5396         * cpplib.c (do_include_common): New function.
5397         (do_include, do_include_next, do_import): Use it.
5398
5399 2001-03-14  Mark Mitchell  <mark@codesourcery.com>
5400
5401         * varasm.c (assemble_alias): Use DECL_ASSEMBLER_NAME, not the
5402         contents of the RTL, to determine the name of the object.
5403
5404 2001-03-14  Mark Mitchell  <mark@codesourcery.com>
5405
5406         * tree.h (DECL_RTL): Allocate RTL lazily.
5407         (SET_DECL_RTL): New macro.
5408         (DECL_RTL_SET_P): Likewise.
5409         (COPY_DECL_RTL): Likewise.
5410         (DECL_RTL_IF_SET): Likewise.
5411         * varasm.c (make_decl_rtl): Add assertions about the kind of
5412         declaration we are processing.
5413         * c-decl.c (duplicate_decls): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
5414         (start_decl): Likewise.
5415         (finish_decl): Likewise.
5416         * c-semantics.c (emit_local_var): Likewise.
5417         * calls.c (expand_call): Likewise.
5418         * dbxout.c (dbxout_symbol): Likewise.
5419         * emit-rtl.c (unshare_all_rtl): Likewise.
5420         (unshare_all_decls): Likewise.
5421         (reset_used_decls): Likewise.
5422         * expr.c (store_constructor): Likewise.
5423         (safe_from_p): Likewise.
5424         (expand_expr): Likewise.
5425         * function.c (put_var_into_stack): Likewise.
5426         (instantiate_decls_1): Likewise.
5427         (assign_parms): Likewise.
5428         (expand_function_start): Likewise.
5429         (expand_function_end): Likewise.
5430         * ggc-common.c (gcc_mark_trees): Likewise.
5431         * integrate.c (function_cannot_inline_p): Likewise.
5432         (copy_decl_for_inlining): Likewise.
5433         (expand_inline_function): Likewise.
5434         (integrate_parm_decls): Likewise.
5435         (integrate_decl_tree): Likewise.
5436         * print-tree.c (print_node): Likewise.
5437         * reg-stack.c (stack_result): Likewise.
5438         * stmt.c (label_rtx): Likewise.
5439         (expand_return): Likewise.
5440         (expand_decl): Likewise.
5441         (expand_decl_cleanup): Likewise.
5442         (expand_anon_union_decl): Likewise.
5443         * toplev.c (check_global_declarations): Likewise.
5444         (rest_of_decl_compilation): Likewise.
5445         * tree.c (simple_cst_equal): Likewise.
5446         * objc/objc-act.c (generate_static_references): Likewise.
5447
5448 2001-03-14  Zack Weinberg  <zackw@stanford.edu>
5449
5450         * aclocal.m4 (gcc_AC_C_CHARSET, gcc_AC_C_COMPILE_BIGENDIAN,
5451         gcc_AC_C_FLOAT_FORMAT): New macros.
5452         * configure.in: Add AC_PROG_CPP after CC tests;
5453         gcc_AC_C_CHARSET and gcc_AC_C_FLOAT_FORMAT after the sizeof
5454         tests; and gcc_AC_C_COMPILE_BIGENDIAN after gcc_AC_C_CHAR_BIT.
5455         * configure, config.in: Regenerate.
5456
5457         * config/a29k/xm-a29k.h, config/arc/xm-arc.h,
5458         config/arm/xm-arm.h, config/c4x/xm-c4x.h,
5459         config/convex/xm-convex.h, config/d30v/xm-d30v.h,
5460         config/i370/xm-linux.h, config/i370/xm-oe.h,
5461         config/ia64/xm-ia64.h, config/m32r/xm-m32r.h,
5462         config/m68k/xm-m68k.h, config/mips/xm-mips.h,
5463         config/pa/xm-linux.h, config/pa/xm-pa.h,
5464         config/rs6000/xm-lynx.h, config/rs6000/xm-mach.h,
5465         config/rs6000/xm-rs6000.h, config/rs6000/xm-sysv4.h,
5466         config/sparc/xm-sparc.h, config/vax/xm-vax.h,
5467         config/we32k/xm-we32k.h: Delete.
5468
5469         * config/i370/xm-mvs.h, config/m88k/m88k.h,
5470         config/romp/xm-romp.h, config/rs6000/xm-beos.h,
5471         config/vax/xm-vms.h: Don't define any of:
5472         HOST_FLOAT_FORMAT, HOST_EBCDIC, HOST_WORDS_BIG_ENDIAN
5473
5474         * config/rs6000/aix.h: Define COLLECT_EXPORT_LIST here.
5475
5476         * config.gcc: Remove references to deleted files.
5477         (i370-*-opened*): Use i370/xm-mvs.h (which now defines only
5478         FATAL_EXIT_CODE, which is the same between oe and mvs).
5479
5480 2001-03-14  DJ Delorie  <dj@redhat.com>
5481             Vladimir Makarov  <vmakarov@redhat.com>
5482
5483         * config/i960/i960.c (i960_function_prologue): Compute size of
5484         frame according to number of registers actually saved there.
5485
5486 2001-03-14  Richard Henderson  <rth@redhat.com>
5487
5488         * expr.c (emit_move_insn_1): Fix else if around #endif.
5489
5490 Wed Mar 14 22:39:12 CET 2001  Jan Hubicka  <jh@suse.cz>
5491                               Vojtech Pavlik
5492
5493         * md.texi (machine constraints): Document 'Q', 'R', 'e' and 'Z'
5494         constraints.
5495
5496 Wed Mar 14 22:26:10 CET 2001  Jan Hubicka  <jh@suse.cz>
5497
5498         * i386.c (ix86_cmodel_string, ix86_cmodel): Define.
5499         (override_options): Parse cmodel string.
5500         (x86_64_sign_extended_value, x86_64_zero_extended_value): New.
5501         * i386.h (TARGET_OPTIONS): Add "cmodel".
5502         (EXTRA_CONSTRAINT): Recognize 'e' and 'Z'.
5503         (enum cmodel): New.
5504         (ix86_cmodel_string, ix86_cmodel): Declare.
5505
5506 Wed Mar 14 22:26:54 CET 2001  Jan Hubicka  <jh@suse.cz>
5507
5508         Spot by Matt Kraai:
5509         * i386.h (GENERAL_REG_P): Add missing REG_P.
5510
5511 2001-03-14  Laurynas Biveinis  <lauras@softhome.net>
5512
5513         * configure.in: Use $gcc_cv_as instead of $as.
5514         * configure: Regenerated.
5515
5516 2001-03-14  Neil Booth  <neil@daikokuya.demon.co.uk>
5517
5518         * cppfiles.c (stack_include_file): Only increase the include
5519         count if we actually process the file properly, as opposed
5520         to treating it as length zero.  Only call read_include_file
5521         if not DO_NOT_REREAD.  Handle the -H include file output
5522         here.
5523         (read_include_file): Remove now redundant DO_NOT_REREAD check.
5524         (cpp_included, find_include_file): Simplify pathnames after
5525         remapping them.  If remapping, don't use the remapped file
5526         name's buffer as our scratch buffer.
5527         (cpp_pop_file_buffer): Replace the multiple include macro
5528         only if it isn't yet set.
5529         (read_name_map): Simplify remapped names when reading in.
5530         (remap_filename): Move code to code path that uses it.
5531         (_cpp_simplify_pathname): Return the input pointer.
5532         * cpphash.h (_cpp_simplify_pathname): Update prototype.
5533
5534 2001-03-14  Mark Mitchell  <mark@codesourcery.com>
5535
5536         * expr.c (expand_expr): Revove bogus conditional.
5537
5538 Wed Mar 14 19:29:50 CET 2001  Jan Hubicka  <jh@suse.cz>
5539
5540         * expr.c (emit_move_insn_1): Guard PUSH_ROUNDING use by ifdef.
5541
5542 2001-03-14  Jakub Jelinek  <jakub@redhat.com>
5543
5544         * reg-stack.c (stack_result): Unconditionally use
5545         FUNCTION_OUTGOING_VALUE resp. FUNCTION_VALUE.
5546
5547 Wed Mar 14 16:36:25 CET 2001  Jan Hubicka  <jh@suse.cz>
5548
5549         * expr.c (emit_move_insn_1):  Split push of complex value when
5550         no suitable push instruction exist.
5551
5552         * i386.md (QImode move/add/shift patterns): Use ANY_QI_REG_P
5553         instead of QI_REG_P.
5554
5555 Tue Mar 13 22:22:04 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5556
5557         * alias.c (handled_component_p, can_address_p): New functions.
5558         (get_alias_set): Use them.
5559
5560 2001-03-13  Jim Wilson  <wilson@redhat.com>
5561
5562         * config/ia64/ia64.c (find_gr_spill): Subtract frame_pointer_needed
5563         from 80 in try_locals code.
5564         (ia64_expand_prologue): Add comment pointing to find_gr_spill change.
5565
5566 2001-03-13  Zack Weinberg  <zackw@stanford.edu>
5567
5568         * aclocal.m4 (gcc_AC_COMPILE_CHECK_SIZEOF, gcc_AC_C_CHAR_BIT,
5569         gcc_AC_C_LONG_LONG): New.
5570         * configure.in: Use them.  Probe the size of short, int, long,
5571         and long long/__int64 if we have them.  Move all the AC_C_*
5572         checks together, except gcc_AC_C_CHAR_BIT which has to go
5573         after AC_CHECK_HEADERS(limits.h).
5574         Take hwint.h out of host_xm_file and build_xm_file.
5575
5576         * hwint.h: Unconditionally define HOST_BITS_PER_CHAR,
5577         HOST_BITS_PER_SHORT, HOST_BITS_PER_INT, HOST_BITS_PER_LONG,
5578         and HOST_BITS_PER_LONGLONG in terms of SIZEOF_* and CHAR_BIT.
5579         Move the HOST_WIDEST_INT setup logic here from system.h.
5580         Provide HOST_WIDEST_INT even if HOST_BITS_PER_LONGLONG is not
5581         defined.
5582         * system.h: Include hwint.h after limits.h.  HOST_WIDEST_INT
5583         is now handled by hwint.h.
5584
5585         * config/alpha/xm-alpha-interix.h, config/alpha/xm-vms.h,
5586         config/c4x/xm-c4x.h, config/i370/xm-oe.h,
5587         config/ia64/xm-ia64.h: Don't define any of:
5588         HOST_BITS_PER_LONG, HOST_BITS_PER_CHAR, HOST_BITS_PER_SHORT,
5589         HOST_BITS_PER_LONGLONG.
5590
5591         * config/alpha/xm-alpha.h, config/dsp16xx/xm-dsp16xx.h,
5592         config/h8300/xm-h8300.h, config/mips/iris6.h,
5593         config/mn10200/xm-mn10200.h, config/pa/xm-pa64hpux.h,
5594         config/sparc/xm-sp64.h: Delete.
5595         * config.gcc: Remove references to deleted files.
5596
5597         * config/arm/xm-arm.h, config/mips/xm-mips.h: Don't define
5598         HOST_FLOAT_FORMAT to IEEE_FLOAT_FORMAT.
5599         * config/i370/xm-linux.h: Clarify floating-point situation in
5600         a comment.
5601
5602 2001-03-13  Neil Booth  <neil@daikokuya.demon.co.uk>
5603
5604         * cppfiles.c (NO_INCLUDE_PATH): New macro.
5605         (find_include_file): Decide here which part of the include
5606         chain to start the search.  Complain about an empty include
5607         chain in all cases apart from an abolsute file name.
5608         (_cpp_execute_include): Don't choose the search chain here.
5609         Don't call handle_missing_include in the case of an empty
5610         include chain.
5611         (_cpp_compare_file_date): Don't choose the search chain here.
5612         * cpplib.c (do_include_next): Move the in-main-file diagnostic
5613         here from _cpp_execute_include.  Behave like #include if
5614         we're in the main file.
5615
5616 2001-03-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5617
5618         * system.h (malloc, realloc, calloc, strdup): Only poison these
5619         tokens when IN_GCC is defined.
5620
5621 Tue Mar 13 14:38:44 CET 2001  Jan Hubicka  <jh@suse.cz>
5622
5623         * i386.md (abs?f expander): Support SSE case.
5624         (abd?f_if): Add new "USE"; add splitters.
5625
5626 2001-03-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5627
5628         * cpp.texi (poison): Explain the macro expansion exception.
5629
5630 2001-03-13  Jakub Jelinek  <jakub@redhat.com>
5631
5632         * expr.c (store_expr): Add dont_store_target.  If temp is already in
5633         target before copying to reg, don't store it into target again.
5634
5635 2001-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
5636
5637         * cppinternals.texi: Update for file handling.
5638
5639 2001-03-12  Jeffrey Oldham  <oldham@codesourcery.com>
5640
5641         * emit-rtl.c (remove_unnecessary_notes): Reverse Richard Kenner's
5642         2001-02-24 which broke building the Java library.
5643         * function.c (identify_blocks): Likewise.
5644         (all_blocks): Likewise.
5645         * integrate.c (integrate_decl_tree): Likewise.
5646         * print-tree.c (print_node): Likewise.
5647         * tree.h (BLOCK_NUMBER): Likewise.
5648         (struct tree_block): Likewise.
5649
5650 2001-03-12  David Edelsohn  <edelsohn@gnu.org>
5651
5652         * rs6000/aix51.h (CPP_SPEC, CPLUSPLUS_CPP_SPEC): Fix typo in
5653         __WCHAR_TYPE__ definition.
5654         (WCHAR_TYPE_SIZE): #undef before #define.
5655
5656 2001-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
5657
5658         * cppfiles.c: Update comments.
5659         (destroy_include_file_node): Rename destroy_node.
5660         (find_or_create_entry): New function.
5661         (open_file, _cpp_fake_include): Use it.
5662         (handle_missing_header): New function, broken out of
5663         _cpp_execute include.  Don't segfault if there is no
5664         system or quoted path.
5665         (_cpp_execute_include): Use handle_missing_header.
5666
5667 2001-03-12  Jeffrey Oldham  <oldham@codesourcery.com>
5668
5669         * jump.c (reversed_comparison_code_parts): Reverse Jan Hubricka's
5670         2001-02-28 patch because it breaks arm-linux and mips-sgi-irix6.5.
5671
5672 Mon Mar 12 14:05:32 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5673
5674         * flow.c (insn_dead_p): Don't consider two memrefs equivalent
5675         unless anti_dependence says they are.
5676         * alias.c (objects_must_conflict): If neither has a type specified,
5677         they must conflict.
5678
5679 2001-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
5680             David Billinghurst <David.Billinghurst@riotinto.com>
5681
5682         * config/mips/iris5.h:  Change WCHAR_TYPE to int.
5683
5684 Mon Mar 12 16:32:21 CET 2001  Jan Hubicka  <jh@suse.cz>
5685
5686         * i386.md (trunctfdf2_2): Rename missnamed pattern.
5687         (*_one_bit): Remove type on the match_operand in attributes.
5688
5689 Mon Mar 12 16:27:56 CET 2001  Jan Hubicka  <jh@suse.cz>
5690
5691         * i386.c: Commit forgotten hunk in previous patch.
5692         (regclass_map): Add extended registers.
5693         (dbx_register_map): Add missing frame register.
5694
5695 Mon Mar 12 15:41:08 CET 2001  Jan Hubicka  <jh@suse.cz>
5696
5697         * i386.md (all XFmode patterns except swapxf): Disable for 64bit.
5698
5699         * i386.md (x86_sahf_1): Disable for 64bit.
5700         (popsi*, pophi*): Likewise.
5701         (pushqi, pushhi): Likewise.
5702         (movdi, pushdi): Likewise.
5703         (zero extend DImode splitter): Likewise.
5704         (adddi, minusdi splitter): Likewise.
5705         (umulsidi): Likewise.
5706         (umulsi): New.
5707         (mulsidi): Disable for 64bit
5708         (lshift:DI/ashift:DI): Disable for 64bit.
5709         (loop patterns): Likewise.
5710         (call_pop, call_value_pop expanders and patterns): Likewise.
5711         (prologue_get_pc): Likewise.
5712         (leave): Likewise.
5713         (fcmovDI pattern and splitter): Likewise.
5714         (movdfcc_1_rex64): New.
5715
5716 Mon Mar 12 15:16:36 CET 2001  Jan Hubicka  <jh@suse.cz>
5717
5718         * i386.h (VALID_FP_MODE_P): XFmode is invalid on x86_64.
5719         (MODES_TIEABLE_P): QImodes and DImodes are tiable on x86_64.
5720         (HARD_REGNO_CALLER_SAVE_MODE): Save QImodes as QImodes for x86_64.
5721         (STATIC_CHAIN_REGNUM): Set to r10 for x86_64.
5722         (PIC_OFFSET_TABLE_REGNUM): Set to INVALID_REGNUM for x86_64.
5723         (LIMIT_RELOAD_CLASS): Avoid limiting of QImodes on x86_64.
5724         (SECONDARY_OUTPUT_RELOAD_CLASS): No need to QImodes.
5725         (PUSH_ROUNDING): x86_64 rounds to 64bits.
5726         (CONSTANT_ADDRESS_P): Accept CONST_DOUBLE.
5727         (REGPARM_MAX): Set to 6 for x86_64.
5728         (SSE_REGPARM_MAX): Set to 16 for x86_64.
5729         * i386.c (hard_regno_mode_ok): QImodes can be in all general purpose
5730         registers.
5731
5732         * (patterns that does use upper halves): Update constraints
5733         'q' to 'Q' and 'r' to 'R'.
5734         (cmpqi_ext_1): Disable for 64bit.
5735         (cmpqi_ext_3_insn): Likewise.
5736         (movqi_extzv_1): Likewsie.
5737         (addqi_ext_1): Liekwsie
5738         (testqi_ext_1): Liekwsie
5739         (andqi_ext_1): Liekwsie
5740         (xorqi_ext_1): Liekwsie
5741         (cmpqi_ext_1_rex64): New.
5742         (cmpqi_ext_3_insn_rex64): Likewise.
5743         (movqi_extzv_1_rex64): Likewsie.
5744         (addqi_ext_1_rex64): Liekwsie
5745         (testqi_ext_1_rex64): Liekwsie
5746         (andqi_ext_1_rex64): Liekwsie
5747         (xorqi_ext_1_rex64): Liekwsie
5748
5749 2001-03-11  Zack Weinberg  <zackw@stanford.edu>
5750
5751         * configure.in: Move check for unsigned enumerated bitfields
5752         to macro in aclocal.m4.  Disable it for now.
5753         * configure, config.in: Regenerate.
5754         * system.h: Don't do anything with ONLY_INT_FIELDS.  Use the
5755         unsigned-int form of ENUM_BITFIELD() unless being compiled by GCC.
5756         * varasm.c (struct rtx_const): Use ENUM_BITFIELD().  Move enum
5757         kind above its first use.
5758
5759         * config/xm-interix.h, config/alpha/xm-alpha.h,
5760         config/i370/xm-linux.h, config/i386/xm-beos.h,
5761         config/i386/xm-mingw32.h, config/mips/xm-mips.h,
5762         config/pa/xm-pa.h, config/pa/xm-pa64hpux.h,
5763         config/rs6000/xm-beos.h, config/rs6000/xm-sysv4.h,
5764         Don't define ONLY_INT_FIELDS under any circumstances.
5765
5766         * config/pa/xm-pa.h: Don't define __BSD_NET2__.
5767
5768         * config/pa/xm-pahpux.h, config/pa/xm-papro.h,
5769         config/sparc/xm-sysv4.h: Delete - now identical with some
5770         other xm header.
5771         * config.gcc (hppa targets): Replace xm-pahpux.h and
5772         xm-papro.h with implicit xm-pa.h.
5773         (sparc targets): Replace xm-sysv4.h with implicit or explicit
5774         xm-sparc.h.
5775
5776 2001-03-12  Aldy Hernandez  <aldyh@redhat.com>
5777
5778         * reload1.c (reload_cse_simplify): Call reload_cse_simplify_set
5779         before reload_cse_noop_set_p.
5780
5781 2001-03-11  Zack Weinberg  <zackw@stanford.edu>
5782
5783         * config.gcc: Where xm-host.h used to include another
5784         xm-host.h, list the nested header directly in xm_file.  Remove
5785         references to deleted files.  Can now use sparc/xm-sp64.h for
5786         sparcv9-*-solaris*.
5787
5788         * config/xm-linux.h, config/arm/xm-linux.h,
5789         config/i386/xm-dos.h, config/i386/xm-gnu.h,
5790         config/i386/xm-linux.h, config/i386/xm-openbsd.h,
5791         config/i860/xm-fx2800.h, config/m68k/xm-atari.h,
5792         config/m68k/xm-linux.h, config/m68k/xm-sun3.h,
5793         config/sparc/xm-linux.h, config/sparc/xm-sysv4-64.h:
5794         Delete.
5795
5796         * config/alpha/xm-alpha-interix.h: Don't include alpha/xm-alpha.h.
5797         * config/mips/xm-iris5.h: Don't include mips/xm-mips.h.  Don't
5798         bother to wrap #undef in #ifdef.
5799         * config/pa/xm-linux.h, config/rs6000/xm-sysv4.h:
5800         Don't include xm-linux.h.
5801         * config/sparc/xm-sp64.h: Don't include sparc/xm-sparc.h.
5802
5803         * configure.in: Wrap regexps using [] in changequote block.
5804         Use expr : not echo | grep.  Simplify regexps.
5805         * configure: Regenerate.
5806
5807         56 xm-files remain, 22 xm-arch.
5808
5809 2001-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5810
5811         * mips-tfile.c: Cast arg to PTR when specifier is HOST_PTR_PRINTF.
5812         (__proto, PTR_T, CPTR_T): Delete, use PARAMS/PTR instead.
5813         (local_index, local_rindex): Delete, use strchr/strrchr instead.
5814         (copy_object): Fix format specifier vs argument mismatch.
5815
5816         * mips-tdump.c: Make local functions static.
5817         (rindex): Don't #undef.
5818         (__proto, PTR_T, CPTR_T): Delete, use PARAMS/PTR instead.
5819         (fatal, fancy_abort): Delete.
5820         (read_seek): Avoid signed/unsigned compare.
5821
5822 Sun Mar 11 17:01:41 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5823
5824         * combine.c (try_combine): Fix error in change to try original
5825         register.
5826         (gen_rtx_combine): Do same as gen_rtx for now.
5827
5828 2001-03-11  Zack Weinberg  <zackw@stanford.edu>
5829
5830         * configure.in: AC_SUBST xm_defines.
5831         * configure: Regenerate.
5832         * Makefile.in: Set DEFINES=$(xm_defines) when building
5833         tconfig.h.
5834
5835 2001-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
5836
5837         * cppfiles.c (INCLUDE_LEN_FUDGE, ENOMEM): Delete.
5838         (cpp_included, find_include_file): Update.
5839         (_cpp_compare_file_date): Make else unconditional.
5840
5841 2001-03-10  kaz Kojima <kkojima@rr.iij4u.or.jp>
5842
5843         * config/sh/sh.h (LEGITIMATE_PIC_OPERAND_P): Defined.
5844
5845 2001-03-10  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
5846
5847         * config/sh/sh.md (umulhisi3_i, mulhisi3_i): Fix mnemonics.
5848         * config/sh/lib1funcs.asm (mulsi3): Convert mulu to mulu.w.
5849
5850 Sat Mar 10 22:42:05 2001  Alexandre Oliva  <aoliva@redhat.com>
5851
5852         * tree.c (build_common_tree_nodes_2): Don't copy va_list_type_node
5853         if it's a record type.
5854
5855 Sat Mar 10 17:52:54 2001  Christopher Faylor <cgf@cygnus.com>
5856
5857         * config/i386/cygwin.h: Make ../w32api a system directory.  Reorganize
5858         mingw includes slightly.
5859
5860 2001-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5861
5862         * system.h (malloc, realloc, calloc, strdup, bzero, bcmp, rindex):
5863         #undef token before poisoning it.
5864
5865 2001-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5866
5867         * alpha.c (check_float_value): Use memcpy, not bcopy.
5868
5869         * m32r.c (m32r_sched_reorder): Likewise.
5870
5871         * vax.c (check_float_value): Likewise.
5872
5873 2001-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
5874
5875         * toplev.c (file_name_nondirectory): Remove.
5876         * toplev.h: Similarly.
5877         * dwarf2out.c (compute_section_prefix): Use lbasename instead
5878         of file_name_nondirectory.
5879
5880 Sat Mar 10 10:36:45 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5881
5882         * mips-tdump.c (read_seek): Call xmalloc, not malloc.
5883         * mips-tfile.c: Don't #undef rindex; not used.
5884
5885 Sat Mar 10 14:34:59 CET 2001  Jan Hubicka  <jh@suse.cz>
5886
5887         * i386.h (DBX_REGISTER_NUMBER): Return proper values for 64bits.
5888         (dbx64_register_map): Declare.
5889         (RETURN_ADDR_RTX): Fix for 64bit.
5890         (DWARF_FRAME_RETURN_COLUMN): Set to 16 for 64bit.
5891         (INCOMING_FRAME_SP_OFFSET): Set to 8.
5892         * i386.c (dbx64_register_map): New global array.
5893         * beos-elf.h, freebsd.h, i386-interix.h, i386elf.h,
5894         linux.h (DBX_REGISTER_REGNUMBER): Use dbx64_register_map
5895         for 64bits.
5896
5897 2001-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
5898
5899         * cppfiles.c (search_from): Use lbasename.
5900         * mkdeps.c (deps_add_default_target): Use lbasename.
5901
5902 2001-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5903
5904         * fixinc/server.c (load_data, run_shell): Use xmalloc, xrealloc &
5905         xcalloc in lieu of malloc, realloc & calloc.
5906
5907         * gencheck.c (xmalloc): Use really_call_malloc, not malloc.
5908
5909         * gengenrtl.c (xmalloc): Likewise.
5910
5911         * gensupport.c (xcalloc, xrealloc, xmalloc): Use the
5912         really_call_* memory allocation routines.
5913
5914         * stmt.c (check_for_full_enumeration_handling): Use
5915         really_call_calloc, not calloc.
5916
5917         * system.h (really_call_malloc, really_call_calloc,
5918         really_call_realloc): Define.
5919         (malloc, realloc, calloc, strdup, bzero, bcmp, rindex): Poison.
5920
5921 Fri Mar  9 18:39:19 2001  Jeffrey A Law  (law@cygnus.com)
5922
5923         * pa.md (builtin_longjmp): Rework slightly to work for PA64 too.
5924
5925 2001-03-09  Nicola Pero <n.pero@mi.flashnet.it>
5926
5927         * configure: Rebuilt.
5928         * configure.in: Only use `lang_requires' for languages athat are
5929         actually enabled.
5930
5931 2001-03-09  Joseph S. Myers  <jsm28@cam.ac.uk>
5932
5933         * invoke.texi: Fix typo.
5934         * gcc.1: Regenerate.
5935
5936 2001-03-09  Zack Weinberg  <zackw@stanford.edu>
5937
5938         * configure.in: Prune nonexistent files from build_xm_file,
5939         xm_file, and host_xm_file lists.  Warn unless they're
5940         $cpu/xm-$cpu.h.
5941         Don't generate *config.h here.
5942         AC_SUBST all variables needed to generate *config.h.
5943         * configure: Regenerate.
5944         * mkconfig.sh: New helper script, from code removed from
5945         configure.in.
5946         * Makefile.in: Zap all MALLOC variables - no longer used
5947         anywhere, and malloc.c doesn't exist.
5948         Substitute in variables needed to generate *config.h.
5949         Stop lying about the dependencies contained in CONFIG_H and
5950         GCONFIG_H.
5951         (HCONFIG_H, TCONFIG_H, TM_P_H): New variables.
5952         (config.h, hconfig.h, tconfig.h, tm_p.h, cs-config.h,
5953         cs-hconfig.h, cs-tconfig.h, cs-tm_p.h): New rules.
5954         (all .o): Add dependencies on $(HCONFIG_H), $(TCONFIG_H),
5955         $(TM_P_H), etc. as appropriate.
5956
5957         * config.gcc: Zap references to deleted files.
5958         * ggc-none.c: Don't include rtl.h or tm_p.h.
5959
5960         * config/i386/xm-beos.h, config/i386/xm-dgux.h,
5961         config/i386/xm-djgpp.h, config/i386/xm-dos.h,
5962         config/i386/xm-gnu.h, config/i386/xm-i386-interix.h,
5963         config/i386/xm-linux.h, config/i386/xm-linux.h,
5964         config/i386/xm-next.h, config/i386/xm-openbsd.h,
5965         config/i386/xm-sun.h, config/i386/xm-sysv3.h:
5966         Don't include i386/xm-i386.h.
5967
5968         * config/elxsi/xm-elxsi.h, config/i386/xm-bsd386.h,
5969         config/i386/xm-i386.h, config/i860/xm-i860.h,
5970         config/i960/xm-i960.h, config/mcore/xm-mcore.h,
5971         config/mn10300/xm-mn10300.h, config/ns32k/xm-ns32k.h,
5972         config/pj/xm-pj.h, config/sh/xm-sh.h, config/v850/xm-v850.h:
5973         Delete (empty except comments, #includes of other deleted
5974         files, and macros used nowhere).
5975
5976 Fri Mar  9 20:05:27 CET 2001  Jan Hubicka  <jh@suse.cz>
5977
5978         * i386.h (MAX_WCHAR_TYPE_SIZE): New constant to keep tradcpp
5979         independent on TARGET_FLAGS.
5980
5981 Fri Mar  9 19:52:52 CET 2001  Jan Hubicka  <jh@suse.cz>
5982
5983         * i386.h (FIRST_PSEUDO_REGISTER): Set to 53.
5984
5985         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ONES): Add
5986         extended ones.
5987         (CONDITIONAL_REGISTER_USAGE): Set proper values according to
5988         TARGET_64BIT.
5989         (FIRST_REX_INT_REG, LAST_REX_INT_REG, FIRST_REX_SSE_REG,
5990         LAST_REX_SSE_REG): define.
5991         (enum reg_class): Add 'LEGACY_REGS'
5992         (REG_CLASS_CONTENTS): Likewise; add extended registers.
5993         (SSE_REGNO_P): Recognize extended registers.
5994         (ANY_QI_REG_P, REX_INT_REGNO_P, REX_INT_REG_P): New.
5995         (REG_CLASS_FROM_LETTER): Add 'R' and 'Q'.
5996         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P,
5997         REG_OK_FOR_BASE_NONSTRICT_P): Recognize REX registers.
5998         (REG_OK_FOR_STRREG_NONSTRICT_P, REG_OK_FOR_STRREG_STRICT_P,
5999          REG_OK_FOR_STRREG_P): Remove.
6000         (HI_REGISTER_NAMES): Add extended registers.
6001         (ADDITIONAL_REGISTER_NAMES): Likewise.
6002         (QI_REGISTER_NAMES): Add 8bit extended registers.
6003         (DEBUG_REG): Support extended registers.
6004         * i386.c (regclass_map): Add extended registers.
6005         (dbx_register-map): Likewise.
6006         (svr4_dbx_register_map): Likewise.
6007         (print_reg): Support extended registers.
6008         (print_operand): Support 64bit operands.
6009
6010 Fri Mar  9 19:37:46 CET 2001  Jan Hubicka  <jh@suse.cz>
6011
6012         * i386.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Set to 128bit for x86_64
6013         (BOOL_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
6014          FLOAT_TYPE_SIZE, LONG_TYPE_SIZE, MAX_LONG_TYPE_SIZE,
6015          DOUBLE_TYPE_SIZE, LONG_LONG_TYPE_SIZE): New constants.
6016         (BITS_PER_WORD, UNITS_PER_WORD, POINTER_SIZE, PARM_BOUNDARY,
6017          STACK_BOUNDARY): Set properly for 64bits.
6018         (MAX_BITS_PER_WORD, MIN_UNITS_PER_WORD): New constants.
6019         (EMPTY_FIELD_BOUNDARY): Define using BITS_PER_WORD.
6020         (BIGGEST_FIELD_ALIGNMENT): Set to 128 for 64bits.
6021         (MOVE_MAX): Set to 16.
6022         (MOVE_MAX_PIECES): 8 for 64bit.
6023         (Pmode): Set to SImode.
6024
6025 Fri Mar  9 09:00:36 2001  Mike Stump  <mrs@wrs.com>
6026
6027         * cselib.c (hash_rtx): Ensure that hash isn't zero upon return.
6028
6029 Fri Mar  9 17:38:08 CET 2001  Jan Hubicka  <jh@suse.cz>
6030
6031         * i386.h (mask_64bit): New constant.
6032         (target_64bit): New macro.
6033         (target_options): Add '64'/'32'
6034         (target_default): Define.
6035         * cygwin.h freebsd-aout.h i386-interix.h i386.h i386elf.h isc.h
6036         isccoff.h netbsd.h next.h openbsd.h p sco.h sco5.h scodbx.h sequent.h
6037         unix.h win32.h (TARGET_DEFAULT): Rename to TARGET_SUBTARGET_DEFAULT.
6038
6039 Thu Mar  8 23:36:56 2001  Jeffrey A Law  (law@cygnus.com)
6040
6041         * config/pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Disable.
6042
6043 Thu Mar  8 23:29:37 2001  John Wehle  (john@feith.com)
6044
6045         * rtlanal.c (rtx_varies_p): Check operand 0 of a
6046         LO_SUM unless for_alias is set.
6047
6048 2001-03-08  Stan Shebs  <shebs@apple.com>
6049
6050         * objc/objc-act.c: Fix old typos in comments, add comments for
6051         various functions.
6052         (hash_init): Fix file name in error message.
6053         (hash_enter): Ditto.
6054         (hash_add_attr): Ditto.
6055         (continue_class): Ditto.
6056
6057 2001-03-08  Bruce Korb  <bkorb@gnu.org>
6058
6059         gcc.c(main): ensure SIGCHLD handling is set to SIG_DFL so that
6060         wait4() can receive the signal.
6061
6062 Thu Mar  8 21:09:10 2001  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6063
6064         * fixinc/inclhack.def (AAB_dgux_int_varargs): Don't use HTML
6065         entities.
6066         * fixinc/fixincl.x: Regenerate.
6067
6068 Thu Mar  8 21:09:10 2001  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6069
6070         * fixinc/inclhack.def (AAA_standards): Undo <standards.h> breakage
6071         on Tru64 UNIX.
6072         * fixinc/fixincl.x: Regenerate.
6073
6074 2001-03-08  Richard Henderson  <rth@redhat.com>
6075
6076         * configure.in (HAVE_AS_LEB128): New assembler check.
6077         * configure, config.in: Rebuilt.
6078
6079 Thu Mar  8 19:54:04 CET 2001  Jan Hubicka  <jh@suse.cz>
6080
6081         * reg-stack.c (move_for_stack_reg): Avoid non-poping fst for
6082         TFmode too.
6083
6084 2001-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6085
6086         * config/ns32k/xm-pc532-min.h, config/we32k/xm-we32k.h: Delete
6087         references to the MAXPATHLEN macro.
6088
6089         * config/alpha/xm-alpha.h, config/arm/xm-arm.h,
6090         config/i386/xm-cygwin.h, config/xm-linux.h: Delete references to
6091         the POSIX macro.
6092
6093         * config/i386/xm-gnu.h, config/xm-gnu.h,
6094         config/alpha/xm-openbsd.h, config/i386/xm-openbsd.h,
6095         config/m68k/xm-openbsd.h, config/mips/xm-openbsd.h,
6096         config/sparc/xm-openbsd.h, config/xm-openbsd.h: Delete empty
6097         and/or unused files.
6098
6099         * config.gcc: Define POSIX in xm_defines as appropriate in lieu of
6100         doing so in various xm-*.h files.
6101
6102 Thu Mar  8 06:32:50 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6103
6104         * config/i386/i386.md (clrstrsi): Call ix86_set_move_mem_attrs.
6105
6106 2001-03-08  Alexandre Oliva  <aoliva@redhat.com>
6107
6108         * configure.in (enable_shared): Support per-package shared-library
6109         enabling.
6110         * configure: Rebuilt.
6111
6112 2001-03-07  David Edelsohn  <edelsohn@gnu.org>
6113
6114         * rs6000.md (cr logic): Add original POWER mnemonic alternative
6115         for crnot.  Set operands[5] in splitter.
6116
6117 2001-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6118
6119         * config/i370/xm-mvs.h, config/i370/xm-oe.h,
6120         config/i386/xm-beos.h, config/i386/xm-mingw32.h,
6121         config/m88k/xm-m88k.h, config/mips/xm-iris6.h,
6122         config/mips/xm-openbsd.h, config/pa/xm-pa64hpux.h,
6123         config/pa/xm-pahpux.h, config/rs6000/xm-beos.h,
6124         config/rs6000/xm-darwin.h, config/rs6000/xm-mach.h,
6125         config/rs6000/xm-rs6000.h, config/xm-interix.h: Delete references
6126         to the USG macro.
6127
6128         * config/vax/xm-vaxv.h, config/a29k/xm-unix.h,
6129         config/i370/xm-i370.h, config/i386/xm-dgux.h,
6130         config/i386/xm-sun.h, config/i386/xm-sysv3.h,
6131         config/m68k/xm-tower.h, config/m68k/xm-aux.h,
6132         config/m68k/xm-hp320.h, config/m68k/xm-amix.h,
6133         config/m68k/xm-altos3068.h, config/m68k/xm-mot3300.h,
6134         config/m68k/xm-m68kv.h, config/m88k/xm-openbsd.h,
6135         config/mips/xm-nws3250v4.h, config/mips/xm-sysv.h,
6136         config/mips/xm-iris3.h, config/mips/xm-iris4.h, config/xm-svr3.h,
6137         config/xm-svr4.h, config/sparc/xm-pbd.h, config/clipper/xm-clix.h:
6138         Delete unused and/or empty files.
6139
6140         * config.gcc: Define USG in xm_defines as appropriate.  Define
6141         POSIX in lieu of xm-svr4.h.  Delete all references to the SVR3
6142         macro.  Remove deleted xm-* files from $xm_files variable.
6143
6144 2001-03-07  Tom Tromey  <tromey@redhat.com>
6145
6146         * configure: Rebuilt.
6147         * configure.in: Allow config-lang.in to set `lang_requires' to list
6148         of other required languages.
6149
6150 2001-03-07  Andrew MacLeod  <amacleod@redhat.com>
6151
6152         * config/a29k/a29k.c (print_operand): Free a29k_last_prologue_insn
6153         after its emitted.
6154         (output_prologue): Use xmalloc not oballoc.
6155         (output_epilog): Free a29k_first_epilogue_insn when finished.
6156         * confif/a29k/a29k.h (PREDICATE_CODES): Remove shift_constant_operand.
6157
6158 2001-03-07  Brad Lucier  <lucier@math.purdue.edu>
6159
6160         * builtins.c (expand_builtin_mathfn): Check
6161         flag_unsafe_math_optimizations, not flag_fast_math.
6162         (expand_builtin): Likewise
6163         * combine.c (combine_simplify_rtx): Likewise.
6164         (simplify_if_then_else): Likewise.
6165         * cse.c (fold_rtx): Likewise.
6166         * flags.h: Remove flag_fast_math.  Add
6167         flag_unsafe_math_optimizations and flag_trapping_math.
6168         * fold-const.c (negate_expr): Check
6169         flag_unsafe_math_optimizations, not flag_fast_math.
6170         (invert_truthvalue): Likewise.
6171         (fold): Likewise.  Before associating operands, check that
6172         code == MULT_EXPR, not code != MULT_EXPR.
6173         * ifcvt.c (noce_try_minmax): Check
6174         flag_unsafe_math_optimizations, not flag_fast_math.
6175         (noce_operand_ok): Check flag_trapping_math, not flag_fast_math.
6176         * invoke.texi: Document -funsafe-math-optimizations and
6177         -fno-trapping-math.  Change documentation for -ffast-math.
6178         * jump.c (reversed_comparison_code_parts): Likewise.
6179         (rtx_equal_for_thread_p): Likewise.
6180         * optabs.c (emit_conditional_move): Likewise.
6181         * simplify-rtx.c (simplify_binary_operation): Likewise.
6182         (simplify_relational_operation): Likewise.
6183         (simplify_ternary_operation): Likewise.
6184         * toplev.c: Remove flag_fast_math.  Add flag_trapping_math and
6185         flag_unsafe_math_optimizations.  Remove fast-math entry from f_options.
6186         Add trapping-math and unsafe-math-optimizations entries to f_options.
6187         (set_fast_math_flags): New, sets flags for -ffast-math.
6188         (set_no_fast_math_flags): New, sets flags for -fno-fast-math.
6189         (decode_f_option): Add code to handle -ffast-math and -fno-fast-math.
6190         * toplev.h: Declare set_fast_math_flags and set_no_fast_math_flags.
6191
6192         * config/alpha/alpha.c (alpha_emit_conditional_branch): Likewise.
6193         (alpha_emit_conditional_move): Initialize local_fast_math to
6194         flag_unsafe_math_optimizations, not flat_fast_math.
6195         * config/c4x/c4x.c (c4x_override_options): Call set_fast_math_flags
6196         instead of setting flag_fast_math to 1.
6197         * config/convex/convex.md: Check flag_unsafe_math_optimizations,
6198         not flag_fast_math.
6199         * config/i386/i386.c (override_options): Likewise
6200         * config/i386/i386.md: Likewise.
6201         * config/m68k/m68k.md: Likewise.
6202         * config/mips/mips.md: Likewise.
6203         * config/rs6000/rs6000.c (validate_condition_mode): Likewise.
6204         (rs6000_generate_compare): Likewise.
6205
6206 2001-03-07  Laurynas Biveinis  <lauras@softhome.net>
6207
6208         * Makefile.in: Set RANLIB to @RANLIB@.
6209         Remove RANLIB_TEST.
6210
6211 2001-03-07  Laurynas Biveinis  <lauras@softhome.net>
6212
6213         * fixinc/inclhack.def (djgpp_wchar_h): New test.
6214         * fixinc/fixincl.x: Regenerated.
6215
6216 2001-03-07  Richard Henderson  <rth@redhat.com>
6217
6218         * config/alpha/alpha.md (call_osf_1_noreturn): New pattern.
6219
6220 2001-03-07  Richard Henderson  <rth@redhat.com>
6221
6222         * emit-rtl.c (remove_unnecessary_notes): Verify proper nesting
6223         of block notes and exception handling notes.
6224
6225         * lists.c (init_EXPR_INSN_LIST_cache): Don't check initialized.
6226         * toplev.c (rest_of_compilation): Call init_EXPR_INSN_LIST_cache ...
6227         (compile_file): ... here.
6228
6229 2001-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6230
6231         * fixinc/Makefile.in (FIXINC_DEFS): Add -DHAVE_CONFIG_H.
6232
6233         * fixinc/gnu-regex.c: Don't include auto-host.h since we get
6234         config.h now.  Include libiberty.h to handle alloca.
6235
6236 2001-03-06  Zack Weinberg  <zackw@stanford.edu>
6237
6238         * c-parse.in (yylexname): New function, split out of _yylex.
6239         (objc_rid_sans_at): New table.
6240         (init_reswords): Initialize it.
6241         (_yylex): Give labels clearer names.  Handle CPP_ATSIGN by
6242         retrieving the next token and checking it for significance as
6243         an ObjC keyword or string constant.
6244
6245         * cpplex.c (_cpp_lex_token): Just return CPP_ATSIGN for '@'.
6246         * cpplib.h (TTYPE_TABLE): Add CPP_ATSIGN, drop CPP_OSTRING.
6247
6248         * c-lex.c, c-parse.in, cppmacro.c, cpplex.c: Remove references
6249         to CPP_OSTRING.
6250
6251 2001-03-06  Stephen L Moshier  <moshier@mediaone.net>
6252
6253         * config/m68k/m68k.c (const_uint32_operand): Accept any
6254         const_int on a 32-bit host.
6255
6256 2001-03-06  Nicola Pero  <n.pero@mi.flashnet.it>
6257
6258         * objc/objc-act.c (init_objc): Set save_lang_status,
6259         restore_lang_status, and mark_lang_status.
6260
6261 2001-03-06  Krister Walfridsson  <cato@df.lth.se>
6262
6263         * dwarf2asm.c (dw2_asm_output_delta): Fix smallest_mode_for_size call.
6264
6265 2001-03-06  Neil Booth  <neil@daikokuya.demon.co.uk>
6266
6267         * cppinternals.texi: Update.
6268
6269 2001-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6270
6271         * config/a29k/xm-a29k.h, config/a29k/xm-unix.h,
6272         config/alpha/xm-alpha.h, config/arc/xm-arc.h, config/arm/xm-arm.h,
6273         config/c4x/xm-c4x.h, config/clipper/xm-clix.h,
6274         config/convex/xm-convex.h, config/d30v/xm-d30v.h,
6275         config/dsp16xx/xm-dsp16xx.h, config/elxsi/xm-elxsi.h,
6276         config/h8300/xm-h8300.h, config/i370/xm-i370.h,
6277         config/i370/xm-linux.h, config/i370/xm-mvs.h, config/i370/xm-oe.h,
6278         config/i386/xm-i386.h, config/i860/xm-i860.h,
6279         config/i960/xm-i960.h, config/ia64/xm-ia64.h,
6280         config/m32r/xm-m32r.h, config/m68k/xm-m68k.h,
6281         config/m88k/xm-m88k.h, config/mcore/xm-mcore.h,
6282         config/mips/xm-mips.h, config/mn10200/xm-mn10200.h,
6283         config/mn10300/xm-mn10300.h, config/ns32k/xm-ns32k.h,
6284         config/pa/xm-linux.h, config/pa/xm-pa.h, config/pa/xm-pa64hpux.h,
6285         config/pa/xm-pahpux.h, config/pa/xm-papro.h, config/pj/xm-pj.h,
6286         config/romp/xm-romp.h, config/rs6000/xm-beos.h,
6287         config/rs6000/xm-lynx.h, config/rs6000/xm-rs6000.h,
6288         config/rs6000/xm-sysv4.h, config/sh/xm-sh.h,
6289         config/sparc/xm-sparc.h, config/sparc/xm-sysv4.h,
6290         config/v850/xm-v850.h, config/vax/xm-vax.h, config/vax/xm-vms.h,
6291         config/we32k/xm-we32k.h: Delete HOST_BITS_PER_* definitions which
6292         match the defaults provided in hwint.h.
6293
6294         * config/i386/xm-lynx.h, config/m68k/xm-lynx.h,
6295         config/sparc/xm-lynx.h, config/xm-std32.h: Delete files.
6296
6297         * config.gcc (xm_file): Don't set to files which are deleted.
6298
6299         * hwint.h: Provide default values for HOST_BITS_PER_*.  No longer
6300         guard this file against these macros being undefined.
6301
6302 2001-03-06  Zack Weinberg  <zackw@stanford.edu>
6303
6304         * objc/objc-act.c (objc_add_static_instance): Set DECL_INITIAL
6305         and DECL_DEFER_OUTPUT on the decl we create, before calling
6306         rest_of_decl_compilation.
6307
6308 2001-03-06  Zack Weinberg  <zackw@stanford.edu>
6309
6310         * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE
6311         AC_FUNC_ALLOCA.
6312         * configure, config.in: Regenerate.
6313         * config.gcc: Remove references to deleted files.
6314
6315         * genattr.c, genattrtab.c, genextract.c, genoutput.c,
6316         genrecog.c, rtl.c: Do not use alloca anywhere.
6317
6318         * Makefile.in, build-make, system.h, config/x-interix,
6319         config/x-svr4, config/xm-interix.h, config/xm-openbsd.h,
6320         config/alpha/xm-alpha.h, config/alpha/xm-vms.h,
6321         config/arc/xm-arc.h, config/arm/xm-arm.h,
6322         config/d30v/xm-d30v.h, config/dsp16xx/xm-dsp16xx.h,
6323         config/h8300/xm-h8300.h, config/i370/x-oe,
6324         config/i370/xm-linux.h, config/i386/x-aix, config/i386/x-beos,
6325         config/i386/x-ncr3000, config/i386/x-sco5,
6326         config/i386/xm-dgux.h, config/i860/x-sysv4,
6327         config/i960/xm-i960.h, config/m32r/xm-m32r.h,
6328         config/m68k/x-crds, config/m68k/x-dpx2, config/m68k/x-hp320,
6329         config/m68k/x-hp320g, config/m69k/x-mot3300,
6330         config/m68k/x-mot3300-gas, config/m68k/xm-amix.h,
6331         config/m68k/xm-hp320.h, config/m68k/xm-m68kv.h,
6332         config/m68k/xm-mot3300.h, config/m88k/x-dolph,
6333         config/m88k/x-sysv4, config/m88k/x-tekXD88,
6334         config/m88k/xm-m88k.h, config/mcore/xm-mcore.h,
6335         config/mips/x-iris, config/mips/x-iris3,
6336         config/mips/x-sni-svr4, config/mips/x-sysv,
6337         config/mips/xm-iris6.h, config/mips/xm-mips.h,
6338         config/mips/xm-nws3250v4.h, config/pa/x-hpux,
6339         config/pa/x-pa-mpeix, config/pa/xm-pa.h,
6340         config/pa/xm-pa64hpux.h, config/pa/xm-pahpux.h,
6341         config/pa/xm-papro.h, config/romp/xm-romp.h,
6342         config/rs6000/x-aix31, config/rs6000/x-aix41,
6343         config/rs6000/x-beos, config/rs6000/x-lynx,
6344         config/rs6000/x-mach, config/rs6000/x-rs6000,
6345         config/rs6000/x-sysv4, config/rs6000/xm-rs6000.h,
6346         config/rs6000/xm-sysv4.h, config/sh/xm-sh.h,
6347         config/sparc/x-sysv4, config/sparc/xm-linux.h,
6348         config/sparc/xm-pbd.h, config/sparc/xm-sparc.h,
6349         config/vax/xm-vms.h: Eradicate all references to alloca and
6350         related stuff.
6351
6352         * config/xm-alloca.h, config/clipper/x-clix,
6353         config/i386/xm-sysv4.h, config/i860/x-fx2800,
6354         config/i860/x-sysv3, config/m88k/x-sysv3,
6355         config/sparc/xm-sol2.h, config/we32k/x-we32k: Delete
6356         (contained only alloca related hacks).
6357
6358         * config/i386/xm-beos.h, config/rs6000/xm-beos.h: Just define
6359         USE_C_ALLOCA.
6360
6361 2001-03-05  Brad Lucier  <lucier@math.purdue.edu>
6362
6363         * invoke.texi: Document __FAST_MATH__.
6364
6365 2001-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6366
6367         * crtstuff.c: Restore include of auto-host.h.
6368
6369 2001-03-05  Fergus Henderson  <fjh@cs.mu.oz.au>
6370
6371         Put main() in a separate file, so that the language
6372         front-end can use a different main().
6373
6374         * main.c: New.
6375         * toplev.c: (main): Rename as toplev_main.
6376         * toplev.h: Declare toplev_main.
6377         * Makefile.in (OBJS): add toplev.o.
6378           (BACKEND): remove toplev.o, add main.o.
6379
6380 2001-03-04  Neil Booth  <neil@daikokuya.demon.co.uk>
6381
6382         * cppfiles.c (search_from): Special case the empty string.
6383
6384 2001-03-04  Neil Booth  <neil@daikokuya.demon.co.uk>
6385
6386         * cppfiles.c (_cpp_execute_include): Don't make a null-terminated
6387         copy of the filename.  Don't use CPP_PREV_BUFFER.  Don't call
6388         strlen or strcpy; we already know the length.
6389         (_cpp_compare_file_date): Similarly.
6390         * cpphash.h (struct cpp_reader): Delete done_initialising.
6391         (CPP_PREV_BUFFER): Delete.
6392         * cppinit.c (cpp_start_read): Don't set done_initialising.
6393         * cpplex.c (parse_string): Guarantee null-termination.
6394         (_cpp_equiv_toklists): Remove.
6395         * cpplib.c (glue_header_name): Null-terminate.
6396         (do_line): Don't leak memory.
6397         * cpplib.h (BT_WEAK): Delete.
6398         * cppmain.c (cb_ident): Strings are now null-terminated.
6399
6400 2001-03-04  Laurynas Biveinis  <lauras@softhome.net>
6401
6402         * gcc.c (convert_filename): Append executable suffix
6403         if NO_AUTO_EXE_SUFFIX is not defined.
6404         * gcc.texi: Document NO_AUTO_EXE_SUFFIX.
6405         * config/i386/djgpp.h: Define NO_AUTO_EXE_SUFFIX.
6406
6407 2001-03-03  David O'Brien  <obrien@FreeBSD.org>
6408
6409         from 2000-09-06  Zack Weinberg  <zack@wolery.cumb.org>
6410         * c-parse.gperf, c-gperf.h: Delete.
6411         (c-gperf.h was accidently re-added to the CVS repo in the rev
6412         1.16 commit by tromey)
6413
6414 2001-03-03  Neil Booth  <neil@daikokuya.demon.co.uk>
6415
6416         * cpplex.c (_cpp_lex_token): Don't warn about directives in
6417         macro arguments when looking for the '('.
6418         * cppmacro.c (funlike_invocation_p): Set parsing_args to
6419         2 when really parsing arguments; 1 when looking for '('.
6420         Always restore the lexer position.
6421
6422 2001-03-03  Neil Booth  <neil@daikokuya.demon.co.uk>
6423
6424         * longlong.h (umul_ppmm): Don't use a multiline string.
6425
6426 2001-03-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6427
6428         * fixinc/fixlib.h (t_bool): Add identifier `t_bool' in typedef.
6429         * fixinc/server.c (read_pipe_timeout): Use enum t_bool instead of
6430         t_bool in declaration because pcc can't combine volatile with typedef
6431         types.
6432
6433 Sat Mar  3 19:47:13 CET 2001  Jan Hubicka  <jh@suse.cz>
6434
6435         * i386.c (ix86_expand_fp_compare): Delay creating of scratch register
6436         until when it is really needed.
6437         (ix86_expand_compare): Update call of ix86_expand_fp_compare.
6438         * i386.h (PREDICATE_CODES): Add all codes for sse_comparison_operator
6439         * i386.md (float?i?f splitter): Don't force source operand to memory
6440         for SSE.
6441         (sse_movdfcc): Fix constraint.
6442         (sse_movdfcc splitter): Handle properly the second alternative.
6443
6444 2001-03-03  Neil Booth  <neil@daikokuya.demon.co.uk>
6445
6446         * cpplex.c (parse_string): Unconditionally pedwarn.
6447
6448 2001-03-03  Neil Booth  <neil@daikokuya.demon.co.uk>
6449
6450         * cpp.texi: Update.
6451         * cppexp.c (parse_number): Update.
6452         * cpplex.c (parse_string): Pedwarn if multiline string does not
6453         result from a system header's macro.
6454         * cpplib.h (sys_objmacro_p): Rename sys_macro_p.
6455         * cppmacro.c (sys_objmacro_p): Rename sys_macro_p.  Return true
6456         for function-like macros too.
6457         * c-lex.c (lex_number): Update.
6458
6459 2001-03-03  Richard Henderson  <rth@redhat.com>
6460
6461         * dwarf2out.c (output_call_frame_info): Fix augmentation length.
6462
6463 Sat Mar  3 04:17:17 2001  J"orn Rennecke <amylaar@redhat.com>
6464
6465         * combine.c (try_combine): If split with mode-changed scratch
6466         register didn't work, try the original mode.
6467
6468 Sat Mar  3 03:46:47 2001  J"orn Rennecke <amylaar@redhat.com>
6469
6470         * tm.texi: Change STRUCT_FORCE_BLK to MEMBER_TYPE_FORCES_BLK.
6471         * config/c4x/c4x.h: Likewise.
6472         * stor-layout.c (compute_record_mode): Likewise.
6473         (layout_type, case ARRAY_TYPE): Use MEMBER_TYPE_FORCES_BLK.
6474
6475 2001-03-02  Zack Weinberg  <zackw@stanford.edu>
6476
6477         * configure.in: Kill tm.h.  Include the files in the $tm_file
6478         list in all three of config.h, hconfig.h, tconfig.h, after the
6479         relevant set of xm_files.  Put TARGET_CPU_DEFAULT in all
6480         three, include insn-codes.h in all three (#ifndef GENERATOR_FILE).
6481         * configure: Regenerate.
6482         * Makefile.in (clean): Don't delete tm.h.
6483
6484         * system.h: If SUCCESS_EXIT_CODE and FATAL_EXIT_CODE are not
6485         defined, set them from EXIT_SUCCESS and EXIT_FAILURE.  If
6486         those are not defined, set SEC and FEC to 0 and 1.
6487         * gcc.texi: Update to match.
6488
6489         * crtstuff.c: Include tconfig.h, not auto-host.h and tm.h.
6490         * config/fp-bit.c, config/m68k/aux-crt2.asm,
6491         config/m68k/aux-crtn.asm, config/m68k/aux-mcount.c:
6492         Include tconfig.h, not tm.h.
6493
6494         * config/xm-lynx.h, config/xm-std32.h,
6495         config/a29k/xm-a29k.h, config/a29k/xm-unix.h,
6496         config/alpha/xm-alpha.h, config/arc/xm-arc.h,
6497         config/avr/xm-avr.h, config/c4x/xm-c4x.h,
6498         config/clipper/xm-clix.h, config/convex/xm-convex.h,
6499         config/d30v/xm-d30v.h, config/dsp16xx/xm-dsp16xx.h,
6500         config/elxsi/xm-elxsi.h, config/fr30/xm-fr30.h,
6501         config/h8300/xm-h8300.h, config/i370/xm-linux.h,
6502         config/i386/xm-i386.h, config/i860/xm-i860.h,
6503         config/i960/xm-i960.h, config/ia64/xm-ia64.h,
6504         config/m32r/xm-m32r.h, config/m68hc11/xm-m68hc11.h,
6505         config/m88k/xm-m88k.h, config/mcore/xm-mcore.h,
6506         config/mips/xm-mips.h, config/mn10200/xm-mn10200.h,
6507         config/mn10300/xm-mn10300.h, config/ns32k/xm-ns32k.h,
6508         config/pa/xm-linux.h, config/pa/xm-pa.h,
6509         config/pa/xm-pa64hpux.h, config/pa/xm-pahpux.h,
6510         config/pa/xm-papro.h, config/pdp11/xm-pdp11.h,
6511         config/pj/xm-pj.h, config/romp/xm-romp.h,
6512         config/rs6000/xm-beos.h, config/rs6000/xm-rs6000.h,
6513         config/rs6000/xm-sysv4.h, config/sh/xm-sh.h,
6514         config/sparc/xm-sparc.h, config/sparc/xm-sysv4.h,
6515         config/v850/xm-v850.h, config/vax/xm-vax.h,
6516         config/we32k/xm-we32k.h:
6517         Don't include tm.h.
6518         Don't define SUCCESS_EXIT_CODE or FATAL_EXIT_CODE.
6519
6520         * config/i370/xm-i370.h, config/i370/xm-mvs.h,
6521         config/i370/xm-oe.h: Don't include tm.h.  Don't define
6522         SUCCESS_EXIT_CODE.
6523         * config/vax/xm-vms.h: Don't include tm.h.
6524
6525         * config/xm-lynx.h, config/avr/xm-avr.h,
6526         config/fr30/xm-fr30.h, config/pdp11/xm-pdp11.h,
6527         Delete; made empty by above changes.
6528         * config/i386/xm-lynx.h, config/m68k/xm-lynx.h,
6529         config/rs6000/xm-lynx.h, config/sparc/xm-lynx.h:
6530         Don't include config/xm-lynx.h or tm.h.
6531
6532         * config/xm-gnu.h: Don't include fcntl.h.
6533         * config/sparc/xm-lynx.h: Don't include sys/types.h and
6534         sys/wait.h.
6535         * config/clipper/xm-clix.h, config/vax/xm-vax.h: Don't define isinf.
6536
6537 2001-03-02  Richard Henderson  <rth@redhat.com>
6538
6539         * tm.texi (File Framework): Document UNALIGNED_SHORT_ASM_OP,
6540         UNALIGNED_INT_ASM_OP, and UNALIGNED_DOUBLE_INT_ASM_OP.
6541
6542 2001-03-02  Richard Henderson  <rth@redhat.com>
6543
6544         * Makefile.in (OBJS): Add dwarf2asm.o.
6545         * dwarf2asm.c, dwarf2asm.h: New files.
6546         * dwarf2out.c (*): Use them.
6547         (size_of_uleb128, size_of_sleb128): Remove.
6548         (output_uleb128, output_sleb128): Remove.
6549         (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Remove.
6550         (UNALIGNED_DOUBLE_INT_ASM_OP, ASM_BYTE_OP): Remove.
6551         (UNALIGNED_OFFSET_ASM_OP, UNALIGNED_WORD_ASM_OP): Remove.
6552         (FDE_LABEL, LINE_NUMBER_BEGIN_LABEL, LINE_NUMBER_END_LABEL): New.
6553         (ASM_OUTPUT_DWARF_DATA1, ASM_OUTPUT_DWARF_DELTA1): Remove.
6554         (ASM_OUTPUT_DWARF_DATA2, ASM_OUTPUT_DWARF_DELTA2): Remove.
6555         (ASM_OUTPUT_DWARF_DATA4, ASM_OUTPUT_DWARF_DELTA4): Remove.
6556         (ASM_OUTPUT_DWARF_DATA, ASM_OUTPUT_DWARF_DELTA): Remove.
6557         (ASM_OUTPUT_DWARF_ADDR, ASM_OUTPUT_DWARF_ADDR_DATA): Remove.
6558         (ASM_OUTPUT_DWARF_ADDR_DELTA, ASM_OUTPUT_DWARF_ADDR_CONST): Remove.
6559         (ASM_OUTPUT_DWARF_OFFSET4, ASM_OUTPUT_DWARF_OFFSET): Remove.
6560         (ASM_OUTPUT_DWARF_CONST_DOUBLE): Remove.
6561         (ASM_OUTPUT_DWARF_NSTRING, ASM_OUTPUT_DWARF_STRING): Remove.
6562         (dwarf2out_frame_debug): Remove unused variables.
6563         (output_loc_operands): Don't abort on 8 byte constants if
6564         host integers are wide enough.
6565         (output_symbolic_ref): Remove.
6566         (size_of_die): Don't assume 4 byte host integers.
6567         (output_line_info): Use ASM_GENERATE_INTERNAL_LABEL for begin
6568         and end labels.
6569         (add_const_value_attribute) [CONST_INT]: Verify we're not doing
6570         something stupid with HOST_WIDE_INT to long truncation.
6571         [CONST_DOUBLE]: Likewise.
6572
6573         * config/arm/conix-elf.h (UNALIGNED_WORD_ASM_OP): Remove.
6574         (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_OUTPUT_DWARF_ADDR_CONST): Remove.
6575         * config/arm/unknown-elf.h: Likewise.
6576         * config/rs6000/aix.h (UNALIGNED_SHORT_ASM_OP): New.
6577         (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): New.
6578         (ASM_OUTPUT_DWARF_ADDR_VAR, ASM_OUTPUT_DWARF_DELTA_VAR): Remove.
6579         (ASM_OUTPUT_DWARF_DELTA2, ASM_OUTPUT_DWARF_DELTA4): Remove.
6580         (ASM_OUTPUT_DWARF_DELTA, ASM_OUTPUT_DWARF_ADDR_DELTA): Remove.
6581         (ASM_OUTPUT_DWARF_ADDR, ASM_OUTPUT_DWARF_DATA4): Remove.
6582         (ASM_OUTPUT_DWARF_DATA2, ASM_OUTPUT_DWARF_OFFSET4): Remove.
6583         (ASM_OUTPUT_DWARF_OFFSET): Remove.
6584         * config/rs6000/sysv4.h (ASM_OUTPUT_DWARF_ADDR): Remove.
6585         * config/sparc/sp64-elf.h (UNALIGNED_DOUBLE_INT_ASM_OP): New.
6586         (UNALIGNED_LONGLONG_ASM_OP, ASM_OUTPUT_DWARF_ADDR): Remove.
6587         (ASM_OUTPUT_DWARF_ADDR_CONST, ASM_OUTPUT_DWARF_REF): Remove.
6588
6589 2001-03-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6590
6591         * cselib.c (hash_rtx): Cast enums to unsigned int.
6592
6593 2001-03-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6594
6595         * print-rtl.c (print_rtx): Cast enums to int for comparison.
6596         * c-decl.c (grokdeclarator): Cast enums to int for comparison and
6597         shifts.
6598         * c-format.c (C_STD_VER): Cast to int for comparisons.
6599         (check_function_format): Cast various enums to int for &.
6600         (maybe_read_dollar_number): Likewise.
6601         (check_format_info): Likewise.
6602         (check_format_info_main): Likewise.
6603         * expr.c (emit_move_insn_1): Cast enums to unsigned int for comparison.
6604         (safe_from_p): Likewise.
6605         * varasm.c (const_hash): Cast enum to int for %.
6606         * emit-rtl.c (init_emit_once): Use int loop variable to work around
6607         pcc enum problems with < and ++ operators.
6608         * regclass.c (init_reg_sets_1): Cast enums for comparison.
6609         (choose_hard_reg_mode): Use unsigned int to iterate over CCmodes.
6610         (regclass_init): Change enum class to int to iterate over reg_classes.
6611         * genrecog.c (merge_trees): Cast enums for comparison.
6612         * rtl.h (GET_CODE): Cast to enum rtx_code.
6613         (PUT_CODE): Cast to ENUM_BITFIELD(rtx_code).
6614         (GET_MODE): Cast to enum machine_mode.
6615         (PUT_MODE): Cast to ENUM_BITFIELD(machine_mode).
6616         (GET_NOTE_INSN_NAME): Cast enum to int.
6617         * tree.h (TREE_CODE): Cast to enum tree_code.
6618         (TREE_SET_CODE): Cast VALUE to ENUM_BITFIELD(tree_code).
6619         * timevar.c (timevar_print): Change loop variable id from enum to
6620         unsigned int.
6621         * fixinc/fixincl.c (VLEVEL): Cast enums in comparison to unsigned int.
6622         * config/i386/i386.md: Use PUT_MODE for mode assignment.
6623         * toplev.c (compile_file): Cast enum DFI to int.
6624         (decode_d_option): Likewise.
6625
6626 Fri Mar  2 12:18:13 2001  Christopher Faylor <cgf@cygnus.com>
6627
6628         * cppinit.c (append_include_chain): Mark "after" include file name list
6629         as a system directory.
6630         * cpp.texi: Document new behavior.
6631
6632 Fri Mar  2 11:59:43 CET 2001  Jan Hubicka  <jh@suse.cz>
6633
6634         * ifcvt.c (noce_operand_ok): Handle properly unarry operations.
6635
6636 2001-03-02  Neil Booth  <neil@daikokuya.demon.co.uk>
6637
6638         * cppfiles.c (struct include_file): Update.
6639         (stack_include_file): Use search_from.
6640         (cpp_included, find_include_file): Update.
6641         (cpp_execute_include): Update.  ptr->name may not be
6642         null terminated.  Use the new search_from member variable
6643         of cpp_buffer.
6644         (_cpp_compare_file_date): Similarly.
6645         (search_from): New function, similiar to actual_directory.
6646         (actual_directory): Delete.
6647         (remap_filename): Update.  loc->name may not be null terminated.
6648         (struct file_name_list): Rename search_path.  Update.
6649         * cpphash.h (struct cpp_buffer): Delete actual_dir.  New members
6650         search_from and dir.
6651         (struct cpp_reader): Remove actual_dirs.
6652         * cppinit.c (struct cpp_pending): Update for renamed objects.
6653         (append_include_chain, remove_dup_dir, remove_dup_dirs,
6654         merge_include_chains, cpp_destroy, cpp_start_read): Similarly.
6655         * cpplib.h (struct cpp_options): Similarly.
6656
6657 2001-03-01  Zack Weinberg  <zackw@stanford.edu>
6658
6659         * config/xm-lynx.h, config/xm-std32.h, config/a29k/xm-a29k.h,
6660         config/a29k/xm-unix.h, config/alpha/xm-alpha.h,
6661         config/arc/xm-arc.h, config/arm/xm-arm.h, config/c4x/xm-c4x.h,
6662         config/clipper/xm-clix.h, config/convex/xm-convex.h,
6663         config/d30v/xm-d30v.h, config/dsp16xx/xm-dsp16xx.h,
6664         config/elxsi/xm-elxsi.h, config/fr30/xm-fr30.h,
6665         config/h8300/xm-h8300.h, config/i370/xm-i370.h,
6666         config/i370/xm-linux.h, config/i370/xm-mvs.h,
6667         config/i370/xm-oe.h, config/i386/xm-aix.h,
6668         config/i386/xm-i386.h, config/i386/xm-osf.h,
6669         config/i860/xm-i860.h, config/i960/xm-i960.h,
6670         config/ia64/xm-ia64.h, config/m32r/xm-m32r.h,
6671         config/m68k/xm-m68k.h, config/m88k/xm-m88k.h,
6672         config/mcore/xm-mcore.h, config/mips/xm-mips.h,
6673         config/mn10200/xm-mn10200.h, config/mn10300/xm-mn10300.h,
6674         config/ns32k/xm-ns32k.h, config/pa/xm-linux.h,
6675         config/pa/xm-pa.h, config/pa/xm-pa64hpux.h,
6676         config/pa/xm-pahpux.h, config/pa/xm-papro.h,
6677         config/pj/xm-pj.h, config/romp/xm-romp.h,
6678         config/rs6000/xm-beos.h, config/rs6000/xm-rs6000.h,
6679         config/rs6000/xm-sysv4.h, config/sh/xm-sh.h,
6680         config/sparc/xm-sparc.h, config/sparc/xm-sysv4.h,
6681         config/v850/xm-v850.h, config/vax/xm-vax.h,
6682         config/vax/xm-vms.h, config/we32k/xm-we32k.h:
6683         Do not define TRUE or FALSE.
6684
6685         * config/i386/xm-aix.h, config/i386/xm-osf.h: Delete; made
6686         empty by above change.
6687         * config.gcc: Remove references to these files.
6688
6689         * configure.in: Detect stdbool.h.
6690         * configure, config.in: Regenerate.
6691         * system.h: Include stddef.h here if available.
6692         Set HAVE__BOOL based on GCC_VERSION and __STDC_VERSION__.
6693         Then set up a sensible boolean type at the very end.
6694
6695         * combine.c, cse.c, expr.c, fold-const.c, gensupport.c,
6696         config/mcore/mcore.c: Rename variables named 'true' and/or 'false'.
6697
6698         * hash.h: Delete 'boolean' typedef and related #undefs.
6699
6700         * function.c, ggc-common.c, hash.h, hash.c, tlink.c: Replace
6701         all uses of 'boolean' with 'bool'.
6702
6703 2001-03-01  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6704
6705         * cpplib.c (_cpp_init_stacks): Cast enum for comparison.
6706         * cppexp.c (lex): Cast enums for comparison.
6707         * cppinit.c (parse_option): Cast enum for comparison.
6708         * cpplex.c (cpp_spell_token): Cast enums to int for minus.
6709         (cpp_output_token): Likewise.
6710         (cpp_can_paste): Cast enums for comparsion and plus/minus.
6711         (cpp_avoid_paste): Cast enums for minus and comparison.
6712
6713 2001-03-01  Zack Weinberg  <zackw@stanford.edu>
6714
6715         * gcc.c, objc/lang-specs.h: Add zero initializer for cpp_spec
6716         field to all array elements.
6717
6718 2001-03-01  Zack Weinberg  <zackw@stanford.edu>
6719
6720         * cpphash.h (struct cpp_reader): Add print_version field.
6721         * cppinit.c (cpp_handle_option): For -v, -version, and --version,
6722         just set print_version and other flags as appropriate.
6723         (cpp_post_options): Print version here if print_version is set.
6724
6725         * toplev.c (exit_after_options): New flag.
6726         (independent_decode_option): Don't exit here; just set
6727         exit_after_options.
6728         (main): Exit after calling lang_hooks.post_options if
6729         exit_after_options is true.
6730
6731         * cppinit.c (append_include_chain): Drop never-used case QUOTE.
6732         (merge_include_chains): Adjust comment to match code.
6733
6734 2001-03-01  Zack Weinberg  <zackw@stanford.edu>
6735
6736         * stringpool.c (set_identifier): New function.
6737         * tree.h: Prototype it.
6738
6739         * c-parse.in: Kill D_YES. If compiled for objc, call
6740         save_and_forget_protocol_qualifiers from init_reswords.
6741         * objc/objc-act.c (remember_protocol_qualifiers,
6742         forget_protocol_qualifiers): Don't diddle C_IS_RESERVED_WORD.
6743         Swap out the non-keyword IDENTIFIER_NODEs for keyword ones, or
6744         vice versa.
6745         (save_and_forget_protocol_qualifiers): New function.
6746         * c-lex.h: Prototype save_and_forget_protocol_qualifiers.
6747
6748 2001-03-01  Diego Novillo  <dnovillo@redhat.com>
6749
6750         * c-semantics.c (prune_unused_decls): Return error_mark_node
6751         instead of (tree) 1 to stop traversing the tree chain.
6752
6753 2001-03-01  Bernd Schmidt  <bernds@redhat.com>
6754
6755         Fix a problem introduced by Kenner's Feb 18 change.
6756         * toplev.c (rest_of_compilation): Disable flag_cse_follow_jumps and
6757         flag_cse_skip_blocks only temporarily, not for ever.
6758
6759 Thu Mar  1 09:49:58 2001  Jeffrey A Law  (law@cygnus.com)
6760
6761         * config/pa/som.h  (ASM_IDENTIFY_GCC): Define.
6762         (ASM_IDENTIFY_GCC_AFTER_SOURCE): Likewise.
6763
6764         * pa.c (emit_move_sequence): Verify operand0 is a hard register
6765         before determining its register class.
6766
6767 2001-03-01  Bernd Schmidt  <bernds@redhat.com>
6768
6769         * config/ia64/ia64.c (ia64_hard_regno_rename_ok): Disallow renaming
6770         from reg 4 if current_function_calls_setjmp.
6771         (gen_nop_type): New function.
6772         (ia64_emit_nops): New function.
6773         (ia64_reorg): Call it.
6774         (ia64_sched_reorder): Move code that rotates bundles up a bit.
6775
6776         * reload1.c (eliminate_regs_in_insn): Restrict the special case
6777         code not to try to optimize adds with anything but a REG destination.
6778
6779         * sched-int.h (struct haifa_insn_data): Add new member priority_known.
6780         (INSN_PRIORITY_KNOWN): New accessor macro.
6781         * haifa-sched.c (priority): Use it instead of testing priority against
6782         zero.
6783
6784 2001-02-28  DJ Delorie  <dj@redhat.com>
6785
6786         * config/m68k/m68k.h (MOVE_BY_PIECES_P): Avoid pushing bytes,
6787         since that doesn't work the way gcc wants on a generic m68k.
6788
6789 2001-02-28  Richard Henderson  <rth@redhat.com>
6790
6791         * caller-save.c (save_call_clobbered_regs): Fix typo in
6792         comparison last change.
6793
6794 Wed Feb 28 19:31:42 CET 2001  Jan Hubicka  <jh@suse.cz>
6795
6796         * i386.c (pentium4_cost): New.
6797         (m_PENT4): New macro.
6798         (x86_push_memory, x86_movx,x86_cmove, x86_deep_branch, x86_use_sahf
6799         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8
6800         x86_integer_DFmode_moves, x86_partial_reg_dependency,
6801         x86_memory_mismatch_stall): Add Pentium4
6802         (x86_use_q_reg, x86_use_any_reg): Kill.
6803         (override_options): Add pentium4.
6804         (incdec_operand): Return 0 for pentium4.
6805         (ix86_issue_rate): Add PROCESSOR_PENTIUM4 and PROCESSOR_ATHLON.
6806         * i386.h (x86_use_q_reg, x86_use_any_reg): Kill.
6807         (TARGET_PENTIUM4): Define.
6808         (enum processor_type): Add PROCESSOR_PENTIUM4.
6809         (CPP_CPU_DEFAULT_SPEC): Add pentium4 support.
6810         * i386.md (attribute "cpu"): Add pentium4.
6811         * invoke.texi (march): Add pentium4.
6812
6813 Wed Feb 28 19:28:06 CET 2001  Jan Hubicka  <jh@suse.cz>
6814
6815         * i386.md (sse_mov?fcc*): New patterns and splitters.
6816         * i386.c (ix86_expand_movcc): Work post-reload; recognize
6817         the SSE based conditional moves.
6818
6819 Wed Feb 28 19:18:23 CET 2001  Jan Hubicka  <jh@suse.cz>
6820
6821         * i386.md (attribute mode): Add "TI".
6822         (movsf_1): Add pxor support; remove constant propagation splitter.
6823         (movdf_integer): Likewise.
6824         (movdf_nointeger): Likewise.
6825         (movxf constant prop splitter): Handle all modes; update for SSE.
6826         * i386.h (CONST_DOUBLE_OK_FOR_LETTER): Add 'H' for SSE constants.
6827         * i386.c (standard_80387_constant_p): Rewrite.
6828         (standard_sse_constant_p): New.
6829         * i386-protos.h (standard_sse_constant_p): New.
6830
6831 Wed Feb 28 19:05:37 CET 2001  Jan Hubicka  <jh@suse.cz>
6832
6833         * i386.md (sse_setccsf, sse_setccdf): New.
6834         (sse_cmp* patterns): Use '%D' instead of outputtting condition
6835         flag directly.
6836         * i386.c (sse_comparison_operator): Accept the supported unordered
6837         comparses; be ready for fast_math.
6838         (print_operand): Support 'D'.
6839
6840 Wed Feb 28 18:54:51 CET 2001  Jan Hubicka  <jh@suse.cz>
6841
6842         * jump.c (reversed_comparison_code): Kill.
6843
6844 Wed Feb 28 18:50:15 CET 2001  Jan Hubicka  <jh@suse.cz>
6845
6846         * toplev.c (rest_of_compilation): Do post-reload splitting unconditionally
6847         for STACK_REGS
6848
6849 Wed Feb 28 18:47:37 CET 2001  Jan Hubicka  <jh@suse.cz>
6850
6851         * i386.md (sse_andti3, sse_nandti_3, sse_xorti3): Add SSE2 versions;
6852         add missing '%' in constraints.
6853
6854 Wed Feb 28 17:24:24 CET 2001  Jan Hubicka  <jh@suse.cz>
6855
6856         * c-common.c (build_common_tree_nodes): Build intTI_type_nodes
6857         for HOST_BITS_PER_WIDE_INT == 32 too.
6858
6859 Wed Feb 28 17:22:35 CET 2001  Jan Hubicka  <jh@suse.cz>
6860
6861         * caller-save.c (reg_save_code, reg_restore_code):  Index by mode, not
6862         NREGS.
6863         (insert_save, insert_restore): New parameter save_mode.
6864         (init_caller_save): Update initialization of reg_save_code
6865         and reg_restore_code.
6866         (save_call_clobbered_regs):  Compute save_modes and update calls to
6867         reg_save_code and reg_restore_code.
6868         (insert_restore):  Unsignetize numbers; use save_modes to choose mode
6869         of spill; update use of reg_restore_code.
6870         (insert_save):  Likewise.
6871         * i386.h (HARD_REGNO_CALLER_SAVE_MODE): Update.
6872         * c4x.h (HARD_REGNO_CALLER_SAVE_MODE): Update.
6873         * regs.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
6874
6875 Wed Feb 28 17:19:28 CET 2001  Jan Hubicka  <jh@suse.cz>
6876
6877         * ifcvt.c (noce_emit_store_flag, noce_try_store_flag_constants,
6878         noce_try_store_flag_inc, noce_try_store_flag_mask,
6879         noce_try_cmove_arith):
6880         Use reversed_comparison_code instead of reverse_comparison and
6881         can_reverse_comparison_p.
6882
6883 Wed Feb 28 17:17:29 CET 2001  Jan Hubicka  <jh@suse.cz>
6884
6885         * jump.c (reversed_comparison_code_parts): Allow reversal of
6886         unordered compares in -ffast-math mode; reverse ordered compares
6887         for FP even w/o -ffast-math.
6888
6889 2001-02-27  Richard Henderson  <rth@redhat.com>
6890
6891         * print-rtl.c (print_rtx) [i]: Don't print field five on
6892         NOTEs other than NOTE_INSN_DELETED_LABEL.
6893
6894 2001-02-27  Zack Weinberg  <zackw@stanford.edu>
6895
6896         * mips/xm-iris4.h: Delete #if 0 block (there since before 1997).
6897         * pa/xm-linux.h, pa/xm-pa.h, pa/xm-papro.h: Don't declare errno.
6898
6899 2001-02-27  Diego Novillo  <dnovillo@redhat.com>
6900
6901         * c-common.c (walk_stmt_tree): Visit the chain of the current tree
6902         even if walk_subtrees is 0.
6903         * c-semantics.c (prune_unused_decls): Return a non-null value to
6904         stop traversing the tree chain.
6905
6906 2001-02-27  DJ Delorie  <dj@redhat.com>
6907
6908         * config/m68k/m68k.c (output_function_prologue): Save the new CFA
6909         register, *then* define it as the new CFA.
6910
6911 Tue Feb 27 16:49:13 2001  Jeffrey A Law  (law@cygnus.com)
6912
6913         * pa.c (override_options): Promote -fpic to -fPIC.
6914         (legitimize_pic_address): Simplify due to removal of
6915         small PIC as a code generation option.
6916         (secondary_reload_class): Similarly.
6917         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Similarly.
6918         (PRINT_OPERAND_ADDRESS): Similarly.
6919         * pa.md (various patterns): Similarly.
6920         (small pic lo_sum pattern): Remove.
6921
6922 Tue Feb 27 16:01:13 CET 2001  Jan Hubicka  <jh@suse.cz>
6923                               Fergus Henderson
6924
6925         * md.texi (min, max): Document
6926
6927 Tue Feb 27 15:51:35 CET 2001  Jan Hubicka  <jh@suse.cz>
6928
6929         * i386.md (movsf, movdf): Use movaps for reg-reg moves if
6930         TARGET_PARTIAL_REG_DEPENDENCY.
6931         (truncdfsf2_1_sse, truncdfsf2_2): Penalize the fpreg->mem case.
6932
6933 Tue Feb 27 15:36:48 CET 2001  Jan Hubicka  <jh@suse.cz>
6934
6935         * i386.md (mins*, maxs*): New patterns, expanders and splitters.
6936
6937 2001-02-26  Jeffrey Oldham  <oldham@codesourcery.com>
6938
6939         * mips.c (mips_make_temp_file): Fix thinko in last change.
6940
6941 2001-02-26  Jason Eckhardt  <jle@redhat.com>
6942
6943         * combine.c (known_cond): Do not reverse the condition when
6944         SMAX/UMAX is being considered and the condition is for equality
6945         or inequality.
6946
6947         * testsuite/gcc.c-torture/execute/20010221-1.c: New test.
6948
6949 2001-02-26  Philip Blundell  <philb@gnu.org>
6950
6951         * config.gcc: Remove obsolete targets "arm*-*-linuxoldld" and
6952         "armv2-*-linux".
6953         * config/arm/linux-elf.h: Remove historical relics related to
6954         above configurations.
6955         * config/arm/linux-oldld.h: Delete.
6956         * config/arm/linux-elf26.h: Delete.
6957
6958 2001-02-26  Jason Merrill  <jason@redhat.com>
6959
6960         * c-decl.c (finish_decl): Set DECL_DEFER_OUTPUT on tentative file-scope
6961         definitions.
6962         * toplev.c (rest_of_decl_compilation): Check DECL_DEFER_OUTPUT to
6963         recognize a tentative definition.  Lose obsolete code.
6964
6965         * toplev.c (wrapup_global_declarations): Don't emit DECL_COMDAT
6966         variables unless necessary, either.
6967
6968 2001-02-25  Richard Henderson  <rth@redhat.com>
6969
6970         * ifcvt.c (struct noce_if_info): Add test_bb.
6971         (noce_get_alt_condition): New.
6972         (noce_try_minmax, noce_try_abs): New.
6973         (noce_operand_ok): New.
6974         (noce_process_if_block): Use them.
6975         * rtlanal.c (may_trap_p): NEG and ABS can never trap.
6976
6977 Sun Feb 25 14:26:17 2001  Christopher Faylor <cgf@cygnus.com>
6978
6979         * config/i386/cygwin.h (CPP_SPEC): Add missing space before w32api
6980         include.
6981
6982 2001-02-25  Zack Weinberg  <zackw@stanford.edu>
6983
6984         * config.gcc: Put back pa/t-openbsd and rs6000/t-openbsd.
6985         * config/mips/mips.c (mips_make_temp_file): Set temp_filename
6986         properly.
6987         (mips_asm_file_end): Free temp_filename here.
6988
6989 Sun Feb 25 08:34:23 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6990
6991         * config/i386/i386-protos.h (ix86_set_move_mem_attrs): Move decl.
6992         * config/i386/i386.c (ix86_set_move_mem_attrs_1): Fix typo.
6993
6994         * config/i386/i386.md (movstrsi): Handle FAIL case.
6995
6996 2001-02-25  Neil Booth  <neil@daikokuya.demon.co.uk>
6997
6998         * cppinit.c (builtin_array): Update.
6999         (init_builtins): Flag builtins to warn if redefined or
7000         undefined.  Define __GXX_WEAK as a normal macro.
7001         * cpplib.c (do_undef): Warn if flagged NODE_WARN.
7002         * cpplib.h (NODE_WARN): New flag.
7003         * cppmacro.c (builtin_macro): Remove handling of __GXX_WEAK__.
7004         Handle __STDC__ as a builtin only on Solaris.
7005         (warn_of_redefinition): Renamed from check_macro_definition.
7006         Reverse sense of test.  Always warn if NODE_WARN.
7007         (_cpp_create_definition): Use warn_of_redefinition.  Flag
7008         any macro beginning with "__STDC_" to require a mandatory
7009         warning if redefined or undefined.
7010
7011 2001-02-24  Zack Weinberg  <zackw@stanford.edu>
7012
7013         * xm-interix.h, xm-lynx.h, alpha/xm-vms.h, convex/xm-convex.h,
7014         i370/xm-i370.h, i370/xm-linux.h, i370/xm-mvs.h, i370/xm-oe.h,
7015         i386/xm-beos.h, i386/xm-dos.h, i386/xm-mingw32.h,
7016         i860/xm-i860.h, m68k/xm-3b1.h, m68k/xm-amix.h, m68k/xm-aux.h,
7017         m68k/xm-crds.h, m68k/xm-mot3300.h, m88k/xm-sysv3.h,
7018         mips/xm-mips.h, rs6000/xm-beos.h, vax/xm-vms.h:
7019         Don't define any of:
7020         USE_PROTOTYPES, vfork, mktemp, SVR3, NO_SYS_PARAMS_H,
7021         P_tmpdir, MVS, NO_DBX_FORMAT, USE_STDARGS, STDC_HEADERS,
7022         NO_PRECOMPILES, i860, __PTR_TO_INT, __INT_TO_PTR, rindex,
7023         index, FULL_PROTOTYPES, AUX, R_OK, W_OK, X_OK, F_OK,
7024         STACK_DIRECTION, MIPS, MAX_READ_LEN, MAX_WRITE_LEN.
7025
7026         * alpha/xm-alpha.h, clipper/xm-clix.h, d30v/xm-d30v.h,
7027         fr30/xm-fr30.h, i370/xm-linux.h: Remove commented-out macro
7028         definitions.
7029
7030         * m68k/xm-3b1.h, m68k/xm-crds.h, m88k/xm-sysv3.h:
7031         Delete now-empty file.
7032
7033         * alpha/vms.h: Define NEED_ATEXIT here...
7034         * alpha/xm-vms.h: ...not here.
7035
7036         * i386/cygwin.h: Don't define PARAMS.
7037         * mips/mips.c: Don't prototype mktemp.  Don't define
7038         P_tmpdir.  Use make_temp_file to create temporary files.
7039         Don't be clever and delete temporary files early.
7040         * config.gcc: Drop references to deleted files.  Don't define
7041         FULL_PROTOTYPES.
7042         * gcc.texi: Don't mention USE_PROTOTYPES.
7043
7044 Sat Feb 24 20:25:29 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7045
7046         * config/i386/i386.c (ix86_set_move_mem_attrs): New function.
7047         (ix86_set_move_mem_attrs_1): Likewise.
7048         * config/i386/i386-protos.h (ix86_set_move_mem_attrs): New declaration.
7049         * config/i386/i386.md (movstrsi): Call it.
7050
7051 2001-02-24  Zack Weinberg  <zackw@stanford.edu>
7052
7053         * config.gcc: Expunge references to alpha/t-pe, pa/t-openbsd,
7054         x-linux-aout, i386/t-go32, t-osf, m68k/x-m68kv,
7055         ns32k/xm-netbsd.h, rs6000/t-openbsd, rs6000/t-xnewas,
7056         rs6000/x-aix41-gld.  These are nonexistent, empty, or obsolete.
7057
7058         (i750a-*-*): Error here if hosting on i750a.
7059         (alpha*-*-winnt*, ix86-*-winnt3*): Remove stanzas entirely.
7060
7061         * x-linux-aout, xm-freebsd.h, i386/beos-pe.h, ns32k/xm-netbsd.h:
7062         Remove (empty modulo comments).
7063
7064         * 1750a/xm-1750a.h, alpha/config-nt.sed, alpha/win-nt.h,
7065         alpha/xm-winnt.h, i386/config-nt.sed, i386/os2.h,
7066         i386/t-winnt, i386/win-nt.h, i386/xm-freebsd.h, i386/xm-os2.h,
7067         i386/xm-winnt.h, m68k/x-alloca-c, m88k/x-dguxbcs,
7068         mips/x-netbsd, mips/x-nws3250v4, rs6000/t-xnewas,
7069         rs6000/t-xrs6000, rs6000/xm-cygwin.h: Remove (obsolete)
7070
7071         * i386/crtdll.h, i386/cygwin.h, i386/mingw32.h:
7072         Remove reference to winnt.h in comment.
7073         * rs6000/t-newas, rs6000/t-rs6000: Override LIBGCC1_TEST to null.
7074
7075 2001-02-24  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7076
7077         * loop.c (check_dbra_loop): A biv has uses besides counting if it is
7078         used to set another biv.
7079
7080 Sat Feb 24 06:45:21 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7081
7082         * tree.h (BLOCK_DEAD): New macro.
7083         (struct tree_block): New flag, dead_flag.
7084         * print-tree.c (print_node, case 'b'): Print missing fields.
7085         * emit-rtl.c (remove_unnecessary_notes): Set BLOCK_DEAD.
7086         * function.c (identify_blocks): Enable test for misplaced notes.
7087         (all_blocks): Skip BLOCK_DEAD blocks.
7088         * integrate.c (integrate_decl_tree): Likewise.
7089
7090         * errors.c (internal_error, trim_filename): New functions.
7091         (fancy_abort): Call internal_error.
7092         * errors.h (internal_error, trim_filename): New declarations.
7093
7094 2001-02-24  Alexandre Oliva  <aoliva@redhat.com>
7095
7096         * config/mn10300/mn10300.h (DBX_REGISTER_NUMBER): Reverted
7097         2000-08-26's patch.
7098         (EXTRA_CONSTRAINT): Formatting changes.
7099
7100 2001-02-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7101
7102         * rtl.c (rtl_check_failed_code2): Fix typo in last change.
7103
7104 2001-02-23  Per Bothner  <per@bothner.com>
7105
7106         * gcc.c (record_temp_file, pfatal_with_name, error):  Make non-static,
7107         so they can be called from java/jvspec.c.
7108         * gcc.h (record_temp_file, pfatal_with_name, error):  Declare.
7109
7110 Sat Feb 24 03:32:50 CET 2001  Jan Hubicka  <jh@suse.cz>
7111
7112         * i386.c (ix86_frame): New structure.
7113         (ix86_compute_frame_size): Kill.
7114         (ix86_compute_frame_layout): New.
7115         (ix86_save_reg): New.
7116         (ix86_can_use_return_insn_p): Use frame layout stuff.
7117         (ix86_expand_prologue): Likewise.
7118         (ix86_expand_epilogue): Likewise.
7119         (ix86_initial_elimination_offset): Likewise.
7120         (ix86_nsaved_regs): Use ix86_save_reg.
7121         (ix86_emit_save_regs): Likewise.
7122
7123 Sat Feb 24 03:30:38 CET 2001  Jan Hubicka  <jh@suse.cz>
7124
7125         * flow.c (find_sub_basic_blocks): New function.
7126         (split_block): Be ready for basic block introduced by CODE_LABEL.
7127         (commit_one_edge_insertion): Call find_sub_basic_block.
7128
7129         * flow.c (make_edges): Add edge from entry for blocks starting with
7130         label having ALTERNATE_NAME
7131
7132 Sat Feb 24 03:19:42 CET 2001  Jan Hubicka  <jh@suse.cz>
7133
7134         * function.c (epilogue_done): Be ready for first basic block not
7135         containing PROLOGUE_END note.
7136         (reposition_prologue_and_epilogue_notes): Avoid placing
7137         PROLOGUE_END note between BASIC_BLOCK.
7138
7139 Sat Feb 24 03:17:09 CET 2001  Jan Hubicka  <jh@suse.cz>
7140
7141         * loop.c (canonicalize_condition): Move to reversed_comparison_code.
7142
7143 2001-02-21  DJ Delorie  <dj@redhat.com>
7144
7145         * config/i960/i960.h (FRAME_POINTER_REQUIRED): Revert removal of
7146         check for current_function_has_nonlocal_goto from 1999-11-12.
7147
7148 Fri Feb 23 15:28:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7149
7150         * diagnostic.c (trim_filename): No longer static.
7151         * toplev.h (trim_filename): Declare.
7152         * rtl.c (rtl_check_failed_bounds): Call internal_error.
7153         (rtl_check_failed_type1, rtl_check_failed_type2): Likewise.
7154         (rtl_check_failed_code1, rtl_check_failed_code2): Likewise.
7155         (rtvec_check_failed_bounds): Likewise.
7156         * tree.c (tree_check_failed, tree_class_check_failed): Likewise.
7157
7158         * convert.c (convert_to_integer): Don't do unsigned unless result or
7159         both inputs are unsigned.
7160
7161         * fold-const.c (fold_convert): Don't call size_int_type_wide if
7162         input overflows.
7163
7164         * c-decl.c (set_block): Set NAMES and BLOCKS from BLOCK.
7165
7166         * varasm.c (output_constant): Recompute CODE after lang-specific fn.
7167
7168 2001-02-23  Jeffrey Oldham  <oldham@codesourcery.com>
7169
7170         * Makefile.in (resource.o): Add params.h dependence.
7171         * params.def (MAX_DELAY_SLOT_LIVE_SEARCH): New parameter.
7172         * params.h (MAX_DELAY_SLOT_LIVE_SEARCH): Likewise.
7173         * resource.c: Add dependence on params.h.
7174         (current_live_regs): Fix explanatory comment.
7175         (find_basic_block): Add new parameter to permit limiting search
7176         for a BARRIER.
7177         (mark_target_live_regs): Add new argument to find_basic_block call.
7178         (incr_ticks_for_insn): Likewise.
7179
7180 2001-02-23  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
7181
7182         * diagnostic.c (output_to_stream): Rename to
7183         output_buffer_to_stream. Loses the stream parameter.
7184         (init_output_buffer): Set diagnosic_buffer's stream.
7185         (flush_diagnostic_buffer): Adjust.
7186         (default_print_error_function): Likewise.
7187         (finish_diagnostic): Likewise.
7188         (verbatim): Likewise.
7189
7190         * diagnostic.h (struct output_buffer): Add `stream' field.
7191         (output_buffer_attached_stream): New macro.
7192
7193 2001-02-23  Jakub Jelinek  <jakub@redhat.com>
7194
7195         * fold-const.c (extract_muldiv) [case PLUS_EXPR]: If not MULT_EXPR,
7196         check if either operand is divisible by C.
7197         (multiple_of_p): Handle LSHIFT_EXPR with small constant shift.
7198         If type is signed, consider negative numbers as well.
7199
7200 2001-02-22  Richard Henderson  <rth@redhat.com>
7201
7202         * config/ia64/crtbegin.asm (.fini): Use pc-relative relocs to
7203         reach .text instead of gp-relative relocs.
7204         * config/ia64/crtend.asm (.init): Likewise.
7205
7206 2001-02-22  Andreas Jaeger  <aj@suse.de>
7207
7208         * extend.texi (C++ Attributes): Fix typo.
7209
7210 2001-02-21  David Mosberger  <davidm@hpl.hp.com>
7211
7212         * config/ia64/ia64.c (ia64_epilogue_uses): For syscall_linkage
7213         functions, drop current_function_args_info.words test.
7214         (ia64_compute_frame_size): Mark syscall_linkage functions as
7215         using eight input registers.
7216
7217 2001-02-21  Loren J. Rittle  <ljrittle@acm.org>
7218         Bruce Korb  <bkorb@gnu.org>
7219
7220         * fixinc/inclhack.def (freebsd_gcc3_breakage): new fix
7221         * fixinc/README: Document how to convert sed substitutions
7222         to format style c_fix-es.
7223         * fixinc/fixincl.x: regen
7224
7225 2001-02-21  Jeffrey D. Oldham  <oldham@codesourcery.com>
7226
7227         * gcc.c: Add comment explaining how to add a command-line option.
7228         Add title to specs language comment.
7229
7230 2001-02-21  Jeffrey Oldham  <oldham@codesourcery.com>
7231
7232         * gcc.c (cc1_options): Add "-param".
7233         (DEFAULT_WORD_SWITCH_TAKES_ARG): Likewise.
7234         (option_map): Likewise.
7235         * toplev.c (display_help): Add entry for "--param".
7236         (independent_decode_option): Fix typographical error.
7237
7238 Wed Feb 21 18:57:28 CET 2001  Catherine Moore  <clm@redhat.com>
7239                               Bernd Schmidt  <bernds@redhat.com>
7240                               Jan Hubicka  <jh@suse.cz>
7241
7242         * i386.c (function_arg_advance):  Pass SSE arguments in registers.
7243         (function_arg): Likewise.
7244
7245 Wed Feb 21 18:12:41 CET 2001  Jan Hubicka  <jh@suse.cz>
7246
7247         * i386.md (mmx_lshrdi3, mmx_ashldi3): Guard by unspec.
7248
7249 2001-02-21  Kazu Hirata  <kazu@hxi.com>
7250
7251         * config/h8300/h8300.md (iorsi3): Do not output an extra newline
7252         character.
7253         (xorsi3): Likewise.
7254
7255 Wed Feb 21 17:35:24 CET 2001  Jan Hubicka  <jh@suse.cz>
7256
7257         * flow.c (init_propagate_block_info): Canon address and use single_set
7258         for killing dead memory stores.
7259
7260 2001-02-21  Jeffrey Oldham  <oldham@codesourcery.com>
7261
7262         * Makefile.in (reorg.o): Add params.h dependence.
7263         * params.def: Fix typographical error in comment.
7264         (MAX_DELAY_SLOT_INSN_SEARCH): New parameter.
7265         * params.h: Modify introductory comment.
7266         (MAX_DELAY_SLOT_INSN_SEARCH): New parameter.
7267         * reorg.c: Add dependence on params.h.
7268         (redundant_insn): Add parameterized throttle for search.
7269         (fill_simple_delay_slots): Add a comment explaining a variable.
7270         Move conditional out of loop, simplifying code.
7271         (fill_eager_delay_slots): Fix typographical error in comment.
7272
7273 2001-02-20  Aldy Hernandez  <aldyh@redhat.com>
7274
7275         * tm.texi (REVERSE_CONDEXEC_PREDICATES_P): New macro documentation.
7276
7277         * flow.c (ior_reg_cond): Use REVERSE_CONDEXEC_PREDICATES_P macro.
7278         (REVERSE_CONDEXEC_PREDICATES_P): Define macro.
7279
7280 2001-02-21  Jason Merrill  <jason@redhat.com>
7281
7282         * tree.h (DECL_UNINLINABLE): Move from C++ frontend.
7283         (struct tree_decl): Add uninlinable bitfield.
7284         * c-decl.c (duplicate_decls): Set it.
7285         * integrate.c (function_cannot_inline_p): Check it.
7286
7287         * dwarf2out.c (add_name_and_src_coords_attributes): Don't add
7288         DW_AT_MIPS_linkage_name to abstract methods.
7289         (dwarf2out_abstract_function): Emit class context before calling
7290         set_decl_abstract_flags.  Don't clear DECL_ABSTRACT.
7291         (gen_subprogram_die): Remove obsolete code.
7292         (gen_member_die): Don't include clones in the member list.
7293         (gen_decl_die): Emit abstract info for clone origin.
7294         * dwarfout.c (output_type): Don't include clones in the member list.
7295         * dbxout.c (dbxout_type_methods): Ignore abstract methods.
7296         * toplev.c (note_deferral_of_defined_inline_function): Don't clear
7297         DECL_ABSTRACT on a function that already has it set.
7298
7299         * dwarf2out.c (gen_formal_types_die): Also accept a FUNCTION_DECL.
7300         (get_subprogram_die): Pass it in.
7301
7302 2001-02-21  Richard Earnshaw  <rearnsha@arm.com>
7303
7304         * flow.c (mark_set_1): Make not_dead unsigned long.  For
7305         non-pseudos, use it as a bitmask of the hard regs that
7306         don't die.
7307
7308 2001-02-21  Neil Booth  <neil@daikokuya.demon.co.uk>
7309
7310         * cppfiles.c: Update comments.
7311         (_cpp_read_file): Don't check for NULL filenames any more.
7312         * cppinit.c (cpp_start_read): Don't do canonicalization of
7313         in_fname and out_fname.  Use the passed file name exclusively.
7314         (_cpp_handle_options): Don't treat "-" as a command line option,
7315         but as a normal filename.
7316         (_cpp_post_options): Canonicalize in_fname and out_fname.
7317         * cppmain.c (printer_init): Don't check out_fname for NULL.
7318         * c-lex.c (orig_filename): Rename cpp_filename for clarity.
7319         (init_c_lex): Update, and use "" to represent stdin to CPP.
7320         (yyparse): Update.
7321
7322 2001-02-20  Will Cohen  <wcohen@redhat.com>
7323
7324         * config/pa/quadlib.c (_U_Qfcnvfxt_quad_to_usgl): New function.
7325         * config/pa/long_double.h (FIXUNS_TRUNCTFSI2_LIBCALL): Added.
7326         (INIT_TARGET_OPTABS): Use FIXUNS_TRUNCTFSI2_LIBCALL for
7327         fixunstfsi_libfunc.
7328
7329 2001-02-20  Stan Shebs  <shebs@apple.com>
7330
7331         * config/rs6000/rs6000.c (output_cbranch): Output branches
7332         on separate lines instead of using ';' to separate.
7333
7334 2001-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
7335
7336         * cppinit.c (set_lang):  Move builtin handling to...
7337         (init_builtins): ...here.
7338         (_cpp_create_reader): Move call to set_lang.
7339
7340 2001-02-20  Mark Mitchell  <mark@codesourcery.com>
7341
7342         * stmt.c (expand_return): If an attempt is made to return the
7343         error_mar_node, treat the return like a return without a value.
7344
7345 2001-02-19  Zack Weinberg  <zackw@stanford.edu>
7346
7347         * sibcall.c (skip_copy_to_return_value): Call
7348         identify_call_return_value here, and return orig_insn if it
7349         returns zero.  Hardret and softret arguments now unnecessary.
7350         (call_ends_block_p): Don't call identify_call_return_value here.
7351
7352         * ggc-common.c (ggc_mark_rtx_children): No need to mark 'S' or
7353         's' slots in RTXen.
7354         * ggc-page.c, ggc-simple.c (ggc_mark_if_gcable): Delete function.
7355         * ggc.h (ggc_mark_if_gcable): Delete prototype.
7356
7357 Mon Feb 19 20:30:16 2001  Jeffrey A Law  (law@cygnus.com)
7358
7359         * pa.c (move_operand): Accept code to load the address of a
7360         symbol out of the DLT as a valid move operand.
7361         (print_operand, case 'A'): New to handle generating a DLT
7362         reference for a LO_SUM expression.
7363         * pa.h (EXTRA_CONSTRAINT): Handle 'A' for DLT LO_SUM references.
7364         * pa.md (movsi, movdi patterns): Allow DLT LO_SUM references.
7365
7366 2001-02-19  Joseph S. Myers  <jsm28@cam.ac.uk>
7367
7368         * README, cpp.texi, gcc.texi, version.c: Update version number to
7369         3.1.
7370         * cpp.1, gcov.1, gcc.1: Regenerate.
7371
7372 2001-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
7373
7374         * cppfiles.c (stack_include_file): Generate dependencies
7375         here, and manage include_count here too.
7376         (PRINT_THIS_DEP): Delete.
7377         (_cpp_execute_include): Do not generate dependencies here,
7378         apart from the case of a missing header.  Do not manage
7379         include_count.
7380         (_cpp_read_file): Leave dependency generation to
7381         stack_include_file.
7382
7383 Mon Feb 19 10:17:47 2001  Jeffrey A Law  (law@cygnus.com)
7384
7385         * config.gcc (hppa*64*-*-hpux11*): Add MASK_GAS to
7386         target_cpu_default.  Remove dead assignment to
7387         target_cpu_default.
7388
7389 Mon Feb 19 16:47:39 CET 2001  Jan Hubicka  <jh@suse.cz>
7390
7391         * regclass.c (contains_reg_of_mode): Make global.
7392         (init_reg_sets): Remove contains_reg_of_mode; take into account
7393         CLASS_MAX_NREGS when looking for the proper mode.
7394         (dump_regclass): Dump only classes considered for the pseudo.
7395         (regclass): Use contains_reg_of_mode.
7396
7397 Mon Feb 19 16:45:42 CET 2001  Jan Hubicka  <jh@suse.cz>
7398
7399         * gcc.c (do_spec_1): 'n' for printing notices.
7400         * i386.h (CC1_CPU_SPEC): Notice deprecated options as deprecated.
7401
7402 Mon Feb 19 15:51:30 CET 2001  Jan Hubicka  <jh@suse.cz>
7403
7404         * reg-stack.c (next_flags_user): Use current_block->end
7405         (swap_rtx_condition): Look for next user if flags don't die;
7406         give up on CALL_INSNs; use current_block->end.
7407
7408 Mon Feb 19 08:27:21 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7409
7410         * sibcall.c (call_ends_block_p): New function.
7411         (optimize_sibling_and_tail_recursive_call): Use it.
7412
7413 2001-02-18  Kazu Hirata  <kazu@hxi.com>
7414
7415         * config/h8300/h8300.md: Update copyright.
7416         (andsi3): Do not output an extra newline character.
7417
7418 Sun Feb 18 15:45:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7419
7420         * toplev.c (note_deferral_of_defined_inlined_function): Argument
7421         FNDECL may be unused.
7422
7423         * toplev.c (rest_of_compilation): Don't have CSE skip blocks or
7424         follow jumps after first run.
7425         If -fexpensive-optimizations rerun CSE after GCSE and iterate until
7426         it doesn't change any jumps.
7427
7428 Sun Feb 18 17:05:50 2001  Jeffrey A Law  (law@cygnus.com)
7429
7430         * Makefile.in (rtlanal.o): Depend on hard-reg-set.h.
7431         ($HOST_PREFIX_1)rtlanal.o: Remove rules for building
7432         (mostlyclean): Corresponding changes.
7433         * rtlanal.c (hard-reg-set.h): Include.
7434         (rtx_unstable_p): Do not treat the argument pointer specially
7435         if it is not a fixed register.
7436         (rtx_varies_p, rtx_addr_can_trap_p): Similarly.
7437
7438 Sun Feb 18 15:45:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7439
7440         * sibcall.c (optimize_sibling_and_tail_recursive_call): Compare
7441         against last real insn in basic block.
7442         Rework to avoid gotos.
7443
7444         * Makefile.in (gcse.o): Now includes ggc.h.
7445         * gcse.c: Include ggc.h.
7446         (want_to_gcse_p): Verify expression can be in SET as valid insn.
7447         (try_replace_reg): Remove warning of uninitialize variable.
7448         (process_insert_insn): Call invalid_insn_p to validate insn.
7449         * recog.c (insn_invalid_p): Now global.
7450         See if can make valid by adding CLOBBERs of SCRATCH only and do if so.
7451         * recog.h (insn_invalid_p): New declaration.
7452
7453         * jump.c (jump_optimize_1): Only define reversed_code #ifdef HAVE_trap.
7454
7455         * config/sparc/sparc.c (eligible_for_epilogue_delay): Don't put
7456         assignments from FP constants since 'Y' output code can't handle it.
7457         (eligible_for_sibcall_delay): Likewise.
7458
7459         * flow.c (print_rtl_and_abort_fcn): Renamed from print_rtl_and_abort.
7460         Call fancy_abort directly, passing args.
7461         (print_rtl_and_abort): Now a macro, like fancy_abort.
7462
7463         * final.c (output_operand_lossage): Use internal_error, not error.
7464
7465 2001-02-18  Shane Nay  <shane@agendacomputing.com>
7466
7467         * mips.c (mips_expand_prologue) Add REG_MAYBE_DEAD to
7468         structure shift insns.
7469
7470 2001-02-18  Mark Mitchell  <mark@codesourcery.com>
7471
7472         * invoke.texi (-fsquangle): Remove documentation.
7473         (-fname-mangling-version): Likewise.
7474
7475 2001-02-18  Lars Brinkhoff  <lars@nocrew.org>
7476
7477         * optabs.c (expand_abs): Remove reference to
7478         HAVE_contitional_arithmetic.
7479         * combine.c (simplify_set): Likewise.
7480
7481 2001-02-18  Richard Henderson  <rth@redhat.com>
7482
7483         * ifcvt.c (dead_or_predicable): Don't move code if eh regions
7484         would be disrupted.
7485
7486 2001-02-18  Richard Henderson  <rth@redhat.com>
7487
7488         * config/ns32k/ns32k.h (ADJSP): Upcase arguments.
7489
7490         * config/alpha/alpha.md (movsi_fix): Fix typo in pattern name.
7491
7492         * reload1.c (reload_cse_simplify_set): Fix typo.
7493
7494 Sun Feb 18 09:30:09 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7495
7496         * diagnostic.c (_fatal_insn): Decrement errorcount.
7497
7498         * invoke.texi (-I): Add note avoiding use for system header files.
7499
7500         * rtl.h (add_clobbers): Remove duplicate declaration.
7501         * recog.h (added_clobbers_hard_reg_p): New declaration.
7502         * genemit.c (struct clobber_pat): New field has_hard_reg.
7503         (gen_insn): Record if added clobbers clobber hard reg.
7504         (gen_split): Avoid unused warning if number of operands is 0.
7505         (output_added_clobbers_hard_reg_p): New function.
7506         (main): Call it.
7507
7508 2001-02-18  Alan Modra <alan@linuxcare.com.au>
7509
7510         * pa.c (hppa_expand_prologue): Simplify code storing return
7511         pointer.  For large (>=8k) frames with a post_store, adjust stack
7512         pointer by 8k-64 first rather than by 64.  When testing with
7513         VAL_14_BITS_P, always use the actual value rather than the value
7514         negated.  Add blockage to prevent scheduling of spills before
7515         stack frame has been created.
7516         (hppa_expand_epilogue): Simplify code loading return pointer.
7517         Allow a slightly larger range for merge_sp_adjust_with_load case.
7518         When testing with VAL_14_BITS_P, always use the actual value.
7519
7520         * pa.c (pa_adjust_insn_length): Check that block move
7521         pattern is a set before looking at operands.
7522
7523 2001-02-17  Mark Mitchell  <mark@codesourcery.com>
7524
7525         * fold-const.c (fold_binary_op_with_conditional_arg): New
7526         function, split out from ...
7527         (fold): ... here.
7528         * tree.def (COND_EXPR): Document the use of VOID_TYPE for
7529         conditional arms that throw exceptions.
7530
7531         * print-tree.c (print_node): Do not use BLOCK_CHAIN when we're not
7532         looking at a BLOCK.
7533
7534 2001-02-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7535
7536         * aclocal.m4 (gcc_AC_CHECK_DECL): Before attempting the test,
7537         define HAVE_DECL_* to 1 to mask potential backup declarations.
7538         * configure: Regenerated.
7539
7540 2001-02-17  Mark Mitchell  <mark@codesourcery.com>
7541
7542         * invoke.texi (-Woverloaded-virtual): Clarify documentation.
7543
7544 2001-02-17  Richard Henderson  <rth@redhat.com>
7545
7546         * reload1.c (reload_cse_simplify_set): Respect LOAD_EXTEND_OP
7547         when replacing a memory load with a register.
7548
7549 Sat Feb 17 14:48:30 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7550                           Jan Hubicka  <jh@suse.cz>
7551
7552         * recog.c (validate_replace_src_1): New.
7553         (validate_replace_src_data): Likewise.
7554         (validate_replace_src): Use note_uses.
7555         * rtl.h (note_uses): Declare.
7556         * rtlanal.c (note_uses): New.
7557
7558 Sat Feb 17 10:52:34 CET 2001  Jan Hubicka  <jh@suse.cz>
7559
7560         * reg-stack.c (stack_def): Make field reg unsigned.
7561         (remove_regno_note): Unsignetize parameter.
7562
7563 2001-02-16  Jes Sorensen  <jes@linuxcare.com>
7564
7565         * ia64.c (errata_emit_nops): Add VOIDmode as second argument to
7566         shladd_operand() call.
7567
7568 2001-02-16  Bruce Korb  <bkorb@gnu.org>
7569             Rodney Brown  <RodneyBrown@mynd.com>
7570
7571         * fixinc/mkfixinc.sh: Use C fixincludes for UnixWare 7.
7572         * fixinc/inclhack.def: Add fixinc.svr4 patterns with matching
7573         machine restrictions
7574         * fixinc/fixincl.x: regen
7575
7576 Fri Feb 16 12:41:30 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7577
7578         * gcse.c (hash_scan_set): If cprop, see if REG_EQUAL or REG_EQUIV.
7579         Don't CSE a nop.
7580         (hash_scan_insn): Clean up calls to hash_scan_set.
7581         (compute_kill_rd): REGNO now unsigned.
7582         (try_replace_reg): Rework to use simplify_replace_rtx.
7583         (cprop_jump, cprop_cc0_jump): Likewise.
7584         (cprop_insn): Call find_reg_equal_equiv_note.
7585         Reflect changes to cprop_jump and cprop_cc0_jump.
7586
7587         * recog.c (validate_replace_src): Replace in operands of
7588         ZERO_EXTRACT in SET_DEST.
7589
7590         * cse.c (new_label_ref): New variable.
7591         (insert): Set it instead of recorded_label_ref.
7592         (cse_basic_block): Set recorded_label_ref if new_label_ref use, has
7593         CODE_LABEL for this function, and not already in REG_LABEL note.
7594
7595 2001-02-16  Jeffrey Oldham  <oldham@codesourcery.com>
7596
7597         * resource.c (mark_referenced_resources): Fix typo in introductory
7598         comment.
7599         * config/mips/abi64.h (SUBTARGET_TARGET_OPTIONS): Fix typo in
7600         string constant.
7601
7602 2001-02-16  Jason Merrill  <jason@redhat.com>
7603
7604         * dwarf2out.c (add_bound_info): Don't crash if SAVE_EXPR_RTL is
7605         NULL.
7606         (gen_subprogram_die): Don't abort on seeing a second definition if
7607         the previous one was abstract.  Don't replace an abstract instance
7608         in the lookup table.
7609
7610         * dwarf2out.c (dwarf2out_abstract_function): Rename from
7611         gen_abstract_function.
7612         * dwarf2out.h: Declare it.
7613         * toplev.c (note_outlining_of_inline_function): New fn.
7614         * toplev.h: Declare it.
7615         * integrate.c (output_inline_function): Call it.
7616         * c-decl.c (duplicate_decls): Call it when redefining an extern
7617         inline.  Don't inline the new defn.
7618
7619         * tree.h (BLOCK_CHAIN): Use BLOCK_CHECK.
7620
7621 2001-02-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7622
7623         * .gdbinit: Rename to gdbinit.in.
7624         * gdbinit.in: New file,
7625         * configure.in: Generate .gdbinit from gdbinit.in.
7626         * configure: Regenerated.
7627         * Makefile.in (distclean): Always remove .gdbinit.
7628
7629 2001-02-16  Jakub Jelinek  <jakub@redhat.com>
7630
7631         * objc/objc-act.c (start_class): Register implemented_classes with
7632         GC.
7633
7634 2001-02-16  Neil Booth  <neil@daikokuya.demon.co.uk>
7635
7636         * cppfiles.c (_cpp_make_system_header): Generate a file
7637         change callback.
7638
7639 2001-02-15  Jim Meyering  <meyering@lucent.com>
7640
7641         * Makefile.in (install-common): Don't depend on installdirs here.
7642         Instead, make each of the lang.install-common targets (e.g.,
7643         c++.install-common in cp/Make-lang.in) depend on it.
7644         (install-driver): Depend on installdirs.
7645
7646 Thu Feb 15 21:30:26 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7647
7648         * flow.c (tidy_fallthru_edge): Never end block on line number NOTE.
7649
7650         * function.c (assign_parms): Set RTX_UNCHANGING_P in pseudo when we
7651         do in memory.
7652
7653 2001-02-15  Mark Mitchell  <mark@codesourcery.com>
7654
7655         * invoke.texi (--param): Document.
7656
7657 Thu Feb 15 15:16:38 2001  Alexandre Oliva  <aoliva@redhat.com>
7658
7659         * config/sh/sh.h (BOOL_TYPE_SIZE): Don't define.
7660
7661 Thu Feb 15 10:52:31 CET 2001  Jan Hubicka  <jh@suse.cz>
7662
7663         * i386.md (extendsfdf2_2): Fix constraints.
7664
7665 Thu Feb 15 09:46:21 CET 2001  Jan Hubicka  <jh@suse.cz>
7666
7667         * i386.md (fop_df_3 splitter): Fix operand number.
7668
7669 Wed Feb 14 12:37:37 CET 2001  Jan Hubicka  <jh@suse.cz>
7670
7671         * invoke.texi (-mreg-alloc): Nuke.
7672         * i386.c (ix86_reg_alloc_order, regs_allocated,
7673         order_regs_for_local_alloc): Nuke.
7674         (override_options): Kill reg_alloc code.
7675         * i386.h (TARGET_OPTIONS): Kill reg-alloc.
7676         (REG_ALLOC_ORDER): SSE goes before I387.
7677         (ORDER_REGS_FOR_LOCAL_ALLOC): Kill.
7678         (ix86_reg_alloc_order): Likewise.
7679         * i386-protos.h (ix86_reg_alloc_order): Kill.
7680
7681 2001-02-14  Richard Henderson  <rth@redhat.com>
7682
7683         * toplev.c (f_options): Clarify -fschedule-insns2 documentation.
7684
7685 Wed Feb 14 11:59:58 CET 2001  Jan Hubicka  <jh@suse.cz>
7686
7687         * i386.h (RETURN_IN_MEMORY): Fix formating; reject TFmodes
7688
7689 Wed Feb 14 11:12:38 CET 2001  Jan Hubicka  <jh@suse.cz>
7690
7691         * i386-protos.h (ix86_memory_move_cost): Move offline.
7692         * i386.c (ix86_register_move_cost): Compute properly cost of
7693         SSE, MMX and i387 instructions.
7694         (*_cost): Add costs of SSE/MMX moves.
7695         (ix86_memory_move_cost): Move offline from ....; Likewise.
7696         * i386.h (MEMORY_MOVE_COST): .... here;
7697         (struct processor costs): Add new fields to represent costs
7698         of SSE/MMX moves.
7699
7700 Wed Feb 14 10:08:26 CET 2001  Jan Hubicka  <jh@suse.cz>
7701
7702         * regclass.c (init_reg_sets_1): Reinstall the optimization of
7703         move_cost together with Matt Kraai's fix.
7704
7705 2001-02-14  Jeffrey Oldham  <oldham@codesourcery.com>
7706
7707         * Makefile.in (OBJS): Add params.o.
7708
7709 2001-02-14  Richard Henderson  <rth@redhat.com>
7710             DJ Delorie  <dj@redhat.com>
7711
7712         * jump.c (jump_optimize_1): When we delete a conditional jump
7713         preceeding a non-conditional jump to effectively the same place,
7714         make sure that the combined jump skips any clobber insns between
7715         the two labels.
7716
7717 2001-02-14  Jeffrey Oldham  <oldham@codesourcery.com>
7718
7719         * gcc.c (do_spec_1): Fix off-by-one error for '%M' case.
7720
7721 2001-02-14  Mark Mitchell  <mark@codesourcery.com>
7722
7723         * Makefile.in (toplev.o): Depend on params.h.
7724         (intergate.o): Likewise.
7725         (params.o): New target.
7726         * flags.h (inline_max_insns): Remove.
7727         * integrate.c: Include params.h.
7728         Use MAX_INLINE_INSNS instead of inline_max_insns.
7729         * params.c: New file.
7730         * params.h: Likewise.
7731         * params.def: Likewise.
7732         * toplev.c: Include params.h.
7733         (lang_independent_params): New variable.
7734         (decode_f_option): Use the param machinery instead of setting
7735         max_inline_insns.
7736         (independent_decode_option): Handle "--param name=value".
7737         (main): Register language-independent parameters.
7738
7739 Wed Feb 14 11:13:45 CET 2001  Jan Hubicka  <jh@suse.cz>
7740
7741         * i386.md (pushsf, pushdf_nointeger): Fix constraint.
7742
7743 2001-02-14  Richard Henderson  <rth@redhat.com>
7744
7745         * regclass.c (init_reg_sets_1): Revert last two changes.
7746
7747 2001-02-14  Jakub Jelinek  <jakub@redhat.com>
7748
7749         * stor-layout.c (is_pending_size, put_pending_size): New functions.
7750         (variable_size): Call put_pending_size.
7751         * tree.h (is_pending_size, put_pending_size): Add prototypes.
7752         * fold-const.c (extract_muldiv): If SAVE_EXPR is on the pending
7753         sizes list, put newly created SAVE_EXPR there as well.
7754
7755 2001-02-14  Jakub Jelinek  <jakub@redhat.com>
7756
7757         * config/ia64/ia64.c (last_group): Only 2 entries are needed.
7758         (errata_find_address_regs): load_group has only 2 entries.
7759         (errata_emit_nops): Likewise.  shladd is not problematic.
7760         Clear last_group if nop was emitted.
7761         (fixup_errata): load_group has only 2 entries.
7762         Optimize.
7763
7764 2001-02-14  Neil Booth  <neil@daikokuya.demon.co.uk>
7765
7766         * c-lex.c (lex_number): Only warn traditionally for U suffix
7767         outside system macros.
7768         * cppexp.c (parse_number): Similarly.
7769         * cpplib.h (NODE_SYSHDR, cpp_sys_objmacro_p): New.
7770         * cppmacro.c (struct cpp_macro): New member node.
7771         (parse_args): Only warn about missing rest args if not
7772         a system macro.
7773         (funlike_invocation_p): Similarly for uninvoked funlike macros.
7774         (cpp_sys_objmacro_p): New.
7775         (_cpp_create_definition): Store the node with the macro defn.
7776         Remember if the macro is defined in a system header.
7777
7778 2001-02-13  DJ Delorie  <dj@redhat.com>
7779
7780         * configure.in (check_languages): determine languages to check
7781         * Makefile.in (check-c++): alias for check-g++
7782         (check-f77): alias for check-g77
7783         (CHECK_TARGETS): depend on configured languages
7784
7785 Wed Feb 14 01:13:59 CET 2001  Jan Hubicka  <jh@suse.cz>
7786
7787         * i386.md (fixsfsi2, fixdfdi2): Fix previous patch again.
7788         (sqrtsf2): Use TARGET_SSE instead of TARGET_SSE2)
7789         (sqrtsf2 patterns): Use 'x' instead of 'Y'.
7790         (sqrtextendsfdf2): Disable for SSE2.
7791
7792 Wed Feb 14 00:19:28 CET 2001  Jan Hubicka  <jh@suse.cz>
7793
7794         * i386.md (fixsfsi2, fixdfdi2): Fix previous patch again.
7795         (sqrtsf2): Use TARGET_SSE instead of TARGET_SSE2)
7796         (sqrtsf2 patterns): Use 'x' instead of 'Y'.
7797         (sqrtextendsfdf2): Disable for SSE2.
7798
7799 Wed Feb 14 00:11:20 CET 2001  Jan Hubicka  <jh@suse.cz>
7800
7801         * i386.md (movsfcc_1): Support integer cmove instruction.
7802         (movdfcc_1): Likewise; new splitter.
7803
7804 Tue Feb 13 23:19:27 CET 2001  Jan Hubicka  <jh@suse.cz>
7805
7806         * i386.c (output_fp_compare): Support SSE.
7807         (prepare_fp_compare_args): SSE comparisons always support memory.
7808         * i386.h (TARGET_CMOVE): SSE imply cmove.
7809         * i386.md (cmp?f2): Enable for SSE too.
7810         (cmpfp_i*): Support SSE.
7811         (cmpfp_i_sse): New.
7812         (cmpfp_i_sse_only): New.
7813         (s*, b* fp expanters): Enable for SSE too.
7814         (fp_jcc_1_sse, fp_jcc_1_sse_only, fp_jcc_2_sse, fp_jcc_2_sse_only):
7815         New patterns.
7816
7817 Tue Feb 13 23:05:42 CET 2001  Jan Hubicka  <jh@suse.cz>
7818
7819         * regclass.c (init_reg_sets_1): Silence warning.
7820
7821 Tue Feb 13 22:03:07 CET 2001  Jan Hubicka  <jh@suse.cz>
7822
7823         * i386.md (sqrt?f2): Change to expander.
7824         (sqrt?f2_1, sqrt?f2_sse_only, sqrt?f2_i387): New.
7825
7826 Tue Feb 13 15:42:05 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7827
7828         * rtlanal.c (find_reg_equal_equiv_note): New function.
7829         * simplify-rtx.c (simplify_gen_unary, simplify_gen_ternary): New fns.
7830         (simplify_gen_relational, simplify_replace_rtx): Likewise.
7831         * rtl.h: Add declarations for above functions.
7832
7833 Tue Feb 13 21:09:11 CET 2001  Jan Hubicka  <jh@suse.cz>
7834
7835         * cse.c (cse_main): Converts ifdefs on PIC_OFFSET_TABLE_REGNUM to
7836         conditionals.
7837         * defaults.h (PIC_OFFSET_TABLE_REGNUM): Default to INVALID_REGNUM.
7838         * emit-rtl.c (init_emit_once): Convert ifdefs to conditionals.
7839         * flow.c (mark_regs_live_at_end): Likewise.
7840         (calculate_global_regs_live): Likewise.
7841         * gcse.c (compute_hash_table): Likewise.
7842         (compute_kill_rd): Likewise.
7843         * resource.c (mark_target_live_regs): Likewise.
7844         * rtl.h (INVALID_REGNUM): New macro.
7845
7846 Tue Feb 13 20:59:22 CET 2001  Jan Hubicka  <jh@suse.cz>
7847
7848         * i386.md (fixsfsi2, fixdfdi2): Fix previous patch.
7849
7850 Tue Feb 13 16:32:20 CET 2001  Jan Hubicka  <jh@suse.cz>
7851
7852         * i386.md (fixsfsi2, fixdfdi2): Force operand to register
7853         for SSE.
7854
7855 Tue Feb 13 14:53:16 CET 2001  Jan Hubicka  <jh@suse.cz>
7856
7857         * i386.md (add?f3, sub?f3, mul?f3, dif?f3): Enable for TARGET_SSE(2)
7858         too.
7859         (fop_sf_comm, fop_df_comm, fop_sf_1, fop_df_1): Support SSE.
7860         (fop_sf_comm_sse, fop_df_comm_sse): New patterns.
7861         (fop_sf_1_sse, fop_df_1_sse): New patterns
7862         (fop_*): Disable float_extend and float patterns for SSE compilation.
7863         * i386.c (output_387_binary_op): Support SSE.
7864
7865 Tue Feb 13 14:16:34 CET 2001  Jan Hubicka  <jh@suse.cz>
7866
7867         * i386.md (dummy_extendsfdf2): Support SSE2
7868         (extendsfdf2): Enable if 80387 or SSE2.
7869         (extendsfdf2_1): Support SSE2. Disable if SSE2 is avialble
7870         and no MIX_I387_SSE2
7871         (extendsfdf2_1_sse_only): New pattern.
7872         (truncdfsf2): Enable if SSE2 or 80387; Always use SSE only version
7873         of SSE.
7874         (truncdfsf2_1): Support SSE.
7875         (truncdfsf2_2): Support SSE.
7876         (truncdfsf2_2_1_sse): New pattern.
7877         (fixtruncsfsi2): Always use SSE if available.
7878         (fix_truncsfsi_sse): New pattern.
7879         (fix_truncdfsi_sse): New pattern.
7880         (floatsis?f2): Support SSE.
7881         (floatsidf2_i387): New pattern.
7882         (floatsidf2_sse): Likewise.
7883
7884 Tue Feb 13 07:52:04 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7885
7886         * configure.in: Use "have_gnat" variable, not "gnat".
7887         * configure: Regenerated.
7888
7889         * config/sparc/sparc.c (function_value): Treat all non-record
7890         aggregate types like used to treat UNION_TYPE.
7891
7892 Tue Feb 13 13:31:33 CET 2001  Jan Hubicka  <jh@suse.cz>
7893
7894         * i386.c (print_reg): Use ANY_FP_REG instead of FP_REG
7895         * i386.h (MASK_128BIT_LONG_DOUBLE): Renumber
7896         (MASK_SSE2): New.
7897         (MASK_MIX_SSE_I387): New.
7898         (TARGET_SSE): SSE2 imply SSE.
7899         (TARGET_SSE2, TARGET_MIX_SSE_I387): New.
7900         (TARGET_SWITCHES): Add "sse2", "mix-sse-i387".
7901         (enum reg_class): Add new classes.
7902         (REG_CLASS_NAMES): Likewise.
7903         (REG_CLASS_CONTENTS): Likewise.
7904         (ANY_FP_REG_P, ANY_FP_REGNO_P, SSE_REG_P, SSE_FLOAT_MODE): New macros.
7905         (REG_CLASS_FROM_LETTER): 'x' and 'y' is SSE_REGS only when SSE is
7906         supported. Add 'Y' to be SSE_REGS when SSE2 is supported.
7907         (CLASS_MAX_NREGS): Use new macros.
7908         (REGISTER_MOVE_COST): Rewrite using SECONDARY_MEMORY_MAYBE_NEEDED.
7909         * i386.md (pushsf, movsf): Support SSE.
7910         (pushdf_nointeger, pushdf_integer, pushdf): Support SSE, update
7911         splitters to use ANY_FP_REGNO_P.
7912         (movdf_nointeger, movdf_integer): Likewise.
7913
7914 2001-02-13  Alexandre Oliva  <aoliva@redhat.com>
7915
7916         * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): New macro.
7917         (try_combine): Use it.
7918
7919 Tue Feb 13 11:37:06 CET 2001  Jan Hubicka  <jh@suse.cz>
7920
7921         * i386.h (SSE_CLASS_P, MMX_CLASS_P, MAYBE_FLOAT_CLASS_P,
7922         MAYBE_SSE_CLASS_P, MAYBE_MMX_CLASS_P): New macros.
7923         (PREFERRED_RELOAD_CLASS, SECONDARY_MEMORY_NEEDED): Move offline.
7924         (REGISTER_MOVE_COST): Likewise.
7925         * i386-protos.h (ix86_secondary_memory_needed,
7926         ix86_preferred_reload_class, ix86_register_move_cost): Declare.
7927         * i386.c (ix86_secondary_memory_needed,
7928         ix86_preferred_reload_class, ix86_register_move_cost): New function.
7929
7930 Die Feb 13 11:04:25 CET 2001  Jan Hubicka  <jh@suse.cz>
7931
7932         * i386.h (VALID_FP_MODE_P, VALID_INT_MODE_P): New.
7933         (HARD_REGNO_MODE_OK): Move offline to ....
7934         * i386.c (ix86_hard_regno_mode_ok) ... here;
7935         refuse all incorrect modes.
7936         * i386-protos.h (ix86_hard_regno_mode_ok): Declare.
7937
7938 2001-02-13  Richard Henderson  <rth@redhat.com>
7939
7940         * sparc.md (cmp_cc_arith_op_set): Don't use match_dup on the
7941         entire operator; replicate that and match_dup the operands.
7942         (cmp_ccx_arith_op_set): Likewise.
7943         (cmp_cc_arith_op_not_set): Likewise.
7944         (cmp_ccx_arith_op_not_set): Likewise.
7945
7946 2001-02-13  Alexandre Oliva  <aoliva@redhat.com>
7947
7948         * explow.c (trunc_int_for_mode): Sign-extend value to mode.
7949
7950 2001-02-12  Geoffrey Keating  <geoffk@redhat.com>
7951
7952         * config/rs6000/sysv4.h (MASK_NO_BITFIELD_WORD): New macro.
7953         (TARGET_NO_BITFIELD_WORD): New macro.
7954         (SUBTARGET_SWITCHES): Add -mbit-word, -mno-bit-word options.
7955         (BITFIELD_NBYTES_LIMITED): Define based on TARGET_NO_BITFIELD_WORD.
7956
7957 Mon Feb 12 18:13:26 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7958
7959         * cselib.c: New file, from simplify-rtx.c.
7960         * simplify-rtx.c: Remove cselib parts.
7961         * Makefile.in: Add cselib.o.
7962
7963 2001-02-12  Geoffrey Keating  <geoffk@redhat.com>
7964
7965         * config/rs6000/rs6000.c (rs6000_float_const): Remove warning.
7966         (setup_incoming_varargs): Remove warning.
7967
7968         * config/rs6000/rs6000.c (validate_condition_mode): When
7969         flag_fast_math, allow floating-point conditionals to be reversed.
7970         (rs6000_generate_compare): When flag_fast_math, don't generate
7971         cror operations for FP conditionals.
7972
7973         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Handle
7974         -mcall-i960.
7975         (ASM_SPEC): Likewise.
7976         (CC1_ENDIAN_LITTLE_SPEC): Likewise.
7977         (CC1_SPEC): Likewise.
7978         (LINK_TARGET_SPEC): Likewise.
7979         (CPP_ENDIAN_SPEC): Likewise.
7980         * Makefile.in (check-consistency): New target.
7981
7982 2001-02-12  Joseph S. Myers  <jsm28@cam.ac.uk>
7983
7984         * c-decl.c (grokdeclarator): In C99 mode, give the more specific
7985         "return type defaults" warning for functions with return type
7986         defaulting to int.
7987         * c-lang.c (c_init): In C99 mode, enable warnings for implicit
7988         function declarations by default rather than only when pedantic.
7989
7990 Mon Feb 12 17:28:48 CET 2001  Jan Hubicka  <jh@suse.cz>
7991
7992         * regclass.c (init_reg_sets_1): Optimize calculation of move_cost
7993         arrays.
7994
7995 2001-02-12  Nathan Sidwell  <nathan@codesourcery.com>
7996
7997         * extend.texi (Deprecated): Deprecate new initializer lists.
7998
7999 2001-02-12  Nathan Sidwell  <nathan@codesourcery.com>
8000
8001         * mkdeps.c (deps_add_default_target): Robustify. Add
8002         basename component only.
8003         * cpp.texi (-M): Describe how default target is generated.
8004         * invoke.texi (-M): Likewise.
8005
8006 2001-02-12  Kazu Hirata  <kazu@hxi.com>
8007
8008         * toplev.c (push_float_handler): Remove.
8009         (pop_float_handler): Remove.
8010         * toplev.h: Remove prototypes for the above functions.
8011
8012 2001-02-12  Jakub Jelinek  <jakub@redhat.com>
8013
8014         * c-common.c (constant_fits_type_p): New function.
8015         (convert_and_check): Use it.
8016
8017 2001-02-11  Mark Mitchell  <mark@codesourcery.com>
8018
8019         * Makefile.in (GXX_ABI_FLAG): Don't define.
8020         * configure.in (--enable-new-gxx-abi): Remove option.
8021         * config.in: Regenerated.
8022         * configure: Likewise.
8023
8024 2001-02-12  Alexandre Oliva  <aoliva@redhat.com>
8025
8026         * lcm.c (compute_earliest): Let EXIT_BLOCK be handled as a regular
8027         basic block.
8028         (optimize_mode_switching) [NORMAL_MODE]: Set up EXIT_BLOCK as a
8029         regular basic block, and arrange for all edges into it to switch
8030         to normal mode.
8031
8032 2001-02-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8033
8034         * Makefile.in (distclean): Do not remove .gdbinit.
8035
8036 2001-02-11  Mark Mitchell  <mark@codesourcery.com>
8037
8038         * Makefile.in (gcc.o): Fix typos.
8039         (protize.o): Likewise.
8040         (unprotoize.o): Likewise.
8041
8042 2001-02-11  Richard Henderson  <rth@redhat.com>
8043
8044         * tree.c (build1): Check for null operand in last change.
8045
8046 2001-02-11  Richard Henderson  <rth@redhat.com>
8047
8048         * fold-const.c (split_tree): Don't assume a constant isn't splittable.
8049         (fold): Don't assume a constant isn't foldable.
8050         * tree.c (build): Set TREE_CONSTANT for an expression with no
8051         side-effects and constant operands.
8052         (build1): Likewise.
8053
8054 2001-02-10  Richard Henderson  <rth@redhat.com>
8055
8056         * jump.c (squeeze_notes): Revert 2000-05-12 change.
8057
8058 2001-02-10  Anthony Green  <green@redhat.com>
8059
8060         * cpp.texi (Standard Predefined): Add documentation for
8061         __OPTIMIZE_SIZE__.
8062
8063         * c-common.c (combine_strings): Improve warning message.
8064
8065 2001-02-10  Geoffrey Keating  <geoffk@redhat.com>
8066
8067         * config/rs6000/sysv4.h (LINK_TARGET_SPEC): Use two dashes for
8068         --oformat.
8069         * config/rs6000/sysv4le.h (LINK_TARGET_SPEC): Likewise.
8070
8071 Fri Feb  9 15:05:27 2001  Christopher Faylor <cgf@cygnus.com>
8072
8073         * config/i386/t-cygwin (T_CPPFLAGS): Use correct location for
8074         CYGWIN_CROSS_DIR.
8075
8076 2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
8077
8078         * config/sh/sh.md (sibcalli, sibcalli_pcrel, sibcalli): Set
8079         fp_mode attribute.
8080
8081 2001-02-09  Nick Clifton  <nickc@redhat.com>
8082
8083         * config/arm/arm.md: Change output contraint on post inc
8084         load/store multiple patterns to be a read/write contraint.
8085
8086 2001-02-09  Neil Booth  <neil@daikokuya.demon.co.uk>
8087
8088         * gcc.c (cpp_options): Delete .d files on error.  Don't delete
8089         .o files when using the -M options.
8090
8091 2001-02-08  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8092             David Edelsohn  <edelsohn@gnu.org>
8093
8094         * config/rs6000/rs6000.c (output_toc): Allow 32-bit targets to
8095         handle DImode constants.  Use one TOC entry for SImode and smaller
8096         constants, aligned properly.
8097
8098 2001-02-08  Jason Merrill  <jason@redhat.com>
8099
8100         * config/arm/arm.c (arm_expand_prologue): Do tell the dwarf2 backend
8101         about the SP adjustment for saving the static chain pointer.
8102         * dwarf2out.c (dwarf2out_frame_debug_expr): Use the specified
8103         offset when setting a temporary CFA register.
8104
8105 2001-02-08  Chandrakala Chavva  <cchavva@redhat.com>
8106
8107         * config.gcc : New targets, i386-*-chorusos*, sparc-*-chorusos*,
8108         powerpc-*-chorusos* .
8109         * config/rs6000/chorus.h : New file.
8110         * config/i386/chorus.h : New file.
8111         * config/sparc/chorus.h : New file.
8112         * config/sparc/t-chorus-elf : New file.
8113
8114 2001-02-08  David Edelsohn  <edelsohn@gnu.org>
8115
8116         * config/rs6000/rs6000.h (ASM_OUTPUT_SYMBOL_REF): Move from here ...
8117         * config/rs6000/aix.h (ASM_OUTPUT_SYMBOL_REF): ... to here.
8118         * config/rs6000/aix51.h (CPLUSCPLUS_CPP_SPEC): Define it.
8119         (__WCHAR_TYPE__): Correct macro name.
8120
8121 2001-02-08  Richard Henderson  <rth@redhat.com>
8122
8123         * config/i386/i386.c (ix86_frame_pointer_required): New.
8124         (ix86_setup_frame_addresses): New.
8125         (struct machine_funciton): Add accesses_prev_frame.
8126         * config/i386/i386.h (FRAME_POINTER_REQUIRED): Call
8127         ix86_frame_pointer_required.
8128         (SUBTARGET_FRAME_POINTER_REQUIRED): New.
8129         (SETUP_FRAME_ADDRESSES): New.
8130         * config/i386/i386-protos.h: Update.
8131         * config/i386/sco5.h (SUBTARGET_FRAME_POINTER_REQUIRED): Rename
8132         from FRAME_POINTER_REQUIRED.
8133         * config/i386/svr3gas.h: Likewise.
8134         * config/i386/sysv3.h: Likewise.
8135         * config/i386/v3gas.h: Likewise.
8136
8137 2001-02-08  Richard Henderson  <rth@redhat.com>
8138
8139         * config/sparc/sparc.c (function_arg_record_value_3): Fix
8140         calculation of the number of integer registers required.
8141         (function_arg_record_value): Likewise.
8142
8143 2001-02-08  Jason Merrill  <jason@redhat.com>
8144
8145         * diagnostic.c (internal_error): Say "confused" after 1 error, not
8146         two.  Print file and line with "confused" message.
8147
8148         * dwarf2out.c (dwarf2out_line): Include filename in -dA output.
8149
8150 Thu Feb  8 11:21:28 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8151
8152         * rtlanal.c (remove_node_from_expr_list): Correctly update PREV.
8153
8154 2001-02-08  Bernd Schmidt  <bernds@redhat.com>
8155
8156         * final.c (cleanup_subreg_operands): The address of a MEM can
8157         contain SUBREGs.
8158
8159         * config/ia64/ia64.c (ia64_variable_issue): Call group_barrier_needed_p
8160         for asms, too.
8161
8162 2001-02-08  Joseph S. Myers  <jsm28@cam.ac.uk>
8163
8164         * gcc.texi (Incompatibilities): Update documentation of
8165         preprocessing numbers.
8166
8167 2001-02-07  Jakub Jelinek  <jakub@redhat.com>
8168
8169         * c-decl.c (finish_enum): Revert part of 2000-01-05 change.
8170
8171 2001-02-07  Mark Mitchell  <mark@codesourcery.com>
8172
8173         * config/rs6000/aix43.h (CPLUSCPLUS_CPP_SPEC): Define it.
8174
8175         * defaults.h (CPLUSPLUS_CPP_SPEC): New macro.
8176         * gcc.c (struct compiler): Add cpp_spec field.
8177         (input_file_compiler): New variable.
8178         (do_spec_1): Allow a particular compiler to handle `%C'
8179         specially.
8180         (main): Store the current compiler in input_file_compiler.
8181         * tm.texi (CPLUSPLUS_CPP_SPEC): Document.
8182
8183 2001-02-07  Zack Weinberg  <zack@wolery.stanford.edu>
8184
8185         * cpphash.h (struct spec_nodes): Add n_true and n_false.
8186         * cppinit.c (cpp_create_reader): Initialize them.
8187         (append_include_chain): cxx_aware arg might be unused.
8188         * cppexp.c (lex): In C++ mode, recognize 'true' and 'false'
8189         keywords and give them their phase 7 meaning.  Pedwarn about
8190         this unless '__bool_true_false_are_defined' is defined.
8191
8192 2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
8193
8194         * lcm.c (optimize_mode_switching): Emit mode_set before the
8195         JUMP_INSN of an abnormal edge.
8196
8197 2001-02-07  Bernd Schmidt  <bernds@redhat.com>
8198
8199         * builtins.c (expand_builtin_setjmp_receiver): Emit an ASM_INPUT as
8200         a scheduling barrier at the end.
8201
8202         * tm.texi (MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): Document.
8203
8204 2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
8205
8206         * config/sh/sh.md (reload_outsf): Removed.
8207         (movsf_ie): Introduce constraints for FPUL loads and stores.
8208         (reload_insf): Broaden the output constraint.
8209
8210         * config/elfos.h (INT_ASM_OP): Don't define it if it's already
8211         defined.
8212         * config/sh/sh.h (INT_ASM_OP, ASM_OUTPUT_CONSTRUCTOR,
8213         ASM_OUTPUT_DESTRUCTOR): Copy definitions from config/elfos.h.
8214
8215 2001-02-06  Chandrakala Chavva  <cchavva@redhat.com>
8216
8217         * final.c: Revert my previous changes.
8218         * output.h: Make profile_label_no extern.
8219         * config/rs6000/rs6000.c (output_profile_hook): Use standard functions
8220         for generating label.
8221
8222 2001-02-06  Laurynas Biveinis  <lauras@softhome.net>
8223
8224         * config/i386/djgpp.h: Add comments about standard paths.
8225         (MD_EXEC_PREFIX): Undefine before defining.
8226         (MD_STARTFILE_PREFIX): New.
8227
8228 2001-01-30  Bruce Korb  <bkorb@gnu.org>
8229
8230         fixinc/fixincl.c(process):  Emit error message only if appropriate :)
8231         (load_file): do not rely on load_file_data() to close file pointer
8232         fixinc/fixlib.c(load_file_data): do not close passed in file pointer
8233         fixinc/inclhack.def(irix_limits_const): add test_text
8234
8235 2001-02-06  Neil Booth  <neil@daikokuya.demon.co.uk>
8236
8237         * cppexp.c (parse_defined): Improve diagnostics for invalid
8238         syntax.
8239
8240 2001-02-06  Neil Booth  <neil@daikokuya.demon.co.uk>
8241
8242         * cppmacro.c (cpp_get_token): Avoid pasting after a builtin.
8243
8244 2001-02-06  Mark Mitchell  <mark@codesourcery.com>
8245
8246         * config/rs6000/rs6000.h (ASM_OUTPUT_SYMBOL_REF): Define.
8247         * config/rs6000/rs6000-protos.h (rs6000_output_symbol_ref): Declare.
8248         * config/rs6000/rs6000.c (VTABLE_NAME_P): New macro.
8249         (rs6000_output_symbol_ref): New function.
8250         (output_toc): Use VTABLE_NAME_P.
8251
8252 Tue Feb  6 07:54:51 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8253
8254         * print-tree.c (print_node, case PARM_DECL):
8255         Print DECL_ARG_TYPE and DECL_ARG_TYPE_AS_WRITTEN.
8256
8257         * stor-layout.c (reference_types_internal): New variable.
8258         (internal_reference_types): New function.
8259         (layout_type, case REFERENCE_TYPE): Make Pmode if internal.
8260         * tree.h (internal_reference_types): New declaration.
8261
8262         * cse.c (find_best_addr): Fix typo in computing cost.
8263
8264 Mon Feb  5 21:56:16 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8265
8266         * combine.c (nonzero_bits, case PLUS): If pointers extend unsigned
8267         and this is the sum of a pointer and a constant, we know the result
8268         did not overflow.
8269         (num_sign_bit_copies, case PLUS): Likewise.
8270         * explow.c (convert_memory_address): Remove opposite SUBREG.
8271         * function.c (instantiate_new_reg): New function (from common code).
8272         (instantiate_virtual_regs_1): Call it.
8273         For PLUS, handle if (plus (subreg (virt-reg) (const_int))
8274         if pointers sign- or zero-extend.
8275         * simplify-rtx.c (simplify_unary_operation, case ZERO_EXTEND):
8276         If pointers extend unsigned, use inside of SUBREG.
8277         (simplify_unary_operation, case SIGN_EXTEND): Likewise, if sign extend.
8278
8279 2001-02-05  Benjamin Kosnik  <bkoz@redhat.com>
8280
8281         * Makefile.in (-DGPLUSPLUS_TOOL_INCLUDE_DIR): Change to target
8282         subdir of gcc_gxx_include_dir.
8283         (gcc_gxx_target_include_dir): Remove.
8284
8285 2001-02-05  Jeffrey Oldham  <oldham@codesourcery.com>
8286
8287         * dwarf2out.c: Revise DWARF2 Abbreviation Glossary comments.
8288         (dwarf2out_frame_debug_expr): Revise introductory comments to add
8289         a high-level description.
8290
8291 2001-02-05  Chandrakala Chavva  <cchavva@redhat.com>
8292
8293         * final.c: Move the declaration of profile_label_no to ...
8294         * output.h: ... here.
8295         * function.c (expand_function_start): Call PROFILE_HOOK.
8296         * config/rs6000/aix.h: Define PROFILE_HOOK.
8297         * config/rs6000/rs6000-protos.h: output_profile_hook new.
8298         * config/rs6000/rs6000.c (output_profile_hook): Define.
8299         (output_prolog): Do nothing for ABI_AIX as it is taken care by
8300         output_profile_hook.
8301         tm.texi : Explain new macro PROFILE_HOOK.
8302
8303 2001-02-06  Hans-Peter Nilsson  <hp@axis.com>
8304
8305         * extend.texi (Extended Asm): Do not say that semicolon is always
8306         a valid line-breaking character for GNU assemblers.  Use
8307         newline-tab as the most commonly supported syntax.  Use
8308         newline-tab rather than semicolon in multi-insn examples.
8309
8310 2001-02-05  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8311
8312         * Makefile.in (gcc_gxx_target_include_dir): Use $(target_alias).
8313
8314 2001-02-05  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8315             David Edelsohn  <edelsohn@gnu.org>
8316
8317         * config/rs6000/rs6000.c (rs6000_return_addr): Use PIC
8318         code for AIX, even without flag_pic.
8319
8320 2001-02-05  Jakub Jelinek  <jakub@redhat.com>
8321
8322         * c-typeck.c (common_type): push and pop binding level around
8323         calling common_type on function parameters.
8324
8325 Mon Feb  5 14:30:37 2001  Christopher Faylor <cgf@cygnus.com>
8326
8327         * config/i386/cygwin.h (CPP_SPEC): Add missing space after -idirafter.
8328
8329 Mon Feb  5 11:23:16 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8330
8331         * config/mips/mips.c (override_options): Fix typo in last change.
8332         (mips_make_temp_file): Call fatal_io_error, not pfatal_with_name.
8333         (mips_asm_file_end): Likewise; also pass more args to fatal_io_error.
8334
8335 2001-02-05  Nathan Sidwell  <nathan@codesourcery.com>
8336
8337         * invoke.texi (-fdump-class-layout): Document.
8338         (-fdump-translation-unit): Use `=' as filename separator.
8339
8340 2001-02-05  Mark Mitchell  <mark@codesourcery.com>
8341
8342         * Makefile.in (s-mlib): Don't build multilibs if
8343         --disable-multilib.
8344         (DRIVER_DEFINES): Adjust accordingly.
8345         (gcc.o): Likewise.
8346         (protoize.o): Likewise.
8347         (unprotoize.o): Likewise.
8348         * configure.in: Recognize --enable-multilib.
8349
8350 2001-02-04  Mark Mitchell  <mark@codesourcery.com>
8351
8352         * Makefile.in (DRIVER_DEFINES): Fix quoting.
8353
8354         * Makefile.in (site.exp): Always set HAVE_LIBSTDCXX_V3.
8355         * configure.in: Remove --enable-libstdcxx_v3 support.
8356         * configure: Regenerated.
8357
8358 Sun Feb  4 15:52:44 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8359
8360         * config/avr/avr.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP):
8361         Call abort instead of fatal.
8362         (TRAMPOLINE_TEMPLATE): Call internal_error instead of fatal.
8363         * config/dsp16xx/dsp16xx.h (FUNCTION_PROFILER): Likewise.
8364         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Likewise.
8365         (TRAMPOLINE_TEMPLATE, INITIALIZE_TRAMPOLINE): Likewise.
8366         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Likewise.
8367         * config/rs6000/rs6000.h (RETURN_ADDRESS_OFFSET): Likewise.
8368
8369         * diagnostic.h (set_internal_error_function): Renamed.
8370         * toplev.h (internal_error): Renamed from fatal.
8371         (pfatal_with_name): Deleted.
8372         (fatal_io_error): Now has printf-style arguments.
8373         * diagnostic.c (pfatal_with_name): Deleted.
8374         (fatal_io_error): Rework to have args in printf-style.
8375         (set_internal_error_function): Renamed from set_fatal_function.
8376         (internal_error): Renamed from fatal.
8377         (error_recursion, fancy_abort): Call internal_error instead of fatal.
8378         * dwarf2out.c (get_cfa_from_loc_descr): Likewise.
8379         * emit-rtl.c (gen_realpart, gen_imagpart): Likewise.
8380         * expr.c (check_max_integer_computation_mode, expand_expr): Likewise.
8381         * flow.c (verify_flow_info): Likewise.
8382         * config/arm/arm.c (thumb_unexpanded_epilogue): Likewise.
8383         * config/mips/mips.c (save_restore_insns): Likewise.
8384
8385         * except.c (duplicate_eh_handlers): Call abort instead of fatal.
8386         * flow.c (verify_flow_info): Likewise.
8387         * config/arm/arm.c (thumb_load_double_from_address): Likewise.
8388         * config/avr/avr.c (pttreg_to_str, unique_section): Likewise.
8389         (avr_normalize_condition): Likewise.
8390         * config/c4x/c4x.c (c4x_emit_libcall, c4x_valid_operands): Likewise.
8391         * config/dsp16xx/dsp16xx.c (dsp16xx_reg_class_from_letter): Likewise.
8392         (limit_reload_class, double_reg_to_memory): Likewise.
8393         (print_operand_address, emit_1600_code_shift): Likewise.
8394         (gen_tst_reg, gen_compare_reg): Likewise.
8395         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Likewise.
8396         * config/dsp16xx/dsp16xx.c (dsp16xx_invalid_register_for_compare):
8397         Deleted.
8398         * config/dsp16xx/dsp16xx.md (unnamed cmphi): Call abort instead of it.
8399
8400         * c-parse.in (methoddef): Call fatal_error instead of fatal.
8401         * objc/objc-act.c (build_ivar_chain): Likewise.
8402         * dwarfout.c (dwarfout_init): Call fatal_io_error instead of
8403         pfatal_with_name.
8404         * graph.c (clean_graph_dump_file): Likewise.
8405         * profile.c (init_branch_prob): Likewise.
8406         * objc/objc-act.c (objc_init): Likewise.
8407
8408         * config/arm/arm.c (arm_override_options): Make errors non-fatal.
8409         * config/avr/avr.c (avr_override_options): Likewise.
8410         * config/c4x/c4x.c (c4x_expand_prologue): Likewise.
8411         * config/dsp16xx/dsp16xx.c (function_prologue): Likewise.
8412         * config/h8300/h8300.c (h8300_init_once): Likewise.
8413         * config/mips/mips.c (override_options): Likewise.
8414         * config/i386/i386.c (override_options): Likewise, rework.
8415         * config/m68k/m68k.c (override_options): Likewise.
8416
8417         * config/dsp16xx/dsp16xx.c (print_operand): Call output_operand_lossage
8418         instead of fatal.
8419         * config/mips/mips.c (print_operand): Likewise.
8420         * hash.c (hash_allocate): Don't check for failure returns from
8421         obstack functions that can't fail.
8422         (hash_table_init_n, hash_table_init): Likewise; also now return void.
8423         * hash.h (hash_table_init_n, hash_table_init): Now return void.
8424         * objc/objc_act.c (objc_check_decl): Remove unneeded fatal call.
8425         (get_object_reference): Likewise.
8426
8427 2001-02-04  Nick Clifton  <nickc@redhat.com>
8428
8429         * config/arm/arm.c (all_cores): Add 710T, 720T, 740T, 940T, 9e,
8430         StrongARM1110, 10TDMI, and 1020T.
8431
8432 2001-02-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8433
8434         * mips.h (MULTILIB_ISA_DEFAULT): Don't use #elif.
8435
8436 2001-02-04  Alexandre Oliva  <aoliva@redhat.com>
8437
8438         * config/sh/sh.md (movdf load split): Pass register number to
8439         FP_OR_XD_REGISTER_P.
8440
8441 2001-02-04  Mark Mitchell  <mark@codesourcery.com>
8442
8443         * cppinit.c (BC): New macro.
8444         (builtin_array): Add __GXX_WEAK__.
8445         * cpplib.h (builtin_type): Add BT_WEAK.
8446         * cppmacro.c (builtin_macro): Handle BT_WEAK.
8447         * defaults.h (SUPPORTS_ONE_ONLY): Define.
8448         * varasm.c (SUPPORTS_ONE_ONLY): Do not define.
8449
8450 2001-02-03  Jakub Jelinek  <jakub@redhat.com>
8451
8452         * cppinit.c (append_include_chain): Honor NO_IMPLICIT_EXTERN_C.
8453
8454 2001-02-03  Neil Booth  <neil@daikokuya.demon.co.uk>
8455
8456         * cpphash.h: Rename _ALIGN POOL_ALIGN.
8457         * cpplex.c (new_chunk, _cpp_pool_reserve): Update.
8458
8459 2001-02-03  Neil Booth  <neil@daikokuya.demon.co.uk>
8460
8461         * cpphash.h: Rename ALIGN _ALIGN.
8462         * cpplex.c (new_chunk, _cpp_pool_reserve): Update.
8463
8464 Fri Feb  2 23:15:29 2001  Christopher Faylor <cgf@cygnus.com>
8465
8466         * config/i386/cygwin.h (CPP_SPEC): Reorganize YA to better handle cross
8467         compilation environment.
8468         * config/i386/t-cygwin (T_CPPFLAGS): Define CYGWIN_CROSS_DIR to allow
8469         control over location of cygwin includes and libs.
8470
8471 2001-02-03  Michael Hayes  <m.hayes@elec.canterbury.ac.nz)
8472
8473         * c4x.h (HARD_REGNO_CALL_PART_CLOBBERED): Fix typo.
8474
8475 2001-02-02  lars brinkhoff  <lars@nocrew.org>
8476
8477         * md.texi (Standard Names): remove reference to spur.md.
8478
8479 2001-02-03  Michael Hayes  <m.hayes@elec.canterbury.ac.nz)
8480
8481         * c4x.h (IS_INT_CALL_SAVED_REG, IS_FLOAT_CALL_SAVED_REG): Define.
8482         (HARD_REGNO_CALL_PART_CLOBBERED): Use IS_FLOAT_CALL_SAVED_REG.
8483         (INITIAL_FRAME_POINTER_OFFSET, INITIAL_ELIMINATION_OFFSET): Likewise.
8484         * c4x.c (c4x_hard_regno_rename_ok): Use IS_XXX_CALL_SAVED_REG.
8485         (c4x_expand_prologue, c4x_expand_epilogue): Likewise.
8486
8487 2001-02-03  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8488
8489         * c4x.c (group1_reg_operand, group1_mem_operand, arx_reg_operand,
8490         c4x_arn_reg_operand, c4x_arn_mem_operand): Do not check register
8491         number before reload.
8492         (c4x_adjust_cost): Return zero before reload.
8493         * c4x.md (load_immed_address+1, load_immed_address+2): Do not
8494         split before reload.
8495
8496 2001-02-03  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8497
8498         * c4x.c (c4x_hard_regno_rename_ok): New.
8499         * c4x-protos.h (c4x_hard_regno_rename_ok): New.
8500         * c4x.h (HARD_REGNO_RENAME_OK): Define.
8501
8502 Fri Feb  2 20:03:50 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8503
8504         * diagnostic.h: Add missing "extern" in all declarations.
8505
8506 2001-02-02  Alex Samuel  <samuel@codesourcery.com>
8507
8508         * Makefile.in (gcc_gxx_target_include_dir): Generate dynamically
8509         as for gcc_gxx_include_dir.
8510
8511 2001-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
8512
8513         * cpp.texi, invoke.texi: Update -Wtraditional documentation.
8514
8515 2001-02-02  Alexandre Oliva  <aoliva@redhat.com>
8516
8517         * config/sh/sh.c (output_far_jump): Don't use braf on SH1.  Emit
8518         label before alignment to be used as the braf base address.
8519         * config/sh/sh.md (length): Use longer lengths for SH1 PIC far
8520         branches.
8521         (casesi_jump_2): Require at least TARGET_SH2.
8522
8523         * config/float-sh.h (LDBL_EPSILON, LDBL_MIN, LDBL_MAX): Prevent
8524         truncation to 32-bit doubles on -m3e and -m4-single-only.
8525
8526 2001-02-02  Mark Mitchell  <mark@codesourcery.com>
8527
8528         * gcc.c (init_gcc_specs): New function.  Make -shared-libgcc
8529         the default when building a shared object.
8530         (init_spec): Use it.
8531         * testsuite/lib/g++.exp: Include the directory where libgcc
8532         is located to the LD_LIBRARY_PATH list.
8533         * invoke.texi (-shared-libgcc): Document the cases in which
8534         GCC defaults to using the shared libgcc.
8535
8536 2001-02-02  Alexandre Oliva  <aoliva@redhat.com>
8537
8538         * config/fp-bit.h (MAX_USI_INT, MAX_SI_INT): Don't assume
8539         unsigned is wide enough.
8540         (BITS_PER_SI): New.
8541         * config/fp-bit.c (_fpmul_parts): Don't assume 32-bits SI.
8542         (si_to_float): Likewise.
8543         (float_to_si, float_to_usi): Use BITS_PER_SI.
8544
8545 2001-02-01  Jeffrey Oldham  <oldham@codesourcery.com>
8546
8547         * dwarf2out.c: Added explanation of abbreviations.
8548         (def_cfa_1): Added comments listing DWARF2 instructions.
8549         (cfa_temp_reg): Removed in favor of cfa_temp.
8550         (cfa_temp_value): Removed in favor of cfa_temp.
8551         (cfa_temp): New global variable.
8552         (dwarf2out_frame_debug_expr): Added extensive introductory
8553         comments explaining the function's transformations.  Revised to
8554         use cfa_temp.  Added some rtx checking.  Generalize IOR case.
8555         (dwarf2out_frame_debug): Revised to use cfa_temp.
8556         (output_aranges): Cast as "unsigned" to avoid warning.
8557         * rtl.texi (RTX_FRAME_RELATED_P): Revise entry to emphasize better
8558         explain which instructions must be marked.
8559
8560 2001-02-01  Richard Henderson  <rth@redhat.com>
8561
8562         * local-alloc.c (update_equiv_regs): Copy INSN_CODE to the
8563         new instruction.
8564
8565 2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
8566
8567         * config/sh/crt1.asm (main_k): Modified so that start calls
8568         ___setup_argv_and_call_main.
8569
8570 2001-02-01  Neil Booth  <neil@daikokuya.demon.co.uk>
8571
8572         * cpphash.h (struct cpp_buffer): Move saved_flags from cpp_reader.
8573         * cpplex.c (_cpp_lex_token): New token picks up the saved flags,
8574         and AVOID_LPASTE is cleared on meeting an unescaped newline.
8575         * cppmacro.c (builtin_macro): Set builtin flags here.
8576         (paste_all_tokens): Preserve AVOID_LPASTE on pasted token.
8577         (replace_args): Clarify intent.
8578         (cpp_get_token): Macro expansion tokens get the saved flags.
8579         Update.
8580         * cppmain.c (scan_buffer): Remove now-redundant print.printed
8581         check.
8582
8583 2001-02-01  Jeffrey Oldham  <oldham@codesourcery.com>
8584
8585         * config/mips/iris6.h (SUPPORTS_INIT_PRIORITY): Reverse change of
8586         2001-Jan-29.
8587
8588 Thu Feb  1 07:22:41 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8589
8590         * builtins.c (expand_builtin_alloca): allocate_dynamic_stack_space
8591         returns Pmode pseudo, but we need ptr_mode.
8592         * explow.c (allocate_dynamic_stack_space): Use plus_constant.
8593         Remove bogus conversions; use HOST_WIDE_INT for size.
8594         Don't use TARGET if wrong mode.
8595
8596         * config/i386/i386.c (ix86_compute_frame_size): Allow
8597         stack_alignment_needed to be non-default even if size is zero.
8598
8599 2001-01-31  Alan Modra <alan@linuxcare.com.au>
8600
8601         * pa.c (hppa_init_pic_save): New function.
8602         * pa.h (hppa_init_pic_save): Declare.
8603         * pa.md (call, call_value, sibcall, sibcall_value): Use
8604         the above instead of duplicated code.
8605
8606         * pa.c (hppa_encode_label): Correct size of alloca buffer
8607         so we don't overrun it.  Correct leading `*' case.
8608         * pa.h (STRIP_NAME_ENCODING): Simplify now that we don't
8609         need to handle `*@'.
8610         (FUNCTION_NAME_P): Likewise.
8611
8612 2001-01-31  Richard Henderson  <rth@redhat.com>
8613
8614         * config.gcc (alpha-osf5): Use float-i128.h.
8615
8616         * config/float-i128.h (FLT_EVAL_METHOD, DECIMAL_DIG): Define.
8617         * config/float-i32.h: Likewise.
8618         * config/float-i64.h: Likewise.
8619         * config/float-sh.h: Likewise.
8620         * config/float-sparc.h: Likewise.
8621
8622 2001-01-31  DJ Delorie  <dj@redhat.com>
8623
8624         * expmed.c (extract_bit_field): allow non-integral modes if we
8625         want to extract a whole register from itself.
8626
8627 2001-01-31  Jakub Jelinek  <jakub@redhat.com>
8628
8629         * c-typeck.c (set_init_index): If first is equal to last, assume as
8630         if it was not a range at all.
8631
8632 2001-01-31  Alexandre Oliva  <aoliva@redhat.com>
8633
8634         * config/fp-bit.c: Include tm.h.
8635         (float_to_si): Don't assume SImode is 32-bits wide.
8636         (float_to_usi): Likewise.
8637
8638 2001-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
8639
8640         * c-parse.in (structsp): Pedwarn when "enum foo" refers to an
8641         incomplete type.
8642         (typename): Call pending_xref_error after parsing typed_typespecs.
8643         * c-decl.c (lookup_tag): Give error immediately rather than
8644         leaving it pending if the tag of the wrong type is in the same
8645         binding level.
8646         (xref_tag): Don't pedwarn for forward declarations of enum types
8647         here.
8648         * gcc.texi (Actual Bugs): Remove entry for misuse of struct, union
8649         and enum tags.
8650
8651 2001-01-31  Alexandre Oliva  <aoliva@redhat.com>
8652
8653         * config/float-sparc.h (LDBL_MAX) [sparc32]: Fix typo.
8654
8655 2001-01-31  Neil Booth  <neil@daikokuya.demon.co.uk>
8656
8657         * cpplib.c (T_ELIF): Move to STDC89, not that it matters.
8658         (_cpp_handle_directive): Suggest not using #elif with -Wtraditional.
8659
8660 2001-01-31  Neil Booth  <neil@daikokuya.demon.co.uk>
8661
8662         * cpphash.h (struct cpp_reader): New saved_flags.
8663         * cppmacro.c (cpp_get_token): Use saved_flags to remember
8664         to avoid a paste after a pasted token.
8665
8666 2001-01-31  Alexandre Oliva  <aoliva@redhat.com>
8667
8668         * libgcc2.h (Wtype_MAX, Wtype_MIN): Define.
8669         * libgcc2.c (__fixunssfSI, __fixunsdfSI, __fixunsxfSI): Use
8670         Wtype_MIN instead of LONG_MIN.
8671
8672 2001-01-30  Jeffrey Oldham  <oldham@codesourcery.com>
8673
8674         * fixinc/fixincl.tpl: Add 2001 to copyright.  Change name of
8675         README file.
8676         * fixinc/fixincl.x: Regenerated.
8677         * fixinc/inclhack.def (irix_limits_const): New definition to
8678         convert "const" to "__const" in limits.h.
8679
8680 2001-01-30  Jeffrey Oldham  <oldham@codesourcery.com>
8681
8682         * fixinc/genfixes (AG): Fix "autogen4" thinko.
8683
8684 2001-01-30  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
8685
8686         * regmove.c (try_auto_increment): Change REG_DEAD into REG_UNUSED
8687         when register dies in the insn.
8688
8689 2001-01-30  Neil Booth  <neil@daikokuya.demon.co.uk>
8690
8691         * diagnostic.c (fatal): Fix word wrap.
8692
8693 2001-01-30  Alexandre Oliva  <aoliva@redhat.com>
8694
8695         * combine.c (try_combine): Fix SUBREG setting for
8696         HOST_BITS_PER_WIDE_INT >= 2 * BITS_PER_WORD.
8697
8698 2001-01-30  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8699
8700         * jump.c (comparison_dominates_p): Don't try to handle UNKNOWN
8701         comparison codes.
8702
8703 2001-01-30  Neil Booth  <neil@daikokuya.demon.co.uk>
8704
8705         * c-decl.c (c_expand_body): Check TYPE_SIZE_UNIT (ret_type)
8706         is not NULL.
8707         * toplev.c (decode_W_option): Update warn_larger_than
8708         unconditionally for each processed switch.
8709
8710 2001-01-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8711
8712         * pa.c (pa_init_machine_status): Initialize pic_offset_table_save_rtx
8713         to NULL_RTX.
8714         (hppa_expand_prologue): Delete code to save pic offset table register
8715         in the function prologue.
8716         * pa.h (PIC_OFFSET_TABLE_SAVE_RTX): Correct type in comment.
8717         * pa.md (call, call_value, sibcall, sibcall_value): Save the pic offset
8718         table register at the beginning of the function after the prologue.
8719
8720 2001-01-29  lars brinkhoff  <lars@nocrew.org>
8721
8722         * tm.texi (PUSH_ROUNDING): Remove duplicate lines.
8723
8724 2001-01-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8725             Jeff Law <law@redhat.com>
8726
8727         * pa.md (return): Revise comment for trivial return.
8728         (return_internal): Non-trivial return pattern for non-PIC code.
8729         (return_internal_pic): Non-trivial return pattern for PIC code.
8730         It uses the PIC register to ensure it is restored after
8731         function calls.
8732         (epilogue): Generate appropriate return for PIC and non-PIC code.
8733
8734 Mon Jan 29 23:53:14 2001  Christopher Faylor <cgf@cygnus.com>
8735
8736         * config/i386/cygwin.h: Fix -mno-cygwin search path for link.
8737
8738 2001-01-29  DJ Delorie  <dj@redhat.com>
8739
8740         * combine.c (if_then_else_cond): Pass the correct mode to
8741         operand_subword() for constants.
8742
8743 Mon Jan 29 20:38:19 2001  Christopher Faylor <cgf@cygnus.com>
8744
8745         * config/i386/cygwin.h: Add w32api to include search.  Search different
8746         directories in a cross-build environment.
8747
8748 2001-11-29  Tim Josling  <tej@melbpc.org.au>
8749
8750         * tree.h (TYPE_STUB_DECL): Add documentation.
8751
8752 2001-11-29  Laurynas Biveinis  <lauras@softhome.net>
8753
8754         * sdbout.c (sdbout_one_type): Skip types with indeterminate size.
8755         (sdbout_field_types): Likwise.  Fix use of host_integerp.
8756
8757 2001-01-29  Thomas Pfaff  <tpfaff@gmx.net>
8758
8759         * mingw32.h: Override STARTFILE_SPEC and LINK_SPEC declared in
8760         cygwin.h.
8761
8762 2001-01-29  Jeffrey Oldham  <oldham@codesourcery.com>
8763
8764         * config/mips/iris6.h (SUPPORTS_INIT_PRIORITY): Revise definition
8765         to use flag_gnu_linker.
8766
8767 2001-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
8768
8769         * cpplib.c (T_BAD_DIRECTIVE): Remove.
8770         (_cpp_init_stacks): Loop from 0 to N_DIRECTIVES - 1.
8771
8772 2001-01-29  Joseph S. Myers  <jsm28@cam.ac.uk>
8773
8774         * tree.c, tree.h (build_parse_node): Remove; was identical to
8775         build_nt.
8776         * c-lang.c (start_cdtor), objc/objc-act.c
8777         (build_module_descriptor): Use build_nt instead of
8778         build_parse_node.
8779
8780 2001-01-29  Jakub Jelinek  <jakub@redhat.com>
8781
8782         * config/i386/i386.md (addqi_1_lea): Fix mode (QI instead of HI).
8783         (testqi_1, andqi_2): If widening to SImode, make sure CONST_INT does
8784         not have any upper bits set.
8785
8786 2001-01-29  Phil Edwards  <pme@sources.redhat.com>
8787
8788         * COPYING.LIB:  Update to LGPL 2.1 from the FSF.
8789
8790 2001-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8791
8792         * stmt.c (estimate_case_costs): Use integer_minus_one_node.
8793
8794         * tree.c (build_common_tree_nodes_2): Set integer_minus_one_node.
8795
8796         * tree.h (tree_index): Add new element TI_INTEGER_MINUS_ONE.
8797         (integer_minus_one_node): Define.
8798
8799 2001-01-28  Alexandre Oliva  <aoliva@redhat.com>
8800
8801         * Makefile.in (bootstrap2-lean): Fix typo.
8802
8803 2001-01-28  Neil Booth  <neil@daikokuya.demon.co.uk>
8804
8805         * cpphash.c (_cpp_cleanup_hashtable, _cpp_lookup_with_hash)
8806         : Don't set fe_value.
8807         * cpplib.h (AVOID_LPASTE): New flag.
8808         (struct cpp_hashnode): Remove fe_value.
8809         * cpplex.c (cpp_avoid_paste): Don't paste '.' with a number.
8810         * cppmacro.c (builtin_macro): Don't set flags here.
8811         (replace_args): Set AVOID_LPASTE flag on first token of an
8812         argument, and the token following it.
8813         (cpp_get_token): Set AVOID_LPASTE flag on first token of a
8814         macro expansion, and on the token following it.  Do it for
8815         builtins too.
8816         * cppmain.c (scan_buffer): Avoid pasting only flagged tokens.
8817
8818 2001-01-27  Richard Henderson  <rth@redhat.com>
8819
8820         * config/alpha/t-ieee: Remove multilibbing.
8821         (TARGET_LIBGCC2_CFLAGS): Add -mieee.
8822
8823 2001-01-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8824
8825         * configure.in: Arrange to include defaults.h in [ht]config.h/tm.h.
8826
8827         * Makefile.in: Remove all dependencies on defaults.h.
8828         * builtins.c: Don't include defaults.h.
8829         * c-common.c: Likewise.
8830         * c-decl.c: Likewise.
8831         * c-pragma.c: Likewise.
8832         * c-typeck.c: Likewise.
8833         * combine.c: Likewise.
8834         * i386.c: Likewise.
8835         * frame-ia64.c: Likewise.
8836         * cppexp.c: Likewise.
8837         * crtstuff.c: Likewise.
8838         * dbxout.c: Likewise.
8839         * dwarf2out.c: Likewise.
8840         * dwarfout.c: Likewise.
8841         * emit-rtl.c: Likewise.
8842         * except.c: Likewise.
8843         * expr.c: Likewise.
8844         * final.c: Likewise.
8845         * frame-dwarf2.c: Likewise.
8846         * libgcc2.c: Likewise.
8847         * optabs.c: Likewise.
8848         * profile.c: Likewise.
8849         * sdbout.c: Likewise.
8850         * toplev.c: Likewise.
8851         * tradcif.y: Likewise.
8852         * tree.c: Likewise.
8853         * varasm.c: Likewise.
8854
8855 2001-01-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8856
8857         * builtins.c (expand_builtin_fputs): Use size_one_node when
8858         transforming into fwrite.
8859
8860 2001-01-27  Joseph S. Myers  <jsm28@cam.ac.uk>
8861
8862         * extend.texi (Attribute Syntax): New section.
8863
8864 2001-01-27  Michael Sokolov  <msokolov@ivan.Harhan.ORG>
8865
8866         * fixproto: Correctly install synthesised unistd.h and stdlib.h when
8867         they didn't need fixing.
8868
8869 2001-01-27  Janis Johnson <janis@us.ibm.com>
8870
8871         * config.gcc (i[34567]86-sequent-{ptx4*,sysv4*}): Use usegas.h
8872         if appropriate.
8873         * config/ptx4.h: Several fixes to build on DYNIX/ptx v4.[456], and
8874         to remove macro definitions that are duplicated from elfos.h.
8875
8876 2001-01-27  Richard Henderson  <rth@redhat.com>
8877
8878         * config/i386/sco5gas.h: Move ...
8879         * config/usegas.h: ... here.
8880         * config.gcc (i[34567]86-*-sco3.2v5) [tm_file]: Update.
8881
8882 2001-01-27  Jakub Jelinek  <jakub@redhat.com>
8883
8884         * c-typeck.c (struct constructor_stack): Add range_stack member.
8885         (really_start_incremental_init): Clear it.
8886         (push_init_level): Save constructor_range_stack and clear it if
8887         pushing explicit braces.
8888         (pop_init_level): abort if constructor_range_stack is non-zero at
8889         explicit closing brace.  Restore saved constructor_range_stack if
8890         not implicit.
8891
8892 2001-01-27  Alexandre Oliva  <aoliva@redhat.com>
8893
8894         * expr.c (emit_move_insn): Add REG_EQUAL note when constant loaded
8895         into register was forced into memory.
8896
8897 2001-01-27  Alexandre Oliva  <aoliva@redhat.com>
8898
8899         * Makefile.in: Remove uses of + before $(MAKE).
8900
8901 2001-01-26  Richard Henderson  <rth@redhat.com>
8902
8903         * stmt.c (cost_table): Remove.
8904         (COST_TABLE, cost_table_initialized): New.
8905         (estimate_case_costs): Use the later instead of the former.
8906         (balance_case_nodes): Likewise.
8907
8908 2001-01-26  Richard Henderson  <rth@redhat.com>
8909
8910         * alias.c (objects_must_conflict_p): Read-only slots may not
8911         conflict despite having the same type.
8912
8913 2001-01-27  Michael Hayes  <mhayes@redhat.com>
8914
8915         * loop.c (loop_giv_reduce_benefit): Copy mode size into
8916         int variable.
8917         (check_ext_dependant_givs): Initialise u_start_val and
8918         u_end_val.
8919         (load_mems): Make last_max_reg unsigned.
8920         (try_swap_copy_prop): Use INSN_P and initialise set.
8921
8922 Fri Jan 26 23:22:58 2001  Denis Chertykov  <denisc@overta.ru>
8923
8924         * README.AVR : Removed.
8925
8926 Fri Jan 26 11:37:26 2001  Jeffrey A Law  (law@cygnus.com)
8927
8928         * pa-64.h (text_section): Remove declaration.
8929
8930         * pa.md (return_internal): Remove mode on PIC register use.
8931
8932 2001-01-25  lars brinkhoff  <lars@nocrew.org>
8933
8934         * tm.texi (DATA_ALIGNMENT, LOCAL_ALIGNMENT, ASM_OPEN_PAREN,
8935         ASM_CLOSE_PAREN): fix typos.
8936
8937 2001-01-25  Mark Mitchell  <mark@codesourcery.com>
8938
8939         * acconfig.h: Define `const' to the empty string if neither
8940         __STDC__ nor __cplusplus is defined.
8941         * config.in: Regenerated.
8942
8943 2001-01-25  David Edelsohn  <edelsohn@gnu.org>
8944
8945         * config.gcc (rs6000-ibm-aix[5-9]*): Change to aix51.h.
8946         * collect2.c (main): Delete importf.  Add ".obj" file extension.
8947         (GCC_CHECK_HDR): Handle AIX V5 new magic number.
8948         (aix_std_libs): Add additional AIX libraries to skip.
8949         * config/rs6000/aix.h (MY_ISCOFF): Add AIX V5 new magic number.
8950         * config/rs6000/aix51.h: New file.
8951
8952 2001-01-25  Michael Hayes  <mhayes@redhat.com>
8953
8954         * loop.c (loop_call_insn_emit_before, loop_call_insn_hoist): New.
8955         (loop_insn_emit_before): No longer static.
8956         (move_movables): Replace emit_insn_after with loop_insn_emit_after.
8957         (loop_givs_rescan, load_mems): Likewise.
8958         (check_dbra_loop): Replace emit_insn_before with loop_insn_emit_before.
8959         (maybe_eliminate_biv_1):
8960         (move_movables): Replace emit_call_insn_before with
8961         loop_call_insn_hoist.
8962         * loop.h (loop_insn_emit_before): Add.
8963         * unroll.c (copy_loop_body): Replace emit_insn_before with
8964         loop_insn_emit_before.
8965
8966 2001-01-25  Neil Booth  <neil@daikokuya.demon.co.uk>
8967
8968         * diagnostic.c (fatal): Request preprocessed source.
8969
8970 Thu Jan 25 02:01:16 2001  J"orn Rennecke <amylaar@redhat.com>
8971
8972         * c-decl.c (duplicate_decls): If different_binding_level is nonzero,
8973         olddecl has argument types and newdecl has none, use the argument
8974         types from olddecl.
8975
8976 2001-01-24  Ulrich Drepper  <drepper@redhat.com>
8977
8978         * dwarf2out.c (prefix_of): New function.  Determine longest common
8979         prefix of the two arguments.  The units are whole path components.
8980         (output_file_names): When adding a new directory find the one entry
8981         with the longest common prefix already in the list.  Artificially
8982         generate entry if there is none for this prefix.
8983         Fix test to check whether the zeroth directory entry is used.
8984
8985 Wed Jan 24 23:51:55 2001  J"orn Rennecke <amylaar@redhat.com>
8986
8987         * reload1.c (reload_reg_free_for_value_p): New parameter start_regno.
8988         Changed all callers.  Take it into account when deciding if a
8989         previously loaded value matches.
8990
8991 2001-01-24  Richard Henderson  <rth@redhat.com>
8992
8993         * reload.c (find_reloads_subreg_address): Fail the substitution
8994         if the resulting address is insufficiently aligned.
8995
8996 2001-01-24  DJ Delorie  <dj@redhat.com>
8997
8998         * combine.c (combine_simplify_rtx): If the modes are all VOIDmode,
8999         check the original operand's mode also.
9000         * simplify-rtx.c (simplify_ternary_operation): Ditto.
9001
9002 2001-01-24  Joseph S. Myers  <jsm28@cam.ac.uk>
9003
9004         * c-parse.in (cast_expr): Move compound literals from here ...
9005         (primary): ... to here.  Use standard terminology "compound
9006         literal" instead of "constructor expression".
9007
9008 2001-01-24  Joseph S. Myers  <jsm28@cam.ac.uk>
9009
9010         * gcc.1, cpp.1: Regenerate.
9011
9012 2001-01-24  Alexandre Oliva  <aoliva@redhat.com>
9013
9014         * calls.c (emit_library_call_value_1): Memory slot for
9015         pass-by-reference argument should have the mode of the argument,
9016         not of the pointer to it.
9017
9018 2001-01-24  Tom Tromey  <tromey@redhat.com>
9019
9020         * gcc.texi (G++ and GCC): Mention gcj manual.
9021         (Standards): Link to section of manual mentioning gcj/Java
9022         compatibility.
9023
9024 2001-01-24  Jakub Jelinek  <jakub@redhat.com>
9025
9026         * cppfiles.c (_cpp_read_file): Add to dependencies if requested.
9027         * cppinit.c (cpp_start_read): Remove deps_add_dep call.
9028         * tradcpp.c (main): Add -imacros or -include'd dependencies
9029         for -M*.
9030         * cpp.texi (-M, -MM): Document -M -include behaviour.
9031
9032 2001-01-24  Roger Collins <roger@ProProject.com>
9033
9034         * config/i386/xm-i386.h: Make __i386__ a boolean macro.
9035
9036 2001-01-24  Will Cohen  <wcohen@redhat.com>
9037
9038         * config/mips/abi64.h (RETURN_IN_MEMORY): Always take into account
9039         whether registers are 32 bits or 64 bits in size.
9040
9041 2001-01-24  Ben Elliston  <bje@redhat.com>
9042
9043         * config/m32r/m32r.h (PREDICATE_CODES): Remove m32r_not_same_reg.
9044
9045 2001-01-24  Richard Henderson  <rth@redhat.com>
9046
9047         * config/alpha/alpha.md (builtin_longjmp_internal): New.
9048         (builtin_longjmp): Use it instead of emit_indirect_jump.
9049
9050 2001-01-23  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9051
9052         * bb-reorder.c (make_reorder_chain_1): Handle case where
9053         jump edge goes to the same block as the fallthru edge.
9054
9055 2001-01-23  Jim Wilson  <wilson@redhat.com>
9056
9057         * dwarf2out.c (dwarf2out_line): Make last_file_num be unsigned.
9058         * frame.h (__ia64_personality_v1): Add prototype.
9059         * libgcc2.c (ia64_throw_helper): Change personality declaration to
9060         prototype form.  Add void * cast to first argument to personality
9061         call.
9062         * real.c (e113toe): Surround with INTEL_EXTENDED_IEEE_FORMAT ifdefs.
9063         (asctoe113): Likewise.
9064         * config/ia64/frame-ia64.c: Include eh-common.h.
9065         * config/ia64/ia64-protos.h (sdata_section, sbbs_section): Add
9066         prototypes.
9067         * config/ia64/ia64.c (emit_insn_group_barriers): Add ATTRIBUTE_UNUSED
9068         to dump parameter.
9069         (itanium_split_issue): Add prototype.
9070         (gen_nop_type): Ifdef out.
9071         (find_best_packet): Initialize best_packet.
9072         (ia64_encode_section_info): New local string.  Use for ggc_alloc_string
9073         result.
9074         * config/ia64/ia64.h (ASM_OUTPUT_LONG_DOUBLE): Use 0L not 0.
9075         * config/ia64/ia64.md (bsp_value): Add explicit stop bit at start.
9076         (flushrs): Add explicit stop bit at end.
9077         * config/ia64/lib1funcs.asm (__ia64_restore_stack_nonlocal): Change
9078         trailing \ to >.
9079
9080 2001-01-23  Chris Demetriou  <cgd@broadcom.com>
9081
9082         * libgcc-std.ver (GCC_3.0): Add __terminate_func_set to list
9083         of EH symbols.
9084         * libgcc2.c (__terminate_func): Make variable static.
9085         (__terminate_set_func): New function to set __terminate_func.
9086         * libgcc2.h (__terminate_func_ptr): New typedef.
9087         (__terminate_set_func): New function.
9088
9089 2001-01-23  Richard Henderson  <rth@redhat.com>
9090
9091         * flow.c (init_propagate_block_info): Don't consider unchanging
9092         memories for dead frame store elimination.
9093
9094 2001-01-23  Richard Henderson  <rth@redhat.com>
9095
9096         * varasm.c (UNIQUE_SECTION): Move default implementation ...
9097         * defaults.h: ... here.
9098
9099 2001-01-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9100
9101         * c4x.h (TARGET_LOAD_DIRECT_MEMS): Define.
9102
9103 2001-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
9104
9105         * c-lex.c (lex_charconst): Fix typo: s/p/str.
9106
9107 2001-01-23  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
9108
9109         * rs6000.h (rs6000_return_addr): Move prototype from here...
9110         * rs6000-protos.h (rs6000_return_addr): ...to here.
9111         (rs6000_init_expanders): Delete prototype.
9112
9113 2001-01-23  Nick Clifton  <nickc@redhat.com>
9114
9115         * invoke.texi: Replace , with \, inside @gccoptlist macros.
9116         (Spec Files): Document %B and %j and %. and %v3 and %M and
9117         %{S*&T} spec switches.
9118
9119 2001-01-24  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9120
9121         * c4x.c (c4x_r11_set_p): Calculate rtx code correctly.
9122
9123 2001-01-23  Chris Demetriou  <cgd@sibyte.com>
9124             Neil Booth  <neil@daikokuya.demon.co.uk>
9125
9126         * cpperror.c: Merge handlers of PEDWARN and WARNING.
9127         Have -Werror make pedantic warnings errors, like the
9128         rest of GCC.
9129
9130 2001-01-23  Phil Edwards  <pme@sources.redhat.com>
9131
9132         * c-tree.texi (IDENTIFIER_LENGTH):  Fix typo.
9133
9134 2001-01-23  Jakub Jelinek  <jakub@redhat.com>
9135
9136         * integrate.h (struct inline_remap): Add compare_src, compare_mode.
9137         * integrate.c (expand_inline_function): Initialize them.
9138         (subst_constants): If changing COMPARE so that both its arguments
9139         will be VOIDmode and the comparison mode will be lost, note
9140         compare_mode.  Use the recorded compare_mode to optimize
9141         IF_THEN_ELSE.
9142
9143 2001-01-23  Jason Merrill  <jason@redhat.com>
9144
9145         * dwarf2out.c (new_die): Use xcalloc.
9146         (output_die): Abort rather than emit a local reference to offset 0.
9147
9148 2001-01-17  Andrew Haley  <aph@redhat.com>
9149
9150         * libgcc2.c (get_reg_addr): Don't abort if we haven't got a copy
9151         of a saved register; return NULL instead.
9152         (copy_reg): Take a pointer to a source register rather than a
9153         frame_state.
9154         (next_stack_level): Remember the address in the stack frame of all
9155         saved registers.
9156         Use the saved register pointer array as the source of the CFA.
9157         (throw_helper): Rewrite.  Unwind once rather than twice and keep
9158         track of saved registers as we go.
9159
9160 2001-01-23  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9161
9162         * c4x-protos.h (c4x_legitimize_reload_address): Remove.
9163         * c4x.c (c4x_legitimize_reload_address): Remove.
9164         * c4x.h (LEGITIMIZE_RELOAD_ADDRESS): Rewrite to generate correct
9165         reload address for ldp(k) insn.
9166
9167 Mon Jan 22 20:53:47 2001  Jeffrey A Law  (law@cygnus.com)
9168
9169         * pa.md (return_internal): Add a USE of the PIC register to ensure
9170         it is restored after each call.
9171         (return expander): Corresponding changes.
9172
9173 2001-01-22  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
9174
9175         * rs6000.h (INIT_EXPANDERS): Delete.
9176         (RETURN_ADDR_RTX): Call rs6000_return_addr().
9177         * rs6000.c (rs6000_override_options): Call *_machine_status from
9178         here...
9179         (rs6000_init_expanders): ...instead of here. Delete.
9180         (rs6000_mark_machine_status): New function.
9181         (rs6000_init_machine_status): Use xcalloc.
9182         (rs6000_return_addr): Generate RTX for the return address.
9183         (rs6000_ra_ever_killed): New, check if LR was ever destroyed.
9184         (rs6000_stack_info): Use it.
9185
9186 2001-01-22  Thomas Pfaff  <tpfaff@gmx.net>
9187
9188         * gthr-win32.h: Include errno.h to get a declaration for
9189         EINVAL and _mingw.h if the target is mingw32.
9190
9191 2001-01-22  Andres Felipe Vargas <avargas@teletulua.com.co>
9192
9193         * cpp.texi: Correct typos.
9194
9195 Mon Jan 22 13:59:09 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9196
9197         * explow.c (probe_stack_range): Ensure value passed to
9198         stack_check_libfunc is ptr_mode, not Pmode.
9199
9200 Mon Jan 22 16:53:06 2001  J"orn Rennecke <amylaar@redhat.com>
9201
9202         * recog.c (validate_replace_rtx_1): In ZERO_EXTEND / SIGN_EXTEND
9203         case, don't use operand_subword to calculate a SUBREG that is
9204         wider than a word.
9205
9206         * rtl.texi: Comparisons yield 0 or STORE_FLAG_VALUE.
9207
9208 2001-01-22 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9209
9210         * c4x.c (c4x_valid_rptb_p, c4x_label_ref_used_p): New functions.
9211         (c4x_rptb_insert): Call c4x_valid_rptb_p to check if repeat block is
9212         valid.  If not replace it by equivalent insns.
9213
9214 2001-01-22 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9215
9216         * c4x.c (c4x_check_legit_addr): Only check CONST.  Not if CONST
9217         contains SYMBOL_REF, LABEL_REF and CONST_INT.
9218         (c4x_U_constraint, symbolic_address_operand): Likewise.
9219         (c4x_immed_float_constant): Do not check if CONST_DOUBLE is in
9220         memory.
9221         (c4x_r11_set_p, c4x_check_laj_p): New functions.
9222         * c4x-protos.h (c4x_check_laj_p): Add prototype.
9223         * c4x.md (in_annul_slot_3): Do not allow auto-increment in last
9224         anulling slot because of silicon bug.
9225         (laj, lajv): Call c4x_check_laj_p to check for silicon bug.
9226
9227 2001-01-22  Alan Modra <alan@linuxcare.com.au>
9228
9229         * cppexp.c (parse_charconst):  Change `mask' type to agree
9230         with parse_escape.
9231
9232 2001-01-21  Richard Henderson  <rth@redhat.com>
9233
9234         * config/i386/i386.c (ix86_asm_file_end): Disable putting
9235         pic_label_name in a linkonce section.
9236
9237 2001-01-17  Philipp Thomas  <pthomas@suse.de>
9238
9239         * aclocal.m4 (AM_WITH_NLS): Add -lintl to LIBS if gettext was
9240         found in libintl.
9241         * configure: Regenerate.
9242
9243 Sun Jan 21 02:38:56 2001  J"orn Rennecke <amylaar@redhat.com>
9244
9245         * expmed.c (synth_mult, expand_mult_highpart, expand_divmod): Guard
9246         uses of shift_cost, shiftadd_cost and shiftsub_cost with bound checks.
9247
9248 Sun Jan 21 09:44:17 2001  Denis Chertykov  <denisc@overta.ru>
9249
9250         * config/avr/avr.c (ret_cond_branch): New argument (reverse) added.
9251         If REVERSE nonzero then condition code in X must be reversed.
9252         (encode_section_info): Optimise if/else.
9253         (avr_function_value): Fix formatting.
9254
9255         * config/avr/avr.md (branch): Call to ret_cond_branch changed.
9256         (difficult_branch): Likewise.
9257         (rvbranch): Likewise.
9258         (difficult_rvbranch): Likewise.
9259
9260         * config/avr/avr-protos.h (ret_cond_branch): Prototype changed.
9261
9262         * config/avr/libgcc.S: Fix comment.
9263
9264 2001-01-20  Michael Sokolov  <msokolov@ivan.Harhan.ORG>
9265
9266         * sdbout.c (PUT_SDB_DEF): Fix after last bogus change.
9267
9268 2001-01-20  Michael Sokolov  <msokolov@ivan.Harhan.ORG>
9269
9270         * cppinit.c (INO_T_EQ): Don't use #elif, fix formatting.
9271
9272 2001-01-20  Michael Sokolov  <msokolov@ivan.Harhan.ORG>
9273
9274         * aclocal.m4 (gcc_AC_FUNC_STRSTR): New macro.
9275         * configure.in (gcc_AC_FUNC_STRSTR): Add invokation.
9276         * configure, config.in: Regenerate.
9277         * Makefile.in (STRSTR, HOST_STRSTR, USE_HOST_STRSTR): New variables.
9278         (LIBDEPS, HOST_LIBDEPS, LIBS, HOST_LIBS): Add strstr handling.
9279         (strstr.o, $(HOST_PREFIX_1)strstr.o): New rules.
9280         (doprint.o): New rule.
9281
9282 2001-01-20  Joseph S. Myers  <jsm28@cam.ac.uk>
9283
9284         * c-typeck.c (digest_init): Handle boolean types as scalars.
9285
9286 Sat Jan 20 12:46:57 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9287
9288         * stmt.c (expand_return): Don't return anything if size is zero.
9289         Delete redundant assignment to BYTES.
9290         * expr.c (move_block_from_reg): Do nothing if NREGS is zero.
9291
9292 2001-01-20  Marek Michalkiewicz  <marekm@linux.org.pl>
9293
9294         * config/avr/avr.h (INIT_TARGET_OPTABS): Remove most of it, was
9295         the same as the default library function names.
9296         * config/avr/avr.md: Document special characters after '%'.
9297         (mulqi3, mulhi3, mulsi3): Call libgcc.S functions ourselves,
9298         knowing which of the call-used registers are really clobbered.
9299         (divmodqi4, udivmodqi4, divmodhi4, udivmodhi4, divmodsi4, udivmodsi4):
9300         New.  Both quotient and remainder from one libgcc.S call.
9301         * config/avr/libgcc.S: Optimize mul/divmod for the new insns above,
9302         clobber as few registers as possible.
9303         * config/avr/t-avr (LIB1ASMFUNCS): Adjust for the above changes.
9304
9305 2001-01-20  Neil Booth  <neil@daikokuya.demon.co.uk>
9306
9307         * cppmacro.c (funlike_invocation_p): Don't move back up to the
9308         context of the top of the stack.
9309
9310 2001-01-20  Jakub Jelinek  <jakub@redhat.com>
9311
9312         * function.c (fixup_var_refs): Move CALL_PLACEHOLDER handling...
9313         (fixup_var_refs_insns): ...here.
9314
9315 2001-01-20  Zack Weinberg  <zack@wolery.stanford.edu>
9316
9317         * function.c (fixup_var_refs_insns): Break up into
9318         fixup_var_refs_insn [body of loop], fixup_var_refs_insns
9319         [loop over entire insn list], and fixup_var_refs_insns_with_hash
9320         [loop over hash table entries].
9321         (fixup_var_refs): Adjust calls to fixup_var_refs_insns and/or
9322         fixup_var_refs_insns_with_hash, to match above changes.
9323
9324 2001-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9325
9326         * Makefile.in (ORDINARY_FLAGS_TO_PASS): Add MAKEOVERRIDES variable.
9327         (libgcc.a): Likewise.
9328         (stmp-multilib): Likewise.
9329         (STAGE2_FLAGS_TO_PASS): Likewise.
9330
9331 2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
9332
9333         * config/sh/sh.c (prepare_move_operands) [PIC]: Use operands[0] as
9334         temporary if no_new_pseudos.
9335
9336 2001-01-19  Neil Booth  <neil@daikokuya.demon.co.uk>
9337
9338         * cppinternals.texi: Update.
9339
9340 2001-01-19  Richard Earnshaw  <rearnsha@arm.com>
9341
9342         * arm.c (arm_init_builtins): Re-enable builtins.
9343
9344 Fri Jan 19 13:02:56 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9345
9346         * rtl.texi (SET, CLOBBER): Document PARALLEL as SET_DEST possibility.
9347         * flow.c (mark_set_1, case PARALLEL): Don't require BLKmode, allow
9348         element to be null, and always expect an EXPR_LIST.
9349         * rtlanal.c (reg_overlap_mentioned_p, note_stores): Likewise.
9350         * sched-deps.c (sched_analyze_1): Likewise.
9351         * sched-rgn.c (check_live_1, update_live_1): Likewise.
9352
9353         * regclass.c (max_set_parallel): New variable.
9354         (reg_scan): Take it into account in computation of max_parallel.
9355         (reg_scan_mark_refs, case SET): Compute it.
9356
9357         * alias.c (rtx_equal_for_memref_p, case ADDRESSOF): Don't assume
9358         args are REG.
9359         * expr.c (store_constructor): Don't look at MEM_ALIAS_SET unless MEM.
9360         * function.c (assign_parms): Use INTVAL for a CONST_INT.
9361
9362 2001-01-19  Jason Merrill  <jason@redhat.com>
9363
9364         * dwarf2out.c (gen_subprogram_die): Don't reuse the in-class decl
9365         for the abstract instance of an inline function.
9366
9367 Fri Jan 19 14:31:35 2001  Alexandre Oliva  <aoliva@redhat.com>
9368                           J"orn Rennecke <amylaar@redhat.com>
9369
9370         * reload1.c (move2add_note_store): Treat all registers directly or
9371         indirectly derived from a base register as members of the same set
9372         of values.
9373         (reload_cse_move2add): Adjust accordingly.  Take mode and offset
9374         of base register into account.
9375
9376 Fri Jan 19 09:18:42 2001  J"orn Rennecke <amylaar@redhat.com>
9377
9378         * alias.c (find_base_value): Recognize TRUNCATE.
9379         (record_set): In PLUS case, invalidate if other summand is also a
9380         base value.
9381
9382 Thu Jan 18 06:43:04 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9383
9384         * flow.c (mark_set_1, case PARALLEL): New case; rework to allow
9385         entry to be EXPR_LIST.
9386         * rtlanal.c (reg_overlap_mentioned_p): Allow PARALLEL in SET to
9387         be an EXPR_LIST (but not null, which other code doesn't allow).
9388         (note_stores): Properly handle PARALLEL in SET.
9389         Recursively call for top-level PARALLEL.
9390         * sched-deps.c (sched_analyze_1): Handle EXPR_LIST in PARALLEL in SET.
9391         * sched-rgn.c (check_live_1, update_live_1): Likewise.
9392
9393         * config.gcc (rs6000-ibm-aix*, rs6000-bull-bosx): Add rs6000/aix.h.
9394
9395 2001-01-18  Neil Booth  <neil@daikokuya.demon.co.uk>
9396
9397         * cpplib.c (_cpp_handle_directive): Use buffer->was_skipping,
9398         not pfile->skipping (== 0).
9399
9400 2001-01-17  Nick Clifton  <nickc@redhat.com>
9401
9402         * config/rs6000/rs6000.c: Add prototypes for {init|free}_
9403         machine_status.
9404
9405 2001-01-17  Jim Wilson  <wilson@redhat.com>
9406
9407         * invoke.texi (IA-64 options): Improve.
9408
9409 2001-01-17  Tom Tromey  <tromey@redhat.com>
9410
9411         * invoke.texi (Optimize Options): Use `{}' to around @samp
9412         argument.
9413
9414 2001-01-17  Aldy Hernandez  <aldyh@redhat.com>
9415
9416         * invoke.texi (-fno-guess-branch-probability): New option.
9417
9418 Wed Jan 17 13:26:34 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9419
9420         * combine.c (try_combine): Don't set i3_subst_into_i2 for
9421         case of making new double-word constant.
9422         Revert last change: instead just test i3_subst_into_i2.
9423
9424 2001-01-17  Jakub Jelinek  <jakub@redhat.com>
9425
9426         * config/i386/i386.md (cmpqi_minus_1): Use {b} for QImode operation.
9427         Use q constraints instead of r.
9428
9429 Tue Jan 16 22:23:04 2001  Alan Modra (alan@linuxcare.com.au)
9430
9431         * config/pa/pa.h (PIC_OFFSET_TABLE_REGNUM_SAVED): Remove.
9432         (machine_function): Define.
9433         (PIC_OFFSET_TABLE_SAVE_RTX) : Define.
9434         * config/pa/pa.c (pa_init_machine_status, pa_mark_machine_status,
9435         pa_free_machine_status): New functions.
9436         (override_options): Set {init,mark,free}_machine_status to above.
9437         (hppa_expand_prologue): Use PIC_OFFSET_TABLE_SAVE_RTX instead of
9438         PIC_OFFSET_TABLE_REGNUM_SAVED.
9439         * config/pa/pa.md: Use PIC_OFFSET_TABLE_SAVE_RTX instead of
9440         PIC_OFFSET_TABLE_REGNUM_SAVED throughout.
9441         * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Remove
9442         references to PIC_OFFSET_TABLE_REGNUM_SAVED.
9443         * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Likewise.
9444
9445 2001-01-15  DJ Delorie  <dj@redhat.com>
9446
9447         * Makefile.in (gcov.1): Protect against texi2pod/pod2man failing.
9448         (cpp.1): Ditto.
9449         (gcc.1): Ditto.
9450
9451 Tue Jan 16 17:20:43 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9452
9453         * flow.c (propagate_on_insn): Make trying to delete a prologue
9454         or epilogue insn an ICE, not a warning.  Allow doing this if
9455         the current function returns with stack pointer depressed.
9456
9457         * combine.c (try_combine): If i3_subst_into_i2, properly check for
9458         I3 having more than one SET.
9459
9460 2001-01-16  Jim Wilson  <wilson@redhat.com>
9461
9462         * invoke.texi: Document IA-64 options.
9463
9464         * config/ia64/ia64.c (ia64_print_operand_address): Delete 'B' support.
9465         (fixup_errata): Delete TARGET_A_STEP use.
9466         * config/ia64/ia64.h (MASK_A_STEP, TARGET_A_STEP): Delete.
9467         (TARGET_SWITCHES): Delete -ma-step option.
9468         * config/ia64/ia64.md (all FP patterns): Delete %B0.
9469         (movqicc_astep, movqi_internal_astep, movhicc_astep,
9470         movhi_internal_astep, movsicc_astep, movsi_internal_astep, movdi+1,
9471         movdi_internal_astep, movsfcc_astep, movsf_internal_astep,
9472         movdfcc_astep, movdf_internal_astep, movtfcc_astep,
9473         movtf_internal_astep, cmovdi_internal_astep, cmovsi_internal_astep):
9474         Delete.
9475         (movqi_internal, movhi_internal, movsi_internal, movdi_internal,
9476         movsf_internal, movdf_internal, movtf_internal, cmovdi_internal,
9477         cmovsi_internal): Delete ! TARGET_A_STEP check.
9478
9479 2001-01-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9480
9481         * gcc.texi (Bug Lists): Do not mention newsgroups nor the
9482         possibility to report bugs via postal mail. Change a URL and
9483         merge in a nearly duplicate statement...
9484         (Bug Reporting): ...from here.
9485         (Service): Refer to the Bug Reporting section instead of
9486         duplicating an URL.
9487         (Contributing): Remove trivial explanations concerning snapshots.
9488
9489 2001-01-16  Alan Modra <alan@linuxcare.com.au>
9490
9491         * cppmain.c (general_init): Don't use ANSI prototype.
9492
9493 2001-01-16  Tom Tromey  <tromey@redhat.com>
9494
9495         * gcc.c (cpp_options): Added `*' to specs for -MF, -MQ, and -MT.
9496
9497 2001-01-16  Richard Henderson  <rth@redhat.com>
9498
9499         * config/i386/i386.h: Fix comment typo.
9500         * config/i386/i386.md (shift+compare pattern names): s/cmpno/cmp/
9501         (ashr+compare patterns): Match CCGOCmode not CCNOmode.
9502
9503 2001-01-16  Phil Edwards  <pme@sources.redhat.com>
9504
9505         * gcc.c:  Revert previous -fsyntax-only-related change; move
9506         to cp/g++spec.c.
9507
9508 2001-01-16  Jakub Jelinek  <jakub@redhat.com>
9509
9510         * config/i386/i386.c (fcmov_comparison_operator): Only initialize
9511         inmode after checking GET_CODE (op).
9512
9513 2001-01-16  Richard Henderson  <rth@redhat.com>
9514
9515         * flow.c (struct propagate_block_info): Add mem_set_list_len.
9516         (MAX_MEM_SET_LIST_LEN): New.
9517         (propagate_one_insn): Update mem_set_list_len.
9518         (invalidate_mems_from_autoinc): Likewise.
9519         (invalidate_mems_from_set): Likewise.
9520         (mark_used_regs): Likewise.
9521         (init_propagate_block_info): Likewise.  Stop collecting memories
9522         when we reach MAX_MEM_SET_LIST_LEN.
9523         (mark_set_1): Likewise.
9524
9525 2001-01-16  Richard Henderson  <rth@redhat.com>
9526
9527         * unroll.c (precondition_loop_p): Fail if no iteration
9528         variable found.
9529
9530 2001-01-16  Phil Edwards  <pme@sources.redhat.com>
9531
9532         * gcc.c:  When -fsyntax-only is given, do not complain about
9533         unused libraries.
9534
9535 2001-01-15  Richard Henderson  <rth@redhat.com>
9536
9537         * config/i386/i386.c (asm_output_function_prefix): Remove.
9538         (ix86_asm_file_end): New.
9539         (load_pic_register): Generate pic_label_name into a
9540         staticly allocated buffer.
9541         * config/i386/i386-protos.h: Update.
9542         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_PREFIX): Remove.
9543         (ASM_FILE_END): New.
9544         * config/i386/i386afe.h: New file.
9545         * config.gcc (i?86-*-elf) [tm_file]: Use it.
9546         (i?86-*-{freebsd,linux*,moss*}): Likewise.
9547         * config/elfos.h (ASM_FILE_END): Undef before redefinition.
9548         * config/i386/cygwin.h (ASM_FILE_END): Likewise.
9549         * config/i386/osfrose.h (ASM_FILE_END): Invoke ix86_asm_file_end.
9550         * config/i386/sco5.h (ASM_FILE_END): Likewise.
9551         * config/i386/winnt.c (i386_pe_asm_file_end): Likewise.
9552
9553 2001-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
9554
9555         * Makefile.in (install-man): Remove explicit dependency on
9556         $(srcdir)/gcc.1.
9557
9558         * configure.in, configure: Revert previous patch requiring perl
9559         5.6.0.
9560
9561 2001-01-12  Aldy Hernandez  <aldyh@redhat.com>
9562
9563         * toplev.c (flag_guess_branch_prob): New.
9564         (f_options): Add guess-branch-probability option.
9565         (rest_of_decl_compilation): Only estimate branch probability if
9566         flag set.
9567         (main): set flag_guess_branch_prob.
9568
9569         * flags.h (flag_guess_branch_prob): New.
9570
9571 2001-01-15  DJ Delorie  <dj@redhat.com>
9572
9573         * gcc.texi (Makefile): Add documentation for Makefile targets.
9574
9575 2001-01-15  Philip Blundell  <philb@gnu.org>
9576
9577         * config/arm/arm.c (arm_finalize_pic): New arg "prologue".
9578         (is_pic): Delete.
9579         * config/arm/arm-protos.h (arm_finalize_pic): Update prototype.
9580         (is_pic): Delete declaration.
9581         * config/arm/arm.h (FINALIZE_PIC): Update call to arm_finalize_pic.
9582         (OUTPUT_INT_ADDR_CONST): Remove special handling of PIC address.
9583         * config/arm/arm.md (builtin_setjmp_receiver): New.
9584
9585 2001-01-15  Richard Earnshaw  <rearnsha@arm.com>
9586
9587         * arm.c (use_return_insn): Don't try to determine the function type
9588         until after reload has completed.
9589         (arm_output_epilogue): Don't adjust the sp value recovered from the
9590         stack.
9591         (emit_multi_reg_push): Don't record dwarf information for the pc.
9592         * arm.md (eh_epilogue): The function type may have changed, so it
9593         needs to be recalculated.
9594         * arm/netbsd.h (DWARF2_UNWIND_INFO): Delete.  Can now use dwarf2
9595         unwind tables on arm/netbsd.
9596
9597 2001-01-15  Richard Earnshaw  <rearnsha@arm.com>
9598
9599         * arm.md (cbranchsi4): Correct calculation of branch ranges.
9600         (negated_cbranchsi4): Likewise.
9601
9602 2001-01-15  Richard Earnshaw  <rearnsha@arm.com>
9603
9604         * config/arm/semi.h (SUBTARGET_EXTRA_SPECS): Define.
9605         (SUBTARGET_EXTRA_ASM_SPEC): Define to empty string.
9606         (ASM_SPEC): Call subtarget_extra_asm_spec.  Don't
9607         pass -mapcs-* options to assembler.
9608         * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Define.
9609         (SUBTARGET_EXTRA_ASM_SPEC): Define to empty string.
9610         (ASM_SPEC): Call subtarget_extra_asm_spec.
9611
9612 2001-01-15  Andreas Jaeger  <aj@suse.de>
9613
9614         * config/i386/i386.c (ix86_init_builtins): Make i size_t to remove
9615         warnings.
9616         (ix86_expand_builtin): Likewise.
9617
9618         * gencodes.c (output_predicate_decls): Make i size_t to avoid
9619         warning about comparison between signed and unsigned.
9620
9621 2001-01-14  Geoffrey Keating  <geoffk@redhat.com>
9622
9623         * expr.c (do_jump): Treat VOIDmode CONST_DOUBLEs like CONST_INTs.
9624
9625 2001-01-14  Ralf Baechle <ralf@gnu.org>
9626
9627         * config/mips/linux.h (SUBTARGET_CPP_SPEC): Default ABI is 32; change
9628         SUBTARGET_CPP_SPEC apropriatly.
9629
9630 2001-01-12  Mark Mitchell  <mark@codesourcery.com>
9631
9632         * varasm.c (make_decl_rtl): Fix typo in last change.
9633
9634 2001-01-14  Jeffrey Oldham  <oldham@codesourcery.com>
9635
9636         * defaults.h (SUPPORTS_INIT_PRIORITY): New macro to indicate the
9637         linker supports the init_priority C++ attribute.
9638         * tm.texi (SUPPORTS_INIT_PRIORITY): Documentation for new macro.
9639         * config/mips/iris6.h (SUPPORTS_INIT_PRIORITY): Indicate Irix
9640         linker does not support init_priority C++ attribute.
9641
9642 Sun Jan 14 22:31:30 2001  J"orn Rennecke <amylaar@redhat.com>
9643
9644         * Makefile.in (libgcc1-test.o): Depends on stmp-int-hdrs.
9645
9646 2001-01-14  Neil Booth  <neil@daikokuya.demon.co.uk>
9647
9648         * c-parse.in (finish_parse): Add comment about cpp_destroy.
9649         * cp/lex.c (finish_parse): Similarly.
9650         * cppinit.c (cpp_cleanup): Rename cpp_destroy for clarity.
9651         Return the number of errors encountered.
9652         * cpplib.h (cpp_cleanup): Rename cpp_destroy, return int.
9653         * cppmain.c (main): Don't call cpp_destroy.
9654
9655 2001-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
9656
9657         * configure.in: Require at least perl 5.6.0 to regenerate
9658         manpages.
9659         * configure: Regenerate.
9660
9661 2001-01-14  Richard Henderson  <rth@redhat.com>
9662
9663         * genrecog.c (DT_veclen_ge): New.
9664         (add_to_sequence) [MATCH_PARALLEL]: Generate one.
9665         (maybe_both_true_2): Simplify DT_veclen vs DT_veclen_ge.
9666         (nodes_identical_1): Handle DT_veclen_ge.
9667         (write_cond, debug_decision_2): Likewise.
9668
9669 2001-01-14  Richard Earnshaw  <rearnsha@arm.com>
9670
9671         * arm.md (ldmsi_postinc, ldmsi, stmsi_postinc, smsi): Delete.  Replace
9672         with ...
9673         (ldmsi_postinc[432], ldmsi[432], stmsi_postinc[432], stmsi[432]): New.
9674
9675 2001-01-14  Neil Booth  <neil@daikokuya.demon.co.uk>
9676
9677         * cppmain.c (do_preprocessing): New function; most of the old
9678         main.
9679         (main): Call it to do most of the work.
9680         (cb): Move from global scope to set_callbacks ().
9681         (setup_callbacks): Get the callback pointer.
9682         (general_init, printer_init): Clean up code and comments.
9683
9684 2001-01-14  Richard Earnshaw  <rearnsha@arm.com>
9685
9686         * config/arm/semi.h (ASM_SPEC): Pass -k to the assembler when
9687         compiling PIC.
9688
9689 2001-01-14  Kazu Hirata  <kazu@hxi.com>
9690
9691         * config/h8300/h8300.c (get_shift_alg): Update comments.
9692
9693 Sun Jan 14 06:20:49 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9694
9695         * ggc-page.c (alloc_annon): Call perror and correctly call exit.
9696         (alloc_page, ggc_alloc): Add casts to remove warnings.
9697
9698 2001-01-14  Geoffrey Keating  <geoffk@redhat.com>
9699
9700         * combine.c (simplify_comparison): Don't change `code' when
9701         can't reverse comparison.
9702
9703 2001-01-14  Richard Henderson  <rth@redhat.com>
9704
9705         * rtlanal.c (computed_jump_p_1): Rename from jmp_uses_reg_or_mem;
9706         update all call sites.  Return true for all non-label constants.
9707
9708 Sun Jan 14 10:09:48 MET 2001  Jan hubicka  <jh@suse.cz>
9709
9710         * i386.c (ix86_expand_compare): Add bypass_test and second_test
9711         parameters.
9712         (ix86_expand_branch): Update.
9713         (ix86_expand_setcc): Update to handle multiple test conditions.
9714         (expand_int_movcc): Likewise.
9715         (expand_fp_movcc): Likewise.
9716         * i386-protos.h (ix86_expand_compare): New.
9717         * i386.md (andqi_?_slp, orqi_?_slp): New.
9718         (conditional trap expander): Update call to ix86_expand_compare.
9719
9720 2001-01-14  Richard Henderson  <rth@redhat.com>
9721
9722         * config/vax/vax.md: Use nonimmediate_operand instead of
9723         general_operand in destinations.
9724
9725         * config/vax/vax.md (indirect_jump): Use register_operand.
9726
9727         * config/vax/vax.h (RETURN_POPS_ARGS): Max at 255 arguments.
9728         * config/vax/vax.md (call_pop): Turn into an expander.
9729         (call_value_pop): Likewise.
9730         (call, call_value): New.
9731
9732 2001-01-14  Andreas Jaeger  <aj@suse.de>
9733
9734         * config/i386/i386.c (ix86_split_fp_branch): Remove unused
9735         variables.
9736         (ix86_fp_compare_mode): Add unused attribute.
9737         (ix86_expand_fp_movcc): Remove unused variable.
9738         (ix86_expand_builtin): Make fcode unsigned.
9739
9740         * expr.c (MOVE_BY_PIECES_P): Cast MOVE_RATIO to unsigned.
9741         (expand_expr): Add cast to avoid signed warning.
9742         (store_field): Likewise.
9743         (store_constructor_field): Likewise.
9744         (store_constructor): Likewise.
9745         (store_expr): Likewise.
9746         (clear_storage): Likewise.
9747         (emit_group_store): Likewise.
9748         (emit_group_load): Likewise.
9749
9750 2001-01-13  Joseph S. Myers  <jsm28@cam.ac.uk>
9751
9752         * c-common.c: Move format checking code to ...
9753         * c-format.c: ... here.  New file.  Reorder some functions and
9754         declarations.
9755         (decl_handle_format_attribute, decl_handle_format_arg_attribute):
9756         New functions.
9757         * c-common.h (decl_handle_format_attribute,
9758         decl_handle_format_arg_attribute): Declare.
9759         * Makefile.in (C_AND_OBJC_OBJS): Add c-format.o.
9760         (c-common.o): Adjust dependencies.
9761         (c-format.o): New list of dependencies.
9762
9763 2001-01-13  Jakub Jelinek  <jakub@redhat.com>
9764
9765         * unroll.c (loop_iterations): If we cannot prove iteration variable
9766         is set once in each iteration, punt.
9767
9768 Sun Jan 14 00:23:15 2001  Denis Chertykov  <denisc@overta.ru>
9769
9770         * config/avr/avr.md ("strlenhi"): Remove clobber of input address.
9771         (*strlenhi): Remove clobber (which was buggy) of output address.
9772
9773 2001-01-13  Joseph S. Myers  <jsm28@cam.ac.uk>
9774
9775         * Makefile.in (generated-manpages): Add gcc.1
9776         ($(srcdir)/gcc.1): New target.
9777         (maintainer-clean): Delete $(srcdir)/gcc.1.
9778         * gcc.texi: Add macros @gccoptlist and @gol.
9779         * invoke.texi: Include option summary in manpage.  Mark up option
9780         summary with @gccoptlist and @gol.  Use @r in one place where
9781         appropriate.
9782         * texinfo.tex: Update to version 2000-12-11.07 from ftp.gnu.org.
9783         * gcc.1: Generate from invoke.texi.
9784
9785 2001-01-13  Richard Henderson  <rth@redhat.com>
9786
9787         * ggc-page.c (USING_MALLOC_PAGE_GROUPS): New; set if not using mmap.
9788         (struct page_entry): Add group member.
9789         (struct page_group): New.
9790         (struct globals): Add page_groups member.
9791         (alloc_anon): Only define for using mmap; remove valloc call.
9792         (page_group_index): New.
9793         (set_page_group_in_use): New.
9794         (clear_page_group_in_use): New.
9795         (alloc_page): Implement USING_MALLOC_PAGE_GROUPS.
9796         (free_page, release_pages): Likewise.
9797         * configure.in (with-gc): Default to ggc-page always.
9798
9799 2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
9800
9801         * reload1.c (replace_pseudos_in_call_usage): Use
9802         reg_equiv_constant and reg_equiv_address, and don't try
9803         regno_reg_rtx first.
9804
9805 2001-01-13  Richard Henderson  <rth@redhat.com>
9806
9807         * ggc-page.c (alloc_page): Round up allocation size to one page.
9808         Set e->order on extra pages.
9809
9810 2001-01-13  Richard Henderson  <rth@redhat.com>
9811
9812         * genrecog.c (nodes_identical): Expand commentary.
9813         (write_switch): Watch out for identical nodes.
9814
9815 2001-01-13  Neil Booth  <neil@daikokuya.demon.co.uk>
9816
9817         * cppfiles.c (_cpp_fake_include): New function.
9818         * cpphash.h (_cpp_fake_include): New.
9819         * cpplib.c (do_line): Call _cpp_fake_include when entering
9820         header files in preprocessed input.
9821         * cppmain.c (cb_pragma_implementation): Remove handling.
9822         (setup_callbacks): Don't register pragmas.
9823
9824 2001-01-13  Neil Booth  <neil@daikokuya.demon.co.uk>
9825
9826         * extend.texi: Udate for CPP.
9827
9828 2001-01-13  Andreas Jaeger  <aj@suse.de>
9829
9830         * reload1.c: Add prototype for replace_pseudos_in_call_usage.
9831
9832         * regmove.c: Add prototype for replace_in_call_usage.
9833
9834 2001-01-13  Neil Booth  <neil@daikokuya.demon.co.uk>
9835
9836         * cpplib.h (cpp_pool, mi_state, mi_ind, struct cpp_macro,
9837         struct cpp_chunk, struct htab, struct toklist,
9838         struct cpp_context, CPP_STACK_MAX, struct lexer_state,
9839         struct spec_nodes, struct cpp_reader, CPP_OPTION, CPP_BUFFER,
9840         CPP_BUF_LINE, CPP_BUF_COL, CPP_BUF_COLUMN, U, ustrcmp, ustrncmp,
9841         ustrlen, uxstrdup, ustrchr, ufputs): Move to cpphash.h.
9842         (struct macro_args): Delete.
9843         * cpphash.h: See above.
9844
9845 2001-01-13  Neil Booth  <neil@daikokuya.demon.co.uk>
9846
9847         * cppmain.c (struct printer): Remove no_line_dirs.
9848         (options, cb): New.
9849         (main, setup_callbacks, scan_buffer, printer_init, cb_define)
9850         : Use options rather than CPP_OPTION.
9851         (setup_callbacks): Use cb rather than pfile->cb.
9852         (main): No need to check for a buffer.  Use cpp_errors.
9853         (printer_init): Don't set no_line_dirs.
9854         (maybe_print_line): Use options not no_line_dirs.
9855         (cb_file_change): Don't call print_line if -P.
9856
9857 2001-01-13  Neil Booth  <neil@daikokuya.demon.co.uk>
9858
9859         * c-lex.c (init_c_lex): Use cpp_get_callbacks to set
9860         callbacks.
9861         * c-parse.in (finish_parse): Use cpp_errors.
9862         (__yylex): Use return value of cpp_pop_buffer.
9863         * cp/lex.c (finish_parse): Use cpp_errors.
9864         * cp/spew.c (read_token): Use return value of cpp_pop_buffer.
9865
9866 Sat Jan 13 16:57:40 2001  Denis Chertykov  <denisc@overta.ru>
9867
9868         * README.AVR: URLs corrected.
9869
9870 Sat Jan 13 07:30:02 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9871
9872         * c-decl.c (start_function): Don't warn if old prototype is builtin
9873         that's not in C's namespace.
9874         * libgcc2.c (_varargs): Update definition of __builtin_saveregs.
9875         (_bb): Add prototype for ctime.
9876         * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Add missing protos.
9877
9878 Sat Jan 13 09:53:32 MET 2001  Jan Hubicka  <jh@suse.cz>
9879
9880         * i386.c (ix86_fp_comparison_arithmetics_cost,
9881         ix86_fp_comparison_fcomi_cost, ix86_fp_comparison_sahf_cost,
9882         ix86_fp_comparison_cost): New functions.
9883         (ix86_expand_fp_compare): Use the costs to choose best bethod; add
9884         two new parameters SECOND_TEST and BYPASS_TEST; allow generating
9885         two-branch sequences; make static.
9886         (ix86_use_fcomi_compare): Do decision according to the costs.
9887         (split_fp_branch): New.
9888         * i386.md (compare-and-branch patterns): Use split_fp_branch.
9889         * i386-protos.h (ix86_expand_fp_compare): Remove
9890         (ix86_split_fp_branch): Declare.
9891
9892         * i386.h (PREDICATE_CODES): Update codes from fcmov_comparison_operand
9893         and ix86_comparison_operator.
9894
9895         * i386.c (ix86_prepare_fp_compare_args): Try to rearange the comparison
9896         to make it cheaper.
9897
9898         * i386.c (put_condition_code): Output properly the unordered/ordered
9899         compares in fp case.
9900         (ix86_expand_fp_movcc): Use ix86_expand_compare infrastructure.
9901
9902         * tm.texi (REVERSE_CONDITION): Document.
9903         * i386.c (ix86_fp_compare_mode): Simplify; return always CCFPmode
9904         in -ffast-math mode.
9905         * i386.h (REVERSE_CONDITION, REVERSIBLE_CC_MODE): New macro.
9906
9907 2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
9908
9909         * config/sh/sh.c (sh_expand_epilogue): Use PR explicitly.
9910
9911         * config/sh/sh.c (sh_expand_prologue): Let the second toggle_sz be
9912         optimized away.
9913
9914         * config/sh/sh.c (mova_p): Fix test for mova_const.
9915
9916 2001-01-13  Neil Booth  <neil@daikokuya.demon.co.uk>
9917
9918         * fix-header.c (read_scan_file): Use cpp_get_callbacks and
9919         cpp_get_options rather than dereferencing pfile and using
9920         CPP_OPTION.
9921         * scan-decls.c (scan_decls): Use return value of
9922         cpp_pop_buffer rather than CPP_BUFFER.
9923
9924 2001-01-13  Neil Booth  <neil@daikokuya.demon.co.uk>
9925
9926         * cppinit.c (cpp_handle_option): help_only is now part of the
9927         cpp_options structure.
9928         * cpplib.c (cpp_errors, cpp_get_options, cpp_get_callbacks,
9929         cpp_set_callbacks): New functions.
9930         * cpplib.h (cpp_callbacks): Break out as a named structure.
9931         (cpp_options): Move help_only here from cpp_reader.
9932         (CPP_FATAL_ERRORS): Update to use cpp_errors.
9933         (cpp_errors, cpp_get_options, cpp_get_callbacks,
9934         cpp_set_callbacks): New prototypes.
9935         * cppmain.c (main): Update for help_only.
9936
9937 2001-01-13  Joseph S. Myers  <jsm28@cam.ac.uk>
9938
9939         * Makefile.in (info, maintainer-clean, install-info, uninstall):
9940         Also build and remove and install and uninstall c-tree.info and
9941         cppinternals.info.
9942         ($(srcdir)/gcc.info): Add dependency on contrib.texi.
9943         ($(srcdir)/cppinternals.info): New target.
9944         * c-tree.texi: Change file name used when makeinfo used without -o
9945         from ir.info to c-tree.info.  Add info directory entry.
9946         * cppinternals.texi: Add info directory entry.
9947         * .cvsignore: Update.
9948
9949 2001-01-12  Jakub Jelinek  <jakub@redhat.com>
9950
9951         * c-typeck.c (store_init_value): Don't require constant initializer
9952         elements with -pedantic -std=c99.
9953         (digest_init): Change error about non-constant initializer elements
9954         into pedwarn.
9955         (constructor_range_end): Remove.
9956         (constructor_incremental, designator_depth,
9957         designator_errorneous): New variables.
9958         (struct constructor_stack): Remove range_end, add incremental.
9959         (struct constructor_range_stack, constructor_range_stack): New.
9960         (struct initializer_stack): Add constructor_range_stack.
9961         (finish_init): Set it.
9962         (start_init): Likewise.  require_constant_elements for non-static
9963         trees only if not flag_isoc99.
9964         (really_start_incremental_init): Remove constructor_range_end, add
9965         constructor_incremental.
9966         (pop_init_level): Likewise.
9967         (push_init_level): Likewise.  If implicit and the subobject had some
9968         value set already, preinitialize the level with it.
9969         Warn about missing braces only if not pushing due to designators.
9970         (set_designator, push_range_stack): New functions.
9971         (set_init_label): Use them.
9972         (set_init_index): Likewise.  Remove constructor_range_end.
9973         Error if designator index is outside of array bounds.
9974         (add_pending_init): Compare values of purpose index trees, not the
9975         trees themselves.  Allow overwriting of already initialized element.
9976         Issue a warning if it had side-effects.
9977         (set_nonincremental_init, set_nonincremental_init_from_string): New
9978         functions.
9979         (pending_init_member): Rename to...
9980         (find_init_member): ...this function.  Call set_nonincremental_init
9981         if necessary.  Compare values of purpose index trees, not the trees
9982         themselves.  Return the actual value, not just non-zero if something
9983         is found.
9984         (output_init_element): Remove checks for duplicates.
9985         If field has zero size, only check the initializer for correctness.
9986         Call set_nonincremental_init if necessary.  Push RECORD/ARRAY into AVL
9987         if constructor_incremental is zero.  Change error about initializers
9988         not computable at load time into pedwarn.
9989         (output_pending_init_elements): Compare bit positions, not
9990         FIELD_DECLs to take into account zero-sized fields.
9991         (process_init_element): Use constructor_range_stack to fill all
9992         ranges in the designator lists from current level up.
9993         * extend.texi: Update documentation for labeled elements.
9994
9995 2001-01-12  Alexandre Oliva  <aoliva@redhat.com>
9996
9997         * calls.c (emit_library_call_value_1): Add USEs and CLOBBERs
9998         to function usage for arguments passed by reference.  Optimize
9999         callee-copied arguments.
10000         * regmove.c (replace_in_call_usage): New function.
10001         (fixup_match_1): Call it.
10002         * cse.c (cse_insn): Canonicalize registers in function usage.
10003         * reload1.c (replace_pseudos_in_call_usage): New function.
10004         (reload): Call it.
10005
10006         * Makefile.in: Reverted yesterday's wrong patch.  Installed the
10007         right version.
10008
10009 2001-01-12  Jakub Jelinek  <jakub@redhat.com>
10010
10011         * config/alpha/alpha.c (alpha_expand_block_move): GET_MODE of tmp,
10012         not XEXP (tmp, 0).
10013
10014 2001-01-12  DJ Delorie  <dj@redhat.com>
10015
10016         * Makefile.in (bootstrap): rename stages to be mnemonic.  Add
10017         restageN, unstageN, bubblestrap, quickstrap, and cleanstrap
10018         targets.
10019
10020 2001-01-12  Joseph S. Myers  <jsm28@cam.ac.uk>
10021
10022         * cpp.texi, extend.texi, gcc.texi, install.texi, invoke.texi,
10023         tm.texi: Consistently refer to ISO C instead of ANSI C.  Refer to
10024         -std options alongside references to -ansi.  Update some
10025         documentation for C99.
10026         * cpp.1: Regenerate.
10027
10028 2001-01-12  Andreas Jaeger  <aj@suse.de>
10029
10030         * haifa-sched.c (restore_line_notes): Remove argument block B
10031         since it's unused.
10032         * sched-ebb.c (schedule_ebb): Change caller.
10033         * sched-rgn.c (schedule_region): Likewise.
10034         * sched-int.h (restore_line_notes): Adjust prototype.
10035
10036         * loop.h: Remove wrong declaration of doloop_condition_get.
10037
10038 2001-01-12  Phil Edwards  <pme@sources.redhat.com>
10039
10040         * extend.texi:  Move C++-extension-related node from the C section
10041         into the C++ section.
10042
10043 2001-01-12  Joseph S. Myers  <jsm28@cam.ac.uk>
10044
10045         * extend.texi: Refer to an array of pointers to functions instead
10046         of one of functions.
10047
10048 Fri Jan 12 12:08:12 MET 2001  Andreas Jaeger  <aj@suse.de>
10049                               Jan Hubicka  <jh@suse.cz>
10050
10051         * combine.c (reversed_comparison): Fix typo in last patch.
10052         Check X for NULL.
10053         (combine_reversed_comparison_code): Make static to follow
10054         prototype declaration.
10055
10056 2001-01-12  Phil Edwards  <pme@sources.redhat.com>
10057
10058         * install.texi:  Remove misplaced duplicate entry.
10059
10060 2001-01-11  Ulrich Drepper  <drepper@redhat.com>
10061
10062         * config/float-i386.h: Define FLT_EVAL_METHOD and DECIMAL_DIG for C99.
10063
10064 Thu Jan 11 17:06:30 EST 2001  John Wehle  (john@feith.com)
10065
10066         * final.c: (leaf_function_p): Fix typo.
10067
10068 2001-01-11  Zack Weinberg  <zack@wolery.stanford.edu>
10069
10070         * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Completely rewritten.
10071         Now defines HAVE_MMAP_DEV_ZERO and/or HAVE_MMAP_ANON depending
10072         which you have.
10073         (AC_FUNC_MMAP_FILE): Don't AC_REQUIRE AC_FUNC_MMAP_ANYWHERE.
10074         * configure.in: Set GGC to ggc-page if any of mmap_dev_zero,
10075         mmap_anon, and valloc is available.
10076         * ggc-page.c: Restructure ifdef logic to match new autoconf
10077         spec.  Don't throw away the test page in init_ggc.
10078
10079         * configure, config.in: Regenerate.
10080
10081 2001-01-12  Michael Hayes  <mhayes@redhat.com>
10082
10083         * loop.h (total_biv_increment): Constify iv_class pointer.
10084         (struct induction): Replace `mem_mode' with `mem' rtx.
10085         * unroll.c (total_biv_increment): Constify iv_class pointer.
10086         * loop.c (loop_giv_reduce_benefit): Derive mem mode from mem rtx.
10087         (find_mem_givs, combine_givs_p): Likewise.
10088         (debug_ivs, debug_iv_class, loop_ivs_dump, loop_iv_class_dump): New.
10089
10090 2001-01-10  Thomas Pfaff <tpfaff@gmx.net>
10091
10092         * gthr-win32.h (__gthread_objc_thread_get_data): Save and restore Win32
10093         LastError.
10094         (__gthread_getspecific): Ditto.
10095
10096 Fri Jan 12 00:04:00 MET 2001  Jan Hubicka  <jh@suse.cz>
10097
10098         * i386.c (ix86_comparison_operator, fcmov_comparison_operator,
10099         put_condition_code): Convert fp comparison codes to integer
10100         before handling.
10101         (ix86_expand_fp_compare): Postnote the fp comparison code converison
10102         to final.
10103
10104         * i386.c (unsigned_comparison, no_comparison_operator): Kill.
10105         * i386-protos.h (no_comparison_operator): Kill.
10106
10107         * i386.c (ix86_expand_fp_compare): Fix ordered/unordered confussion.
10108
10109         * combine.c (REVERSIBLE_CC_MODE): Remove.
10110         (reversible_comparison_p): Remove.
10111         (combine_reversed_comparison_code): New.
10112         (reversed_comparison): New.
10113         (combine_simplify_rtx): Use
10114         combine_reversed_comparison_code/reversed_comparison instead
10115         of reversible_comparison_p.
10116         (simplify_if_then_else): Likewise.
10117         (simplify_set): Likewise.
10118         (simplify_logical): Likewise.
10119         (if_then_else_cond): Likewise.
10120         (known_cond): Likewise.
10121         (simplify_comparison): Likewise.
10122
10123 2001-01-11  Alan Lehotsky  <lehotsky@tiac.net>
10124
10125         * builtins.c (std_expand_builtin_va_start): Handle varargs when
10126         sizeof (int) is larger than sizeof(__word__).
10127
10128 2001-01-11  Neil Booth  <neil@daikokuya.demon.co.uk>
10129
10130         * cppinit.c (do_includes): Fix typo.
10131
10132 2001-01-11  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10133
10134         * config/m68hc11/m68hc11.md (cmphi_1): Make sure reloading
10135         in S_REGS does not occur because not all sources are possible
10136         when a S_REGS is a destination (sometimes needs a clobber).
10137         (movqi_const0, zero_extendhisi2, zero_extendqisi2): Likewise.
10138         (zero_extendhidi2, extendqisi2, extendqihi2, extendhisi2): Likewise.
10139         (anddi3, iordi3, xordi3, negqi2, one_cmplhi2, one_cmplqi2: Likewise.
10140         (ashldi3_const32, ashldi3_const1, ashlsi3_const16): Likewise.
10141         (ashlsi3_const1, ashlhi3_2, ashlqi3_const1, ashrhi3): Likewise.
10142         (ashrqi3_const1, lshrdi3_const32, lshrdi3_const63): Likewise.
10143         (lshrdi_const1, lshrsi3_const16): Likewise.
10144         (*addhi3, lshrsi3_const1, lshrqi3_const1): Likewise.
10145         (*movhi_68hc12, *movqi_68hc12): Likewise.
10146         (movstrictqi): Make sure reloading in D_REGS as a destination
10147         does not happen.
10148
10149 2001-01-11  Neil Booth  <neil@daikokuya.demon.co.uk>
10150
10151         * cppspec.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -MQ.
10152
10153 2001-01-11  Neil Booth  <neil@daikokuya.demon.co.uk>
10154
10155         * cppinit.c (cpp_start_read): If -fpreprocessed, ignore
10156         -D, -U and -A, and don't initialize the builtins.
10157         (do_includes): Error if -include or -imacros with -fpreprocessed.
10158         * cppmain.c (cb_define, cb_undef): Unconditionally process
10159         the callback.
10160         * tradcpp.c (main): Fix typo.
10161
10162 2000-01-11  Mark Elbrecht  <snowball3@bigfoot.com>
10163
10164         * cppfiles.c (cpp_included, find_include_file, _cpp_execute_include)
10165         (read_name_map): Use IS_ABSOLUTE_PATH.
10166         * tradcpp.c (get_filename): Likewise.
10167
10168 2001-01-11  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10169
10170         * config/m68hc11/m68hc11.md (*adcq, *subcq): Fix operand numbers.
10171         (*ashlsi3_const16_zexthi, *ashlsi3_const1): Likewise.
10172         (*lshrsi3_const, *lshrsi3_const1, *lshrsi3_const16): Likewise.
10173         (*ashrsi3, *ashrsi3_const, *ashlsi3, *ashlsi3_const): Likewise.
10174         (*ashlsi3_const1, *lshrsi3, *ashlsi3_const16): Likewise.
10175         (cmphi_z_used): Don't use '@' for the output.
10176         (tstqi_z_used): Likewise.
10177         (cmpqi_z_used): Likewise.
10178         (one_cmplsi2): Likewise.
10179
10180 2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
10181
10182         * config/sh/sh.c (barrier_align): Recognize branch around far
10183         branch and redundant insn.
10184
10185 2001-01-11  Neil Booth  <neil@daikokuya.demon.co.uk>
10186
10187         * invoke.texi: Restore documentation of the drivers' switches -MD
10188         and -MMD.
10189
10190 2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
10191
10192         * config/sh/sh.h (LABEL_ALIGN): Use UNSPECV_ALIGN instead of 1.
10193
10194         * Makefile.in (check-gcc//%, check-g++//%, check-g77//%,
10195         check-objc//%): Support parallel testing of multilibs.
10196         (TESTSUITEDIR): Set to testsuite by default, but override for
10197         parallel testing.
10198         (check-gcc, check-g++, check-g77, check-objc): Enter
10199         $(TESTSUITEDIR).
10200
10201 2001-01-11  Bernd Schmidt  <bernds@redhat.com>
10202
10203         * alias.c (throughout): Use REGNO, rather than ORIGINAL_REGNO.
10204         * sched-deps.c (deps_may_trap_p): Likewise.
10205         * basic-block.h: Remove a comment.
10206         * flow.c (PROP_POSTRELOAD): Remove.
10207         (update_life_info): Don't add it to prop_flags.
10208         (mark_set_1): Lose the code that was enabled by it.
10209
10210 2001-01-11  Michael Hayes  <mhayes@redhat.com>
10211
10212         * flow.c (flow_call_edges_add): New.
10213         * basic_block.h (flow_call_edges_add): New.
10214
10215 2001-01-11  J"orn Rennecke <amylaar@redhat.com>
10216
10217         * reload1.c (move2add_note_store): Update reg_set_luid even if
10218         base reg remains the same.
10219
10220 2001-01-10  Nick Clifton  <nickc@redhat.com>
10221
10222         * config/d30v/d30v.c (d30v_init_machine_status): Initialise
10223         machine_function structure to zero.
10224         Add prototypes for machine_status functions.
10225
10226 2001-01-10  Mark Mitchell  <mark@codesourcery.com>
10227
10228         * c-common.h (CTI_VOID_LIST): Remove.
10229         (void_list_node): Likewise.
10230         * tree.h (TI_VOID_LIST_NODE): New enumeral.
10231         (void_list_node): New macro.
10232         * config/arm/arm.c (arm_init_builtins): Use void_list_node.
10233         * config/i386/i386.c (ix86_init_builtins): Likewise.
10234         * config/ia64a/ia64.c (ia64_init_builtins): Likewise.
10235
10236 2001-01-10  Neil Booth  <neil@daikokuya.demon.co.uk>
10237
10238         * Makefile.in (tradcpp0): Depend on mkdeps.h.  Link mkdeps.o
10239         * cppinit.c (cpp_start_read): Update comment, remove unneeded
10240         if statement.
10241         * tradcpp.c: Include mkdeps.h.
10242         (deps, print_deps_phony_targets, deps_append, output_deps,
10243         init_dependency_output, output_deps): New.
10244         (deps_buffer, deps_allocated_size, deps_size, deps_column,
10245         deps_output): Delete.
10246         (print_deps_missing_files): Rename deps_missing_files.
10247         (inhibit_output): Make global.
10248         (main): Delete inhibit_output, deps_stream, deps_target.
10249         Use mkdeps functionality in the same way as cpplib.  Remove
10250         -g3 handling.  Handle -MF, -MP, -MQ, -MT.  Update handling of
10251         -M and -MM.  Remove old handling of deps via deps_out, and
10252         old reading of environment variables.
10253         (get_filename): Update to use deps_add_dep.
10254
10255 2001-01-10  Mark Mitchell  <mark@codesourcery.com>
10256
10257         * output.h (make_function_rtl): Remove prototype.
10258         (make_decl_rtl): Likewise.
10259         * varasm.c (make_function_rtl): Remove.
10260         (make_decl_rtl): Determine top-levelness from DECL_CONTEXT, rather
10261         than from a third parameter.
10262         * tree.h (make_decl_rtl): Remove last parameter.
10263         * c-decl.c (builtin_function): Remove last argument in call to
10264         make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
10265         (start_function): Likewise.
10266         * except.c (call_get_eh_context): Likewise.
10267         * expr.c (emit_block_move): Likewise.
10268         (clear_storage): Likewise.
10269         * profile.c (output_func_start_profiler): Likewise.
10270         * toplev.c (rest_of_decl_compilation): Likewise.
10271         * objc/objc-act.c (create_builtin_decl): Likewise.
10272         (synth_module_prologue): Likewise.
10273         (generate_static_reference): Likewise.
10274         (build_selector_reference_decl): Likewise.
10275         (build_class_reference_decl): Likewise.
10276         (build_objc_string_decl): Likewise.
10277         (build_protocol_reference): Likewise.
10278
10279 2001-01-10  Richard Henderson  <rth@redhat.com>
10280
10281         * hwint.h: Revert yesterday's change.
10282
10283 2001-01-10  Nick Clifton  <nickc@redhat.com>
10284
10285         * function.h (save_machine_status): Delete.
10286         (restore_machine_status): Delete.
10287         Amend comment describing {init|mark|free}_machine_status.
10288
10289         * function.c (save_machine_status): Delete.
10290         (restore_machine_status): Delete.
10291         Amend comment describing {init|mark|free}_machine_status.
10292         (push_function_context_to): Remove invocation of
10293         save_machine_status.
10294         (pop_function_context_from): Remove invocation of
10295         restore_machine_status.
10296
10297         * emit-rtl.c (init_emit_once): Amend comment describing
10298         {init|mark|free}_machine_status.
10299
10300         * tm.texi (Per-Function Data): New node.  Describe the
10301         INIT_EXPANDERS macro and the {init|mark|free}_machine_status
10302         function pointers.
10303
10304 2001-01-10  Neil Booth  <neil@daikokuya.demon.co.uk>
10305
10306         * cppinit.c (OPT_g): Remove.
10307         (cpp_handle_option): Update for removed -g3.
10308         (print_help): Update.
10309         * cpplib.h (struct cpp_options): Remove debug_output.
10310         * cppmain.c (setup_callbacks, cb_define): Update.
10311         * gcc.c (cpp_options): Translate -g3 to -dD.
10312
10313 2001-01-10  Aldy Hernandez  <aldyh@redhat.com>
10314
10315         * config/i960/i960.md: Change modifier to + on the zero_extract
10316         pattern after the (rotate -2 reg) canonicalization pattern.
10317
10318 2001-01-10  Richard Henderson  <rth@redhat.com>
10319
10320         * config/alpha/alpha.c (alpha_free_machine_status): New.
10321         (override_options): Install it.
10322         (alpha_mark_machine_status): Verify machine non-null.
10323         * config/i386/i386.c (ix86_free_machine_status): New.
10324         (override_options): Install it.
10325         (ix86_init_machine_status): Use xcalloc.
10326         (ix86_mark_machine_status): Verify machine non-null.
10327         * config/ia64/ia64.c (ia64_free_machine_status): New.
10328         (ia64_override_options): Install it.
10329         (ia64_mark_machine_status): Verify machine non-null.
10330
10331 Wed Jan 10 11:34:39 2001  Jeffrey A Law  (law@cygnus.com)
10332
10333         * function.c (instantiate_virtual_regs): Instantiate virtual
10334         registers found in CALL_INSN_FUNCTION_USAGE.
10335
10336 2001-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
10337
10338         * i386.h (CPP_CPU_SPEC): Allow for -std=c* and -std=i* as
10339         equivalent to -ansi in disabling -Di386.
10340
10341 Wed Jan 10 16:38:31 MET 2001  Jan Hubicka  <jh@suse.cz>
10342
10343         * i386.c (ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes):
10344         new functions.
10345         (ix86_expand_fp_compare): Make trivial use of new infrastructure.
10346
10347 2001-01-10  Richard Earnshaw  <rearnsha@arm.com>
10348
10349         * arm.c (arm_init_builtins): Temporarily disable xscale builtins.
10350
10351 2001-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
10352
10353         * invoke.texi: Document that -fcond-mismatch isn't supported for
10354         C++.
10355
10356 2001-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
10357
10358         * gcc.texi: Define macro gcctabopt.
10359         * invoke.texi: Add manpage sections BUGS and AUTHOR.  Use
10360         @command, @env and @option in some places where appropriate.  Use
10361         @gcctabopt where appropriate.  Put URLs and email addresses inside
10362         @w.
10363
10364 2001-01-10  Nathan Sidwell  <nathan@codesourcery.com>
10365
10366         * gcc.c (cpp_options): Set MD file name from output
10367         filename, if specified.
10368         (suffix_subst): New static variable.
10369         (do_spec): Clear it.
10370         (do_spec_1, case '.'): Handle new `%.suffix' spec.
10371         Clear it.
10372         (give_switch): Handle suffix_subst.
10373
10374 2001-01-10  Phil Edwards  <pme@sources.redhat.com>
10375
10376         * invoke.texi:  Fix another typo.
10377
10378 2001-01-10  Phil Edwards  <pme@sources.redhat.com>
10379
10380         * invoke.texi:  Fix typo.
10381
10382 2001-01-10  Neil Booth  <neil@daikokuya.demon.co.uk>
10383
10384         * c-lang.c (lang_hooks): Update.
10385         (lang_decode_option): Remove.
10386         (lang_init_options): Rename c_init_options.
10387         * toplev.c (main): Use lang_hooks for lang_init_options
10388         and lang_decode_option.
10389         * toplev.h (lang_hooks): Add 2 new hooks.
10390         * tree.h: Remove lang_init_options and lang_decode_option.
10391         * cp/cp-tree.h (lang_decode_option): Rename cxx_decode_option.
10392         * cp/decl2.c: Similarly.
10393         * cp/lex.c (lang_init_options): Rename cxx_init_options.
10394         (lang_hooks): Update.
10395         * f/com.c (f_init, f_finish): Rename ffe_init, ffe_finish
10396         for consistency.
10397         (lang_init_options): Rename ffe_init_options.
10398         (lang_hooks): Update.
10399         (lang_decode_option): Remove.
10400         * java/lang.c (lang_init_options): Rename java_init_options.
10401         (lang_decode_option): Rename java_decode_option.
10402         (lang_hooks): Update.
10403         * objc/objc-act.c (lang_init_options): Rename objc_init_options.
10404         (lang_decode_option): Rename objc_decode_option.
10405         (lang_hooks): Update.
10406
10407 2001-01-09  Nick Clifton  <nickc@redhat.com>
10408
10409         * config/d30v/d30v.c (d30v_eh_epilogue_sp_ofs): Delete.
10410         (d30v_return_addr_rtx): Delete.
10411         (d30v_expand_epilogue): Use eh_epilogue_sp_ofs field in the
10412         cfun->machine structure.
10413         (struct machine_function): Move to d30v.h
10414         (d30v_save_machine_status): Delete.
10415         (d30v_restore_machine_status): Delete.
10416         (d30v_init_machine_status): New Function.
10417         (d30v_mark_machine_status): New Function.
10418         (d30v_free_machine_status): New Function.
10419         (d30v_init_expanders): Use new functions.
10420         (d30v_return_addr): Use ra_rtx field in cfun->machine.
10421         (d30v_add_gc_roots): Remove d30v_eh_epilogue_sp_ofs and
10422         d30v_return_addr_rtx.
10423
10424         * config/d30v/d30v.h (struct_machine): Move here.
10425         Add eh_epilogue_sp_ofs field.
10426
10427         *config/d30v/d30v.md (epilogue): Initialise eh_epilogue_sp_ofs
10428         field in cfun->machine structure.
10429
10430 Tue Jan  9 21:34:57 2001  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10431
10432         * pa32-regs.h (CONDITIONAL_REGISTER_USAGE): When generating pic code,
10433         PIC_OFFSET_TABLE_REGNUM_SAVED is a call_used register.
10434         * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Likewise.
10435
10436 Tue Jan  9 21:25:19 2001  Jeffrey A Law  (law@cygnus.com)
10437
10438         * objc/lang-options.h: Remove bogus reference to
10439         Java trademark.
10440
10441 2001-01-09  Kazu Hirata  <kazu@hxi.com>
10442
10443         * config/h8300/h8300.c (get_shift_alg): Use a struct shift_info to
10444         return the result.
10445
10446 2001-01-09  Alan Lehotsky  <lehotsky@tiac.net>
10447
10448         * reload.c (find_reloads_address): Check for eliminable registers
10449         when substituting a constant expression for a pseudo.
10450
10451 2001-01-09  Joseph S. Myers  <jsm28@cam.ac.uk>
10452
10453         * c-common.c (enum format_type): Add format_type_error.
10454         (decode_format_type): New function.
10455         (decl_attributes): Use it.
10456         (format_kind_info): Adjust comment.
10457
10458 2001-01-09  David O'Brien  <obrien@BSDi.com>
10459
10460         * config.gcc (*-*-gnu*, i[34567]86-*-elf*, i[34567]86-*-linux*libc1,
10461         i[34567]86-*-linux*, i[34567]86-*-moss*): Specify needed platform specific
10462         files in tm_file.
10463         * config/i386/gnu.h: Don't include required platform specific .h files,
10464         tm.h will do it instead.
10465         * config/i386/i386elf.h: Likewise.
10466         * config/i386/linux.h: Likewise.
10467         * config/i386/moss.h: Likewise.
10468         * config/mips/gnu.h: Likewise.
10469
10470 2001-01-09  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10471
10472         * config.gcc (powerpc-*-beos*): Include ${tm_file} and rs6000/aix.h.
10473         (rs6000-ibm-aix3.[01]*): Likewise.
10474         (rs6000-ibm-aix3.2.[456789]*, powerpc-ibm-aix3.2.[456789]*): Likewise.
10475         (rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Likewise.
10476         (rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*): Likewise.
10477         (rs6000-ibm-aix[56789].*, powerpc-ibm-aix[56789].*): Likewise.
10478         (powerpc-*-sysv*): Include {tm_file}. svr4.h and rs6000/sysv4.h.
10479         (powerpc-*-eabiaix*): Likewise.
10480         (powerpc-*-eabisim*): Likewise.
10481         (powerpc-*-elf*): Likewise.
10482         (powerpc-*-eabi*): Likewise.
10483         (powerpc-*-rtems*): Likewise.
10484         (powerpc-*-linux*libc1): Likewise.
10485         (powerpc-*-linux*): Likewise.
10486         (powerpc-wrs-vxworks*): Likewise.
10487         (powerpcle-wrs-vxworks*): Likewise.
10488         (powerpcle-*-sysv*): Likewise.
10489         (powerpcle-*-elf*): Likewise.
10490         (powerpcle-*-eabisim*): Likewise.
10491         (powerpcle-*-eabi*): Likewise.
10492         (powerpcle-*-solaris2*): Likewise.
10493         * config/rs6000/aix31.h: Delete includes.
10494         * config/rs6000/aix3newas.h: Likewise.
10495         * config/rs6000/aix41.h: Likewise.
10496         * config/rs6000/aix43.h: Likewise.
10497         * config/rs6000/beos.h: Likewise.
10498         * config/rs6000/rtems.h: Likewise.
10499         * config/rs6000/sysv4.h: Likewise.
10500
10501 2001-01-09  Kazu Hirata  <kazu@hxi.com>
10502
10503         * config/h8300/h8300.c (get_shift_alg): Remove an argument cpu.
10504         Change an argument mode of machine_mode to shift_mode of
10505         shift_mode.  Remove an extra error check.
10506         (emit_a_shift): Adopt to the new calling prototype of
10507         get_shift_alg.
10508         (function_prologue): Fix code for a monitor
10509         function.  Support H8/S.
10510         (function_epilogue): Do not output pop for a monitor function.
10511
10512 2001-01-09  Nick Clifton  <nickc@redhat.com>
10513
10514         * config/rs6000/rs6000.c (rs6000_sysv_varargs_p): Delete.
10515         (setup_incoming_varargs): Use sysv_varargs_p field of the
10516         cfun->machine structure.
10517         (struct machine_function): Move to rs6000.h
10518         (rs6000_save_machine_status): Delete.
10519         (rs6000_restore_machine_status): Delete.
10520         (rs6000_init_machine_status): New Function.
10521         (rs6000_free_machine_status): New Function.
10522         (rs6000_init_expanders): Use new functions.
10523
10524         * config/rs6000/rs6000.h (rs6000_sysv_varargs_p): Delete
10525         export.
10526         (struct machine_function): Move here.
10527
10528         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use
10529         sysv_varargs_p field of the cfun->machine structure.
10530
10531         * config/rs6000/rs6000-protos.h (rs6000_save_machine_status):
10532         Remove prototype.
10533         (rs6000_restore_machine_status): Remove prototype.
10534
10535 2001-01-09  Richard Henderson  <rth@redhat.com>
10536
10537         * sched-int.h (struct deps): Add max_reg, reg_last_in_use; merge
10538         reg_last_uses, reg_last_sets, reg_last_clobbers into struct deps_reg.
10539         * sched-deps.c (sched_analyze_1): Update uses of struct deps.
10540         (sched_analyze_2, sched_analyze_insn): Likewise.
10541         (sched_analyze, init_deps): Likewise.
10542         (free_deps): Likewise.  Iterate with EXECUTE_IF_SET_IN_REG_SET.
10543         * sched-rgn.c (propagate_deps): Likewise.  Remove max_reg argument.
10544         (compute_block_backward_dependences): Update propagate_deps call.
10545
10546 2001-01-09  Mark Elbrecht  <snowball3@bigfoot.com>
10547
10548         * gcc.c (process_command): Set switches[n_switches].ordering to 0.
10549
10550 2001-01-09  Neil Booth  <neil@daikokuya.demon.co.uk>
10551
10552         * cppinit.c (OPT_MD, OPT_MMD): Restore.
10553         (cpp_handle_option): Handle them.
10554         (cpp_post_options): Ensure one of -M or -MM is specified with
10555         any other -M? option.
10556         (init_dependency_output): Suppress output with -MG.
10557
10558 2001-01-09  Neil Booth  <neil@daikokuya.demon.co.uk>
10559
10560         * cpp.texi: Update.
10561         * invoke.texi: Update.
10562
10563 2001-01-09  Bernd Schmidt  <bernds@redhat.com>
10564
10565         * sh.md (reload_outsf): Generate recognizable patterns for
10566         TARGET_SH3E.
10567
10568 2001-01-09  Neil Booth  <neil@daikokuya.demon.co.uk>
10569
10570         * c-lang.c (lang_hooks): Update.
10571         (lang_init): Rename c_init.
10572         (lang_finish): Remove.
10573         * toplev.c (compile_file): Use lang_hooks for lang_init ()
10574         and lang_finish ().
10575         * toplev.h (lang_hooks): Add init () and finish ().
10576         * tree.h (lang_init, lang_finish): Remove.
10577         * cp/tree.h (lang_init, lang_finish): Remove.
10578         * cp/decl2.c (cxx_post_options, lang_hooks): Move to cp/lex.c.
10579         * cp/lex.c (cxx_init, cxx_finish, cxx_post_options,
10580         lang_hooks): New.
10581         (lang_init, lang_finish): Remove.
10582         * f/com.c (lang_init, lang_finish): Rename f_init, f_finish.
10583         (lang_hooks): Update.
10584         * java/lang.c (lang_init): Rename java_init.
10585         (lang_finish): Remove.
10586         (lang_hooks): Update.
10587         * objc/objc-act.c (lang_init): Rename objc_init.
10588         (lang_finish): Remove.
10589         (lang_hoooks): Update.
10590
10591 20001-01-09  Graham Stott  <grahams@redhat.com>
10592
10593         * cppfiles.c (_cpp_execute_include): Move `len` initialisation
10594         after `ptr` is initialised.
10595
10596 2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
10597
10598         * config/sh/sh.h (STATIC_CHAIN_REGNUM): Change from r13 to r3.
10599         (INITIALIZE_TRAMPOLINE): Adjust accordingly.
10600         * config/sh/sh.c (sh_expand_prologue): Use r1 as temporary for
10601         stack adjusts, instead of r3.
10602
10603 2001-01-09  Michael Hayes  <mhayes@redhat.com>
10604
10605         * flow.c (flow_loop_scan): Break out of ...
10606         (flow_loops_find) ... here.
10607         * basic-block.h (flow_loop_scan): New.
10608         (LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES): Add.
10609         (LOOP_EDGES, LOOP_EXITS_DOMS, LOOP_ALL): Redefine.
10610
10611 2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
10612
10613         * cppinit.c (cpp_cleanup): NULLify macro_buffer and zero
10614         macro_buffer_len.
10615         * cppmacro.c (cpp_macro_definition): Reset macro_buffer_len when
10616         realloc()ing macro_buffer.
10617
10618         * hwint.h (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT): Use long long
10619         if it's wider than long and the target's long is wider than the
10620         host's.
10621
10622 2001-01-09  Mark Mitchell  <mark@codesourcery.com>
10623
10624         Remove support for using UWIN as a host machine.
10625         * configure.in: Issue an error message.
10626         * configure: Regenerated.
10627         * config.gcc: Remove xm_* UWIN configury.
10628         * config/i386/xm-uwin.h: Remove.
10629
10630 2001-01-08  Nick Clifton  <nickc@redhat.com>
10631
10632         * config/v850/v850.c (ra_rtx): Delete.
10633         (v850_save_machine_status): Delete.
10634         (v850_restore_machine_status): Delete.
10635         (v850_init_machine_status): New function.
10636         (v850_mark_machine_status): New function.
10637         (v850_free_machine_status): New function.
10638         (v850_return_addr): Use ra_rtx field in machine structure.
10639         (v850_init_expanders): Use new functions.
10640
10641         * config/v850/v850-protos.h: Fix prototypes for v850_output_*
10642         * config/v850/v850.c: Change arguments to v850_output+* functions
10643         to take a const char *, to avoid compile time warning.
10644         * config/v850/v850.h (ASM_OUTPUT_LABELREF): Undefine, not needed.
10645         (USER_LABEL_PREFIX): Redefine.
10646
10647 2000-01-08  Jim Wilson  <wilson@redhat.com>
10648
10649         * sched-rgn.c (BITSET_ADD, BITSET_REMOVE, bitset_member): Cast
10650         1 to unsigned HOST_WIDE_INT before left shift.
10651
10652 2001-01-08  Nick Clifton  <nickc@redhat.com>
10653
10654         * config/arm/arm.c (arm_mark_machine_status): Check to see if
10655         the machine structure has been allocated.
10656         (arm_free_machine_status): New function: Free the machine
10657         specific function structure.
10658
10659 2001-01-08  Richard Henderson  <rth@redhat.com>
10660
10661         * jump.c (simplejump_p): Revert last change.
10662
10663 2001-01-08  Neil Booth  <neil@daikokuya.demon.co.uk>
10664
10665         * cppinit.c (init): Rename init_library.
10666         (cpp_create_reader): Update.
10667         * gcc.c (cpp_options): If -o given, use it as the target of
10668         any -M options.
10669
10670 2001-01-08  Richard Earnshaw  <rearnsha@arm.com>
10671
10672         * arm.c (arm_arch5e): New variable.
10673         (all_cores): XScale is a 5TE device.
10674         (arm_override_options): Set arm_arch5e.
10675         (arm_init_builtins): __builtin_prefetch is in arch5e.
10676         * arm.h (arm_arch5e): Declare it.
10677
10678         * arm.h (PREDICATE_CODES): Add arm_hard_register_operand.
10679
10680         * arm.md (define_constants): Add defines for UNSPEC and
10681         UNSPEC_VOLATILE insns.  Update all users.
10682         (define_constants): Add constants for IP_REGNUM, SP_REGNUM, PC_REGNUM.
10683         * arm.c (multi_register_push, note_invalid_constants)
10684         (emit_multi_reg_push, emit_sfm, expand_prologue): Use constants.
10685         * arm.h (SP_REGNUM, IP_REGNUM, PC_REGNUM): Delete defines.
10686         (STACK_POINTER_REGNUM): Define in terms of SP_REGNUM.
10687
10688 Mon Jan  8 16:14:56 MET 2001  Jan Hubicka  <jh@suse.cz>
10689
10690         * jump.c (jump_optimize_1): Use reversed_comparison_code
10691         instead of can_reverse_comparison_p.
10692         (jump_back_p): Likewise.
10693         (invert_exp_1): Likewise.
10694         (thread_jumps): Likewise.
10695         * simplify-rtx.c (simplify_unary_operation): Likewise.
10696         (simplify_ternary_operation): Likewise.
10697         * cse.c (find_comparison_args): Convert to use
10698         can_reverse_comparison_p.
10699         (record_jump_equiv): Likewise.
10700
10701 2001-01-08  Richard Earnshaw  <rearnsha@arm.com>
10702
10703         * arm.h (HARD_REGNO_RENAME_OK): Delete.
10704         (EPILOGUE_USES): Define.
10705         (INITIAL_ELIMINATION_OFFSET): Current prologue code does not
10706         automatically stack the LR if it isn't live.
10707
10708 Mon Jan  8 13:46:02 MET 2001  Jan Hubicka  <jh@suse.cz>
10709
10710         * i386.c (ix86_expand_int_movcc): Take care to reverse fp conditions
10711         properly.
10712
10713 Sun Jan  7 18:37:43 2001  Mark P Mitchell  <mark@codesourcery.com>
10714
10715         * ggc-page.c (max_alignment): New structure.
10716         (MAX_ALIGNMENT): New macro.
10717         (init_ggc): Use it to round up the sizes in the
10718         extra_order_size_table.
10719
10720 2001-01-07  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10721
10722         * config/rs6000/rs6000.h (EPILOGUE_USES): New, mark link register
10723         after reload.
10724
10725 2001-01-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10726
10727         * builtins.def (BUILT_IN_FPRINTF): New entry.
10728
10729         * c-common.c (c_expand_builtin_fprintf): New function.
10730         (init_function_format_info): Handle __builtin_fprintf.
10731         (c_common_nodes_and_builtins): Declare fprintf/__builtin_fprintf.
10732         (c_expand_builtin): Handle BUILT_IN_FPRINTF.
10733
10734         * c-decl.c (duplicate_decls): Adjust comment.
10735
10736         * extend.texi (fprintf): Document new builtin.
10737
10738 2001-01-07  Richard Henderson  <rth@redhat.com>
10739
10740         * jump.c (simplejump_p): Recognize any single_set jump
10741         of the proper form.
10742
10743 2001-01-07  Richard Henderson  <rth@redhat.com>
10744
10745         * configure.in (slibdir): Accept an --with-slibdir option.
10746         Use "test" not "[" in configure.  Default to $(libdir).
10747
10748         * config/t-linux (SHLIB_INSTALL): Double quote slibdir;
10749         fix typo in rm -f.
10750         * config/t-aix43 (SHLIB_INSTALL): Likewise.
10751         * config/alpha/t-osf4 (SHLIB_INSTALL): Likewise.
10752         (SHLIB_LINK): Create links for the soname.
10753         * config/mips/t-iris6: Likewise.
10754         * config/sparc/t-slibgcc: Likewise.
10755         * config/sparc/t-slibgcc-sld: Likewise.
10756
10757 2001-01-07  Jakub Jelinek  <jakub@redhat.com>
10758
10759         * config/i386/i386.c (constant_call_address_operand): Accept
10760         (const (plus (symbol_ref) (const_int))).
10761         * config/i386/i386.h (PREDICATE_CODES): Add CONST for
10762         constant_call_address_operand.
10763
10764 2001-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10765
10766         * libgcc2.h (W_TYPE_SIZE): Fix case where MIN_UNITS_PER_WORD == 1
10767         and LONG_LONG_TYPE_SIZE > 32.
10768
10769 2001-01-07  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10770
10771         * jump.c (reversed_comparison_code_parts): Fix typo introduced by
10772         the previous change.
10773
10774 Sun Jan  7 19:37:48 MET 2001  Jan Hubicka  <jh@suse.cz>
10775
10776         * jump.c (reversed_comparison_code_parts, reversed_comparison_code):
10777         New.
10778         (can_reverse_comparison_p): Rewrite to use reversed_comparison_code.
10779         (reverse_condition_maybe_unordered): Abort on unsigned comparisons.
10780         * rtl.h (reversed_comparison_code_parts, reversed_comparison_code):
10781         Declare.
10782
10783 2001-01-07  Neil Booth  <neil@daikokuya.demon.co.uk>
10784
10785         * fix-header.c (read_scan_file): s/pfile/scan_in/.
10786
10787 2001-01-07  Neil Booth  <neil@daikokuya.demon.co.uk>
10788
10789         * c-lang.c (c_post_options): Call cpp_post_options.
10790         * objc/objc-act.c (objc_post_options): Similarly.
10791         * cppmain.c (main): Similarly.
10792         * fix-header.c (read_scan_file): Similarly.
10793         * cppinit.c (cpp_start_read): Move option consistency checks
10794         to cpp_post_options.  Don't call init_dependency_output.
10795         If needed, add default target and main file dependency.
10796         (OPT_MD, OPT_MMD): Remove.
10797         (OPT_MF): New.
10798         (cpp_handle_option): Update for OPT_* changes.
10799         (cpp_post_options): New.
10800         (init_dependency_output): Command line -MF overrides environment
10801         variables.  Don't set default target etc.  Suppress output
10802         if dependencies are going to stdout.
10803         (print_help): Update.
10804         * cpplib.h (cpp_post_options): New.
10805         * gcc.c (cpp_options): Update for -MD, -MMD, -MF.
10806
10807 Sun Jan  7 14:44:19 MET 2001  Jan Hubicka  <jh@suse.cz>
10808
10809         * jump.c (comparison_dominates_p): Support unordered compares.
10810
10811 Sun Jan  7 14:39:07 MET 2001  Jan Hubicka  <jh@suse.cz>
10812
10813         * simplify-rtx.c (simplify_relational_operation): Always simplify
10814         ORDERED and UNORDERED when FLAG_FAST_MATH.  Handle properly UNLE
10815         and UNGE.
10816
10817 Sun Jan  7 14:35:13 MET 2001  Jan Hubicka  <jh@suse.cz>
10818
10819         * combine.c (combine_simplify_rtx): Recognize the unordered compares.
10820         (nonzero_bits): Likewise.
10821         (simplify_comparison): Likewise.
10822         (num_sign_bit_copies): Likewise; return more sane value depending
10823         on STORE_FLAG_VALUE.
10824         (known_cond): Do not assume EQ to be always true for equivalent
10825         operands.
10826
10827 Sun Jan  7 14:31:57 MET 2001  Jan Hubicka  <jh@suse.cz>
10828
10829         * cse.c (fold_rtx): Handle unordered comparisons.
10830
10831 Sun Jan  7 13:49:19 MET 2001  Jan Hubicka  <jh@suse.cz>
10832
10833         * rtlanal.c (set_of_1): New static function.
10834         (reg_set_last_1, reg_set_p_1, reg_set_reg, reg_set_flag,
10835          reg_set_last_unknown, reg_set_last_value, reg_set_last_first_regno,
10836          reg_set_last_last_regno): Remove.
10837         (set_of): New global function.
10838         (set_of_data): New structure.
10839         (reg_set_p, reg_set_last): Revamp for set_of.
10840         * rtl.h (set_of): New.
10841
10842 2001-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
10843
10844         * c-common.c (c_common_nodes_and_builtins): Add _Exit builtin.
10845         * extend.texi: Document _Exit builtin.
10846
10847 2001-01-07  Neil Booth  <neil@daikokuya.demon.co.uk>
10848
10849         * (initialize, initialize_builtins,
10850         initialize_dependency_output, initialize_standard_includes):
10851         Rename s/initialize/init. Update.
10852         (init_dependency_output): Move to after
10853         cpp_handle_options, the correct location temporally at least.
10854         (opt_comp): Move next to init (), its caller.  Fix prototype.
10855         (init): Make "initialized" local scope.
10856         (cpp_create_reader): Always call init ().
10857         (cpp_start_read): Update.
10858         (output_deps): New function, broken out of cpp_finish.
10859         (cpp_finish): Break out output_deps.
10860
10861 2001-01-07  Richard Henderson  <rth@redhat.com>
10862
10863         * collect2.c (COFF specific stuff): Revert 12-06 patch
10864         to prototype system functions.
10865
10866 2001-01-07  Michael Hayes  <mhayes@redhat.com>
10867
10868         * hard-reg-set.h: Add multiple include guard.
10869         * basic-block.h (struct loop): Add `sink' field.
10870         * loop.h: Include sbitmap.h, hard-reg-set.h, and basic-block.h.
10871         (emit_iv_add_mult): Delete.
10872         (loop_iv_add_mult_hoist, loop_iv_add_mult_sink): Define.
10873         (loop_iv_add_mult_emit_before, loop_insn_sink): Define.
10874         (unroll_loop): Remove end_insert_before argument.
10875         * loop.c (loop_givs_rescan): Remove end_insert_before argument.
10876         (maybe_eliminate_biv_1): Likewise.
10877         (emit_iv_add_mult): Delete.
10878         (gen_add_mult, loop_regs_update): New.
10879         (loop_insn_emit_after, loop_insn_emit_before): New.
10880         (loop_insn_sink, loop_insn_sink_or_swim): New.
10881         (emit_iv_add_mult): Delete.
10882         (scan_loop): Set loop->sink.
10883         (loop_givs_reduce): Use loop_insn_sink and its ilk.
10884         (loop_givs_rescan, strength_reduce, check_dbra_loop): Likewise.
10885         (maybe_eliminate_biv_1): Likewise.
10886         (maybe_eliminate_biv_1): Add basic block argument.
10887         * unroll.c (unroll_loop): Remove end_insert_before argument.
10888         (find_splittable_regs): Likewise.
10889         (find_splittable_regs): Use loop_insn_sink and its ilk.
10890         (find_splittable_givs, final_biv_value, final_giv_value): Likewise.
10891
10892 2001-01-07  Michael Hayes  <mhayes@redhat.com>
10893
10894         * loop.h (loop_insn_hoist): New prototype.
10895         * loop.c (loop_insn_hoist, loop_insn_emit_before): New.
10896         (move_movables, loop_givs_rescan): Use loop_insn_hoist.
10897         (check_dbra_loop, load_mems): Likewise.
10898         * unroll.c (unroll_loop, find_splittable_regs): Likewise.
10899         (find_splittable_givs): Likewise.
10900
10901 2001-01-07  Michael Hayes  <mhayes@redhat.com>
10902
10903         * loop.c (emit_iv_add_mult): Use single_set to examine new insn.
10904
10905 2001-01-07  Richard Henderson  <rth@redhat.com>
10906
10907         * sched-rgn.c (is_cfg_nonregular): Fix thinko's last change.
10908
10909 2001-01-07  Richard Henderson  <rth@redhat.com>
10910
10911         * Makefile.in (DRIVER_DEFINES): Define ENABLE_SHARED_LIBGCC and
10912         NO_SHARED_LIBGCC_MULTILIB as required for the target.
10913         * gcc.c (init_spec): Massage the existing libgcc_spec into a
10914         variant that handles a shared libgcc.
10915         (process_command): Always validate -{static,shared}-libgcc.
10916         (do_spec_1): New 'M' case.
10917         * invoke.text (Link Options): Document -{static,shared}-libgcc.
10918
10919 2001-01-07  Richard Henderson  <rth@redhat.com>
10920
10921         * Makefile.in (slibdir): New variable.
10922         (libgcc.mk): Pass SHLIB_INSTALL to mklibgcc.
10923         (installdirs): Create slibdir.
10924         (install-libgcc, install-multilib): Defer to libgcc.mk.
10925         * configure.in (slibdir): Substitute.
10926         * mklibgcc.in (install): New target.
10927
10928         * config/t-linux (SHLIB_LINK): Create links for the soname.
10929         (SHLIB_INSTALL): New.
10930         * config/alpha/t-osf4 (SHLIB_INSTALL): New.
10931         * config/mips/t-iris6 (SHLIB_INSTALL): New.
10932         * config/rs6000/t-aix43 (SHLIB_INSTALL): New.
10933         * config/sparc/t-slibgcc (SHLIB_INSTALL): New.
10934         * config/sparc/t-slibgcc-sld (SHLIB_INSTALL): New.
10935
10936 2001-01-07  Richard Henderson  <rth@redhat.com>
10937
10938         * config/rs6000/aix.h (LINK_LIBGCC_SPECIAL_1): New.
10939         * config/rs6000/rs6000.h (LIBGCC_SPEC): Remove.
10940         * config/rs6000/sysv4.h (LIBGCC_SPEC): Remove.
10941
10942 2001-01-07  Michael Hayes  <mhayes@redhat.com>
10943
10944         * loop.c (count_loop_regs_set): Delete.
10945         (load_mems_and_recount_loop_regs_set): Delete.
10946         (loop_regs_scan): Merge common code from count_loop_regs_set,
10947         scan_loop, and load_mems_and_recount_loop_regs_set.
10948         (scan_loop): Call load_mems directly and loop_regs_scan
10949         again if new registers created.
10950
10951 2001-01-07  Neil Booth  <neil@daikokuya.demon.co.uk>
10952
10953         * toplev.c (main): Call the front-end specific post_options
10954         hook if one is given.
10955         * toplev.h (struct_lang_hooks, lang_hooks): New.
10956         * c-lang.c (c_post_options, lang_hooks): Implement lang_hooks
10957         for the C front end.
10958         * cp/decl2.c (cxx_post_options, lang_hooks): Implement
10959         lang_hooks for the C++ front end.
10960         * objc/objc-act.c (objc_post_options, lang_hooks): Implement
10961         lang_hooks for the ObjC front end.
10962         * f/com.c (lang_hooks): Hooks for the Fortran front end.
10963         * java/lang.c (lang_hooks): Hooks for the Java front end.
10964
10965 2001-01-07  Neil Booth  <neil@daikokuya.demon.co.uk>
10966
10967         * c-lex.c (init_c_lex): Request #define / #undef callbacks
10968         for verbose DWARF[2] debugging.
10969         (cb_define, cb_undef): The new callbacks.
10970         * toplev.h (debug_define, debug_undef): Make const correct.
10971         * toplev.c (debug_define, debug_undef): Similarly.  Do not
10972         perform the verbosity tests here anymore.
10973
10974 2001-01-07  Alexandre Oliva  <aoliva@redhat.com>
10975
10976         * reload.c (subst_reloads): Take INSN argument.  When
10977         replacing a LABEL_REF in a JUMP_INSN, add a REG_LABEL note.
10978         * reload.h (subst_reloads): Adjust prototype.
10979         * reload1.c (reload_as_needed): Pass INSN to subst_reloads.
10980         * jump.c (mark_all_labels): Canonicalize any REG_LABEL notes
10981         present in JUMP_INSNs and copy them to JUMP_LABEL.
10982         * flow.c (find_label_refs, find_basic_blocks_1): Skip
10983         JUMP_INSNs and insns with REG_LABELs that are followed by
10984         JUMP_INSNs with the same REG_LABEL.
10985         * sched-rgn.c (is_cfg_nonregular): Likewise.
10986         * rtlanal.c (computed_jump_p): Make it false if a REG_LABEL
10987         note is available.
10988         * unroll.c (unroll_loop): Look for REG_LABEL notes in
10989         JUMP_INSNs too.
10990         * rtl.texi (REG_LABEL): Document usage in JUMP_INSNs.
10991
10992 2001-01-06  Richard Henderson  <rth@redhat.com>
10993
10994         * loop.c (scan_loop): Use xcalloc for the regs array.
10995         (load_mems_and_recount_loop_regs_set): Zero the new memory
10996         received from xrealloc.
10997
10998 2001-01-06  Neil Booth  <neil@daikokuya.demon.co.uk>
10999
11000         * mkdeps.c (deps_add_dep): Fix vector re-allocation.
11001
11002 Sat Jan  6 00:09:34 2001  J"orn Rennecke <amylaar@redhat.com>
11003
11004         * integrate.c (copy_rtx_and_substitute): When copying
11005         an ignored return value, strip REG_FUNCTION_VALUE_P.
11006
11007 2001-01-06  Michael Hayes  <mhayes@redhat.com>
11008
11009         * loop.c (debug_biv, debug_giv): New.
11010         (loop_biv_dump): Break out from ...
11011         (record_biv): ... here.
11012         (loop_giv_dump): Break out from ...
11013         (record_giv): ... here.
11014         (loop_bivs_check): Use print_simple_rtl.
11015         * unroll.c (loop_iterations): Use print_simple_rtl.
11016
11017 2000-01-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11018
11019         * pa.md (return, return_internal): Modify patterns to prevent regrename
11020         mucking with the return pointer.
11021
11022 2001-01-05  Richard Henderson  <rth@redhat.com>
11023
11024         * dwarf2out.c (mem_loc_descriptor) [case MEM]: Revert 10-31 change.
11025
11026 Fri Jan  5 16:34:18 2001  Nick Clifton  <nickc@redhat.com>
11027
11028         * config/v850/lib1funcs.asm: Replace __mulsi3 routine with faster
11029         version supplied by Matteo Frigo.
11030
11031 2001-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
11032
11033         * cpp.texi: Update for -MQ.
11034         * cppinit.c (cpp_create_reader): Always create pfile->deps.
11035         (cpp_cleanup): Always free pfile->deps.
11036         (initialize_dependency_output): Don't create pfile->deps.
11037         (cpp_handle_option): Similarly.
11038         (OPT_MQ): New.
11039         * gcc.c (cpp_options): Handle -MQ.
11040         (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -MQ.
11041         * mkdeps.c (base_name): Remove.
11042         (deps_init): Don't allocate vector space until it's needed.
11043         (deps_free): Only free vectors if allocated.
11044         (deps_add_target, deps_add_dep): Update for initial allocation.
11045         (deps_add_default_target): Don't strip to the base_name.
11046
11047 2001-01-05  DJ Delorie <dj@redhat.com>
11048
11049         * config/v850/v850.h (RETURN_ADDR_RTX): Define.
11050         (INIT_EXPANDERS): Define.
11051
11052         * config/v850/v850.c (struct machine_function): Define.
11053         (v850_save_machine_status): New function.
11054         (v850_restore_machine_status): New function.
11055         (v850_return_addr): New function.
11056         (v850_init_expanders): New function.
11057
11058         * config/v850/v850-protos.h: Add prototypes for v850_return_addr
11059         and v850_init_expanders.
11060
11061 2001-01-05  Zack Weinberg  <zack@wolery.stanford.edu>
11062
11063         * cpplib.h (struct cpp_reader): Add help_only field.
11064         * cppinit.c (COMMAND_LINE_OPTIONS): Add OPT_version.
11065         (cpp_handle_option): Set pfile->help_only if we see -h,
11066         --help, -target-help, or --version.  Print version string but
11067         do not set help_only if we see -v or -version.  Make text
11068         printed by -v match that printed by (-)-version.
11069
11070         * cppmain.c (main): Exit after option parsing if
11071         pfile->help_only is true.
11072
11073         * toplev.c (independent_decode_option): Call print_version,
11074         then exit, if we see --version (but not -version).
11075         (print_version): Split lengthy message into two lines.
11076
11077 2001-01-05  Nick Clifton  <nickc@redhat.com>
11078
11079         * config/v850/v850.c (v850_encode_data_area): Use alloca to create
11080         temporary string for initialisation before calling ggc_alloc_string.
11081
11082 2001-01-06  Michael Hayes  <mhayes@redhat.com>
11083
11084         * rtl.h (print_simple_rtl): New.
11085         * print-rtl.c (print_simple_rtl): New.
11086         (flag_simple): New.
11087         (print_rtx): Disable printing of flags and modes, etc.,
11088         if `flag_simple` nonzero.
11089
11090 2001-01-05  Zack Weinberg  <zack@wolery.stanford.edu>
11091
11092         * function.c (fixup_var_refs): Use push_to_full_sequence where
11093         possible.
11094
11095 2001-01-05  Michael Meissner  <meissner@redhat.com>
11096
11097         * flags.h (flag_reorder_blocks): Add declaration.
11098         (flag_rename_block): Ditto.
11099
11100 2001-01-05  DJ Delorie  <dj@redhat.com>
11101
11102         * function.c (reorder_blocks): Make sure the flags are all reset
11103         before using them to mark blocks, else a second invocation will
11104         corrupt the block chain.
11105         (reorder_blocks_0): New, resets the flags.
11106
11107 Fri Jan  5 20:34:06 2001  J"orn Rennecke <amylaar@redhat.com>
11108
11109         * cse.c (find_comparison_args): Stop if the argument is known to
11110         be constant.
11111
11112 2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
11113
11114         * config/sh/sh.md (movdf): When splitting load into pair of
11115         registers, don't clobber the register used in the address too
11116         early.
11117
11118 2001-01-05  Jeffrey Oldham  <oldham@codesourcery.com>
11119
11120         * varasm.c (mark_constant_pool): Improve initial comments.
11121         (mark_constants): Move marking of constants to mark_constant.
11122         (mark_constant): New function to recursively mark all constants
11123         referred to by a constant.
11124
11125 2001-01-05  Catherine Moore  <clm@redhat.com>
11126
11127         * dbxout.c ((dbxout_parms): Handle invisible ref where decl is a REG.
11128
11129 2001-01-05  Phil Edwards  <pme@sources.redhat.com>
11130
11131         * cp/lang-options.h:  Bring comment in line with reality.
11132         * f/lang-options.h:  Likewise.
11133         * java/lang-options.h:  Likewise.
11134         * objc/lang-options.h:  Likewise.
11135         * ch/lang-options.h:  Likewise.
11136         * f/g77.texi:  And update the manual.
11137
11138 2001-01-05  Marek Michalkiewicz  <marekm@linux.org.pl>
11139             Denis Chertykov  <denisc@overta.ru>
11140
11141         * config/avr/avr-protos.h (avr_peep2_scratch_safe): Prototype.
11142         * config/avr/avr.c (avr_peep2_scratch_safe): New function.
11143         * config/avr/avr.md (all peepholes that request a scratch register):
11144         Call it, FAIL the peephole if not safe (in interrupt functions).
11145
11146 2001-01-05  Mark Mitchell  <mark@codesourcery.com>
11147
11148         * ggc-page.c (NUM_EXTRA_ORDERS): Hardwire to zero for now.
11149
11150 2001-01-05  Joseph S. Myers  <jsm28@cam.ac.uk>
11151
11152         * builtins.def (BUILT_IN_CONJ, BUILT_IN_CREAL, BUILT_IN_CIMAG):
11153         Define.
11154         * builtins.c (expand_builtin): Abort on BUILT_IN_CONJ,
11155         BUILT_IN_CREAL and BUILT_IN_CIMAG.
11156         * c-common.c (c_common_nodes_and_builtins): Create builtin conjf,
11157         conj, conjl, crealf, creal, creall, cimagf, cimag and cimagl.
11158         (expand_tree_builtin): Handle BUILT_IN_CONJ, BUILT_IN_CREAL and
11159         BUILT_IN_CIMAG.
11160         * extend.texi: Document these builtins.
11161
11162 2001-01-05  Daniel Berlin  <dberlin@redhat.com>
11163
11164         * c-common.c (lang_get_alias_set): Say we know nothing of
11165         VECTOR_TYPE aliasing.
11166
11167         * dwarf2out.c (is_base_type): Handle VECTOR_TYPE properly.
11168
11169 2001-01-05  Bruce Korb  <bkorb@gnu.org>
11170
11171         * fixinc/mkfixinc.sh(vax-*-bsd): convert exit and atexit calls to
11172         their x* equivalent versions for atexit-less systems
11173         * fixinc/fixincl.c(main): do not return from main() on atexit-less
11174         systems (or any other system any more).
11175
11176 2001-01-05  Richard Earnshaw  <rearnsha@arm.com>
11177
11178         * arm.md (ldmsi_postinc): Avoid use of match_dup between input and
11179         output operands.  Use arm_hard_register_operand for operand 4.
11180         (stmsi_postinc): Similarly.
11181         (ldmsi): Use arm_hard_register_operand for opernand 2.
11182         (stmsi): Similarly.
11183         * arm.c (arm_hard_register_operand): New function.
11184         * arm-protos.h (arm_hard_register_operand): Prototype it.
11185
11186         * arm.h (HARD_REGNO_RENAME_OK): Define.
11187
11188 Fri Jan  5 16:29:49 MET 2001  Jan Hubicka  <jh@suse.cz>
11189
11190         * simplify-rtx.c (cfc_args): add "unordered" field.
11191         (check_fold_consts): Set unordered field.
11192         (simplify_relational_operation): Simplify the unordered
11193         comparisons.
11194
11195         * reg-stack.c (swap_rtx_condition): Ensure that the transformation
11196         is valid.
11197
11198         * emit-rtl.c (try_split): Fix code to mark labels.
11199         * jump.c (mark_jump_label): Make global.
11200         * rtl.h (mark_jump_label): Declare.
11201
11202         * predict.c (estimate_probability): Handle unordred comparisons.
11203
11204 2001-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
11205
11206         * cpp.texi: Update for -MP.  Clarify behaviour of -MT.
11207         * cppinit.c (initialize_dependency_output):  Update.
11208         (cpp_finish): Output dummy targets for -MP.
11209         (OPT_MP): New.
11210         (cpp_handle_option): Handle -MP.  Don't quote -MT options.
11211         * cpplib.h (struct cpp_options): Add deps_phony_targets.
11212         * gcc.c (cpp_options): Update to handle -MP.
11213         * mkdeps.c (deps_add_target, deps_add_default_target): Update
11214         to quote only the default target.
11215         (deps_phony_targets): Insert a preceding newline.  Rename from
11216         deps_dummy_targets for consistency.
11217         * mkdeps.h: Update
11218
11219 2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
11220
11221         * calls.c (emit_library_call_value_1): Support
11222         INIT_CUMULATIVE_LIBCALL_ARGS.
11223         * tm.texi (INIT_CUMULATIVE_LIBCALL_ARGS): Document it.
11224
11225 2001-01-04  Richard Henderson  <rth@redhat.com>
11226
11227         * c-decl.c (finish_struct): Detect flexible array members
11228         used in an inappropriate context.
11229         * c-typeck.c (really_start_incremental_init): Special case
11230         constructor_max_index for zero length arrays.
11231         (pop_init_level): Allow initialization of flexible array
11232         members.  Deprecate initialization of zero length arrays.
11233         Don't issue missing initializer warning for flexible array
11234         members or zero length arrays.
11235         (process_init_element): Don't dereference null DECL_SIZE.
11236         * varasm.c (array_size_for_constructor): Return a HOST_WIDE_INT.
11237         Don't abort for empty constructors.  Use size_binop
11238         (output_constructor): Add commentary regarding zero length
11239         array futures.  Abort if we try to initialize an array of
11240         unspecified length with a non-empty constructor in the middle
11241         of a structure.
11242
11243         * extend.texi (Zero Length): Update and clarify documentation
11244         on static initialization.
11245
11246 2001-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11247
11248         * config/c4x/c4x.c (c4x_expand_prologue): Don't compile an ISR
11249         with more than 32767 words of local storage.
11250
11251 2001-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11252
11253         * config/c4x/c4x.c (c4x_init_builtins): Remove builtin support
11254         for 'abs', 'labs', and 'fabs'.
11255         (c4x_expand_builtin): Likewise.
11256         * config/c4x/c4x.h (enum c4x_builtins): Likewise.
11257
11258 2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
11259
11260         * config/sh/sh.md (prget, prset): New insn types.
11261         (return delay slot): Dont' allow prset.
11262         (call, sfunc delay slot): Don't allow prget.
11263         (movsi_i, movsi_ie, movsi_i_lowpart): Create separate alternatives
11264         for prset and prget.
11265
11266 2001-01-05  Michael Hayes  <mhayes@redhat.com>
11267
11268         * loop.h (struct loop_reg): New.
11269         (struct loop_regs): Change to use array of `struct loop_reg'.
11270         * loop.c: Replace assortment of varrays with single regs array.
11271         (count_one_set): Delete may_not_move array argument
11272         and use regs array instead.  All caller's changed.
11273         (count_loop_regs_set): Delete may_not_move and single_usage
11274         arguments and use regs array instead.  All caller's changed.
11275         (find_single_use_in_loop): Replace usage array argument with pointer
11276         to regs structure.  All caller's changed.
11277         (loop_optimize): Delete `moved_once' array.
11278
11279 2001-01-05  Michael Hayes  <mhayes@redhat.com>
11280
11281         * loop.c (prescan_loop): Set loop_info->has_nonconst_call.
11282         Use it instead of loop_info->has_call for scanning loop mems.
11283         (check_dbra_loop): Replace loop_info->has_call test with
11284         loop_info->has_nonconst_call.
11285
11286 2000-01-04  Matthew Hiller  <hiller@redhat.com>
11287
11288         * config/sh/sh.h (EPILOGUE_USES): Recognize fpscr as epilogue-used
11289         for TARGET_SH3E.
11290
11291 2001-01-04  Joseph S. Myers  <jsm28@cam.ac.uk>
11292
11293         * fold-const.c (fold): When folding a CONJ_EXPR of a COMPLEX_CST,
11294         use TREE_REALPART and TREE_IMAGPART instead of TREE_OPERAND.
11295
11296 2001-01-04  Joseph S. Myers  <jsm28@cam.ac.uk>
11297
11298         * c-common.c (SIZE_TYPE, WCHAR_TYPE): Define.
11299         (flag_short_double, flag_short_wchar): Define.
11300         (c_common_nodes_and_builtins): Create many tree nodes shared
11301         between C and C++ here instead of in cp/decl.c and ...
11302         * c-decl.c (init_decl_processing): ... here.
11303         (SIZE_TYPE, WCHAR_TYPE): Don't define.
11304         (flag_short_double, flag_short_wchar): Don't define.
11305         (record_builtin_type): New function.
11306         (build_void_list_node): New function.
11307         * c-common.h (flag_short_double, flag_short_wchar,
11308         record_builtin_type, build_void_list_node): Declare.
11309
11310 Thu Jan  4 21:09:47 2001  J"orn Rennecke <amylaar@redhat.com>
11311
11312         * integrate.c (expand_inline_function): Don't put a virtual
11313         register into the reg map.
11314
11315         * function.c (fixup_var_refs_1): If force_operand didn't put
11316         the address into the target, move it there.
11317
11318 2001-01-04  Mark Mitchell  <mark@codesourcery.com>
11319
11320         Special-case tree_decl/tree_list allocations.
11321         * ggc-page.c (OBJECT_PER_PAGE): Reimplement.
11322         (OBJECT_SIZE): New macro.
11323         (NUM_EXTRA_ORDER): Likewise.
11324         (extra_order_size_table): New variable.
11325         (NUM_ORDERS): New macro.
11326         (objects_per_page_table): New variable.
11327         (object_size_table): New variable.
11328         (G.pages): Use NUM_ORDERS to bound the array.
11329         (G.page_tails): Likewise.
11330         (DIV_ROUND_UP): Remove.
11331         (BITMAP_SIZE): Use CEIL, instead of DIV_ROUND_UP.
11332         (alloc_page): Use OBJECT_SIZE.
11333         (size_lookup): Don't make it const.
11334         (ggc_alloc): Use OBJECT_SIZE.
11335         (ggc_set_mark): Likewise.
11336         (ggc_get_size): Likewise.
11337         (init_ggc): Set up the object_size_table, objects_per_page_table,
11338         and adjust size_lookup.
11339         (ggc_recalculate_in_use_p): Use CEIL, not DIV_ROUND_UP.
11340         (ggc_pop_context): Use NUM_ORDERS.
11341         (clear_marks): Likewise.
11342         (sweep_pages): Likewise.
11343         (poison_pages): Likewise.
11344         (ggc_print_statistics): Use OBJECT_SIZE.
11345
11346 Thu Jan  4 15:54:05 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11347
11348         * varasm.c (output_constructor): Use HOST_WIDE_INT for sizes.
11349         Only call array_size_for_constructor if last field and array type
11350         with no upper bound.
11351
11352 2001-01-04  Philip Blundell  <philb@gnu.org>
11353
11354         * config/arm/arm.c (arm_gen_constant): Prefer to emit constants
11355         from bit 31 downwards, if this requires no more insns.
11356         (count_insns_for_constant): New helper function for above.
11357
11358 2001-01-04  Alexandre Oliva  <aoliva@redhat.com>
11359
11360         * gencodes.c (output_predicate_decls): Remove empty initializer.
11361
11362 2001-01-04  Mark Mitchell  <mark@codesourcery.com>
11363
11364         * tree.c (copy_node): Remove documentation about obstacks.
11365         (buidl1): Check that nobody tries to build 2-argument nodes this
11366         way.
11367
11368 2001-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11369
11370         * sparc.h (PREDICATE_CODES): Delete fp_sethi_p, fp_mov_p and
11371         fp_high_losum_p.
11372
11373         * gencodes.c (output_predicate_decls): Fill empty initializer
11374         braces.
11375
11376 2001-01-04  Jakub Jelinek  <jakub@redhat.com>
11377
11378         * tradcpp.c (deps_file, print_deps_missing_files): New variables.
11379         (main): Handle -MG, -MD, -MMD.  Bail out if -MG is given without -M
11380         or -MM.
11381         (do_include): Handle missing headers like cpp0.
11382         * cppfiles.c (_cpp_execute_include): Don't prefix absolute header
11383         paths with first include pathname.  Don't strcat to uninitialized
11384         string.
11385
11386 2001-01-04  Bernd Schmidt  <bernds@redhat.com>
11387
11388         * regrename.c (regrename_optimize): Don't rename from frame pointer
11389         if frame_pointer_needed.
11390         (do_replace): Don't set ORIGINAL_REGNO to a hard register number.
11391         * config/ia64/ia64.c (emit_all_group_insn_barriers): New function.
11392         (ia64_reorg): Use it instead of scheduling if ! optimize.
11393         (errata_emit_nops): Properly call asm_noperands.
11394         (ia64_sched_reorder): Finish cycle if we see an asm.
11395         (ia64_variable_issue): Clear scheduling state after asms.
11396
11397 2001-01-04  Neil Booth  <neil@daikokuya.demon.co.uk>
11398
11399         * cpp.texi: Update for -MT.
11400         * cppinit.c (initialize_dependency_output): Add a default
11401         target if none has been given already.
11402         (no_tgt, OPT_MT): New.
11403         (cpp_handle_option): Handle -MT.  Update -M etc.
11404         * cpplib.h (struct cpp_options): Remove deps_target.
11405         * gcc.c (cpp_options): Handle -MT.
11406         * mkdeps.c (struct deps): Move from mkdeps.h.
11407         (deps_calc_target): Rename deps_add_default_target.  Add a
11408         default target if none has been specified already.
11409         * mkdeps.h (struct deps): Move to mkdeps.c.
11410         (deps_calc_target): Rename deps_add_default_target.
11411
11412 2000-01-03  Richard Henderson  <rth@redhat.com>
11413
11414         * c-decl.c (grokdeclarator): Give zero-length arrays size zero.
11415         Remove dead code.
11416         * c-typeck.c (push_init_level): Move checks for flexible array
11417         members and zero length arrays ...
11418         (pop_init_level): ... here.  Silently discard empty initializations.
11419         Remove dead code.
11420         * varasm.c (output_constructor): Update for sizeof change to
11421         zero-length arrays.
11422
11423         * extend.texi (Zero Length): Clarify semantics.
11424
11425 2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
11426
11427         * configure.in (tm.h): Include isns-codes.h last.
11428         * configure: Rebuilt.
11429
11430 2001-01-03  Richard Henderson  <rth@redhat.com>
11431
11432         * config/alpha/alpha.md (addvsi3, addvdi3): New.
11433         (negvsi2, negvdi2, subvsi3, subvdi3, mulvsi3, mulvdi3): New.
11434
11435 2001-01-03  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11436
11437         * tradcpp.c (main): Make sure finclude() is called with a valid
11438         indepth value while handling -include.
11439
11440 2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
11441
11442         * gencodes.c (output_predicate_decls): New function.
11443         (main): Call it.
11444         * machmode.h (GET_MODE_MASK): Arrange for it to be defined
11445         even if it is not the first time machmode.h is #included.
11446         * config/sh/sh.c (fpul_operand): Declare MODE argument.
11447         * tm.texi (PREDICATE_CODES): Document predicate declarations.
11448         * gcc.texi (Copyright): Added 2001.
11449
11450 2001-01-03  Joseph S. Myers  <jsm28@cam.ac.uk>
11451
11452         * c-common.c (c_common_lang_init): New function.  Warn if format
11453         warning options which only have effects when used with -Wformat
11454         are used without -Wformat.
11455         * c-common.h (c_common_lang_init): Declare.
11456         * c-lang.c (lang_init): Call c_common_lang_init.
11457         * objc/objc-act.c (lang_init): Call c_common_lang_init.
11458
11459 2001-01-03  Joseph S. Myers  <jsm28@cam.ac.uk>
11460
11461         * configure.in: Check for the mktemp command.
11462         * configure: Regenerate.
11463         * gccbug.in: Use a separate temporary file $TEMP0 for one use of
11464         $TEMP.  Create temporary files with mktemp, if available at
11465         configure time; otherwise use set -C.  Remove temporary files
11466         before exit.
11467
11468 2001-01-03  Joseph S. Myers  <jsm28@cam.ac.uk>
11469
11470         * configure.in: Require at least texinfo 4.0.  Check for whether
11471         Pod::Man is sufficiently recent to regenerate GCC manpages.
11472         * configure:  Regenerate.
11473         * Makefile.in (TEXI2POD): Call perl explicitly rather than relying
11474         on #!.
11475         (GENERATED_MANPAGES): Define.
11476         (generated-manpages): New target.  Depend on cpp.1 as well as
11477         gcov.1.
11478         (install-man): Depend on $(GENERATED_MANPAGES) (defined by
11479         configure to generated-manpages or empty) rather than on the
11480         manpages directly.  Remove execute permission from installed
11481         gcov.1 as well as cpp.1.
11482         * cpp.1, gcov.1: Regenerate.
11483
11484 2001-01-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11485
11486         * builtins.c (expand_builtin_strncmp): Use host_integerp and
11487         tree_low_cst.  Allow using cmpstrsi in more cases.
11488
11489 Wed Jan  3 10:48:43 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11490
11491         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for variable
11492         sized types.
11493
11494 Wed Jan  3 12:22:32 2001  Alexandre Oliva  <aoliva@redhat.com>
11495
11496         * build-make (HOST_CFLAGS): Added `-DGENERATOR_FILE'.
11497         * Makefile.in (HOST_CFLAGS): Mention build-make.
11498
11499 Wed Jan  3 08:53:50 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11500
11501         * config/sparc/sparc.md (nonlocal_goto): Emit goto_handler_and_restore
11502         as JUMP_INSN.
11503
11504 2001-01-01  Bernd Schmidt  <bernds@redhat.com>
11505
11506         * builtins.c (expand_builtin_return_addr): Don't use MEM_ALIAS_SET on
11507         a REG rtx.
11508
11509         * cse.c (cse_rtx_varies_p): Accept additional FROM_ALIAS arg.  All
11510         callers changed.
11511
11512         * alias.c (throughout): Use ORIGINAL_REGNO when accessing
11513         reg_base_value and reg_known_value arrays.
11514         (init_alias_analysis): Add more cases to detect known values.
11515         * sched-deps.c (deps_may_trap_p): New function.
11516         (sched_analyze_2): Use it.
11517
11518 2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
11519
11520         * combine.c (simplify_shift_const): Even if we're sign-extracting,
11521         don't discard an ASHIFTRT if we're shifting in a wider mode.
11522
11523 2000-01-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11524
11525         * toplev.c (rest_of_compilation): Don't print basic block information
11526         when CFG isn't up to date.
11527
11528 2001-01-02  Mark Elbrecht  <snowball3@bigfoot.com>
11529
11530         * config/i386/djgpp.h (DWARF2_DEBUGGING_INFO): Define.
11531         (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_ASM_OP): Define.
11532         (UNALIGNED_SHORT_ASM_OP): Define.
11533         (CPP_PREDEFINES): Remove defines for GO32 and DJGPP.
11534
11535 2001-01-02  Mark Mitchell  <mark@codesourcery.com>
11536
11537         * fold-const.c (fold_convert): Fix typo.
11538
11539 2001-01-02  Richard Henderson  <rth@redhat.com>
11540
11541         * c-common.h (ASM_INPUT_P): New.
11542         * c-parse.in (asm): Set it when needed.
11543         * c-semantics.c (genrtl_asm_stmt): Test it instead of the
11544         existance of an operand.
11545
11546 Tue Jan  2 20:27:07 MET 2001  Jan Hubicka  <jh@suse.cz>
11547
11548         * dwarf2out.c (stack_adjust_offset): Handle PRE_MODIFY.
11549         (dwarf2out_frame_debug_expr): Likewise.
11550         (mem_loc_descriptor): Handle PRE and POST_MODIFY.
11551
11552 Tue Jan  2 20:21:31 MET 2001  Jan Hubicka  <jh@suse.cz>
11553
11554         * i386.c (ix86_split_to_parts): Return number of part required;
11555         handle TFmodes.
11556         (print_operand, ix86_expand_branch, ix86_expand_fp_movcc): Handle
11557         TFmodes.
11558         (ix86_split_long_move): Use number of part returned
11559         by ix86_split_to_parts
11560         * i386.h (MASK_128BIT_LONG_DOUBLE, TARGET_128BIT_LONG_DOUBLE):
11561         New macros.
11562         (TARGET_SWITCHES): Add 128bit-long-double and 96bit-long-double
11563         (LONG_DOUBLE_TYPE_SIZE): Change from constant.
11564         (MAX_LONG_DOUBLE_TYPE_SIZE): New macro.
11565         (INTEL_EXTENDED_IEEE_FORMAT): Likewise.
11566         (ALIGN_MODE_128): Add TFmode.
11567         (IS_STACK_MODE): Likewise.
11568         (HARD_REGNO_NREGS): TFmode needs 3 registers.
11569         (HARD_REGNO_OK): Support TFmodes.
11570         (ASM_OUTPUT_LONG_DOUBLE): Handle TFmodes.
11571         * i386.md (scheduler definitions): Use memory operand to determine
11572         fst/fld instructions; use mode attribute to determine real mode of
11573         the instruction.
11574         (*tf): New patterns, expanders and splitters; based on XFmode patterns.
11575         * invoke.texi (128bit-long-double, 96bit-long-double): Document.
11576
11577 2001-01-02  Mark Mitchell  <mark@codesourcery.com>
11578
11579         * tree.def (TRUTH_NOT_EXPR): Improve documentation.
11580
11581 Tue Jan  2 10:47:38 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.
11582
11583         * expr.c (store_constructor_field): Update ALIGN before calling
11584         store_constructor.
11585
11586 2001-01-02  Jeffrey Oldham  <oldham@codesourcery.com>
11587
11588         * config/mips/mips.c (function_arg): Don't pass NULL_TREE to
11589         host_integerp.
11590
11591 2001-01-02  Jeffrey Oldham  <oldham@codesourcery.com>
11592
11593         * tm.texi (FUNCTION_ARG): Document that @var{type} can be an
11594         incomplete type.
11595
11596 Tue Jan  2 10:47:38 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.
11597
11598         * c-decl.c (start_function): Don't warn on third parameter to main.
11599
11600 2001-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11601
11602         * tsystem.h: Define HAVE_DECL_GETOPT.
11603
11604 2001-01-02  Philip Blundell  <pb@futuretv.com>
11605
11606         * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Avoid illegal clobber
11607         of input operand.
11608
11609 2001-01-02  Richard Henderson  <rth@redhat.com>
11610
11611         * alpha.md (*ze_and_ne): Duplicate insn condition to split.
11612
11613 2001-01-02  Andreas Jaeger  <aj@suse.de>
11614
11615         * c-decl.c (c_decode_option): Remove support of
11616         -Wmissing-noreturn.
11617
11618         * toplev.c (documented_lang_options): Remove -Wmissing-noreturn.
11619         (W_options): Add -Wmissing-noreturn here.
11620
11621         * flow.c: Define lang_missing_noreturn_ok_p.
11622         (check_function_return_warnings): Use it.
11623
11624         * c-common.h: Declare lang_missing_noreturn_ok_p.
11625
11626         * c-lang.c (c_missing_noreturn_ok_p): New function.
11627         (lang_init): Set lang_missing_noreturn_ok_p.
11628
11629         * invoke.texi (Warning Options): Document this.
11630
11631 2000-12-27  Phil Edwards  <pme@sources.redhat.com>
11632
11633         * extend.texi (C++ Extensions):  New node for C++ attributes;
11634         describe init_priority and com_interface.
11635         * invoke.texi:  Remove -finit-priority as it now has zero effect.
11636         * install.texi:  Fix xref syntax.
11637         * md.texi:  Likewise.
11638
11639 Mon Jan  1 21:28:29 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11640
11641         * config.gcc (sparc64-wrs-vxworks*): New case.
11642         * config/sparc/vxsparc64.h, config/sparc/t-vxsparc64: New files.
11643
11644         * config/sparc/sparc.c (sparc_override_options): Do support different
11645         pointer and architecture size.
11646         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Always 4.
11647         (POINTERS_EXTEND_UNSIGNED): Define.
11648         (Pmode): Test TARGET_ARCH64, not TARGET_PTR64.
11649         (FUNCTION_MODE): Define to be Pmode.
11650         * config/sparc/sparc.md (64-bit call patterns): FUNCTION_MODE now DI.
11651
11652         * function.c (expand_function_end): Properly handle DECL_RESULT
11653         and copy when ptr_mode != Pmode.
11654         * expmed.c (make_tree): Convert X from Pmode to ptr_mode, if needed.
11655
11656 2001-01-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11657
11658         * c-common.c (c_common_nodes_and_builtins): Set prototype
11659         parameters for __builtin_fputs, __builtin_fputc and
11660         __builtin_fwrite.  Don't declare plain fputc as a builtin.
11661
11662 2001-01-01  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11663
11664         * loop.c (add_label_notes): Increment the label usage count when
11665         a note is added to an insn which refers to a CODE_LABEL.
11666         * gcse.c (add_label_notes): Likewise.
11667
11668 2001-01-01  Andreas Jaeger  <aj@suse.de>
11669
11670         * loop.c (scan_loop): Use xmalloc to allocate movables.
11671
11672 2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
11673
11674         * tm.texi (REGISTER_MOVE_COST): Add a mode argument.
11675         * reload.c (REGISTER_MOVE_COST): Likewise.  Adjust all callers.
11676         * reload1.c (REGISTER_MOVE_COST): Likewise.
11677         * regclass.c (REGISTER_MOVE_COST): Likewise.
11678         (move_cost, may_move_in_cost, may_move_out_cost): Add mode
11679         dimension.  Adjust all users.
11680         (init_reg_sets_1): Iterate on all modes.
11681         * config/1750a/1750a.h (REGISTER_MOVE_COST): Adjust.
11682         * config/a29k/a29k.h (REGISTER_MOVE_COST): Adjust.
11683         * config/alpha/alpha.h (REGISTER_MOVE_COST): Adjust.
11684         * config/arc/arc.h (REGISTER_MOVE_COST): Adjust.
11685         * config/arm/arm.h (REGISTER_MOVE_COST): Adjust.
11686         * config/avr/avr.h (REGISTER_MOVE_COST): Adjust.
11687         * config/c4x/c4x.h (REGISTER_MOVE_COST): Adjust.
11688         * config/d30v/d30v.h (REGISTER_MOVE_COST): Adjust.
11689         * config/dsp16xx/dsp16xx.h (REGISTER_MOVE_COST): Adjust.
11690         * config/h8300/h8300.h (REGISTER_MOVE_COST): Adjust.
11691         * config/i386/i386.h (REGISTER_MOVE_COST): Adjust.
11692         * config/ia64/ia64.h (REGISTER_MOVE_COST): Adjust.
11693         * config/m32r/m32r.h (REGISTER_MOVE_COST): Adjust.
11694         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Adjust.
11695         * config/m68k/m68k.h (REGISTER_MOVE_COST): Adjust.
11696         * config/mcore/mcore.h (REGISTER_MOVE_COST): Adjust.
11697         * config/mips/mips.h (REGISTER_MOVE_COST): Adjust.
11698         * config/mn10200/mn10200.h (REGISTER_MOVE_COST): Adjust.
11699         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Adjust.
11700         * config/ns32k/ns32k.h (REGISTER_MOVE_COST): Adjust.
11701         * config/pa/pa.h (REGISTER_MOVE_COST): Adjust.
11702         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Adjust.
11703         * config/pj/pj.h (REGISTER_MOVE_COST): Adjust.
11704         * config/romp/romp.h (REGISTER_MOVE_COST): Adjust.
11705         * config/rs6000/rs6000.h (REGISTER_MOVE_COST): Adjust.
11706         * config/sh/sh.h (REGISTER_MOVE_COST): Adjust.
11707         * config/sparc/sparc.h (REGISTER_MOVE_COST): Adjust.
11708
11709 2001-01-01  Bernd Schmidt  <bernds@redhat.com>
11710
11711         * alias.c (fixed_scalar_and_varying_struct): Adjust prototype of
11712         arg VARIES_P.  Call it with extra arg.
11713         (true_dependence): Likewise.
11714         * rtl.h (rtx_addr_can_trap_p): Declare.
11715         (rtx_varies_p, rtx_addr_varies_p, true_dependence): Update
11716         prototypes.
11717         * rtlanal.c (rtx_addr_can_trap_p): No longer static.
11718         (rtx_varies_p): Accept extra arg FOR_ALIAS; only disallow
11719         pic offset table register if it's zero.  All callers changed.
11720         (rtx_addr_varies_p): Accept extra arg FOR_ALIAS; all callers changed.
11721
11722 Mon Jan  1 07:38:33 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11723
11724         * explow.c (convert_memory_address, case SYMBOL_REF): Copy
11725         STRING_POOL_ADDRESS_P.
11726
11727         * config/sparc/sparc.c (input_operand): Properly test for short op.
11728
11729         * config.gcc (sparc-*-elf): Include sparc/sol2.h.
11730         (sparc-*-rtems*): Include sparc/sol2.h and sparc/elf.h.
11731         (sparclite-*-elf*, sparc86x-*-elf*): Likewise.
11732         * config/sparc/elf.h: No longer include sol2.h.
11733         * config/sparc/lifeelf.h: No longer include sparc/elf.h.
11734         * config/sparc/rtemself.h, config/sparc/sp86x-elf.h: Likewise.
11735
11736         * config/sparc/sparc.md: Test TARGET_ARCH64 instead of TARGET_PTR64.
11737
11738 2001-01-01  Michael Hayes  <mhayes@redhat.com>
11739
11740         * loop.c (check_insn_for_bivs): Use ivs->n_regs to check array bounds.
11741         (find_mem_givs, record_biv, maybe_eliminate_biv): Likewise.
11742         (record_initial): Likewise.
11743         * unroll.c (copy_loop_body, loop_iterations): Likewise.
11744         (remap_split_bivs): Likewise.
11745
11746 2001-01-01  Michael Hayes  <mhayes@redhat.com>
11747
11748         * loop.c (loop_ivs_free): New function.
11749         (strength_reduce): Break out from...
11750
11751 2001-01-01  Michael Hayes  <mhayes@redhat.com>
11752
11753         * loop.h (struct iv): New.
11754         (REG_IV_TYPE, REG_IV_CLASS, REG_INFO): Modify to use 'struct iv'.
11755         (struct loop_ivs): Replace 'reg_iv_type', 'reg_iv_info',
11756         'reg_biv_class' fields with 'regs' and 'n_regs'.
11757         (struct ivs): Rename 'loop_iv_list' field to 'list'.
11758         * loop.c (loop_bivs_find, strength_reduce): Use ivs->regs array.
11759         * unroll.c (loop_iterations): Check array bounds with ivs->n_regs.
11760
11761 2000-12-31  Alexandre Oliva  <aoliva@redhat.com>
11762
11763         * resource.c (mark_referenced_resources): Abort() before
11764         attempting to mark a pseudo register.
11765         (mark_set_resources): Likewise.
11766
11767 2001-01-01  Michael Hayes  <mhayes@redhat.com>
11768
11769         * loop.h (REG_IV_CLASS): New accessor macro.
11770         * loop.c (REG_IV_CLASS): Use it instead of reg_iv_class array.
11771         * unroll.c (REG_IV_CLASS): Likewise.
11772
11773 See ChangeLog.4 for earlier changes.