OSDN Git Service

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