OSDN Git Service

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