OSDN Git Service

2000-09-28 David O'Brien <obrien@FreeBSD.org>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2000-09-28  David O'Brien  <obrien@FreeBSD.org>
2
3         * config/i386/freebsd-aout.h: New, FreeBSD a.out config file.
4         Contains the old contents of config/i386/freebsd.h
5         * config/i386/freebsd.h: Now the ELF rather than a.out config file.
6         Contains the old contents of config/i386/freebsd-elf.h
7         * config/i386/freebsd-elf.h: Retire this file -- contents moved to
8         config/i386/freebsd.h.
9         * configure.in: Adjust for above changes.
10         * po/POTFILES.in: Likewise.
11         * po/en_GB.po: Likewise.
12         * po/gcc.pot: Likewise.
13         * configure: Rebuilt.
14
15 2000-09-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
16         * doloop.c (doloop_modify): Prevent delete_insn() from
17         deleting too much.  Prefer loop->top over loop->start as
18         target for the new JUMP insn.
19         (doloop_valid_p): Ignore loop with exit_count != 0.
20
21 2000-09-28  Philipp Thomas  <pthomas@suse.de>
22
23         * invoke.texi (i386 Options): Add athlon to table of possible
24         choices for -mcpu=.
25
26 2000-09-28  Gabriel Dos Reis  <gdr@codesourcery.com>
27
28         * diagnostic.h (output_clear_message_text): New function.
29         (output_message_text): New macro.
30
31         * diagnostic.c (clear_text_info): Rename to
32         output_clear_message_text. 
33         (output_clear): Adjust.
34         (output_finish): Rename to output_finalize_message.  Tweek.
35         (output_to_stream): Adjust. 
36
37 2000-09-28  Neil Booth  <neilb@earthling.net>
38
39         * cpperror.c (_cpp_begin_message):  Do the test for suppression
40         of warnings and pedantic warnings before the "is a warning an
41         error" tests.
42         * cppinit.c (cpp_handle_option): Remove surplus \n.
43         * cpplex.c (ON_REST_ARG): Delete.
44         (skip_block_comment): Initialise prevc.
45         (parse_args): Improve error messages.
46         (maybe_paste_with_next): Use CONTEXT_VARARGS rather
47         than ON_REST_ARG.
48         * cpplib.c (cpp_push_buffer): Fix grammar in message.
49         * cppmain.c (main): Set callbacks for #ident and #pragma
50         only if no_output option is false.
51         (do_pragma_implementation): Only call the #pragma handler
52         if it is set in the cpp_reader structure.
53
54 Wed Sep 27 14:00:07 2000  Donald Lindsay  <dlindsay@cygnus.com>
55
56         * integrate.c (copy_insn_list): if an ignored return value
57         is being clobbered, skip cloning that into the inline copy.
58
59 2000-09-27  Joseph S. Myers  <jsm28@cam.ac.uk>
60
61         * extend.texi, invoke.texi, gcc.texi, install.texi: Consistently
62         use @uref for formatting URLs.
63
64 2000-09-27  Mark Elbrecht  <snowball3@bigfoot.com>
65
66         * config/i386/djgpp.h (UNIQUE_SECTION): Constify the variables
67         name and prefix.
68
69 Tue 26-Sep-2000 18:25:38 BST  Neil Booth  <neilb@earthling.net>
70
71         * gcc.c (cpp_options): Add spec for -ftabstop=.
72         (invoke_as): New spec that handles invoking as.
73         Update specs to handle -save-temps and -traditional.
74         * ch/lang-specs.h, f/lang-specs.h, java/lang-specs.h:
75         Use invoke_as.
76         * cp/lang-specs.h, objc/lang-specs.h: Update to use
77         invoke_as, and handle -save-temps and -traditional (if
78         appropriate).
79
80 2000-09-26  Jakub Jelinek  <jakub@redhat.com>
81
82         * config/sparc/sparc.c (sparc_emit_set_const64): Don't abort when
83         op0 is a SUBREG.
84         (function_arg_slotno): Accept TImode/CTImode.
85         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): If IN_LIBGCC2 define
86         to UNITS_PER_WORD.
87
88 2000-09-26  Michael Hayes  <mhayes@cygnus.com>
89
90         * flow.c (flow_loop_pre_header_scan): Punt if loop enters
91         from entry block.
92
93 2000-09-25  Jim Wilson  <wilson@cygnus.com>
94
95         * config/ia64/ia64.h (INDEX_REG_CLASS): Define to GENERAL_REGS.
96         (REGNO_OK_FOR_INDEX_P): Define to REGNO_OK_FOR_BASE_P.
97         (LEGITIMATE_ADDRESS_DISP): Use LEGITIMATE_ADDRESS_REG.
98         (REG_OK_FOR_INDEX): Define to REG_OK_FOR_BASE_P.
99
100 Tue 26-Sep-2000 00:16:22 BST  Neil Booth  <neilb@earthling.net>
101
102         * cpplex.c (parse_args): Don't set VOID_REST flag.
103         (CONTEXT_VARARGS): New flag.
104         (maybe_paste_with_next): Set context earlier in loop.  Use
105         it.  Do varargs test with CONTEXT_VARARGS flag.
106         (push_arg_context): Set CONTEXT_VARARGS flag if we're
107         pushing an argument context for a varargs argument.
108         * cpplib.h (VOID_REST): Delete.
109         * gcc.dg/cpp/vararg1.c: Add test case.   
110
111 2000-09-25  Branko Cibej  <branko.cibej@hermes.si>
112
113         * flags.h:  Declare warning flag warn_system_headers.
114         * toplev.c:  Define it.
115         (W_options): Add option -Wsystem-headers.
116         * diagnostic.c (count_error): Test warn_system_headers.
117         * invoke.texi:  Add description for -Wsystem-headers.
118         * cpplib.h (cpp_options): New member warn_system_headers.
119         * cpphash.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Don't test
120         CPP_IN_SYSTEM_HEADER.
121         * cpplib.c (do_import, do_pragma_once): Likewise.
122         * cpperror.c (_cpp_begin_message): Test warn_system_headers
123         and CPP_IN_SYSTEM_HEADER.
124         * cppinit.c (handle_option): Recognize -Wsystem_headers.
125         (print_help): Describe -Wsystem_headers.
126         * cpplex.c (lex_line): Reorganize condition so that warnings
127         about C++ comments in system headers can be enabled. Remove
128         label do_line_comment.
129
130 Mon 25-Sep-2000 23:38:27 BST  Neil Booth  <neilb@earthling.net>
131
132         * cpplex.c (save_comment): Only store the initial '/'
133         now.
134         (lex_token): Combine handling of the two comment types.
135         Pass everything but the initial '/' to save_comment.    
136
137 Mon 25-Sep-2000 23:31:45 BST  Neil Booth  <neilb@earthling.net>
138
139         * cpphash.h (_cpp_digraph_spellings, _cpp_process_directive,
140         _cpp_can_paste): New library-internal prototypes.
141         * cpplex.c (dump_param_spelling, output_line_command,
142         output_token, cpp_scan_buffer, cpp_scan_buffer_nooutput,
143         cpp_printf, cpp_output_list): Move to cppoutput.c.
144         (process_directive, can_paste, digraph_spellings): Add _cpp_ prefix.
145         * cppmacro.c (dump_macro_args, cpp_dump_definition) Move to
146         cppoutput.c.
147         * cppoutput.c (dump_macro_args, cpp_dump_definition, output_token,
148         dump_param_spelling, output_line_command, cpp_scan_buffer,
149         cpp_scan_buffer_nooutput, cpp_printf, cpp_output_list): Moved
150         from elsewhere.
151         * Makefile.in: Add cppoutput.c.
152         * po/POTFILES.in: Add cppoutput.c.
153
154 2000-09-25  Richard Henderson  <rth@cygnus.com>
155
156         * config/ia64/ia64.c (ia64_print_operand): Define 'e' as 64-n.
157         * config/ia64/ia64.md (rotrsi3): Allow variable rotates; don't
158         split until after reload.
159         (rotlsi3, rotldi3): New.
160
161 2000-09-25  Gabriel Dos Reis  <gdr@codesourcery.com>
162
163         * diagnostic.c (output_last_position): Define.
164         (set_real_maximum_length): Tweek.
165         * diagnostic.h (output_last_position): Declare.
166
167 2000-09-25  Kazu Hirata  <kazu@hxi.com>
168
169         * config/i386/i386.c: Fix formatting.
170
171 2000-09-24  Alan Lehotsky  <alehotsky@cygnus.com>
172
173         * emit-rtl-c (gen_lowpart_common): Accept non-paradoxical SUBREG when
174         UNITS_PER_WORD is small.
175
176 2000-09-25  Joseph S. Myers  <jsm28@cam.ac.uk>
177
178         * c-common.c (format_char_info): Add flags2; update comments.
179         (print_char_table, scan_char_table, time_char_table): Split some
180         flags out into flags2.
181         (check_format_info): Use flags2 for those flags, for identifying
182         the initial character of a scanf scanset, and for identifying
183         printf formats where the '0' flag is ignored with precision.
184
185 2000-09-25  Hans-Peter Nilsson  <hp@axis.com>
186
187         Changes below marked "here" add TABs on either or both sides,
188         covering start of line, up to any operand for all noted .*ASM.*_OP
189         definitions.  All callers changed.
190         * tm.texi: Make documented *_ASM.*_OP:s include spacing
191         (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, SHARED_SECTION_ASM_OP,
192         BSS_SECTION_ASM_OP, SHARED_BSS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
193         ASM_BYTE_OP, FINI_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP,
194         ASM_STABS_OP, ASM_STABD_OP, ASM_STABN_OP).
195         Fix typos in description for LONG_LONG_TYPE_SIZE and
196         FINI_SECTION_ASM_OP.
197         * crtstuff.c (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Explain
198         why these defaults don't have leading spacing.
199         * dbxout.c (ASM_STABS_OP, ASM_STABN_OP): Here.
200         * dwarf2out.c (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
201         UNALIGNED_DOUBLE_INT_ASM_OP, SECTION_ASM_OP, ASM_BYTE_OP): Here.
202         * dwarfout.c (FILE_ASM_OP, VERSION_ASM_OP,
203         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, ASM_BYTE_OP,
204         PUSHSECTION_ASM_OP, POPSECTION_ASM_OP): Here.
205         * defaults.h (ASM_STABD_OP, EH_FRAME_SECTION_ASM_OP): Here.
206         * varasm.c (ASM_STABS_OP): Here.
207         * xcoffout.h (ASM_STABS_OP): Here.
208         * config/elfos.h (IDENT_ASM_OP, ASM_BYTE_OP, SET_ASM_OP,
209         SKIP_ASM_OP, ALIGN_ASM_OP, COMMON_ASM_OP, LOCAL_ASM_OP,
210         INT_ASM_OP, ASCII_DATA_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP,
211         STRING_ASM_OP): Here.
212         * config/freebsd.h (IDENT_ASM_OP): Here.
213         * config/linux-aout.h (SET_ASM_OP): Here.
214         * config/linux.h (SET_ASM_OP): Here.
215         * config/lynx.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
216         INT_ASM_OP): Here.
217         * config/netbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP): Here.
218         * config/nextstep.h (EH_FRAME_SECTION_ASM_OP, ALIGN_ASM_OP): Here.
219         * config/openbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP): Here.
220         * config/psos.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
221         INT_ASM_OP): Here.
222         * config/ptx4.h (IDENT_ASM_OP, ASM_BYTE_OP, SET_ASM_OP,
223         SKIP_ASM_OP, ALIGN_ASM_OP, COMMON_ASM_OP, LOCAL_ASM_OP,
224         INT_ASM_OP, ASCII_DATA_ASM_OP, CONST_SECTION_ASM_OP,
225         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
226         FINI_SECTION_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP STRING_ASM_OP): Here.
227         * config/svr3.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
228         CONST_SECTION_ASM_OP, ASM_BYTE_OP): Here.
229         * config/a29k/udi.h (INT_ASM_OP): Here.
230         * config/alpha/alpha-interix.h (CONST_SECTION_ASM_OP,
231         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP,
232         SET_ASM_OP): Here.
233         * config/alpha/alpha.h (TEXT_SECTION_ASM_OP,
234         READONLY_DATA_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
235         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
236         UNALIGNED_DOUBLE_INT_ASM_OP, ASM_STABS_OP, ASM_STABN_OP,
237         ASM_STABD_OP): Here.
238         * config/alpha/elf.h (IDENT_ASM_OP, SKIP_ASM_OP, ALIGN_ASM_OP,
239         COMMON_ASM_OP, INT_ASM_OP, ASCII_DATA_ASM_OP,
240         CONST_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
241         BSS_SECTION_ASM_OP, SBSS_SECTION_ASM_OP, SDATA_SECTION_ASM_OP,
242         INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, TYPE_ASM_OP,
243         SIZE_ASM_OP, STRING_ASM_OP): Here.
244         * config/alpha/vms.h (LINK_SECTION_ASM_OP,
245         READONLY_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP,
246         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, COMMON_ASM_OP): Here.
247         * config/arc/arc.h (ASM_BYTE_OP, SET_ASM_OP): Here.
248         (PUSHSECTION_ASM_OP): Define this, not PUSHSECTION_FORMAT.
249         * config/arm/aof.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP):
250         Here.
251         * config/arm/aout.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
252         BSS_SECTION_ASM_OP, SET_ASM_OP): Here.
253         * config/arm/coff.h (INT_ASM_OP): Here.
254         * config/arm/conix-elf.h (UNALIGNED_WORD_ASM_OP): Here.
255         * config/arm/elf.h (TYPE_ASM_OP, SIZE_ASM_OP, INT_ASM_OP): Here.
256         * config/arm/linux-elf.h (IDENT_ASM_OP, CONST_SECTION_ASM_OP,
257         INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Here.
258         * config/arm/unknown-elf.h (UNALIGNED_WORD_ASM_OP): Here.
259         * config/avr/avr.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
260         ASM_BYTE_OP, TYPE_ASM_OP, SIZE_ASM_OP, WEAK_ASM_OP,
261         STRING_ASM_OP): Here.  Update documentation copy in comments.
262         * config/c4x/c4x.h (ASM_STABS_OP, BSS_SECTION_ASM_OP): Here.
263         * config/clipper/clipper.h (TEXT_SECTION_ASM_OP,
264         DATA_SECTION_ASM_OP): Here.
265         * config/clipper/clix.h (BSS_SECTION_ASM_OP, INIT_SECTION_ASM_OP):
266         Here.
267         * config/convex/convex.h (TEXT_SECTION_ASM_OP,
268         DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP): Here.
269         * config/d30v/d30v.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
270         BSS_SECTION_ASM_OP): Here.
271         * config/fr30/fr30.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
272         BSS_SECTION_ASM_OP): Here.
273         * config/fx80/fx80.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
274         Here.
275         * config/gmicro/gmicro.h (TEXT_SECTION_ASM_OP,
276         DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP): Here.
277         * config/h8300/h8300.h (ASM_WORD_OP): Here.
278         * config/i370/i370.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
279         BSS_SECTION_ASM_OP): Here.
280         * config/i386/aix386.h (INIT_SECTION_ASM_OP): Here.
281         * config/i386/bsd.h (ASM_BYTE_OP): Here.
282         * config/i386/cygwin.h (SET_ASM_OP, INT_ASM_OP): Here.
283         * config/i386/dgux.h (CONST_SECTION_ASM_OP): Here.
284         * config/i386/djgpp.h (IDENT_ASM_OP, INT_ASM_OP, SET_ASM_OP):
285         Here.
286         * config/i386/freebsd-elf.h (SET_ASM_OP): Here.
287         * config/i386/freebsd.h (TYPE_ASM_OP, SIZE_ASM_OP, INT_ASM_OP):
288         Here.
289         * config/i386/i386-coff.h (CTORS_SECTION_ASM_OP,
290         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
291         * config/i386/i386-interix.h (STRING_ASM_OP, CONST_SECTION_ASM_OP,
292         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP,
293         SET_ASM_OP): Here.
294         * config/i386/i386elf.h (BSS_SECTION_ASM_OP): Here.
295         * config/i386/netbsd.h (INT_ASM_OP): Here.
296         * config/i386/openbsd.h (INT_ASM_OP): Here.
297         * config/i386/osfrose.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP,
298         IDENT_ASM_OP): Here.
299         * config/i386/sco5.h (ALIGN_ASM_OP, ASCII_DATA_ASM_OP,
300         ASM_BYTE_OP, IDENT_ASM_OP, COMMON_ASM_OP, SET_ASM_OP,
301         LOCAL_ASM_OP, INT_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, STRING_ASM_OP,
302         SKIP_ASM_OP, GLOBAL_ASM_OP): Here.
303         * config/i386/seq-sysv3.h (SHARED_SECTION_ASM_OP,
304         SHARED_BSS_SECTION_ASM_OP): Here.
305         * config/i386/sequent.h (SHARED_SECTION_ASM_OP): Here.
306         * config/i386/sun386.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
307         DATA_SECTION_ASM_OP): Here.
308         * config/i386/svr3gas.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
309         CONST_SECTION_ASM_OP): Here.
310         * config/i386/sysv3.h (INIT_SECTION_ASM_OP): Here.
311         * config/i386/unix.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
312         BSS_SECTION_ASM_OP): Here.
313         * config/i860/bsd-gas.h (ASCII_DATA_ASM_OP): Here.
314         * config/i860/bsd.h (ASCII_DATA_ASM_OP): Here.
315         * config/i860/fx2800.h (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP,
316         BSS_ASM_OP): Here, but use trailing spaces.
317         * config/i860/i860.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
318         DATA_SECTION_ASM_OP): Here.
319         * config/i860/paragon.h (ASCII_DATA_ASM_OP, BSS_SECTION_ASM_OP):
320         Here.
321         * config/i860/sysv3.h (ASCII_DATA_ASM_OP, CTORS_SECTION_ASM_OP,
322         DTORS_SECTION_ASM_OP, TDESC_SECTION_ASM_OP): Here.
323         * config/i860/sysv4.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
324         TDESC_SECTION_ASM_OP): Here.
325         * config/i960/i960-coff.h (CTORS_SECTION_ASM_OP,
326         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
327         * config/i960/i960.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
328         Here.
329         * config/ia64/ia64.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
330         BSS_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP,
331         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
332         UNALIGNED_DOUBLE_INT_ASM_OP): Here.
333         * config/ia64/sysv4.h (ASM_BYTE_OP, STRING_ASM_OP, SKIP_ASM_OP,
334         COMMON_ASM_OP, ASCII_DATA_ASM_OP, INIT_SECTION_ASM_OP,
335         FINI_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
336         SDATA_SECTION_ASM_OP, SBSS_SECTION_ASM_OP): Here.
337         * config/m32r/m32r.h (SCOMMON_ASM_OP): Here.
338         * config/m68hc11/m68hc11.h (GLOBAL_ASM_OP): Here.
339         * config/m68k/auxas.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP,
340         SPACE_ASM_OP, ALIGN_ASM_OP, GLOBAL_ASM_OP, SWBEG_ASM_OP,
341         SET_ASM_OP): Here.
342         * config/m68k/coff.h (BSS_SECTION_ASM_OP, CTORS_SECTION_ASM_OP,
343         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
344         * config/m68k/crds.h (BSS_SECTION_ASM_OP): Here.
345         * config/m68k/dpx2.h (ASM_BYTE_OP, GLOBAL_ASM_OP): Here.
346         * config/m68k/hp320.h (ASCII_DATA_ASM_OP, GLOBAL_ASM_OP): Here.
347         * config/m68k/linux.h (BSS_SECTION_ASM_OP): Here.
348         * config/m68k/lynx.h (BSS_SECTION_ASM_OP): Here.
349         * config/m68k/m68k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
350         GLOBAL_ASM_OP): Here.
351         * config/m68k/m68kelf.h (SWBEG_ASM_OP, BSS_ASM_OP,
352         BSS_SECTION_ASM_OP): Here.
353         * config/m68k/m68kv4.h (BSS_ASM_OP): Here.
354         * config/m68k/mot3300.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
355         ASCII_DATA_ASM_OP, SET_ASM_OP, CTORS_SECTION_ASM_OP,
356         DTORS_SECTION_ASM_OP, GLOBAL_ASM_OP, ASM_BYTE_OP, ALIGN_ASM_OP,
357         SKIP_ASM_OP): Here.
358         * config/m68k/newsgas.h (SET_ASM_OP): Here.
359         * config/m68k/rtemself.h (INIT_SECTION_ASM_OP,
360         FINI_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP): Here.
361         * config/m68k/sgs.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP,
362         SPACE_ASM_OP, ALIGN_ASM_OP, GLOBAL_ASM_OP, SWBEG_ASM_OP,
363         SET_ASM_OP, UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Here,
364         but use trailing spaces.
365         * config/m68k/tower-as.h (TEXT_SECTION_ASM_OP,
366         DATA_SECTION_ASM_OP, GLOBAL_ASM_OP, INIT_SECTION_ASM_OP,
367         FINI_SECTION_ASM_OP, CONST_SECTION_ASM_OP, BSS_SECTION_ASM_OP):
368         Here.
369         * config/m88k/dgux.h (FINI_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
370         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Here.
371         * config/m88k/m88k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
372         CONST_SECTION_ASM_OP, TDESC_SECTION_ASM_OP, CTORS_SECTION_ASM_OP,
373         DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
374         IDENT_ASM_OP, FILE_ASM_OP, SECTION_ASM_OP, SET_ASM_OP,
375         GLOBAL_ASM_OP, ALIGN_ASM_OP, SKIP_ASM_OP, COMMON_ASM_OP,
376         BSS_ASM_OP, FLOAT_ASM_OP, DOUBLE_ASM_OP, INT_ASM_OP, SHORT_ASM_OP,
377         CHAR_ASM_OP, ASCII_DATA_ASM_OP, SBSS_ASM_OP, SCOMM_ASM_OP,
378         SDATA_SECTION_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, INTERNAL_ASM_OP,
379         VERSION_ASM_OP, UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
380         PUSHSECTION_ASM_OP, POPSECTION_ASM_OP, REQUIRES_88110_ASM_OP,
381         ASM_BYTE_OP): Here.
382         * config/m88k/openbsd.h (SET_ASM_OP): Here.
383         * config/m88k/sysv4.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
384         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Here.
385         * config/mcore/mcore-elf.h (UNALIGNED_INT_ASM_OP,
386         UNALIGNED_SHORT_ASM_OP, CTORS_SECTION_ASM_OP,
387         DTORS_SECTION_ASM_OP): Here.
388         * config/mcore/mcore-pe.h (CTORS_SECTION_ASM_OP,
389         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
390         * config/mips/elf.h (TYPE_ASM_OP, SIZE_ASM_OP,
391         BSS_SECTION_ASM_OP): Here.
392         * config/mips/elf64.h (TYPE_ASM_OP, SIZE_ASM_OP): Here.
393         * config/mips/iris5.h (ABICALLS_ASM_OP): Here.
394         * config/mips/iris6.h (TYPE_ASM_OP, SIZE_ASM_OP,
395         POPSECTION_ASM_OP, BSS_SECTION_ASM_OP, CONST_SECTION_ASM_OP_32,
396         CONST_SECTION_ASM_OP_64, CTORS_SECTION_ASM_OP,
397         DTORS_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP): Here.
398         * config/mips/mips.c (ABICALLS_ASM_OP): Here.
399         * config/mips/mips.h (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP):
400         Here.
401         * config/mips/netbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, WEAK_ASM_OP):
402         Here.
403         * config/mips/osfrose.h (SET_ASM_OP): Here.
404         * config/mips/sni-svr4.h (ABICALLS_ASM_OP): Here.
405         * config/ns32k/encore.h (SHARED_SECTION_ASM_OP): Here.
406         * config/ns32k/merlin.h (SHARED_SECTION_ASM_OP): Here.
407         * config/ns32k/ns32k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
408         Here.
409         * config/ns32k/sequent.h (SHARED_SECTION_ASM_OP): Here.
410         * config/ns32k/tek6000.h (SHARED_SECTION_ASM_OP): Here.
411         * config/pa/pa-64.h (INT_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP): Here.
412         * config/pa/pa.h (ASM_STABS_OP, ASM_STABN_OP): Here.
413         * config/pj/pj.h (SET_ASM_OP, BSS_SECTION_ASM_OP): Here.
414         * config/pyr/pyr.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
415         Here.
416         * config/romp/romp.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
417         Here.
418         * config/rs6000/rs6000.h (SET_ASM_OP): Here.
419         * config/rs6000/sol2.h (ASM_STABN_OP): Here.
420         * config/rs6000/sysv4.h (SKIP_ASM_OP, LOCAL_ASM_OP, LCOMM_ASM_OP):
421         Here.
422         * config/sh/sh.h (SET_ASM_OP, BSS_SECTION_ASM_OP,
423         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Here.
424         * config/sparc/linux.h (COMMON_ASM_OP): Here.
425         * config/sparc/linux64.h (COMMON_ASM_OP,
426         UNALIGNED_DOUBLE_INT_ASM_OP): Here.
427         * config/sparc/litecoff.h (BSS_SECTION_ASM_OP,
428         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
429         * config/sparc/lynx.h (BSS_SECTION_ASM_OP): Here.
430         * config/sparc/pbd.h (ASM_INT_OP): Here.
431         * config/sparc/sp64-elf.h (UNALIGNED_LONGLONG_ASM_OP): Here.
432         * config/sparc/sparc.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
433         DATA_SECTION_ASM_OP, IDENT_ASM_OP): Here.
434         * config/sparc/sun4gas.h (UNALIGNED_DOUBLE_INT_ASM_OP,
435         UNALIGNED_INT_ASM_OP, UNALIGNED_SHORT_ASM_OP): Here.
436         * config/sparc/sysv4.h (STRING_ASM_OP, COMMON_ASM_OP, SKIP_ASM_OP,
437         UNALIGNED_DOUBLE_INT_ASM_OP, UNALIGNED_INT_ASM_OP,
438         UNALIGNED_SHORT_ASM_OP, PUSHSECTION_ASM_OP, POPSECTION_ASM_OP,
439         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP,
440         CONST_SECTION_ASM_OP, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
441         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
442         EH_FRAME_SECTION_ASM_OP): Here.
443         * config/sparc/vxsim.h (COMMON_ASM_OP): Here.
444         * config/spur/spur.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
445         Here.
446         * config/tahoe/tahoe.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
447         Here.
448         * config/v850/v850.h (SCOMMON_ASM_OP, ZCOMMON_ASM_OP,
449         TCOMMON_ASM_OP): Here.
450         * config/vax/vax.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
451         Here.
452         * config/we32k/we32k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
453         ASM_BYTE_OP): Here.
454
455 2000-09-25  Richard Henderson  <rth@cygnus.com>
456
457         * expmed.c (store_bit_field): Adjust last change to not consider
458         any word-sized field naturally aligned.
459
460 2000-09-24  Richard Henderson  <rth@cygnus.com>
461
462         * config/alpha/alpha.c (alpha_emit_conditional_branch): Handle
463         TFmode unordered compares properly.  Revalidate integer compare
464         operands.
465         (alpha_emit_setcc): New.
466         (alpha_emit_conditional_move): Revalidate integer compare operands.
467         * config/alpha/alpha-protos.h: Update.
468         * config/alpha/alpha.md (cmpdi): Allow general operands.
469         (sne): Use alpha_emit_setcc.
470         (seq, slt, sle, sgt, sge, sltu, sleu, sgtu, sgeu): Likewise.
471         (sunordered, sordered): New.
472
473 2000-09-24  Richard Henderson  <rth@cygnus.com>
474
475         * config/ia64/ia64-protos.h: Update.
476         * config/ia64/ia64.c (call_multiple_values_operation): Remove.
477         (ia64_expand_call): New.
478         (ia64_expand_prologue): Emit an alloc if we need extra input
479         registers.
480         (ia64_expand_epilogue): New arg sibcall_p; don't emit the return
481         instruction if true.
482         (struct reg_flags): Add is_sibcall.
483         (rtx_needs_barrier): A sibcall does not use CFM et al.  Ignore USEs.
484         (emit_insn_group_barriers): Set flags.is_sibcall.  Remove hacks
485         for CODE_FOR_gr_spill_internal/CODE_FOR_gr_restore_internal.
486         * config/ia64/ia64.h (PREDICATE_CODES): Update.
487         * config/ia64/ia64.md (call): Use ia64_expand_call.
488         (call_value): Likewise.
489         (sibcall, sibcall_value): New.
490         (call patterns): Remove extra expanders; tidy.
491         (sibcall_epilogue): New.
492         (set_bsp): Remove the extra USE.  Put the operand inside the UNSPEC.
493
494 2000-09-24  Richard Henderson  <rth@cygnus.com>
495
496         * emit-rtl.c (gen_lowpart_common): Use trunc_int_for_mode.
497
498         * sibcall.c (skip_pic_restore): New.
499         (identify_call_return_value): Use it.
500
501 2000-09-24  Mark Mitchell  <mark@codesourcery.com>
502
503         * c-tree.texi: Moved here from cp/ir.texi.  Documented nested
504         functions.  Generalize to handle both C and C++.
505         * Makefile.in (c-tree.info): New target.
506         (info): Add c-tree.info.
507         
508 Sun Sep 24 09:15:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
509
510         * expr.c (store_field): If BITSIZE is negative, use size of type.
511         (expand_expr, case COMPONENT_EXPR): Likewise.
512
513 Sun 24-Sep-2000 11:40:23 BST  Neil Booth  <NeilB@earthling.net>
514
515         * cpplex.c: Update TODO comment.
516         * cpplib.c (do_error, do_warning): Merge common code of
517         do_error and do_warning into do_diagnostic.  Use it.
518         (do_diagnostic): New function.
519         * cpplib.h: Fix comment typo.
520
521 2000-09-24  Joseph S. Myers  <jsm28@cam.ac.uk>
522
523         * c-common.c (check_format_info): Warn for a wide character string
524         used as a non-wide format argument.
525
526 2000-09-24  Joseph S. Myers  <jsm28@cam.ac.uk>
527
528         * builtins.def (BUILT_IN_LLABS): Add.
529         * builtins.c (expand_builtin): Also abort on BUILT_IN_LLABS.
530         * c-common.c (c_common_nodes_builtins): Create builtin functions
531         __builtin_llabs, and plain llabs unless no_nonansi_builtins
532         outside of C99 mode.
533         (expand_tree_builtin): Handle BUILT_IN_LLABS.
534
535 Sat 23-Sep-2000 22:39:18 BST  Neil Booth  <NeilB@earthling.net>
536
537         * cpphash.h (CPP_RESERVE, CPP_PUTS_Q, CPP_PUTS, CPP_PUTC_Q,
538         CPP_PUTC, DUMMY_TOKEN, NO_DUMMY_TOKEN): Delete.
539         * cpplex.c (_cpp_expand_token_space, _cpp_init_toklist,
540         _cpp_free_toklist): No need to worry about extra dummy token
541         at the start of token lists any more.
542         (trigraph_ok): Only warn outside comments.
543         (skip_block_comment): Set and clear lexing_comment.
544         (skip_line_comment): Take a cpp_reader not cpp_buffer.
545         Set and clear lexing_comment.
546         (parse_number): Handle leading '.' indicated by pfile->seen_dot.
547         (check_long_token): Delete.
548         (lex_percent, lex_dot): New subroutines of lex_token to
549         handle lexing of '.' and '%' without lookback.
550         (lex_token): Use lex_dot and lex_percent.
551         (lex_line): Don't check for LIST_OFFSET.
552         (_cpp_init_input_buffer): Update for new _cpp_init_toklist.
553         * cpplib.c (_cpp_parse_assertion): Similarly.
554         (cpp_push_buffer): Initialize extra_char.
555         * cpplib.h (LIST_OFFSET): Delete.
556         (struct cpp_buffer): New member extra_char.
557         (struct lexer_state): New members lexing_comment and seen_dot.
558
559 2000-09-23  Jason Merrill  <jason@redhat.com>
560
561         * config/rs6000/x-aix41 (CLIB): Define here.
562         * config/rs6000/t-aix43: Not here.
563         * config/rs6000/t-aix41: Or here.  Remove.
564         * configure.in: Don't use it.
565
566 2000-09-22  Jason Merrill  <jason@redhat.com>
567
568         * configure.in: Add test for HAVE_LD_DWARF_LINKONCE.
569         * toplev.c: Use it to initialize flag_eliminate_dwarf2dups.
570         * config.in: Regenerate.
571
572         * configure.in: Fix checks for assembler features when using a
573         one-tree assembler that has not yet been built.
574         Fix --disable-threads.
575
576 2000-09-19  Geoff Keating  <geoffk@cygnus.com>
577
578         * stmt.c (expand_asm_operands): Allow # in constraints.
579
580 2000-09-22  Jason Merrill  <jason@redhat.com>
581
582         * c-lex.c (skip_white_space): Just treat CRs as horizontal whitespace.
583
584         * dbxout.c (dbxout_symbol_name): Just use DECL_NAME for
585         function-local names.
586
587 2000-09-22  Brad Lucier <lucier@math.purdue.edu>
588             Mark Mitchell  <mark@codesourcery.com>
589
590         * toplev.c (warn_disabled_optimization): Declare new warning flag.
591         * flags.h (warn_disabled_optimization): Add it here.
592         * gcse.c (gcse_main): Add warning when disabled.
593         * invoke.texi: Document -Wdisabled-optimization.
594
595 2000-09-21  Jason Merrill  <jason@redhat.com>
596
597         * dwarf2out.c (add_const_value_attribute): Multiply by length, not 4.
598
599         * dwarf2out.c (tree_add_const_value_attribute): New fn.
600         (gen_variable_die): Call it for non-definitions.
601
602         * dwarf2out.c (die_struct): Add die_mark field.
603         (mark_dies, unmark_dies): New fns.
604         (clear_die_sizes): Remove.
605         (print_die): Check die_symbol rather than die_offset.
606         (build_abbrev_table, output_pubnames, output_aranges): Check
607         die_mark rather than die_offset.
608         (output_comp_unit): Move calc_die_sizes after build_abbrev_table.
609         Call mark_dies.
610
611 Thu 21-Sep-2000 18:19:05 BST  Neil Booth  <NeilB@earthling.net>
612
613         * cppfiles.c (lookup_include_file): Rename to open_file.
614         Always create a splay tree value, even on syscall failures.
615         Negative entries indicated by fd == -2.
616         Re-open files closed in the meantime.
617         (_cpp_fake_include): Create a negative splay tree entry.
618         (find_include_file, cpp_read_file): Update for function name
619         change.
620         * gcc.gd/cpp/mi4.c: Testcase.
621
622 2000-09-21  Nick Clifton  <nickc@redhat.com>
623
624         * config/arm/t-arm-elf (MULTILIB_DIRNAMES): Enable multilibs for
625         ARM and THUMB modes.
626
627         * config/mcore/mcore.c: Fix compile time warnings.
628         * config/mcore/mcore-protos.h: Fix compile time warnings. 
629
630 2000-09-20  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
631
632         * configure.in: Correct test of gcc_cv_glibc.
633         * configure: Rebuilt.
634         * config.in: Rebuilt.
635
636 2000-09-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
637
638         * builtins.c (expand_builtin_fputs): Also expand when length!=1.
639         (expand_builtin): Handle BUILT_IN_FWRITE.
640
641         * builtins.def (BUILT_IN_FWRITE): New entry.
642
643         * c-common.c (c_common_nodes_and_builtins): Declare __builtin_fwrite.
644
645 Wed Sep 20 15:39:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
646
647         * gcc.c (modify_target): New variable and struct.
648         (process_command): Handle MODIFY_TARGET_NAME.
649         * tm.texi (MODIFY_TARGET_NAME): Add documentation for new macro.
650         * config/pa/pa.h (MODIFY_TARGET_NAME): New macro.
651
652         * c-decl.c (finish_decl): Add else's to avoid referencing
653         TYPE_DOMAIN of an ERROR_MARK.
654
655 Wed Sep 20 21:44:31 2000  Denis Chertykov  <denisc@overta.ru>
656
657         * config/avr/avr.c (adjust_insn_length): Adjust lengths of
658         `reload_in*' insns.
659
660 2000-09-19  Marek Michalkiewicz  <marekm@linux.org.pl>
661
662         * config/avr/avr.md (neghi2): Add alternative for input and output
663         operands in different registers, as in negsi2.
664         (*negsi2): Remove '*' from the name.  Use "movw" if available.
665
666 2000-09-19  Jim Wilson  <wilson@cygnus.com>
667
668         * config/ia64/crtbegin.asm (__dso_handle): Delete use of
669         HAVE_GAS_HIDDEN macro.
670
671 Tue 19-Sep-2000 22:38:57 BST  Neil Booth  <NeilB@earthling.net>
672
673         * cpplex.c (lex_line): Drop the EOF token for unknown
674         directives in assembler.
675
676 2000-09-19  David Edelsohn  <edelsohn@gnu.org>
677
678         * configure.in: Allow enable_threads_flag value of "aix".  Define
679         thread_file as "aix" for AIX 4.3 and above.
680         * configure: Regenerated.
681
682         * gthr-aix.h: New file.
683
684         * rs6000/t-aix43: Replace soft-float multilib with pthread.
685         Remove 403 processor multilib match.  Fix rios2 processor multilib
686         match.
687
688         * rs6000/aix.h (ASM_DECLARE_FUNCTION_NAME): Use function_section
689         to return to appropriate csect.
690
691 2000-09-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
692
693         * builtins.c (is_valid_printf_arglist, expand_builtin_printf): New
694         functions.
695         (expand_builtin_fputs): Set `target' parameter for `expand_expr'.
696         (expand_builtin): Handle BUILT_IN_PUTCHAR, BUILT_IN_PUTS and
697         BUILT_IN_PRINTF.
698
699         * builtins.def (BUILT_IN_PUTCHAR, BUILT_IN_PUTS, BUILT_IN_PRINTF):
700         New entries.
701
702         * c-common.c (init_function_format_info): Handle __builtin_printf.
703         Set `check_function_format_ptr'.
704         (c_common_nodes_and_builtins): Set `puts_ftype' and
705         `printf_ftype'.  Declare __builtin_putchar, __builtin_puts,
706         __builtin_printf and printf.
707
708         * tree.c, tree.h (check_function_format_ptr): Declare.
709
710 Tue 19-Sep-2000 18:26:57 BST  Neil Booth  <NeilB@earthling.net>
711
712         * cppfiles.c (read_include_file): Take no special action for
713         zero-length files.
714
715 2000-09-19  Bernd Schmidt  <bernds@redhat.co.uk>
716
717         * final.c (insn_current_reference_address): Use INSN_SHUID of seq
718         rather than that of branch.
719         (shorten_branches): Don't increment insn_current_address twice.
720
721         Undo most of the Wed Jan 27 23:39:53 1999 patch:
722         * loop.h (struct induction): Delete members derived, ix and last_use.
723         (struct loop_ivs): Delete members first_increment_giv and
724         last_increment_giv.
725         * loop.c (verify_dominator, find_life_end, cmp_recombine_givs_stats,
726         recombine_givs): Delete functions.
727         (find_and_verify_loops): Don't initialize cont_dominator.
728         (strength_reduce): Lose code to try to find bivs that can be
729         expressed as givs of another biv, and to convert biv increments
730         into givs.
731         Lose loop_scan_start variable, always use loop->scan_start.
732         Don't call recombine_givs.  Don't handle derived givs.
733         (record_giv): Don't initialize derived and last_use fields.
734         (biv_eliminiation_giv_has_0_offset): Lose code to handle derived
735         givs.
736         * unroll.c (derived_regs): Delete static variable.
737         (unroll_loop): Don't initialize it.
738         (copy_loop_body): Lose code to handle derived givs.
739         (find_splittable_givs): Don't check for givs made from biv
740         increments.
741         Don't set derived_regs.
742
743         Fix misapplied earlier patch:
744         * config/sh/sh.md (floatsisf_ie): Reenable.  Remove explicit reference
745         to fpul.
746         (floatsisf2): Generate floatsisf_ie by default.
747         (floatsisf_i4): Conditional on TARGET_SH4.
748
749         (floatsisf2, floatsidf2, extendsfdf2): Also use reg_no_subreg_operand
750         predicate for the expanders.
751
752 2000-09-19  Richard Henderson  <rth@cygnus.com>
753
754         * config/i386/i386.h (CPP_CPU_SPEC): Define i586 and i686 symbols
755         in addition to pentium and pentiumpro symbols.
756         (CPP_CPU_DEFAULT_SPEC): Likewise.
757
758         * c-typeck.c (c_expand_asm_operands): Restore the output tree
759         after expanding.
760
761         * stmt.c (expand_expr_stmt): Only call warn_if_unused_value
762         if the tree has side effects.
763         (warn_if_unused_value): Do not warn about void constructs.
764
765         * c-decl.c (poplevel): Invoke warn_about_unused_variables.
766
767         * unroll.c (copy_loop_body): Update LABEL_NUSES before
768         calling invert_jump.
769
770 2000-09-18  Geoff Keating  <geoffk@cygnus.com>
771
772         * combine.c (can_combine_p): Don't substitute an ASM_OPERANDS
773         into anything.
774
775 2000-09-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
776
777         * Makefile.in (c-common.o): Depend on diagnostic.h.
778
779         * c-common.c: Include diagnostic.h.
780         (tfaff): Delete.
781         (status_warning): New function.
782         (check_format_info, maybe_read_dollar_number, check_format_types,
783         finish_dollar_format_checking, check_function_format): Accept a
784         `status' parameter.  All callers changed.
785
786         * c-common.h (check_function_format): Accept a `status' parameter.
787
788         * c-typeck.c: Update call to `check_function_format'.
789
790 2000-09-18  Richard Henderson  <rth@cygnus.com>
791
792         * c-decl.c (c_expand_body): Call mark_varargs before
793         expand_function_start.
794
795 2000-09-18  Geoff Keating  <geoffk@cygnus.com>
796
797         * config/rs6000/eabi-cn.asm: Use /**/ to delimit comments, not #.
798         * config/rs6000/eabi-ci.asm: Likewise.
799
800 2000-09-18  Richard Henderson  <rth@cygnus.com>
801
802         * emit-rtl.c (init_emit_once): Initialize const_tiny_rtx
803         for BImode.
804
805 2000-09-18  Jim Wilson  <wilson@cygnus.com>
806
807         * unroll.c (loop_iterations): Pass increment to extend_for_giv_value
808         before passing it to fold_rtx_mult_add.
809
810         * unroll.c (final_giv_value): Pass increment through
811         extend_value_for_giv before passing it to emit_iv_add_mult.
812
813         * function.c (fixup_var_refs_1, case ZERO_EXTRACT): If we have a
814         paradoxical subreg, then directly substitute the replacement and
815         return.
816
817 Mon 18-Sep-2000 22:12:44 BST  Neil Booth  <NeilB@earthling.net>
818
819         * cpp.texi: Update documentation, including some clarifications,
820         the treatment of various newline combinations, and space between
821         backslash and newline.
822
823 Mon Sep 18 21:00:47 2000  J"orn Rennecke <amylaar@redhat.co.uk>
824
825         * sdbout.c (PUT_SDB_DEF, PUT_SDB_TAG, PUT_SDB_EPILOGUE_END):
826         Replace ASM_OUTPUT_LABELREF with assemble_name.
827
828 Mon Sep 18 20:26:50 2000  J"orn Rennecke <amylaar@redhat.co.uk>
829
830         * sh.c (addsubcosts): CONST is not cheap.
831         (find_barrier): For Sh1, take alignment after jumps into account.
832
833 2000-09-15  Andrew Haley  <aph@redhat.com>
834
835         * toplev.c (rest_of_compilation): Call purge_hard_subreg_sets to
836         remove all SETs of SUBREGs of hard registers.
837         * function.c (purge_hard_subreg_sets): New function.
838         (purge_single_hard_subreg_set): New function.
839         * rtl.h: (purge_hard_subreg_sets): New function.
840
841 2000-09-18  Richard Henderson  <rth@cygnus.com>
842
843         * config/ia64/ia64-protos.h: Update.
844         * config/ia64/ia64.c (signed_inequality_operator): New.
845         (ia64_expand_compare): New.
846         (ia64_register_move_cost): Handle PR_REGS moves.
847         (ia64_secondary_reload_class): Require a GR when moving to a PR.
848         (struct reg_write_state): Add written_by_and/or.
849         (struct reg_flags): Add is_and/or.
850         (rws_update): Set them.
851         (rws_access_regno): Test them to allow parallel comparisons.
852         (rtx_needs_barrier): Recognize parallel comparisons.
853         (emit_insn_group_barriers): Set prev_insn after a call stop bit.
854         Call recog_memoized; ignore pred_rel_mutex.
855         (emit_predicate_relation_info): Don't call find_basic_blocks here.
856         (ia64_reorg): Do it here instead.
857         * config/ia64/ia64.h: s/CCmode/BImode/g
858         (MODES_TIEABLE_P): Don't tie BImode.
859         (PREFERRED_RELOAD_CLASS): Do not reload operations into AR regs.
860         (CONST_COSTS): Pick sensible values for CONST_INT based on context.
861         (RTX_COSTS): Make multiply 4 insns.
862         (MEMORY_MOVE_COST): New.
863         (PREDICATE_CODES): Update.
864         * config/ia64/ia64.md: s/CCmode/BImode/g
865         (movcci, movbi): New.
866         (andbi3, andcmbi3, iorbi3, iorcmbi3, one_cmplbi2): New.
867         (cmpsi_and_0, cmpsi_and_1, cmpsi_andnot_0, cmpsi_andnot_1): New.
868         (cmpdi_and_0, cmpdi_and_1, cmpdi_andnot_0, cmpdi_andnot_1): New.
869         (tbit_and_0, tbit_and_1, tbit_and_2, tbit_and_3): New.
870         (cmpsi_or_0, cmpsi_or_1, cmpsi_orcm_0, cmpsi_orcm_1): New.
871         (cmpdi_or_0, cmpdi_or_1, cmpdi_orcm_0, cmpdi_orcm_1): New.
872         (tbit_or_0, tbit_or_1, tbit_or_2, tbit_or_3): New.
873         (mulsi, muldi): Use xmpy not xma.
874         (cmpbi): New.
875         (movcc, movcc_internal): Remove.
876         (branch expanders): Use ia64_expand_compare.
877         (setcc expanders): Likewise.
878         (cmov insns): Use move_operand and ia64_move_ok.
879         (pred_rel_mutex): Use unspec not unspec_volatile.  Prevent the
880         scheduler from moving it past a use.
881         * config/ia64/build.hacks: Remove.
882
883 Mon 18-Sep-2000 19:21:35 BST  Neil Booth  <NeilB@earthling.net>
884
885         * cpphash.h (HASHSTEP): Take character rather than pointer
886         to character.
887         (_cpp_check_directive, _cpp_check_linemarker): Update prototypes.
888
889         * cpphash.c (cpp_loookup): Update for new HASHSTEP.
890
891         * cpplex.c (auto_expand_name_space, trigraph_replace,
892         backslash_start, handle_newline, parse_name, INIT_TOKEN_STR,
893         IMMED_TOKEN, PREV_TOKEN_TYPE, PUSH_TOKEN, REVISE_TOKEN,
894         BACKUP_TOKEN, BACKUP_TRIGRAPH, MIGHT_BE_DIRECTIVE,
895         KNOWN_DIRECTIVE): Delete.
896
897         (handle_newline, check_long_token, skip_escaped_newlines,
898         unterminated): New functions.
899         (ACCEPT_CHAR, SAVE_STATE, RESTORE_STATE): New macros.
900
901         (parse_identifier): Was parse_name, new implementation.
902         (skip_line_comment, skip_block_comment, skip_whitespace,
903         parse_number, parse_string, trigraph_ok, save_comment,
904         adjust_column, _cpp_get_line): New implementations.
905
906         (lex_token): New function.  Lexes a token at a time, looking
907         forwards.  Contains most of the guts of the old lex_line.
908         (lex_line): New implementation, using lex_token to obtain
909         individual tokens.
910         (cpp_scan_buffer): Use the token's line, not the list's line.
911
912         * cpplib.c (_cpp_check_directive, _cpp_check_linemarker):
913          New implementations.
914         (do_assert): Don't bother setting the answer's list's line.
915         (cpp_push_buffer): Initialise new pfile and read_ahead members
916         of struct cpp_buffer.
917
918         * cpplib.h (cppchar_t): New typedef.
919         (struct cpp_buffer): read_ahead, pfile and col_adjust are
920         new members.
921         (struct lexer_state): New structure that determines the state
922         and behaviour of the lexer.
923         (IN_DIRECTIVE, KNOWN_DIRECTIVE): New macros.
924         (struct cpp_reader): New member "state". Rename
925         multiline_string_line and multiline_string_column. Delete
926         col_adjust, in_lex_line members.
927         (CPP_BUF_COLUMN): Update.
928
929 2000-09-18  Richard Henderson  <rth@cygnus.com>
930
931         * combine.c (simplify_comparison): Shift a NOT out of a single
932         bit test.
933
934         * combine.c (if_then_else_cond): Canonicalize BImode true to
935         STORE_FLAG_VALUE.
936         * explow.c (trunc_int_for_mode): Likewise.
937
938         * combine.c (combine_simplify_rtx): Use gen_unary to distribute
939         the NOT for De Morgan's rule.
940         * simplify-rtx.c (simplify_unary_operation): Simplify a BImode NOT
941         of a comparison to the reverse comparison.
942
943         * combine.c (try_combine): Allow split to create a single insn.
944
945         * machmode.def: Add BImode.  Add a column for bitsize.
946         * machmode.h (DEF_MACHMODE): Adjust for extra column.
947         (GET_MODE_BITSIZE): Use it.
948         * rtl.c (DEF_MACHMODE): Adjust for extra column.
949         (mode_bitsize): New.
950         (mode_mask_array): Use bitsize.
951         * combine.c (combine_simplify_rtx): Require inner and outer
952         modes to match on nonzero_bits optimizations.
953
954 2000-09-18  Bernd Schmidt  <bernds@redhat.co.uk>
955
956         * reload1.c (forget_old_reloads_1): If a hard reg is stored, clear
957         its entry in spill_reg_store.
958         * config/sh/lib1funcs.ams (movstr_i4 functions): Always compile in.
959         * sh.c (reg_no_subreg_operand): New function.
960         * sh-protos.h (reg_no_subreg_operand): Declare it.
961         * sh.h (PREDICATE_CODES): Add it.
962         * sh.md (floatsisf2_i4, floatsidf2_i, extendsfdf2_i4): Use it for
963         input operand that needs to be in fpul.
964         (fix_truncsfsi2, fix_truncsfsi2_i4): Use register_operand for output.
965         * sh.c (find_barrier): Take into account that machine_dependent_reorg
966         might add new insns.
967
968 2000-09-18  Alexandre Oliva  <aoliva@redhat.com>
969
970         * config/sh/sh.c (sh_expand_prologue): Mark GOTaddr2picreg as
971         MAYBE_DEAD.
972         (sh_expand_epilogue): Take the PIC register into account when
973         computing the frame size.
974
975         * config/sh/sh.c (nonpic_symbol_mentioned_p): Check LABEL_REFs.
976         * config/sh/sh.md (sym_label2reg, symPLT_label2reg): Protect
977         LABEL_REFs with a PIC-safe unspec.
978
979 2000-09-18  Will Cohen  <wcohen@redhat.com>
980
981         * extend.texi (Zero Length): State that static initializers for
982         zero-length arrays are not allowed.
983
984         * c-typeck.c (process_init_element): Flag initializers for zero
985         length arrays.
986
987         * tree.c (integer_all_onesp): Ignore TREE_INT_CST_HIGH if prec is
988         exactly HOST_BITS_PERWIDE_INT.
989
990 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
991
992         * c-common.c (check_format_info): Properly save the argument
993         number and parameter for $ operand number formats in case width
994         and precision arguments are also used.  Allow printf width and
995         precision arguments to have operand numbers even if none was
996         specified for the main format, since this is OK for %*.*m.  Only
997         object to missing $ operand number if the format used requires an
998         argument.
999
1000 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
1001
1002         * c-common.c (format_char_info): Add 'W' flag to comment.
1003         (print_char_table, scan_char_table): Use it.
1004         (check_format_info): Use the 'W' flag to determine whether a
1005         format argument is written into.
1006
1007 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
1008
1009         * c-common.c (check_format_types): Reorganise and clean up,
1010         checking earlier for ERROR_MARKs and making cur_type into its
1011         TYPE_MAIN_VARIANT where convenient.
1012
1013 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
1014
1015         * gcc.c (cpp_options): Add specs for __STDC_HOSTED__.
1016
1017 2000-09-18  Bernd Schmidt  <bernds@redhat.co.uk>
1018
1019         * optabs.c (emit_libcall_block): Set CONST_CALL_P for the call.
1020
1021         * i386-protos.h (ix86_init_builtins, ix86_expand_builtin): Declare.
1022         * i386.c (struct builtin_description): New.
1023         (bdesc_comi, bdesc_2arg, bdesc_1arg): New arrays.
1024         (mmx_reg_operand): Declare MODE arg as unused.
1025         (ix86_expand_sse_comi, ix86_expand_sse_compare, safe_vector_operand,
1026         ix86_expand_unop1_builtin, ix86_expand_unop_builtin,
1027         ix86_expand_binop_builtin, ix86_expand_store_builtin,
1028         ix86_init_builtins, ix86_expand_builtin): New functions.
1029         * i386.h (ix86_builtins): New enumeration.
1030         (MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): New macros.
1031         * i386.md (attr length_immediate): 0 for mmx/sse types.
1032         (attr prefix_0f): 1 for mmx/sse types.
1033         (setcc_2): Remove "*" so we get gen_setcc_2.
1034         (emms): Account for changed register numbering.  Set "memory" attr
1035         to unknown.
1036         (sfence): Set "memory" attr to unknown.
1037
1038 2000-09-18  Andreas Jaeger  <aj@suse.de>
1039
1040         * configure.in: Define _GNU_SOURCE only when using the GNU C
1041         Library.
1042         * configure: Regenerated.
1043         * config.in: Regenerated.
1044
1045 2000-09-17  Mark Mitchell  <mark@codesourcery.com>
1046
1047         * cppinit.c (cpp_init): Don't use ANSI prototypes.
1048         * flow.c (flow_dump_loop): Likewise.
1049         (flow_loops_dump): Likewise.
1050
1051         * c-typeck.c (c_start_case): Fix typo.
1052
1053 2000-09-17  Joseph S. Myers  <jsm28@cam.ac.uk>
1054
1055         * c-decl.c (grokdeclarator): Don't give a warning about defaulting
1056         to int for plain complex which defaults to complex double.  Do
1057         warn about defaulting to complex double if pedantic.  Warn about
1058         complex integer types if pedantic.  Warn about complex types if
1059         pedantic and not in C99 mode.
1060         * c-typeck.c (build_unary_op): If pedantic, warn about use of ~
1061         for complex conjugation.
1062
1063 2000-09-17  Joseph S. Myers  <jsm28@cam.ac.uk>
1064
1065         * contrib.texi: Update my entry.
1066
1067 Sun Sep 17 18:48:32 2000  Denis Chertykov  <denisc@overta.ru>
1068
1069         * config/avr/avr.md (mcu_enhanced): New attribute.
1070         (mcu_mega): Likewise.
1071         (extendhisi2): Use mcu_enhanced.
1072         (zero_extendhisi2): Likewise.
1073         (call_insn): Use mcu_enhanced and mcu_mega.
1074         (call_value_insn): Likewise.
1075         (*sbrx_branch): Use mcu_mega.
1076         (*sbrx_and_branchsi): Likewise.
1077         (*sbrx_and_branchhi): Likewise.
1078         (*tablejump_lib): Likewise.
1079
1080 Sun Sep 17 10:46:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1081
1082         * alias.c (true_dependence): Allow non-unchanging read to conflict
1083         with unchanging write.
1084
1085         * expr.c (store_constructor_field): Accept ALIAS_SET arg.
1086         (store_constructor): Pass alias_set to it.
1087
1088         * c-decl.c (grokdeclarator): Reorder tests to avoid looking at
1089         TYPE_MAIN_VARIANT of ERROR_MARK.
1090         * c-lex.c (readescape): Avoid using printf syntax we don't recognize.
1091
1092         * simplify-rtx.c (simplify_unary_operation): Add cases
1093         FLOAT_EXTEND and FLOAT_TRUNCATE to ones that return 0.
1094
1095 2000-09-17  Bernd Schmidt  <bernds@redhat.co.uk>
1096
1097         * expr.h (emit_library_call, emit_library_call_value): Delete
1098         declarations.
1099         * rtl.h (enum libcall_type): New.
1100         (emit_library_call, emit_library_call_value): Change fn_type arg to
1101         be of type enum libcall_type.
1102         * calls.c: Likewise for the function definitions.  Several callers
1103         throughout changed to use the new enumeration appropriately.
1104         (emit_library_call_value_1): Likewise.  Put back code to make libcall
1105         blocks of equal form, but only use it for the two new higher
1106         enumeration values.
1107
1108 2000-09-16  Mark Mitchell  <mark@codesourcery.com>
1109
1110         Convert the C front-end to use function-at-a-time mode.
1111         * c-common.h: Include splay-tree.h.
1112         (C_DECLARED_LABEL_FLAG): New macro.
1113         (struct language_function): Add x_scope_stmt_stack and
1114         x_function_name_declared_p.
1115         (RECHAIN_STMTS): Move definition.
1116         (lang_statment_code_p): Likewise.
1117         (lang_expand_stmt): Likewise.
1118         (lang_expand_decl_stmt): New variable.
1119         (lang_expand_function_end): Likewise.
1120         (current_scope_stmt_stack): New function.
1121         (add_decl_stmt): Likewise.
1122         (add_scope_stmt): Likewise.
1123         (mark_stmt_tree): Likewise.
1124         (struct c_lang_decl): New structure.
1125         (DECL_SAVED_TREE): Define.
1126         (c_mark_lang_decl): New function.
1127         (c_expand_start_cond): Change prototype.
1128         (c_finish_then): New function.
1129         (c_finish_else): Likewise.
1130         (current_function_name_declared): Remove.
1131         (set_current_function_name_declared): Likewise.
1132         (mark_c_language_function): Declare.
1133         (case_compare): Likewise.
1134         (c_add_case_label): Likewise.
1135         (c_expand_expr): Likewise.
1136         (c_safe_from_p): Likewise.
1137         * c-common.c (lang_expand_function_end): New variable.
1138         (struct if_elt): Add if_stmt.
1139         (c_expand_start_cond): Add the if-statement to the statement-tree,
1140         rather than generating RTL.
1141         (c_finish_then): New function.
1142         (c_expand_start_else): Don't generate RTL.
1143         (c_finish_else): New function.
1144         (c_expand_expr_stmt): Don't generate RTL.
1145         (statement_code_p): Add SCOPE_STMT.
1146         (case_compare): New function.
1147         (c_add_case_label): Likewise.
1148         (mark_stmt_tree): Likewise.
1149         (c_mark_lang_decl): Likewise.
1150         (mark_c_language_function): Likewise.
1151         (c_expand_expr): Likewise.
1152         (c_safe_from_p): Likewise.
1153         * c-decl.c (c_stmt_tree): New variable
1154         (c_scope_stmt_stack): Likewise.
1155         (c_function_name_declared_p): Likewise.
1156         (lang_expand_expr_stmt): Remove.
1157         (poplevel): Don't call output_inline_function for nested
1158         functions.
1159         (pushdecl): Don't set DECL_CONTEXT for a local declaration of an
1160         `extern' function.
1161         (redeclaration_error_message): Change means of computing whether
1162         or not a function is nested.
1163         (lookup_label): Don't call label_rtx.
1164         (init_decl_processing): Add more GC roots.
1165         (start_decl): Add DECL_STMTs to the statement-tree, rather than
1166         calling rest_of_decl_compilation.
1167         (finish_decl): Don't call expand_decl.
1168         (store_parm_decls): Begin the statement-tree, but don't generate
1169         RTL.
1170         (finish_function): Tie off the statement-tree.  Call c_expand_body
1171         if appropriate.
1172         (c_expand_body): New function.
1173         (push_c_function_context): Save more information.
1174         (pop_c_function_contxt): Likewise.
1175         (copy_lang_decl): Now that we use DECL_LANG_SPECIFIC, copy it.
1176         (lang_mark_tree): Mark it.
1177         (current_stmt_tree): Adjust.
1178         (current_scope_stmt_stack): New function.
1179         (do_case): Remove.
1180         (set_current_name_declared): Likewise.
1181         (c_begin_compound_stmt): Define.
1182         (c_expand_decl_stmt): Likewise.
1183         * c-lang.c: Include rtl.h and expr.h.
1184         (lang_init): Set more language-specific hooks.
1185         * c-lex.c: Include expr.h.
1186         * c-parse.in: Changes throughout to add statements to the
1187         statement-tree, rather than generating RTL after every statement.
1188         * c-semantics.c (lang_expand_decl_stmt): Define.
1189         (add_decl_stmt): New function.
1190         (add_scope_stmt): Likewise.
1191         (finish_stmt_tree): Tweak.
1192         (genrtl_expr_stmt): Likewise.
1193         (genrtl_decl_stmt): Handle local labels, and call
1194         lang_expand_decl_stmt if required.
1195         (genrtl_for_stmt): Fix line-number handling.
1196         (genrtl_case_label): Handle cleanups.
1197         (genrtl_asm_stmt): Don't call combine_strings.
1198         (genrtl_compound_stmt): Simplify.
1199         (expand_stmt): Handle SCOPE_STMTs.
1200         * c-tree.h (struct lang_decl): New structure.
1201         (C_DECLARED_LABEL_FLAG): Remove.
1202         (c_begin_compound_stmt): Declare.
1203         (c_expand_decl_stmt): Likewise.
1204         (c_expand_start_case): Rename to c_start_case.
1205         (c_finish_case): New function.
1206         * c-typeck.c (start_init): Tweak setting of
1207         constructor_incremental.
1208         (c_expand_asm_operands): Tweak error-handling.  Add to the
1209         statement-tree.
1210         (c_expand_return): Add to the statement-tree.
1211         (c_expand_start_case): Rename to ...
1212         (c_start_case): ... this.
1213         (struct c_switch): New type.
1214         (switch_stack): New variable.
1215         (do_case): Simplify.
1216         (c_finish_case): New function.
1217         * dependence.c: Include expr.h.
1218         (enum dependence_type): Change spelling of enumerals.
1219         (check_node_dependence): Adjust.
1220         * expr.h (lang_safe_from_p): Declare.
1221         (safe_from_p): Likewise.
1222         * expr.c (lang_safe_from_p): New variable.
1223         (safe_from_p): Give it external linkage.  Use lang_safe_from_p.
1224         * stmt.c (expand_expr_stmt): Avoid clobberring of last_expr_type.
1225         * toplev.c (rest_of_decl_compilation): Robustify.
1226         * tree.c (contains_placeholder_p): Likewise.
1227         * Makefile.in: Update dependencies.
1228         * objc/objc-act.h: Adjust calculation of value for dummy_tree_code.
1229         * objc/objc-act.c: Include rtl.h, expr.h, and c-common.h.
1230         (objc_expand_function_end): New function.
1231         (finish_method_def): Use it.
1232         (init_objc): Initialize more language-specific hooks.
1233         * objc/Make-lang.in: Update dependencies.
1234
1235 2000-09-16  Geoffrey Keating  <geoffk@cygnus.com>
1236
1237         * configure.in: Define macros that affect features before
1238         testing for features.  Don't define _XOPEN_SOURCE.
1239         * configure: Regenerated.
1240         * config.in: Regenerated.
1241
1242 Sat Sep 16 19:42:50 EDT 2000  John Wehle  (john@feith.com)
1243
1244         * rtlanal.c (rtx_varies_p): Volatile asms vary.
1245         (rtx_unstable_p): Restructure code.  Volatile asms
1246         are unstable.
1247
1248 Sat Sep 16 14:35:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1249
1250         * function.h (no_debugging_symbols): New field.
1251         * integrate.c (save_for_inline): Renamed from save_for_inline_nocopy.
1252         Initialize no_debugging_symbols.
1253         (output_inline_function): Save and restore write_symbols and set from
1254         no_debugging_symbols.
1255         * toplev.c (rest_of_compilation): Call save_for_inline.
1256         * tree.h: Update comment.
1257
1258         * stor-layout.c (place_field): Don't do anything if field or
1259         its type are ERROR_MARK.
1260
1261 Sat Sep 16 19:14:00 2000  Laurynas Biveinis <lauras@softhome.net>
1262
1263         * cppfiles.c (purge_cache): Use munmap only if MMAP_THRESHOLD defined.
1264         (read_include_file): Ensure inc->mmaped is initialized.
1265
1266 2000-09-16  Richard Henderson  <rth@cygnus.com>
1267
1268         * cppiles.c (purge_cache): Use PTR not caddr_t.
1269
1270 2000-09-16  Hans-Peter Nilsson  <hp@axis.com>
1271
1272         * gcc.c: In description for %{<S}, say the option removed is -S.
1273         * invoke.texi (Spec Files): Ditto.
1274
1275 2000-09-16  Andreas Jaeger  <aj@suse.de>
1276
1277         * configure.in: Always define _GNU_SOURCE to make interfaces
1278         visible that were hidden by only defining _GNU_SOURCE.
1279         * configure: Regenerated.
1280
1281 Sat 16-Sep-2000 08:13:45 BST  Neil Booth  <NeilB@earthling.net>
1282
1283         * cpplex.c (push_macro_context): Set an argument's level after
1284         calling parse_args.  We could loop infinitely otherwise.
1285
1286 2000-09-15  Tom Tromey  <tromey@cygnus.com>
1287
1288         * configure, config.in: Rebuilt.
1289         * configure.in: Check for iconv.h.  Define _XOPEN_SOURCE.
1290
1291 2000-09-15  Greg McGary  <greg@mcgary.org>
1292
1293         * cppmacro.c (check_trad_stringification): Check token
1294         text pointers against limit before dereferencing.
1295
1296 2000-09-15  Joseph S. Myers  <jsm28@cam.ac.uk>
1297
1298         * c-common.c (format_wanted_type): New structure.
1299         (check_format_types): New function.
1300         (check_format_info): Pass all checking of types of format
1301         arguments, including width and precision arguments, to this new
1302         function.
1303
1304 2000-09-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1305
1306         * BUGS: Remove file.
1307
1308 2000-09-15  Jakub Jelinek  <jakub@redhat.com>
1309
1310         * config/alpha/alpha.c (override_options): ev6 cache latencies
1311         from Richard Henderson.  Don't allow -mmemory-latency=L0.
1312
1313         * config/alpha/alpha.h (TARGET_CPU_EV5, TARGET_CPU_EV6): Define.
1314         (TARGET_OPTIONS): Add tune=.
1315         (alpha_tune_string): Declare.
1316         * config/alpha/alpha.c (override_options): Add cpu_table.
1317         Use alpha_cpu_string first to set both alpha_cpu and target_flags
1318         and then alpha_tune_string to set alpha_cpu only.
1319         Replace tests for PROCESSOR_EV* with TARGET_CPU_EV* tests.
1320         * config/alpha/elf.h (ASM_FILE_START): Likewise.
1321         * config/alpha/osf.h (ASM_FILE_START): Likewise.
1322         * config/alpha/openbsd.h (ASM_FILE_START): Likewise.
1323
1324 Fri Sep 15 19:45:55 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1325
1326         * i386-protos.h (no_comparison_operator, uno_comparison_operator):
1327         Remove.
1328         (ix86_comparison_operator, ix86_cc_mode): Declare
1329         * i386.h (CCGC, CCGCO): New modes.
1330         (SELECT_CC_MODE): Move offline to ....
1331         * i386.c (ix86_cc_mode): .... here; use new modes.
1332         (ix86_comparison_operator): New.
1333         (fcmov_comparison_operator): Ensure proper mode.
1334         (put_condition_mode): More sanity checking.
1335         (ix86_match_ccmode): Handle new modes.
1336         (ix86_expand_fp_compare): GEU requires CCmode.
1337         (ix86_expand_strlensi_unroll_1): Use emit_cmp_and_jump_insn instead of
1338         doing it by hand.
1339         * i386.md (cmp?i_ccz_1): Remove
1340         (cmp?i_ccno_1): Use ix86_match_ccmode.
1341         (cmp?i_minus_1): New.
1342         (cmpsi_1): New expander.
1343         (cmpqi_ext_1): Use match_ccmode
1344         (cmpqi_ext_3): New expander.
1345         (cmpqi_ext_3_insn): Rename from cmpqi_ext_3.
1346         (cmpqi_ext_4): Use match_ccmode.
1347         (add?i_?): Use match_ccmode.
1348         (add?i_6): New.
1349         (test?i_ccz_1): Remove
1350         (test?i_1): New.
1351         (testsi_ccno_1, testqi_ccz_1, testqi_ext_ccno_0): New expander.
1352         (testqi_ext_0): Use ix86_match_ccmode.
1353         (*xorqi_cc_ext_1): Use ix86_match_ccmode.
1354         (xorqi_cc_ext_1): New expander.
1355         (shift patterns): Use CCGOCmode for all shifts except for sar.
1356         (setcc_?, jcc_?, miv?icc_nic): Use ix86_comparison_operator.
1357         (setcc_3, jcc_3, miv?icc_c): Remove.
1358
1359 2000-09-15  Will Cohen  <wcohen@redhat.com>
1360
1361         * dwarf2out.c (add_const_value_attribute): Changed array into a
1362         xmalloced object, so it exists after function exit.
1363         (free_AT): Added case for dw_val_class_float to free allocated
1364         memory.
1365
1366 2000-09-15  Kazu Hirata  <kazu@hxi.com>
1367
1368         * config/i386/i386.md: Fix a comment typo.
1369         * gcc.c: Fix formatting.
1370
1371 2000-09-15  Bernd Schmidt  <bernds@redhat.co.uk>
1372
1373         * optabs.c (emit_libcall_block): If target is a user variable,
1374         copy to a temporary first.
1375         * expr.c (convert_move): When generating a libcall, make a libcall
1376         block.
1377         * calls.c (emit_library_call_value_1): Don't create a libcall
1378         sequence here; our caller will in most cases do it.
1379
1380         * sh.h (SECONDARY_INPUT_RELOAD_CLASS): Handle moving T, MACL or
1381         MACH into FPUL.
1382         (SECONDARY_OUTPUT_RELOAD_CLASS): Similar case.
1383         * sh.md (reload_outsf): Generate recognizable patterns for
1384         TARGET_SH3E.
1385         (floatsisf2, floatsisf2_ie, floatsisf2_i4, fix_truncsfsi2,
1386         fix_truncsfsi2_i4, fixsfsi, floatsidf2, floatsidf2_i, fix_truncdfsi2,
1387         fix_truncdfsi2_i, extendsfdf2, extendsfdf2_i4, truncdfsf2,
1388         truncdfsf2_i4): Change not to use explicit references to fpul.
1389         (floatsisf2_ie): Remove USE of fpscr.
1390         (floatsisf2): Change default expansion to match this.
1391         (fix_truncsfsi2_i4_2, fix_truncdfsi2_i4 & splitters): Comment out
1392         unused patterns.
1393
1394 2000-09-15  Richard Henderson  <rth@cygnus.com>
1395
1396         * expmed.c (store_bit_field): Consider naturally aligned
1397         memory for direct reference.
1398
1399 2000-09-15  Richard Henderson  <rth@cygnus.com>
1400
1401         * config/alpha/alpha.c (alpha_expand_unaligned_load): Force all
1402         AND addresses into alias set 0.
1403         (alpha_expand_unaligned_store): Likewise.
1404         (alpha_expand_unaligned_load_words): Likewise.
1405         (alpha_expand_unaligned_store_words): Likewise.
1406
1407 2000-09-15  Bernd Schmidt  <bernds@redhat.co.uk>
1408
1409         * config/sh/sh.h (CPP_SPEC): For -m4-nofpu, define __SH4_NOFPU__.
1410         * config/sh/lib1funcs.asm (movstr_i4): Also compile if __SH4_NOFPU__
1411         is defined.
1412         * config/mips/mips.c (mips_va_arg): Args passed by reference have a
1413         rsize of UNITS_PER_WORD.
1414
1415 Fri 15-Sep-2000 06:49:07 BST  Neil Booth  <NeilB@earthling.net>
1416
1417         * cpplex.c (ON_REST_ARG): Correct the test.
1418         (maybe_paste_with_next): Duplicate a token that fail pasting,
1419         and clear its PASTE_LEFT flag, so that nested pasting attempts
1420         do not occur.
1421
1422 2000-09-14  Richard Henderson  <rth@cygnus.com>
1423
1424         * calls.c (precompute_register_parameters): Use COSTS_N_INSNS, not 2.
1425         * cse.c (rtx_cost): Likewise.
1426         * optabls.c (expand_binop): Likewise.
1427         (expand_twoval_binop, prepare_cmp_insn): Likewise.
1428         * regclass.c (copy_cost): Likewise.
1429         * reload1.c (reload_cse_move2add): Likewise.
1430
1431 2000-09-14  Joseph S. Myers  <jsm28@cam.ac.uk>
1432
1433         * c-parse.in (reswords): Add _Complex.
1434
1435 2000-09-14  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1436
1437         * gcc.1: Delete documentation for -undef preprocessor option.
1438
1439 2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
1440
1441         * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
1442         STARTFILE_SPEC, ENDFILE_SPEC): Remove define.
1443         * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
1444         Remove undefine before config/elfos.h.
1445         * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Comment out.
1446
1447 2000-09-14  Kazu Hirata  <kazu@hxi.com>
1448
1449         * invoke.texi (H8/300 Options): Add -ms2600.
1450         * config/h8300.c (h8300_init_once): Output an error when -ms2600
1451         is used without -ms.
1452         * config/h8300.h (TARGET_MAC): New.
1453         (TARGET_SWITCHES): Add -ms2600 and -mno-s2600.
1454         (CONDITIONA_REGISTER_USAGE): Disable the mac register on any
1455         machine other than H8/S2600.
1456         * config/h8300.md: Accept mac instructions on the H8/S2600 instead
1457         of the H8/S2000.
1458
1459 2000-09-14  Alexandre Oliva  <aoliva@redhat.com>, Bernd Schmidt  <bernds@redhat.co.uk>
1460
1461         * reload.c (find_reloads_address_1): Generate reloads for auto_inc
1462         pseudos that refer to the original pseudos, not only to their
1463         equivalent memory locations.
1464
1465 Thu Sep 14 12:10:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1466
1467         * expr.c (expand_expr, case COMPONENT_EXPR): Copy memory attributes
1468         when making new MEM.
1469
1470         * Makefile.in (LN): Remove duplicate definition.
1471
1472 2000-09-12  Bernd Schmidt  <bernds@redhat.co.uk>
1473
1474         From Joern Rennecke:
1475         * local-alloc.c (update_equiv_regs): If there is no REG_EQUAL note
1476         on an insn and function_invariant_p returns nonzero for the source,
1477         add a REG_EQUAL note.
1478
1479 Thu Sep 14 00:51:57 EDT 2000  John Wehle  (john@feith.com)
1480
1481         * alias.c (memrefs_conflict_p): An ADDRESSOF doesn't
1482         conflict with frame_pointer_rtx.
1483
1484 2000-09-13  Kazu Hirata  <kazu@hxi.com>
1485
1486         * loop.c: Fix formatting.
1487         * loop.h: Likewise.
1488
1489 2000-09-13  Richard Henderson  <rth@cygnus.com>
1490
1491         * config/ia64/ia64.md (divsf3): New.
1492         (divsf3_internal_lat, divsf3_internal_thr): New.
1493         (divdf3, divdf3_internal_lat, divdf3_internal_thr): New.
1494         (divtf3, divtf3_internal_lat, divtf3_internal_thr): New.
1495         (adddf3_trunc, subdf3_trunc, muldf3_trunc): New.
1496         (madddf4_trunc, msubdf4_trunc, nmuldf3_trunc): New.
1497         (nmadddf4_alts, nmadddf4_trunc): New.
1498         (addtf3_truncsf, addtf3_truncdf, subtf3_truncsf): New.
1499         (subtf3_truncdf, multf3_truncsf, multf3_truncdf): New.
1500         (multf3_truncsf_alts, multf3_truncdf_alts): New.
1501         (maddtf4_truncsf, maddtf4_truncdf, maddtf4_alts_truncdf): New.
1502         (msubtf4_truncsf, msubtf4_truncdf, nmultf3_truncsf): New.
1503         (nmultf3_truncdf, nmaddtf4_truncsf, nmaddtf4_truncdf): New.
1504         (nmaddtf4_truncdf_alts): New.
1505         (recip_approx): Don't predicate.
1506
1507 2000-09-13  Richard Henderson  <rth@cygnus.com>
1508
1509         * config/ia64/lib1funcs.asm (__divsf3): Protect fnorm.s with p6.
1510
1511 2000-09-13  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1512
1513         * flags.h (flag_dump_rtl_in_asm): Declare.
1514         * toplev.c (flag_dump_rtl_in_asm): Define.
1515         (decode_d_option): Set flag_dump_rtl_in_asm and flag_print_asm_name
1516         if -dP is specified.
1517         * rtl.h (print_rtx_head): Declare.
1518         * print-rtl.c (print_rtx_head): Define.
1519         (print_rtx): Print the string pointed to by print_rtx_head
1520         at beginning of each dump line.
1521         (print_rtl): Likewise.
1522         (print_rtl_single): Likewise.
1523         * final.c (final_scan_insn): Dump the insn in the assembly
1524         file for debugging.
1525         * gcc.1: Document -dP option.
1526         * invoke.texi (Debugging Options): Likewise.
1527
1528 2000-09-13  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1529
1530         * md.texi (Machine Constraints): Document the 68HC11 constraints.
1531         * install.texi (Configurations): Document the 68HC11&68HC12 port.
1532         * invoke.texi (Option Summary, M68hc1x Options): Document the options.
1533
1534 Tue Sep 12 13:51:13 2000  Denis Chertykov  <denisc@overta.ru>
1535
1536         * config/avr/avr.h (ASSEMBLER_DIALECT): New macro declared.
1537         * config/avr/avr.md (*movstrqi_insn): Cleanup output template.
1538         (*clrstrqi): Likewise.
1539         (xorhi3,xorsi3,absqi2): Likewise.
1540         (one_cmplhi2,one_cmplsi2): Likewise.
1541         (addsi3): Two stupid constraint alternatives removed.
1542         (extendhisi2): Use `movw' for enhanced avr cores.
1543         (zero_extendhisi2): Likewise.
1544
1545 Wed Sep 13 02:31:23 EDT 2000  John Wehle  (john@feith.com)
1546
1547         * alias.c (find_base_term): Use frame_pointer_rtx
1548         when handling an ADDRESSOF.
1549
1550         * cse.c (canon_hash): Handle USE of BLKmode memory.
1551         (cse_insn): Outgoing arguments for a libcall don't
1552         affect any recorded expressions.
1553
1554 2000-09-12  Tom Tromey  <tromey@cygnus.com>
1555
1556         * configure, config.in: Rebuilt.
1557         * configure.in: Check for iconv, nl_langinfo, langinfo.h.
1558
1559 2000-09-12  Jakub Jelinek  <jakub@redhat.com>
1560
1561         * c-lex.c (lex_string): Use charwidth to compute bytemask.
1562         * expr.c (expand_expr): Don't optimize constant array references
1563         initialized with wide string constants.
1564
1565 2000-09-13  Michael Hayes  <mhayes@cygnus.com>
1566
1567         * loop.c (note_set_pseudo_multiple_uses): Correct.
1568
1569 2000-09-12  Jim Wilson  <wilson@cygnus.com>
1570
1571         * ifcvt.c (noce_process_if_block): If A and B are the same, and no
1572         else block, and X has side-effects, then fail.
1573
1574 2000-09-12  Greg McGary  <greg@mcgary.org>
1575
1576         * config/mips/mips-protos.h
1577         (trap_cmp_op, mips_gen_conditional_trap): New func decls.
1578         * config/mips/mips.h (ISA_HAS_COND_TRAP): New macro.
1579         (PREDICATE_CODES): Add "trap_cmp_op".
1580         * config/mips/mips.c
1581         (trap_cmp_op, mips_gen_conditional_trap): New functions.
1582         * config/mips/mips.md (trap, conditional_trap): New patterns.
1583
1584 2000-09-12  Bernd Schmidt  <bernds@redhat.co.uk>
1585
1586         * flow.c (try_pre_increment_1): Don't do anything to sets of the stack
1587         pointer.
1588
1589 2000-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1590
1591         * builtins.c (built_in_decls): New array.
1592         (expand_builtin_fputs): New function.
1593         (expand_builtin): Handle BUILT_IN_FPUTC and BUILT_IN_FPUTS.
1594
1595         * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTS): New members.
1596
1597         * c-common.c (c_common_nodes_and_builtins): Handle fputc/fputs.
1598
1599         * tree.h (built_in_decls): New array.
1600
1601 Tue Sep 12 08:53:57 2000  Jeffrey A Law  (law@cygnus.com)
1602
1603         * convex.md: Use "+" instead of "=" for outputs wrapped in a
1604         STRICT_LOW_PART.
1605         * i370.md, i386.md, ns32k.md, sh.md, vax.md: Likewise.
1606
1607 2000-09-12  Kazu Hirata  <kazu@hxi.com>
1608
1609         * haifa-sched.c: Fix formatting.
1610
1611         * genattrtab.c: Fix formatting.
1612
1613         * unroll.c: Fix formatting.
1614
1615 2000-09-12  Bruce Korb  <bkorb@gnu.org>
1616
1617         * fixinc/fixfixes.c: make a type for the fix procedure & use it,
1618         remove obsolete code
1619         * fixinc/fixincl.c: Use PARAMS, not _P_.  Add no-op default to switch.
1620         * fixinc/fixincl.tpl: make non-exported arrays static scope
1621         * fixinc/fixincl.x: regenerate
1622         * fixinc/fixlib.h: Use PARAMS, not _P_
1623         * fixinc/fixtests.c: make a type for the test proc & use it
1624         * fixinc/server.h: Use PARAMS, not _P_
1625
1626 2000-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1627
1628         * c-typeck.c (process_init_element): Avoid union init warnings on
1629         floating point zero.  Don't crash on unions containing structs.
1630
1631 2000-09-12  Alexandre Oliva  <aoliva@redhat.com>
1632
1633         * config/sh/sh.h (PREDICATE_CODES): Add CONST_DOUBLE to
1634         general_movsrc_operand, and remove CONST_INT from
1635         general_movdst_operand.
1636
1637 2000-09-12  Bernd Schmidt  <bernds@redhat.co.uk>
1638
1639         * cse.c (approx_reg_cost): If SMALL_REGISTER_CLASSES, return INT_MAX
1640         if a reference to non-fixed hardreg is seen.  Otherwise, count hard
1641         regs with a higher cost.
1642         (preferrable): Deal with cases where either cost or regcost is
1643         MAX_COST.
1644         (cse_insn): Use MAX_COST rather than 10000.  Always initialize
1645         regcost values.
1646         (COSTS_N_INSNS): Move definition...
1647         * rtl.h: ...here.
1648         (MAX_COST): New macro.
1649         * loop.c (init_loop): Use COSTS_N_INSNS macro instead of hardcoded
1650         constant.
1651
1652 2000-09-11  Mark Mitchell  <mark@codesourcery.com>
1653
1654         * c-common.h (genrtl_clear_out_block): Remove.
1655         * c-semantics.c (genrtl_clear_out_block): Remove.
1656         (genrtl_while_stmt): Don't call it.
1657         (genrtl_for_stmt): Likewise.
1658
1659 2000-09-11  Zack Weinberg  <zack@wolery.cumb.org>
1660
1661         * cppfiles.c: Move all default-#defines to top of file.
1662         (open_include_file): Replace by lookup_include_file.
1663         (read_with_read, read_file): Merged into read_include_file.
1664         (stack_include_file, purge_cache): New functions.
1665         (close_cached_fd): Delete.
1666         (lookup_include_file, read_include_file, _cpp_pop_file_buffer):
1667         Cache the in-memory buffer, not the file descriptor.
1668
1669         * cpphash.h (struct include_file): Add buffer, st, refcnt,
1670         mapped fields.
1671         (xcnew): New utility macro.
1672         (DO_NOT_REREAD, NEVER_REREAD): Move up by struct include_file.
1673         * cpplib.h (struct cpp_buffer): Remove mapped field.
1674
1675 2000-09-11  Zack Weinberg  <zack@wolery.cumb.org>
1676
1677         * cpplex.c (parse_string): Accept backslash space newline as a
1678         line continuation.
1679         (lex_line): Likewise.
1680         (_cpp_get_token): Remove hard limit on macro nesting.
1681
1682 2000-09-12  Philipp Thomas  <pthomas@suse.de>
1683
1684         * aclocal.m4 (AM_WITH_NLS): Don't force use of included gettext.
1685         * configure: Rebuilt.
1686
1687 2000-09-13  Michael Hayes  <mhayes@cygnus.com>
1688
1689         * flow.c (split_block): Fix update of registers live at
1690         end of split block.
1691
1692 Tue Sep 12 01:51:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1693
1694         * i386.md (add?i_3, add?i_5): New.
1695         (add?i_4): Rename from add?i_3;  Fix compare pattern.
1696         (sub?i_3, xor?i_3, ior?i_3): New.
1697
1698         * genrecog.c (write_tree): Output code to clear insn_extract cache.
1699         * genattrtab.c (write_attr_case): Gen call to extract_insn_cache
1700         instead of extract_insn and extract_constrain_insn_cache instead of
1701         extract_insn and constrain_operands.
1702         * recog.c (extract_insn_cached, extract_constrain_insn_cached):
1703         New functions.
1704         (extract_insn): Clear which_alternative.
1705         (constrain_operands): Set which_alternative to -1 when failed.
1706         * recog.h (extract_constrain_insn_cached, extract_insn_cached):
1707         Declare.
1708
1709 2000-09-11  Matthew Hiller  <hiller@redhat.com>
1710
1711         * config/h8300/h8300.md (movstrictqi): Changed constraint modifier
1712         on operand 0 to '+'.
1713         (movstricthi): Likewise.
1714
1715 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
1716
1717         * loop.h (LOOP_IVS): New macro.
1718         (REG_IV_TYPE, REG_IV_INFO): Add ivs argument.
1719         (struct loop_ivs): New.
1720         (struct loop_info): Add ivs field.
1721         (reg_iv_type, reg_iv_info): Delete prototype.
1722         (reg_biv_class, loop_iv_list): Likewise.
1723         * loop.c (record_biv, find_life_end): Pass loop argument.
1724         (reg_iv_type): Remove global array and use
1725         field in loop_regs structure within loop_ivs structure.
1726         (reg_iv_info, reg_biv_class, loop_iv_list): Likewise.
1727         (first_increment_giv, last_increment_giv): Use entry in
1728         loop_ivs structure.
1729         (record_initial): Pass ivs pointer.
1730         * unroll.c (copy_loop_body, remap_split_bivs): Add loop argument.
1731
1732 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
1733
1734         * loop.h (LOOP_REGS): New macro.
1735         (struct loop_regs): New.
1736         (struct loop_info): Add regs field.
1737         * loop.c (set_in_loop): Remove global array and store
1738         in loop_regs structure as part of loop_info structure.
1739         (n_times_set, may_not_optimize): Likewise.
1740         (reg_single_usage, moved_once): Likewise.
1741         (count_one_set): Add regs argument.
1742         (combine_movables, rtx_equal_for_loop_p, combine_givs): Likewise.
1743         (set_pseudo_multiple_uses): Pass regs pointer.
1744
1745 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
1746
1747         * unroll.c (iteration_info): Subsume into loop_iterations.
1748         * loop.h (loop_info): New field iv.
1749
1750 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
1751
1752         * basic-block.h (LOOP_TREE, LOOP_PRE_HEADER, LOOP_EDGES): New.
1753         (LOOP_EXITS_DOMS, LOOP_ALL): Likewise.
1754         (flow_loops_update): New prototype.
1755         (flow_loops_find): Add flags to prototype.
1756         (struct loop): Add `pre_header_root' and `pre_header_trace' fields.
1757         * flow.c (flow_loop_pre_header_scan): New.
1758         (flow_loop_dump): Dump pre-header root and trace and exit dominators.
1759         (flow_loop_free): Free pre-header root and trace and exit dominators.
1760         (flow_loops_find): New argument flags.
1761         (flow_loops_update): New function.
1762         * toplev.c (rest_of_compilation): Add flag argument to flow_loops_find.
1763
1764 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
1765
1766         * basic-block.h (split_block, update_bb_for_insn): New prototypes.
1767         * flow.c (split_block, update_bb_for_insn): New functions.
1768
1769 2000-09-11  Richard Henderson  <rth@cygnus.com>
1770
1771         * cse.c (fold_rtx): Honor NO_FUNCTION_CSE.
1772
1773 2000-09-11  Richard Henderson  <rth@cygnus.com>
1774
1775         * config/ia64/ia64-protos.h (fr_nonimmediate_operand): Declare.
1776         * config/ia64/ia64.c (fr_nonimmediate_operand): New.
1777         (ia64_override_options): Prevent optimizing division for both
1778         latency and throughput.
1779         (rtx_needs_barrier): Handle frcpa.
1780         * config/ia64/ia64.h (MASK_INLINE_DIV_LAT): New.
1781         (MASK_INLINE_DIV_THR, TARGET_INLINE_DIV_LAT): New.
1782         (TARGET_INLINE_DIV_THR, TARGET_INLINE_DIV): New.
1783         (TARGET_SWITCHES): Add -minline-divide-min-latency and
1784         -minline-divide-max-throughput.
1785         (PREDICATE_CODES): Update.
1786         * config/ia64/ia64.md (extendsidi2): Remove * from f case.
1787         (zero_extendsidi2): Likewise.  Fix typo in f case insn.
1788         (extendsfdf2): Add cases for gr<->fr and fr<->mem.
1789         (extendsftf2): Likewise.
1790         (extenddftf2): Likewise.
1791         (fix_trunctfdi2_alts): New.
1792         (fixuns_trunctfdi2_alts): New.
1793         (madd*4): Rename from madd*3.
1794         (divsi3, modsi3, udivsi3, umodsi3): New.
1795         (divsi3_internal): New.
1796         (divdi3, moddi3, udivdi3, umoddi3): New.
1797         (divdi3_internal_lat, divdi3_internal_thr): New.
1798         (multf3_alts, maddtf4_alts, nmaddtf4_alts): New.
1799         (recip_approx): New.
1800
1801 2000-09-11  Alexandre Oliva  <aoliva@redhat.com>
1802
1803         * print-rtl.c (debug_call_placeholder_verbose): New variable.
1804         (print_rtx) [CALL_PLACEHOLDER]: Dump all call sequences if it is
1805         set.
1806         * integrate.c (copy_rtx_and_substitute): Don't share
1807         LEAF_REG_REMAPpable registers with the inlined function.  Don't
1808         share the function value with calling sequences.
1809
1810 2000-09-11  Jakub Jelinek  <jakub@redhat.com>
1811
1812         * c-decl.c (do_case): Fix a typo.
1813
1814         * combine.c (simplify_if_then_else): Don't convert a == b ? b : a
1815         to a if the comparison is floating mode and not -ffast-math.
1816         * simplify-rtx.c (simplify_ternary_operation): Likewise.
1817
1818 Mon Sep 11 20:07:48 2000  J"orn Rennecke <amylaar@redhat.co.uk>
1819
1820         * sh.h (INITIALIZE_TRAMPOLINE): Remove stray call to
1821         gen_ic_invalidate_line.
1822
1823 2000-09-11  Philip Blundell  <pb@futuretv.com>
1824
1825         * config/arm/elf.h (SUBTARGET_CPP_SPEC): Don't define `arm_elf'.
1826
1827 Mon Sep 11 10:48:41 2000  Ulrich Drepper <drepper@redhat.com>
1828
1829         * install.texi (LANGUAGES): Update to include new languages.
1830         * INSTALL: Rebuilt.
1831
1832 2000-09-11  DJ Delorie  <dj@redhat.com>
1833
1834         * gcc.c (main): Don't warn about unused -B prefixes
1835         (unused_prefix_warnings): remove
1836
1837 2000-09-11  Kazu Hirata  <kazu@hxi.com>
1838
1839         * final.c: Fix formatting.
1840
1841         * integrate.c: Fix formatting.
1842
1843 2000-09-11  Geoff Keating  <geoffk@cygnus.com>
1844
1845         * alias.c (memrefs_conflict_p): An ADDRESSOF does conflict, sorry.
1846
1847 2000-09-11  Bernd Schmidt  <bernds@redhat.co.uk>
1848
1849         * reload.c (regno_clobbered_p): Fix thinko in previous change.
1850
1851 2000-09-10  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1852
1853         * gcc.1: Document 68hc11 specific options.
1854
1855 2000-09-10  Geoff Keating  <geoffk@cygnus.com>
1856
1857         * config/rs6000/sysv4.h (MASK_LONG_DOUBLE_128): Define.
1858         (TARGET_LONG_DOUBLE_128): Define.
1859         (SUBTARGET_SWITCHES): Add -mlong-double-64 and -mlong-double-128.
1860         (LONG_DOUBLE_TYPE_SIZE): Redefine.
1861         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
1862         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on definition
1863         of __LONG_DOUBLE_128__.
1864         (CPP_SYSV_SPEC): Define __LONG_DOUBLE_128__ if -mlong-double-128
1865         passed.
1866         (CPP_LONGDOUBLE_DEFAULT_SPEC): Define.
1867         (CPP_SYSV_DEFAULT_SPEC): Define.
1868         (SUBTARGET_EXTRA_SPECS): Add cpp_longdouble_default.
1869         (INIT_TARGET_OPTABS): Define.
1870
1871         * config/rs6000/aix.h (RS6000_ITRUNC): Moved from rs6000.h.
1872         (RS6000_UITRUNC): Likewise.
1873         (INIT_TARGET_OPTABS): New macro.
1874         * config/rs6000/rs6000.c (rs6000_trunc_used): Delete.
1875         (trunc_defined): Delete.
1876         (output_prolog): Don't output .extern definitions for fp->int
1877         conversion routines, ASM_OUTPUT_EXTERNAL_LIBCALL will do it.
1878         * config/rs6000/rs6000.h (rs6000_trunc_used): Delete.
1879         (trunc_defined): Delete.
1880         (RS6000_ITRUNC): Moved to aix.h.
1881         (RS6000_UITRUNC): Likewise.
1882         * config/rs6000/rs6000.md (fix_truncdfsi2): Fail if it would
1883         only emit a libcall.
1884         (fixuns_truncdfsi2): Delete.
1885         (trunc_call): Delete.
1886         (trunc_call_rtl): Delete.
1887
1888 2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
1889
1890         * varasm.c (make_decl_rtl): Restore leading star on
1891         DECL_ASSEMBLER_NAME set for decls with an asmspec.
1892
1893 2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
1894
1895         * c-pragma.c (handle_pragma_pack): Correct parsing logic so it
1896         won't give a spurious error for '#pragma pack()'.  Simplify
1897         control flow for readability.  'reset' action is not necessary.
1898
1899 2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
1900
1901         * defaults.h: Provide default definitions for: CHAR_TYPE_SIZE,
1902         SHORT_TYPE_SIZE, INT_TYPE_SIZE, LONG_TYPE_SIZE,
1903         LONG_LONG_TYPE_SIZE, WCHAR_TYPE_SIZE, FLOAT_TYPE_SIZE,
1904         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE, and WCHAR_UNSIGNED.
1905
1906         * cppexp.c, dwarfout.c, dwarf2out.c, emit-rtl.c, final.c, optabs.c,
1907         profile.c, sdbout.c, tradcif.y, tree.c:
1908         Include defaults.h if not already included.
1909         Don't define the above macros.
1910
1911         * Makefile.in: Update dependencies.
1912
1913 2000-09-10  Mark Mitchell  <mark@codesourcery.com>
1914
1915         * c-common.h (add_stmt): Change prototype.
1916         (RECHAIN_STMTS): New macro.
1917         (CASE_LABEL_DECL): Likewise.
1918         (genrtl_case_label): Change prototype.
1919         (c_expand_start_case): Remove prototype.
1920         (build_case_label): Change prototype.
1921         (decl_constant_value): Declare.
1922         * c-common.c (check_case_value): Handle C++'s extensions to C
1923         semantics.
1924         * c-commnon.def (CASE_LABEL): Add room for the CASE_LABEL_DECL
1925         field.
1926         * c-parse.in (stmt): Adjust handling of return statements and case
1927         laels.
1928         * c-semantics.c (add_stmt): Return the new statement.
1929         (genrtl_return_stmt): Take the RETURN_STMT as input, not the
1930         returned expression.  Directly generate RTL, rather than calling
1931         c_expand_return.
1932         (genrtl_switch_stmt): Don't call c_expand_start_case.
1933         (build_case_label): Take the LABEL_DECL as input, too.
1934         (genrtl_case_label): Just call add_case_node.
1935         (expand_stmt): Adjust calls to genrtl_return_stmt and
1936         genrtl_case_label.
1937         * c-tree.h (c_expand_start_case): Declare.
1938         * c-typeck.c (decl_constant_value): Give it external linkage.
1939         (c_expand_return): Don't call expand_return or expand_null_return;
1940         use genrtl_return_stmt instead.
1941         * stmt.c (struct nesting): Remove num_ranges field.
1942         (add_case_node): Give it external linkage.
1943         (expand_start_case): Don't set num_ranges.
1944         (expand_start_case_dummy): Don't clear it.
1945         (pushcase): Rely on add_case_node to handle `default' labels.
1946         (add_case_node): Handle `default' labels.
1947         * tree.c (tree_int_cst_compare): New function.
1948         * tree.h (tree_int_cst_compare): Declare.
1949         (add_case_node): Likewise.
1950
1951 2000-09-10  Richard Henderson  <rth@cygnus.com>
1952
1953         * c-parse.in: Revert last change.
1954         (init_reswords): Do not enter disabled keywords into the ridpointers
1955         table, modulo objc weirdness.
1956         (_yylex): Return the canonical spelling for a keyword.
1957
1958 2000-09-10  Philip Blundell  <philb@gnu.org>
1959
1960         * config/arm/arm.h (CPP_ISA_SPEC): Don't define `arm' or `thumb'.
1961         * config/arm/linux-elf.h (CPP_PREDEFINES): Don't define `__arm__'.
1962
1963 Sun Sep 10 14:30:28 EDT 2000  John Wehle  (john@feith.com)
1964
1965         * alias.c (find_base_term): Handle ADDRESSOF.
1966         (memrefs_conflict_p): An ADDRESSOF doesn't conflict.
1967
1968 2000-09-10  Denis Chertykov  <denisc@overta.ru>
1969
1970         * genoutput.c (output_insn_data): Translate <NEWLINE> to \n\ while
1971         outputting templates with many lines.
1972
1973 2000-09-10  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1974
1975         * libgcc2.h: Use LONG_LONG_TYPE_SIZE instead of MIN_UNITS_PER_WORD
1976         to decide whether 64-bit support must be generated.
1977
1978 2000-09-10  Richard Henderson  <rth@cygnus.com>
1979
1980         * c-parse.in (asm patterns): Fix volatile check.
1981
1982 2000-09-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1983
1984         * cppmacro.c (check_trad_stringification): New function.
1985         (save_expansion): If -Wtraditional, warn about stringification of
1986         macro arguments.
1987
1988 2000-09-11  Michael Hayes  <mhayes@cygnus.com>
1989
1990         * loop.h (struct loop_mem_info): Move from loop.c
1991         (struct loop_info): Add fields store_mems, mems, mems_idx,
1992         mems_allocated, unknown_address_altered,
1993         unknown_constant_address_altered, num_mem_sets, and
1994         first_loop_store_insn.
1995
1996         * loop.c (loop_store_mems): Replace with field in loop_info struct.
1997         (loop_mems, loop_mems_idx, loop_mems_allocated): Likewise.
1998         (unknown_address_altered, unknown_constant_address_altered): Likewise.
1999         (num_mem_sets): Likewise.
2000         (replace_loop_mems, replace_loop_regs): New.
2001         (struct loop_replace_args): New.
2002         (load_mems): Use replace_loop_mems.
2003         (try_copy_prop): Use replace_loop_regs.
2004         (replace_loop_reg, replace_loop_mem): Use loop_replace_args structure.
2005
2006 2000-09-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2007
2008         * configure.in: Recognize m6811-elf and m6812-elf.
2009         * configure: Regenerate.
2010
2011 2000-09-09  Geoff Keating  <geoffk@cygnus.com>
2012
2013         * recog.c (validate_replace_rtx_1): Correct MODE parameter in call
2014         to operand_subword.
2015
2016 2000-09-10  Michael Hayes  <mhayes@cygnus.com>
2017
2018         * loop.c (struct movables): New.
2019         (num_movables): Move into struct movables.
2020         (the_movables): Change type to struct movables.
2021         (ignore_some_movables): Change struct movable arg to struct movables.
2022         (force_movables, combine_movables, regs_match_p): Likewise.
2023         (rtx_equal_for_loop_p, move_movables): Likewise.
2024         (scan_loop): Change movables to be of type struct movables.
2025         Replace last_movable with field in movables structure.
2026
2027 2000-09-08  Zack Weinberg  <zack@wolery.cumb.org>
2028
2029         * c-pragma.c: Don't elide entire file if !HANDLE_GENERIC_PRAGMAS.
2030         (init_pragma): Avoid warning if pfile happens to be unused.
2031         * c-pragma.h: Never define HANDLE_GENERIC_PRAGMAS.  Never
2032         define init_pragma to nothing.  Always prototype
2033         init_pragma.  Prototype dispatch_pragma if !USE_CPPLIB.
2034
2035         * c-lex.c (process_directive): Always call dispatch_pragma.
2036         Initialize entering_c_header to 0.
2037
2038 2000-09-08  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2039
2040         * config/m68hc11/m68hc11.md: New file, machine description for
2041         68HC11 & 68HC12.
2042         * config/m68hc11/m68hc11.h: New file, definitions for 68HC11 & 68HC12.
2043         * config/m68hc11/m68hc11.c: New file, functions for 68HC11 & 68HC12.
2044         * config/m68hc11/m68hc12.h: New file, definitions for 68HC12.
2045         * config/m68hc11/m68hc11-protos.h: New file.
2046         * config/m68hc11/m68hc11-crt0.S: New file, startup code.
2047         * config/m68hc11/t-m68hc11-gas: New file, makefile fragment.
2048         * config/m68hc11/xm-m68hc11.h: New file, target defs.
2049         * config/m68hc11/larith.asm: New file, libgcc routines.
2050
2051 2000-09-08  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2052
2053         * Makefile.in (DPBIT_FUNCS): Add _usi_to_df.
2054         (FPBIT_FUNCS): Add _usi_to_sf.
2055         * config/fp-bit.c (usi_to_float): New function.
2056         * config/fp-bit.h (L_usi_to_sf, L_usi_to_df): Define.
2057         (usi_to_float): Add appropriate #define.
2058
2059 2000-09-08  Bernd Schmidt  <bernds@redhat.co.uk>
2060
2061         * i386-protos.h (sse_comparison_operator, mmx_reg_operand): Declare
2062         new functions.
2063         * i386.c (sse_comparison_operator, mmx_reg_operand): New functions.
2064         * i386.md (attr "type"): Add sse and mmx types.
2065         (attr "memory"): Handle them without a crash.
2066         (movsi_1, movdi_2): Allow MMX regs.
2067         (movdi splits): Don't split moves involving MMX regs.
2068         (setcc_4): Remove '*' from pattern name so we get a gen_setcc4.
2069         (movv4sf_internal, movv4si_internal, movv8qi_internal,
2070         movv4hi_internal, movv2si_internal, movv8qi, movv4hi, movv2si,
2071         movv4sf, movv4si, pushv4sf, pushv4si, pushv8qi, pushv4hi, pushv2si,
2072         sse_movaps, sse_movups, sse_movmskps, mmx_pmovmskb, mmx_maskmovq,
2073         sse_movntv4sf, sse_movntdi, sse_movhlps, sse_movlhps, sse_movhps,
2074         sse_movlps, sse_loadss, sse_movss, sse_storess, sse_shufps,
2075         addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, mulv4sf3, vmmulv4sf3,
2076         divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2, rsqrtv4sf2, vmrsqrtv4sf2,
2077         sqrtv4sf2, vmsqrtv4sf2, sse_andti3, sse_nandti3, sse_iorti3,
2078         sse_xorti3, maskcmpv4sf3, maskncmpv4sf3, vmmaskcmpv4sf3,
2079         vmmaskncmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
2080         smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
2081         cvttps2pi, cvtsi2ss, cvtss2si, cvttss2si, addv8qi3, addv4hi3,
2082         addv2si3, ssaddv8qi3, ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3,
2083         subv4hi3, subv2si3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
2084         mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
2085         mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3, mmx_uavgv8qi3,
2086         mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw, mmx_pshufw,
2087         eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3, gtv2si3, umaxv8qi3,
2088         smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3, ashrv2si3, lshrv4hi3,
2089         lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3, mmx_ashldi3,
2090         mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
2091         mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
2092         mmx_punpckldq, emms, sfence, ldmxcsr, prefetch, stmxcsr, sse_clrti,
2093         mmx_clrdi): New patterns.
2094
2095 2000-09-08  Richard Earnshaw  <rearnsha@arm.com>
2096
2097         * arm.c: Don't include tm.h directly.
2098
2099 Fri Sep  8 14:34:56 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2100
2101         * recog.c (validate_replace_rtx_1): Fix confusion about equality
2102         testing; simplify subregs of constants and nested subregs.
2103
2104 2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
2105
2106         * config/sh/sh.md (symPLT_label2reg): Use operand3 for PIC reg.
2107
2108 2000-09-08  Bernd Schmidt  <bernds@redhat.co.uk>
2109
2110         * combine.c (combine_simplify_rtx): Try to simplify VEC_SELECT of a
2111         VEC_CONCAT.
2112         * rtl.texi (description of USE): Add note about possible pitfalls
2113         with this rtx.
2114         From Richard Henderson:
2115         * reload1.c (choose_reload_regs): Compute need_mode properly.
2116
2117 2000-09-07  Richard Henderson  <rth@cygnus.com>
2118
2119         * config/ia64/lib1funcs.asm (__divsi3): Use .s1 for frcpa.
2120         (__modsi3, __umodsi3): Likewise.
2121         (__udivsi3): Likewise.  Normalize the TFmode values.
2122
2123 2000-09-07  Geoff Keating  <geoffk@cygnus.com>
2124
2125         * config/rs6000/sol-c0.c (_start): Declare `termfunc' parameter
2126         with a prototype.
2127         * config/rs6000/rs6000.h (RS6000_ARG_SIZE): Use cast to suppress
2128         warning.
2129
2130 Fri Sep  8 03:26:38 2000  J"orn Rennecke <amylaar@redhat.co.uk>
2131
2132         * sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): Remove.
2133         (cmpeqdi_t): Add output pattern.
2134         (cmpeqdi_t+1): Don't split when not optimizing.
2135         Restore proper splitting operation.
2136
2137 2000-09-07  Richard Henderson  <rth@cygnus.com>
2138
2139         * c-lex.c (process_directive): If not HANDLE_GENERIC_PRAGMAS,
2140         do not call dispatch_pragma.
2141
2142 2000-09-07  Jim Wilson  <wilson@cygnus.com>
2143
2144         * reload.c (push_reload): Use CLASS_CANNOT_CHANGE_MODE_P in addition
2145         to CLASS_CANNOT_CHANGE_MODE.
2146         * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE_P): True only if the
2147         mode classes are different.
2148
2149 2000-09-07  Zack Weinberg  <zack@wolery.cumb.org>
2150
2151         * cpplib.h (struct cpp_options): Add user_label_prefix member,
2152         left out of commit which removed cppulp.c.
2153
2154 2000-09-07  Richard Henderson  <rth@cygnus.com>
2155
2156         * bb-reorder.c (fixup_reorder_chain): Add jump in new block
2157         after switch for CASE_DROPS_THROUGH.
2158
2159 2000-09-07  Richard Henderson  <rth@cygnus.com>
2160
2161         * loop.c (strength_reduce): Call check_ext_dependant_givs.
2162         Properly extend the biv initial value for the giv.
2163         (record_biv): Zero ext_dependant.
2164         (record_giv): New argument ext_val.  Update all callers.
2165         (general_induction_var): Likewise.
2166         (consec_sets_giv): Likewise.
2167         (simplify_giv_expr): Likewise.  Fill in ext_val if we find
2168         a sign-extend, zero-extend, or truncate.
2169         (combine_givs_p): Make sure modes are compatible.
2170         (check_ext_dependant_givs): New.
2171         (extend_value_for_giv): New.
2172         * loop.h (struct induction): Add ext_dependant.
2173         * unroll.c (iteration_info): Extend the biv initial value for the giv.
2174         (find_splittable_givs): Likewise.
2175         (final_giv_value): Likewise.
2176
2177 2000-09-07  Zack Weinberg  <zack@wolery.cumb.org>
2178
2179         * c-pragma.h: Define HANDLE_GENERIC_PRAGMAS if
2180         REGISTER_TARGET_PRAGMAS is defined.  Duplicate some
2181         definitions from cpplib.h.
2182         * cpplib.h: Don't typedef struct cpp_reader if c-pragma.h has
2183         already done it.
2184         * tm.texi: Document HANDLE_PRAGMA as no longer supported.  Add
2185         documentation for REGISTER_TARGET_PRAGMAS.
2186
2187         * c-lex.c: Include cpplib.h before c-pragma.h.  Define a
2188         default-pragma callback to implement -Wunknown-pragmas if
2189         USE_CPPLIB.
2190         * c-parse.in: Move all includes to top of file.
2191         * c-pragma.c: Include cpplib.h before c-pragma.h.  Include
2192         tm_p.h.
2193         (dispatch_pragma): Put the namespace in the -Wunknown-pragmas
2194         warning.
2195         (init_pragma): If REGISTER_TARGET_PRAGMAS is defined, call it.
2196
2197         * arm.h, arm-protos.h, arm.c,
2198           c4x.h, c4x-protos.h, c4x.c,
2199           h8300.h, h8300-protos.h, h8300.c,
2200           i370.h, i370-protos.h, i370.c,
2201           i960.h, i960-protos.h, i960.c,
2202           sh.h, sh-protos.h, sh.c,
2203           v850.h, v850-protos.h, v850.c: Convert HANDLE_PRAGMA-based
2204         pragmata scheme to use REGISTER_TARGET_PRAGMAS instead.
2205
2206         * d30v.h: Don't mention HANDLE_PRAGMA in comment.  Add
2207         multiple include guard.
2208         * i370.md (untyped_call): Use GEN_CALL.
2209         (umodsi3): Remove unused variable.
2210         * sh/elf.h: Don't undef HANDLE_SYSV_PRAGMA.
2211         * v850.c (output_move_single, output_move_double): Constify
2212         return value.
2213         (print_operand): Constify a char *.
2214         * v850.h (struct small_memory_info): Constify name member.
2215
2216 2000-09-07  Kazu Hirata  <kazu@hxi.com>
2217
2218         * config/h8300.h: Fix comment typos.
2219         * config/h8300/h8300.md: Likewise.
2220         * config/h8300/lib1funcs.asm: Likewise.
2221
2222 Thu 07-Sep-2000 21:29:00 BST  Neil Booth  <NeilB@earthling.net>
2223
2224         * Makefile.in: Remove references to cppulp.{c,o}.
2225         * cppinit.c (initialize_builtins, cpp_start_read,
2226         cpp_handle_option): Update to use cpp_options structure.
2227         * cppulp.c: Remove.
2228
2229 2000-09-07  Joseph S. Myers  <jsm28@cam.ac.uk>
2230
2231         * c-common.c (time_char_table): Allow %#b and %#h.
2232
2233 2000-09-07 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2234
2235         * reorg.c (find_end_label): If the basic block reorder pass moves the
2236         return insn to some other place try to locate it again and put our
2237         end_of_function_label there.
2238         * reorg.c (relax_delay_slots): Check if find_end_label created a
2239         new label that invalidates the current optimazation.
2240
2241 2000-09-07  Catherine Moore  <clm@redhat.com>
2242
2243         * unroll.c (unroll_loop): Check for unconditional jumps
2244         to loop continuation.  Delete if n_iterations is 1.
2245         (ujump_to_loop_cont): New routine.
2246
2247 2000-09-07  Bernd Schmidt  <bernds@redhat.co.uk>
2248
2249         * rtl.c (class_narrowest_mode): Add entries for MODE_VECTOR_INT and
2250         MODE_VECTOR_FLOAT.
2251         * reload.c (regno_clobbered_p): Accept new arg, MODE, and use it
2252         to handle multiword modes correctly.  All callers and the declaration
2253         changed.
2254
2255 2000-09-06  Mark Mitchell  <mark@codesourcery.com>
2256
2257         * c-common.h (prep_stmt): Declare.
2258         (lang_expand_stmt): Likewise.
2259         * c-decl.c (lang_expand_stmt): Remove.
2260         * c-semantics.c (lang_expand_stmt): Define.
2261         (prep_stmt): New function.
2262         (expand_stmt): Handle common statement types here.
2263
2264 2000-09-07  Niibe Yutaka  <gniibe@m17n.org>, Kaz Kojima  <kkojima@rr.iij4u.or.jp>, Alexandre Oliva  <aoliva@redhat.com>
2265
2266         * configure.in (sh-*-linux*): Added.
2267         * configure: Rebuilt.
2268         * config/sh/t-linux: New file.
2269         * config/sh/sh.h (USERMODE_BIT): Define.
2270         (TARGET_USERMODE): Likewise.
2271         (TARGET_SWITCHES): New switches for the bits above.
2272         (INITIALIZE_TRAMPOLINE): Call __ic_invalidate in USERMODE.
2273         * config/sh/linux.h: New file.
2274         * config/sh/lib1funcs.asm (GLOBAL): Don't prefix symbols with
2275         underscore on linux.
2276         (L_sdivsi3, L_udivsi3): Define for linux.
2277         (L_ic_invalidate): Define.
2278         * invoke.texi (SH Options): Document -musermode.
2279
2280 2000-09-07  Alexandre Oliva  <aoliva@redhat.com>
2281
2282         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't disable function
2283         CSE unless generating PIC.
2284
2285         * config/sh/sh.md (symPLT_label2reg): Force the initialization of
2286         the PIC register.
2287
2288 2000-09-06  H.J. Lu  (hjl@gnu.org)
2289
2290         * Makefile.in (clean_s1): Depend on stage_b.
2291         (clean_s2): Depend on stage_d. Don't remove $(VOL_FILES) in
2292         stage2. They are used for "make compare".
2293
2294 2000-09-06  Mark Mitchell  <mark@codesourcery.com>
2295
2296         Move statement-tree facilities from C++ to C front-end.
2297         * c-common.h (c_tree_index): Add CTI_VOID_ZERO.
2298         (void_zero_node): New macro.
2299         (struct stmt_tree_s): New type.
2300         (stmt_tree): New typedef.
2301         (struct language_function): New type.
2302         (last_tree): New macro.
2303         (last_expr_type): Likewise.
2304         (walk_tree_fn): New typedef.
2305         (current_stmt_tree): New function.
2306         (begin_stmt_tree): Likewise.
2307         (add_stmt): Likewise.
2308         (finish_stmt_tree): Likewise.
2309         (statement_code_p): Likewise.
2310         (lang_statement_code_p): New variable.
2311         (walk_stmt_tree): New function.
2312         (STMT_IS_FULL_EXPR_P): New macro.
2313         * c-common.c (lang_statement_code_p): New variable.
2314         (c_common_nodes_and_builtins): Initialize void_zero_node.
2315         (statement_code_p): New function.
2316         (walk_stmt_tree): Likewise.
2317         * c-decl.c (language_function): Rename to ...
2318         (c_language_function): ... this.  Include language_function.
2319         (push_c_function_context): Adjust accordingly.
2320         (pop_c_function_context): Likewise.
2321         (mark_c_function_context): Likewise.
2322         (current_stmt_tree): Define.
2323         * c-semantics.c (begin_stmt_tree): New function.
2324         (add_stmt): Likewise.
2325         (prune_unused_decls): Likewise.
2326         (finish_stmt_tree): Likewise.
2327
2328 2000-09-06 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2329
2330         * flow.c (insn_dead_p): Detect dead memory stores with auto increments.
2331
2332 2000-09-06  Kazu Hirata  <kazu@hxi.com>
2333
2334         * calls.c: Fix formatting.
2335
2336 2000-09-06  Graham Stott  <grahams@cygnus.co.uk>
2337
2338         * config/i386/i386.h (ADDRESS_COST): Fix typo.
2339
2340 2000-09-06  Zack Weinberg  <zack@wolery.cumb.org>
2341
2342         Integrated preprocessor.
2343
2344         * Makefile.in: Remove all references to c-parse.gperf,
2345         c-gperf.h, and c-parse.h.  Remove -d from yacc command line
2346         generating c-parse.c.  Update dependencies.
2347         * c-parse.gperf, c-gperf.h: Delete.
2348
2349         * c-common.c: Don't define parse_options, cpp_token, yy_cur,
2350         yy_lim, or yy_get_token.  Don't define get_directive_line if
2351         USE_CPPLIB.
2352         * c-common.h: Add multiple include guard.  Define RID values
2353         for every keyword in C, C++, and Objective C.  Put all the
2354         modifiers first.
2355         (struct c_fileinfo, get_fileinfo, dump_time_statistics): New.
2356         * c-decl.c (c_decode_option): Handle -lang-objc here.
2357         (print_lang_identifier): Handle C_IS_RESERVED_WORD case.
2358         (grokdeclarator): Adjust for new RID scheme.
2359         (extract_interface_info): New stub.
2360         * c-lang.c: Don't declare yy_cur or parse_options.
2361         (lang_init_options): Call cpp_init.  Don't call
2362         cpp_options_init.
2363         (lang_init): Don't call check_newline if USE_CPPLIB.
2364
2365         * c-lex.c: Don't include c-parse.h.  Do include timevar.h.
2366         Elide lots of unnecessary code if USE_CPPLIB.  Delete code
2367         rendered unnecessary by new architecture.  Move routines not
2368         shared with C++ to c-parse.in.  Maintain a local idea of the
2369         line number.    Handle C++ as well as C.
2370         [USE_CPPLIB]: Declare and register callbacks for #ident and
2371         for entering/leaving files.
2372         (init_c_lex, c_lex): Are now the entry points to this file.
2373         (check_newline): Break out directive handling to
2374         process_directive.
2375         (read_ucs, is_extended_char, utf8_extend_token): Moved here
2376         from C++ front end.
2377         (readescape, parse_float): Overhaul.
2378         (lex_number, lex_string, lex_charconst): Break out of c_lex
2379         (n'ee yylex).
2380         (get_fileinfo, update_header_times, dump_one_header,
2381         dump_time_statistics): New and/or moved here from C++.
2382         Support per-file data needed by C++ and per-header timing
2383         statistics (C++ only, at the moment).
2384         * c-lex.h: Update prototypes.  Add multiple include guard.
2385         * c-tree.h (struct lang_identifier): Add rid_code field.
2386         (C_IS_RESERVED_WORD, C_RID_CODE): New.
2387
2388         * c-parse.in: Include c-pragma.h. Remove unnecesary calls to
2389         reinit_parse_for_function and/or position_after_white_space.
2390         (save_filename, save_lineno): Look ahead before saving.
2391         (label -> identifier ':'): Save file and line before shifting ':'.
2392         (reservedwords): No need to call get_identifier.
2393         (init_parse, finish_parse, yyerror, yylex, yyprint,
2394         make_pointer_declarator): Are now here for C/ObjC.
2395         (rid_to_yy): Conversion table from RID constants to Yacc codes.
2396
2397         * c-pragma.c: Rewrite parsing logic to fit with cpplib's
2398         #pragma registry.  Provide dummy implementation of that
2399         interface if !USE_CPPLIB.
2400         * c-pragma.h: Update to match.
2401
2402         * flags.h: Add multiple include guard.
2403         (flag_detailed_statistics): Moved here from C++.
2404         * toplev.c: Define flag_detailed_statistics.
2405
2406         * gcc.c (C specs): Use %(trad_capable_cpp) for -E|-M|-MM case
2407         #if USE_CPPLIB.
2408         * timevar.def (TV_CPP, TV_LEX): New.
2409         * timevar.h: Add multiple include guard.
2410
2411         * objc/lang-specs.h: Use %(trad_capable_cpp) for -E|-M|-MM case
2412         #if USE_CPPLIB.
2413         * objc/objc-act.c: Don't mention yy_cur or parse_options.
2414         Initialize cpplib properly.  Force lineno to 0 after first
2415         call to check_newline.  Don't handle -lang-objc here.
2416         Move forget_protocol_qualifiers and remember_protocol_qualifiers here.
2417
2418 2000-09-06  David Edelsohn  <edelsohn@gnu.org>
2419
2420         * rs6000.md: Correct function unit definitions for cr_logical and
2421         mtjmpr.
2422         (sCOND): Additionally fail for sgt, slt, sge, sle if !TARGET_POWER
2423         and use portable method for >=0 and floating point >=.  Remove
2424         associated matchers.
2425
2426 2000-09-06  Mark Mitchell  <mark@codesourcery.com>
2427
2428         * extend.texi: Mark named return value extension as deprecated.
2429
2430 2000-09-06  Geoff Keating  <geoffk@cygnus.com>
2431
2432         * config/rs6000/rs6000.c (rs6000_reverse_condition): Return
2433         the result.
2434
2435 2000-09-06  Gabriel Dos Reis  <gdr@codesourcery.com>
2436
2437         * toplev.c (display_help): Fix thinko in documentation.
2438
2439         * diagnostic.h (output_buffer::indent_skip): New fields.
2440         (output_indentation): New macro.
2441
2442         * diagnostic.c (output_indent): New function.
2443         (output_set_prefix, clear_diagnostic_info): Use.
2444         (output_emit_prefix): Predict future indentation.
2445
2446 2000-09-06  DJ Delorie  <dj@redhat.com>
2447
2448         * Makefile.in (stage_*): add more dependencies to ensure parallel
2449         builds build correctly
2450
2451 2000-09-06  Manfred Hollstein  <manfredh@redhat.com>
2452
2453         * Makefile.in (bootstrap-lean): Depend on bootstrap-lean_g,
2454         not bootstrap-lean_f.
2455
2456 2000-09-06  Andreas Schwab  <schwab@suse.de>
2457
2458         * mklibgcc.in: Emit rule for libgcc-stage-start.
2459         * Makefile.in (stage1-start, stage2-start, stage3-start,
2460         stage4-start): Don't handle libgcc here, use libgcc.mk instead.
2461
2462 2000-09-06  Bernd Schmidt  <bernds@redhat.co.uk>
2463
2464         * local-alloc.c (local_alloc): Ignore CLASS_LIKELY_SPILLED.
2465         (update_equiv_regs): Likewise, except for the mn10200 kludge.
2466         (combine_regs): Likewise.
2467
2468         * Makefile.in (cse.o): Depend on $(BASIC_BLOCK_H).
2469         * cse.c: Include "basic-block.h".
2470         (struct table_elt): New field REGCOST.
2471         (CHEAP_REG): Delete macro.
2472         (COST): Return 0 for REGs.
2473         (approx_reg_cost_1, approx_reg_cost, preferrable): New functions.
2474         (notreg_cost): Return 0 for appropriate SUBREGs.
2475         (COSTS_N_INSNS): Return N * 2.
2476         (rtx_cost): Return 0 for REGs, and use cost of nested rtx for cheap
2477         SUBREGs.
2478         (CHEAPER): Use new function preferrable.
2479         (insert): Initialize REGCOST member.
2480         (find_best_addr): Use approx_reg_cost for estimation of register
2481         usage.
2482         (cse_insn): Likewise.
2483         * loop.c (iv_add_mult_cost): New function.
2484         (add_cost, shift_cost, mult_cost): Delete variables.
2485         (init_loop): Don't initialize add_cost; reduce copy_cost by half.
2486         (strength_reduce): Use iv_add_mult_cost instead of fixed add_cost.
2487         Make code that detects autoinc opportunities slightly less optimistic.
2488         (simplify_giv_expr): If expression contains other reg that is also a
2489         giv, only increment benefit if this is the only use of that reg.
2490         (consec_sets_giv): Take that change into account.
2491         (combine_givs): Slightly more verbose output.
2492
2493         * i386.h (RTX_COSTS): For MULT, return true cost of multiplication,
2494         not the cost of an equivalent shift.
2495         * sh-protos.h (addsubcosts): Declare.
2496         * sh.c (addsubcosts): New function.
2497         * sh.h (CONST_COSTS): If CONST_OK_FOR_I, then return 0.
2498         (RTX_COSTS): Tweak.  Use addsubcosts.
2499         (ADDRESS_COST): Return higher cost for reg+reg addressing.
2500
2501 2000-09-06  Geoff Keating  <geoffk@cygnus.com>
2502
2503         * config/rs6000/rs6000.c (validate_condition_mode): New function.
2504         (branch_comparison_operator): Call validate_condition_mode to
2505         abort rather than returning 0.
2506         (branch_positive_comparison_operator): New function.
2507         (scc_comparison_operator): Call validate_condition_mode to abort
2508         rather than returning 0.
2509         (ccr_bit): Call validate_condition_mode.  Update for
2510         new branch scheme.
2511         (print_operand): Delete %C modifier.  Update %E case
2512         to use EQ bit not SO bit.
2513         (rs6000_reverse_condition): New function.
2514         (rs6000_generate_compare): New function.
2515         (rs6000_emit_sCOND): New function.
2516         (rs6000_emit_cbranch): New function.
2517         (output_cbranch): The length of a long branch insn is
2518         now only 8 bytes.  Add validate_condition_mode.  Use
2519         rs6000_reverse_condition.  Remove cror generation.
2520
2521         * config/rs6000/rs6000.h: Update comments.
2522         (PREDICATE_CODES): Add new predicate.  Update codes used
2523         by branch_comparison_operator and scc_comparison_operator.
2524         * config/rs6000/rs6000-protos.h: Add prototypes for
2525         new external functions.
2526         * config/rs6000/rs6000.md: Add new scheduling parameters
2527         for cr_logical instructions.  Change length of branch
2528         instructions.
2529         (bCOND patterns): Call rs6000_emit_cbranch.
2530         (sCOND patterns): Call rs6000_emit_sCOND.
2531         (branch patterns): Change lengths to 4.
2532         (cr logical patterns): New.
2533
2534 2000-09-06  Richard Henderson  <rth@cygnus.com>
2535
2536         * config/i386/i386.md (call_pop): Fix test for setting
2537         current_function_uses_pic_offset_table.
2538         (call, call_value_pop, call_value): Likewise.
2539
2540 2000-09-06  Zack Weinberg  <zack@wolery.cumb.org>
2541
2542         * timevar.c (timevar_add): Delete.
2543         (timevar_get): Also count time since the selected timer was
2544         last updated.  Do not examine the timevar stack if the
2545         selected timer is standalone.
2546
2547 2000-09-05  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2548
2549         * gthr-dce.h (__gthread_objc_mutex_deallocate): Free mutex->backend.
2550
2551 2000-09-05  Jason Merrill  <jason@redhat.com>
2552
2553         * c-decl.c (finish_incomplete_decl): Don't call complete_array_type
2554         for 'extern' arrays.
2555
2556 2000-09-05  Richard Henderson  <rth@cygnus.com>
2557
2558         * config/ia64/lib1func.asm (__divtf3): Rebundle for Itanium.
2559         Eliminate final copy from non-trapping case.
2560         (__divdf3, __divsf3): Likewise.
2561
2562 2000-09-05  Richard Henderson  <rth@cygnus.com>
2563
2564         * config/ia64/ia64.md (mulhi3): Fix typo last change.
2565         * config/ia64/lib1func.asm (__divdi3, __udivdi3, __umodsi3): Likewise.
2566
2567 2000-09-03  Donn Terry  <donn@interix.com>,  Laurynas Biveinis  <lauras@softhome.net>
2568
2569         * Makefile.in: Restructure bootstrap stages to allow clean
2570         restart after failure.
2571
2572 2000-09-05  Richard Henderson  <rth@cygnus.com>
2573
2574         * config/ia64.md (movsi and movdi patterns): Allow moves from
2575         8-bit constants to AR registers.
2576
2577 2000-09-05  Richard Henderson  <rth@cygnus.com>
2578
2579         * config/ia64/ia64.md (mulhi3): New.
2580
2581 2000-09-05  Richard Henderson  <rth@cygnus.com>
2582
2583         * config/ia64/ia64.h (INIT_TARGET_OPTABS): Remove.
2584         * config/ia64/lib1funcs.asm (__divdi3): Update from Intel IA-64
2585         Optimization Guide, minimum latency alternative.
2586         (__moddi3, __udivdi3, __umoddi3): Likewise.
2587         (__divsi3, __modsi3, __udivsi3, __umodsi3): Likewise.
2588
2589 2000-09-05  Bruce Korb  <bkorb@gnu.org>
2590
2591         * fixinc/fixincl.c (load_file): always read header files
2592         with sizes that are a multiple of the page size.
2593         & use libiberty's getpagesize for determining that.
2594
2595 2000-09-05  Alexandre Oliva  <aoliva@redhat.com>
2596
2597         * gcse.c (hash_string_1): Add prototype.
2598         * cse.c (canon_hash_string): Likewise.
2599
2600 2000-09-04  Craig Newell  <CraigN@ieee.org>
2601
2602         * gcc.c: Undefine "__WCHAR_TYPE__" before redefining it.
2603
2604 2000-09-04  Andreas Schwab  <schwab@suse.de>
2605
2606         * Makefile.in (STAGESTUFF): Remove libgcc.
2607         (stage1-start, stage2-start, stage3-start): Copy the contents of
2608         the libgcc directory explicitly.
2609         (mostlyclean): Clean libgcc.
2610
2611 2000-09-04  Andrew Haley  <aph@redhat.com>
2612
2613         * dwarf2out.c: (stack_adjust_offset): New prototype.
2614
2615 Wed Jan  1 00:23:59 MET 1997  Jan Hubicka  <jh@suse.cz>
2616
2617         * combine.c (make_extraction): Fix rtx_cost comparison to
2618         match the comment.
2619
2620 Wed Jan  1 00:17:32 MET 1997  Jan Hubicka  <jh@suse.cz>
2621
2622         * i386.md (pushsi2, pushhi2, pophi2, swapsf, swapdf,
2623         umulsi3_highpart, smulsi3_highpart, testqi_ccno_1, xorqi_ext_1):
2624         Add '*' to insn pattern name.
2625
2626 2000-09-04  Jakub Jelinek  <jakub@redhat.com>
2627
2628         * cpplex.c (ON_REST_ARG): Check VAR_ARGS flag of current context,
2629         use posn - 1 to index into tokens array.
2630         (maybe_paste_with_next): Adjust caller.
2631
2632 2000-09-03  Geoff Keating  <geoffk@cygnus.com>
2633
2634         * invoke.texi: Document the -mvxworks option for rs6000 ELF.
2635
2636         * config/rs6000/rs6000.h: Update various comments about XER_REGNO.
2637         (REGNO_REG_CLASS): Use symbolic register
2638         names.
2639
2640 2000-09-03  Richard Earnshaw  <rearnsha@arm.com>
2641
2642         * arm.c (final_prescan_insn): If the form of a jump insn isn't
2643         recognized, don't try to conditionally execute it.
2644
2645 Sun Sep  3 13:10:56 2000  Denis Chertykov  <denisc@overta.ru>
2646
2647         * config/avr/avr.md ("*tablejump_lib"): New pattern.
2648         (call_value_insn): Right length claculation.
2649         (call_insn): Likewise.
2650
2651 2000-09-02  Marek Michalkiewicz  <marekm@linux.org.pl>
2652
2653         * config/avr/avr-protos.h, config/avr/avr.c (unique_section,
2654         gas_output_limited_string, gas_output_ascii, output_movqi,
2655         output_movhi, out_movqi_r_mr, out_movqi_mr_r, out_movhi_r_mr,
2656         out_movhi_mr_r, out_movsi_r_mr, out_movsi_mr_r, output_movsisf,
2657         out_tstsi, out_tsthi, ret_cond_branch, ashlqi3_out, ashlhi3_out,
2658         ashlsi3_out, ashrqi3_out, ashrhi3_out, ashrsi3_out, lshrqi3_out,
2659         lshrhi3_out, lshrsi3_out, output_reload_inhi, output_reload_insisf,
2660         out_shift_with_cnt, ptrreg_to_str, cond_string, encode_section_info):
2661         Add "const" as needed to remove warnings.
2662
2663         * config/avr/avr.c (avr_override_options, avr_init_once,
2664         function_prologue, function_epilogue, frame_pointer_required_p,
2665         class_likely_spilled_p, order_regs_for_local_alloc,
2666         avr_address_cost, avr_ret_register): Use K&R style arguments.
2667         (initial_elimination_offset, gas_output_limited_string):
2668         Remove ATTRIBUTE_UNUSED from the used arguments.
2669         (output_mov*, out_mov*_r_mr, out_mov*_mr_r, output_reload_insisf):
2670         Use local variables src, dest, base to access operands[].
2671         Rename reg_dest to reg_src if that's what it is.
2672         (output_movhi, output_movsisf): Optimize loading 8-bit immediate
2673         constants to LD_REGS if reg_was_0.
2674         (output_reload_insisf): Change arg 3 to insn length and set it.
2675         (out_movhi_r_mr, out_movhi_mr_r): Use in/out for more efficient
2676         access to 16-bit I/O register pairs.
2677         (avr_address_cost): Lower cost for the above case.
2678         (out_tsthi): Use "or" (faster) instead of "sbiw" if the operand
2679         may be clobbered, also for LD_REGS.
2680         (adjust_insn_length): Correct insn length for iorhi3 and iorsi3
2681         with a CONST_INT.
2682
2683         * config/avr/avr.h (PTRDIFF_TYPE): Make signed.
2684
2685         * config/avr/avr.md: Change all uses of the TEST_HARD_REG_CLASS
2686         macro to test_hard_reg_class function.
2687         (*movsi, *movsf): Change "cc" attribute from "clobber" to "none"
2688         for loading immediate constants to LD_REGS.
2689         (andsi3, cmphi, cmpsi): Add return statements to avoid warnings.
2690
2691
2692 Sat Sep  2 13:58:23 2000  Marek Michalkiewicz <marekm@linux.org.pl>
2693
2694         * config/avr/avr.md ("*negsi2"): substitute %@ to __zero_reg__
2695         * config/avr/libgcc.S: Lost part of the previous patch.
2696
2697 2000-08-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2698
2699         * rs6000/rs6000.h (NO_DOLLAR_IN_LABEL, DOLLARS_IN_IDENTIFIERS,
2700         ENCODE_SECTION_INFO, ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Move from
2701         here...
2702         * rs6000/aix.h: ...to here.
2703         * rs6000/linux.h (ASM_APP_ON, ASM_APP_OFF): Define to Linux-style.
2704         * rs6000/rs6000.c (rs6000_select_section): Handle CONSTRUCTOR.
2705         (rs6000_unique_section): Likewise.
2706
2707 2000-08-31  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2708
2709         * gthr-dce.h (__gthread_objc_mutex_allocate): Create a pthread_mutex_t
2710         object before calling pthread_mutex_init.
2711
2712 2000-09-02  Alexandre Oliva  <aoliva@redhat.com>
2713
2714         * config/sh/t-elf, config/sh/crt1.asm, config/sh/crti.asm,
2715         config/sh/crtn.asm: New files.
2716         * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Set.
2717         (crt1.o, crti.o, crtn.o): New targets.
2718         * configure.in [sh-*-elf*, sh-*-rtemself*] (tmake_file): Added
2719         sh/t-elf.
2720         * configure: Rebuilt.
2721         * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
2722         STARTFILE_SPEC, ENDFILE_SPEC, CRT_CALL_STATIC_FUNCTION): Define.
2723         * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
2724         Undefine for config/elfos.h to redefine.
2725         (STARTFILE_SPEC, ENDFILE_SPEC): Redefine after config/elfos.h.
2726
2727 2000-09-02  Alexandre Oliva  <aoliva@redhat.com>, Niibe Yutaka  <gniibe@m17n.org>, Kaz Kojima  <kkojima@rr.iij4u.or.jp>
2728
2729         * config/sh/sh-protos.h (nonpic_symbol_mentioned_p,
2730         legitimize_pic_address, output_pic_addr_const): Declare.
2731         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Fix PIC register.
2732         (PREFERGOT_BIT, TARGET_PREFERGOT): Likewise.
2733         (TARGET_SWITCHES): New switch -mprefergot.
2734         (OVERRIDE_OPTIONS): Set flag_no_function_cse unless -mprefergot.
2735         (PIC_OFFSET_TABLE_REGNUM): Define.
2736         (GOT_SYMBOL_TABLE): Likewise.
2737         (LEGITIMIZE_ADDRESS): Use legitimize_pic_address.
2738         (ENCODE_SECTION_INFO): Define.
2739         (FINALIZE_PIC): New macros.
2740         (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST_P): New macro.
2741         (ASM_OUTPUT_INT, ASM_OUTPUT_SHORT): Use output_pic_addr_const.
2742         * config/sh/sh.c (print_operand_address): Use output_pic_addr_const.
2743         (prepare_move_operands): Call emit_pic_move or
2744         emit_pic_const_move if appropriate.
2745         (output_far_jump): For PIC, use braf and output long offset.
2746         (machine_dependent_reorg):
2747         (sh_expand_prologue): Save and initialize the PIC register.
2748         (sh_expand_epilogue): Restore it.
2749         (initial_elimination_offset): Account for it.
2750         (nonpic_symbol_mentioned_p): New function.
2751         (legitimize_pic_address): Likewise.
2752         (output_pic_addr_const): Likewise.
2753         * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): New insns.
2754         (call, call_value): Use them.
2755         (GOTaddr2picreg, sym_label2reg, symGOT2reg, symGOTOFF2reg,
2756         symPLT_label2reg): New expands.
2757         * invoke.texi (SH Options): Document -mprefergot.
2758
2759 2000-09-01  Alexandre Oliva  <aoliva@redhat.com>
2760
2761         * rtl.h (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): New macro.
2762         * gcse.c (hash_string_1): New function.
2763         (hash_expr_1) <ASM_OPERANDS>: Disregard filename and line number.
2764         (expr_equiv_p) <ASM_OPERANDS>: Likewise.
2765         * cse.c (rtx_cost): Don't increase the cost of ASM_OPERANDS.
2766         (canon_hash_string): New function.
2767         (canon_hash) <ASM_OPERANDS>: Disregard filename and line number.
2768         (exp_equiv_p) <ASM_OPERANDS>: Likewise.
2769         (fold_rtx): Use ASM_OPERANDS accessor macros.
2770         * emit-rtl.c (copy_insn_1): Likewise.
2771         * integrate.c (copy_rtx_and_substitute): Likewise.
2772         * stmt.c (expand_asm_operands): Likewise.  Give an
2773         ASM_OPERANDS rtx the mode of the output reg being set from it.
2774
2775 2000-09-01  Fred Fish  <fnf@be.com>
2776
2777         * fix-header.c (write_rbrac): Add putc and getc to list of
2778         functions to protect against prior definition as a macro.
2779
2780 2000-09-01  Joseph S. Myers  <jsm28@cam.ac.uk>
2781
2782         * c-common.h (enum c_tree_index): Add CTI_C_SIZE_TYPE.
2783         (c_size_type_node): Define.
2784         * c-decl.c (init_decl_processing): Initialize c_size_type_node.
2785         * c-common.c (enum format_lengths, enum format_std_version,
2786         format_length_info, format_type_detail, BADLEN, NOLENGTHS,
2787         format_kind_info, printf_length_specs, scanf_length_specs, T89_I,
2788         T99_I, T89_L, T99_LL, TEX_LL, T89_S, T89_UI, T99_UI, T89_UL,
2789         T99_ULL, TEX_ULL, T89_US, T89_F, T99_F, T89_D, T99_D, T89_LD,
2790         T99_LD, T89_C, T99_SC, T99_UC, T89_V, T94_W, TEX_W, T94_WI,
2791         TEX_WI, T99_ST, T99_SST, T99_PD, T99_UPD, T99_IM, T99_UIM,
2792         format_types): Define.
2793         (format_char_info, print_char_table, scan_char_table,
2794         time_char_table): Rearrange for new organization of information
2795         about format length modifiers and standard versions.
2796         (T_ST): Redefine to use c_size_type_node.
2797         (check_format_info): Obtain information about length modifiers and
2798         standard versions from tables.  Adjust warning message wordings.
2799         Use the name from the user's program for `ll' and `hh' length
2800         modifiers in warning messages.  Use more informative names for
2801         wanted types where available (for wchar_t, wint_t, size_t, signed
2802         size_t, ptrdiff_t, unsigned ptrdiff_t, intmax_t and uintmax_t).
2803
2804 2000-09-01  Jim Wilson  <wilson@cygnus.com>
2805
2806         * calls.c (emit_call_1): Add REG_NORETURN note to call if ECF_NORETURN.
2807         * combine.c (distribute_notes): Handle REG_NORETURN.
2808         * rtl.c (reg_note_name): Add REG_NORETURN.
2809         * rtl.h (enum reg_note): Likewise.
2810
2811         * config/ia64/ia64-protos.h (emit_safe_across_calls): Renamed from
2812         ia64_file_start.
2813         * config/ia64/ia64.c (emit_safe_across_calls): Likewise.
2814         (rtx_needs_barrier): Handle unspec_volatile 8 and 9.
2815         (emit_predicate_relation_info): Handle conditional calls with
2816         REG_NORETURN.
2817         * config/ia64/ia64.h (ASM_FILE_START): Call emit_safe_across_calls
2818         instead of ia64_file_start.
2819         * config/ia64/sysv4.h (ASM_FILE_START): Likewise.
2820         * config/ia64/ia64.md (safe_across_calls_all,
2821         save_across_calls_normal): New patterns.
2822
2823         * loop.c (check_final_value): Check for biv use before checking for
2824         giv use.  Check for both biv and giv uses.  Always set last_giv_use
2825         if there is a giv use.
2826
2827 2000-09-01  Richard Henderson  <rth@cygnus.com>
2828
2829         * config/ia64/ia64.md (mulsi3): Use grfr_register_operand.
2830         (madddi3): Likewise.
2831         (maddsi3): New.
2832
2833 Fri Sep  1 10:59:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2834
2835         * expr.c (clear_storage): Don't use emit_move_insn unless
2836         either BLKmode or proper size.
2837         (store_constructor): Don't call clear_storage if REG of wrong size.
2838
2839         * flow.c (init_propagate_block_info): Don't mark frame dead at end
2840         of function if returns wiht stack pointer depressed.
2841
2842 2000-09-01  Andrew Haley  <aph@redhat.com>
2843
2844         * dwarf2out.c (stack_adjust_offset): New function.
2845         (dwarf2out_stack_adjust): Break out stack adjust logic into
2846         new stack_adjust_offset function.  Look inside parallels and
2847         sequences for stack adjustments.
2848
2849 2000-08-31  Jeff Law <law@cygnus.com>
2850
2851         * arm.md: Use no_new_pseudos to determine when it is safe
2852         to create new pseudo registers.
2853
2854         * arm.c (legitimize_pic_address): Use no_new_pseudos to determine
2855         when we can safely allocate new registers.
2856
2857 2000-08-31  Geoffrey Keating  <geoffk@cygnus.com>
2858
2859         * stmt.c (expand_asm_operands): Twiddle generating_concat_p
2860         so that CONCATs are not generated for ASMs.
2861         * emit-rtl.c (gen_reg_rtx): Don't generate CONCATs when
2862         not generating_concat_p.
2863         * function.c (pop_function_context_from): Reset
2864         generating_concat_p.
2865         (prepare_function_start): Likewise.
2866         * rtl.c (generating_concat_p): Define.
2867         * rtl.h (generating_concat_p): Declare.
2868         * toplev.c (rest_of_compilation): No CONCATs after RTL generation.
2869
2870 2000-08-22  Philipp Thomas  <pthomas@suse.de>
2871             Masanobu Yuhara <yuhara@flab.fujitsu.co.jp>
2872
2873         * gmicro.h (TARGET_SWITCHES): Add descriptions and mark them
2874         for translation.
2875
2876 2000-08-30  Greg McGary  <greg@mcgary.org>
2877
2878         * Makefile.in (fixinc.sh): Pass CC, CFLAGS and LDFLAGS to mkfixinc.sh
2879         * fixinc/Makefile.in (fixincl): Pass $(LDFLAGS) to $(CC).
2880         * fixinc/mkfixinc.sh: Pass $CC, $CFLAGS and $LDFLAGS to $MAKE.
2881
2882 2000-08-30  Greg McGary  <greg@mcgary.org>
2883
2884         * tree.h (struct tree_int_cst): Wrap low and high in a sub-struct.
2885         (TREE_INT_CST_LOW, TREE_INT_CST_HIGH): Access through sub-struct.
2886         (TREE_INT_CST): New macro.
2887         * varasm.c (const_hash, compare_constant_1, record_constant_1):
2888         Use new macro TREE_INT_CST.
2889
2890 Wed 30-Aug-2000 23:18:59 BST  Neil Booth  <NeilB@earthling.net>
2891
2892         * contrib.texi: Add self.
2893
2894 2000-08-30  Alexandre Oliva  <aoliva@redhat.com>
2895
2896         * config/sh/sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): New insns.
2897         (cmpeqdi_t splitter): Use cmpeqsi_and_t instead of emitting jumps
2898         and labels.
2899
2900 2000-08-30  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2901
2902         * fixinc/gnu-regex.c: Don't define `const'.
2903
2904 Tue Aug 29 22:09:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2905
2906         * expr.c (store_constructor): Allow variable bounds of array type.
2907         (expand_expr): Don't blow up if type is ERROR_MARK.
2908         * varasm.c (output_constructor): Don't access lower bound of array
2909         type unless need it if index is supplied (so it can be a variable
2910         if no index is supplied).
2911         Use tree_low_cst; use HOST_WIDE_INT for sizes; change BITPOS to POS.
2912         Other minor cleanups.
2913
2914 2000-08-29  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2915
2916         * Makefile.in: Revamp handling of cflags to allow different WARN_CFLAGS
2917         for compilations in stage 1 and subsequent stages, respectively.
2918         * configure.in (vax): Add compiler-dependent CFLAGS for stage 1.
2919         * configure: Rebuilt.
2920         * x-vax, x-vax-gcc: Deleted.
2921
2922 2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
2923
2924         * c-common.c (declare_function_name): Use func_id_node,
2925         function_id_node, and pretty_function_id_node.  Do not make
2926         __func__ visible at file scope.
2927         * c-common.h (c_tree_index): Add CTI_FUNCTION_ID,
2928         CTI_PRETTY_FUNCTION_ID, and CTI_FUNC_ID.
2929         (function_id_node, pretty_function_id_node, func_id_node): New
2930         macros.
2931         * c-decl.c (init_decl_processing): Initialize function_id_node,
2932         pretty_function_id_node, and func_id_node.
2933         (c_make_fname_decl): Correct comment.
2934
2935         * tree.h (struct tree_identifier): Constify pointer member.
2936
2937         * c-decl.c (pushdecl, implicit_decl_warning): Constify a char *.
2938         * c-pragma.h (struct weak_syms): Constify name and value members.
2939         (add_weak): Constify arguments.
2940
2941         * calls.c (special_function_p): Constify a char *.
2942         (expand_call): Remove variable which is initialized and then
2943         never used.
2944         * dependence.c (struct def_use, struct induction, struct subscript):
2945         Constify 'variable' member.
2946         (get_low_bound, have_induction_variable): Constify char * argument.
2947         (find_induction_variable): Add braces to avoid dangling else.
2948         (classify_dependence): Constify char * arrays.
2949         * profile.c (output_func_start_profiler): Constify a char *.
2950         * stor-layout.c (finalize_record_size): Constify a char *.
2951         * tree.c (is_attribute_p): Constify a char *.
2952         * varasm.c (add_weak, remove_from_pending_weak_list): Constify argument.
2953
2954         * varasm.c (make_function_rtl, make_decl_rtl): Rearrange code
2955         for comprehensibility.  Do not call get_identifier if we did
2956         not change the DECL_ASSEMBLER_NAME of the decl.  Use alloca to
2957         create temporary string constants, not ggc_alloc_string.  No
2958         need to copy result of ASM_FORMAT_PRIVATE_NAME.  Use const
2959         char * to hold IDENTIFIER_POINTERs.
2960
2961 2000-08-29  Richard Henderson  <rth@cygnus.com>
2962
2963         * config/ia64/ia64.md (muldi3): Use grfr_register_operand
2964         for the inputs.
2965
2966 2000-08-29  Richard Henderson  <rth@cygnus.com>
2967
2968         * reload.c (push_secondary_reload): Allow class == reload_class
2969         if we're using a reload_in/out pattern.
2970
2971         * config/ia64/ia64.md (reload_inti): Use a TImode scratch.  Use
2972         the half that does not conflict with the reload register.
2973         (reload_outti): Likewise.
2974
2975 2000-08-29  Kazu Hirata  <kazu@hxi.com>
2976
2977         * reload.c: Fix formatting.
2978
2979         * stmt.c: Fix formatting.
2980
2981         * gcc.c: Fix formatting.
2982
2983 2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
2984
2985         * flags.h (time_report, mem_report): New global flags.
2986         * toplev.c: Define time_report and mem_report.
2987         (f_options): Add -ftime-report and -fmem-report.
2988         (compile_file): Turn on time_report if quiet_flag is off.
2989         Call ggc_print_statistics at very end if mem_report is on.
2990         * timevar.c (TIMEVAR_ENABLE): Examine time_report, not quiet_flag.
2991
2992         * ggc-common.c (ggc_print_statistics): Rename to
2993         ggc_print_common_statistics; all callers changed.  Scale
2994         quantities above 10K to kilobytes and above 10M to megabytes.
2995         * ggc-page.c (ggc_page_print_statistics): Rename to
2996         ggc_print_statistics.  Report memory consumed by internal data
2997         structures for each allocation bucket.  Scale quantities above
2998         10K to kilobytes and above 10M to megabytes.
2999         * ggc-simple.c: Prototype debug_ggc_tree to avoid warning.
3000         Cast PTR_KEY(p) to unsigned long in fprintf call to avoid warning.
3001         Define tally_leaves always.
3002         (ggc_print_statistics): New function.
3003         * ggc.h: Adjust for renamed functions.
3004
3005 Wed Aug 30 00:11:42 2000  Denis Chertykov  <denisc@overta.ru>
3006
3007         * config/avr/avr.md ("*movsf","*movsi"): Pass NULL to
3008         output_movsisf instead of which_alternative.
3009
3010         * config/avr/avr.c (output_reload_inhi): Check for NULL ponter.
3011
3012 Tue Aug 29 22:29:58 2000  Denis Chertykov  <denisc@overta.ru> & Marek Michalkiewicz <marekm@linux.org.pl>
3013
3014         * config/avr/avr-protos.h: (avr_output_ascii) Removed.
3015         (avr_progmem_p): New prototype.
3016         (output_movsisf): Prototype declaration changed.
3017         (output_movqi): New prototype.
3018         (output_movhi): New prototype.
3019         (call_insn_operand): Likewise.
3020         (final_prescan_insn): Likewise.
3021         (avr_simplify_comparision_p): Likewise.
3022         (avr_normalize_condition): Likewise.
3023         (compare_eq_p): Likewise.
3024         (out_shift_with_cnt): Likewise.
3025         (const_int_pow2_p): Likewise.
3026         (output_reload_inhi): Prototype declaration changed.
3027
3028         * config/avr/avr.c: (debug_hard_reg_set): Prototype declared.
3029         (ldi_reg_rtx): New. rtx for r31.
3030         (avr_init_stack): Initialize as "__stack".
3031         (function_prologue): Use it.
3032         Replace all TARGET_ENHANCED with AVR_ENHANCED.
3033         (avr_mcu_name): Initialize as "avr2".
3034         (avr_enhanced_p, avr_mega_p): New variables.
3035         (mcu_types, avr_override_options): Handle all known MCU types.
3036         Also handle avr1 (only preprocess, assemble and link).
3037         (print_operand): Using of `%K' in output template removed.
3038         (out_movqi_r_mr): Optimized.
3039         (out_movhi_r_mr): Likewise.
3040         (output_movqi): New function.
3041         (output_movhi): Likewise.
3042         (out_movsi_r_mr): Optimized.
3043         (output_movsisf): Compute insn length for `adjust_insn_length'
3044         (out_movqi_mr_r): Optimized.
3045         (out_movhi_mr_r): Optimized.
3046         (adjust_insn_length): Use output_movsisf, output_movqi,
3047         output_movhi for insn length adjusting.
3048         (reg_unused_after): Use dead_or_set_p.
3049         (preferred_reload_class): Now havn't any restriction.
3050         (reg_was_0): New function.
3051         (io_address_p): Likewise.
3052         (const_int_pow2_p): Likewise.
3053         (output_reload_inhi): Likewise.
3054         (output_reload_insisf): Likewise.
3055
3056         * config/avr/avr.h (MULTILIB_DEFAULTS): Define.
3057         (LIB_SPEC): Use -lc for all supported devices.
3058         (LIBGCC_SPEC): Use -lgcc for all supported devices.
3059         (AVR_MEGA): Define as avr_mega_p.
3060         (AVR_ENHANCED): New, define as avr_enhanced_p.
3061         (TARGET_SWITCHES): Remove -menhanced, now handled by -mmcu=...
3062         (CPP_SPEC, LINK_SPEC): Handle all known MCU types.
3063         (CRT_BINUTILS_SPECS): Handle all known MCU types.
3064         Rename gcrt1-*.o to make file names unique on 8.3 filesystems.
3065         (EXTRA_SPECS): Add CPP_AVR[1-5]_SPEC.
3066         (ASM_SPEC): Pass -mmcu=... to the assembler.
3067         Change all -DAVR_* to -D__AVR_*__.
3068         (INIT_TARGET_OPTABS), config/avr/libgcc.S:
3069         Rename library functions to start with two underscores.
3070         (ASM_OUTPUT_COMMON): Outputs `.comm VAR,VAR-SIZE,1' to avoid
3071         alignment.
3072         (ASM_WEAKEN_LABEL): Declared for __attribute__((weak)).
3073         (SUPPORTS_WEAK): Likewise.
3074         (LDI_REG_REGNO): New. Register r31 will be used as temporary
3075         register for loading constants to r0-r14.
3076
3077         * config/avr/avr.md: Replace all TARGET_ENHANCED with
3078         AVR_ENHANCED.
3079         (*mov_r_sp): Removed. Handled by output_movhi.
3080         (*mov_sp_r): Likewise.
3081         (*mov_sp_r_no_interrupts): Likewise
3082         (*mov_sp_r_tiny): Likewise.
3083         (*movqi): Use output_movqi.
3084         (*reload_inqi): New.
3085         (*movhi): Use output_movhi.
3086         (*reload_inhi): New.
3087         (*negsi2): Optimized.
3088         (*negsf2): Likewise.
3089         Added peepholes (define_peephole2) for loading constants to r0-r14
3090         and for using `cpse' command.
3091
3092         * config/avr/libgcc.S: Rename library functions to start with two
3093         underscores.
3094         Add support for enhanced core.
3095         (_moqhi3): Fix typo, now _modqi3.
3096         (__divsi_raw): Use __zero_reg__ as loop counter, smaller by 1 word.
3097         (__prologue_saves__): Remove test for stack adjust by 0.
3098         (__tablejump__): New.
3099
3100         * config/avr/t-avr: Build libgcc2 with -mcall-prologues.
3101         Add multilib support.
3102
3103 Tue Aug 29 15:17:54 EDT 2000  John Wehle  (john@feith.com)
3104
3105         * loop.c (prescan_loop): Don't check unknown_address_altered
3106         when deciding if insert_loop_mem is safe.  Add BLKmode MEMs
3107         to loop_store_mems as necessary.
3108         (loop_invariant_p): Don't check unknown_address_altered
3109         or unknown_constant_address_altered.
3110
3111 2000-08-29  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
3112
3113         * vax.md (sltu, sgeu): Delete sltu and sgeu insn patterns.
3114
3115 2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
3116
3117         * cpperror.c (print_file_and_line): If line is (unsigned int)-1,
3118         print just the filename.
3119         * cpplex.c (_cpp_run_directive): Add additional argument, the
3120         name to give the synthetic buffer.  This defaults to
3121         translated "<command line>".
3122         * cpplib.c (cpp_define, cpp_undef, cpp_assert, cpp_unassert):
3123         Adjust to match.
3124         (_cpp_define_builtin): New function.
3125         * cppinit.c (initialize_builtins): Use _cpp_define_builtin.
3126         * cpphash.h: Update prototypes.
3127
3128         * tradcpp.c (main): Process -D and -U simultaneously, in the
3129         order they appeared on the command line.
3130
3131 2000-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3132
3133         * c-decl.c (define_label): Call warning_with_file_and_line and
3134         error_with_file_and_line instead of plain warning or error.
3135
3136         * c-parse.in (label): Use save_filename/save_lineno to ensure
3137         correct values for calls to define_label.
3138
3139 2000-08-29  Mark Mitchell  <mark@codesourcery.com>
3140
3141         * calls.c (expand_call): Don't create a VAR_DECL just to throw it
3142         away.
3143         * expr.c (expand_expr, case TARGET_EXPR): Don't call
3144         mark_addressable.
3145         * tree.h (get_file_function_name): Remove two duplicate
3146         declarations.
3147
3148 2000-08-28  Kazu Hirata  <kazu@hxi.com>
3149
3150         * tree.c: Fix formatting.
3151
3152         * xcoffout.c: Fix formatting.
3153
3154 2000-08-28  Jason Merrill  <jason@redhat.com>
3155
3156         * dwarf2out.c (attr_checksum): Also ignore DW_AT_producer.
3157
3158 2000-08-28  Daniel Berlin  <dberlin@redhat.com>
3159
3160         * dwarf2out.c (dwarf2out_finish): Don't bother calling
3161         break_out_includes if it won't do anything.
3162
3163 2000-08-28  Richard Henderson  <rth@cygnus.com>
3164
3165         * reload.c (push_secondary_reload): Revert 2000-08-16 change.
3166         (find_reloads): Likewise.
3167         * config/alpha/alpha.md (reload_inqi): Revert 2000-08-11 change.
3168         (reload_inhi): Likewise.
3169
3170 2000-08-28  Richard Henderson  <rth@cygnus.com>
3171
3172         * config/i386/i386.c: Don't error on EXTRA_CONSTRAINT defined.
3173         (call_insn_operand): Don't expect a surrounding mem.
3174         (constant_call_address_operand): Likewise.
3175         * config/i386/i386.h (PREDICATE_CODES): Update.
3176         * config/i386/i386.md (call patterns): Move the match_operand
3177         for the call destination inside the mem.
3178
3179 2000-08-28  Richard Henderson  <rth@cygnus.com>
3180
3181         * local-alloc.c (requires_inout): Don't use reserved range for
3182         EXTRA_CONSTRAINTS; use anything not matched by REG_CLASS_FROM_LETTER.
3183         * recog.c (asm_operand_ok): Likewise.
3184         (preprocess_constraints, constrain_operands): Likewise.
3185         * regclass.c (record_reg_classes): Likewise.
3186         * reload.c (find_reloads): Likewise.
3187         * reload1.c (maybe_fix_stack_asms): Likewise.
3188         (reload_cse_simplify_operands): Likewise.
3189         * stmt.c (expand_asm_operands): Likewise.
3190
3191         * md.texi: Update constraints documentation.
3192         * tm.texi (EXTRA_CONSTRAINT): Update.
3193
3194 2000-08-28  Daniel Berlin  <dberlin@redhat.com>
3195
3196         * dwarf2out.c (DIE_LABEL_PREFIX): Remove leading "__".
3197         (print_die): If we don't know the offset of the
3198         target die, try the symbol.  Add a trailing newline.
3199         (reverse_all_dies): New fn.
3200         (dwarf2out_finish): Call it.
3201         (break_out_includes): Reorganize for clarity.
3202         (add_sibling_attributes): Don't call reverse_die_lists.
3203         (output_comp_unit): Rename from output_comdat_comp_unit.  Use for
3204         primary CU, too.
3205         * flags.h: Add flag_eliminate_dwarf2_dups.
3206         * toplev.c (f_options): Support -feliminate-dwarf2-dups.
3207
3208 2000-08-28  Jason Merrill  <jason@redhat.com>
3209
3210         * dwarf2.h (DW_TAG_GNU_BINCL, DW_TAG_GNU_EINCL): New tags.
3211         * dwarf2out.c: #include "md5.h".
3212         (DIE_LABEL_PREFIX): New macro.
3213         (dw_val_struct): Add 'external' flag to val_die_ref.
3214         (add_AT_die_ref, AT_ref): Adjust.
3215         (AT_ref_external, set_AT_ref_external): New fns.
3216         (build_abbrev_table): Call set_AT_ref_external.
3217         (value_format): Call AT_ref_external.
3218         (die_struct): Add die_symbol field.
3219         (new_die): Clear it.
3220         (dwarf_tag_name): Handle BINCL/EINCL.
3221         (dwarf2out_start_source_file): Add BINCL DIE.
3222         (dwarf2out_end_source_file): Add EINCL DIE.
3223         (push_new_compile_unit, pop_compile_unit, clear_die_sizes): New fns.
3224         (loc_checksum, attr_checksum, die_checksum): New fns.
3225         (is_type_die, is_comdat_die, is_symbol_die): New fns.
3226         (compute_section_prefix, assign_symbol_names): New fns.
3227         (gen_internal_sym, output_die_symbol, output_symbolic_ref): New fns.
3228         (output_die): Call output_die_symbol and AT_ref_external.
3229         (output_comdat_comp_unit): New fn, split out from...
3230         (dwarf2out_finish): ...here.  Also call add_sibling_attributes for
3231         secondary CUs.
3232         (output_pubnames, output_aranges): Abort if we see entries from
3233         secondary CUs.
3234         * toplev.h: Declare file_name_nondirectory.
3235         * toplev.c (file_name_nondirectory): New fn, moved from C++ frontend.
3236         (rest_of_type_compilation): Call dwarf2out_decl if at toplevel.
3237         (debug_start_source_file): Call dwarf2out_start_source_file
3238         regardless of debug verbosity.
3239         (debug_end_source_file): Similarly.
3240         * tree.h: Declare clean_symbol_name.
3241         * tree.c (clean_symbol_name): Split out from...
3242         (get_file_function_name_long): ...here.
3243
3244         * dwarf2out.c (new_loc_descr): Use calloc.
3245         (splice_child_die): Remove the die from the right parent.
3246         (gen_struct_or_union_die): Don't add AT_name to a specification DIE.
3247
3248 Mon Aug 28 19:02:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3249
3250         * toplev.c (decode_g_option): Don't give warning for unknown -g
3251         option; return 0 instead.
3252         (main): If -g option is not recognized by front end or
3253         language-independent code, give warning.
3254
3255 2000-08-28  Greg McGary  <greg@mcgary.org>
3256
3257         * config/i386/i386-protos.h (ix86_expand_compare): Add extern decl.
3258         * config/i386/i386.c (ix86_expand_compare): Remove `static'.
3259         * config/i386/i386.md (trap, conditional_trap): New insn & expand.
3260
3261 2000-08-27  Greg McGary  <greg@mcgary.org>
3262
3263         * cpplex.c (parse_string): Don't look for backslash
3264         before first char in `namebuf'.
3265         * loop.c (strength_reduce): Skip NOTEs.
3266
3267 2000-08-27  Jason Merrill  <jason@redhat.com>
3268
3269         * c-decl.c (duplicate_decls): Don't set TREE_STATIC or clear
3270         DECL_EXTERNAL on a local extern.  Don't set DECL_IGNORED_P or
3271         TREE_ASM_WRITTEN, either.
3272         (finish_decl): Adjust.
3273
3274 2000-08-28  Philipp Thomas  <pthomas@suse.de>
3275
3276         * ABOUT-GCC-NLS: Remove gettext patches from Paul Eggert as
3277         they have been incorporated into the gettext CVS. Change the text to
3278         reflect the current status of NLS. Add instructions for accessing
3279         the gettext CVS and add the patch from Martin v. Loewis.
3280
3281 2000-08-27  Geoff Keating  <geoffk@cygnus.com>
3282
3283         * config/rs6000/rs6000.md (movdi_internal64+5): Make SUBREG-safe
3284         by using gen_lowpart_common.
3285         (movdi_internal64+6): Likewise.
3286
3287 2000-08-26  Alexandre Oliva  <aoliva@redhat.com>
3288
3289         * tm.texi (FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION):
3290         Document.
3291
3292         * config/mn10300/mn10300.h (DBX_REGISTER_NUMBER): Remap register
3293         numbers to the ranges used by GDB.
3294
3295 2000-08-25  Richard Henderson  <rth@cygnus.com>
3296
3297         * config/ia64/ia64.h (struct machine_function): Add n_varargs.
3298         * config/ia64/ia64.c (ia64_compute_frame_size): Use it.
3299         (ia64_expand_prologue): Likewise.
3300         (ia64_setup_incoming_varargs): Set it.  Properly skip the current
3301         argument for stdargs.
3302
3303 2000-08-25  Jason Merrill  <jason@redhat.com>
3304
3305         * integrate.c (expand_inline_function): Pull out the original decl.
3306
3307 2000-08-25  Jim Wilson  <wilson@cygnus.com>
3308
3309         * cse.c (cse_insn): Don't pass label subtraction to force_const_mem.
3310
3311         * function.c (gen_mem_addressof): Clear MEM_ALIAS_SET if no decl.
3312
3313 2000-08-25  Greg McGary  <greg@mcgary.org>
3314
3315         * flow.c (dump_edge_info): Use ARRAY_SIZE.
3316         * config/alpha/alpha.c (alpha_expand_block_move): Likewise.
3317
3318 2000-08-25  Richard Earnshaw  <rearnsha@arm.com>
3319
3320         * arm.h (STRUCT_VALUE): Define to 0, not NULL.
3321
3322 Fri Aug 25 12:52:49 EDT 2000  John Wehle  (john@feith.com)
3323
3324         * i386.c (ix86_find_base_term): New.
3325         * i386-protos.h (ix86_find_base_term): Prototype.
3326         * i386.h (FIND_BASE_TERM): Define.
3327         * alias.c (find_base_term): Use it.
3328         * tm.texi (FIND_BASE_TERM): Document it.
3329
3330         * alias.c (true_dependence, write_dependence_p): Unchanging
3331         memory can't conflict with non-unchanging memory.
3332
3333         * alias.c (memrefs_conflict_p): A BLKmode reference
3334         to a symbol (or CONST_INT address) always conflicts
3335         with a reference to another symbol.
3336
3337 2000-08-25  Joseph S. Myers  <jsm28@cam.ac.uk>
3338
3339         * c-common.c (time_char_table): Don't allow width and flags with
3340         "z" format.
3341
3342 2000-08-25  Jakub Jelinek  <jakub@redhat.com>
3343
3344         * config/i386/i386.c (ix86_expand_branch): Treat GE and GEU the same
3345         way as LT and LTU when the second operand has 0 in low word.
3346
3347 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
3348
3349         * basic-block.h (struct loop): Rename `exits' field to
3350         `exit_edges'.  Add `entry_edges' and `num_entries' fields.
3351
3352         * flow.c (flow_loop_exit_edges_find): Rename from flow_loop_exits_find.
3353         (flow_loop_entry_edges_find): Add.
3354         (flow_edge_list_print): Rename from flow_exits_print.
3355         (flow_loops_find): Call flow_loop_entry_edges_find.
3356         (flow_loop_dump): Dump entry_edges list.
3357         (flow_loops_free): Free entry_edges.
3358
3359 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
3360
3361         * loop.c (loop_dump_aux, debug_loop): New functions.
3362         (LOOP_BLOCK_NUM_1, LOOP_BLOCK_NUM, LOOP_INSN_UID): New macros.
3363
3364         * flow.c (flow_loops_dump): Add callback parameter.
3365         (flow_loop_dump): Add callback parameter and call it.  Move
3366         loop note debugging code to loop_dump_aux.
3367
3368         * basic-block.h (flow_loop_dump): Add callback parameter
3369         (flow_loops_dump): Likewise.
3370
3371         * toplev.c (rest_of_compilation): Add NULL callback function pointer
3372         to call to flow_loops_dump.
3373
3374 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
3375
3376         * loop.c (count_loop_regs_set): Replace start and end arguments
3377         with loop argument.  All callers udated.
3378
3379 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
3380
3381         * loop.c (constant_high_bytes): Delete.
3382
3383 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
3384
3385         * loop.c (prescan_loop): Move checks for NOTE_INSN_LOOP_CONT
3386         and NOTE_INSN_LOOP_VTOP to...
3387         (find_and_verify_loops) ...here.
3388
3389 Fri Aug 25 04:21:13 2000  Alexandre Oliva  <aoliva@redhat.com>
3390
3391         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Define default.
3392         (fini_dummy, init_dummy): Use it.
3393
3394 Fri 25-Aug-2000 08:03:27 BST  Neil Booth  <NeilB@earthling.net>
3395
3396         * cpplex.c (is_macro_disabled): Caller has already checked
3397         that we're not a preprocessed file.
3398
3399 2000-08-24  Mark Mitchell  <mark@codesourcery.com>
3400
3401         * Makefile.in (C_AND_OBJC_OBJS): Remove c-iterate.o.
3402         (c-iterate.o): Remove target.
3403         * gcc/c-common.h (enum rid): Remove RID_ITERATOR.
3404         * gcc/c-decl.c (init_decl_processing): Remove call to init_iterators.
3405         (finish_decl): Don't handle iterators.
3406         (grokdeclarator): Likewise.
3407         * gcc/c-parse.gperf: Remove __iterator and __iterator__ keywords.
3408         * gcc/c-gperf.h: Regenerated.
3409         * gcc/c-iterate.c: Removed.
3410         * gcc/c-lex.c (init_lex): Don't handle iterators.
3411         * gcc/c-parse.in (primary): Remove pop_iterator_stack call.
3412         (compstmt_primary_start): Remove push_iterator_stack call.
3413         (stmt): Don't allow iterator statements.  Replace iterator_expand
3414         with expand_expr_stmt.
3415         (all_iter_stmt): Remove.
3416         (all_iter_stmt_simple): Likewise.
3417         (all_iter_stmt_with_decl): Likewise.
3418         * gcc/c-tree.h (ITERATOR_P): Remove.
3419         (ITERATOR_BOUND_P): Likewise.
3420         (init_iterators): Remove declaration.
3421         (iterator_expand): Likewise.
3422         (iterator_for_loop_start): Likewise.
3423         (iterator_for_loop_end): Likewise.
3424         (iterator_for_loop_record): Likewise.
3425         (push_iterator_stack): Likewise.
3426         (pop_iterator_stack): Likewise.
3427         * gcc/c-typeck.c (decl_constant_value): Don't check ITERATOR_P.
3428         (readonly_warning): Likewise.
3429         * gcc/tree.h (ITERATOR_BOUND_P): Don't mention it.
3430
3431 2000-08-24  Jim Wilson  <wilson@cygnus.com>
3432
3433         * c-common.c (decl_attributes, case A_ALIGN): Revert last change.
3434         Copy type in a TYPE_DECL, just like pushdecl does.
3435
3436 2000-08-24  Richard Henderson  <rth@cygnus.com>
3437
3438         * toplev.c (main): Enable flag_reorder_blocks at -O2.
3439
3440 2000-08-24  Zack Weinberg  <zack@wolery.cumb.org>
3441
3442         * ggc-page.c (alloc_page): If HAVE_MMAP_ANYWHERE and we're
3443         asked for one page, allocate GGC_QUIRE_SIZE of them and put
3444         the extras on the free list.
3445         (release_pages): Clean up.
3446         (ggc_set_mark): Don't adjust G.allocated here...
3447         (sweep_pages): ... do it here.
3448
3449 2000-08-24  Zack Weinberg  <zack@wolery.cumb.org>
3450
3451         * cppfiles.c (read_include_file): Rearrange initializations.
3452
3453 2000-08-24  Richard Henderson  <rth@cygnus.com>
3454
3455         * stmt.c (expand_asm_operands): Treat EXTRA_CONSTRAINT like g or X.
3456
3457         * config/ia64/ia64-protos.h: Update.
3458         * config/ia64/ia64.c (gr_register_operand): New.
3459         (fr_register_operand, grfr_register_operand): New.
3460         (gr_nonimmediate_operand, grfr_nonimmediate_operand): New.
3461         (grfr_reg_or_8bit_operand): New.
3462         (gr_reg_or_0_operand): Rename from reg_or_0_operand and
3463         use gr_register_operand.
3464         (gr_reg_or_5bit_operand, gr_reg_or_6bit_operand): Likewise.
3465         (gr_reg_or_8bit_operand, gr_reg_or_8bit_adjusted_operand): Likewise.
3466         (gr_reg_or_8bit_and_adjusted_operand): Likewise.
3467         (gr_reg_or_14bit_operand, gr_reg_or_22bit_operand): Likewise.
3468         (fr_reg_or_fp01_operand): Likewise.
3469         (not_postinc_memory_operand): New.
3470         (ia64_split_timode): Remove unused variables.
3471         (rtx_needs_barrier): Check arguments to cmpxchg.
3472         (builtin_description): Remove.
3473         (bdesc_2argsi, bdesc_2argdi): Remove.
3474         (ia64_init_builtins): Declare all builtins directly.
3475         (ia64_expand_fetch_and_op): Rewrite to be called from
3476         ia64_expand_builtin directly.  Use expand_binop and co.
3477         (ia64_expand_op_and_fetch): Likewise.
3478         (ia64_expand_compare_and_swap): Likewise.
3479         (ia64_expand_binop_builtin): Remove.
3480         (ia64_expand_lock_test_and_set): New.
3481         (ia64_expand_lock_release): New.
3482         (ia64_expand_builtin): Use them.
3483         * config/ia64/ia64.h (CONSTRAINT_OK_FOR_S): New.
3484         (EXTRA_CONSTRAINT): Use it.
3485         (PREDICATE_CODES): Update.
3486         * config/ia64/ia64.md (*): Use gr_register_operand and co.
3487         (mf): Indicate that we set memory as well as use it.
3488         (fetchadd_acq_si): Show memory being modified as well.
3489         (fetchadd_acq_di, cmpxchg_acq_si, cmpxchg_acq_di): Likewise.
3490         (val_compare_and_swap_si, val_compare_and_swap_di): Remove.
3491         (lock_test_and_set_si, lock_test_and_set_di): Remove.
3492         (fetch_and_add_si, fetch_and_sub_si, fetch_and_or_si): Remove.
3493         (fetch_and_and_si, fetch_and_xor_si, fetch_and_nand_si): Remove.
3494         (fetch_and_add_di, fetch_and_sub_di, fetch_and_or_di): Remove.
3495         (fetch_and_and_di, fetch_and_xor_di, fetch_and_nand_di): Remove.
3496         (add_and_fetch_di, sub_and_fetch_di, or_and_fetch_di): Remove.
3497         (and_and_fetch_di, xor_and_fetch_di, nand_and_fetch_di): Remove.
3498         (add_and_fetch_si, sub_and_fetch_si, or_and_fetch_si): Remove.
3499         (and_and_fetch_si, xor_and_fetch_si, nand_and_fetch_si): Remove.
3500         * config/ia64/ia64intrin.h (*): Cast result to the appropriate
3501         return type.  Pretty print definitions.
3502
3503 2000-08-24  Jim Wilson  <wilson@cygnus.com>
3504
3505         * config/ia64/ia64.md (movdi): Don't call gen_movdi_symbolic if
3506         we have a SYMBOL_REF with SYMBOL_REF_FLAG set.
3507
3508 2000-08-24  Jason Merrill  <jason@redhat.com>
3509
3510         * dwarf2out.c (AT_flag, AT_int, AT_unsigned, AT_string, AT_ref,
3511         AT_loc, AT_addr, AT_lbl): Abort on unsuitable input.
3512         (get_AT_low_pc, get_AT_hi_pc, get_AT_string, get_AT_flag,
3513         get_AT_unsigned, get_AT_ref): Don't call them if get_AT fails.
3514
3515 2000-08-24  Greg McGary  <greg@mcgary.org>
3516
3517         * optabs.c (init_optabs): Initialize fixtab, fixtrunctab, floattab,
3518         and extendtab within their proper array boundaries.
3519         * emit-rtl.c (init_emit_once): Pass `const_tiny_rtx' with bounds
3520         for the entire array.
3521
3522         * config/arm/arm.c (arm_override_options): Use ARRAY_SIZE.
3523         * config/alpha/alpha.c (alpha_lookup_xfloating_lib_func): Likewise.
3524         * config/avr/avr.c (order_regs_for_local_alloc): Likewise.
3525         * config/fr30/fr30.c (fr30_print_operand): Likewise.
3526         * config/i386/dgux.c (output_options): Likewise.
3527         * config/i386/dgux.h (ASM_FILE_START): Likewise.
3528         * config/m88k/m88k.c (output_options): Likewise.
3529         * config/m88k/m88k.h (ASM_FILE_START): Likewise.
3530         * config/mcore/mcore.c (mcore_output_inline_const_forced,
3531         layout_mcore_frame, handle_structs_in_regs): Likewise.
3532         * config/mips/mips.c (output_block_move): Likewise.
3533         * config/rs6000/rs6000.c (rs6000_override_options,
3534         rs6000_file_start): Likewise.
3535         * config/sparc/sparc.c (sparc_add_gc_roots): Likewise.
3536         * fixinc/fixfixes.c (FIX_TABLE_CT): Likewise.
3537         * fixinc/fixtests.c (TEST_TABLE_CT): Likewise.
3538         * builtins.c (expand_builtin_setjmp): Likewise.
3539         * expr.c (safe_from_p): Likewise.
3540         * flow.c (life_analysis): Likewise.
3541         * fold-const.c (size_int_type_wide): Likewise.
3542         * gcc.c (translate_options, init_spec, set_spec, main): Likewise.
3543         * genattrtab.c (make_length_attrs): Likewise.
3544         * genopinit.c (gen_insn): Likewise.
3545         * genrecog.c (NUM_KNOWN_PREDS, NUM_SPECIAL_MODE_PREDS): Likewise.
3546         * global.c (global_alloc): Likewise.
3547         * local-alloc.c (find_free_reg): Likewise.
3548         * mips-tdump.c (print_symbol): Likewise.
3549         * mips-tfile.c (parse_def, parse_input): Likewise.
3550         * reload1.c (NUM_ELIMINABLE_REGS): Likewise.
3551         * stmt.c (expand_nl_goto_receiver): Likewise.
3552         * stor-layout.c (set_sizetype): Likewise.
3553         * varasm.c (decode_reg_name): Likewise.
3554         * toplev.c (decode_f_option, decode_W_option,
3555         set_target_switch, print_switch_values): Likewise.
3556         (NUM_ELEM): Remove macro.
3557         (display_help, main): s/NUM_ELEM/ARRAY_SIZE/
3558
3559 2000-08-24  Greg McGary  <greg@mcgary.org>
3560
3561         * tree.h (enum tree_index): New member `TI_MAIN_IDENTIFIER'.
3562         (MAIN_NAME_P, main_identifier_node): New macros.
3563         * c-common.c (c_common_nodes_and_builtins): Init main_identifier_node.
3564         * c-decl.c (start_decl, grokdeclarator, start_function,
3565         store_parm_decls, finish_function): Use MAIN_NAME_P.
3566         * config/avr/avr.c (function_prologue, function_epilogue): Likewise.
3567         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
3568         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
3569         * config/pdp11/pdp11.c (output_function_prologue): Likewise.
3570
3571 2000-08-24  Greg McGary  <greg@mcgary.org>
3572
3573         * cppfiles.c (actual_directory): Don't write beyond `dir'
3574         when it contains "".
3575         * real.c (asctoeg): Stay within bounds of etens[][].
3576
3577 2000-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3578
3579         * dependence.c (dependence_string, direction_string,
3580         dump_one_node, dump_node_dependence): Hide unused identifiers.
3581         (get_low_bound, normalize_coefficients): Match definition to
3582         static prototype.
3583         (get_one_coefficient): Initialize variables `value0_is_idx' and
3584         `value1_is_idx'.
3585         (ziv_test, gcd_test): Mark parameters with ATTRIBUTE_UNUSED.
3586         (ziv_test): Delete variable `idx', use parameter `sub' instead.
3587         (direction_merge): Avoid automatic aggregate initialization.
3588         (have_dependence_p): Use `src' not `dest' to set `src_idx'.
3589         Initialize variables `dest_idx' and `src_idx'.
3590         (end_dependence_analysis): Avoid C89 style function definition.
3591
3592 2000-08-24  Joseph S. Myers  <jsm28@cam.ac.uk>
3593
3594         * c-common.c (time_char_table): Don't allow width with %F.
3595         (check_format_info): Don't allow "Z" length with scanf.
3596
3597 2000-08-24  Gabriel Dos Reis  <gdr@codesourcery.com>
3598
3599         * diagnostic.c (finish_diagnostic): Define.
3600         (output_do_printf): Use wrap_text instead of output_add_string.
3601         (default_print_error_function): Avoid embedded '\n'.
3602
3603         * diagnostic.h (flush_diagnostic_buffer): Declare.
3604
3605 2000-08-23  Alexandre Oliva  <aoliva@redhat.com>
3606
3607         * dependence.c: Replace `[][]' with `[][MAX_SUBSCRIPTS]'.
3608
3609 2000-08-23  Hans-Peter Nilsson  <hp@axis.com>
3610
3611         * Makefile.in (GCC_PASSES): Add specs.
3612
3613 2000-08-23  Jim Wilson  <wilson@cygnus.com>
3614
3615         * frame.h (IA64_UNW_EHANDLER, IA64_UNW_UHANDLER): New.
3616         * config/ia64/frame-ia64.c (__get_personality): Return zero if neither
3617         EHANDLER nor UHANDLER bit is set.
3618         (__get_except_table): Likewise.
3619
3620 2000-08-23  Nick Clifton  <nickc@redhat.com>
3621
3622         * config/arm/lib1funcs.asm: Replace upper case condition codes
3623         with lower case versions.
3624
3625         * config/arm/arm.h (STRUCT_VALUE): Define.
3626         (STRUCT_VALUE_REGNUM): Delete.
3627
3628 2000-08-23  Zack Weinberg  <zack@wolery.cumb.org>
3629
3630         * cpphash.h (IN_I): New flag for directive table.
3631         * cpplib.c (DIRECTIVE_TABLE): Mark #define, #undef, #ident, and
3632         #pragma with IN_I.
3633         (_cpp_check_directive): If -fpreprocessed, execute directives
3634         marked with IN_I.  Issue no warnings in this case.
3635         * cpplex.c (_cpp_get_token): Expand no macros if -fpreprocessed.
3636
3637 2000-08-23  Joseph S. Myers  <jsm28@cam.ac.uk>
3638
3639         * c-common.c (print_char_table): Allow 'I' flag with %d, %i and
3640         %u.
3641         (check_format_info): Support printf 'I' flag; warn about it with
3642         -pedantic.
3643
3644 2000-08-23  Richard Earnshaw  (rearnsha@arm.com)
3645
3646         * arm.c (arm_expand_prologue): Ensure that the stack-adjustment
3647         barrier can't be ignored by the alias analysis code.
3648
3649 2000-08-12  Eli Zaretskii  <eliz@is.elta.co.il>
3650
3651         * fixinc/inclhack.def (sysv68_string): Fix the Sed script so it
3652         works inside fixincl.
3653
3654 Wed Aug 23 04:55:48 2000  Alexandre Oliva  <aoliva@redhat.com>
3655
3656         * simplify-rtx.c (simplify_rtx): Don't pass VOIDmode to
3657         simplify_relational_operation() unless both operands are of
3658         VOIDmode.
3659         * cse.c (fold_rtx): Likewise.
3660
3661 Tue Aug 22 23:53:27 EDT 2000  John Wehle  (john@feith.com)
3662
3663         * rtlanal.c (rtx_unstable_p): The pic register is stable
3664         (within one function) and the actual rtx should be used
3665         when checking the registers.
3666         (rtx_addr_can_trap_p): Pic memory addresses can't trap.
3667
3668         * alias.c (true_dependence, write_dependence_p): Fix
3669         bug in previous patch.
3670
3671         * i386.c (ix86_GOT_alias_set): New.
3672         (legitimize_pic_address): Use it.
3673
3674         * rtlanal.c (rtx_unstable_p): An unchanging MEM is
3675         only stable if its address is stable.
3676         (rtx_varies_p): An unchanging MEM can't vary if
3677         its address doesn't vary.
3678
3679 2000-08-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3680
3681         * c-parse.in (unop +): Restrict -Wtraditional warnings to user code.
3682
3683 2000-08-22  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
3684
3685         * vax.h (ASM_SPEC): Pass `-J' to assembler.
3686         * x-vax-gcc: New file for bootstrapping with gcc.
3687         * x-vax: Use X_CFLAGS rather than X_CPPFLAGS to pass `-J'.
3688         * configure.in: Use x-vax-gcc with gcc.
3689         * configure: Rebuilt.
3690
3691 Tue Aug 22 21:21:05 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3692
3693         * toplev.c (rest_of_compilation): Rebuild label notes after
3694         post-reload splitting pass if new labels have been created.
3695
3696 2000-08-22  Gabriel Dos Reis  <gdr@codesourcery.com>
3697
3698         * diagnostic.h (output_buffer_state): New macro.
3699         * diagnostic.c (diagnostic_for_decl, sorry,
3700         default_print_error_function, output_do_verbatim,
3701         report_diagnostic, report_problematic_module): Use it.
3702         (wrap_text): Tweak.
3703         (output_format): Use wrap_text instead of maybe_wrap_text.
3704
3705 2000-08-22  Nick Clifton  <nickc@redhat.com>
3706
3707         * config/arm/lib1funcs.asm (ARM_DIV_MOD_BODY): New macro.
3708         Common code for ARM divide and modulus functions.
3709         (THUMB_DIV_MOD_BODY): New macro. Thumb equivalent of
3710         ARM_DIV_MOD_BODY.
3711         (FUNC_END): New macro: Common code at the end of the division and
3712         modulo functions.
3713         (THUMB_FUNCTION_START): New macro:  Common code at the start of
3714         Thumb functions.
3715         (__divsi3, __udivsi3, __modsi3, __umodsi3): Use new macros.
3716
3717 Tue Aug 22 20:34:52 2000  Kaz Kojima <kkojima@rr.iij4u.or.jp>
3718
3719         * config/sh/sh.md (cmpeqdi_t splitter): Fix a reverse testing.
3720
3721         * config/sh/sh.c (prepare_scc_operands): Apply force_reg to
3722         sh_compare_op1 when the mode is DImode and sh_compare_op1 isn't
3723         const0_rtx.
3724
3725 2000-08-22  Nick Clifton  <nickc@redhat.com>
3726
3727         * config/arm/lib1funcs.asm (__umodsi3): Before performing any
3728         restorative additions, test for bottom bits of IP being set,
3729         rather than relying upon the RORs not matching.
3730         (__modsi3): Ditto.
3731
3732 2000-08-22  David Edelsohn  <edelsohn@gnu.org>
3733
3734         * aix.h (ASM_DECLARE_FUNCTION_NAME): Call named_section() or
3735         text_section() as appropriate instead of emitting text csect
3736         pseudo-op directly.
3737         (TEXT_SECTION_ASM_OP): Only require default 32-bit alignment.
3738         (UNIQUE_SECTION): Define macro.
3739         (ASM_OUTPUT_SECTION_NAME): Define macro.
3740         * rs6000.c (rs6000_override_options): Disable -ffunction-sections
3741         on AIX if debugging and -fdata-sections always.
3742
3743 2000-08-22  Steven King  <sxking@uswest.net>
3744
3745         * config/float-i386.h (LDBL_EPSILON): Remove __convert_long_double
3746         machinery.
3747         (LDBL_MAX): Same here.
3748
3749 2000-08-22  Richard Henderson  <rth@cygnus.com>
3750
3751         * flow.c (tidy_fallthru_edge): Update b->end properly.
3752
3753 2000-08-22  Stan Cox  <scox@redhat.com>
3754
3755         * Makefile.in (OBJS): Add dependence.o.
3756         * dependence.c: New file.
3757
3758 2000-08-22  Alexandre Oliva  <aoliva@redhat.com>, John David Anglin  <dave.anglin@nrc.ca>
3759
3760         * calls.c (check_sibcall_argument_overlap_1): Adjust for
3761         ARGS_GROW_DOWNWARD.
3762         (check_sibcall_argument_overlap): Likewise.
3763
3764 2000-08-22  Alexandre Oliva  <aoliva@redhat.com>
3765
3766         * invoke.texi (SH Options): Document -m4-nofpu,
3767         -m4-single-only, -m4-single, -m4, -mbigtable, -mfmovd,
3768         -mhitachi, -mnomacsave, -misize, -mpadstruct, -mspace.
3769
3770 2000-08-22  Joseph S. Myers  <jsm28@cam.ac.uk>
3771
3772         * c-common.c (check_format_info): Give the 'some locales' warning
3773         for strftime %Ey rather than the unconditional 'only last 2 digits
3774         of year' one.
3775
3776 2000-08-22  Richard Henderson  <rth@cygnus.com>
3777
3778         * alias.c (init_alias_analysis): Do not register
3779         struct_value_incoming_rtx or static_chain_rtx as pointing
3780         to stack memory.
3781
3782 Tue Aug 22 01:44:43 2000  Jeffrey A Law  (law@cygnus.com)
3783
3784         * protoize.c (munge_compile_params): Fix typo and formatting buglets.
3785
3786 2000-08-22  Gabriel Dos Reis  <gdr@codesourcery.com>
3787
3788         * diagnostic.h (report_problematic_module): Declare.
3789         * diagnostic.c (report_problematic_module): New function.
3790         (report_error_function): Tweak.
3791
3792 Tue Aug 22 02:31:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3793
3794         * stmt.c (expand_goto_internal, fixup_gotos): Only check
3795         TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
3796
3797 2000-08-21  Richard Henderson  <rth@cygnus.com>
3798
3799         * flow.c (calculate_global_regs_live): Mark frame pointer live
3800         everywhere before reload.
3801
3802 2000-08-21  Jim Wilson  <wilson@cygnus.com>
3803
3804         * real.c (ereal_from_int, ereal_from_uint, significand_size): Handle
3805         INTEL_EXTENDED_IEEE_FORMAT.
3806         (toe64): Delete INTEL_EXTENDED_IEEE_FORMAT support.  Unconditionally
3807         clear last two bytes of output FP value.
3808
3809 2000-08-21  Graham Stott  <grahams@cygnus.co.uk>
3810
3811         * config/ia64/ia64.h (REDO_SECTION_INFO_P): Change decl to DECL.
3812
3813 2000-08-21  Jakub Jelinek  <jakub@redhat.com>
3814
3815         * unroll.c (loop_find_equiv_value): If ret is modified between
3816         insn and loop_start, ret might not be equivalent to reg.
3817
3818 2000-08-21  Joseph S. Myers  <jsm28@cam.ac.uk>
3819
3820         * c-common.c (init_dollar_format_checking,
3821         maybe_read_dollar_number, finish_dollar_format_checking): New
3822         functions.
3823         (dollar_arguments_used, dollar_arguments_count,
3824         dollar_first_arg_num, dollar_max_arg_used, dollar_format_warned):
3825         New variables.
3826         (check_format_info): Support $ formats for scanf and printf width
3827         and precision.  Always increment format_chars to advance past the
3828         '*' of precision, not just when the format parameters are
3829         available to check.
3830
3831 2000-08-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3832
3833         * mips.c (block_move_loop, expand_block_move,
3834         function_arg_partial_nregs, save_restore_insns, function_prologue,
3835         mips_expand_prologue, RA_MASK): Avoid using the `U' integer
3836         constant suffix.
3837         (function_arg_advance, function_arg): Match argument to format
3838         specifier `%p'.
3839
3840 2000-08-21  Nix  <nix@esperi.demon.co.uk>
3841
3842         * gcc.c (do_spec_1): Implement %j spec flag.
3843         Remove dead comment.
3844
3845         * gcc.texi (The Configuration File): Document HOST_BIT_BUCKET.
3846         * system.h (HOST_BIT_BUCKET): Default to "/dev/null".
3847         * config/i386/xm-dos.h (HOST_BIT_BUCKET): Define as "NUL".
3848         * config/i386/xm-os2.h, config/winnt/winnt.h: Likewise.
3849
3850         * protoize.c (munge_compile_params): Use HOST_BIT_BUCKET (if
3851         writable) instead of hardcoded value.
3852
3853         * toplev.c (compile_file): Output to a file even if -fsyntax-only.
3854
3855         * gcc.c, config/i386/xm-dos.h, config/i386/xm-os2.h: Kill
3856         MKTEMP_EACH_FILE.
3857
3858         * gcc.c (cc1_options): Do not process -o or run the assembler if
3859         -fsyntax-only.
3860         * objc/lang-spec.h: Likewise.
3861
3862 2000-08-21  Eli Zaretskii  <eliz@is.elta.co.il>
3863
3864         * fixinc/fixincl.c (fix_with_system): Pipe the output of
3865         "external" fixes through `cat', to avoid truncating the input
3866         file by redirection.
3867
3868 2000-08-21  Jakub Jelinek  <jakub@redhat.com>
3869
3870         * config/i386/i386.md (lea_general_1): Copy insn condition to split
3871         condition.
3872         (lea_general_2, lea_general_3): Likewise.
3873
3874 2000-08-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3875
3876         * c-decl.c (duplicate_decls, define_label): Restrict -Wtraditional
3877         warnings to user code.
3878
3879         * c-lex.c (readescape, yylex): Likewise.
3880
3881         * c-typeck.c (store_init_value, process_init_element): Likewise
3882         (c_expand_start_case): Format.
3883
3884 2000-08-18  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
3885
3886         * mips/linux.h (LINK_SPEC): Use %(endian_spec).
3887
3888         * mips/mips.h: Change LINKER_ENDIAN_SPEC to ENDIAN_SPEC
3889         and linker_endian_spec to endian_spec.
3890         (ENDIAN_SPEC): Add %{EB} and %{EL}.
3891         (LINK_SPEC): Remove %{EB} and %{EL}.
3892         (ASM_SPEC): Likewise.  Use %(endian_spec).
3893
3894 2000-08-21  Joseph S. Myers  <jsm28@cam.ac.uk>
3895
3896         * c-tree.h (flag_hosted): Move declaration from here...
3897         * c-common.h (flag_hosted): ... to here.
3898         (flag_noniso_default_format_attributes): New declaration.
3899         * c-decl.c (flag_noniso_default_format_attributes): New variable.
3900         (c_decode_option): Set it appropriately for options choosing
3901         language standard variant.
3902         * c-common.c (init_function_format_info): Only provide default
3903         format attributes if flag_hosted.  Only provide the gettext
3904         formats if flag_noniso_default_format_attributes.  Update
3905         comments.
3906         (check_format_info): Disable treatment of %a as a scanf flag in
3907         C99 mode.
3908
3909 2000-08-21  Joseph S. Myers  <jsm28@cam.ac.uk>
3910
3911         * c-common.c (scan_char_table): Add 'w' to flags for all formats
3912         except 'n'.
3913         (check_format_info): Set 'wide' for scanf format widths.  Warn for
3914         a zero scanf width.  Make the check for writing into a constant
3915         object at the first level of indirection; at later levels, warn if
3916         any type qualifiers are encountered.
3917
3918 Mon Aug 21 07:41:12 2000  Jeffrey A Law  (law@cygnus.com)
3919
3920         * reload.c (reload_inner_reg_of_subreg): New function broken out of
3921         push_reload.
3922         (push_reload): Use reload_inner_reg_of_subreg.
3923         (combine_reloads): Do not combine reloads if the input reload
3924         is a SUBREG in which the inner part will need reloading.
3925
3926         * global.c (global_alloc): Avoid passing dumpfile argument to
3927         reload routines.
3928         * toplev.c (rest_of_compilation): Likewise.
3929         * reload.h (reload): Remove dumpfile argument.  Callers changed.
3930         (debug_reload, debug_reload_to_stream): Move prototypes here.
3931         * rtl.h  (reload): Remove dumpfile argument.
3932         * reload.c (debug_reload): Remove prototype.
3933         (debug_reload_to_stream): Likewise.
3934         * reload1.c: Avoid passing dumpfile around, rely on rtl_dump_file
3935         instead.
3936
3937 2000-08-21  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
3938
3939         * diagnostic.c (context_as_prefix): Export.
3940         (need_error_newline): Remove.
3941         (lang_diagnostic_starter, lang_diagnostic_finalizer): New objects.
3942         (error_module_changed, record_last_error_module,
3943         error_function_changed, record_last_error_function): New functions.
3944         (initialize_diagnostics): Default intialize
3945         lang_diagnostic_starter, lang_diagnostic_finalizer.
3946         (init_output_buffer): Tweak.
3947         (file_name_as_prefix): New function.
3948         (announce_function, default_print_error_function,
3949         report_error_function, set_diagnostic_context): Tweak.
3950
3951 2000-08-21  Richard Earnshaw  <rearnsha@arm.com>
3952
3953         * flow.c (init_propagate_block_info): Handle SUBREG in a jump
3954         condition expression.
3955
3956 2000-08-20  Richard Henderson  <rth@cygnus.com>
3957
3958         * flow.c (merge_blocks_nomove): Don't seek back past the bb note.
3959
3960 2000-08-20  Zack Weinberg  <zack@wolery.cumb.org>
3961
3962         * cppinit.c (cpp_init): Set global flag when called.
3963         (cpp_reader_init): Bomb out if cpp_init hasn't been called.
3964
3965 Sun Aug 20 01:41:35 2000  Dennis Chernoivanov  <cdi@sparc.spb.su>
3966
3967         * cpplex.c (cpp_scan_buffer): Move `output_line_command' just
3968         before `process_directive' so that newlines won't be missed
3969         for directives.
3970         (cpp_printf): Increment `print->lineno' when newline is emitted.
3971
3972         * cppmain.c (cb_ident): Likewise.
3973         (cb_define): Likewise.
3974         (cb_undef): Likewise.
3975         (cb_include): Likewise.
3976         (cb_def_pragma): Likewise.
3977         (dump_macros_helper): Likewise.
3978
3979 2000-08-20  Richard Henderson  <rth@cygnus.com>
3980
3981         * config/ia64/ia64.c (emit_insn_group_barriers): Stop if ar.lc
3982         assigned before a loop.
3983
3984         * config/ia64/ia64.md (ashlsi3): Zero extend the shift count.
3985         (ashrsi3, lshrsi3): Likewise.
3986
3987 2000-08-20  Gabriel Dos Reis  <gdr@codesourcery.com>
3988
3989         * c-lang.c: #include diagnostic.h
3990         (c_tree_printer): New function.
3991         (lang_init): Initialize lang_printer.
3992
3993         * Makefile.in (c-lang.o): Depends on diagnostic.h
3994
3995 2000-08-20  Gabriel Dos Reis  <gdr@codesourcery.com>
3996
3997         * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic.
3998
3999         * diagnostic.c (default_diagnostic_starter,
4000         default_diagnostic_finalizer): New functions.
4001         (diagnostic_for_asm, diagnostic_for_decl): Tweak.
4002         (pedwarn, pedwarn_with_file_and_line, error,
4003         error_with_file_and_line, fatal, warning,
4004         warning_with_file_and_line): Adjust call to report_diagnostic.
4005         (report_diagnostic): Rework.
4006         (set_diagnostic_context): New function.
4007
4008         * diagnostic.h (struct diagnostic_context): New data structure.
4009         (diagnostic_message, diagnostic_argument_list,
4010         diagnostic_file_location, diagnostic_line_location,
4011         diagnostic_is_warning, diagnostic_starter, diagnostic_finalizer,
4012         diagnostic_finalizer, diagnostic_auxiliary_data): New macros.
4013         (set_diagnostic_context): Declare.
4014         (report_diagnostic): Change prototype.
4015
4016 Sun 20-Aug-2000 09:25:45 BST  Neil Booth  <NeilB@earthling.net>
4017
4018         * fix-header.c (main): Initialize cpplib.
4019
4020 2000-08-19  Michael Meissner  <meissner@redhat.com>
4021
4022         * ifcvt.c (find_if_block): Do not assume that a THEN block has any
4023         instructions in it before checking for indirect jumps.
4024
4025         * ifcvt.c (find_if_block): Do not consider a THEN block that ends
4026         in a indirect jump as a potential for conditional execution.
4027
4028         * d30v.h (d30v_init_expanders): Don't declare here.
4029         * d30v-protos.h (d30v_init_expanders): Declare here with a valid
4030         prototype.
4031
4032 Sat 19-Aug-2000 21:11:45 BST  Neil Booth  <NeilB@earthling.net>
4033
4034         * cpp.texi: Add @section for assertions.
4035
4036 Sat Aug 19 12:37:08 EDT 2000  John Wehle  (john@feith.com)
4037
4038         * loop.c (scan_loop): Use CONST_CALL_P instead of
4039         checking for REG_LIBCALL / REG_RETVAL.
4040
4041 Sat Aug 19 09:18:47 2000  Jeffrey A Law  (law@cygnus.com)
4042
4043         * reload1.c (reload_as_needed): Accept dumpfile argument,
4044         pass it to emit_reload_insns.
4045         (emit_reload_insns): Add new dumpfile argument.  If non-null
4046         then dump the reloads for each insn into the dumpfile.
4047         (reload): Pass dumpfile to reload_as_needed.
4048
4049         * invoke.texi: Clean up linux-gnu vs linux comments.
4050
4051 2000-08-19  Richard Henderson  <rth@cygnus.com>
4052
4053         * config/ia64/ia64.c (reg_or_5bit_operand): New.
4054         (ia64_depz_field_mask): New.
4055         * config/ia64/ia64.h (CONSTRAINT_OK_FOR_R): New.
4056         (PREDICATE_CODES): Update.
4057         * config/ia64/ia64.md: Update commentary.
4058         (depz_internal): New.
4059         (ashlsi3): Implement directly.
4060         (ashrsi3, lshrsi3): Simplify; rely on extv and extzv for constants.
4061         (ashldi3): Use shladd.
4062         * config/ia64/ia64-protos.h: Update.
4063
4064 2000-08-18  Zack Weinberg  <zack@wolery.cumb.org>
4065
4066         * toplev.c (independent_decode_option): Always process -g.
4067         Remove third argument, now unused.  Adjust caller to match.
4068
4069 2000-08-18  Richard Henderson  <rth@cygnus.com>
4070
4071         * combine.c (make_compound_operation): Break after creating
4072         the extraction.
4073
4074 2000-08-18  Zack Weinberg  <zack@wolery.cumb.org>
4075
4076         * cpplib.c (cpp_register_pragma_space): Just return if the
4077         namespace is already registered.
4078
4079 2000-08-18  Ray Essick <essick@ddna.labs.mot.com> & Nick Clifton  <nickc@redhat.com>
4080
4081         * config/mcore/mcore.md (rotlsi3): Allow allow rotations by a
4082         constant amount.  Do not generate ROTL instruction.
4083
4084 Fri Aug 18 16:22:20 2000  Alexandre Oliva  <aoliva@redhat.com>
4085
4086         * config/sh/elf.h: Do not include sh/sh.h.
4087         * config/sh/rtems.h: Likewise.
4088         * config/sh/rtemself.h: Do not include sh/elf.h.
4089         * configure.in: Get them included with `tm_file's.
4090         * configure: Rebuilt.
4091
4092         * config/sh/sh.md (fpu_switch0, fpu_switch1): Simplify.
4093         * config/sh/sh.c (fpscr_set_from_mem): Use them.
4094
4095 Fri Aug 18 14:23:18 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4096
4097         * stor-layout.c (compute_record_type): Don't use mode of single
4098         field as mode of record if not integer mode of same type.
4099
4100         * regmove.c (perhaps_ends_bb_p): New function.
4101         (optimize_reg_copy_1, optimize_reg_copy_2): Call it.
4102         (optimize_reg_copy_3, fixup_match_2, regmove_optimize): Likewise.
4103         (fixup_match_1): Likewise.
4104         (fixup_match_1, combine_stack_adjustments_for_block): Add casts to
4105         avoid signed/unsigned warnings.
4106
4107         * function.c (fixup_var_refs_1, case MEM): Update CODE after
4108         updating X.
4109
4110 Fri 18-Aug-2000 18:33:45 BST  Neil Booth  <NeilB@earthling.net>
4111
4112         * cpphash.h: Use HAVE_DESIGNATED_INITIALIZERS.
4113         (_cpp_trigraph_map): Declaration moved from cpplex.c
4114
4115         * cppinit.c: Define _cpp_trigraph_map.  Use UCHAR_MAX + 1
4116         instead of 256.  Use consistent test for designated initializers.
4117         (cpp_init): Initialize trigraph_map.
4118         (initialize_standard_includes, parse_option):  Use memcmp
4119         instead of strncmp.
4120
4121         * cpplex.c (init_trigraph_map): Remove.
4122         (trigraph_ok, trigraph_replace, lex_line): Refer to
4123         _cpp_trigraph_map.
4124
4125         * cpplib.c (str_match, WARNING, ERROR, ICE): Delete.
4126         (do_unassert): Remove unused "next" local.
4127
4128         * system.h (HAVE_DESIGNATED_INITIALIZERS): New prototype.
4129
4130 2000-08-18  Emmanuel Marty  <emarty@suntech.fr>
4131
4132         * arm/lib1funcs.asm (_umodsi3 THUMB VARIANT): Restore deleted return
4133         insn.
4134
4135 2000-08-17  Richard Henderson  <rth@cygnus.com>
4136
4137         * config/ia64/ia64.c (spill_restore_mem): Handle emitting
4138         the first insn in a sequence.
4139
4140 Thu Aug 17 22:40:05 EDT 2000  John Wehle  (john@feith.com)
4141
4142         * alias.c (true_dependence, write_dependence_p): A read
4143         involving a label_ref or the constant pool doesn't create
4144         a dependency.
4145
4146         * rtl.h (unchanging): Improve documentation.
4147
4148 2000-08-17  Rodney Brown  <RodneyBrown@mynd.com>
4149
4150         * cse.c (insert_regs): Remove unused `regno'.
4151
4152 2000-08-17  Neil Booth  <NeilB@earthling.net>
4153
4154         * (cppinit.c) merge_include_chains: Use remove_dup_dir,
4155         remove_dup_dirs.  If qtail == brack, remove brack not
4156         qtail.
4157         (remove_dup_dir, remove_dup_dirs): New functions.
4158
4159 2000-08-17  Neil Booth  <NeilB@earthling.net>
4160
4161         * cppinit.c (cpp_cleanup): Free include dir chains.
4162         * cpplib.c (do_undef): Let _cpp_free_definition make the node void.
4163         (do_unassert): Free the assert with _cpp_free_definition.
4164         * cppmacro.c (_cpp_free_definition): Free memory allocated for
4165         assertions.  Make the node a T_VOID node.
4166
4167 2000-08-17  Neil Booth  <NeilB@earthling.net>
4168
4169         * cppinit.c (path_include, append_include_chain):
4170         Remove 2nd parameter (struct cpp_pending *).
4171         (path_include, initialize_standard_includes, cpp_handle_option):
4172         Update callers appropriately.
4173         (cpp_handle_option): Use pend.
4174
4175 2000-08-17  Neil Booth  <NeilB@earthling.net>
4176
4177         * cppinit.c (sort_options): Remove, put functionality in
4178         cpp_init.
4179         (cpp_init): New.
4180         (initialize_builtins): Free memory.
4181         (cpp_start_read): Move init_IStable to cpp_init.
4182
4183         * cpplib.h (cpp_init): New prototype.
4184         * cppmain.c (main): Call cpp_init.
4185
4186 Thu Aug 17 13:20:32 EDT 2000  John Wehle  (john@feith.com)
4187
4188         * rtlanal.c (rtx_unstable_p): Use CONSTANT_P.
4189         (rtx_unstable_p, rtx_varies_p): Process vectors.
4190
4191 2000-08-16  Niibe Yutaka  <gniibe@m17n.org>, Kaz Kojima  <kkojima@rr.iij4u.or.jp>
4192
4193         * config/sh/lib1funcs.asm (GLOBAL): Define.  Use for all
4194         references to GLOBAL symbols.  Use LOCAL where appropriate.
4195
4196 2000-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4197
4198         * configure.in (*-ibm-aix4.[12]*): Delete test for gnu ld.  Always
4199         use t-aix41 when host == target.
4200
4201 2000-08-16  Richard Henderson  <rth@cygnus.com>
4202
4203         * reload.c (push_secondary_reload): Revert last change.
4204         If we use a reload_in/out pattern, make the when the same
4205         as the primary reload.
4206         (find_reloads): Likewise.
4207
4208 2000-08-16  Manfred Hollstein  <manfredh@redhat.com>
4209
4210         * configure.in (libstdcxx-v3): Fix test.
4211         * configure: Regenerate.
4212
4213 Wed Aug 16 08:10:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4214
4215         * calls.c (calls_function_1, expand_call): Only test
4216         TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
4217         * function.c (thread_prologue_and_epilogue_insns): Likewise.
4218
4219 2000-08-16  Richard Henderson  <rth@cygnus.com>
4220
4221         * combine.c (simplify_shift_const): Revert previous two
4222         changes.  If SHIFT_COUNT_TRUNCATED, crop the shift count
4223         before the main loop.
4224
4225 2000-08-15  Richard Henderson  <rth@cygnus.com>
4226
4227         * combine.c (simplify_shift_const): Bound shift count when
4228         combining shifts.
4229
4230 Tue Aug 15 17:33:05 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4231
4232         * calls.c (ECF_SP_DEPRESSED): New macro.
4233         (calls_function_1): Treat calling sp-depressed function as alloca.
4234         (emit_call_1): Don't adjust SP if calling sp-depressed function.
4235         (expand_call): Set ECF_SP_DEPRESSED if TYPE_RETURNS_STACK_DEPRESSED.
4236         If sp-depressed, ensure block saves and restores SP.
4237         * fold-const.c (extract_muldiv): Only check TYPE_IS_SIZETYPE
4238         for INTEGER_TYPE.
4239         * function.c (keep_stack_depressed): New function.
4240         (thread_prologue_and_epilogue_insns): Call it.
4241         * print-tree.c (print_node): Use HOST_WIDE_INT_PRINT_UNSIGNED
4242         to print DECL_OFFSET_ALIGN.
4243         Print no-force-blk and transparent-union flags properly.
4244         * stmt.c (expand_goto_internal): Don't restore stack if last block
4245         and function returns with sp depressed.
4246         (fixup_gotos): Likewise.
4247         (save_stack_pointer): New function, from code in expand_decl.
4248         (expand_decl): Call new function.
4249         * tree.h (TYPE_IS_SIZETYPE): Call INTEGER_TYPE_CHECK.
4250         (TYPE_RETURNS_STACK_DEPRESSED): New macro.
4251         (save_stack_pointer): New declaration.
4252
4253         * diagnostic.c (fatal_function): New variable.
4254         (set_fatal_function): New function.
4255         (fatal): Call it.
4256         * diagnostic.h (set_fatal_function): New declaration.
4257
4258 2000-08-15  William Cohen  <wcohen@redhat.com>
4259
4260         * config/sh/elf.h (DWARF2_DEBUGGING_INFO): Defined.
4261         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2 info.
4262         (DWARF2_ASM_LINE_DEBUG_INFO): Defined.
4263
4264 2000-08-15  Richard Henderson  <rth@cygnus.com>
4265
4266         * flow.c (mark_used_reg): Set reg_cond_reg appropriately.
4267
4268 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
4269
4270         * arm.c (arm_function_ok_for_sibcall): New function.
4271         * arm.h (FUNCTION_OK_FOR_SIBCALL): Define.
4272         * arm.md (call expanders): Don't check here for calls that can't
4273         be sibling calls.
4274
4275 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
4276
4277         * arm.md (splits generating cond_exec): Disable.
4278
4279 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
4280
4281         * arm/linux-elf.h (text_section): Delete declaration.
4282
4283 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
4284
4285         ARM support for unordered FP operations.
4286         * arm-protos.h (arm_comparison_operator): Declare.
4287         * arm.c (arm_comparison_operator): New function.
4288         (arm_select_cc_mode): Add unordered comparison codes.
4289         (get_arm_condition_code): Likewise.
4290         (arm_final_prescan_insn): Can't handle unordered jumps that can't
4291         be done in one insn.
4292         * arm.h (PREDICATE_CODES): Add arm_comparison_operator.
4293         * arm.md (all uses of comparison_operator): Replace with
4294         arm_comparison_operator.
4295         (bunordered, bordered, bugt, bunlt, bunge, bunle, buneq, bltgt): New
4296         expands.
4297         (arm_buneq, arm_bltgt, arm_buneq_reversed, arm_bltgt_reveresed): New
4298         patterns.
4299
4300 Tue Aug 15 00:36:36 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
4301
4302         * gthr-posix.h: Conditionally include <sched.h>; include
4303         <config.h> from libobjc/.
4304
4305 2000-08-14  Richard Henderson  <rth@cygnus.com>
4306
4307         * config/i386/i386.c (legitimize_pic_address): Use Pmode
4308         for all CONSTs.
4309
4310 2000-08-14  Richard Henderson  <rth@cygnus.com>
4311
4312         * configure.in (ia64-*): Set float_format for i386 long double.
4313
4314         * real.c (GET_REAL): Treat 128-bit INTEL_EXTENDED_IEEE_FORMAT
4315         as we would for i386 XFmode.
4316         (PUT_REAL): Likewise.
4317         (endian, ereal_atof, real_value_truncate): Likewise.
4318         (ereal_isneg, toe64, etens, make_nan): Likewise.
4319         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Likewise.
4320
4321         * config/ia64/ia64-protos.h: Update.
4322         * config/ia64/ia64.c (general_tfmode_operand): New.
4323         (destination_tfmode_operand): New.
4324         (tfreg_or_fp01_operand): New.
4325         (ia64_split_timode): New.
4326         (spill_tfmode_operand): New.
4327         (ia64_expand_prologue): Use TFmode not XFmode.
4328         (ia64_expand_epilogue): Likewise.
4329         (ia64_function_arg): Likewise.
4330         (ia64_function_arg_advance): Likewise.
4331         (ia64_return_in_memory): Likewise.
4332         (ia64_function_value): Likewise.
4333         (ia64_print_operand): Likewise.
4334         (ia64_register_move_cost): Set GR<->FR to 5.
4335         (ia64_secondary_reload_class): Get GR for TImode memory op.
4336         * config/ia64/ia64.h (ROUND_TYPE_SIZE): Remove.
4337         (ROUND_TYPE_ALIGN): Remove.
4338         (LONG_DOUBLE_TYPE_SIZE): Set to 128.
4339         (INTEL_EXTENDED_IEEE_FORMAT): Define.
4340         (HARD_REGNO_NREGS): Use TFmode, not XFmode.
4341         (HARD_REGNO_MODE_OK): Likewise.  Disallow TImode in FRs.
4342         (MODES_TIEABLE_P): Use TFmode, not XFmode.
4343         (CLASS_MAX_NREGS): Likewise.
4344         (ASM_OUTPUT_LONG_DOUBLE): Output by 4 byte hunks.
4345         (PREDICATE_CODES): Update.
4346         * config/ia64/ia64.md (movti): New.
4347         (movti_internal): Use a clobber for memory alternatives.
4348         (reload_inti, reload_outti): New.
4349         (movsfcc_astep): Predicate properly.
4350         (movdfcc_astep): Likewise.
4351         (movxf): Remove.
4352         (movtf): New.
4353         (extendsftf2, extenddftf2): New.
4354         (trunctfsf2, trunctfdf2): New.
4355         (floatditf2, fix_trunctfdi2): New.
4356         (floatunsditf2, fixuns_trunctfdi2): New.
4357         (addtf3, subtf3, multf3, abstf2): New.
4358         (negtf2, nabstf2, mintf3, maxtf3): New.
4359         (maddtf3, msubtf3, nmultf3, nmaddtf3): New.
4360         (cmptf): New.
4361         (fr_spill): Use TFmode, not XFmode.
4362         (fr_restore): Likewise.
4363         * config/ia64/lib1funcs.asm (__divtf3): New.
4364         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add it.
4365
4366 2000-08-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4367
4368         * cse.c (fold_rtx): Avoid empty body in an if-statement.
4369
4370         * doloop.c (doloop_iterations_max, doloop_modify): Avoid using the
4371         `U' integer constant suffix.
4372
4373         * dwarf2out.c (add_subscript_info): Avoid empty body in an
4374         else-statement.
4375
4376         * sparc/sol2.h (__enable_execute_stack): Prototype.
4377
4378 2000-08-14  David Edelsohn  <edelsohn@gnu.org>
4379
4380         * collect2.c: Remove use of AIX import file.
4381
4382         * longlong.h: Test ARCH_PWR not ARCH_POWER.
4383
4384         * rs6000.c (print_operand, case 'E'): Add else.
4385
4386 2000-08-14  Richard Henderson  <rth@cygnus.com>
4387
4388         * config/ia64/ia64.md (movdi): Delay calling ia64_expand_load_address.
4389         (movdi_symbolic): New.
4390
4391 2000-08-14  Jim Wilson  <wilson@cygnus.com>
4392
4393         * config/ia64/ia64.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic
4394         to GNU as.  For Intel as, pass -M const_gp and -M no_plabel.
4395         * config/ia64/linux.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic
4396         to GNU as.
4397
4398 2000-08-14  Richard Henderson  <rth@cygnus.com>
4399
4400         * expr.c (emit_group_load): Don't force constants into registers.
4401         Special case source already in the correct mode.
4402
4403 2000-08-14  Zack Weinberg  <zack@wolery.cumb.org>
4404
4405         * configure.in: Accept *-*-linux* not just *-*-linux-gnu*.
4406         * fixinc/inclhack.def: Likewise.
4407         * fixinc/mkfixinc.sh: Likewise.
4408         * configure: Regenerate.
4409         * fixinc/fixincl.x: Regenerate.
4410         * install.texi: Document equivalence of linux and linux-gnu.
4411
4412 Mon Aug 14 18:51:44 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4413
4414         * cse.c (insert_regs): Also in REG case: When finding an invalid
4415         value, and we make a new quantity, make sure that it won't be
4416         mistaken by for a valid one by mention_regs.
4417
4418 2000-08-13  Ralf Gütlein <ralf.guetlein@aranea.de>
4419
4420         * h8300.md: Remove obsolete peepholes.
4421
4422 2000-08-13  Kazu Hirata  <kazu@hxi.com>
4423
4424         * invoke.texi (H8/300 Options): Fix typos.
4425         * config/h8300.c: Fix formatting.
4426         * config/h8300.h: Fix comment typos.
4427         (OVERRIDE_OPTIONS): Fix formatting.
4428
4429         * function.c: Fix formatting.
4430
4431         * cse.c: Fix formatting.
4432
4433 2000-08-13  Geoff Keating  <geoffk@cygnus.com>
4434
4435         * flow.c (attempt_auto_inc): Remove unused variable `bb'.
4436         (attempt_auto_inc): Suppress parentheses warning.
4437         * function.c (put_reg_into_stack): Remove unused variable `unsigned_p'.
4438         * loop.c (load_mems): Remove `u' suffix in two places.
4439         * config/rs6000/rs6000.c: Remove unnecessary `u' suffixes from
4440         hex constants.
4441         * config/rs6000/rs6000.h: Likewise.
4442         * config/rs6000/sol-c0.c: Prototype some functions.  Remove the
4443         __eabi dummy routine.
4444         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Remove unused
4445         variable `buf_ptr'.
4446
4447         * config/rs6000/rs6000.c (rs6000_select_section): Rewrite to
4448         not put stuff in .sdata unnecessarily.
4449         (rs6000_unique_section): New function.
4450         * config/rs6000/rs6000-protos.h: Add rs6000_unique_section.
4451         * config/rs6000/sysv4.h (UNIQUE_SECTION): Define.
4452
4453         * c-typeck.c (build_array_ref): Don't complain about non-lvalue
4454         arrays in C99.  Don't try to look at DECL_REGISTER of a
4455         COMPONENT_REF.  Don't complain twice about the same error.
4456
4457         * fixinc/inclhack.def (aix_pthread): New fix.
4458         (aix_sysmachine): New fix.
4459         * fixinc/fixincl.x: Regenerate.
4460
4461         * expr.c (expand_expr): Call convert_modes when turning a large
4462         multiply into a small one.
4463
4464 2000-08-12  Geoff Keating  <geoffk@cygnus.com>
4465
4466         * tree.h (DECL_OFFSET_ALIGN): Make the off_align field of
4467         the tree structure an exponent rather than an explicit alignment
4468         so it doesn't overflow.
4469         (SET_DECL_OFFSET_ALIGN): New macro.
4470         * stor-layout.c (place_union_field): Use SET_DECL_OFFSET_ALIGN
4471         rather than DECL_OFFSET_ALIGN.
4472         (place_field): Likewise.
4473         * expmed.c (store_bit_field): Abort on align==0 to avoid
4474         antisocial machine behaviour.
4475
4476 2000-08-12  Richard Henderson  <rth@cygnus.com>
4477
4478         * sibcall.c (uses_addressof): Accept both addressof and
4479         current_function_internal_arg_pointer inside a mem.
4480         (optimize_sibling_and_tail_recursive_call): Fail tail recursion
4481         if current_function_uses_addressof.
4482         * stmt.c (expand_return): Kill tail recursion and HAVE_return
4483         optimizations.
4484
4485 2000-08-11  Richard Henderson  <rth@cygnus.com>
4486
4487         * config/ia64/ia64.md (addsi3): Remove expander.
4488         (subsi3, mulsi3, negsi2, one_cmplsi2): Likewise.
4489         (*addsi3_shladd): New.
4490
4491 2000-08-11  Richard Henderson  <rth@cygnus.com>
4492
4493         * config/ia64/ia64.c (do_spill): Pass cfa offset to move expander.
4494         (do_restore): Likewise.
4495         (gen_movdi_x, gen_fr_spill_x, gen_fr_restore_x): New.
4496         (ia64_expand_prologue, ia64_expand_epilogue): Use them.
4497         (rtx_needs_barrier): Track actual bit manipulation for
4498         ar.unat moves, gr_spill, and gr_restore.
4499         (emit_insn_group_barriers): Special case gr_spill/gr_restore.
4500         (process_set): Don't handle varargs spills.
4501         * config/ia64/ia64.md (gr_spill): Accept cfa offset.  Emit
4502         .mem.offset here instead of in process_set.
4503         (gr_restore): Likewise.
4504
4505 2000-08-11  Richard Henderson  <rth@cygnus.com>
4506
4507         * config/ia64/ia64.h (PROMOTE_MODE): Only extend to SImode.
4508
4509 2000-08-11  Mark Elbrecht  <snowball3@bigfoot.com>
4510
4511         * gcc.texi (The Configuration File): Document
4512         COLLECT2_HOST_INITIALIZATION, GCC_DRIVER_HOST_INITIALIZATION, and
4513         UPDATE_PATH_HOST_CANONICALIZATION.
4514
4515 2000-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4516
4517         * c-parse.in (cast_expr): Avoid -Wstrict-prototype warnings for
4518         unprototyped function pointer casts on integer constants.
4519
4520 2000-08-11 Laurynas Biveinis <lauras@softhome.net>
4521
4522         * fixproto: Recognize DOS paths with drive letters as absolute paths.
4523
4524 2000-08-11  Nathan Sidwell  <nathan@codesourcery.com>
4525
4526         * extend.texi (Volatiles): Fix typos.
4527
4528 2000-08-11  Kazu Hirata  <kazu@hxi.com>
4529
4530         * flow.c: Fix formatting.
4531
4532 2000-08-11  Richard Henderson  <rth@cygnus.com>
4533
4534         * reload.c (push_secondary_reload): When invoking a reload_{in,out}
4535         pattern, always allocate a tertiary scratch register.
4536
4537         * config/alpha/alpha.md (reload_inqi): Use a DImode scratch.
4538         (reload_inhi): Likewise.
4539
4540 2000-08-11  Richard Henderson  <rth@cygnus.com>
4541
4542         * function.c (put_reg_into_stack): Allow type to be NULL.
4543         (schedule_fixup_var_refs): Likewise.
4544         (gen_mem_addressof): Allow decl to be NULL.
4545         (put_addressof_into_stack): Likewise.
4546
4547         * flow.c (merge_blocks_nomove): Be more careful about
4548         locating the beginning of block A.
4549
4550         * combine.c (simplify_shift_const): Obey SHIFT_COUNT_TRUNCATED.
4551
4552 Thu Aug 10 22:47:09 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
4553
4554         * configure.in:
4555         * configure:
4556         * gthr-posix.h:
4557         * config.in: Reverted the check for <sched.h>.
4558
4559 2000-08-10  Chris Demetriou  <cgd@sibyte.com>
4560
4561         * mips/elf.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME): New
4562         macros define the name of CTOR and DTOR sections.
4563         (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
4564         DTOR_LIST_END): Change to use attributes to specify
4565         sections.
4566         * mips/elf64.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME,
4567         (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
4568         DTOR_LIST_END): Same as in mips/elf.h.
4569
4570 2000-08-10  Drew Moseley  <dmoseley@redhat.com>
4571
4572         * config/mn10300/mn10300.h: Added no-crt0 option for explicitly
4573         disabling just crt0.o.
4574
4575 2000-08-10  Richard Earnshaw <rearnshaw@arm.com> & Nick Clifton  <nickc@cygnus.com>
4576
4577         * arm.h (CPP_SPEC): Use sub-spec cpp_interwork.
4578         (CPP_INTERWORK_SPEC, CPP_INTERWORK_DEFAULT_SPEC): New sub-specs.
4579         (EXTRA_SPECS): Add them.
4580         * arm/lib1funcs.asm: Support builds for interworking.
4581         Use macros to eliminate duplicated pieces of code.
4582
4583 2000-08-10  Kazu Hirata  <kazu@hxi.com>
4584
4585         * h8300.c (expand_a_rotate): New.
4586         (emit_a_rotate): Likewise.
4587         (h8300_adjust_insn_length): Add support for the rotate insns.
4588         * h8300.md (rotlqi3): New.
4589         (*rotlqi3_1): Likewise.
4590         (rotlhi3): Likewise.
4591         (*rotlhi3_1): Likewise.
4592         (rotlhi3): Likewise.
4593         (*rotlhi3_1): Likewise.
4594         * h8300-proto.h: Add prototypes for expand_a_rotate and
4595         emit_a_rotate.
4596
4597         * h8300.c: Fix comment typos.
4598         (dosize): Declare the variable amount as unsigned.
4599         (get_shift_alg): Fix a comparison between signed and unsigned.
4600         (emit_a_shift): Likewise.
4601         (h8300_adjust_insn_length): Simplify the code.
4602
4603         * c-decl.c: Fix formatting.
4604
4605 2000-08-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4606
4607         * c-lex.c (parse_float, yylex): For -Wtraditional, issue a
4608         warning about non-traditional numeric constant suffixes.
4609
4610         * cppexp.c (parse_number): Likewise.
4611
4612         * invoke.texi: (-Wtraditional): Document new behavior.
4613
4614 Thu Aug 10 00:11:04 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
4615
4616         * gthr-posix.h: Include auto-host.h. Conditionally include
4617         <sched.h>.
4618         * configure.in: Check for the <sched.h> header file.
4619         * config.in: Added define for HAVE_SCHED_H.
4620
4621 2000-08-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4622
4623         * c-typeck.c (process_init_element): For -Wtraditional, warn about
4624         initialization of unions.
4625
4626         * invoke.texi (-Wtraditional): Document new behavior.
4627
4628 2000-08-09  Zack Weinberg  <zack@wolery.cumb.org>
4629
4630         * configure.in (--enable-c-cpplib): Uncomment.  Use AC_DEFINE
4631         instead of extra_c_flags.
4632         (--enable-c-mbchar): Use AC_DEFINE instead of extra_c_flags.
4633         * configure: Regenerate.
4634         * config.in: Regenerate.
4635
4636         * cpperror.c (cpp_type2name): New function.
4637         * cpplex.c (lex_line): If we issued an error for an invalid
4638         preprocessing directive, discard that logical line.
4639         * cpplib.c (do_line): Call a hook function if the current file
4640         is renamed by #line.
4641         (do_ident): Pass the contents of the string, not the entire
4642         token, to the callback function.
4643         * cpplib.h (CPP_LAST_PUNCTUATOR): New #define.
4644         (cb.rename_file): New hook function.
4645         (cb.ident): Adjust prototype.
4646         (cpp_type2name): Prototype.
4647         * cppmacro.c (dump_macro_args): Correct precedence lossage.
4648
4649         * cppmain.c (cb_ident): Update for changed interface.
4650         (cb_rename_file): New function.
4651         (main): Set rename callback.
4652
4653 2000-08-09  Alexandre Oliva  <aoliva@redhat.com>
4654
4655         * caller-save.c (mark_referenced_regs): Mark partially-overwritten
4656         multi-word registers.
4657
4658 2000-08-08  Joseph S. Myers  <jsm28@cam.ac.uk>
4659
4660         * c-common.c (combine_strings, check_format_info): Refer to ISO C
4661         or ISO C89 instead of ANSI C.
4662         * c-decl.c (grokdeclarator, xref_tag, finish_struct,
4663         build_enumerator, do_case): Likewise.
4664         * c-lex.c (parse_float, yylex): Likewise.
4665         * c-parse.in: Likewise.
4666         * c-typeck.c (common_type, build_array_ref, build_binary_op,
4667         build_unary_op, pedantic_lvalue_warning, build_conditional_expr,
4668         build_c_cast, convert_for_assignment, set_init_index,
4669         set_init_label, c_expand_start_case): Likewise.
4670         * toplev.c (documented_lang_options, display_help): Likewise.
4671
4672 2000-08-08  Kazu Hirata  <kazu@hxi.com>
4673
4674         * h8300.c: Fix formatting.
4675         * h8300.h: Likewise.
4676         * h8300.md: Likewise.
4677         (movsi_h8300hs): Fix formatting of the resulting assembly code.
4678
4679         * reload1.c: Fix formatting.
4680
4681 2000-08-08  Rodney Brown  <RodneyBrown@mynd.com>
4682
4683         * alpha/alpha.c (alpha_emit_xfloating_libcall):
4684         Use GEN_CALL_VALUE define.
4685         * alpha/alpha.md (untyped_call): Use GEN_CALL define.
4686         * clipper/clipper.md (untyped_call): Likewise.
4687         * dsp16xx/dsp16xx.md (untyped_call): Likewise.
4688         * fx80/fx80.md (untyped_call): Likewise.
4689         * mips/mips.md (untyped_call): Likewise.
4690         * ns32k/ns32k.md (untyped_call): Likewise.
4691         * pa/pa.md (untyped_call): Likewise.
4692         * romp/romp.md (untyped_call): Likewise.
4693         * sparc/sparc.md (untyped_call): Likewise.
4694
4695 2000-08-08  Jason Eckhardt  <jle@cygnus.com>
4696
4697         * config/i860/i860.c (singlemove_string): Do not generate assembler
4698         pseudo instructions that must be expanded (that is, with signed
4699         constants larger than 16 bits).
4700
4701 2000-08-08  Richard Henderson  <rth@cygnus.com>
4702
4703         * flow.c (life_analysis): Only turn off PROP_LOG_LINKS and
4704         PROP_AUTOINC at -O0.  Don't collect alias info at -O0.
4705         (init_propagate_block_info): Don't kill memory stores at -O0.
4706         (mark_set_1, mark_used_regs): Likewise.
4707
4708 2000-08-08  David Edelsohn  <edelsohn@gnu.org>
4709
4710         * rs6000.c (optimization_options): Decorate 'level' as
4711         ATTRIBUTE_UNUSED.
4712         (mask64_operand): Remove sign-extend thinko.
4713         (rldic_operand): New function.
4714         (load_multiple_operation): regno's are unsigned ints.
4715         (store_multiple_operation): Likewise.
4716         (lmw_operation): Likewise.
4717         (stmw_operation): Likewise.
4718         (includes_lshift_p): shift_mask is unsigned int.
4719         (includes_lshift64_p): New function.
4720         (addrs_ok_for_quad_peep): unsigned int reg1.
4721         (print_operand): Consistently add "else" after
4722         output_operand_lossage().
4723         (print_operand, case 'b'): Fold in case 'W'.
4724         (print_operand, case 'W'): Print rldic MB value.
4725         (output_epilogue): Update Objective-C language string.
4726         (output_toc): unsigned HOST_WIDE_INT low, compare unsigned.
4727         * rs6000.h (PREDICATE_CODES): Add rldic_operand.
4728         * rs6000.md (ashldi3): Add rldic instruction.
4729         (iordi3, xordi3): Remove redundant "else if CONST_DOUBLE".
4730         (cmpsi_internal2, cmpdi_interal2): Use 'b' output template
4731         modifier.
4732
4733 2000-08-08  Richard Henderson  <rth@cygnus.com>
4734
4735         * config/ia64/ia64-protos.h: Remove duplicates.  Update
4736         for massive code rearrangements.
4737         * config/ia64/ia64.c (ia64_arpfs_regno): Remove.
4738         (ia64_rp_regno, ia64_fp_regno, ia64_input_regs): Remove.
4739         (ia64_local_regs, ia64_need_regstk): Remove.
4740         (ar_ccv_reg_operand): New.
4741         (ia64_gp_save_reg): New.
4742         (struct ia64_frame_info): Combine most of the size elements;
4743         add new gr save elements.
4744         (find_gr_spill): New.
4745         (next_scratch_gr_reg): New.
4746         (mark_reg_gr_used_mask): New.
4747         (ia64_compute_frame_size): Rewrite.  Allocate special AR regs
4748         to GR backing store regs when possible.
4749         (ia64_initial_elimination_offset): New.
4750         (ia64_rap_fp_offset): Remove.
4751         (save_restore_insns): Remove.
4752         (setup_spill_pointers): New.
4753         (finish_spill_pointers): New.
4754         (spill_restore_mem): New.
4755         (do_spill, do_restore): New.
4756         (ia64_expand_prologue): Rewrite to use them.
4757         (ia64_expand_epilogue): Likewise.
4758         (ia64_direct_return): Update for current_frame_info changes.
4759         (ia64_function_prologue): Simplify .prologue emission.  Emit
4760         .spill when needed.
4761         (ia64_setup_incoming_varargs): Don't ever emit rtl.
4762         (ia64_dbx_register_number): New.
4763         (ia64_initialize_trampoline): New.
4764         (ia64_secondary_reload_class): Request GR_REGS for integer
4765         arithmetic destined for FR_REGS.
4766         (ia64_init_machine_status): Don't reset return_address_pointer_rtx.
4767         (ia64_mark_machine_status): Mark ia64_gp_save.
4768         (rws_access_regno): Rename from rws_access_reg; don't treat
4769         predicates specially.
4770         (rws_access_reg): New.  Update all callers.
4771         (rtx_needs_barrier): Remove dead unspecs.
4772         (ia64_epilogue_uses): Mark ar.pfs and ar.unat live on exit.
4773         (ia64_encode_section_info): Silence signed/unsigned warnings.
4774         (spill_offset, sp_offset, spill_offset_emitted): Remove.
4775         (tmp_reg, tmp_saved): Remove.
4776         (process_set): Rewrite to expect complicated bits via
4777         REG_FRAME_RELATED_EXPR.
4778         (ia64_expand_fetch_and_op): Use emit_move_insn; be explicit
4779         in the use of ar.ccv; never set RTX_UNCHANGING_P.
4780         (ia64_expand_op_and_fetch): Likewise.
4781         (ia64_expand_compare_and_swap): Likewise.
4782         (ia64_expand_builtin): Likewise.
4783         * config/ia64/ia64.h (AR_UNAT_REGNUM): New.
4784         (FIRST_PSEUDO_REGISTER): Update.
4785         (AR_M_REGNO_P): Update.
4786         (FIXED_REGS): Don't mark three local registers as used.
4787         (EXTRA_CC_MODES): New.
4788         (SELECT_CC_MODE): New.
4789         (HARD_REGNO_NREGS): Allow DImode in p0; handle CCImode.
4790         (HARD_REGNO_MODE_OK): Disallow CCImode from non-predicates.
4791         (FRAME_GROWS_DOWNWARD): Unset.
4792         (STARTING_FRAME_OFFSET): Zero.
4793         (ELIMINABLE_REGS): Eliminate from the soft to hard frame pointer.
4794         (INITIAL_ELIMINATION_OFFSET): Defer to out of line function.
4795         (HARD_FRAME_POINTER_REGNUM): New.
4796         (CAN_DEBUG_WITHOUT_FP): Define.
4797         (TRAMPOLINE_TEMPLATE): Remove.
4798         (TRAMPOLINE_SIZE): Lower to 32.
4799         (TRAMPOLINE_ALIGNMENT): Lower to 64.
4800         (INITIALIZE_TRAMPOLINE): Defer to out of line function.
4801         (PREDICATE_CODES): Update.
4802         (struct machine_function): Add ia64_gp_save.
4803         * config/ia64/ia64.md: Purge unused unspecs.
4804         (movsi patterns): Allow moves to/from AR_M_REGS.
4805         (movdi patterns): Allow moves to/from p0.
4806         (call patterns): Move most setjmp hackery to ia64_gp_save_reg.
4807         (gr_spill, gr_restore): Indicate ar.unat read/written.
4808         (nonlocal_goto): Don't pass old frame_pointer.
4809         (nonlocal_goto_receiver): Remove.
4810         (exception_receiver): New.
4811         (builtin_setjmp_setup): New.
4812         (builtin_setjmp_receiver): New.
4813         * config/ia64/lib1funcs.asm (__ia64_save_stack_nonlocal): Bundle.
4814         (__ia64_nonlocal_goto): Bundle.  Don't kill r7.
4815         (__ia64_restore_stack_nonlocal): Likewise.
4816         (__ia64_trampoline): New.
4817         * config/ia64/sysv4.h (DBX_REGISTER_NUMBER): Defer to out of line
4818         function.
4819         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __trampoline.
4820
4821 2000-08-08  Richard Henderson  <rth@cygnus.com>
4822
4823         * frame.h (ia64_frame_state): Add my_psp.
4824         * libgcc2.c (ia64_throw_helper): Add throw_sp argument.
4825         (__throw): Pass it in.  Don't clobber r7.
4826         * config/ia64/frame-ia64.c (init_ia64_reg_loc): Mark inline.
4827         (execute_one_ia64_descriptor) [mem_stack_v]: Sets psp.when
4828         and nothing to do with sp.
4829         (normalize_reg_loc): Use frame->my_psp.
4830         (frame_translate): Handle frame-pointer-less functions.  Set
4831         spill_base correctly, in absence of being told.
4832         (__build_ia64_frame_state): New sp argument.  Fill in frame->my_sp.
4833         (__ia64_backtrace_helper): New sp argument.  Use
4834         builtin_return_address instead of label addresses.
4835         (print_record) [mem_stack_v]: No size member.
4836
4837 2000-08-08  Richard Henderson  <rth@cygnus.com>
4838
4839         * regclass.c (choose_hard_reg_mode): Iterate over all CC modes.
4840
4841 2000-08-08  Richard Henderson  <rth@cygnus.com>
4842
4843         * tm.texi (LOCAL_REGNO): Document.
4844         * flow.c (LOCAL_REGNO, EPILOGUE_USES): Provide default.
4845         (mark_regs_live_at_end): Don't mark LOCAL_REGNO registers.
4846         * reload1.c (reload): Likewise when considering nonlocal labels.
4847
4848         * config/ia64/ia64.h (LOCAL_REGNO): New.
4849         * config/sparc/sparc.h (LOCAL_REGNO): New.
4850
4851 2000-08-08  Joseph S. Myers  <jsm28@cam.ac.uk>
4852
4853         * c-lex.c (yylex): Don't allow integer suffixes 'LUL', 'Ll', 'lL'.
4854
4855 2000-08-07  Nick Clifton  <nickc@redhat.com>
4856
4857         * config/mips/mips.c: Fix compile time warning messages.
4858         * config/mips/mips-protos.h: Add prototype for equality_op.
4859
4860         * mn10300.h (TARGET_SWITCHES): Document `-mam33'.
4861
4862 2000-08-07  Graham Stott  <grahams@cygnus.co.uk>
4863
4864         * mn10300.md: Use nonimmediate_operand instead of general_operand
4865         on output operands.
4866
4867         * mn10300.h (PREFERRED_RELOAD_CLASS): Limit memory reloads.
4868
4869 2000-08-07  Alexandre Oliva  <aoliva@redhat.com>
4870
4871         * sh.h (EXTRA_CONSTRAINT_Q): Adjust to GNU Coding Standards.
4872         * sh.c (expand_block_move): Break long lines.
4873         (expand_ashiftrt, fpscr_set_from_mem): Likewise.
4874         * sh.md (mulsi3): Likewise.
4875         (movdi): Adjust spacing.
4876
4877 2000-08-07  Richard Henderson  <rth@cygnus.com>
4878
4879         * expmed.c (store_bit_field): Don't require MEM_IN_STRUCT_P.
4880         * expr.c (emit_group_store): Don't set it.
4881
4882 2000-08-07  Kazu Hirata  <kazu@hxi.com>
4883
4884         * invoke.texi (Options for Debugging Your Program or GCC): Remove
4885         duplicate entries for 'w' and 'z'.
4886
4887         * flow.c: Fix a comment typo.
4888
4889 Sun Aug  6 23:47:35 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
4890
4891         * c-parse.in: Changed the language string for Objective-C to "GNU
4892         Objective-C".
4893
4894 Sun Aug  6 11:54:03 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
4895
4896         * gthr-posix.h: Integrated Chris Ball's <cball@fmco.com> changes
4897         to improve the Posix thread support for Objective-C.
4898
4899 2000-08-06  Joseph S. Myers  <jsm28@cam.ac.uk>
4900
4901         * c-common.h (enum c_tree_index): Add CTI_SIGNED_SIZE_TYPE and
4902         CTI_UNSIGNED_PTRDIFF_TYPE.
4903         (signed_size_type_node): Define.
4904         (unsigned_ptrdiff_type_node): Define.
4905         * c-decl.c (init_decl_processing): Create the
4906         signed_size_type_node and unsigned_ptrdiff_type_node types.
4907         * c-common.c (T_SC): Define.
4908         (T_SST): Define.
4909         (T_UPD): Define.
4910         (print_char_table): Use T_SST for %zd, %zi, %zn.  Use T_UPD for
4911         %to, %tu, %tx, %tX.  Allow %hhn (T_SC).  Add "c" to the flags for
4912         %s and %p.
4913         (scan_char_table): Use T_SC for %hhd, %hhi, %hhn.  Use T_SST for
4914         %zd, %zi, %zn.  Use T_UPD for %to, %tu, %tx, %tX.  Add "c" to the
4915         flags for %c, %s and %[.
4916         (check_format_info): Only allow leniency for signedness of targets
4917         of character pointers (when pedantic) for formats flagged with
4918         "c", so for strings but not for %hh formats.  When pedantic, don't
4919         allow character pointers to substitute for void pointers if a
4920         second level of indirection is present.
4921
4922 2000-08-06  Kazu Hirata  <kazu@hxi.com>
4923
4924         * invoke.texi (Options for Debugging Your Program or GCC): Update
4925         the names of dump files.
4926
4927         * h8300.c (dosize): Rearrange code for conciseness.
4928         (split_adds_subs): Likewise.
4929
4930         * loop.c: Fix formatting.
4931
4932         * dwarf2out.c: Fix formatting.
4933
4934         * tm.texi (FUNCTION_ARG_PARTIAL_NREGS): Fix a typo.
4935
4936         * expr.c: Fix formatting.
4937
4938 2000-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4939
4940         * rs6000.c (rs6000_maybe_dead): Prototype.
4941
4942 2000-08-06  Richard Henderson  <rth@cygnus.com>
4943
4944         * stmt.c (expand_goto): Do virtual_stack_vars_rtx replacement for
4945         HAVE_nonlocal_goto as well.
4946         * config/i960/i960.md (nonlocal_goto): Don't do it here.
4947         * config/pj/pj.md (nonlocal_goto): Likewise.
4948
4949 2000-08-07  Michael Hayes  <mhayes@cygnus.com>
4950
4951         * loop.c (try_swap_copy_prop): New function.
4952         (load_mems): Rename copies to load_copies and add new regset
4953         store_copies.  Check for sets of shadow registers and mark
4954         in store_copies.   Call try_swap_copy_prop for registers
4955         marked in store_copies.
4956
4957 Sun Aug  6 00:54:42 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
4958
4959         * objc/objc-act.c: New command line option -fconstant-string-class
4960         to allow specifying a user defined constant string class,
4961         different from NXConstantString.
4962
4963         * toplev.c: Moved the Objective-C specific options to
4964         objc/lang-options.h.
4965
4966         * objc/lang-options.h: Moved the Objective-C specific options from
4967         toplev.c. Added -fconstant-string-class.
4968
4969 2000-08-05  Chris Demetriou  <cgd@sibyte.com>
4970
4971         * mips/elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
4972         DTOR_LIST_BEGIN, DTOR_LIST_END): change type of
4973         __CTOR_LIST__ from func_ptr array to just func_ptr, to
4974         avoid extra alignment imposed on arrays.
4975         * mips/elf64.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
4976         DTOR_LIST_BEGIN, DTOR_LIST_END): Likewise.
4977
4978         * mips.h: Clean up comments and spacing near MASKs.
4979         (TARGET_UNIX_ASM): Delete.
4980         (MASK_MIPS16, MASK_NO_CHECK_ZERO_DIV, MASK_CHECK_RANGE_DIV,
4981         MASK_UNINIT_CONST_IN_RODATA): Change values to make mask
4982         values contiguous.
4983
4984 2000-08-05  Joseph S. Myers  <jsm28@cam.ac.uk>
4985
4986         * c-common.c (print_char_table): Add entries for the X/Open '
4987         format flag (print decimals with locale's thousands grouping
4988         character).  Make %C expect wint_t.
4989         (check_format_info): If pedantic, warn when the %n$ operand
4990         number form is used.  Allow for the ' flag; warn about it if
4991         pedantic.
4992
4993 2000-08-05  Zack Weinberg  <zack@wolery.cumb.org>
4994
4995         * i386.h (FUNCTION_OK_FOR_SIBCALL):  Not OK if DECL's return
4996         type is a float mode, cfun->decl's return type is not, and
4997         TARGET_FLOAT_RETURNS_IN_80387.
4998
4999 2000-08-04  Andreas Schwab  <schwab@suse.de>
5000
5001         * cppmain.c (cb_def_pragma): Skip the first two tokens from the
5002         token list, which are always `#' and `pragma'.
5003
5004 2000-08-04  Zack Weinberg  <zack@wolery.cumb.org>
5005
5006         * tree.c (tree_expr_nonnegative_p): Move to...
5007         * fold-const.c: ... here.  Also handle BIND_EXPR and RTL_EXPR.
5008         (rtl_expr_nonnegative_p): New.
5009         * tree.h: Add prototype for rtl_expr_nonnegative_p.
5010
5011         * real.h (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH, CONST_DOUBLE_MEM,
5012         CONST_DOUBLE_CHAIN: Move to...
5013         * rtl.h: ...here.  Use XCINT/XCEXP.
5014
5015         * Makefile.in: Remove toplev.o from OBJS.  Add rule to make
5016         libbackend.a; add libbackend.a to STAGESTUFF.  Add BACKEND
5017         variable.  Use BACKEND when linking cc1, not OBJS.  Add BACKEND
5018         to VOL_FILES.
5019
5020         * objc/Make-lang.in (cc1obj): Link with $(BACKEND).
5021
5022 2000-08-05  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
5023
5024         * config/c4x/c4x.md (return_indirect_internal): New.
5025         * config/c4x/c4x.c (c4x_expand_epilogue): Use it.
5026
5027 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
5028
5029         * c-common.c (time_char_table): Mark up formats added in C99 and
5030         make other corrections.  %D and %g were added in C99.  %Og is an
5031         extension.  %EX is permitted.  %R, %T, %n, %r, %t were added in
5032         C99.  %e was added in C99.  %Oj is an extension.  %G and %z are in
5033         C99 rather than GNU extensions, but %OG and %Oz are extensions.
5034         %h was added in C99.  %C was added in C99.  %OY and %OC are
5035         extensions.  Add the C99 format %F.
5036         (check_format_info): If pedantic and not in C99 mode, warn for C99
5037         formats, %E and %O.
5038
5039 Fri Aug  4 23:01:58 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
5040
5041         * function.c (schedule_fixup_var_refs): New function, broken out
5042         of put_reg_into_stack.
5043         (put_reg_into_stack): Use it.
5044         (put_var_into_stack): In CONCAT case, fixup up references for
5045         components only after fixing up references to the whole concat.
5046
5047 2000-08-04  Rodney Brown  <RodneyBrown@pmsc.com>
5048
5049         * alias.c (mark_constant_function): Use INSN_P.
5050         (init_alias_analysis): Likewise.
5051         * combine.c (combine_instructions): Use INSN_P.
5052         (can_combine_p): Likewise.
5053         (try_combine): Likewise.
5054         (distribute_notes): Likewise.
5055         (distribute_links): Likewise.
5056         * cse.c (cse_around_loop): Use INSN_P.
5057         (invalidate_skipped_block): Likewise.
5058         (cse_set_around_loop): Likewise.
5059         (cse_end_of_basic_block): Likewise.
5060         (delete_trivially_dead_insns): Likewise.
5061         * emit-rtl.c (unshare_all_rtl_again): Use INSN_P.
5062         (unshare_all_rtl_1): Likewise.
5063         (next_cc0_user): Likewise.
5064         (try_split make_insn_raw): Likewise.
5065         (remove_unnecessary_notes): Likewise.
5066         * final.c (shorten_branches): Use INSN_P.
5067         (leaf_renumber_regs): Likewise.
5068         (leaf_renumber_regs_insn): Likewise.
5069         * flow.c (find_label_refs): Use INSN_P.
5070         (verify_wide_reg): Likewise.
5071         (notice_stack_pointer_modification): Likewise.
5072         (count_or_remove_death_notes): Likewise.
5073         (verify_flow_info): Likewise.
5074         (clear_log_links): Likewise.
5075         * function.c (fixup_var_refs_insns): Use INSN_P.
5076         (compute_insns_for_mem): Likewise.
5077         * gcse.c (alloc_gcse_mem): Use INSN_P.
5078         (compute_sets): Likewise.
5079         (compute_hash_table): Likewise.
5080         (classic_gcse): Likewise.
5081         (cprop): Likewise.
5082         (insert_insn_end_bb): Likewise.
5083         (delete_null_pointer_checks_1): Likewise.
5084         * global.c (expand_preferences): Use INSN_P.
5085         (build_insn_chain): Likewise.
5086         * graph.c (node_data): Use INSN_P.
5087         * haifa-sched.c (priority): Use INSN_P.
5088         (rm_line_notes): Likewise.
5089         (rm_other_notes): Likewise.
5090         (find_insn_reg_weight): Likewise.
5091         (init_target_units): Likewise.
5092         (schedule_block): Likewise.
5093         (compute_block_forward_dependences): Likewise.
5094         (debug_dependencies): Likewise.
5095         (set_priorities): Likewise.
5096         * integrate.c (function_cannot_inline_p): Use INSN_P.
5097         (save_parm_insns): Likewise.
5098         (copy_insn_list): Likewise.
5099         * jump.c (mark_all_labels): Use INSN_P.
5100         (never_reached_warning): Likewise.
5101         * lcm.c (optimize_mode_switching): Use INSN_P.
5102         * local-alloc.c (validate_equiv_mem): Use INSN_P.
5103         (memref_used_between_p): Likewise.
5104         (update_equiv_regs): Likewise.
5105         (block_alloc): Likewise.
5106         (no_conflict_p): Likewise.
5107         * loop.c (scan_loop): Use INSN_P.
5108         (find_and_verify_loops): Likewise.
5109         (count_loop_regs_set): Likewise.
5110         (loop_reg_used_before_p): Likewise.
5111         (strength_reduce): Likewise.
5112         (recombine_givs): Likewise.
5113         (check_dbra_loop): Likewise.
5114         (load_mems): Likewise.
5115         (try_copy_prop): Likewise.
5116         * print-rtl.c (print_rtx): Use INSN_P.
5117         * recog.c (find_single_use): Use INSN_P.
5118         * reg-stack.c (stack_regs_mentioned): Use INSN_P.
5119         (next_flags_user): Likewise.
5120         (swap_rtx_condition): Likewise.
5121         * regmove.c (mark_flags_life_zones): Use INSN_P.
5122         (optimize_reg_copy_1): Likewise.
5123         (optimize_reg_copy_2): Likewise.
5124         (optimize_reg_copy_3): Likewise.
5125         (reg_is_remote_constant_p): Likewise.
5126         (fixup_match_2): Likewise.
5127         (regmove_optimize): Likewise.
5128         (fixup_match_1): Likewise.
5129         * regrename.c (build_def_use): Use INSN_P.
5130         (replace_reg_in_block): Likewise.
5131         (consider_use): Likewise.
5132         * reload.c (find_equiv_reg): Use INSN_P.
5133         * reload1.c (reload): Use INSN_P.
5134         (maybe_fix_stack_asms): Likewise.
5135         (calculate_needs_all_insns): Likewise.
5136         (reload_as_needed): Likewise.
5137         (emit_output_reload_insns): Likewise.
5138         (delete_address_reloads_1): Likewise.
5139         (reload_cse_regs_1): Likewise.
5140         (reload_combine): Likewise.
5141         (reload_cse_move2add): Likewise.
5142         * reorg.c (redundant_insn): Use INSN_P.
5143         (dbr_schedule): Likewise.
5144         * resource.c (find_dead_or_set_registers): Use INSN_P.
5145         (mark_target_live_regs): Likewise.
5146         * rtlanal.c (reg_used_between_p): Use INSN_P.
5147         (reg_referenced_between_p): Likewise.
5148         (reg_set_between_p): Likewise.
5149         (reg_set_p): Likewise.
5150         (single_set): Likewise.
5151         (multiple_sets): Likewise.
5152         (find_last_value): Likewise.
5153         (reg_set_last): Likewise.
5154         (find_reg_note): Likewise.
5155         (find_regno_note): Likewise.
5156         * sibcall.c (sequence_uses_addressof): Use INSN_P.
5157         * simplify-rtx.c (cselib_process_insn): Use INSN_P.
5158         * ssa.c (find_evaluations): Use INSN_P.
5159         (rename_block): Likewise.
5160         (rename_equivalent_regs): Likewise.
5161         * unroll.c (loop_find_equiv_value): Use INSN_P.
5162         (set_dominates_use): Likewise.
5163         * varasm.c (mark_constant_pool): Use INSN_P.
5164         (mark_constants): Likewise.
5165         * config/alpha/alpha.c (alpha_does_function_need_gp): Use INSN_P.
5166         (alphaev4_next_group): Likewise.
5167         (alphaev5_next_group): Likewise.
5168         * config/c4x/c4x.c (c4x_process_after_reload): Use INSN_P.
5169         (c4x_rptb_rpts_p): Likewise.
5170         * config/mips/mips.c (mips16_optimize_gp): Use INSN_P.
5171         * config/rs6000/rs6000.c (uses_TOC): Use INSN_P.
5172         (rs6000_adjust_priority): Likewise.
5173         * config/sh/sh.c (sh_loop_align): Use INSN_P.
5174         (machine_dependent_reorg): Likewise.
5175         (split_branches): Likewise.
5176         * config/tahoe/tahoe.c (tahoe_cmp_check): Use INSN_P.
5177
5178 Fri Aug  4 11:43:49 2000  John Wehle  (john@feith.com)
5179
5180         * combine.c (recog_for_combine): Remove the old notes
5181         prior to attempting to recognize the new pattern.
5182         (distribute_notes): Ignore REG_NONNEG notes.
5183
5184 2000-08-04  Chandrakala Chavva  <cchavva@redhat.com>
5185
5186         * varasm.c (output_constructor): Add .align 0 for packed vars.
5187
5188 2000-08-04  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
5189
5190         * configure.in: Use default thread_file even when enable_threads is
5191         yes or dce because hpux10.20 pa port uses MULTILIB implementation.
5192         * configure: Rebuilt.
5193
5194         * gthr-dce.h (__gthread_objc_condition_allocate): Fix typo.
5195
5196 2000-08-04  Donn Terry (donnte@microsoft.com)
5197
5198         * prefix.c (translate_name): Don't strip trailing DIR_SEPARATOR.
5199
5200 2000-08-04  Mark Elbrecht  <snowball3@bigfoot.com>
5201
5202         * i386/x-djgpp: Delete code that conditionally modifies target_alias.
5203         Delete code that conditionally modifies 'version'.
5204         Delete X_CPPFLAGS. Add comment for SYSTEM_HEADER_DIR.
5205         * i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): New macro.
5206         * gcc.c (main): Use it.
5207         * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): New macro.
5208         * prefix.c (update_path): Use it.
5209         * i386/djgpp.h (STANDARD_INCLUDE_DIR): Define.
5210         (MD_EXEC_PREFIX): Set to '/dev/env/DJDIR/bin/'.
5211         (ASM_OUTPUT_SECTION_NAME): Add code attribute to sections containing
5212         code.
5213         (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Default to true.
5214         (SUBTARGET_SWITCHES): Adjust.
5215         (WCHAR_UNSIGNED, WCHAR_TYPE_SIZE, WCHAR_TYPE): Undefine before
5216         defining.
5217         (WINT_TYPE, SIZE_TYPE, PTRDIFF_TYPE): Define.
5218
5219 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
5220
5221         * c-common.h (flag_isoc94): Declare.
5222         * c-decl.c (flag_isoc94): Define.
5223         (c_decode_option): Set flag_isoc94 as appropriate.
5224         * c-common.c (T_PD, T_IM, T_UIM): Define.
5225         (format_char_info): Add tlen and jlen.
5226         (print_char_table): Add entries for %t and %j.  Allow %zn.  Allow
5227         %F.  Allow %lf.
5228         (scan_char_table): Add entries for %t and %j.  Allow %F.  Allow
5229         %l[.
5230         (time_char_table): Add NULL entries for %t and %j.
5231         (check_format_info): Allow for %t and %j.  Warn for %F if pedantic
5232         and not C99.  Warn for %lc, %ls and %l[ if pedantic and not C94.
5233         Warn for printf %lf if pedantic and not C99.  Don't warn for empty
5234         precision.  Allow precision argument to be unsigned int.  If
5235         pedantic, warn for %p passed an argument not a pointer to possibly
5236         qualified void or a possibly qualified character type, and for
5237         pointer targets of the wrong sign, except for character pointers.
5238
5239 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
5240
5241         * ginclude/stddef.h: Don't declare wint_t unless __need_wint_t.
5242         * c-common.h (enum c_tree_index): Add CTI_WINT_TYPE.
5243         (wint_type_node): Define.
5244         * c-decl.c (WINT_TYPE): Define.
5245         (init_decl_processing): Create the wint_type_node type.
5246         * c-common.c (T_WI): Define.
5247         (print_char_table): Use T_WI for %lc format.
5248
5249 2000-08-04  Bruce Korb  <bkorb@gnu.org>
5250
5251         * fixinc/:  Verified that the MSDOS patch does not break
5252         the UNIX functionality and applied the next three patches
5253         from July:
5254
5255 2000-07-28  Eli Zaretskii  <eliz@is.elta.co.il>
5256
5257         * fixinc/fixfixes.c (main) [__MSDOS__]: Avoid overwriting the
5258         output file with the temporary one by appending ".X" to generate
5259         the temporary fuile's name.  If the output file already has an
5260         extension, replace it with ".X".
5261
5262         * fixinc/fixincl.c (fix_with_system) [__MSDOS__]: Use $ORIGDIR,
5263         not $DESTDIR, to find applyfix.  Use sprintf instead of snprintf;
5264         reallocate the command buffer while copying the command-line
5265         argument.  Redirect the output directly to the temporary file,
5266         instead of going through another temporary file.
5267         (process): Close the temporary file before unlinking it.
5268         (machine_matches) [__MSDOS__]: If the machine doesn't match, set
5269         the FD_SKIP_TEST flag.  Pay attention to the FD_MACH_IFNOT flag.
5270         (run_compiles): Pass p_fixd argument to machine_matches, as it
5271         expects.
5272
5273         * fixinc/fixincl.sh: Export ORIGDIR.  If $DJDIR is set in the
5274         environment, assume there are no symlinks in the include
5275         directory.  When cleaning up the DONE files, look for them
5276         case-insensitively.  Don't try to remove symlinks if they aren't
5277         there.
5278
5279         * fixinc/fixlib.c (make_raw_shell_str): Accept new argument smax;
5280         all callers changed.  Declare pz "const char *", to avoid compiler
5281         warnings.
5282
5283         * fixinc/fixlib.h (ENV_TABLE): Get ORIGDIR from the environment.
5284         Change prototype of make_raw_shell_str.
5285
5286 2000-07-27  Eli Zaretskii  <eliz@is.elta.co.il>
5287
5288         * fixinc/fixincl.c [__MSDOS__]: Don't include "server.h".
5289         (initialize) [__MSDOS__]: Use tempnam.
5290         (initialize): Don't use SIGPIPE if it is not defined.
5291
5292         * fixinc/fixfixes.c (main) [__MSDOS__]: freopen for stdout should
5293         return stdout.
5294
5295 2000-07-25  Bruce Korb  <bkorb@gnu.org>
5296
5297         * fixinc/fix*.[ch]: substantially reworked to make it possible
5298         to run this program without using fork(2) or pipe(2) (i.e. in
5299         a DOS environment).
5300
5301 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
5302
5303         * cppdefault.h (WINT_TYPE): Define.
5304         * cppinit.c (builtin_array): Define __WINT_TYPE__.
5305         * tradcpp.c (initialize_builtins): Define __WINT_TYPE__.
5306         * tm.texi (NO_BUILTIN_WINT_TYPE, WINT_TYPE): Document.
5307
5308 Fri Aug  4 06:53:46 2000  Clinton Popetz  <cpopetz@cygnus.com>
5309
5310         * (mips_legitimate_address_p): Don't allow register+offset
5311         if the offset is large and negative, and we are compiling
5312         for 64 bit registers.
5313
5314 2000-08-04 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
5315
5316         * gencodes.c (main): Define CODE_FOR_nothing as the last possible
5317         insn_code_number + 1.
5318
5319 2000-08-04  Kazu Hirata  <kazu@hxi.com>
5320
5321         * h8300.c (function_prologue): Rearrange code for conciseness.
5322         (function_epilogue): Likewise.
5323         * h8300.h (OK_FOR_U): Fix formatting.
5324
5325         * cse.c: Fix a comment typo. Fix formatting.
5326
5327 2000-08-03  Richard Henderson  <rth@cygnus.com>
5328
5329         * config/i386/i386.md (return_indirect_internal): New.
5330         * config/i386/i386.c (ix86_expand_epilogue): Use it.
5331
5332 2000-08-03  Zack Weinberg  <zack@wolery.cumb.org>
5333
5334         * cpplex.c (parse_name): Might have to glue a CPP_OTHER token
5335         before the name.
5336         (lex_line): Glue @ onto the beginning of identifiers and
5337         string constants, in Objective-C mode.
5338         (output_token, spell_token): Handle CPP_OSTRING.
5339         (can_paste, maybe_paste_with_next): Handle pasting @ onto the
5340         beginning of a NAME or a STRING, in objc mode.
5341
5342         * cpplib.c (get_define_node): Do not permit identifiers that
5343         begin with @ to be #defined.
5344         * cppmacro.c (CAN_PASTE_AFTER): Add CPP_OTHER.
5345         * cpplib.h (TTYPE_TABLE): Add CPP_OSTRING.
5346
5347         * c-lang.c, objc/objc-act.c (build_objc_string): Delete.
5348         * c-tree.h (build_objc_string): Delete prototype.
5349         * objc/objc-tree.def: Delete OBJC_STRING_CST.
5350         * c-lex.c (yylex): Use build_string for all three kinds of strings.
5351
5352         * c-parse.in, objc/objc-act.c: Update commentary.
5353
5354 2000-08-03  Mark Mitchell  <mark@codesourcery.com>
5355
5356         * extend.texi: Fix typo in last change.
5357
5358         * extend.texi: Add commentary on statement-expressions and their
5359         interactions with C++.
5360
5361 2000-08-03  Nick Clifton  <nickc@cygnus.com>
5362
5363         * dwarf2.h (DW_LANG_Java): Change value to 0x000b.
5364         * dwarf.h (LANG_JAVA): Change value to 0x000b.
5365
5366 2000-08-03  Anthony Green  <green@cygnus.com>
5367
5368         * dwarf2out.c (gen_compile_unit_die): Add java language support.
5369         (add_bound_info): Check for java language.
5370         (is_java): New function.
5371         * dwarfout.c (output_compile_unit_die): Ditto.
5372         * dwarf.h (dwarf_source_language): Add java source language type.
5373         * dwarf2.h (dwarf_source_language): Ditto.
5374
5375 Thu Aug  3 20:32:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5376
5377         * reg-stack.c (subst_stack_regs_pat):  Use replace_reg to swap
5378         operands.
5379
5380         * i386.c (ix86_expand_branch): Mode of comparison in
5381         IF_THEN_ELSE is VOIDmode.
5382
5383 Thu Aug  3 10:05:53 2000  Akiko Matsushita <matusita@sra.co.jp>
5384
5385         * gengenrtl.c, rtl.c: Avoid #elif.
5386
5387 2000-08-03  Michael Poole  <poole@troilus.org>
5388
5389         * tm.texi (Register Classes): Clarify order of sub-initializers
5390         in REG_CLASS_CONTENTS.
5391
5392 Thu Aug  3 15:53:03 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
5393
5394         From SAITOH Masanobu:
5395         * sh.h (ASM_OUTPUT_REG_PUSH): Fix syntax.
5396
5397 2000-08-03  David Billinghurst  <David.Billinghurst@riotinto.com.au>
5398
5399         * config/i386/cygwin.h: Remove -remap from CPP_SPEC since this option
5400         is not supported by tradcpp and isn't actually needed for cygwin.
5401
5402 2000-08-03  Kazu Hirata  <kazu@hxi.com>
5403
5404         * h8300.c: Fix a comment typo.
5405         * h8300.h (OK_FOR_U): Accept a 32-bit constant address on H8/S.
5406
5407         * jump.c: Fix formatting.
5408
5409         * toplev.c: Fix formatting.
5410
5411 Thu Aug  3 01:05:32 2000  Jeffrey A Law  (law@cygnus.com)
5412
5413         * flow.c (find_auto_inc): Verify that we've got a REG before
5414         peeking at its regno.  Fail, don't abort if we can't find
5415         the increment of the desired register.
5416
5417         * pa.md (shadd height reduction patterns/splitters): Remove.
5418
5419 2000-08-02  Jim Wilson  <wilson@cygnus.com>
5420
5421         * config/ia64/ia64-protos.h (flag_ssa): Declare.
5422         * config/ia64/ia64.md (movti_internal, movti_internal+1): New.
5423
5424 2000-08-02  Mark Mitchell  <mark@codesourcery.com>
5425
5426         * dce.c: Remove all uses of assert.
5427         * dwarf2out.c: Likewise.
5428         * dwarfout.c: Likewise.
5429         * ssa.c: Likewise.
5430
5431 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
5432
5433         * gcc.h (lang_specific_driver): Constify second argument.
5434         * gcc.c (translate_options, process_command, main): Likewise.
5435         Constify variables to match.  Cast second argument to
5436         pexecute.
5437
5438         * cppspec.c, gccspec.c: Adjust type of second argument to
5439         lang_specific_driver, and update code as necessary.
5440
5441 2000-08-02  Jakub Jelinek  <jakub@redhat.com>
5442
5443         * loop.c (scan_loop): Ensure update_end label does not
5444         go away until reg_scan_update is run.
5445
5446 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
5447
5448         * c-common.h: Prototype min_precision and c_build_qualified_type here...
5449         * c-tree.h: ... not here.
5450         * errors.h: Prototype fancy_abort.
5451
5452         * emit-rtl.c (gen_lowpart_common): Move variable 'c' into
5453         HOST_BITS_PER_WIDE_INT == 64 ifdef block.
5454         * regrename.c (regrename_optimize): Make control flow explicit.
5455         (replace_reg_in_block): Initialize reg_use to 0.
5456
5457         * i386.c (legitimate_address_p): Rename error label to
5458         report_error to avoid namespace clash.
5459
5460 2000-08-02  Kazu Hirata  <kazu@hxi.com>
5461
5462         * fold-const.c: Fix formatting.
5463
5464 Wed Aug  2 16:26:15 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5465
5466         * i386.c (legitimate_address_p): Accept other bases than
5467         pic_offset_table_rtx for GOTOFF constructs.
5468
5469 Wed Aug  2 15:59:34 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5470
5471         * i386.md (shift to lea splitter): Use const_int_operand.
5472
5473 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
5474
5475         * cppexp.c, cppinit.c, cpplex.c, cpplib.c, cppmacro.c,
5476         cppspec.c: Do not use 'legal' or 'illegal' in error messages
5477         and comments.
5478
5479         * cppmain.c (cb_define, cb_undef): Don't generate any output
5480         if not done_initializing.
5481         * cpplex.c (maybe_paste_with_next): When the token after a ##
5482         is an omitted rest argument, only delete the token before it
5483         if that token is a comma.  Do not warn about bogus token
5484         pastes for , ## rest_arg.
5485
5486         * cpp.texi: Update.
5487         * cpp.1: Regenerate.
5488
5489 2000-08-02  Fred Fish  <fnf@be.com>
5490
5491         * config/i386/beos-elf.h (STARTFILE_SPEC): Add i386-mcount.o
5492         when user gives -p option.  Add init_term_dyn.o for BeOS 5.0
5493         and later.
5494
5495         * config/i386/beos-elf.h (INCLUDE_DEFAULTS): Add additional
5496         Be directories to search path.
5497
5498         Remove support for __declspec(dllimport) and __declspec(dllexport).
5499         This is leftover cruft from the earlier BeOS gcc port when BeOS
5500         used Microsoft's PE object file format.
5501         * configure.in (i*86-*-beoself): Remove extra_objs=winnt.o.
5502         * config/i386/t-beos (winnt.o): Remove Makefile frag.
5503         * config/i386/beos-elf.h (TARGET_NOP_FUN_DLLIMPORT): Remove.
5504         (VALID_MACHINE_DECL_ATTRIBUTE): Remove.
5505         (VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
5506         (MERGE_MACHINE_DECL_ATTRIBUTES): Remove.
5507         (REDO_SECTION_INFO_P): Remove.
5508         (ASM_EXPORT_DECL): Remove.
5509         (ASM_DECLARE_FUNCTION_NAME): Remove.
5510         (ASM_DECLARE_OBJECT_NAME): Remove.
5511         (ASM_OUTPUT_ALIGNED_COMMON): Remove.
5512         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Remove.
5513         (ASM_OUTPUT_ALIGNED_LOCAL): Remove.
5514         (STRIP_NAME_ENCODING): Remove.
5515
5516         Remove support for obsolete version of BeOS that is no longer
5517         supported by Be.
5518         * configure.in (i*86-*-beospe*): Remove.
5519         * config/i386/beos-pe.h: Remove.
5520
5521 2000-08-01  Jeffrey Oldham  <oldham@codesourcery.com>
5522             Mark Mitchell <mark@codesourcery.com>
5523
5524         * Makefile.in (OBJS): Added dce.o.
5525         (ssa.o): Updated target to include ssa.h.
5526         (flow.o): Likewise.
5527         (toplev.o): Likewise.
5528         (dce.o): Created target.
5529         * basic-block.h: Added comments.
5530         (INVALID_BLOCK): Added definition.
5531         (connect_infinite_loops_to_exit): Added declaration.
5532         Moved SSA declarations to ssa.h.
5533         * flow.c: Added inclusion of ssa.h.
5534         (struct depth_first_search_dsS, depth_first_search_ds):
5535         Added definitions.
5536         (compute_immediate_postdominators): Added definition.
5537         (connect_infinite_loops_to_exit): Likewise.
5538         (flow_dfs_compute_reverse_init): Likewise.
5539         (flow_dfs_compute_reverse_add_bb): Likewise.
5540         (flow_dfs_compute_reverse_execute): Likewise.
5541         (flow_dfs_compute_reverse_finish): Likewise.
5542         * rtl.h (rtx/in_struct): Added use to determine insn necessity.
5543         (LABEL_P): Added definition.
5544         (JUMP_P): Likewise.
5545         (NOTE_P): Likewise.
5546         (BARRIER_P): Likewise.
5547         (JUMP_TABLE_DATA_P): Likewise.
5548         (INSN_DEAD_CODE_P): Likewise.
5549         * ssa.c: Replaced inclusions with ssa.h inclusion.
5550         (CONVERT_HARD_REGISTER_TO_SSA_P): Moved to ssa.h.
5551         (rename_registers): Removed unnecessary variables.
5552         * ssa.h: Created by moving declarations from ssa.c and
5553         basic-block.h.
5554         * timevar.def: Defined TV_DEAD_CODE_ELIM.
5555         * toplev.c: Added ssa.h inclusion.
5556         (dump_file_index): Added DFI_dce.
5557         (dump_file): Added "dce" entry.
5558         Defined flag_ssa.
5559         (f_options): Added dce entry.
5560         * invoke.texi: Document -fdce.  Emphasize experimental status of
5561         -fssa.
5562         * dce.c: New file.
5563
5564 2000-08-01  Zack Weinberg  <zack@wolery.cumb.org>
5565
5566         * cpperror.c (v_message): Split into _cpp_begin_message and
5567         v_message macro.  All callers updated.
5568         (_cpp_begin_message): Do inhibit_errors/inhibit_warnings
5569         checks here.
5570
5571         * cppfiles.c (cpp_syshdr_flags): New function.
5572         (read_include_file): Don't call cpp_output_tokens.  Call
5573         enter_file hook.
5574         * cppinit.c (dump_macros_helper): Moved to cppmain.c.
5575         (cpp_reader_init): Don't initialize token_buffer.  Call
5576         _cpp_init_internal_pragmas.
5577         (cpp_cleanup): Don't clear token_buffer.
5578         (cpp_start_read): Don't worry about output from -D processing.
5579         Don't call cpp_output_tokens.
5580         (cpp_finish): Don't dump macros here.  Don't call
5581         cpp_output_tokens.
5582         * cppmacro.c (_cpp_dump_definition): Rename
5583         cpp_dump_definition.  Write directly to a FILE *.
5584         (dump_funlike_macro): Delete.
5585         (dump_macro_args): New.
5586
5587         * cpplex.c (TOKEN_LEN): Convert to inline function.
5588         (_cpp_grow_token_buffer, safe_fwrite, cpp_output_tokens,
5589         cpp_scan_line, _cpp_dump_list): Delete.
5590         (cpp_printf, cpp_output_list): New.
5591         (output_line_command): Don't worry about entering or leaving files.
5592         (cpp_scan_buffer): Just output each token as we hit it.
5593         (process_directive): Don't call cpp_output_tokens.
5594         (_cpp_glue_header_name): Don't use token_buffer.
5595         (output_token, dump_param_spelling): Write directly to a FILE *.
5596
5597         * cpplib.c (pass_thru_directive, dump_macro_name,
5598         pragma_dispatch, do_pragma_gcc): Delete.
5599         (do_define, do_undef, parse_include, do_line, do_ident, do_pragma,
5600         do_pragma_poison, cpp_pop_buffer): Call the appropriate hook
5601         functions.
5602         (do_error, do_warning, pragma_dependency): Call
5603         _cpp_begin_message, then cpp_output_list.
5604         (cpp_register_pragma, cpp_register_pragma_space,
5605         _cpp_init_internal_pragmas): New.
5606         (do_pragma): Walk the pragmas table here.
5607         (do_pragma_once, do_pragma_poison, do_pragma_system_header,
5608         do_pragma_dependency): Return void.
5609         (do_pragma_implementation): Moved to cppmain.c.
5610
5611         * cpplib.h: Update prototypes.
5612          (struct cpp_reader): Remove printer, token_buffer,
5613         token_buffer_size, and limit.  Add struct cb, and pragmas.
5614         (struct cpp_printer): Remove last_id and written.
5615         (CPP_WRITTEN, CPP_PWRITTEN, CPP_SET_WRITTEN,
5616         CPP_ADJUST_WRITTEN): Delete.
5617         * cpphash.h: Update prototypes.
5618         (ufputs): New wrapper.
5619
5620         * cppmain.c (cb_define, cb_undef, cb_include, cb_ident,
5621         cb_enter_file, cb_leave_file, cb_def_pragma): New functions.
5622         (main): Set up callbacks.  Register #pragma implementation.
5623         Dump macros from here.
5624
5625 2000-08-01  Geoff Keating  <geoffk@cygnus.com>
5626
5627         * rtl.h (enum reg_note): Add REG_MAYBE_DEAD.
5628         * rtl.c (reg_note_name): Add REG_MAYBE_DEAD.
5629         * flow.c (propagate_one_insn): Allow deletion of prologue/epilogue
5630         insns if they have a REG_MAYBE_DEAD note attached.
5631         * config/rs6000/rs6000.c (rs6000_maybe_dead): New function.
5632         (rs6000_emit_load_toc_table): TOC loads may go dead.
5633
5634 2000-08-01  Jim Wilson  <wilson@cygnus.com>
5635
5636         * config/ia64/ia64.c (ia64_function_arg): Fix last change.  Verify
5637         type exists before using it.  Use number of words as alignment
5638         otherwise.
5639         (ia64_function_arg_partial_nregs, ia64_function_arg_advance,
5640         ia64_va_arg): Propagate ia64_function_args changes here.
5641
5642 2000-08-01  Richard Henderson  <rth@cygnus.com>
5643
5644         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Care for null DECL.
5645         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
5646
5647 2000-08-01  Bernd Schmidt  <bernds@cygnus.co.uk>
5648
5649         From Joern Rennecke:
5650         * sh.h (CPP_SPEC, TARGET_SWITCHES): Add m4-nofpu.
5651         * sh.md (udivsi3, divsi3): Don't use libcalls that use the FPU
5652         unless TARGET_SH3E is set.
5653         * t-sh (MULTILIB_MATCHES): Add m2=m4-nofpu.
5654
5655         * sh.md (ashlsi3_d, ashlsi3_k): Remove, replace with
5656         (ashlsi3_std): New pattern.
5657         (ashlsi3 expander): Use it for TARGET_SH3.
5658         * sh.c (gen_ashift): Use it instead of ashlsi3_k.
5659
5660 Tue Aug  1 12:34:21 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5661
5662         * loop.c (canonicalize_condition):  Use destination, not source to
5663         determine SET's mode.
5664
5665 2000-07-31  Mark Mitchell  <mark@codesourcery.com>
5666
5667         * flow.c (clear_log_links): Fix typo.
5668
5669 Mon Jul 31 22:19:24 2000  Jeffrey A Law  (law@cygnus.com)
5670
5671         * loop.c (check_dbra_loop): Make change from July 17, 2000 work
5672         on targets which need more than one insn for a compare/cbranch
5673         operation.
5674
5675 2000-07-31  Jim Wilson  <wilson@cygnus.com>
5676
5677         * config/ia64/ia64.c (ia64_function_arg): Use alignment not size
5678         when computing offset.
5679
5680 Mon Jul 31 20:35:50 2000  Denis Chertykov  <denisc@overta.ru>
5681
5682         * genpeep.c (main): Handle DEFINE_PEEPHOLE2.
5683
5684 2000-07-31  Geoff Keating  <geoffk@cygnus.com>
5685
5686         * flow.c (clear_log_links): Nuke global_live_at_start and
5687         global_live_at_end data, since if the log_links stuff is invalid
5688         so is global_live_at_*.
5689
5690 2000-07-31  Richard Henderson  <rth@cygnus.com>
5691
5692         * tm.texi (Addressing Modes): Clarify PRE/POST_MODIFY descriptions.
5693
5694 2000-07-31  Jakub Jelinek  <jakub@redhat.com>
5695
5696         * cpplex.c (_cpp_get_line): If index is 0, return line 0 col 0.
5697         (_cpp_get_token): Don't macro expand a just pasted token if it
5698         was pasted at no_expand_level.
5699
5700 2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
5701
5702         * cppmacro.c (find_param, count_params, save_expansion):
5703         Permit 'defined' as a macro parameter name.
5704
5705 2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
5706
5707         * Makefile.in: Rename cpp to cpp0, tradcpp to tradcpp0, and
5708         xcpp to cpp throughout.
5709         (native): Remove unnecessary dependency on cpp.
5710
5711         * gcc.c (trad_capable_cpp, C specs): Rename cpp to cpp,
5712         tradcpp to tradcpp0.
5713         (.i spec): Add missing output-file spec to cc1 command line.
5714         * objc/lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0.
5715
5716 2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
5717
5718         * c-decl.c (mesg_implicit_function_declaration): Init to -1.
5719         (implicit_decl_warning): New function.
5720         (implicitly_declare): Use it.
5721         * c-typeck.c (build_external_ref): Use implicit_decl_warning
5722         to complain about implicit decls of builtins.
5723
5724         * c-lang.c (lang_init): Set mesg_implicit_function_declaration
5725         based on pedantic && flag_isoc99, if not already set.
5726         * c-tree.h: Declare mesg_implicit_function_declaration.
5727         Prototype implicit_decl_warning.
5728
5729 2000-07-30  Jeffrey D. Oldham  <oldham@codesourcery.com>
5730
5731         * Makefile.in (ssa.o): Updated header files in dependences.
5732         * basic-block.h: Added compute_immediate_postdominators declaration.
5733         * config/i386/i386.h (CONVERT_HARD_REGISTER_TO_SSA_P): Added
5734         definition.
5735         * flow.c (compute_immediate_dominators): Updated comment.
5736         (compute_immediate_postdominators): Added definition.
5737         * rtl.h (HARD_REGISTER_P): Added definition.
5738         * ssa.c: Include additional header files.
5739         (assert): Added definition.
5740         (ssa_rename_to_lookup): Added to reimplement ssa_rename_to to
5741         include select hard registers.
5742         (ssa_rename_to_insert): Likewise.
5743         (ssa_rename_from_initialize): Likewise.
5744         (ssa_rename_from_lookup): Likewise.
5745         (original_register): Likewise.
5746         (ssa_rename_from_insert): Added to reimplement ssa_rename_from to
5747         include select hard reigsters.
5748         (ssa_rename_from_traverse): Likewise.
5749         (ssa_rename_from_free): Likewise.
5750         (ssa_rename_from_print): Likewise.
5751         (ssa_rename_from_print_1): Likewise.
5752         (ssa_rename_from_hash_function): Likewise.
5753         (ssa_rename_from_equal): Likewise.
5754         (ssa_rename_from_delete): Likewise.
5755         (simplify_to_immediate_dominators): Removed in favor of
5756         flow.c:compute_immediate_dominators.
5757         (find_evaluations_1): Modified to work with hard registers.
5758         (insert_phi_node): Likewise.
5759         (insert_phi_nodes): Likewise.
5760         (struct rename_set_data): Updated prev_reg comment.
5761         (create_delayed_rename): Modified to work with hard registers.
5762         (RENAME_NO_RTX): Updated comment.
5763         (apply_delayed_renames): Modified to work with hard registers.
5764         (rename_insn_1): Likewise and added handling of CLOBBER rtls.
5765         (rename_block): Updated to use revised ssa_rename_to interface.
5766         (rename_registers): Updated to use revised ssa_rename_to and
5767         ssa_rename_from interface.
5768         (convert_to_ssa): Revised to use compute_immediate_dominators and
5769         deal with hard registers.
5770         (make_regs_equivalent_over_bad_edges): Modified to work with hard
5771         registers.  Added check for illegal unification of hard register.
5772         (make_equivalent_phi_alternatives_equivalent): Modified to work
5773         with hard registers.
5774         (compute_conservative_reg_partition): Likewise.
5775         (coalesce_if_unconflicting): Modified to work with hard registers
5776         and check for conflicting hard registers.
5777         (mark_phi_and_copy_regs): Revised loop to work only on pseudo
5778         registers.
5779         (rename_equivalent_regs_in_insn): Modified to work with hard
5780         registers.
5781         (record_canonical_element_1): Added definition.
5782         (check_hard_regs_in_partition): Added definition.
5783         (convert_from_ssa): Added data structure deallocation and check
5784         for illegal hard register unification.
5785         (conflict_hard_regs_p): Added definition.
5786         * toplev.c (rest_of_compilation): Added comment.
5787
5788 2000-07-31  Anthony Green  <green@redhat.com>
5789
5790         * config/ia64/crtbegin.asm (__EH_FRAME_BEGIN__): Align correctly.
5791
5792 2000-07-31  Jason McMullan  <jmcmullan@linuxcare.com>
5793
5794         * builtins.c (expand_builtin_apply): Don't defer pop during
5795         argument setup.
5796
5797 2000-07-31 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
5798
5799         * calls.c (combine_pending_stack_adjustment_and_call): Only use
5800         preferred_unit_stack_boundary when it is > 1.
5801
5802 2000-07-31  Joseph S. Myers  <jsm28@cam.ac.uk>
5803
5804         * c-common.c (init_function_format_info): Add C99 format functions
5805         in C99 mode.
5806
5807         * c-decl.c (get_parm_info): Don't treat 'const void', 'volatile
5808         void' or 'register void' as being the special case of 'void' alone
5809         in a parameter list.
5810
5811         * c-typeck.c (build_c_cast): Change -Wcast-qual pedwarn for
5812         discarding qualifiers into a plain warning.
5813
5814 2000-07-31  Kazu Hirata  <kazu@hxi.com>
5815
5816         * combine.c: Fix formatting.
5817
5818         * h8300.md: Fix formatting.
5819
5820         * local-alloc.c: Fix formatting.
5821
5822         * h8300.c (get_shift_alg): Remove the variable alg.
5823         (emit_a_shift): Rearrange code to improve readability.
5824
5825         * h8300.md (movsi_h8300hs): Rearrange code to improve readability.
5826
5827         * h8300.h (MODES_TIEABLE_P): Accept a combination of QImode and
5828         HImode on all architectures and a combination of HImode and SImode
5829         on H8/300H and H8/S.
5830
5831         * h8300.c (split_adds_subs): Rearrange code for conciseness.
5832
5833 Mon Jul 31 12:27:55 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5834
5835         * i386.md (addsi to lea splitter, ashlqi3_1_lea): Fix bugs
5836         in my last checkin.
5837
5838 Mon Jul 31 10:41:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5839
5840         * recog.c (extract_insn): Set operand_mode according to
5841         operand if match_operand is VOIDmode.
5842
5843 Mon Jul 31 10:36:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5844
5845         * recog.c (validate_replace_rtx_1): Do not abort for (nil) expression.
5846
5847 2000-07-31  Geoff Keating  <geoffk@cygnus.com>
5848
5849         * c-parse.in (extdefs): Call ggc_collect between external
5850         definitions.
5851
5852 2000-07-30  Michael Hayes  <mhayes@cygnus.com>
5853             Richard Henderson  <rth@cygnus.com>
5854
5855         * Makefile.in (OBJS): Add doloop.o.
5856         * doloop.c: New file.
5857
5858         * final.c (insn_current_reference_address): Return 0 before final.
5859         * flags.h (flag_branch_on_count_reg): Fix typos in commentary.
5860         * jump.c (any_uncondjump_p): Likewise.
5861         * loop.c (indirect_jump_in_function): Make static.
5862         (strength_reduce): Call doloop_optimize.
5863         (insert_bct, instrument_loop_bct): Remove.
5864         * loop.h (doloop_optimize): Prototype.
5865         * recog.c (split_all_insns): Split all INSN_P.
5866         * toplev.c (flag_branch_on_count_reg): Default on.
5867
5868         * config/c4x/c4x.c (c4x_optimization_options): Don't set
5869         flag_branch_on_count_reg.
5870         * config/i386/i386.c (override_options): Likewise.
5871         * config/rs6000/rs6000.c (optimization_options): Likewise.
5872
5873         * config/i386/i386.md (decrement_and_branch_on_count): Remove.
5874         (doloop_end): New.
5875         (dbra_ge): Remove, as well as all it's splitters.
5876
5877         * config/rs6000/rs6000.md (decrement_and_branch_on_count): Remove.
5878         (doloop_end): New.
5879
5880         * config/ia64/ia64-protos.h (ar_lc_reg_operand): Declare.
5881         (ia64_register_move_cost): Declare.
5882         * config/ia64/ia64.c (ar_lc_reg_operand): New.
5883         (struct ia64_frame_info): Add ar_size.
5884         (ia64_compute_frame_size): Set it.
5885         (save_restore_insns): Save and restore ar.lc.
5886         (ia64_register_move_cost): New, moved from header file.  Handle
5887         application registers.
5888         (REG_AR_PFS, REG_AR_EC): Remove.  Replace with AR_*_REGNUM numbers.
5889         (emit_insn_group_barriers): Special case doloop_end_internal.
5890         (ia64_epilogue_uses): Mark ar.lc live at end.
5891         * config/ia64/ia64.h (AR_CCV_REGNUM, AR_LC_REGNUM): New registers.
5892         (AR_EC_REGNUM, AR_PFS_REGNUM): New registers.
5893         (FIRST_PSEUDO_REGISTER): Make room.
5894         (AR_M_REGNO_P, AR_I_REGNO_P, AR_REGNO_P): New.
5895         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update.
5896         (REG_ALLOC_ORDER): Update.
5897         (HARD_REGNO_MODE_OK): Update.
5898         (REGISTER_NAMES): Update.
5899         (enum reg_class): Add AR_M_REGS and AR_I_REGS.
5900         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
5901         (REGNO_REG_CLASS): Update.
5902         (LEGITIMATE_ADDRESS_DISP): Displacement range is 9 bits, not 10.
5903         (REGISTER_MOVE_COST): Move out of line.
5904         (PREDICATE_CODES): Update.
5905         * config/ia64/ia64.md (movdi patterns): Handle ar register classes.
5906         (addsi3_plus1_alt, adddi3_plus1_alt): New.
5907         (shladd_elim splitter): Allow constants in the predicate.
5908         (doloop_end, doloop_end_internal): New.
5909
5910 2000-07-30  Richard Henderson  <rth@cygnus.com>
5911
5912         * genattrtab.c (struct insn_def): Add lineno member.
5913         (struct insn_ent): Likewise.
5914         (struct attr_desc): Likewise.
5915         (struct delay_desc): Likewise.
5916         (struct function_unit_op): Likewise.
5917         (struct function_unit): Likewise.
5918         (check_attr_value): Use message_with_line.
5919         (check_defs): Likewise.
5920         (expand_units): Likewise.
5921         (check_attr_test): Take a lineno argument.
5922         (gen_attr): Likewise.
5923         (gen_insn): Likewise.
5924         (gen_delay): Likewise.
5925         (gen_unit): Likewise.
5926         (main): Give it to them.
5927         (convert_set_attr_alternative): Take an insn_def argument
5928         instead of num_alt and insn_index.
5929         (convert_set_attr): Likewise.
5930         (write_test_expr): Protect INSN_ADDRESSES load
5931         with INSN_ADDRESSES_SET_P.
5932
5933 2000-07-30  Richard Henderson  <rth@cygnus.com>
5934
5935         * flow.c (init_propagate_block_info): Use pc_set.
5936
5937 Sun Jul 30 20:58:34 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5938
5939         * i386.md (*lea_general_[123]) New insns and splits.
5940         (addsi3 to lea splitter): Handle other modes too.
5941         (shlsi3 to lea splitter): Likewise.
5942         (addhi_1_lea, shlhi_1_lea): New patterns.
5943         (addhi_1, shlhi_1): Conditionize by PARTIAL_REG_STALL.
5944
5945 Sun Jul 30 20:51:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5946
5947         * recog.c (general_operand, nonimmediate_operand): Accept
5948         any mode for VOIDmode CONSTANT_P operands.
5949
5950 Sun Jul 30 20:42:21 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5951
5952         * gcse.c (try_replace_reg): Use validate_replace_rtx_subexp
5953         instead of replace_rtx.
5954         * recog.c (validate_replace_rtx_subexp): New function.
5955         * recog.h (validate_replace_rtx_subexp): Declare.
5956
5957 Sun Jul 30 20:38:26 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5958
5959         * combine.c (simplify_set, make_extraction, make_compound_operation
5960         make_field_assignment): Use full mask instead of GET_MODE_MASK (mode)
5961         as force_to_mode argument.
5962
5963 Sun Jul 30 20:30:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5964
5965         * combine.c (if_then_else_cond): Be sure that mode fits in
5966         HOST_WIDE_INT.
5967
5968 Sun Jul 30 20:27:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5969
5970         * combine.c (record_promoted_value):  Allow bitsize of mode
5971         to be equivalent to HOST_BITS_PER_WISE_INT.
5972
5973 Sun Jul 30 20:25:21 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5974
5975         * function.c (assign_stack_local_1, assign_stack_temp_for_type):
5976         Do not call gen_mode_alignment when mode is BLKmode.
5977
5978 Sun Jul 30 20:21:54 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5979
5980         * loop.c (express_from_1): Fix call of simplify_gen_binary.
5981
5982 Sun Jul 30 20:08:37 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5983
5984         * simplify-rtx.c (simplify_relational_operation): Verify that mode ==
5985         VOIDmode implies both operands to be VOIDmode.
5986         (simplify_ternary_operation): Compute properly the mode of comparison.
5987         * combine.c (combine_simplify_rtx): Likewise.
5988
5989 2000-07-25  Michael Hayes  <mph@paradise.net.nz>
5990
5991         * basic-block.h (struct loops): New field rc_order.
5992         * flow.c (flow_loops_cfg_dump): Dump rc_order if computed.
5993         (flow_loops_free): Free rc_order.
5994         (flow_depth_first_order_compute): New parameter rc_order.
5995         (flow_loops_find): Allocate rc_order and swap usage with
5996         dfs_order.
5997
5998 2000-07-30 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
5999            Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6000
6001         * config/c4x/c4x.md (set_ldp_prologue): Add for RTL prologue/epilogue.
6002         (push_st, push_dp, pop_st, pop_dp, popqi_unspec): Likewise.
6003         (nodb_call, return_from_epilogue): Likewise.
6004         (return_from_interrupt_epilogue, prologue, epilogue): Likewise.
6005         * config/c4x/c4x.c (c4x_expand_prologue, c4x_expand_eplilogue): Add.
6006         * config/c4x/c4x-protos.h (c4x_interrupt_function_p): Add.
6007         (c4x_expand_prologue, c4x_expand_epilogue): Likewise.
6008         (c4x_valid_type_attribute_p): Likewise.
6009         * config/c4x/c4x.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Delete.
6010         (FUNCTION_BLOCK_PROFILER_EXIT): Convert to emit RTL.
6011
6012 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6013
6014         * config/c4x/c4x.c (c4x_emit_move_sequence): Use loadqi_big_constant
6015         and loadhi_big_constant if applicable.
6016         * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant): Tweak
6017         and add new splitter.s
6018
6019 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6020
6021         * config/c4x/c4x.c (c4x_rptb_insert): Make more robust.
6022
6023 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6024
6025         * config/c4x/c4x.h (ASM_FORMAT_PRIVATE_NAME): Output $ in label.
6026
6027 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6028
6029         * config/c4x/c4x.h (IS_XXX_REGNO): Rewrite to avoid unsigned warnings.
6030
6031 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6032
6033         * config/c4x/libgcc.S (divqf3): Improve accuracy.
6034
6035 2000-07-27  Mark Mitchell  <mark@codesourcery.com>
6036
6037         Put phi nodes after NOTE_INSN_BASIC_BLOCK.
6038         * rtl.h (NOTE_INSN_BASIC_BLOCK_P): New macro.
6039         * bb-reorder.c (get_next_bb_note): Use NOTE_INSN_BASIC_BLOCK_P.
6040         (get_prev_bb_note): Likewise.
6041         (remove_scope_notes): Likewise.
6042         * flow.c (commit_one_edge_insertion): Likewise.
6043         (merge_blocks_nomove): Likewise.
6044         (verify_flow_info): Likewise.
6045         * gcse.c (insert_insn_end_bb): Likewise.
6046         * reg-stack.c (emit_swap_insn): Likewise.
6047         * ssa.c (first_insn_after_basic_block_note): New function.
6048         (insert_phi_node): Use it.
6049         (rename_block): Likewise.
6050         (eliminate_phi): Likewise.
6051         (make_regs_equivalent_over_bad_edges): Likewise.
6052         (make_equivalent_phi_alternatives_equivalent): Likewise.
6053         (for_each_successor_phi): Likewise.
6054         (convert_from_ssa): Modify phi-node deletion algorithm.
6055
6056 2000-07-29  Andreas Jaeger  <aj@suse.de>
6057
6058         * configure.in (mips*-*-linux*): Use mips*el to check for little
6059         endian MIPS, add tmake_file.
6060
6061         * config/mips/linux.h (TARGET_VERSION): Use GNU/Linux.
6062         (SUBTARGET_CPP_SPEC): Default MIPS_ISA is 1.
6063         Patches by Maciej W. Rozycki <macro@ds2.pg.gda.pl>.
6064
6065 2000-07-28  Richard Henderson  <rth@cygnus.com>
6066
6067         * config/ia64/ia64.c (ia64_print_operand): Fix typos.
6068         Sign extend mode size before negating.
6069
6070 2000-07-28  Richard Henderson  <rth@cygnus.com>
6071
6072         * emit-rtl.c (gen_lowpart_common): Add missing 'c' variable.
6073
6074 2000-07-28  Bernd Schmidt  <bernds@cygnus.co.uk>
6075
6076         * cse.c (canon_hash): Handle PRE_MODIFY/POST_MODIFY.
6077         (cse_insn): Likewise.
6078         (addr_affects_sp_p): Likewise.
6079         * expr.c (move_by_pieces): Likewise.
6080         (clear_by_pieces): Likewise.
6081         * gcse.c (oprs_unchanged_p): Likewise.
6082         * haifa-sched.c (sched_analyze_2): Likewise.
6083         * recog.c (offsettable_address_p): Likewise.
6084         * regclass.c (record_address_regs): Likewise.
6085         * reload.c (find_reusable_reload): Likewise.
6086         (push_reload): Likewise.
6087         (operands_match_p): Likewise.
6088         (decompose): Likewise.
6089         (find_reloads_address_1): Likewise.
6090         (find_inc_amount): Likewise.
6091         * reload1.c (elimination_effects): Likewise.
6092         * resource.c (mark_set_resources): Likewise.
6093         * flow.c (attempt_auto_inc): New function; mostly broken out
6094         of find_auto_inc.
6095         (find_auto_inc): Split into two functions and enhanced to
6096         generate POST_MODIFY.
6097         * rtl.def (PRE_MODIFY, POST_MODIFY): Adjust comment.
6098         * rtl.h (count_all_occurrences):  Declare.
6099         (HAVE_{PRE,POST}_MODIFY_{DISP,REG}): Provide default of 0 if not
6100         defined.
6101         * rtlanal.c (count_all_occurrences): New function.
6102         * tm.texi (HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_DISP,
6103         HAVE_POST_MODIFY_REG, HAVE_PRE_MODIFY_REG): Document.
6104
6105         * config/ia64/ia64-protos.h (destination_operand): Declare.
6106         * config/ia64/ia64.c (destination_operand): New function.
6107         (ia64_print_operand): Handle POST_MODIFY.
6108         (rtx_needs_barrier): Likewise.
6109         * config/ia64/ia64.h (HAVE_POST_MODIFY_DISP): Define to 1.
6110         (HAVE_POST_MODIFY_REG): Define to 1.
6111         (MAX_REGS_PER_ADDRESS): Change to 2.
6112         (GO_IF_LEGITIMATE_ADDRESS): Accept POST_MODIFY too.
6113         (LEGITIMATE_ADDRESS_REG): New helper macro.
6114         (LEGITIMATE_ADDRESS_DISP): Likewise.
6115         (PREDICATE_CODES): Add entry for destination_operand.
6116         * config/ia64/ia64.md (all mov patterns): Use destination_operand
6117         predicate for operand 0.
6118
6119 2000-07-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6120
6121         * dwarf2out.c: Indent #error directive.
6122
6123         * gbl-ctors.h: Fix typo in comment.
6124         (__do_global_ctors): Prototype.
6125
6126         * gcse.c (record_one_set, pre_delete): Remove unused variables.
6127
6128         * rs6000.c (rs6000_maybe_dead): Delete unused prototype.
6129         (print_operand): Initialize variable `t'.
6130
6131 2000-07-27  Aldy Hernandez  <aldyh@redhat.com>
6132
6133         * config/arm/arm.md ("call_value"): removed constraints.
6134         Constraints are ignored in expanders.
6135         (*call_value_reg): split =rf into various constraints.
6136         (*call_value_mem): same
6137         (*call_value_symbol): same
6138         (*sibcall_value_insn): same
6139
6140 2000-07-28  Philipp Thomas  <pthomas@suse.de>
6141
6142         * install.texi (--enable-nls): Change the description of the NLS
6143         related configure options to match the current state.
6144         (--with-included-gettext): Likewise.
6145         (--enable-maintainer-mode): New description added.
6146         * extend.texi (-fstrict-prototype): Add missing '.'.
6147
6148 2000-07-27  Jim Wilson  <wilson@cygnus.com>
6149
6150         * dwarf2out.c (gen_decl_die): Don't call gen_abstract_function if
6151         DECL_INITIAL (decl) == NULL_TREE.
6152
6153 2000-07-27  Alexandre Oliva  <aoliva@redhat.com>
6154
6155         * Makefile.in (INSN_ATTR_H): New macro.  Replace all dependencies
6156         on insn-attr.h with it.
6157         * genattr.c: Generate `#include "insn-addr.h"' if HAVE_ATTR_length.
6158         * insn-addr.h: New header.
6159         (insn_addresses_): Renamed from insn_addresses.
6160         (INSN_ADDRESSES_DEFN, INSN_ADDRESSES, INSN_ADDRESSES_ALLOC,
6161         INSN_ADDRESSES_FREE, INSN_ADDRESSES_SET_P, INSN_ADDRESSES_SIZE,
6162         INSN_ADDRESSES_NEW): New macros.
6163         * genattrtab.c (write_test_expr): Use new macros.
6164         * final.c (insn_addresses, init_insn_lengths): Likewise.
6165         (align_fuzz, shorten_branches): Likewise.
6166         (final): Likewise.  Do not reject new insns if their addresses
6167         have been added to INSN_ADDRESSES.
6168         * config/arm/arm.c, config/avr/avr.c: Use new macros.
6169         * config/h8300/h8300.c, config/i370/i370.c: Likewise.
6170         * config/m88k/m88k.c, config/pa/pa.c, config/pa/pa.md: Likewise.
6171         * config/sparc/sparc.c, config/sparc/sparc.md: Likewise.
6172         * config/sh/sh.c: Likewise.
6173         (output_branchy_insn): Use INSN_ADDRESSES_NEW.
6174
6175         * Makefile.in (bootstrap): Move -BstageN/ back to the beginning.
6176
6177 2000-07-27  Andrew Cagney  <cagney@b1.cygnus.com>
6178
6179         * gcc.c (struct prefix_list): Add member priority.
6180         (enum path_prefix_priority): Declare.
6181         (add_prefix): Replace ``first'' with ``priority''.  Append new
6182         entry but keep list in priority order.
6183         (process_command): Update.  Pass PREFIX_PRIORITY_B_OPT or
6184         PREFIX_PRIORITY_LAST to add_prefix.
6185         (process_command): Move include kludge - foo/stageN - to before
6186         foo/include.
6187
6188 2000-07-27  Jason Merrill  <jason@redhat.com>
6189
6190         * dwarf2out.c (gen_typedef_die): Abort if we get identical
6191         TREE_TYPE and DECL_ORIGINAL_TYPE on a typedef.
6192
6193 2000-07-27  RodneyBrown  <RodneyBrown@pmsc.com>
6194
6195         * expr.h (get_alias_set, lang_get_alias_set): Delete prototypes.
6196         * tree.h (get_alias_set, lang_get_alias_set): Prototype.
6197
6198 2000-07-27  Joseph S. Myers  <jsm28@cam.ac.uk>
6199
6200         * c-decl.c (finish_function): Don't treat 'main' specially unless
6201         flag_hosted.  In C99 mode, return 0 from 'main' unless
6202         DEFAULT_MAIN_RETURN is otherwise defined.
6203
6204         * c-decl.c (store_parm_decls): In C99 mode, pedwarn for function
6205         parameters defaulting to int in an old-style function definition.
6206
6207 2000-07-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6208
6209         * c-parse.in (string): For -Wtraditional, warn about string
6210         concatenation only once per line.
6211
6212 Thu Jul 27 09:25:17 2000  Akiko Matsushita  <matusita@sra.co.jp>
6213
6214         * pa/x-pa-hpux: Add -D_HIUX_SOURCE to FIXPROTO_DEFINES
6215         for HI-UX/WE2 systems.
6216
6217 2000-07-24  Bruce Korb  <bkorb@gnu.org>
6218
6219         * fixincl/fixfixes.c(emit_gnu_type): rewrote to *rely* on GCC
6220         defining the __xxx_TYPE__ macros.
6221         * fixincl/fixincl.tpl(gnu_type_map): now obsolete
6222         * fixincl/fixlib.h: don't need to include "tm.h" anymore
6223         * fixincl/inclhack.def(type_map): now obsolete
6224
6225 Thu Jul 27 11:54:17 2000  Andrew Cagney  <cagney@b1.cygnus.com>
6226
6227         * cpp.texi: Append a trailing full-stop to xrefs where needed.
6228
6229 2000-07-26  Dave Pitts  <dpitts@cozx.com>
6230
6231         * i370.c: Remove LONGEXTERNAL ifdef from alias_number. Added hash
6232         routine constants.
6233         (mvs_hash_alias): New function.
6234         (mvs_add_alias): Change argument spacing.
6235         (mvs_need_alias): Change aliasing criteria. Added documentation.
6236         (mvs_get_alias): Change to use hashed name. The hashed name prevents
6237         CSECT name collisions.
6238         (mvs_check_alias): Likewise.
6239         (handle_pragma): Change documentation.
6240         * i370.md (mulsi3, divsi3, udivsi3, modsi3, umodsi3): Changed gen_rtx
6241         mode from SImode to DImode.
6242         (iorhi3): Changed LTORG size for insn.
6243
6244 Wed Jul 26 19:44:05 2000   Hans-Peter Nilsson  <hp@axis.com>
6245
6246         * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
6247         mem if the address is a mode_dependent_address_p.
6248
6249 2000-07-26  Kazu Hirata  <kazu@hxi.com>
6250
6251         * h8300.c (print_operand): Print ":8" when the 'R' operand is
6252         suitable for 8-bit absolute.
6253         * h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): New.
6254         (OK_FOR_U): Add a case for the 8-bit constant address on the
6255         H8/300H.
6256
6257 Wed Jul 26 19:26:21 2000  Hans-Peter Nilsson  <hp@axis.com>
6258
6259         * varasm.c (assemble_variable) [! defined(ASM_OUTPUT_ALIGNED_COMMON)
6260         && ! defined (ASM_OUTPUT_ALIGNED_BSS]): Also test
6261         ! defined(ASM_OUTPUT_ALIGNED_DECL_COMMON) before complaining about
6262         lack of implemented alignment.
6263
6264 2000-07-26  Geoffrey Keating  <geoffk@cygnus.com>
6265
6266         * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETIC]: Handle
6267         cross-compiling between 64-bit and 32-bit machines.
6268
6269 2000-07-27  Richard Henderson  <rth@cygnus.com>
6270
6271         * config/ia64/ia64.md (movqicc_astep, movqi_internal_astep): New.
6272         (movhicc_astep, movhi_internal_astep): New.
6273         (movsicc_astep, movsi_internal_astep): New.
6274         (movdicc_astep, movdi_internal_astep): New.
6275         (movsfcc_astep, movsf_internal_astep): New.
6276         (movdfcc_astep, movdf_internal_astep): New.
6277         (movxfcc_astep, movxf_internal_astep): New.
6278         (cmovdi_internal_astep, cmovsi_internal_astep): New.
6279         Unify the cmov[ds]i splitters.
6280
6281 2000-07-27  Rodney Brown  <RodneyBrown@pmsc.com>
6282
6283         * real.c (asctoeg): Rename `error' label to unexpected_char_error
6284
6285 2000-07-26  Nick Clifton  <nickc@cygnus.com>
6286
6287         * config/arm/vxarm.h (CPP_PREDEFINES): Remove definition of
6288         __arm__.  Allow it to be defined by CPP_ISA_SPEC in arm.h
6289
6290         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept SEQUENCE as
6291         well as PARALLEL blocks in FRAME_RELATED_EXPR notes.
6292
6293 2000-07-26  Alexandre Oliva  <aoliva@redhat.com>
6294
6295         * c-decl.c (finish_enum): Convert enumerations that fit in an
6296         `int' to `int'.
6297         (build_enumerator): In pedantic mode, cast to `int' those that
6298         don't.
6299
6300 2000-07-25  Rodney Brown  <RodneyBrown@pmsc.com>
6301
6302         * config/alpha/osf.h (SIZE_TYPE, PTRDIFF_TYPE): New.
6303
6304 Tue Jul 25 23:08:33 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6305
6306         * sh.md (cmpgtdi_t): Must be split.
6307         (cmpgtdi_t+1): New splitter.
6308
6309 2000-07-25  Zack Weinberg  <zack@wolery.cumb.org>
6310
6311         * cpplib.c (_cpp_check_directive): Issue -Wtraditional
6312         warnings for indented directives even if we are skipping.
6313
6314 2000-07-25  Nathan Sidwell  <nathan@codesourcery.com>
6315
6316         * invoke.texi (strict-prototypes): Remove.
6317         * extend.texi (Deprecated Features): Add strict-prototypes.
6318         (Backwards Compatibility): New node.
6319
6320 2000-07-25  Jakub Jelinek  <jakub@redhat.com>
6321
6322         * config/i386/i386.md (andsi_1+1): Allow HImode.
6323         (andsi_1+2): Require q_regs_operand.
6324
6325 2000-07-25  Jakub Jelinek  <jakub@redhat.com>
6326
6327         * config/i386/i386.md (call_pop): Check operands[0],
6328         not operands[1]. Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
6329         (call): Likewise.
6330         (call_value_pop): Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
6331         (call_value): Likewise.
6332
6333 2000-07-25  Zack Weinberg  <zack@wolery.cumb.org>
6334
6335         * toplev.c (pipe_closed): Delete.
6336         (crash_signal): New.  Generate ICE for a fatal signal.
6337         (float_signal): Call crash_signal outside a float-handler
6338         block, not abort.
6339         (main): Install crash_signal as handler for core-dumping signals.
6340
6341 2000-07-25  David Edelsohn  <edelsohn@gnu.org>
6342
6343         * rs6000.c (print_operand, case 'T'): New case.
6344
6345         * rs6000.md (call_indirect_aix32): Convert to expander of
6346         scheduled instructions.
6347         (call_indirect_aix64): Likewise.
6348         (call_value_indirect_aix{32,64}): Likewise.
6349         (call, call_value): Invoke expanders for AIX.  Fall through to
6350         matchers for SysV.
6351         (call_indirect_nonlocal_aix{32,64}): New patterns (ctr and lr).
6352         (call_value_indirect_nonlocal_aix{32,64}): New patterns.
6353         (call_nonlocal_aix32): Remove CALL_LONG alternative.  Operand 1
6354         only "g" constraint.
6355         (call_nonlocal_aix64): Likewise.
6356         (call_value_nonlocal_aix{32,64}): Likewise.
6357         (call_nonlocal_sysv): New pattern for ctr, lr, and symbolic
6358         operands.
6359         (call_value_nonlocal_sysv): New pattern.
6360         (indirect_jump{si,di}): Use new 'T' modifier.
6361         (tablejump{si,di} matchers): Likewise.
6362         (return_internal_{si,di}): Likewise.
6363         (return_eh_{si,di}): Likewise.
6364
6365 2000-07-24  Richard Henderson  <rth@cygnus.com>
6366
6367         * config/ia64/ia64.c (ia64_print_operand): Handle "%,".
6368         * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): Likewise.
6369         * config/ia64/ia64.md (movdi_internal): Use it.
6370
6371 2000-07-24  Zack Weinberg  <zack@wolery.cumb.org>
6372
6373         * cppexp.c: Warn about unary + if -Wtraditional.
6374         * cpplex.c (lex_line): Always set BOL on the first token of a line.
6375
6376 2000-07-24  Michael Meissner  <meissner@redhat.com>
6377
6378         * d30v.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Delete references to
6379         unsupported macro.
6380
6381 2000-07-24  Nick Clifton  <nickc@cygnus.com>
6382
6383         * config/arm/arm.c (emit_multi_reg_push): Generate a
6384         REG_FRAME_RELEATED_NOTE that is compatable with the code in
6385         dwarf2out_debug_frame_expr.
6386
6387 2000-07-24  Jason Merrill  <jason@redhat.com>
6388
6389         * dwarf2out.c: Complain if DWARF2_DEBUGGING_INFO is defined without
6390         UNALIGNED_INT_ASM_OP.
6391         (def_cfa_1): Don't emit def_cfa_register or def_cfa_offset to adjust
6392         a location expression.
6393         (dwarf2out_frame_debug_expr): Lose cfa_old_reg stuff.  Don't
6394         assume indirect access if we're saving the CFA address exactly.
6395
6396         * Makefile.in (bootstrap): Move -BstageN/ to the end.
6397
6398 2000-07-24  Jakub Jelinek  <jakub@redhat.com>
6399
6400         * tradcpp.c (main): Update max_include_len for cpp_include_defaults
6401         as well.
6402
6403 2000-07-24  Michael Meissner  <meissner@redhat.com>
6404
6405         * invoke.texi (D30V Options): Add d30v options.
6406
6407 Mon Jul 24 02:04:52 2000  Jeffrey A Law  (law@cygnus.com)
6408
6409         * gcse.c (alloc_pre_mem): Do not alloc TRANSPOUT, it is not
6410         needed by our gcse pass anymore.
6411         (free_pre_mem): Corresponding changes.
6412         (compute_pre_data): Do not call compute_transpout anymore.
6413
6414         * gcse.c (alloc_avail_expr_mem): Kill unused 'u_bitmap'.
6415         (free_avail_expr_mem, alloc_pre_mem, free_pre_mem): Corresponding
6416         changes.
6417
6418         * gcse.c (free_pre_mem): Do not free ANTLOC and AE_KILL here.
6419         (compute_pre_data): Do it here instead.
6420
6421         * gcse.c (alloc_pre_mem, free_pre_mem): Delete unused bitmap
6422         'temp_bitmap'.
6423         (pre_delete): Corresponding changes.
6424
6425 2000-07-23  Mark Mitchell  <mark@codesourcery.com>
6426
6427         * c-semantics.c (make_rtl_for_local_static): Use TREE_ASM_WRITTEN
6428         to figure out whether or not a variable has already been emitted.
6429
6430 Sun Jul 23 14:49:12 2000  Jason Eckhardt  <jle@cygnus.com>
6431
6432         * config/i860/i860.md (untyped_call expander): Use GEN_CALL
6433         instead of gen_call.
6434
6435 Sun Jul 23 11:52:03 2000  George Helffrich (george@gly.bris.ac.uk)
6436
6437         * dbxout.c (dbxout_type, case COMPLEX_TYPE): Fix length field in stab.
6438
6439 2000-07-23  Kazu Hirata  <kazu@hxi.com>
6440
6441         * h8300.c: Fix formatting.
6442
6443 2000-07-23  Joseph S. Myers  <jsm28@cam.ac.uk>
6444
6445         * c-typeck.c (c_expand_start_case): Change -Wtraditional pedwarn
6446         for `long' switch expression into a plain warning.
6447
6448         * c-lex.c (init_lex): Keep the "inline" keyword in C99 mode.
6449         (yylex): Don't pedwarn for "inline" in C99 mode.
6450
6451         * bitmap.c (debug_bitmap_file): Cast pointers to PTR for printing
6452         with %p.
6453         * ggc-page.c (debug_print_page_list, alloc_page, free_page,
6454         ggc_alloc): Likewise.
6455         * bb-reorder.c (dump_scope_forest_1): Likewise.
6456
6457 2000-07-22  Aldy Hernandez  <aldyh@redhat.com>
6458
6459         * reload.c (find_reloads_toplev): Add new parameter
6460         "address_reloaded".
6461         (find_reloads): Add new parameter to find_reloads_toplev calls.
6462
6463 2000-07-22  Jeffrey Oldham  <oldham@codesourcery.com>
6464
6465         * collect2.c (main): Typo fixed.
6466         * diagnostic.c: Typo fixed.
6467         * dwarf2out.c (dwarf2out_frame_debug_expr): Typo fixed.
6468         * eh-common.h: Typo fixed.
6469         * emit-rtl.c (start_sequence): Typo fixed.
6470         * flow.c (find_label_refs): Typo fixed.
6471         (calculate_global_regs_live): Typo fixed.
6472         (mark_regno_cond_dead): Typo fixed.
6473         (create_edge_list): Typos fixed.
6474         (verify_edge_list): Typo fixed.
6475         * ggc-common.c (ggc_mark_rtx_children): Typo fixed.
6476         * loop.c (strength_reduce): Typo in function name fixed.
6477         * rtl.h: Added comments.  Typo in function name fixed.
6478         * rtlanal.c: Typo in function name fixed.
6479         (insn_dependant_p): Rename to ...
6480         (insn_dependent_p): ... this.
6481         (computed_jumo_p): Typo fixed.
6482
6483 2000-07-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6484
6485         * system.h (__FUNCTION__): Wrap definition in #ifndef.
6486
6487 2000-07-21  David Edelsohn  <edelsohn@gnu.org>
6488
6489         * rs6000.h (SIZE_TYPE): Define.
6490
6491 2000-07-21  Mark Mitchell  <mark@codesourcery.com>
6492
6493         * ssa.c (rename_insn_1): Don't rename registers that are
6494         CLOBBERed.
6495
6496 2000-07-21  Zack Weinberg  <zack@wolery.cumb.org>
6497
6498         * diagnostic.c (trim_filename, fancy_abort): Moved here from
6499         rtl.c.
6500         (fatal_function, set_fatal_function): Removed.
6501         (fatal): Don't prepare for or call the fatal_function.
6502         (diagnostic_lock, error_recursion): New.
6503         (diagnostic_for_decl, report_diagnostic): Guard against
6504         re-entering the error reporting routines.
6505         (fancy_abort): Assume function is not NULL.
6506
6507         * errors.c (fancy_abort): New.  Assume function is not NULL.
6508         * tradcpp.c (fancy_abort): Assume function is not NULL.
6509
6510         * system.h: Provide default definition of __FUNCTION__.
6511         * rtl.h: Use __FUNCTION__ not __PRETTY_FUNCTION__ throughout.
6512         Always use __FUNCTION__ in definition of abort.
6513         * tree.h: Likewise.
6514         * varray.h: Likewise.
6515         * toplev.h: Likewise.  Don't prototype set_fatal_function.
6516
6517 2000-07-20  Geoff Keating  <geoffk@cygnus.com>
6518
6519         * config/rs6000/aix43.h (CPP_SPEC): Define __LONG_MAX__ correctly
6520         in 64-bit mode.
6521         * glimits.h: Don't do #if defined for ARCH_PPC.
6522
6523         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): All
6524         constants of size no larger than a pointer should go in the TOC.
6525         Add 'MODE' parameter.
6526         (LEGITIMIZE_RELOAD_ADDRESS): Add MODE parameter to
6527         ASM_OUTPUT_SPECIAL_POOL_ENTRY_P.
6528         (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise.
6529         * config/rs6000/aix.h (SELECT_RTX_SECTION): Likewise.
6530         * config/rs6000/netware.h (SELECT_RTX_SECTION): Likewise.
6531         * config/rs6000/rs6000.c (constant_pool_expr_1): Likewise.
6532         (rs6000_legitimize_address): Likewise.
6533         (rs6000_emit_move): Likewise.
6534         (rs6000_select_rtx_section): Likewise.
6535         (output_toc): Deal properly with outputting small constants like
6536         HImode, and SFmode in 32-bit mode, and DFmode in 64-bit mode.
6537         * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Add
6538         MODE parameter.  Put small constants in the TOC.
6539
6540         * config/rs6000/rs6000.c (easy_fp_constant_p): All constants are
6541         easy in SImode.
6542         (rs6000_emit_move): When reload calls us with an illegitimate
6543         address, exit early.  Move the change_address calls to one place
6544         at the end of the routine.  Merge the SImode and DImode expanders.
6545         When called by reload to put an integer into a FP register, force
6546         it to memory.
6547
6548         * config/rs6000/rs6000.c (struct toc_hash_struct): Add 'key_mode'
6549         field.
6550         (rs6000_hash_constant): Hash mode too.
6551         (toc_hash_function): Allow for key_mode.
6552         (toc_hash_eq): Structures are different if key_mode differs.
6553         (output_toc): Add 'mode' parameter.  Save key_mode.
6554         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY):
6555         Pass 'mode' parameter.
6556         * config/rs6000/rs6000-protos.h (output_toc): Add 'mode' param.
6557
6558         * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
6559         for vtable references.
6560
6561         * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): If we have a
6562         choice, don't put integer values in FP regs.
6563
6564 Thu Jul 20 18:13:52 2000  Jeffrey A Law  (law@cygnus.com)
6565
6566         * flow.c (verify_flow_info): Revamp code to verify that the
6567         head and end of each basic block are in the insn chain.
6568
6569 Thu Jul 20 18:02:35 2000  Michael Matz <matzmich@cs.tu-berlin.de>
6570
6571         * gcse.c (record_one_set): Prepend instead of append onto
6572         reg_set_table, making it O(n) instead O(n^2).
6573         * lcm.c (compute_antinout_edge,compute_laterin,compute_available):
6574         Use a queue instead of a stack as worklist.
6575
6576 2000-07-20  Kazu Hirata  <kazu@hxi.com>
6577
6578         * h8300.c (two_insn_adds_subs_operand): Fix a typo.
6579         * h8300.h (OK_FOR_T): New.
6580         (EXTRA_CONSTRAINT): Support OK_FOR_T.
6581         * h8300.md: Use inc/dec.[wl] for increment/decrement
6582         by 1 and 2 in HI and SI modes.
6583
6584 2000-07-20  Jim Wilson  <wilson@cygnus.com>
6585
6586         * config/ia64/ia64.h (ASM_OUTPUT_MI_THUNK): Handle DELTA values
6587         larger than 14 bits.
6588
6589 2000-07-20  Zack Weinberg  <zack@wolery.cumb.org>
6590
6591         * cppmacro.c (CAN_PASTE_AFTER): New macro.
6592         (count_params): Don't set GNU_REST_ARGS on anything.
6593         (save_expansion): Set PASTE_LEFT only on tokens for which
6594         CAN_PASTE_AFTER is true, or which are named operators.
6595
6596         * cpplex.c (parse_args): Distinguish between a rest argument
6597         given one empty argument, and a rest argument given zero arguments.
6598         (maybe_paste_with_next): Look for VOID_REST tag, and trigger
6599         deletion of previous token based on that.
6600         (get_raw_token): Flatten some control structure.
6601
6602         * cpplib.h (CPP_LAST_EQ): Correct.
6603         (VOID_REST): New token flag.
6604         (GNU_REST_ARGS): Delete.
6605
6606         * tradcpp.c (main): Don't munge -D options.
6607         (make_definition): Bring -D handling in line with cpplib.
6608         (do_define): Strip all leading whitespace from macro definitions.
6609
6610 2000-07-20  David Billinghurst <David.Billinghurst@riotinto.com.au>
6611
6612         * Makefile.in (tradcpp): Depend on intl.o and version.o.
6613
6614 2000-07-20  Bruce Korb  <bkorb@gnu.org>
6615
6616         * fixincl/check.tpl: strip the platform specific types before testing
6617         * fixincl/fixfixes.c(gnu_type_fix): use platform specific types
6618         * fixincl/fixincl.tpl: use platform specific types
6619         * fixincl/fixlib.h: include the platform specific types
6620         * fixincl/inclhack.def(gnu_types): don't supply the types
6621         * fixincl/fixincl.x: regen
6622
6623 2000-07-19  Jim Wilson  <wilson@cygnus.com>
6624
6625         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Don't allow XFmode in
6626         GR_REGS.
6627
6628 2000-07-19  Zack Weinberg  <zack@wolery.cumb.org>
6629
6630         * tradcpp.c (rescan): Do not recognize directives when the #
6631         is indented.
6632
6633 2000-07-19  Zack Weinberg  <zack@wolery.cumb.org>
6634
6635         Implement C++ named operators.
6636
6637         * cpplib.h (TTYPE_TABLE): Move CPP_MIN and CPP_MAX into block
6638         of operators allowed in #if and having an _EQ variant.  Add
6639         CPP_MIN_EQ, CPP_MAX_EQ, and CPP_DEFINED.
6640         (cpp_token flags): Add NAMED_OP.
6641         (enum node_type): Add T_OPERATOR.
6642         (struct cpp_hashnode): Add code slot to value union.
6643         * cpphash.h (spec_nodes): Remove n_defined.
6644
6645         * cpplex.c (lex_line): Convert T_OPERATOR nodes to their proper types.
6646         (spell_token, can_paste, maybe_paste_with_next): Handle named operators.
6647         (is_macro_disabled): Tweak error messages.
6648
6649         * cpplib.c (get_define_node): Disallow all named operators as
6650         macro names.  Tweak error messages.
6651         (_cpp_init_stacks): Don't set up spec_nodes->n_defined.
6652
6653         * cppinit.c (builtin_array): Add entries for the named operators.
6654         * cppexp.c (lex): Check for CPP_DEFINED token.
6655         (priority table): Add entries for CPP_MIN and CPP_MAX.
6656         (_cpp_parse_expr): Handle CPP_MIN and CPP_MAX.
6657
6658 2000-07-19  Bernd Schmidt  <bernds@cygnus.co.uk>
6659
6660         * gcse.c (INSN_CUID): If ENABLE_CHECKING, abort if the uid is
6661         larger than the array of cuids.
6662         (alloc_gcse_mem): Use uid_cuid rather than INSN_CUID when computing
6663         cuids.
6664
6665 2000-07-19  Bruce Korb  <bkorb@gnu.org>
6666
6667         * fixinc/fixincl.c:  Convert to using a table of environment variables
6668         and activate the auto-edit marker on the fixed output files.
6669         * fixinc/fixlib.h:  Define the environment table
6670         * fixinc/fixincl.sh: export the ${INPUT} dir
6671         * fixinc/check.tpl: likewise
6672
6673 2000-07-18  Zack Weinberg  <zack@wolery.cumb.org>
6674
6675         * gcc.c (.h spec): Fix typo.
6676
6677 Wed Jul 19 01:22:15 CEST 2000  Marc Espie  <espie@cvs.openbsd.org>
6678
6679         * Makefile.in: Fix tradcif.c path.
6680
6681 2000-07-18  Zack Weinberg  <zack@wolery.cumb.org>
6682
6683         * cpplib.h (TTYPE_TABLE): Rearrange to use only two per-entry
6684           macros, not five.
6685
6686         * cpphash.h (TOKEN_NAME): New macro.
6687         (_cpp_spell_operator): Deleted.
6688         (token_spellings): Now _cpp_token_spellings.
6689
6690         * cppexp.c: Use TOKEN_NAME or TYPE_NAME, not _cpp_spell_operator.
6691         * cpplex.c: Use OP and TK macros when expanding the
6692         TTYPE_TABLE.  Eliminate token_names.  For non-OPERATOR tokens,
6693         store the stringification of the enumeration name (CPP_CHAR,
6694         etc.) in the name slot of token_spellings.
6695         Use TOKEN_NAME and/or TOKEN_SPELL, do not reference
6696         token_spellings directly.
6697         * cpplib.c: Use TOKEN_SPELL.
6698
6699         * cpplex.c (_cpp_push_token): If the token being pushed back
6700         is the previous token in this context, just subtract one from
6701         context->posn.
6702         * cppmacro.c (save_expansion): Clear aux field when storing a
6703         placemarker.
6704
6705 2000-07-18  Jakub Jelinek  <jakub@redhat.com>
6706
6707         * cpplex.c (cpp_scan_buffer): Output line command even at the stop
6708         buffer, provided it is not NULL.
6709
6710 2000-07-18  Alexandre Oliva  <aoliva@redhat.com>
6711
6712         * c-decl.c (duplicate_decls): Do not call make_var_volatile() in
6713         case of invalid volatile re-declaration.
6714
6715 2000-07-18  Jakub Jelinek  <jakub@redhat.com>
6716
6717         * calls.c (store_arg): Return non-zero if sibcall_failure is desired.
6718         (expand_call): Adjust caller.
6719
6720 2000-07-17  Gabriel Dos Reis  <gdr@codesourcery.com>
6721
6722         * diagnostic.h (report_diagnostic): Change prototype.
6723
6724         * diagnostic.c (output_do_verbatim, diagnostic_for_asm,
6725         diagnostic_for_decl):  Change prototype.
6726         (error_with_decl, warning_with_decl, pedwarn_with_decl, warning,
6727         error, warning, error_with_file_and_line,
6728         warning_with_file_and_line, pedwarn_with_file_and_line, fatal):
6729         Adjust call to report_diagnostic, diagnostic_for_decl.
6730         (error_for_asm, warning_for_asm): Adjust call to diagnostic_for_asm.
6731         (output_verbatim, verbatim): Adjust call to output_do_verbatim.
6732
6733         * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic. End
6734         varaible argument list.
6735
6736 2000-07-17  Zack Weinberg  <zack@wolery.cumb.org>
6737
6738         * cpphash.c: Don't include hashtab.h.  Most macro-handling code
6739         moved to cppmacro.c.
6740         (hash_HASHNODE, eq_HASHNODE, _cpp_dump_macro_hash,
6741         dump_hash_helper): Delete.
6742         (expand_hash, higher_prime_number, _cpp_lookup_with_hash,
6743         cpp_forall_identifiers): New. Implement specialized version of
6744         Vlad's expandable hash table.
6745         (cpp_lookup): Use new functions.
6746         (_cpp_init_macros, _cpp_cleanup_macros): Adjust for new
6747         implementation.
6748         * cppmacro.c: New file.
6749         * cppinit.c (dump_macros_helper): New.
6750         (cpp_finish): Iterate over the identifier table directly.
6751         * cpplex.c (parse_name): Calculate the hash of the identifier
6752         while we scan it.  Use _cpp_lookup_with_hash when we can.
6753
6754         * cpphash.h: Update prototypes.
6755         (xcnewvec, HASHSTEP): New helper macros.
6756         * cpplib.h: Update prototypes.
6757         * Makefile.in (LIBCPP_OBJS): Add cppmacro.o.
6758         (cppmacro.o): New rule.
6759         (cpphash.o): Update deps.
6760
6761         * cppmain.c: Do not set pfile->printer if no_output is on.
6762
6763 2000-07-15  Neil Booth  <neilb@earthling.net>
6764
6765         * cpplib.c: Change all directive-handler functions to return
6766         void, not int.
6767         * cpphash.h: Update typedefs.
6768
6769 2000-07-17  Geoffrey Keating  <geoffk@cygnus.com>
6770
6771         * configure: Regenerate.
6772
6773         * extend.texi (Extended Asm): Mention that a memory clobber
6774         does not count as a side-effect.
6775
6776         * unroll.c (copy_loop_body): Fix one instance of using host
6777         arithmetic on the target; fixes loop-4 on a 32-bit -> 64-bit
6778         cross-compile.
6779
6780         * tlink.c (scan_linker_output): Tweak for output of AIX ld.
6781
6782 2000-07-17  Richard Henderson  <rth@cygnus.com>
6783
6784         * config/ia64/ia64.md (movdi): Split out load address code.
6785         New post-reload splitter for symbolic operands.
6786         (movdi_internal): Abort if we didn't split symbolic operands
6787         when we should have.
6788         * config/ia64/ia64.c (ia64_expand_load_address): New, from movdi bits.
6789         (ia64_reorg): Split insns when not optimizing.
6790         * config/ia64/ia64-protos.h (ia64_expand_load_address): Declare.
6791
6792 Mon Jul 17 23:43:26 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6793
6794         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use LONG_DOUBLE_TYPE_SIZE
6795         instead of MAX_LONG_DOUBLE_TYPE_SIZE to decide output format.
6796
6797 2000-07-17  Chandrakala Chavva   <cchavva@cygnus.com>
6798
6799         * loop.c (check_dbra_loop) : Changed loop_continue to loop->cont.
6800
6801 2000-07-17  Jason Merrill  <jason@redhat.com>
6802
6803         * Makefile.in (clean): Remove libgcc directory.
6804
6805         * configure.in (-Wno-long-long check): Use higher-level macros.
6806
6807 2000-07-17  Zack Weinberg  <zack@wolery.cumb.org>
6808
6809         * simplify-rtx.c (simplify_binary_operation): Recognize
6810            (compare (gt[u] (cc) 0) (lt[u] (cc) 0)).
6811         (simplify_ternary_operation):  Do not examine MODE_BITSIZE of
6812            a CONST_INT, it will always be zero.
6813
6814 2000-07-17  Chandrakala Chavva   <cchavva@cygnus.com>
6815
6816         * loop.c (check_dbra_loop) : Return if more than one condition is
6817         present to control the loop.
6818
6819 Mon Jul 17 08:26:35 2000  Clinton Popetz  <cpopetz@cygnus.com>
6820
6821         * mips.c (mips_expand_prologue): Don't calculate the last argument
6822         register unless we need it.  When we are calculating this, make
6823         sure FUNCTION_ARG is giving us a REG.
6824
6825 2000-07-17  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
6826
6827         * flow.c (libcall_dead_p): Use single_set to verify the insn
6828         has only one set and get for analysis.
6829         (propagate_one_insn): Don't pass the PATTERN of the insn.
6830
6831 2000-07-17  Mark Klein <mklein@dis.com>
6832
6833          * pa.c (emit_hpdiv_const): Update to match new pattern for udivsi3.
6834
6835 2000-07-17  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
6836
6837         * Makefile.in (TARGET_GETGROUPS_T): New configuration variable.
6838         * configure.in (TARGET_GETGROUPS_T): Evaluate.
6839         * sys-protos.h (getgroups): Use TARGET_GETGROUPS_T for array type
6840         of second argument of getgroups.
6841         * configure, config.in: Rebuilt.
6842
6843 2000-07-17  Geoffrey Keating  <geoffk@cygnus.com>
6844
6845         * simplify-rtx.c (simplify_relational_operation): Two signed
6846         values with equal high words are less/greater than each other if
6847         their low words are less/greater when considered as unsigned.
6848
6849 Mon Jul 17 02:37:06 2000  Marc Espie <espie@openbsd.org>
6850
6851         * configure.in (vax-*-openbsd):  Change to new style configuration,
6852         add collect2/float_format information.
6853         * configure:  Rebuilt.
6854         * config/vax/openbsd1.h:  New.
6855         * config/vax/openbsd.h:  New.
6856         * config/vax/t-openbsd:  New.
6857
6858 2000-07-17  Chip Salzenberg  <chip@valinux.com>
6859
6860         * c-common.c (shorten_compare): Quiet warnings about unsigned
6861         comparisons with zero when they occur in a system header.
6862
6863 2000-07-17  Joseph S. Myers  <jsm28@cam.ac.uk>
6864
6865         * invoke.texi (-pedantic): Refer to ISO C instead of ANSI C, and
6866         update to describe current practice.
6867
6868         * glimits.h (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Define for C99.
6869
6870         * contrib.texi, cpp.texi, extend.texi, invoke.texi: Update
6871         references to C9X.  Change references to -fstd and -flang-isoc9x
6872         to refer to -std.
6873
6874         * c-common.c (scan_char_table): Allow "z" length modifiers on
6875         diouxXn formats.
6876         (check_format_info): Use TYPE_DOMAIN on the type matched against
6877         for "z" formats, to retrieve the language size_t rather than the
6878         internal one.
6879
6880         * c-common.c (check_format_info): Do not make a pedantic objection
6881         to the 'L' length modifier if used with a floating point type
6882         character.
6883
6884         * c-lex.c (yylex): Don't pedwarn for hexadecimal floating point
6885         constants in C99 mode.
6886
6887 2000-07-17  Kazu Hirata  <kazu@hxi.com>
6888
6889         * h8300.md: Fix the format of mac.
6890         (movsi_h8300hs): Output a tab after stmac instead of a space.
6891
6892         * h8300.c (two_insn_adds_subs_operand): Improve code for detecting
6893         profitable adds/subs sequences.
6894
6895         * fold-const.c: Fix comment typos.
6896
6897 2000-07-16  Laurynas Biveinis  <lauras@softhome.net>
6898
6899         * cppfiles.c (read_name_map): Set map_list_ptr->map_list_map to NULL.
6900
6901 2000-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6902
6903         * fixinc/fixfixes.c (emit_gnu_type): Avoid string concatenation.
6904
6905 2000-07-16  Neil Booth  <NeilB@earthling.net>
6906
6907         * cpplex.c: Update comments.
6908         * README.Portability: Small update.
6909
6910 2000-07-16  Neil Booth  <NeilB@earthling.net>
6911
6912         * README.Portability:  Small update.
6913
6914 2000-07-15  Richard Henderson  <rth@cygnus.com>
6915
6916         * config/ia64/ia64-protos.h (ia64_move_ok): Prototype.
6917         * config/ia64/ia64.c (ia64_move_ok): New function.
6918         * config/ia64/ia64.md (movqi, movqi_internal): Use it.
6919         (movhi, movsi, movdi, movsf, movdf, movxf): Likewise.
6920
6921 2000-07-15  Zack Weinberg  <zack@wolery.cumb.org>
6922
6923         * cpphash.c (save_expansion): Clear PREV_WHITE on tokens
6924         immediately following a paste operator.
6925         * cppinit.c (sort_options): New function (only for HOST_EBCDIC).
6926         (cpp_reader_init): Call it, if HOST_EBCDIC.
6927         (cpp_handle_options): Do not sort option list here.
6928         (handle_option): Rename to cpp_handle_option and export.
6929         * cpplex.c (cpp_scan_buffer_nooutput, cpp_scan_buffer): Use
6930         _cpp_get_token directly.
6931         (cpp_scan_line): Return 0 at EOF, 1 otherwise.
6932         * cpplib.c (cpp_push_buffer): Don't set new->lineno to 1.
6933         * cpplib.h: Prototype cpp_handle_option.  Update prototype of
6934         cpp_scan_line.
6935
6936 2000-07-15  Richard Henderson  <rth@cygnus.com>
6937
6938         * fold-const.c (extract_muldiv): Don't optimize past an unsigned
6939         cast around an expression.  Tidy other unsigned tests.
6940
6941 2000-07-15  Gabriel Dos Reis  <gdr@codesourcery.com>
6942
6943         * diagnostic.c (doing_line_wrapping, line_wrapper_printf, notice,
6944         v_error_with_decl, v_warning_with_decl, v_pedwarn_with_decl): Remove.
6945         (v_message_with_decl): Rename to ...
6946         (format_with_decl): ... this. Tweak
6947         (diagnostic_for_decl): New function.
6948         (fatal_io_error): Use verbatim in lieu of notice.
6949         (announce_function): Use verbatim.
6950         (default_print_error_function): Likewise.
6951         (error_with_decl, warning_with_decl, pedwarn_with_decl): Use new
6952         infratructure.
6953
6954 2000-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6955
6956         * mips.c (function_arg_pass_by_reference): Don't do automatic
6957         aggregate initialization.
6958         (machine_dependent_reorg): Initialize variable `mode'.
6959
6960         * mips.md (absdi2): Change variable `regno1' to unsigned int.
6961         (reload_indi): Rename loword/hiword to lo_word/hi_word to avoid
6962         conflicts with sys/param.h macro of the same name.
6963         (reload_outdi): Likewise.
6964
6965 2000-07-15  Michael Meissner  <meissner@redhat.com>
6966
6967         * fold-const.c (fold): When optimizing FOO++ == CONST into ++FOO
6968         == CONST + INCREMENT, don't overwrite the tree node for FOO++,
6969         create a new node instead.
6970
6971 2000-07-15  Neil Booth  <NeilB@earthling.net>
6972
6973         * README.Portability: Correct example about calling a function
6974         through a pointer to function.  Format wide paragraphs.
6975
6976 2000-07-15  Michael Meissner  <meissner@redhat.com>
6977
6978         * README.Portability: Update integer suffixes and function
6979         prototype sections.
6980
6981 2000-07-15  Neil Booth  <NeilB@earthling.net>
6982
6983         * README.Portability: Small update.
6984
6985 2000-07-15  Neil Booth  <NeilB@earthling.net>
6986
6987         * README.Portability: New file.
6988
6989 Fri Jul 14 18:13:53 2000  Mark P Mitchell  <mark@codesourcery.com>
6990
6991         * INSTALL: Give special instructions for building GCC on Irix 6.
6992         * config/mips/x-iris6 (CC): Don't set it.
6993         (OLDCC): Likewise.
6994
6995 2000-07-14  Jason Merrill  <jason@redhat.com>
6996
6997         * dwarf2out.c (dwarf2out_frame_debug_expr): If we store the CFA
6998         register in the stack and later in another register, use the new
6999         register.
7000
7001 Fri Jul 14 10:25:53 2000  Clinton Popetz  <cpopetz@cygnus.com>
7002
7003         * config/mips/mips.md: (absdi2): Handle sign_extend for
7004         second operand.
7005
7006 2000-07-14  Nathan Sidwell  <nathan@codesourcery.com>
7007
7008         * cpplib.c (do_pragma_dependency): Tidy warning messages.
7009
7010 2000-07-14  Zack Weinberg  <zack@wolery.cumb.org>
7011
7012         * .cvsignore: Correct typo.
7013
7014 2000-07-13  Mark Mitchell  <mark@codesourcery.com>
7015
7016         * .cvsignore: Add generated YACC files.
7017         * objc/.cvsignore: New file.
7018
7019 2000-07-14  Neil Booth  <NeilB@earthling.net>
7020
7021         * cpplex.c (adjust_column): New funcion.
7022         (skip_whitespace): Use it.
7023         (skip_block_comment): Use it, and warn about /*/* with
7024         -Wcomments.
7025
7026 2000-07-14  Neil Booth  <NeilB@earthling.net>
7027
7028         * cpphash.c (struct macro_info): Add new members.
7029         (_cpp_free_definition): Delete the macro directly.
7030         (count_params): Return void, with first token of
7031         expansion in struct macro_info on success.
7032         (parse_define): Return int.  Hoist syntax checking from
7033         save_macro_expansion.  Leave call to save_expansion to
7034         _cpp_create_definition.
7035         (alloc_macro): Needs just 2 arguments.
7036         (free_macro): Delete.
7037         (save_expansion): Don't perform syntax check.
7038         (_cpp_create_definition): Call save_expansion.
7039
7040 2000-07-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7041
7042         * genrecog.c (write_header): Split long string.
7043
7044         * cpphash.c (macro_info): Don't use the `signed' keyword.
7045
7046         * system.h (alloca): Prototype if __GNUC__ && __SIZE_TYPE__.
7047
7048 2000-07-13  Jakub Jelinek  <jakub@redhat.com>
7049
7050         * calls.c (stored_args_map): New variable.
7051         (check_sibcall_argument_overlap_1): New.
7052         (check_sibcall_argument_overlap): New.
7053         (expand_call): Initialize stored_args_map.
7054         Call check_sibcall_argument_overlap.
7055
7056 2000-07-13  Bruce Korb  <bkorb@gnu.org>
7057
7058         * fixinc/fixfixes.c: move EXIT_BROKEN to header, add sub-expr max count
7059         (emit_gnu_type): utility procedure for gnu_type_fix
7060         (gnu_type_fix): implement various pre-processor guards around
7061         standard types so these types can be defined over and over
7062         * fixinc/fixincl.tpl: add a "gnu_type_map" that forces the standard
7063         types alluded to above will have GNU-compliant base types
7064         * fixinc/fixlib.h: add EXIT_BROKEN define and the gnu_type_map struct
7065         * fixinc/inclhack.def: add test_text entries and utilize the new
7066         "gnu_types" fix for the ptrdiff_t, size_t and wchar_t types.
7067         * fixinc/fixincl.x: regenerate
7068
7069 2000-07-12  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
7070
7071         * diagnostic.c (vline_wrapper_message_with_location,
7072         v_message_with_file_and_line, v_error_with_file_and_file,
7073         v_error_for_asm, v_warning_for_asm, vfatal,
7074         v_warning_with_file_and_line, v_pedwarn_with_file_and_line,
7075         vsorry, verror, vwarning, vpedwarn): Remove.
7076         (diagnostic_for_asm): New function.
7077         (pedwarn, error, warning, pedwarn_with_file_and_line,
7078         error_with_file_and_line, warning_with_file_and_line, sorry,
7079         error_for_asm, warning_for_asm, fatal): Reimplement.
7080         (finish_diagnostic): Clear diagnostic info as well.
7081
7082 2000-07-13  Neil Booth  <NeilB@earthling.net>
7083
7084         * c-common.h (flag_digraphs): New.
7085         * c-decl.c (c_decode_option): Set flag_digraphs as appropriate.
7086         * c-lex.c (yylex): Use flag_digraphs to decide whether to
7087         honour digraphs.
7088
7089 2000-07-13  Zack Weinberg  <zack@wolery.cumb.org>
7090
7091         * gcc.c (do_spec_1): Add new %B operator.
7092         (set_input): Prepare for %B.
7093
7094         (link_command_spec): Move up with the other tm.h-
7095         overrideable specs.  Factor out the portion conditional on
7096         LINK_LIBGCC_SPECIAL into a new spec, %(link_libgcc).
7097         (struct compiler): Just have a single spec string.  All users
7098         updated.
7099         (default_compilers): Remove unnecessary braces.
7100         (static_specs): Update.
7101
7102         (trad_capable_cpp, cpp_options, cc1_options, asm_options): New
7103         named specs.
7104         (C and assembly specs): Use the new named specs, as appropriate.
7105
7106         * objc/lang-specs.h: Use the new named specs.
7107         Remove unnecessary braces.
7108
7109 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
7110
7111         * gcc.c (execute): If a subprocess gets a fatal signal, report
7112         strsignal() of the signal number, and ask for a bug report.
7113         Do not do this for SIGPIPE if there's already been an error.
7114
7115         * tradcpp.c: Don't include signal.h.  Don't catch SIGPIPE.
7116         Delete pipe_closed.
7117
7118         * tradcif.c: Remove.
7119
7120 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
7121
7122         * final.c (profile_function): Do not emit profile counters in
7123         the data section, if NO_PROFILE_COUNTERS is defined.
7124         * tm.texi: Document NO_PROFILE_COUNTERS.  Update doc for
7125         FUNCTION_PROFILER.
7126
7127         * config/i386/linux.h (NO_PROFILE_COUNTERS): Define.
7128         (FUNCTION_PROFILER): Just emit a call to mcount.
7129
7130 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
7131
7132         * tradcpp.c (main): Rename 'perror' label to 'sys_error'.
7133
7134         * cppexp.c, cpphash.c, cpphash.h, cppinit.c, cpplex.c,
7135         cpplib.c, cpplib.h: Eradicate all traces of code dependent on
7136         traditional, lang_chill, or lang_fortran.
7137
7138         * cppfiles.c: #undef strcmp to suppress warning about macros
7139         used without arguments.
7140         (_cpp_execute_include): Use f, not fname, in "No include path"
7141         error.
7142         (_cpp_pop_file_buffer): New function.
7143         * cpplib.c: Don't include <sys/mman.h>.
7144         (cpp_push_buffer): Set line_base and lineno in new buffer.
7145         (cpp_pop_buffer): Use _cpp_pop_file_buffer.
7146
7147         * cpplex.c: Move all prototypes and structure declarations to the
7148         top of the file.  Properly parenthesise some macro arguments.
7149         (cpp_scan_line): New function.
7150         (special_symbol [case T_INCLUDE_DEPTH]): Use pfile->include_depth,
7151         don't need to walk up the stack counting.
7152
7153 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7154
7155         * c-common.c (combine_strings): Emit a pedantic warning when a
7156         string length is greater than the minimum ANSI C is required
7157         to support.
7158
7159 Wed Jul 12 13:24:30 2000  Jeffrey A Law  (law@cygnus.com)
7160
7161         * pa/xm-pa64.h (NO_SYS_SIGLIST): Kill.
7162         * d30v/xm-d30v.h (NO_SYS_SIGLIST): Kill.
7163
7164 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7165
7166         * c-decl.c (define_label): Warn about identifier conflicts with
7167         labels in traditional C.
7168
7169         * c-parse.in (unop +): Warn about the unary plus operator for
7170         traditional C.
7171
7172         * c-typeck.c (store_init_value): Warn about automatic aggregate
7173         initialization for traditional C.
7174
7175         * invoke.texi (-Wtraditional): Document new warnings.
7176
7177 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
7178
7179         * Makefile.in (c-errors.o): Fix thinko in dependency.
7180
7181 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
7182
7183         * gcc.c (C specs [!USE_CPPLIB]): Invoke tradcpp if any of
7184         -traditional, -ftraditional, or -traditional-cpp was given.
7185         Do not pass -traditional to the preprocessor.
7186         (.S spec): Likewise.  Don't bother defining __ASSEMBLER__, the
7187         preprocessor does it automatically.
7188         * objc/lang-specs.h: Likewise.  Don't bother defining __OBJC__.
7189
7190         * ch/lang-specs.h: Always use tradcpp.  Do not pass
7191         -traditional, -trigraphs, or -pedantic to the preprocessor.
7192         * f/lang-specs.h (.F spec): Likewise.  Don't bother defining
7193         _LANGUAGE_FORTRAN.
7194
7195 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
7196
7197         * cppexp.c (LOGICAL): Delete macro.
7198         (_cpp_parse_expr): Do not use UNARY for unary +.  Implement ||
7199         and && directly.
7200
7201         * cpphash.c (HASHSIZE): Increase to 4096.
7202         (struct hashdummy): Add hash field.
7203         (eq_HASHNODE): Compare unreduced hashes, then lengths, then
7204         the string values using memcmp.
7205         (cpp_lookup): Set dummy.hash.
7206
7207 Wed Jul 12 13:15:16 2000  Marc Espie <espie@openbsd.org>
7208
7209         * configure.in (m88k-openbsd): Express configuration using new fragment
7210         style.
7211         * configure: Rebuilt.
7212         * m88k/aout-dbx.h: New.
7213         * m88k/openbsd.h: New.
7214         * m88k/xm-openbsd.h: New.
7215
7216 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7217
7218         * expr.c (expand_expr): Return const0_rtx, not error_mark_node.
7219
7220 2000-07-12  Richard Henderson  <rth@cygnus.com>
7221
7222         * reload.c (push_secondary_reload): Make sure to add the new
7223         reload at the end, after acquiring secondary memory.
7224
7225 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7226
7227         * cpplex.c (is_macro_disabled): Use CPP_WTRADITIONAL.
7228
7229         * c-decl.c (set_current_function_name_declared, anon_aggr_type_p,
7230         lang_expand_stmt): Mark parameters with ATTRIBUTE_UNUSED.
7231
7232         * c-parse.in (stmt): Delete unused variables.
7233
7234         * convert.c (convert_to_vector): Likewise.
7235
7236         * gensupport.c (process_rtx): Declare attr as `rtvec' not `rtx'.
7237
7238         * tree.c (finish_vector_type): Prototype.
7239
7240 2000-07-12  Bruce Korb  <bkorb@gnu.org>
7241
7242         * fixinc/fixfixes.c: use xmalloc
7243         * fixinc/fixincl.c(initialize): set program name for xmalloc
7244         * fixinc/fixlib.c(must_malloc): obsolete
7245         (is_cxx_header): no longer used - disabled
7246         (skip_quote): inserted and disabled for future use
7247         * fixinc/fixlib.h: reflects above
7248         * fixinc/fixtests.c: removed dinkleberries
7249
7250 2000-07-12  Neil Booth  <NeilB@earthling.net>
7251
7252         * cpphash.h: (TOKEN_SPELL) Pulled from cpplex.c.
7253         * cpplex.c (TOKEN_SPELL) Move to cpphash.h.
7254
7255         * cpphash.c: (struct macro_info, alloc_macro, free_macro,
7256         struct toklist_dummy): New.
7257         (cpp_free_definition): Free macros with free_macro.
7258         (count_params): Don't save paramter spellings.  Save macro
7259         information in a struct macro_info.
7260         (parse_define): Don't allocate a token list.
7261         (save_expansion): Allocate the macro's token list, and
7262         save parameter spellings if necessary.  Use TOKEN_SPELL.
7263         (cpp_create_definition): Make list const.
7264
7265 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
7266
7267         * c-typeck.c (pedwarn_c99): Move to
7268         * c-errors.c: ... Here.
7269         * toplev.h (verror, vwarning, vpedwarn): Remove prototypes.
7270         * diagnostic.c (verror, vwarning, vpedwarn): Make static.
7271         * Makefile.in (C_AND_OBJC_OBJS): Include c-errors.o
7272         (c-errors.o): List dependency.
7273
7274 2000-07-12  Mark Mitchell  <mark@codesourcery.com>
7275
7276         * c-parse.c: Remove.
7277         * c-parse.h: Likewise.
7278         * c-parse.y: Likewise.
7279         * objc/objc-parse.c: Likewise.
7280         * objc/objc-pasre.y: Likewise.
7281
7282 2000-07-11  Rodney Brown  <RodneyBrown@pmsc.com>
7283
7284         * gcc.texi: Fix minor typos
7285         * extend.texi: Fix minor typos
7286
7287 2000-07-11  Marc Espie <espie@openbsd.org>
7288
7289         * collect2.c (main): Recognize .lo as object files.
7290
7291 2000-07-11  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
7292
7293         * pa.c (hppa_encode_label): Store labels in gc memory when ggc_p is
7294         true.
7295
7296         * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Extend test to detect systems
7297         with MAP_ANONYMOUS and MAP_ANON.
7298         * configure, config.in: Rebuilt.
7299
7300 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
7301
7302         * diagnostic.c (save_output_state): Remove.
7303         (restore_output_state): Likewise.
7304         (clear_text_info): New function.
7305         (clear_diagnostic_info): Likewise.
7306         (output_text_length, is_starting_newline, output_prefix,
7307         line_wrap_cutoff, ideal_line_wrap_cutoff, prefix_was_emitted_for,
7308         prefixing_policy, output_buffer_ptr_to_format_args): New macros
7309         (set_real_maximum_length, output_set_maximum_length,
7310         output_set_prefix, output_get_prefix, output_set_maximum_length,
7311         output_destroy_prefix, init_output_buffer,
7312         reshape_diagnostic_buffer, output_space_left, output_emit_prefix,
7313         output_add_newline, output_add_character, output_add_space,
7314         output_append_r, output_append, wrap_text, output_format,
7315         output_do_printf, output_printf, output_do_verbatim,
7316         output_verbatim, verbatim): Use them.
7317         (output_clear): Split into cleat_text_info and
7318         clear_diagnostic_info.
7319         (struct output_state): Move to...
7320
7321         * diagnostic.h: ...Here
7322         (struct output_buffer): Adjust.
7323
7324 2000-07-11  Zack Weinberg  <zack@wolery.cumb.org>
7325
7326         * cpplex.c (parse_name): No longer inline (premature optimization).
7327         (do_pop_context): Fold into pop_context.
7328         (pop_context): Returns int.
7329         (lex_next): Hoist test for end of directive into pop_context.
7330         (push_macro_context): Returns int; takes just reader and token.
7331         Hoist test for excessive nesting to caller.
7332         (push_arg_context): Returns void; takes just reader and token.
7333         Do not call stringify_arg or get_raw_token.
7334         (get_raw_token): Convert tail recursion through push_arg_context
7335         to a loop at this level.  Call stringify_arg here if appropriate.
7336         (maybe_paste_with_next): Convert tail recursion to a while loop.
7337         Hoist test of paste_level to caller.
7338
7339         (stringify_arg): Push arg context at beginning.
7340         (cpp_get_token): Split out core into _cpp_get_token.  Call
7341         process_directive here.  Throw away CPP_PLACEMARKER tokens.
7342         (_cpp_get_token): Convert tail recursion through
7343         push_macro_context to a loop at this level.
7344         (_cpp_glue_header_name, is_macro_disabled, stringify_arg,
7345         _cpp_get_raw_token): Use _cpp_get_token.
7346         (_cpp_skip_rest_of_line): Drop the context stack directly; do
7347         not call pop_context.
7348         (_cpp_run_directive): Call lex_next directly.
7349
7350         * cpphash.h: Prototype _cpp_get_token.
7351         * cppexp.c (lex): Use it.
7352         * cpphash.c (parse_define): Use it.
7353         * cpplib.c (get_define_node, do_undef, parse_include,
7354         read_line_number, do_line, do_ident, do_pragma, do_pragma_gcc,
7355         do_pragma_implementation, do_pragma_poison, do_pragma_dependency,
7356         parse_ifdef, validate_else): Use it.
7357         (cpp_push_buffer): Tweak error message; abort if anyone tries
7358         to push a buffer while macro expansions are stacked.
7359
7360 2000-07-11  Donn Terry  <donnte@microsoft.com>
7361
7362         * cpplex.c (free_macro_args, save_token): Cast arg of free
7363         and/or xrealloc to PTR.
7364         (_cpp_init_input_buffer): Clear all fields of the base context.
7365
7366 Tue Jul 11 15:28:21 CDT 2000  Clinton Popetz  <cpopetz@cygnus.com>
7367
7368         * gensupport.c (process_rtx): Make rtl checking stop
7369         complaining about the define_insn while it is being
7370         converted from a define_insn_and_split.
7371
7372 Tue Jul 11 16:26:17 2000  Clinton Popetz  <cpopetz@cygnus.com>
7373
7374         * config/mips/mips.c (simple_memory_operand): Access the
7375         INTVAL of the address, not it's containing MEM.
7376
7377 2000-07-11  Bruce Korb  <bkorb@gnu.org>
7378
7379         * fixinc/fixtests.c(double_slash): obsolete
7380         (else_endif_label): likewise
7381         * fixinc/inclhack.def(irix_multiline_cmnt): obsolete
7382         (libc1_ifdefd_memx): correct initial comment
7383         and omit the #if/#endif pair from the memxxx declarations
7384         * fixinc/fixincl.x: regen
7385
7386 2000-07-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7387
7388         * cpplex.c (T, I, S, C, N): Avoid non-constant initializers.
7389
7390 2000-07-11  Neil Booth  <NeilB@earthling.net>
7391
7392         * cpp.texi: Update.
7393
7394 2000-07-11  Neil Booth  <NeilB@earthling.net>
7395
7396         * cppinit.c: (cpp_reader_init): Allow digraphs by default.
7397         (handle_option): Set digraphs according to standard.
7398         Merge OPT_lang_c89 handler with OPT_std_c89.
7399
7400         * cpplex.c: (lex_line, can_paste): Honour digraphs in
7401         accordance with the digraphs flag.
7402
7403         * cpplib.h: (struct cpp_options): New option digraphs.
7404
7405 2000-07-10  Hans-Peter Nilsson  <hp@axis.com>
7406             Bruce Korb  <bkorb@gnu.org>
7407
7408         * fixinc/inclhack.def (libc1_ifdefd_memx): New fix.
7409         * fixinc/fixincl.x: Regenerate.
7410         * fixinc/tests/base/testing.h: Add testcase.
7411
7412 2000-07-10  Richard Henderson  <rth@cygnus.com>
7413
7414         * config/ia64/ia64.c (got_symbolic_operand): New.
7415         (symbolic_operand, move_operand): Revert 0701 change.
7416         * config/ia64/ia64.h (PREDICATE_CODES): Update.
7417         * config/ia64/ia64-protos.h (got_symbolic_operand): Declare.
7418         * config/ia64/ia64.md (movdi): Revert 0701 wrt symbolic_operand;
7419         split the offset into a 14-bit low part instead of a 13-bit low part.
7420         (load_fptr): Mark the mem as unchanging.
7421         (load_symptr): Use got_symbolic_operand.
7422
7423 2000-07-10  Nick Clifton  <nickc@cygnus.com>
7424
7425         * libgcc2.c (next_stack_level): Cast result of computation to
7426         (void **) so that the assignment does not generate a warning.
7427
7428 2000-07-10  Chandrakala Chavva  <cchavva@redhat.com>
7429
7430         * flags.h : Add new variable flag_single_precision_constant.
7431         * toplev.c (display_help) : Add -fsingle-precision-constant option.
7432         (flag_single_precision_constant): New.
7433         * c-lex.c (yylex): Convert floating point constant to single
7434         precision constant.
7435         * invoke.texi : Add documentation for this new option.
7436
7437 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
7438
7439         * diagnostic.c (output_octal): Second parameter is unsigned.
7440         (output_long_octal): Likewise.
7441         (output_hexadecimal): Likewise.
7442         (output_long_hexadecimal): Likewise.
7443         (output_format): Adjust arguments extraction. Tweak.
7444         (output_verbatim, verbatim): End variable argument list.
7445         (report_diagnostic): Improve documentation.
7446
7447 2000-07-10  Benjamin Chelf  <chelf@codesourcery.com>
7448
7449         * c-common.h (build_stmt): Declare.
7450         (build_continue_stmt): Likewise.
7451         (build_break_stmt): Likewise.
7452         (build_return_stmt): Likewise.
7453
7454         * c-decl.c (do_case): Rewrite to do what previously done in
7455         c-parse.in.
7456
7457         * c-semantics.c (build_stmt): Define.
7458         (build_return_stmt): Likewise.
7459         (build_break_stmt): Likewise.
7460         (build_continue_stmt): Likewise.
7461         (build_case_label): Likewise.
7462
7463         * c-parse.in (BREAK): Change to build tree, then generate RTL.
7464         (CONTINUE): Likewise.
7465         (RETURN): Likewise.
7466         (CASE): Likewise.
7467         (DEFAULT): Likewise.
7468
7469         * c-parse.y: Regenerate.
7470         * c-pasre.c: Likewise.
7471
7472 2000-07-09  Jason Merrill  <jason@redhat.com>
7473
7474         * expr.c (expand_expr): Bail earlier if we get an error_mark_node.
7475
7476         * tree.h (STRIP_NOPS): Check for error_mark_node.
7477         (STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Likewise.
7478         (dwarf2out_*): Remove duplicate declarations.
7479
7480         * c-decl.c (duplicate_decls): Copy DECL_ABSTRACT_ORIGIN from
7481         DECL_ABSTRACT_ORIGIN, not DECL_ORIGIN.
7482
7483 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
7484
7485         * diagnostic.c (wrap_text): New function.
7486         (maybe_wrap_text): Likewise.
7487         (output_add_string): Use it.
7488         (output_format): Likewise.
7489         (count_error): Use verbatim instead of notice.
7490         (report_error_function): Likewise. Don't use plain fprintf.
7491         (finish_diagnostic): New function.
7492         (output_do_verbatim): Tweak.  Commonalize functionalities in
7493         output_verbatim and verbatim.
7494         (output_verbatim): Adjust.
7495         (verbatim): Likewise.
7496         (report_diagnostic): Define.
7497
7498         * diagnostic.h (report_diagnostic): Prototype.
7499
7500 2000-07-09  Zack Weinberg  <zack@wolery.cumb.org>
7501
7502         * cppexp.c (_cpp_parse_expr): Don't use unary plus.
7503
7504 2000-07-09  Neil Booth  <NeilB@earthling.net>
7505
7506         * cpphash.h: ISvspace, is_vspace, is_nvspace: New.
7507         IShspace, ISspace: Update.
7508
7509         * cppinit.c: ISTABLE: Update.
7510         V: New.
7511
7512         * cpplex.c (IS_HSPACE, S_NEWLINE): Remove.
7513         (IS_DIRECTIVE): Rename KNOWN_DIRECTIVE.
7514         (skip_block_comment, skip_line_comment, parse_string,
7515         lex_line): Use is_vspace rather than IS_NEWLINE.
7516         (skip_whitespace, lex_line): Clean up to use is_nvspace.
7517         (lex_line): Use KNOWN_DIRECTIVE.  Any kind of directive
7518         gets a BOL flag.
7519         (lex_next): Unconditionally stop if within a directive.
7520         Treat directives within macro invocations as directives
7521         (after parse_args emits error), not as the argument.
7522
7523 2000-07-09  Gabriel Dos Reis  <gdr@codesourcery.com>
7524
7525         * diagnostic.c (diagnostic_args): New macro.
7526         (diagnostic_msg): Likewise.
7527         (output_formatted_integer): Likewise.
7528         (output_state): New data type.
7529         (digit_buffer): Make global.
7530         (output_add_integer): Rename to output_decimal. Squeeze
7531         digit_buffer.
7532         (output_long_decimal, output_unsigned_decimal,
7533         output_long_unsigned_decimal, output_octal, output_long_octal,
7534         output_hexadecimal, output_long_hexadecimal): New functions.
7535         (output_append_r): New function.
7536         (output_append): Tweak.
7537         (output_flush_on): Rename to output_to_stream.
7538         (output_format): Change prototype.  Improve documentation. Handle
7539         more format specifiers.
7540         (build_location_prefix): Rename to context_as_prefix.
7541         (output_notice): Rename to output_do_printf.
7542         (output_printf): Tweak.
7543         (line_wrapper_printf): Likewise.
7544         (vline_wrapper_message_with_location): Adjust call to renamed
7545         functions.
7546         (v_message_with_decl): Likewise.
7547         (default_print_error_function): Likewise.
7548         (save_output_state): New function.
7549         (restore_output_state): Likewise.
7550         (output_do_verbatim): Likewise.
7551         (output_verbatim): Define.
7552         (verbatim): Likewise.
7553
7554         * diagnostic.h (printer_fn): Change return type from void to int.
7555         Improve documentation.
7556         (output_add_integer): Rename to output_decimal.
7557         (output_flush_on, output_format): Don't export.
7558         (output_verbatim, verbatim): Declare.
7559
7560 2000-07-08  Toon Moene  <toon@moene.indiv.nluug.nl>
7561
7562         * fold-const.c (extract_muldiv) case PLUS_EXPR, MINUS_EXPR:
7563         Check whether c divides op1 exactly if operation is not
7564         multiplication.
7565
7566 2000-07-08  Richard Henderson  <rth@cygnus.com>
7567
7568         * final.c (final): Do not abort when reg-stack introduces
7569         a new insn.
7570
7571 2000-07-08  Zack Weinberg  <zack@wolery.cumb.org>
7572
7573         * cpplib.h (struct cpp_name): Now struct cpp_string.
7574         (CPP_INT, CPP_FLOAT, CPP_NUMBER, CPP_COMMENT,
7575         CPP_HEADER_NAME): Change to type S.
7576         (struct cpp_token): Rename 'name' field to 'str'.  Add 'node'
7577         field, a cpp_hashnode *.  All references to val.name updated
7578         to use val.str or val.node as appropriate.
7579         (struct cpp_reader): Add spec_nodes field.
7580         (cpp_idcmp): Now cpp_ideq; takes a token * and a char *.
7581
7582         * cpphash.h (struct spec_nodes): New.
7583         (enum spell_type): Reorder.  Only SPELL_STRING tokens use
7584         val.str.  All references to 'spelling > SPELL_NONE' updated to
7585         match.
7586
7587         (CPP_IN_SYSTEM_HEADER): Check pfile->buffer and
7588         pfile->buffer->inc are not NULL before dereferencing them.
7589
7590         * cpplex.c (parse_name): Take a pointer to the current token,
7591         plus current position and limit as args; return the new
7592         position; don't copy the text of a name into the string
7593         buffer, instead call cpp_lookup and store the node pointer.
7594         If extending a token, copy out the text of the old into a
7595         scratch buffer, append the new, look that up and store the new
7596         node pointer.  Inline.
7597         (maybe_paste_with_next): If the result of paste is a NAME,
7598         then look up the pasted text and store its node pointer.
7599         (lex_line): Adjust for new parse_name interface.
7600         Check for L"str", L'str' using spec_nodes->n_L.
7601         (spell_token): SPELL_IDENT tokens have their spelling in
7602         val.node->name.  Handle SPELL_STRING tokens that don't have
7603         string delimiters.
7604         (_cpp_expand_name_space,
7605         (can_paste): Check for L ## "str" using spec_nodes->n_L.
7606         (cpp_get_token, special_symbol): No need to call cpp_lookup.
7607         (cpp_idcmp): Now cpp_ideq; take a token * and a const char *;
7608         return 1=equal 0=not, not a tristate.
7609
7610         * cpphash.c (var_args_str): Delete.
7611         (find_param): Compare node fields directly.
7612         (is__va_args__): Use CPP_PEDANTIC.  Just compare
7613         token->val.node with spec_nodes->n__VA_ARGS__.
7614         (dump_funlike_macro): Don't use var_args_str.
7615
7616         * cpplib.c (_cpp_check_directive): Just walk through
7617         spec_nodes->dirs comparing pointers.
7618         (get_define_node, do_pragma_poison, detect_if_not_defined,
7619         parse_ifdef): The identifier has already been looked up.
7620         (do_ifdef, do_ifndef): parse_ifdef won't return a poisoned
7621         node.
7622         (do_if): Only call detect_if_not_defined at beginning of file.
7623         (_cpp_parse_assertion): Only copy string pointers for
7624         SPELL_STRING tokens.
7625         (pragma_dispatch): Take a node pointer and examine its name
7626         field.
7627         (_cpp_init_stacks): Also initialize the spec_nodes structure.
7628
7629         * cppinit.c (cpp_reader_init): Call _cpp_init_stacks after
7630         _cpp_init_macros.
7631         (cpp_cleanup): Free pfile->spec_nodes.  Call _cpp_cleanup_* in
7632         reverse order from the corresponding _cpp_init_* routines.
7633
7634         * cppexp.c (parse_number, parse_charconst, parse_defined,
7635         lex): Check val.node->type instead of calling cpp_defined.
7636         Use spec_nodes entries where appropriate.
7637
7638         * fix-header.c, scan-decls.c: Update for interface changes.
7639
7640 2000-07-08  Geoffrey Keating  <geoffk@cygnus.com>
7641
7642         * config/rs6000/rs6000.c (rs6000_emit_move): Fix conditions for
7643         emitting aux_truncdfsf2.
7644
7645 2000-07-03  Donn Terry  (donnte@microsoft.com)
7646
7647         * cppinit.c (print_help): split overlong line into ISO C89
7648         maximum chunks.
7649
7650 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
7651
7652         * cppexp.c: Update all code for new lexer interface.
7653         (op_t, operator codes, struct token, tokentab2, op_to_str): Remove.
7654         (struct suffix, vsuf_1, vsuf_2, vsuf_3, op_to_prio): New.
7655         * cpplex.c (token_names): Trim leading CPP_ from names; make
7656         the strings unsigned.
7657         (_cpp_spell_operator): New.
7658         (is_macro_disabled): Disable all macros if rescanning
7659         preprocessed text.
7660         (_cpp_get_directive_token): Remove.
7661
7662         * cppinit.c: Don't set no_macro_expand.
7663         * cpplib.c (read_line_number, do_line): Check only for EOF,
7664         not VSPACE.
7665         * cpphash.h: Update prototypes.
7666         * cpplib.h (CPP_VSPACE): Remove.
7667         (struct cpp_reader): Remove no_macro_expand.
7668
7669 2000-07-08  Neil Booth  <NeilB@earthling.net>
7670
7671         * cpphash.c (is__va_args__): New function.
7672         (count_params): Fix line reported in error messages.  Use
7673         is__va_args__.  Don't return ')' on error.  Flag GNU style
7674         rest args macro definitions.
7675         (parse_define): Check macro name is not __VA_ARGS__.
7676         (save_expansion): Check identifier in non-varargs-macro is
7677         not __VA_ARGS__.  Don't flag GNU_VARARGS.
7678         * cpplex.c (parse_args): Accept no argument iff GNU_REST_ARGS.
7679         (maybe_paste_with_next): Use per-macro GNU_REST_ARGS rather
7680          than per-token GNU_VARARGS.
7681         * cpplib.h (GNU_VARARGS): Remove.
7682         (GNU_REST_ARGS): New.
7683
7684 Sat Jul  8 01:38:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7685
7686         * i386.md (call_pop, call, call_value_pop): Do not set
7687         current_function_uses_pic_offset_table for calls to static
7688         functions or indirect calls.
7689
7690 2000-07-07  Jim Wilson  <wilson@cygnus.com>
7691
7692         * config/ia64/ia64.c (rws_access_reg): New local write_count.  If
7693         is_predicate_reg, then take max write_count of register pair.
7694
7695 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7696
7697         * tradcpp.c (main): Rename label `include' to `add_include' to
7698         avoid conflicts with variable `include' in traditional C.
7699
7700 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
7701
7702         * integrate.c (copy_insn_list): Remove REG_LABEL notes.
7703
7704 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
7705
7706         * sibcall.c (uses_addressof): Add INMEM argument, check for
7707         current_function_internal_arg_pointer outside of MEM rtxs in addition
7708         to ADDRESSOFs.
7709         (sequence_uses_addressof): Update caller.
7710
7711 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
7712
7713         * tradcpp.c (initialize_builtins): Honor NO_BUILTIN_SIZE_TYPE
7714         and friends.
7715
7716 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7717
7718         * system.h (UNION_INIT_ZERO): New macro for initializing union
7719         members in structs.
7720
7721         * cpplex.c (placemarker_token, eof_token): Use UNION_INIT_ZERO.
7722
7723 2000-07-07  Neil Booth  <NeilB@earthling.net>
7724
7725         * cpp.texi: Update.
7726
7727 Fri Jul  7 07:47:35 2000  Jeffrey A Law  (law@cygnus.com)
7728
7729         * final.c (final): Detect out of bounds array access to
7730         the insn_lengths array.
7731
7732 2000-07-07  Kazu Hirata  <kazu@hxi.com>
7733
7734         * fold-const.c (fold): Fix a comment typo.
7735
7736 2000-07-07  Neil Booth  <NeilB@earthling.net>
7737
7738         * cpp.texi: Update to new lexer.
7739
7740 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
7741
7742         * tradcpp.c: New file.
7743         * tradcif.y: New file.
7744         * tradcif.c: New generated file.
7745
7746         * Makefile.in: Add rules to build tradcpp.o, tradcif.o,
7747         $(srcdir)/tradcif.c.  Add tradcpp to STAGESTUFF and
7748         dependencies of C.  Install tradcpp from install-common, in
7749         $(libsubdir).
7750
7751 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
7752
7753         * cppinit.c: Include cppdefault.h.  Refer to
7754         cpp_GCC_INCLUDE_DIR and cpp_GCC_INCLUDE_DIR_len, not directly
7755         to GCC_INCLUDE_DIR and its length.
7756         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
7757         USER_LABEL_PREFIX, REGISTER_PREFIX, struct default_include,
7758         STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT):  Move to
7759         cppdefault.h.
7760         (include_defaults_array): Move to cppdefault.c.
7761
7762         * cppdefault.h: New file.
7763         * cppdefault.c: New file.
7764
7765         * Makefile.in (LIBCPP_OBJS): Add cppdefault.o.
7766         (cppinit.o): Don't apply $(PREPROCESSOR_DEFINES) to this file.
7767         (cppdefault.o): New rule; apply $(PREPROCESSOR_DEFINES) to
7768         this file.
7769
7770 Thu Jul  6 18:30:36 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7771
7772         * reload.c (push_reload): When seeing if can reuse a register,
7773         check extra registers against widest of INMODE and OUTMODE.
7774
7775 2000-07-06  Neil Booth  <NeilB@earthling.net>
7776
7777         * cpplib.c: (_cpp_parse_assertion):  Perform hash lookups
7778         based on full length of predicate.
7779
7780 2000-07-06  Hans-Peter Nilsson  <hp@axis.com>
7781
7782         * timevar.c: [HAVE_SYS_RESOURCE_H]: Include <sys/resource.h>.
7783         [NEED_DECLARATION_GETRUSAGE]: Declare getrusage.
7784
7785 2000-07-05  Kazu Hirata  <kazu@hxi.com>
7786
7787         * h8300-proto.h: Fix formatting.
7788         * h8300.c: Likewise.
7789         * h8300.h: Likewise.
7790
7791 2000-07-05  Jim Wilson  <wilson@cygnus.com>
7792
7793         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): If FR_REGNO_P, disallow
7794         CCmode.
7795
7796 2000-07-05  Rodney Brown  <RodneyBrown@pmsc.com>
7797
7798         * invoke.texi: Fix minor typos
7799         * md.texi: Fix minor typos
7800
7801 2000-07-05  Zack Weinberg  <zack@wolery.cumb.org>
7802
7803         * cpplib.c (_cpp_parse_assertion): Fix buffer overrun.
7804
7805 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
7806
7807         * cpplex.c: Don't include sys/mman.h.
7808         (cpp_push_buffer, cpp_pop_buffer): Moved to cpplib.c.
7809
7810         * cpplib.c: Include sys/mman.h and obstack.h.
7811         (cpp_push_buffer): Moved from cpplex.c; allocate buffers on an
7812         obstack.
7813         (cpp_pop_buffer): Moved from cpplex.c; free buffers from an obstack.
7814         (_cpp_unwind_if_stack): Now static, unwind_if_stack.  Don't
7815         bother freeing if stack entries (they will be freed with their buffer).
7816         (do_endif): Free if stack entries from the buffer obstack.
7817         (push_conditional): Allocate if stack entries from the buffer obstack.
7818
7819         (find_answer): Rename to _cpp_find_answer.
7820         (do_assert, do_unassert): Update.
7821
7822         * cpphash.h: Update prototypes.
7823         (xobnew): New convenience macro.
7824         * cpplib.h (struct cpp_reader): Add hash_ob and buffer_ob fields.
7825         Update comments.
7826         (struct cpp_hashnode): Remove disabled field.
7827
7828         * cppinit.c: Don't include hashtab.h or splay-tree.h.
7829         (report_missing_guard): Moved to cppfiles.c.
7830         (cpp_reader_init): Call cpp_init_stacks, cpp_init_macros,
7831         cpp_init_includes.
7832         (cpp_cleanup): Call cpp_cleanup_stacks, cpp_cleanup_macros,
7833         cpp_cleanup_includes.  Don't destroy hashtab or
7834         all_include_files here.
7835         (cpp_finish): Use _cpp_report_missing_guards.
7836
7837         * cppfiles.c (report_missing_guard): Moved from cppinit.c.
7838         (_cpp_init_include_table): Rename _cpp_init_includes.
7839         (_cpp_cleanup_includes, _cpp_report_missing_guards): New.
7840
7841         * cppexp.c (parse_assertion): Update for new name of
7842         find_answer.
7843
7844         * Makefile.in (cpplib.o, cpphash.o, cppinit.o): Update deps.
7845
7846 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
7847
7848         * cpplib.c (do_ident): s/VSPACE/EOF/
7849
7850 2000-07-05  Neil Booth  <NeilB@earthling.net>
7851
7852         * cpplex.c: Fix trigraph replacement within strings.
7853
7854 2000-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7855
7856         * rs6000/aix.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier.
7857
7858         * xcoffout.c (assign_type_number): Constify.
7859         (xcoffout_source_file): Add static prototype.  Don't needlessly
7860         cast away const-ness.
7861
7862 2000-07-04  Jason Merrill  <jason@redhat.com>
7863
7864         * frame.h (frame_state): Move base_offset to end.
7865
7866 Mon Jul  3 21:31:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
7867
7868         * calls.c (emit_library_call_value_1): Revert previous change.
7869
7870 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
7871
7872         * fix-header.c (struct partial_proto): Remove unnecessary fields.
7873         (recognized_extern, recognized_function, read_scan_file):
7874         Update for new scheme.
7875         (check_protection): It's still a multiple include guard even
7876         if it doesn't always trigger.
7877         * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
7878         new scheme.
7879         * scan.h: Declare struct cpp_token.  Update prototypes.
7880
7881 2000-07-03  Neil Booth  <neilb@earthling.net>
7882             Zack Weinberg  <zack@wolery.cumb.org>
7883
7884         Complete overhaul of the lexer and macro expander.
7885
7886         * cpphash.c (object_defn, funct_defn, push_macro_expansion,
7887         arg, arglist, argdata, reflist, collect_objlike_expansion,
7888         collect_funlike_expansion, collect_params,
7889         warn_trad_stringify, trad_stringify, duplicate_arg_p, add_pat,
7890         unsafe_chars, macarg, compare_defs, special_symbol,
7891         scan_arguments, stringify, funlike_macroexpand,
7892         _cpp_quote_string, monthnames): Delete.
7893         (cpp_lookup, _cpp_free_definition, dump_funlike_macro,
7894         _cpp_create_definition, _cpp_dump_definition,
7895         dump_hash_helper): Adjust.
7896         (find_param, count_params, parse_define, var_args_str,
7897         check_macro_redefinition, save_expansion): New.
7898
7899         * cpplex.c (skip_block_comment, skip_line_comment, parse_name,
7900         parse_string, output_line_command, trigraph_replace,
7901         lex_line, cpp_push_buffer, cpp_pop_buffer, cpp_output_tokens,
7902         cpp_scan_buffer_nooutput, cpp_scan_buffer, cpp_free_toklist,
7903         cpp_idcmp, _cpp_get_directive_token, _cpp_init_input_buffer,
7904         _cpp_skip_rest_of_line): Modify.
7905
7906         (maybe_macroexpand, skip_comment, copy_comment, skip_string,
7907         find_position, null_warning, bump_column, expand_name_space,
7908         pedantic_whitespace, _cpp_output_list, _cpp_slice_toklist,
7909         _cpp_squeeze_toklist, _cpp_scan_until, _cpp_skip_hspace,
7910         _cpp_parse_name, _cpp_lex_token, cpp_get_non_space_token,
7911         _cpp_prescan): Delete.
7912
7913         (dump_param_spelling, process_directive, lex_next,
7914         is_macro_disabled, stringify_arg, expand_context_stack,
7915         output_token, make_string_token, alloc_number_token,
7916         special_symbol, duplicate_token, maybe_paste_with_next,
7917         can_paste, prevent_macro_expansion, restore_macro_expansion,
7918         get_temp_token, release_temp_tokens, quote_string,
7919         token_names, token_spellings, _cpp_expand_name_space,
7920         _cpp_glue_header_name, _cpp_reserve_name_space,
7921         digraph_spellings, trigraph_ok, skip_whitespace, save_comment,
7922         placemarker_token, eof_token, cpp_context, macro_args,
7923         get_raw_token, parse_arg, parse_args, save_token,
7924         push_arg_context, push_macro_context, pop_context,
7925         do_pop_context, free_macro_args, _cpp_get_line,
7926         _cpp_run_directive): New.
7927
7928         * cpplib.c (validate_else, parse_include, push_conditional,
7929         pass_thru_directive, read_line_number, parse_ifdef,
7930         detect_if_not_defined, _cpp_check_directive, do_define,
7931         do_undef, do_include, do_import, do_include_next, do_error,
7932         do_warning, do_ident, do_pragma, pragma_dispatch, gcc_pragmas,
7933         top_pragmas, do_pragma_gcc, do_pragma_implementation,
7934         do_pragma_poison, do_pragma_system_header,
7935         do_pragma_dependency, do_sccs, do_ifdef, do_ifndef, do_else,
7936         dl_elif, do_endif, _cpp_unwind_if_stack, do_assert,
7937         do_unassert, cpp_define, cpp_undef, cpp_assert, cpp_unassert,
7938         cpp_defined): Update for new scheme.
7939         (strtoul_for_line, get_define_node, dump_macro_name,
7940         _cpp_check_linemarker, _cpp_parse_assertion): New.
7941         (_cpp_handle_directive, do_pragma_default): Delete.
7942
7943         * cpphash.h (struct predicate): Now struct answer.
7944         (enum spell_type, struct token_spelling, struct directive,
7945         directive_handler): New.
7946         Update prototypes.  Remove unused macros.
7947         * cpplib.h: Update prototypes.  Remove unused macros,
7948         structure definitions, and fields.
7949
7950         * cpperror.c (print_containing_files, v_message): Adjust.
7951         * cppexp.c (parse_assertion, lex, parse_escape,
7952         _cpp_parse_expr): Adjust.
7953         * cppfiles.c (open_include_file, _cpp_execute_include,
7954         _cpp_compare_file_date, cpp_read_file, read_include_file):
7955         Adjust.
7956         * cppinit.c (dump_special_to_buffer): Delete.
7957         (append_include_chain, merge_include_chains, cpp_reader_init,
7958         cpp_cleanup, initialize_builtins, builtin_array, cpp_start_read,
7959         cpp_finish, handle_option, print_help): Adjust.
7960         * cppmain.c (main): Adjust.
7961
7962 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
7963
7964         * cppspec.c (lang_specific_driver): Use double quotes in error
7965         message.
7966
7967 Mon Jul  3 16:53:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
7968
7969         * calls.c (emit_library_call_value_1): Use valreg instead
7970         of hard_libcall_value.
7971
7972 2000-07-03  Geoff Keating  <geoffk@cygnus.com>
7973
7974         * config/rs6000/rs6000.c (rs6000_emit_move): New function.
7975         * config/rs6000/rs6000-proto.h: Prototype rs6000_emit_move.
7976         * config/rs6000/rs6000.md (movsi): Use rs6000_emit_move.
7977         (movhi): Likewise.
7978         (movqi): Likewise.
7979         (movdf): Likewise.
7980         (movsf): Likewise.
7981         (movdi): Likewise.
7982         (movti): Likewise.
7983
7984         * expmed.c (expand_mult_highpart): Use op1 instead of wide_op1 when
7985         mode instead of wider_mode is being used.
7986
7987 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
7988
7989         * config/i386/i386.md (movstrictqi_xor): Use 'q' constraint instead
7990         of 'r'. Use q_regs_operand.
7991         (andsi_1+2): Use q_regs_operand.
7992
7993 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
7994
7995         * builtins.c (get_memory_rtx): Always put into alias set 0.
7996
7997 2000-07-03  Nick Clifton  <nickc@cygnus.com>
7998
7999         * config/arm/arm.md: Fix post increment and pre increment
8000         peepholes so that they do not generate UNPREDICATBLE opcodes.
8001         (ie ones where the increment clobbers the source/destination).
8002
8003 2000-07-01  Marek Michalkiewicz  <marekm@linux.org.pl>
8004
8005         * config/avr/avr.c (out_adj_frame_ptr): Make "frame pointer
8006         change too big for -mtiny-stack" a warning, if larger than 63.
8007         (out_set_stack_ptr): Change the logic so -mno-interrupts is
8008         always safe to use on possible future devices.
8009         (function_prologue): Write SPH before SPL, for consistency.
8010         If interrupt_func_p true, we know we have enabled interrupts.
8011         (avr_num_arg_regs): New function.  Round up to even number of
8012         bytes if no -mpack-args or if calling a libgcc function.
8013         (function_arg, function_arg_advance): Use it.
8014         (output_movsisf, ashlsi3_out, ashrsi3_out, lshrsi3_out):
8015         Output "movw" if available.
8016         (out_tsthi, out_tstsi, ashlqi3_out, lshrqi3_out): Change uses
8017         of TEST_HARD_REG_CLASS macro to test_hard_reg_class function.
8018         (asm_output_section_name): Add blanks for consistent output.
8019         (encode_section_info): Set TREE_READONLY for progmem data to
8020         avoid gas warnings about changed section attributes.
8021         (avr_hard_regno_mode_ok): Force non-QImode data to start in
8022         even numbered registers on devices with "movw".
8023         * config/avr/avr.h (MASK_*): Define bits for target_flags.
8024         (TARGET_SWITCHES): Mark help strings for translation.
8025         Add new -mpack-args and -menhanced switches.
8026         (TARGET_OPTIONS): Mark help strings for translation.
8027         (progmem_section): Add section attributes.
8028         * config/avr/avr.md (*movhi, call_insn, call_value_insn):
8029         Output "movw" if available.
8030         (mulqi3, mulqihi3, umulqihi3, mulhi3, *tablejump_enh):
8031         New patterns.
8032         * config/avr/libgcc.S (_mulqi3, _divqi3): Update to the new
8033         call convention (arguments aligned on even registers).
8034         (_cleanup, _exit): Make weak symbols libc can override.
8035
8036 2000-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8037
8038         * fp-bit.h: New file.
8039
8040         * fp-bit.c: Move common code, prototypes, etc into fp-bit.h.
8041         Comment #endif statements.
8042         (__thenan_sf, __thenan_df): Add missing braces around initializer.
8043
8044 Mon Jul  3 00:32:47 2000  Jeffrey A Law  (law@cygnus.com)
8045
8046         * gcse.c (compute_pre_data): Compute ae_kill using other local
8047         properties instead of calling compute_ae_kill.
8048
8049         * alias.c (init_alias_analysis): Do not call
8050         prologue_epilogue_contains until after reload has completed.
8051
8052 2000-07-02  Benjamin Chelf  <chelf@codesourcery.com>
8053
8054         * c-common.h (genrtl_begin_compound_stmt): Remove declaration.
8055         (genrtl_finish_compound_stmt): Likewise.
8056         (genrtl_compound_stmt): Change to return void.
8057
8058         * c-semantics.c (genrtl_begin_compound_stmt): Remove function and
8059         move code from here to ...
8060         (genrtl_compound_stmt): ... here.
8061         (genrtl_finish_compound_stmt): Remove.
8062         (expand_stmt): Add comment.
8063
8064 2000-07-02  Zack Weinberg  <zack@wolery.cumb.org>
8065
8066         * c-typeck.c (build_indirect_ref): Use COMPLETE_OR_VOID_TYPE_P
8067         and VOID_TYPE_P.
8068
8069 2000-07-02  Jakub Jelinek  <jakub@redhat.com>
8070
8071         * cpplib.h (struct cpp_reader): New field include_depth.
8072         (struct cpp_printer): Rename last_bsd to last_id.
8073         * cppfiles.c (read_include_file): Bump include_depth.
8074         * cpplex.c (cpp_pop_buffer): Decrement include_depth.
8075         (output_line_command): Output correct #line if a header
8076         is including itself and is not protected against multiple inclusion.
8077         Use include_depth instead of buffer_stack_depth, last_id instead of
8078         last_bsd.
8079         * cppinit.c (cpp_start_read): Initialize last_id instead of
8080         last_bsd.
8081
8082 2000-07-01  Benjamin Chelf  <chelf@codesourcery.com>
8083
8084         * Makefile.in (C_AND_OBJC_OBJS): Added c-semantics.o.
8085         (c-semantics.o): New target.
8086
8087         * c-common.h (TREE_LANG_FLAG_?): Added documentation.
8088         (genrtl_do_pushlevel): Moved from cp/cp-tree.h.
8089         (genrtl_clear_out_block): Likewise.
8090         (genrtl_goto_stmt): Likewise.
8091         (genrtl_expr_stmt): Likewise.
8092         (genrtl_decl_stmt): Likewise.
8093         (genrtl_if_stmt): Likewise.
8094         (genrtl_while_stmt): Likewise.
8095         (genrtl_do_stmt): Likewise.
8096         (genrtl_return_stmt): Likewise.
8097         (genrtl_for_stmt): Likewise.
8098         (genrtl_break_stmt): Likewise.
8099         (genrtl_continue_stmt): Likewise.
8100         (genrtl_scope_stmt): Likewise.
8101         (genrtl_switch_stmt): Likewise.
8102         (genrtl_case_label): Likewise.
8103         (genrtl_begin_compound_stmt): Likewise.
8104         (gerntl_finish_compound_stmt): Likewise.
8105         (genrtl_compound_stmt): Likewise.
8106         (genrtl_asm_stmt): Likewise.
8107         (genrtl_decl_cleanup): Likewise.
8108         (DECL_ANON_UNION_ELEMS): Likewise.
8109         (emit_local_var): Likewise.
8110         (make_rtl_for_local_static): Likewise.
8111         (expand_cond): Likewise.
8112         (expand_stmt): Likewise.
8113         (c_expand_return): Likewise.
8114         (c_expand_start_case): Likewise.
8115         (do_case): Likewise.
8116         (COMPOUND_STMT_NO_SCOPE): Likewise.
8117         (c_expand_asm_operands): Likewise.
8118         (NEW_FOR_SCOPE_P): New macro.
8119         (expand_expr_stmt_fn): New type.
8120
8121         (set_current_function_name_declared): Likewise.
8122         (current_function_name_declared): Likewise.
8123         (lang_expand_stmt): Likewise.
8124         (stmts_are_full_exprs_p): Likewise.
8125         (anon_aggr_type_p): Likewise.
8126         (lang_expand_expr_stmt): Likewise.
8127         (build_case_label): Likewise.
8128
8129         * c-decl.c (lang_expand_expr_stmt): Initialize.
8130         (stmts_are_full_exprs_p): Define.
8131         (current_function_name_declared): Likewise.
8132         (do_case): Likewise.
8133         (lang_expand_stmt): Likewise.
8134         (set_current_function_name_declared): Likewise.
8135         (anon_aggr_type_p): Likewise.
8136
8137         * c-semantics.c: New file.
8138         (expand_cond): Moved from cp/semantics.c.
8139         (genrtl_do_pushlevel): Likewise.
8140         (genrtl_clear_out_block): Likewise.
8141         (genrtl_goto_stmt): Likewise.
8142         (genrtl_expr_stmt): Likewise.
8143         (genrtl_decl_stmt): Likewise.
8144         (genrtl_if_stmt): Likewise.
8145         (genrtl_while_stmt): Likewise.
8146         (genrtl_do_stmt): Likewise.
8147         (genrtl_return_stmt): Likewise.
8148         (genrtl_for_stmt): Likewise.
8149         (genrtl_break_stmt): Likewise.
8150         (genrtl_continue_stmt): Likewise.
8151         (genrtl_scope_stmt): Likewise.
8152         (genrtl_switch_stmt): Likewise.
8153         (genrtl_case_label): Likewise.
8154         (genrtl_begin_compound_stmt): Likewise.
8155         (genrtl_finish_compound_stmt): Likewise.
8156         (genrtl_compound_stmt): Likewise.
8157         (genrtl_asm_stmt): Likewise.
8158         (genrtl_decl_cleanup): Likewise.
8159         (make_rtl_for_local_static): Moved from cp/decl.c.
8160         (emit_local_var): Likewise.
8161         (expand_stmt): Define.
8162
8163         * c-tree.h: (c_expand_asm_operands): Moved to c-common.h.
8164         (c_expand_return): Likewise.
8165         (c_expand_start_case): Likewise.
8166
8167 2000-07-01  Richard Henderson  <rth@cygnus.com>
8168
8169         * config/ia64/ia64.c (symbolic_operand): Reject CONST expressions
8170         with the low 13 bits set.
8171         (move_operand): Check for CONST|SYMBOL_REF|LABEL_REF directly.
8172         * config/ia64/ia64.md (movdi): Likewise.  Expand a CONST with one
8173         of the low 13 bits into a CONST plus an adddi3.
8174         (load_symptr): Set RTX_UNCHANGING_P.
8175
8176 See ChangeLog.3 for earlier changes.