OSDN Git Service

* c-common.c (check_format_info): Do not make a pedantic objection
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2000-07-17  Joseph S. Myers  <jsm28@cam.ac.uk>
2
3         * c-common.c (check_format_info): Do not make a pedantic objection
4         to the 'L' length modifier if used with a floating point type
5         character.
6
7         * c-lex.c (yylex): Don't pedwarn for hexadecimal floating point
8         constants in C99 mode.
9
10 2000-07-17  Kazu Hirata  <kazu@hxi.com>
11
12         * fold-const.c: Fix comment typos.
13
14 2000-07-16  Laurynas Biveinis  <lauras@softhome.net>
15
16         * cppfiles.c (read_name_map): Set map_list_ptr->map_list_map to NULL.
17
18 2000-07-16  Mark Mitchell  <mark@codesourcery.com>
19
20         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Fix typo.
21
22 2000-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23
24         * fixinc/fixfixes.c (emit_gnu_type): Avoid string concatenation.
25
26 2000-07-16  Neil Booth  <NeilB@earthling.net>
27
28         * cpplex.c: Update comments.
29         * README.Portability: Small update.
30
31 2000-07-16  Neil Booth  <NeilB@earthling.net>
32
33         * README.Portability:  Small update.
34
35 2000-07-15  Richard Henderson  <rth@cygnus.com>
36
37         * config/ia64/ia64-protos.h (ia64_move_ok): Prototype.
38         * config/ia64/ia64.c (ia64_move_ok): New function.
39         * config/ia64/ia64.md (movqi, movqi_internal): Use it.
40         (movhi, movsi, movdi, movsf, movdf, movxf): Likewise.
41
42 2000-07-15  Zack Weinberg  <zack@wolery.cumb.org>
43
44         * cpphash.c (save_expansion): Clear PREV_WHITE on tokens
45         immediately following a paste operator.
46         * cppinit.c (sort_options): New function (only for HOST_EBCDIC).
47         (cpp_reader_init): Call it, if HOST_EBCDIC.
48         (cpp_handle_options): Do not sort option list here.
49         (handle_option): Rename to cpp_handle_option and export.
50         * cpplex.c (cpp_scan_buffer_nooutput, cpp_scan_buffer): Use
51         _cpp_get_token directly.
52         (cpp_scan_line): Return 0 at EOF, 1 otherwise.
53         * cpplib.c (cpp_push_buffer): Don't set new->lineno to 1.
54         * cpplib.h: Prototype cpp_handle_option.  Update prototype of
55         cpp_scan_line.
56
57 2000-07-15  Richard Henderson  <rth@cygnus.com>
58
59         * fold-const.c (extract_muldiv): Don't optimize past an unsigned
60         cast around an expression.  Tidy other unsigned tests.
61
62 2000-07-15  Gabriel Dos Reis  <gdr@codesourcery.com>
63
64         * diagnostic.c (doing_line_wrapping, line_wrapper_printf, notice,
65         v_error_with_decl, v_warning_with_decl, v_pedwarn_with_decl): Remove. 
66         (v_message_with_decl): Rename to ...
67         (format_with_decl): ... this. Tweak
68         (diagnostic_for_decl): New function.
69         (fatal_io_error): Use verbatim in lieu of notice.
70         (announce_function): Use verbatim.
71         (default_print_error_function): Likewise.
72         (error_with_decl, warning_with_decl, pedwarn_with_decl): Use new
73         infratructure. 
74
75 2000-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
76
77         * mips.c (function_arg_pass_by_reference): Don't do automatic
78         aggregate initialization.
79         (machine_dependent_reorg): Initialize variable `mode'.
80         
81         * mips.md (absdi2): Change variable `regno1' to unsigned int.
82         (reload_indi): Rename loword/hiword to lo_word/hi_word to avoid
83         conflicts with sys/param.h macro of the same name.
84         (reload_outdi): Likewise.
85
86 2000-07-15  Michael Meissner  <meissner@redhat.com>
87
88         * fold-const.c (fold): When optimizing FOO++ == CONST into ++FOO
89         == CONST + INCREMENT, don't overwrite the tree node for FOO++,
90         create a new node instead.
91
92 2000-07-15  Neil Booth  <NeilB@earthling.net>
93
94         * README.Portability: Correct example about calling a function
95         through a pointer to function.  Format wide paragraphs.
96
97 2000-07-15  Michael Meissner  <meissner@redhat.com>
98
99         * README.Portability: Update integer suffixes and function
100         prototype sections.
101
102 2000-07-15  Neil Booth  <NeilB@earthling.net>
103
104         * README.Portability: Small update.
105
106 2000-07-15  Neil Booth  <NeilB@earthling.net>
107
108         * README.Portability: New file.
109
110 Fri Jul 14 18:13:53 2000  Mark P Mitchell  <mark@codesourcery.com>
111
112         * INSTALL: Give special instructions for building GCC on Irix 6.
113         * config/mips/x-iris6 (CC): Don't set it.
114         (OLDCC): Likewise.
115
116 2000-07-14  Jason Merrill  <jason@redhat.com>
117
118         * dwarf2out.c (dwarf2out_frame_debug_expr): If we store the CFA 
119         register in the stack and later in another register, use the new
120         register.
121
122 Fri Jul 14 10:25:53 2000  Clinton Popetz  <cpopetz@cygnus.com>
123
124         * config/mips/mips.md: (absdi2): Handle sign_extend for
125         second operand.
126
127 2000-07-14  Nathan Sidwell  <nathan@codesourcery.com>
128
129         * cpplib.c (do_pragma_dependency): Tidy warning messages.
130
131 2000-07-14  Zack Weinberg  <zack@wolery.cumb.org>
132
133         * .cvsignore: Correct typo.
134
135 2000-07-13  Mark Mitchell  <mark@codesourcery.com>
136
137         * .cvsignore: Add generated YACC files.
138         * objc/.cvsignore: New file.
139         
140 2000-07-14  Neil Booth  <NeilB@earthling.net>
141
142         * cpplex.c (adjust_column): New funcion.
143         (skip_whitespace): Use it.
144         (skip_block_comment): Use it, and warn about /*/* with
145         -Wcomments.
146
147 2000-07-14  Neil Booth  <NeilB@earthling.net>
148
149         * cpphash.c (struct macro_info): Add new members.
150         (_cpp_free_definition): Delete the macro directly.
151         (count_params): Return void, with first token of
152         expansion in struct macro_info on success.
153         (parse_define): Return int.  Hoist syntax checking from
154         save_macro_expansion.  Leave call to save_expansion to
155         _cpp_create_definition.
156         (alloc_macro): Needs just 2 arguments.
157         (free_macro): Delete.
158         (save_expansion): Don't perform syntax check.
159         (_cpp_create_definition): Call save_expansion.
160
161 2000-07-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
162
163         * genrecog.c (write_header): Split long string.
164
165         * cpphash.c (macro_info): Don't use the `signed' keyword.
166
167         * system.h (alloca): Prototype if __GNUC__ && __SIZE_TYPE__.
168
169 2000-07-13  Jakub Jelinek  <jakub@redhat.com>
170
171         * calls.c (stored_args_map): New variable.
172         (check_sibcall_argument_overlap_1): New.
173         (check_sibcall_argument_overlap): New.
174         (expand_call): Initialize stored_args_map.
175         Call check_sibcall_argument_overlap.
176
177 2000-07-13  Bruce Korb  <bkorb@gnu.org>
178
179         * fixinc/fixfixes.c: move EXIT_BROKEN to header, add sub-expr max count
180         (emit_gnu_type): utility procedure for gnu_type_fix
181         (gnu_type_fix): implement various pre-processor guards around
182         standard types so these types can be defined over and over
183         * fixinc/fixincl.tpl: add a "gnu_type_map" that forces the standard
184         types alluded to above will have GNU-compliant base types
185         * fixinc/fixlib.h: add EXIT_BROKEN define and the gnu_type_map struct
186         * fixinc/inclhack.def: add test_text entries and utilize the new
187         "gnu_types" fix for the ptrdiff_t, size_t and wchar_t types.
188         * fixinc/fixincl.x: regenerate
189
190 2000-07-12  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
191
192         * diagnostic.c (vline_wrapper_message_with_location,
193         v_message_with_file_and_line, v_error_with_file_and_file,
194         v_error_for_asm, v_warning_for_asm, vfatal,
195         v_warning_with_file_and_line, v_pedwarn_with_file_and_line,
196         vsorry, verror, vwarning, vpedwarn): Remove.
197         (diagnostic_for_asm): New function.
198         (pedwarn, error, warning, pedwarn_with_file_and_line,
199         error_with_file_and_line, warning_with_file_and_line, sorry,
200         error_for_asm, warning_for_asm, fatal): Reimplement.
201         (finish_diagnostic): Clear diagnostic info as well.
202         
203 2000-07-13  Neil Booth  <NeilB@earthling.net>
204
205         * c-common.h (flag_digraphs): New.
206         * c-decl.c (c_decode_option): Set flag_digraphs as appropriate.
207         * c-lex.c (yylex): Use flag_digraphs to decide whether to
208         honour digraphs.
209         
210 2000-07-13  Zack Weinberg  <zack@wolery.cumb.org>
211
212         * gcc.c (do_spec_1): Add new %B operator.
213         (set_input): Prepare for %B.
214
215         (link_command_spec): Move up with the other tm.h-
216         overrideable specs.  Factor out the portion conditional on
217         LINK_LIBGCC_SPECIAL into a new spec, %(link_libgcc).
218         (struct compiler): Just have a single spec string.  All users
219         updated.
220         (default_compilers): Remove unnecessary braces.
221         (static_specs): Update.
222
223         (trad_capable_cpp, cpp_options, cc1_options, asm_options): New
224         named specs.
225         (C and assembly specs): Use the new named specs, as appropriate.
226
227         * objc/lang-specs.h: Use the new named specs.  
228         Remove unnecessary braces.
229
230 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
231
232         * gcc.c (execute): If a subprocess gets a fatal signal, report
233         strsignal() of the signal number, and ask for a bug report.
234         Do not do this for SIGPIPE if there's already been an error.
235
236         * tradcpp.c: Don't include signal.h.  Don't catch SIGPIPE.
237         Delete pipe_closed.
238
239         * tradcif.c: Remove.
240
241 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
242
243         * final.c (profile_function): Do not emit profile counters in
244         the data section, if NO_PROFILE_COUNTERS is defined.
245         * tm.texi: Document NO_PROFILE_COUNTERS.  Update doc for
246         FUNCTION_PROFILER.
247
248         * config/i386/linux.h (NO_PROFILE_COUNTERS): Define.
249         (FUNCTION_PROFILER): Just emit a call to mcount.
250
251 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
252
253         * tradcpp.c (main): Rename 'perror' label to 'sys_error'.
254
255         * cppexp.c, cpphash.c, cpphash.h, cppinit.c, cpplex.c,
256         cpplib.c, cpplib.h: Eradicate all traces of code dependent on
257         traditional, lang_chill, or lang_fortran.
258
259         * cppfiles.c: #undef strcmp to suppress warning about macros
260         used without arguments.
261         (_cpp_execute_include): Use f, not fname, in "No include path"
262         error.
263         (_cpp_pop_file_buffer): New function.
264         * cpplib.c: Don't include <sys/mman.h>.
265         (cpp_push_buffer): Set line_base and lineno in new buffer.
266         (cpp_pop_buffer): Use _cpp_pop_file_buffer.
267
268         * cpplex.c: Move all prototypes and structure declarations to the
269         top of the file.  Properly parenthesise some macro arguments.
270         (cpp_scan_line): New function.
271         (special_symbol [case T_INCLUDE_DEPTH]): Use pfile->include_depth,
272         don't need to walk up the stack counting.
273
274 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
275
276         * c-common.c (combine_strings): Emit a pedantic warning when a
277         string length is greater than the minimum ANSI C is required
278         to support.
279
280 Wed Jul 12 13:24:30 2000  Jeffrey A Law  (law@cygnus.com)
281
282         * pa/xm-pa64.h (NO_SYS_SIGLIST): Kill.
283         * d30v/xm-d30v.h (NO_SYS_SIGLIST): Kill.
284
285 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
286
287         * c-decl.c (define_label): Warn about identifier conflicts with
288         labels in traditional C.
289
290         * c-parse.in (unop +): Warn about the unary plus operator for
291         traditional C.
292
293         * c-typeck.c (store_init_value): Warn about automatic aggregate
294         initialization for traditional C.
295
296         * invoke.texi (-Wtraditional): Document new warnings.
297
298 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
299
300         * Makefile.in (c-errors.o): Fix thinko in dependency.
301
302 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
303
304         * gcc.c (C specs [!USE_CPPLIB]): Invoke tradcpp if any of
305         -traditional, -ftraditional, or -traditional-cpp was given.
306         Do not pass -traditional to the preprocessor.
307         (.S spec): Likewise.  Don't bother defining __ASSEMBLER__, the
308         preprocessor does it automatically.
309         * objc/lang-specs.h: Likewise.  Don't bother defining __OBJC__.
310
311         * ch/lang-specs.h: Always use tradcpp.  Do not pass
312         -traditional, -trigraphs, or -pedantic to the preprocessor.
313         * f/lang-specs.h (.F spec): Likewise.  Don't bother defining
314         _LANGUAGE_FORTRAN.
315
316 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
317
318         * cppexp.c (LOGICAL): Delete macro.
319         (_cpp_parse_expr): Do not use UNARY for unary +.  Implement ||
320         and && directly.
321
322         * cpphash.c (HASHSIZE): Increase to 4096.
323         (struct hashdummy): Add hash field.
324         (eq_HASHNODE): Compare unreduced hashes, then lengths, then
325         the string values using memcmp.
326         (cpp_lookup): Set dummy.hash.
327
328 Wed Jul 12 13:15:16 2000  Marc Espie <espie@openbsd.org>
329
330         * configure.in (m88k-openbsd): Express configuration using new fragment
331         style.
332         * configure: Rebuilt.
333         * m88k/aout-dbx.h: New.
334         * m88k/openbsd.h: New.
335         * m88k/xm-openbsd.h: New.
336
337 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
338
339         * expr.c (expand_expr): Return const0_rtx, not error_mark_node.
340
341 2000-07-12  Richard Henderson  <rth@cygnus.com>
342
343         * reload.c (push_secondary_reload): Make sure to add the new
344         reload at the end, after acquiring secondary memory.
345
346 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
347
348         * cpplex.c (is_macro_disabled): Use CPP_WTRADITIONAL.
349
350         * c-decl.c (set_current_function_name_declared, anon_aggr_type_p,
351         lang_expand_stmt): Mark parameters with ATTRIBUTE_UNUSED.
352
353         * c-parse.in (stmt): Delete unused variables.
354
355         * convert.c (convert_to_vector): Likewise.
356
357         * gensupport.c (process_rtx): Declare attr as `rtvec' not `rtx'.
358
359         * tree.c (finish_vector_type): Prototype.
360
361 2000-07-12  Bruce Korb  <bkorb@gnu.org>
362
363         * fixinc/fixfixes.c: use xmalloc
364         * fixinc/fixincl.c(initialize): set program name for xmalloc
365         * fixinc/fixlib.c(must_malloc): obsolete
366         (is_cxx_header): no longer used - disabled
367         (skip_quote): inserted and disabled for future use
368         * fixinc/fixlib.h: reflects above
369         * fixinc/fixtests.c: removed dinkleberries
370
371 2000-07-12  Neil Booth  <NeilB@earthling.net>
372
373         * cpphash.h: (TOKEN_SPELL) Pulled from cpplex.c.
374         * cpplex.c (TOKEN_SPELL) Move to cpphash.h.
375
376         * cpphash.c: (struct macro_info, alloc_macro, free_macro,
377         struct toklist_dummy): New.
378         (cpp_free_definition): Free macros with free_macro.
379         (count_params): Don't save paramter spellings.  Save macro
380         information in a struct macro_info.
381         (parse_define): Don't allocate a token list.
382         (save_expansion): Allocate the macro's token list, and
383         save parameter spellings if necessary.  Use TOKEN_SPELL.
384         (cpp_create_definition): Make list const.
385
386 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
387
388         * c-typeck.c (pedwarn_c99): Move to
389         * c-errors.c: ... Here.
390         * toplev.h (verror, vwarning, vpedwarn): Remove prototypes.
391         * diagnostic.c (verror, vwarning, vpedwarn): Make static.
392         * Makefile.in (C_AND_OBJC_OBJS): Include c-errors.o
393         (c-errors.o): List dependency.
394
395 2000-07-12  Mark Mitchell  <mark@codesourcery.com>
396
397         * c-parse.c: Remove.
398         * c-parse.h: Likewise.
399         * c-parse.y: Likewise.
400         * objc/objc-parse.c: Likewise.
401         * objc/objc-pasre.y: Likewise.
402
403 2000-07-11  Rodney Brown  <RodneyBrown@pmsc.com>
404
405         * gcc.texi: Fix minor typos
406         * extend.texi: Fix minor typos
407
408 2000-07-11  Marc Espie <espie@openbsd.org>
409
410         * collect2.c (main): Recognize .lo as object files.
411
412 2000-07-11  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
413
414         * pa.c (hppa_encode_label): Store labels in gc memory when ggc_p is
415         true.
416
417         * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Extend test to detect systems
418         with MAP_ANONYMOUS and MAP_ANON.
419         * configure, config.in: Rebuilt.
420
421 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
422
423         * diagnostic.c (save_output_state): Remove.
424         (restore_output_state): Likewise.
425         (clear_text_info): New function.
426         (clear_diagnostic_info): Likewise.
427         (output_text_length, is_starting_newline, output_prefix,
428         line_wrap_cutoff, ideal_line_wrap_cutoff, prefix_was_emitted_for,
429         prefixing_policy, output_buffer_ptr_to_format_args): New macros
430         (set_real_maximum_length, output_set_maximum_length,
431         output_set_prefix, output_get_prefix, output_set_maximum_length,
432         output_destroy_prefix, init_output_buffer,
433         reshape_diagnostic_buffer, output_space_left, output_emit_prefix,
434         output_add_newline, output_add_character, output_add_space,
435         output_append_r, output_append, wrap_text, output_format,
436         output_do_printf, output_printf, output_do_verbatim,
437         output_verbatim, verbatim): Use them.
438         (output_clear): Split into cleat_text_info and
439         clear_diagnostic_info.
440         (struct output_state): Move to...
441
442         * diagnostic.h: ...Here
443         (struct output_buffer): Adjust.
444
445 2000-07-11  Zack Weinberg  <zack@wolery.cumb.org>
446
447         * cpplex.c (parse_name): No longer inline (premature optimization).
448         (do_pop_context): Fold into pop_context.
449         (pop_context): Returns int.
450         (lex_next): Hoist test for end of directive into pop_context.
451         (push_macro_context): Returns int; takes just reader and token.
452         Hoist test for excessive nesting to caller.
453         (push_arg_context): Returns void; takes just reader and token.
454         Do not call stringify_arg or get_raw_token.
455         (get_raw_token): Convert tail recursion through push_arg_context
456         to a loop at this level.  Call stringify_arg here if appropriate.
457         (maybe_paste_with_next): Convert tail recursion to a while loop.
458         Hoist test of paste_level to caller.
459
460         (stringify_arg): Push arg context at beginning.
461         (cpp_get_token): Split out core into _cpp_get_token.  Call
462         process_directive here.  Throw away CPP_PLACEMARKER tokens.
463         (_cpp_get_token): Convert tail recursion through
464         push_macro_context to a loop at this level.
465         (_cpp_glue_header_name, is_macro_disabled, stringify_arg,
466         _cpp_get_raw_token): Use _cpp_get_token.
467         (_cpp_skip_rest_of_line): Drop the context stack directly; do
468         not call pop_context.
469         (_cpp_run_directive): Call lex_next directly.
470
471         * cpphash.h: Prototype _cpp_get_token.
472         * cppexp.c (lex): Use it.
473         * cpphash.c (parse_define): Use it.
474         * cpplib.c (get_define_node, do_undef, parse_include,
475         read_line_number, do_line, do_ident, do_pragma, do_pragma_gcc,
476         do_pragma_implementation, do_pragma_poison, do_pragma_dependency,
477         parse_ifdef, validate_else): Use it.
478         (cpp_push_buffer): Tweak error message; abort if anyone tries
479         to push a buffer while macro expansions are stacked.
480
481 2000-07-11  Donn Terry  <donnte@microsoft.com>
482
483         * cpplex.c (free_macro_args, save_token): Cast arg of free
484         and/or xrealloc to PTR.
485         (_cpp_init_input_buffer): Clear all fields of the base context.
486
487 Tue Jul 11 15:28:21 CDT 2000  Clinton Popetz  <cpopetz@cygnus.com>
488
489         * gensupport.c (process_rtx): Make rtl checking stop
490         complaining about the define_insn while it is being
491         converted from a define_insn_and_split.
492
493 Tue Jul 11 16:26:17 2000  Clinton Popetz  <cpopetz@cygnus.com>
494
495         * config/mips/mips.c (simple_memory_operand): Access the
496         INTVAL of the address, not it's containing MEM.
497
498 2000-07-11  Bruce Korb  <bkorb@gnu.org>
499
500         * fixinc/fixtests.c(double_slash): obsolete
501         (else_endif_label): likewise
502         * fixinc/inclhack.def(irix_multiline_cmnt): obsolete
503         (libc1_ifdefd_memx): correct initial comment
504         and omit the #if/#endif pair from the memxxx declarations
505         * fixinc/fixincl.x: regen
506
507 2000-07-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
508
509         * cpplex.c (T, I, S, C, N): Avoid non-constant initializers.
510
511 2000-07-11  Neil Booth  <NeilB@earthling.net>
512
513         * cpp.texi: Update.
514
515 2000-07-11  Neil Booth  <NeilB@earthling.net>
516
517         * cppinit.c: (cpp_reader_init): Allow digraphs by default.
518         (handle_option): Set digraphs according to standard.
519         Merge OPT_lang_c89 handler with OPT_std_c89.
520
521         * cpplex.c: (lex_line, can_paste): Honour digraphs in
522         accordance with the digraphs flag.
523
524         * cpplib.h: (struct cpp_options): New option digraphs.
525
526 2000-07-10  Hans-Peter Nilsson  <hp@axis.com>
527             Bruce Korb  <bkorb@gnu.org>
528
529         * fixinc/inclhack.def (libc1_ifdefd_memx): New fix.
530         * fixinc/fixincl.x: Regenerate.
531         * fixinc/tests/base/testing.h: Add testcase.
532
533 2000-07-10  Richard Henderson  <rth@cygnus.com>
534
535         * config/ia64/ia64.c (got_symbolic_operand): New.
536         (symbolic_operand, move_operand): Revert 0701 change.
537         * config/ia64/ia64.h (PREDICATE_CODES): Update.
538         * config/ia64/ia64-protos.h (got_symbolic_operand): Declare.
539         * config/ia64/ia64.md (movdi): Revert 0701 wrt symbolic_operand;
540         split the offset into a 14-bit low part instead of a 13-bit low part.
541         (load_fptr): Mark the mem as unchanging.
542         (load_symptr): Use got_symbolic_operand.
543
544 2000-07-10  Nick Clifton  <nickc@cygnus.com>
545
546         * libgcc2.c (next_stack_level): Cast result of computation to
547         (void **) so that the assignment does not generate a warning.
548
549 2000-07-10  Chandrakala Chavva  <cchavva@redhat.com>
550
551         * flags.h : Add new variable flag_single_precision_constant.
552         * toplev.c (display_help) : Add -fsingle-precision-constant option.
553         (flag_single_precision_constant): New.
554         * c-lex.c (yylex): Convert floating point constant to single
555         precision constant.
556         * invoke.texi : Add documentation for this new option.
557
558 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
559
560         * diagnostic.c (output_octal): Second parameter is unsigned.
561         (output_long_octal): Likewise.
562         (output_hexadecimal): Likewise.
563         (output_long_hexadecimal): Likewise.
564         (output_format): Adjust arguments extraction. Tweak.
565         (output_verbatim, verbatim): End variable argument list.
566         (report_diagnostic): Improve documentation.
567
568 2000-07-10  Benjamin Chelf  <chelf@codesourcery.com>
569
570         * c-common.h (build_stmt): Declare.
571         (build_continue_stmt): Likewise.
572         (build_break_stmt): Likewise.
573         (build_return_stmt): Likewise.
574
575         * c-decl.c (do_case): Rewrite to do what previously done in
576         c-parse.in.
577
578         * c-semantics.c (build_stmt): Define.
579         (build_return_stmt): Likewise.
580         (build_break_stmt): Likewise.
581         (build_continue_stmt): Likewise.
582         (build_case_label): Likewise.
583
584         * c-parse.in (BREAK): Change to build tree, then generate RTL.
585         (CONTINUE): Likewise.
586         (RETURN): Likewise.
587         (CASE): Likewise.
588         (DEFAULT): Likewise.
589
590         * c-parse.y: Regenerate.
591         * c-pasre.c: Likewise.
592
593 2000-07-09  Jason Merrill  <jason@redhat.com>
594
595         * expr.c (expand_expr): Bail earlier if we get an error_mark_node.
596
597         * tree.h (STRIP_NOPS): Check for error_mark_node.
598         (STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Likewise.
599         (dwarf2out_*): Remove duplicate declarations.
600
601         * c-decl.c (duplicate_decls): Copy DECL_ABSTRACT_ORIGIN from
602         DECL_ABSTRACT_ORIGIN, not DECL_ORIGIN.
603
604 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
605
606         * diagnostic.c (wrap_text): New function.
607         (maybe_wrap_text): Likewise.
608         (output_add_string): Use it.
609         (output_format): Likewise.
610         (count_error): Use verbatim instead of notice.
611         (report_error_function): Likewise. Don't use plain fprintf.
612         (finish_diagnostic): New function.
613         (output_do_verbatim): Tweak.  Commonalize functionalities in
614         output_verbatim and verbatim.
615         (output_verbatim): Adjust.
616         (verbatim): Likewise.
617         (report_diagnostic): Define.
618
619         * diagnostic.h (report_diagnostic): Prototype.
620
621 2000-07-09  Zack Weinberg  <zack@wolery.cumb.org>
622
623         * cppexp.c (_cpp_parse_expr): Don't use unary plus.
624
625 2000-07-09  Neil Booth  <NeilB@earthling.net>
626
627         * cpphash.h: ISvspace, is_vspace, is_nvspace: New.
628         IShspace, ISspace: Update.
629
630         * cppinit.c: ISTABLE: Update.
631         V: New.
632
633         * cpplex.c (IS_HSPACE, S_NEWLINE): Remove.
634         (IS_DIRECTIVE): Rename KNOWN_DIRECTIVE.
635         (skip_block_comment, skip_line_comment, parse_string,
636         lex_line): Use is_vspace rather than IS_NEWLINE.
637         (skip_whitespace, lex_line): Clean up to use is_nvspace.
638         (lex_line): Use KNOWN_DIRECTIVE.  Any kind of directive
639         gets a BOL flag.
640         (lex_next): Unconditionally stop if within a directive.
641         Treat directives within macro invocations as directives
642         (after parse_args emits error), not as the argument.
643
644 2000-07-09  Gabriel Dos Reis  <gdr@codesourcery.com>
645
646         * diagnostic.c (diagnostic_args): New macro.
647         (diagnostic_msg): Likewise.
648         (output_formatted_integer): Likewise.
649         (output_state): New data type.
650         (digit_buffer): Make global.
651         (output_add_integer): Rename to output_decimal. Squeeze
652         digit_buffer.
653         (output_long_decimal, output_unsigned_decimal,
654         output_long_unsigned_decimal, output_octal, output_long_octal,
655         output_hexadecimal, output_long_hexadecimal): New functions.
656         (output_append_r): New function.
657         (output_append): Tweak.
658         (output_flush_on): Rename to output_to_stream.
659         (output_format): Change prototype.  Improve documentation. Handle
660         more format specifiers.
661         (build_location_prefix): Rename to context_as_prefix.
662         (output_notice): Rename to output_do_printf.
663         (output_printf): Tweak.
664         (line_wrapper_printf): Likewise.
665         (vline_wrapper_message_with_location): Adjust call to renamed
666         functions.
667         (v_message_with_decl): Likewise.
668         (default_print_error_function): Likewise.
669         (save_output_state): New function.
670         (restore_output_state): Likewise.
671         (output_do_verbatim): Likewise.
672         (output_verbatim): Define.
673         (verbatim): Likewise.
674
675         * diagnostic.h (printer_fn): Change return type from void to int.
676         Improve documentation.
677         (output_add_integer): Rename to output_decimal.
678         (output_flush_on, output_format): Don't export.
679         (output_verbatim, verbatim): Declare.
680
681 2000-07-08  Toon Moene  <toon@moene.indiv.nluug.nl>
682
683         * fold-const.c (extract_muldiv) case PLUS_EXPR, MINUS_EXPR:
684         Check whether c divides op1 exactly if operation is not
685         multiplication.
686
687 2000-07-08  Richard Henderson  <rth@cygnus.com>
688
689         * final.c (final): Do not abort when reg-stack introduces
690         a new insn.
691
692 2000-07-08  Zack Weinberg  <zack@wolery.cumb.org>
693
694         * cpplib.h (struct cpp_name): Now struct cpp_string.
695         (CPP_INT, CPP_FLOAT, CPP_NUMBER, CPP_COMMENT,
696         CPP_HEADER_NAME): Change to type S.
697         (struct cpp_token): Rename 'name' field to 'str'.  Add 'node'
698         field, a cpp_hashnode *.  All references to val.name updated
699         to use val.str or val.node as appropriate.
700         (struct cpp_reader): Add spec_nodes field.
701         (cpp_idcmp): Now cpp_ideq; takes a token * and a char *.
702
703         * cpphash.h (struct spec_nodes): New.
704         (enum spell_type): Reorder.  Only SPELL_STRING tokens use
705         val.str.  All references to 'spelling > SPELL_NONE' updated to
706         match.
707
708         (CPP_IN_SYSTEM_HEADER): Check pfile->buffer and
709         pfile->buffer->inc are not NULL before dereferencing them.
710
711         * cpplex.c (parse_name): Take a pointer to the current token,
712         plus current position and limit as args; return the new
713         position; don't copy the text of a name into the string
714         buffer, instead call cpp_lookup and store the node pointer.
715         If extending a token, copy out the text of the old into a
716         scratch buffer, append the new, look that up and store the new
717         node pointer.  Inline.
718         (maybe_paste_with_next): If the result of paste is a NAME,
719         then look up the pasted text and store its node pointer.
720         (lex_line): Adjust for new parse_name interface.
721         Check for L"str", L'str' using spec_nodes->n_L.
722         (spell_token): SPELL_IDENT tokens have their spelling in
723         val.node->name.  Handle SPELL_STRING tokens that don't have
724         string delimiters.
725         (_cpp_expand_name_space,
726         (can_paste): Check for L ## "str" using spec_nodes->n_L.
727         (cpp_get_token, special_symbol): No need to call cpp_lookup.
728         (cpp_idcmp): Now cpp_ideq; take a token * and a const char *;
729         return 1=equal 0=not, not a tristate.
730
731         * cpphash.c (var_args_str): Delete.
732         (find_param): Compare node fields directly.
733         (is__va_args__): Use CPP_PEDANTIC.  Just compare
734         token->val.node with spec_nodes->n__VA_ARGS__.
735         (dump_funlike_macro): Don't use var_args_str.
736
737         * cpplib.c (_cpp_check_directive): Just walk through
738         spec_nodes->dirs comparing pointers.
739         (get_define_node, do_pragma_poison, detect_if_not_defined,
740         parse_ifdef): The identifier has already been looked up.
741         (do_ifdef, do_ifndef): parse_ifdef won't return a poisoned
742         node.
743         (do_if): Only call detect_if_not_defined at beginning of file.
744         (_cpp_parse_assertion): Only copy string pointers for
745         SPELL_STRING tokens.
746         (pragma_dispatch): Take a node pointer and examine its name
747         field.
748         (_cpp_init_stacks): Also initialize the spec_nodes structure.
749
750         * cppinit.c (cpp_reader_init): Call _cpp_init_stacks after
751         _cpp_init_macros.
752         (cpp_cleanup): Free pfile->spec_nodes.  Call _cpp_cleanup_* in
753         reverse order from the corresponding _cpp_init_* routines.
754
755         * cppexp.c (parse_number, parse_charconst, parse_defined,
756         lex): Check val.node->type instead of calling cpp_defined.
757         Use spec_nodes entries where appropriate.
758
759         * fix-header.c, scan-decls.c: Update for interface changes.
760
761 2000-07-08  Geoffrey Keating  <geoffk@cygnus.com>
762
763         * config/rs6000/rs6000.c (rs6000_emit_move): Fix conditions for
764         emitting aux_truncdfsf2.
765
766 2000-07-03  Donn Terry  (donnte@microsoft.com)
767
768         * cppinit.c (print_help): split overlong line into ISO C89
769         maximum chunks.
770
771 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
772
773         * cppexp.c: Update all code for new lexer interface.
774         (op_t, operator codes, struct token, tokentab2, op_to_str): Remove.
775         (struct suffix, vsuf_1, vsuf_2, vsuf_3, op_to_prio): New.
776         * cpplex.c (token_names): Trim leading CPP_ from names; make
777         the strings unsigned.
778         (_cpp_spell_operator): New.
779         (is_macro_disabled): Disable all macros if rescanning
780         preprocessed text.
781         (_cpp_get_directive_token): Remove.
782
783         * cppinit.c: Don't set no_macro_expand.
784         * cpplib.c (read_line_number, do_line): Check only for EOF,
785         not VSPACE.
786         * cpphash.h: Update prototypes.
787         * cpplib.h (CPP_VSPACE): Remove.
788         (struct cpp_reader): Remove no_macro_expand.
789
790 2000-07-08  Neil Booth  <NeilB@earthling.net>
791
792         * cpphash.c (is__va_args__): New function.
793         (count_params): Fix line reported in error messages.  Use
794         is__va_args__.  Don't return ')' on error.  Flag GNU style
795         rest args macro definitions.
796         (parse_define): Check macro name is not __VA_ARGS__.
797         (save_expansion): Check identifier in non-varargs-macro is
798         not __VA_ARGS__.  Don't flag GNU_VARARGS.
799         * cpplex.c (parse_args): Accept no argument iff GNU_REST_ARGS.
800         (maybe_paste_with_next): Use per-macro GNU_REST_ARGS rather
801          than per-token GNU_VARARGS.
802         * cpplib.h (GNU_VARARGS): Remove.
803         (GNU_REST_ARGS): New.
804
805 Sat Jul  8 01:38:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
806
807         * i386.md (call_pop, call, call_value_pop): Do not set
808         current_function_uses_pic_offset_table for calls to static
809         functions or indirect calls.
810
811 2000-07-07  Jim Wilson  <wilson@cygnus.com>
812
813         * config/ia64/ia64.c (rws_access_reg): New local write_count.  If
814         is_predicate_reg, then take max write_count of register pair.
815
816 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
817
818         * tradcpp.c (main): Rename label `include' to `add_include' to
819         avoid conflicts with variable `include' in traditional C.
820
821 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
822
823         * integrate.c (copy_insn_list): Remove REG_LABEL notes.
824
825 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
826
827         * sibcall.c (uses_addressof): Add INMEM argument, check for
828         current_function_internal_arg_pointer outside of MEM rtxs in addition
829         to ADDRESSOFs.
830         (sequence_uses_addressof): Update caller.
831
832 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
833
834         * tradcpp.c (initialize_builtins): Honor NO_BUILTIN_SIZE_TYPE
835         and friends.
836
837 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
838
839         * system.h (UNION_INIT_ZERO): New macro for initializing union
840         members in structs.
841
842         * cpplex.c (placemarker_token, eof_token): Use UNION_INIT_ZERO.
843
844 2000-07-07  Neil Booth  <NeilB@earthling.net>
845
846         * cpp.texi: Update.
847
848 Fri Jul  7 07:47:35 2000  Jeffrey A Law  (law@cygnus.com)
849
850         * final.c (final): Detect out of bounds array access to
851         the insn_lengths array.
852
853 2000-07-07  Kazu Hirata  <kazu@hxi.com>
854
855         * fold-const.c (fold): Fix a comment typo.
856
857 2000-07-07  Neil Booth  <NeilB@earthling.net>
858
859         * cpp.texi: Update to new lexer.
860
861 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
862
863         * tradcpp.c: New file.
864         * tradcif.y: New file.
865         * tradcif.c: New generated file.
866
867         * Makefile.in: Add rules to build tradcpp.o, tradcif.o,
868         $(srcdir)/tradcif.c.  Add tradcpp to STAGESTUFF and
869         dependencies of C.  Install tradcpp from install-common, in
870         $(libsubdir).
871
872 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
873
874         * cppinit.c: Include cppdefault.h.  Refer to
875         cpp_GCC_INCLUDE_DIR and cpp_GCC_INCLUDE_DIR_len, not directly
876         to GCC_INCLUDE_DIR and its length.
877         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
878         USER_LABEL_PREFIX, REGISTER_PREFIX, struct default_include,
879         STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT):  Move to
880         cppdefault.h.
881         (include_defaults_array): Move to cppdefault.c.
882
883         * cppdefault.h: New file.
884         * cppdefault.c: New file.
885
886         * Makefile.in (LIBCPP_OBJS): Add cppdefault.o.
887         (cppinit.o): Don't apply $(PREPROCESSOR_DEFINES) to this file.
888         (cppdefault.o): New rule; apply $(PREPROCESSOR_DEFINES) to
889         this file.
890
891 Thu Jul  6 18:30:36 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
892
893         * reload.c (push_reload): When seeing if can reuse a register,
894         check extra registers against widest of INMODE and OUTMODE.
895
896 2000-07-06  Neil Booth  <NeilB@earthling.net>
897
898         * cpplib.c: (_cpp_parse_assertion):  Perform hash lookups
899         based on full length of predicate.
900
901 2000-07-06  Hans-Peter Nilsson  <hp@axis.com>
902
903         * timevar.c: [HAVE_SYS_RESOURCE_H]: Include <sys/resource.h>.
904         [NEED_DECLARATION_GETRUSAGE]: Declare getrusage.
905
906 2000-07-05  Kazu Hirata  <kazu@hxi.com>
907
908         * h8300-proto.h: Fix formatting.
909         * h8300.c: Likewise.
910         * h8300.h: Likewise.
911
912 2000-07-05  Jim Wilson  <wilson@cygnus.com>
913
914         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): If FR_REGNO_P, disallow
915         CCmode.
916
917 2000-07-05  Rodney Brown  <RodneyBrown@pmsc.com>
918
919         * invoke.texi: Fix minor typos
920         * md.texi: Fix minor typos
921
922 2000-07-05  Zack Weinberg  <zack@wolery.cumb.org>
923
924         * cpplib.c (_cpp_parse_assertion): Fix buffer overrun.
925
926 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
927
928         * cpplex.c: Don't include sys/mman.h.
929         (cpp_push_buffer, cpp_pop_buffer): Moved to cpplib.c.
930
931         * cpplib.c: Include sys/mman.h and obstack.h.
932         (cpp_push_buffer): Moved from cpplex.c; allocate buffers on an
933         obstack.
934         (cpp_pop_buffer): Moved from cpplex.c; free buffers from an obstack.
935         (_cpp_unwind_if_stack): Now static, unwind_if_stack.  Don't
936         bother freeing if stack entries (they will be freed with their buffer).
937         (do_endif): Free if stack entries from the buffer obstack.
938         (push_conditional): Allocate if stack entries from the buffer obstack.
939
940         (find_answer): Rename to _cpp_find_answer.
941         (do_assert, do_unassert): Update.
942
943         * cpphash.h: Update prototypes.
944         (xobnew): New convenience macro.
945         * cpplib.h (struct cpp_reader): Add hash_ob and buffer_ob fields.
946         Update comments.
947         (struct cpp_hashnode): Remove disabled field.
948
949         * cppinit.c: Don't include hashtab.h or splay-tree.h.
950         (report_missing_guard): Moved to cppfiles.c.
951         (cpp_reader_init): Call cpp_init_stacks, cpp_init_macros,
952         cpp_init_includes.
953         (cpp_cleanup): Call cpp_cleanup_stacks, cpp_cleanup_macros,
954         cpp_cleanup_includes.  Don't destroy hashtab or
955         all_include_files here.
956         (cpp_finish): Use _cpp_report_missing_guards.
957
958         * cppfiles.c (report_missing_guard): Moved from cppinit.c.
959         (_cpp_init_include_table): Rename _cpp_init_includes.
960         (_cpp_cleanup_includes, _cpp_report_missing_guards): New.
961
962         * cppexp.c (parse_assertion): Update for new name of
963         find_answer.
964
965         * Makefile.in (cpplib.o, cpphash.o, cppinit.o): Update deps.
966
967 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
968
969         * cpplib.c (do_ident): s/VSPACE/EOF/
970
971 2000-07-05  Neil Booth  <NeilB@earthling.net>
972
973         * cpplex.c: Fix trigraph replacement within strings.
974
975 2000-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
976
977         * rs6000/aix.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier.
978
979         * xcoffout.c (assign_type_number): Constify.
980         (xcoffout_source_file): Add static prototype.  Don't needlessly
981         cast away const-ness.
982
983 2000-07-04  Jason Merrill  <jason@redhat.com>
984
985         * frame.h (frame_state): Move base_offset to end.
986
987 Mon Jul  3 21:31:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
988
989         * calls.c (emit_library_call_value_1): Revert previous change.
990
991 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
992
993         * fix-header.c (struct partial_proto): Remove unnecessary fields.
994         (recognized_extern, recognized_function, read_scan_file):
995         Update for new scheme.
996         (check_protection): It's still a multiple include guard even
997         if it doesn't always trigger.
998         * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
999         new scheme.
1000         * scan.h: Declare struct cpp_token.  Update prototypes.
1001
1002 2000-07-03  Neil Booth  <neilb@earthling.net>
1003             Zack Weinberg  <zack@wolery.cumb.org>
1004
1005         Complete overhaul of the lexer and macro expander.
1006
1007         * cpphash.c (object_defn, funct_defn, push_macro_expansion,
1008         arg, arglist, argdata, reflist, collect_objlike_expansion,
1009         collect_funlike_expansion, collect_params,
1010         warn_trad_stringify, trad_stringify, duplicate_arg_p, add_pat,
1011         unsafe_chars, macarg, compare_defs, special_symbol,
1012         scan_arguments, stringify, funlike_macroexpand,
1013         _cpp_quote_string, monthnames): Delete.
1014         (cpp_lookup, _cpp_free_definition, dump_funlike_macro,
1015         _cpp_create_definition, _cpp_dump_definition,
1016         dump_hash_helper): Adjust.
1017         (find_param, count_params, parse_define, var_args_str,
1018         check_macro_redefinition, save_expansion): New.
1019
1020         * cpplex.c (skip_block_comment, skip_line_comment, parse_name,
1021         parse_string, output_line_command, trigraph_replace,
1022         lex_line, cpp_push_buffer, cpp_pop_buffer, cpp_output_tokens,
1023         cpp_scan_buffer_nooutput, cpp_scan_buffer, cpp_free_toklist,
1024         cpp_idcmp, _cpp_get_directive_token, _cpp_init_input_buffer,
1025         _cpp_skip_rest_of_line): Modify.
1026
1027         (maybe_macroexpand, skip_comment, copy_comment, skip_string,
1028         find_position, null_warning, bump_column, expand_name_space,
1029         pedantic_whitespace, _cpp_output_list, _cpp_slice_toklist,
1030         _cpp_squeeze_toklist, _cpp_scan_until, _cpp_skip_hspace,
1031         _cpp_parse_name, _cpp_lex_token, cpp_get_non_space_token,
1032         _cpp_prescan): Delete.
1033
1034         (dump_param_spelling, process_directive, lex_next,
1035         is_macro_disabled, stringify_arg, expand_context_stack,
1036         output_token, make_string_token, alloc_number_token,
1037         special_symbol, duplicate_token, maybe_paste_with_next,
1038         can_paste, prevent_macro_expansion, restore_macro_expansion,
1039         get_temp_token, release_temp_tokens, quote_string,
1040         token_names, token_spellings, _cpp_expand_name_space,
1041         _cpp_glue_header_name, _cpp_reserve_name_space,
1042         digraph_spellings, trigraph_ok, skip_whitespace, save_comment,
1043         placemarker_token, eof_token, cpp_context, macro_args,
1044         get_raw_token, parse_arg, parse_args, save_token,
1045         push_arg_context, push_macro_context, pop_context,
1046         do_pop_context, free_macro_args, _cpp_get_line,
1047         _cpp_run_directive): New.
1048
1049         * cpplib.c (validate_else, parse_include, push_conditional,
1050         pass_thru_directive, read_line_number, parse_ifdef,
1051         detect_if_not_defined, _cpp_check_directive, do_define,
1052         do_undef, do_include, do_import, do_include_next, do_error,
1053         do_warning, do_ident, do_pragma, pragma_dispatch, gcc_pragmas,
1054         top_pragmas, do_pragma_gcc, do_pragma_implementation,
1055         do_pragma_poison, do_pragma_system_header,
1056         do_pragma_dependency, do_sccs, do_ifdef, do_ifndef, do_else,
1057         dl_elif, do_endif, _cpp_unwind_if_stack, do_assert,
1058         do_unassert, cpp_define, cpp_undef, cpp_assert, cpp_unassert,
1059         cpp_defined): Update for new scheme.
1060         (strtoul_for_line, get_define_node, dump_macro_name,
1061         _cpp_check_linemarker, _cpp_parse_assertion): New.
1062         (_cpp_handle_directive, do_pragma_default): Delete.
1063
1064         * cpphash.h (struct predicate): Now struct answer.
1065         (enum spell_type, struct token_spelling, struct directive,
1066         directive_handler): New.
1067         Update prototypes.  Remove unused macros.
1068         * cpplib.h: Update prototypes.  Remove unused macros,
1069         structure definitions, and fields.
1070
1071         * cpperror.c (print_containing_files, v_message): Adjust.
1072         * cppexp.c (parse_assertion, lex, parse_escape,
1073         _cpp_parse_expr): Adjust.
1074         * cppfiles.c (open_include_file, _cpp_execute_include,
1075         _cpp_compare_file_date, cpp_read_file, read_include_file):
1076         Adjust.
1077         * cppinit.c (dump_special_to_buffer): Delete.
1078         (append_include_chain, merge_include_chains, cpp_reader_init,
1079         cpp_cleanup, initialize_builtins, builtin_array, cpp_start_read,
1080         cpp_finish, handle_option, print_help): Adjust.
1081         * cppmain.c (main): Adjust.
1082
1083 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
1084
1085         * cppspec.c (lang_specific_driver): Use double quotes in error
1086         message.
1087
1088 Mon Jul  3 16:53:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
1089
1090         * calls.c (emit_library_call_value_1): Use valreg instead
1091         of hard_libcall_value.
1092
1093 2000-07-03  Geoff Keating  <geoffk@cygnus.com>
1094
1095         * config/rs6000/rs6000.c (rs6000_emit_move): New function.
1096         * config/rs6000/rs6000-proto.h: Prototype rs6000_emit_move.
1097         * config/rs6000/rs6000.md (movsi): Use rs6000_emit_move.
1098         (movhi): Likewise.
1099         (movqi): Likewise.
1100         (movdf): Likewise.
1101         (movsf): Likewise.
1102         (movdi): Likewise.
1103         (movti): Likewise.
1104
1105         * expmed.c (expand_mult_highpart): Use op1 instead of wide_op1 when
1106         mode instead of wider_mode is being used.
1107
1108 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
1109
1110         * config/i386/i386.md (movstrictqi_xor): Use 'q' constraint instead
1111         of 'r'. Use q_regs_operand.
1112         (andsi_1+2): Use q_regs_operand.
1113
1114 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
1115
1116         * builtins.c (get_memory_rtx): Always put into alias set 0.
1117
1118 2000-07-03  Nick Clifton  <nickc@cygnus.com>
1119
1120         * config/arm/arm.md: Fix post increment and pre increment
1121         peepholes so that they do not generate UNPREDICATBLE opcodes.
1122         (ie ones where the increment clobbers the source/destination).
1123
1124 2000-07-01  Marek Michalkiewicz  <marekm@linux.org.pl>
1125
1126         * config/avr/avr.c (out_adj_frame_ptr): Make "frame pointer
1127         change too big for -mtiny-stack" a warning, if larger than 63.
1128         (out_set_stack_ptr): Change the logic so -mno-interrupts is
1129         always safe to use on possible future devices.
1130         (function_prologue): Write SPH before SPL, for consistency.
1131         If interrupt_func_p true, we know we have enabled interrupts.
1132         (avr_num_arg_regs): New function.  Round up to even number of
1133         bytes if no -mpack-args or if calling a libgcc function.
1134         (function_arg, function_arg_advance): Use it.
1135         (output_movsisf, ashlsi3_out, ashrsi3_out, lshrsi3_out):
1136         Output "movw" if available.
1137         (out_tsthi, out_tstsi, ashlqi3_out, lshrqi3_out): Change uses
1138         of TEST_HARD_REG_CLASS macro to test_hard_reg_class function.
1139         (asm_output_section_name): Add blanks for consistent output.
1140         (encode_section_info): Set TREE_READONLY for progmem data to
1141         avoid gas warnings about changed section attributes.
1142         (avr_hard_regno_mode_ok): Force non-QImode data to start in
1143         even numbered registers on devices with "movw".
1144         * config/avr/avr.h (MASK_*): Define bits for target_flags.
1145         (TARGET_SWITCHES): Mark help strings for translation.
1146         Add new -mpack-args and -menhanced switches.
1147         (TARGET_OPTIONS): Mark help strings for translation.
1148         (progmem_section): Add section attributes.
1149         * config/avr/avr.md (*movhi, call_insn, call_value_insn):
1150         Output "movw" if available.
1151         (mulqi3, mulqihi3, umulqihi3, mulhi3, *tablejump_enh):
1152         New patterns.
1153         * config/avr/libgcc.S (_mulqi3, _divqi3): Update to the new
1154         call convention (arguments aligned on even registers).
1155         (_cleanup, _exit): Make weak symbols libc can override.
1156
1157 2000-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1158
1159         * fp-bit.h: New file.
1160
1161         * fp-bit.c: Move common code, prototypes, etc into fp-bit.h.
1162         Comment #endif statements.
1163         (__thenan_sf, __thenan_df): Add missing braces around initializer.
1164
1165 Mon Jul  3 00:32:47 2000  Jeffrey A Law  (law@cygnus.com)
1166
1167         * gcse.c (compute_pre_data): Compute ae_kill using other local
1168         properties instead of calling compute_ae_kill.
1169
1170         * alias.c (init_alias_analysis): Do not call
1171         prologue_epilogue_contains until after reload has completed.
1172
1173 2000-07-02  Benjamin Chelf  <chelf@codesourcery.com>
1174
1175         * c-common.h (genrtl_begin_compound_stmt): Remove declaration.
1176         (genrtl_finish_compound_stmt): Likewise.
1177         (genrtl_compound_stmt): Change to return void.
1178
1179         * c-semantics.c (genrtl_begin_compound_stmt): Remove function and
1180         move code from here to ...
1181         (genrtl_compound_stmt): ... here.
1182         (genrtl_finish_compound_stmt): Remove.
1183         (expand_stmt): Add comment.
1184
1185 2000-07-02  Zack Weinberg  <zack@wolery.cumb.org>
1186
1187         * c-typeck.c (build_indirect_ref): Use COMPLETE_OR_VOID_TYPE_P
1188         and VOID_TYPE_P.
1189
1190 2000-07-02  Jakub Jelinek  <jakub@redhat.com>
1191
1192         * cpplib.h (struct cpp_reader): New field include_depth.
1193         (struct cpp_printer): Rename last_bsd to last_id.
1194         * cppfiles.c (read_include_file): Bump include_depth.
1195         * cpplex.c (cpp_pop_buffer): Decrement include_depth.
1196         (output_line_command): Output correct #line if a header
1197         is including itself and is not protected against multiple inclusion.
1198         Use include_depth instead of buffer_stack_depth, last_id instead of
1199         last_bsd.
1200         * cppinit.c (cpp_start_read): Initialize last_id instead of
1201         last_bsd.
1202
1203 2000-07-01  Benjamin Chelf  <chelf@codesourcery.com>
1204
1205         * Makefile.in (C_AND_OBJC_OBJS): Added c-semantics.o.
1206         (c-semantics.o): New target.
1207
1208         * c-common.h (TREE_LANG_FLAG_?): Added documentation.
1209         (genrtl_do_pushlevel): Moved from cp/cp-tree.h.
1210         (genrtl_clear_out_block): Likewise.
1211         (genrtl_goto_stmt): Likewise.
1212         (genrtl_expr_stmt): Likewise.
1213         (genrtl_decl_stmt): Likewise.
1214         (genrtl_if_stmt): Likewise.
1215         (genrtl_while_stmt): Likewise.
1216         (genrtl_do_stmt): Likewise.
1217         (genrtl_return_stmt): Likewise.
1218         (genrtl_for_stmt): Likewise.
1219         (genrtl_break_stmt): Likewise.
1220         (genrtl_continue_stmt): Likewise.
1221         (genrtl_scope_stmt): Likewise.
1222         (genrtl_switch_stmt): Likewise.
1223         (genrtl_case_label): Likewise.
1224         (genrtl_begin_compound_stmt): Likewise.
1225         (gerntl_finish_compound_stmt): Likewise.
1226         (genrtl_compound_stmt): Likewise.
1227         (genrtl_asm_stmt): Likewise.
1228         (genrtl_decl_cleanup): Likewise.
1229         (DECL_ANON_UNION_ELEMS): Likewise.
1230         (emit_local_var): Likewise.
1231         (make_rtl_for_local_static): Likewise.
1232         (expand_cond): Likewise.
1233         (expand_stmt): Likewise.
1234         (c_expand_return): Likewise.
1235         (c_expand_start_case): Likewise.
1236         (do_case): Likewise.
1237         (COMPOUND_STMT_NO_SCOPE): Likewise.
1238         (c_expand_asm_operands): Likewise.
1239         (NEW_FOR_SCOPE_P): New macro.
1240         (expand_expr_stmt_fn): New type.
1241
1242         (set_current_function_name_declared): Likewise.
1243         (current_function_name_declared): Likewise.
1244         (lang_expand_stmt): Likewise.
1245         (stmts_are_full_exprs_p): Likewise.
1246         (anon_aggr_type_p): Likewise.
1247         (lang_expand_expr_stmt): Likewise.
1248         (build_case_label): Likewise.
1249
1250         * c-decl.c (lang_expand_expr_stmt): Initialize.
1251         (stmts_are_full_exprs_p): Define.
1252         (current_function_name_declared): Likewise.
1253         (do_case): Likewise.
1254         (lang_expand_stmt): Likewise.
1255         (set_current_function_name_declared): Likewise.
1256         (anon_aggr_type_p): Likewise.
1257
1258         * c-semantics.c: New file.
1259         (expand_cond): Moved from cp/semantics.c.
1260         (genrtl_do_pushlevel): Likewise.
1261         (genrtl_clear_out_block): Likewise.
1262         (genrtl_goto_stmt): Likewise.
1263         (genrtl_expr_stmt): Likewise.
1264         (genrtl_decl_stmt): Likewise.
1265         (genrtl_if_stmt): Likewise.
1266         (genrtl_while_stmt): Likewise.
1267         (genrtl_do_stmt): Likewise.
1268         (genrtl_return_stmt): Likewise.
1269         (genrtl_for_stmt): Likewise.
1270         (genrtl_break_stmt): Likewise.
1271         (genrtl_continue_stmt): Likewise.
1272         (genrtl_scope_stmt): Likewise.
1273         (genrtl_switch_stmt): Likewise.
1274         (genrtl_case_label): Likewise.
1275         (genrtl_begin_compound_stmt): Likewise.
1276         (genrtl_finish_compound_stmt): Likewise.
1277         (genrtl_compound_stmt): Likewise.
1278         (genrtl_asm_stmt): Likewise.
1279         (genrtl_decl_cleanup): Likewise.
1280         (make_rtl_for_local_static): Moved from cp/decl.c.
1281         (emit_local_var): Likewise.
1282         (expand_stmt): Define.
1283
1284         * c-tree.h: (c_expand_asm_operands): Moved to c-common.h.
1285         (c_expand_return): Likewise.
1286         (c_expand_start_case): Likewise.
1287
1288 2000-07-01  Richard Henderson  <rth@cygnus.com>
1289
1290         * config/ia64/ia64.c (symbolic_operand): Reject CONST expressions
1291         with the low 13 bits set.
1292         (move_operand): Check for CONST|SYMBOL_REF|LABEL_REF directly.
1293         * config/ia64/ia64.md (movdi): Likewise.  Expand a CONST with one
1294         of the low 13 bits into a CONST plus an adddi3.
1295         (load_symptr): Set RTX_UNCHANGING_P.
1296
1297 2000-06-30  Mark Mitchell  <mark@codesourcery.com>
1298
1299         * Makefile.in (c-common.o): Don't depend on c-tree.h or c-lex.h.
1300         * c-common.c (ridpointers): Declare.
1301         * c-common.h (enum rid): Declare.
1302         (NORID): Likewise.
1303         (ridpointers): Likewise.
1304         * c-lex.c (ridpointers): Don't declare.
1305         (init_lex): Initialize ridpointers.
1306         * c-lex.h (enum rid): Don't declare.
1307         (NORID): Likewise.
1308         (RID_FIRST_MODIFIER): Likewise.
1309         (ridpointers): Likewise.
1310
1311 2000-06-30  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1312
1313         * pa/som.h (ASM_WEAKEN_LABEL): Export weak data symbols so that they
1314         have global scope.
1315
1316 2000-06-30  Martin von Loewis  <loewis@informatik.hu-berlin.de>
1317
1318         * invoke.texi (-Wreturn-type): In C++, a missing return type is
1319         always an error.
1320
1321 2000-06-30  Catherine Moore  <clm@cygnus.com>
1322
1323         * c-common.c (decl_attributes):  Differentiate between
1324         types and type decls for alignment.
1325
1326 2000-06-30  Nathan Sidwell  <nathan@codesourcery.com>
1327
1328         * cpp.texi: Document #pragma GCC dependency
1329         * cppfiles.c (open_include_file): Set date to unknown.
1330         (_cpp_compare_file_date): New function.
1331         (read_include_file): Set file date.
1332         * cpphash.h (struct include_file): Add date member.
1333         (_cpp_compare_file_date): Prototype.
1334         * cpplib.c (parse_include): Add trail parameter. Adjust.
1335         (do_include): Adjust parse_include call.
1336         (do_import): Likewise.
1337         (do_include_next): Likewise.
1338         (gcc_pragmas): Add dependency pragma.
1339         (do_pragma_dependancy): New pragma.
1340
1341 2000-06-29  Jason Merrill  <jason@redhat.com>
1342
1343         * dwarf2out.c (output_loc_operands): Don't abort on codes that have
1344         no operands.
1345
1346 2000-06-29  Jim Wilson  <wilson@cygnus.com>
1347
1348         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Return NO_REGS for
1349         a volatile mem and FR_REGS.
1350
1351 2000-06-29  Mark Mitchell  <mark@codesourcery.com>
1352
1353         * c-common.c: Include c-common.h, not c-lex.h or c-tree.h.
1354         * c-common.h (flag_const_strings): Declare.
1355         (warn_format): Likewise.
1356         (flag_traditional): Likewise.
1357         (flag_isoc99): Likewise.
1358         (warn_parentheses): Likewise.
1359         (warn_conversion): Likewise.
1360         (C_TYPE_OBJECT_P): Likewise.
1361         (C_TYPE_INCOMPLETE_P): Likewise.
1362         (C_TYPE_FUNCTION_P): Likewise.
1363         (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
1364         (C_EXP_ORIGINAL_CODE): Likewise.
1365         (build_unary_op): Likewise.
1366         (build_binary_op): Likewise.
1367         (lvalue_p): Likewise.
1368         (default_conversion): Likewise.
1369         (common_type): Likewise.
1370         * c-tree.h (C_TYPE_OBJECT_P): Remove.
1371         (C_TYPE_INCOMPLETE_P): Likewise.
1372         (C_TYPE_FUNCTION_P): Likewise.
1373         (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
1374         (C_EXP_ORIGINAL_CODE): Likewise.
1375         (common_type): Likewise.
1376         (default_conversion): Likewise.
1377         (build_binary_op): Likewise.
1378         (build_unary_op): Likewise.
1379         (lvalue_p): Likewise.
1380         (flag_const_strings): Likewise.
1381         (warn_format): Likewise.
1382         (warn_conversion): Likewise.
1383         (flag_traditional): Likewise.
1384         (flag_isoc99): Likewise.
1385         (warn_parentheses): Likewise.
1386
1387 2000-06-29  James E. Wilson  <wilson@cygnus.com>
1388
1389         * config/ia64/linux.h (LINK_SPEC): Change so.1 to so.2.
1390
1391         * config/ia64/ia64.h (MODES_TIEABLE_P): Only tie if mode class is the
1392         same.  Only tie XFmode with XFmode.
1393
1394 2000-06-29  Zack Weinberg  <zack@wolery.cumb.org>
1395
1396         * c-decl.c, timevar.c, tlink.c: Include intl.h.
1397         * Makefile.in: Update deps.
1398
1399 2000-06-29  Andrew Haley  <aph@cygnus.com>
1400
1401         * toplev.c (main): On an IA-64, make flag_unwind_tables defauit
1402         to true.
1403
1404 2000-06-29  Andrew Haley  <aph@cygnus.com>
1405
1406         * config/ia64/linux.h (JMP_BUF_SIZE): Size is in Pmode units, not
1407         bytes: remove the multiply by 8.
1408
1409 2000-06-29  Philipp Thomas  <pthomas@suse.de>
1410
1411         * rtl.c : Revert NLS changes.
1412         * gcc.c : Fix bug in display_help introced by my last changes.
1413
1414 Wed Jun 28 21:09:33 2000   Raja R Harinath <harinath@cs.umn.edu>
1415
1416         * dbxout.c (dbxout_symbol, case RESULT_DECL, VAR_DECL): Use
1417         DECL_CONTEXT, not DECL_FIELD_CONTEXT.
1418
1419 2000-06-29  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1420
1421         * flow.c (flow_depth_first_order_compute): Fix algorithm.
1422
1423 2000-06-28  Philipp Thomas  <pthomas@suse.de>
1424
1425         * c-decl.c : Mark strings for translation.
1426         (parmlist_tags_warning): Use distinct messages instead
1427         of conditional expressions.
1428         * diagnostic.c (v_message_with_decl): Mark string for translation.
1429         * gcc.c: Mark messages for translation.
1430         (display_help): Combine messages into one string where necessary.
1431         * mips-tfile: Add intl.h. Mark messages for translation.
1432         * rtl.c (fatal_with_file_and_line): Modify function for NLS. Mark
1433         messages for translation.
1434         * timevar.c: Mark messages for translation.
1435         * tlink.c: Likewise.
1436         * toplev.c: Likewise.
1437
1438 Wed Jun 28 15:39:26 2000  Donn Terry (donnte@microsoft.com)
1439
1440         * i386-interix.h (STRIP_NAME_ENCODING): Declare _new_name properly.
1441
1442         * alpha/alpha-interix.h: Delete redundant -Asystem(interix),
1443         use -isystem instead of -idirafter.
1444         * i386/i386-interix.h: Likewise.
1445
1446 2000-06-28  Jason Merrill  <jason@redhat.com>
1447
1448         * dwarf2out.c (output_loc_operands): Don't support >1 byte output
1449         unless DWARF2_DEBUGGING_INFO is defined.
1450         (ASM_OUTPUT_DWARF_*): Wrap normal output defs with #ifndefs.
1451
1452 2000-06-28  Richard Henderson  <rth@cygnus.com>
1453
1454         * config/alpha/alpha.c (summarize_insn): Ignore SCRATCH.
1455
1456 2000-06-28  Jakub Jelinek  <jakub@redhat.com>
1457
1458         * cpplex.c (output_line_command): Output correct #line if a header
1459         is including itself and is not protected against multiple inclusion.
1460
1461 2000-06-28  Zack Weinberg  <zack@wolery.cumb.org>
1462
1463         * cppfiles.c (open_include_file): If open(2) returns EMFILE or
1464         ENFILE, close all cached file descriptors and try again.
1465         (_cpp_execute_include): Keep a count of the number of times
1466         each header is included.
1467         (close_cached_fd): New function.
1468         * cpphash.h (struct include_file): Rename before to
1469         include_count; all users updated.  Make include_count and sysp
1470         unsigned short.
1471         * cppinit.c (cpp_finish): If -H, report headers that could use
1472         reinclude guards.
1473         (report_missing_guard): New function.
1474
1475 Wed Jun 28 14:46:58 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1476
1477         * i386.md (prologue_set_got): Set length_immediate field.
1478         (testqi_ccno_1):  Add missing '@' character.
1479
1480 2000-06-27  Jason Merrill  <jason@redhat.com>
1481
1482         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Use
1483         DWARF_FRAME_REGNUM.
1484
1485 2000-06-27  Andrew Macleod <amacleod@cygnus.com>
1486
1487         * dwarf2out.c (ASM_OUTPUT_DWARF_DATA2): Provide default when no
1488         unsigned macros available.
1489
1490 2000-06-27  Richard Henderson  <rth@cygnus.com>
1491
1492         * config/ia64/ia64.c (emit_insn_group_barriers): Special case
1493         epilogue_deallocate_stack.
1494
1495         * config/ia64/ia64.c (ia64_print_operand) [case D]: Emit
1496         completers for UNORDERED and ORDERED as well.
1497         * config/ia64/ia64.md (bunordered, bordered): New.
1498         (sunordered, sordered): New.
1499
1500 Tue Jun 27 12:14:12 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1501
1502         * genattrtab.c (write_attr_value): Do not abort for CONST_INT operands.
1503         * i386.c (ix86_attr_length_default): Kill.
1504         (ix86_attr_length_immediate_default, ix86_attr_length_address_default):
1505         New.
1506         * i386-protos.h (ix86_attr_length_default): Kill
1507         (ix86_attr_length_immediate_default, ix86_attr_length_address_default):
1508         Add prototype
1509         * i386.md (attribute type): Add "test".
1510         (attribute length_prefix): Kill.
1511         (attribute length_opcode): Kill.
1512         (attribute i387, mode, length_immediate, length_address, prefix_data16,
1513         prefix_rep, prefix_0f, modrm): New.
1514         (attribute length): Compute using the new attributes.
1515         (attribute pent_prefix): New.
1516         (attribute pent_pair): Compute using pent_prefix.
1517         (all insn patterns): Set mode,modrm and immediate_length attributes where
1518         needed.
1519         (cmpsi patterns): Compute sizes propertly for test instruction.
1520         (movsi, movhi patterns): Compute sizes propertly for eax shortcuts.
1521         (movstricthi_xor, movstrictqi_xor): New patterns.
1522         (andsi/andhi): Use splitters to generate xor instructions.
1523         (xorqi_ext_1): New pattern.
1524         (movstricthi->movstricthi_xor peep2): New.
1525
1526 Tue Jun 27 12:03:03 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1527
1528         * i386.md (addqi_low_1): Remove.
1529
1530 2000-06-27  Philipp Thomas  <pthomas@suse.de>
1531
1532         * 1750a.h: Mark help strings for options/switches for translation.
1533         * a29k.h: Likewise.
1534         * alpha.h: Likewise.
1535         * arm.h: Likewise.
1536         * pe.h: Likewise.
1537         * riscix.h: Likewise.
1538         * c4x.h: Likewise.
1539         * clipper.h: Likewise.
1540         * convex.h: Likewise.
1541         * elxsi.h: Likewise.
1542         * fr30.h: Likewise.
1543         * fx80.h: Likewise.
1544         * h8300.h: Likewise.
1545         * i370.h: Likewise.
1546         * cygwin.h: Likewise.
1547         * dgux.h: Likewise.
1548         * djgpp.h: Likewise.
1549         * i386.h: Likewise.
1550         * osf1elf.h: Likewise.
1551         * osfrose.h: Likewise.
1552         * sco5.h: Likewise.
1553         * win32.h: Likewise.
1554         * i860.h: Likewise.
1555         * paragon.h: Likewise.
1556         * i960.h: Likewise.
1557         * ia64.h: Likewise.
1558         * m32r.h: Likewise.
1559         * mcore.h: Likewise.
1560         * mips.h: Likewise.
1561         * mn10300.h: Likewise.
1562         * ns32k.h: Likewise.
1563         * pdp11.h: Likewise.
1564         * pj.h: Likewise.
1565         * aix.h: Likewise.
1566         * aix41.h: Likewise.
1567         * aix43.h: Likewise.
1568         * beos.h: Likewise.
1569         * rs6000.h: Likewise.
1570         * sysv4.h: Likewise.
1571         * linux.h: Likewise.
1572         * linux64.h: Likewise.
1573         * sp64-elf.h: Likewise.
1574         * sparc.h: Likewise.
1575         * splet.h: Likewise.
1576         * v850.h: Likewise.
1577         * convex.h (TARGET_SWITCHES): Provide descriptions and mark them
1578         for translation.
1579         * sp86x-aout.h: Remove bogus first definition of SUBTARGET_SWITCHES.
1580         Properly document option and mark for translation.
1581         * sp86x-elf.h: Likewise.
1582
1583 2000-06-27  Bernd Schmidt  <bernds@cygnus.co.uk>
1584
1585         Add MMX and SSE registers to i386 machine description.
1586         * i386-protos.h (ix86_constant_alignment, ix86_data_alignment,
1587         ix86_local_alignment): Declare.
1588
1589         * i386.h (TARGET_MMX, TARGET_SSE): New.
1590         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS,
1591         REG_ALLOC_ORDER, HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
1592         REG_CLASS_NAMES, REG_CLASS_CONTENTS,REG_CLASS_FROM_LETTER,
1593         enum reg_class, HI_REGISTER_NAMES): Added MMX/SSE registers.
1594         (FIRST_SSE_REG, LAST_SSE_REG, SSE_REGNO_P): New.
1595         (FIRST_MMX_REG, LAST_MMX_REG, MMX_REGNO_P, MMX_REG_P): New macros.
1596         (RETURN_IN_MEMORY): Handle MMX/SSE.
1597         (REG_PARM_STACK_SPACE): Added so the first three TImode parameters
1598         also get stack space.
1599         (MUST_PASS_IN_STACK): Added TImode to the default definition.
1600         (CUMULATIVE_ARGS): Added sse_nregs, sse_regno and sse_words.
1601         (MMX_REGISTER_NAMES): New.
1602         (ALIGN_MODE_128): New macro.
1603         (CONSTANT_ALIGNMENT): Code moved out-of-line; just call the function.
1604         (DATA_ALIGNMENT): Likewise.
1605         (LOCAL_ALIGNMENT): Likewise.
1606         (CONDITIONAL_REGISTER_USAGE): Make MMX/SSE regs fixed if not
1607         TARGET_MMX/TARGET_SSE.
1608         (VALID_SSE_REG_MODE, VALID_MMX_REG_MODE): New macros.
1609         (REG_CLASS_FROM_LETTER): 'y' for MMX regs.
1610         (SECONDARY_MEMORY_NEEDED): Be conservative about copying between
1611         SSE/MMX regs and something else.
1612         (CLASS_MAX_NREGS): 1 for SSE and MMX regs.
1613         (REGISTER_MOVE_COST): 10 if trying to move between MMX and SSE regs,
1614         3 if moving between MMX regs and something else.
1615
1616         * i386.c (reg_class): Add SSE_REGS, MMX_REGS.
1617         (regclass_map): Add MMX/SSE registers.
1618         (print_operand): Add code to print XMMWORD as appropriate.
1619         (ix86_split_movdi): Abort for MMX regs.
1620         (init_cumulative_args): Also allow SSE_REGS
1621         (function_arg_advance, function_arg): Likewise
1622         (print_reg): Support 'm'.  Add case for TImode.
1623         (override_options): TARGET_SSE implies TARGET_MMX.
1624         (ix86_constant_alignment, ix86_data_alignment, ix86_local_alignment):
1625         New functions.
1626
1627         * config/i386/unix.h (VALUE_REGNO): VECTOR_MODE values go to
1628         FIRST_SSE_REG.
1629         * config/i386/ptx4-i.h (RETURN_IN_MEMORY): Return MMX values in
1630         memory.
1631         * config/i386/sysv4.h (RETURN_IN_MEMORY): Likewise.
1632         * config/i386/i386elf.h (RETURN_IN_MEMORY): Likewise.
1633
1634 2000-06-26  Geoff Keating  <geoffk@cygnus.com>
1635
1636         * ssa.c (struct rename_set_data): Change the name of field
1637         'set_dest' to 'old_reg'.  Add comments.
1638         (struct rename_context): Change the name of 'set_data' to
1639         'new_renames'.  Add new field 'done_renames'.
1640         (create_delayed_rename): New function.
1641         (apply_delayed_renames): New function.
1642         (rename_insn_1): Use the new functions.  Handle CLOBBERS.  Handle
1643         SUBREGs and similar by emitting a move.
1644         (new_registers_for_updates): Delete, functionality moved to
1645         apply_delayed_renames.
1646         (rename_block): Handle moves emitted by rename_insn_1 by putting
1647         them into a SEQUENCE with the original insn.  Add sanity checks
1648         and comments.
1649         (rename_equivalent_regs_in_insn): Don't handle SUBREGs specially.
1650         (rename_equivalent_regs): Expand SEQUENCEs out to individual insns.
1651
1652 2000-06-26  Andrew Macleod <amacleod@cygnus.com>
1653             Jason Merrill <jason@redhat.com>
1654
1655         * dwarf2.h (enum dwarf_call_frame_info): Add
1656         DW_CFA_def_cfa_expression.
1657         * dwarf2out.c (union dw_cfi_oprnd_struct): Add a pointer to a
1658         dw_loc_descr_struct entry.
1659         (struct cfa_loc): New structure to track a CFA location.
1660         (lookup_cfa): Take a cfa_loc parameter instead of a reg and an offset.
1661         (lookup_cfa_1): Take a cfa_loc parameter instead of a reg and an
1662         offset, plus handle DW_CFA_def_cfa_expression.
1663         (def_cfa_1): Use to be dwarf2out_def_cfa, only now it uses a
1664         cfa_loc record.
1665         (dwarf2out_def_cfa): Entry point maintained for compatability.
1666         (dwarf_cfi_name): Add DW_CFA_def_cfa_expression.
1667         (cfa_reg, cfa_offset): Replace with cfa_loc record 'cfa'.
1668         (cfa_store_reg, cfa_store_offset): Replace with cfa_loc 'cfa_store'.
1669         (initial_return_save, dwarf2out_stack_adjust): Use cfa.reg, not
1670         cfa_reg.
1671         (dwarf2out_frame_debug_expr): Use new cfa_loc records. Recognize rtl
1672         sequences for the new DW_CFA_def_cfa_expression record.
1673         (dwarf2out_frame_debug): Use new variables/fields.A
1674         (output_cfi): Handle DW_CFA_def_cfa_expression.
1675         (output_cfa_loc): New function to generate a CFI record for
1676         DW_CFA_def_cfa_expression.
1677         (get_cfa_from_loc_descr): New function to get a cfa_loc record from
1678         a dw_loc_descr sequeunce.
1679         (build_loc_descr): Build a dw_loc_descr from a cfa_loc record.
1680         (dwarf_stack_op_name, new_loc_descr, add_loc_descr, size_of_loc_descr,
1681         size_of_locs, output_loc_operands, output_loc_sequence): Move into
1682         unwind info section.
1683         * frame.h (frame_state): Add base_offset and indirect fields.
1684         * frame-dwarf2.c (decode_stack_op): New function to interpret a
1685         dw_loc_descr operation.
1686         (execute_cfa_insn): Add support for DW_CFA_def_cfa_expression.
1687         (struct frame_state): Add base offset and indirect fields.
1688         * libgcc2.c (next_stack_level): Support indirect loading for CFA.
1689
1690 2000-06-26  Joseph S. Myers  <jsm28@cam.ac.uk>
1691
1692         * c-decl.c (grokdeclarator): Don't warn about `long long' in C99.
1693         Make warnings about implicit int be pedwarns in C99.  Don't warn
1694         about duplicate type qualifiers in C99.
1695         (start_function): Make warning about implict int return type be a
1696         pedwarn in C99.
1697         * c-lex.c (yylex): Don't warn about `long long' in C99.
1698         * c-typeck.c (c_expand_return): In C99, always pedwarn about
1699         `return' with no value in function returning non-void.
1700
1701 2000-06-26  Richard Henderson  <rth@cygnus.com>
1702
1703         * c-typeck.c (pedwarn_c99): New.
1704         * diagnostic.c (verror, vwarning, vpedwarn): Export.
1705         * toplev.h: Prototype them.
1706
1707 2000-06-26  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1708
1709         * c-typeck.c (digest_init): Return error_mark_node node when
1710         TREE_TYPE (init)  == error_mark_node.
1711
1712 2000-06-26  Philipp Thomas  <pthomas@suse.de>
1713
1714         * aclocal.m4 (AM_WITH_NLS): Don't set MSGFMT or GMSGFMT to no,
1715         test for msgfmt without path instead.
1716         * configure: Rebuilt.
1717
1718 2000-06-25 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
1719
1720         * gengenrtl.c (special_rtx): Fix typo in comment.
1721
1722 2000-06-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1723
1724         * mklibgcc.in (LIB2FUNCS): Add missing space.
1725
1726 2000-06-24  Bernd Schmidt  <bernds@cygnus.co.uk>
1727
1728         * tree.h (enum tree_index): Add vector type nodes.
1729         Add accessor macros for them.
1730         (TYPE_REPRESENATION_TYPE): New macro.
1731         * tree.c (build_common_tree_nodes_2): Build these nodes.
1732         (finish_vector_type): New function.
1733         * c-common.c (type_for_mode): Handle vector modes.
1734         * tm.texi (VECTOR_MODE_SUPPORTED_P): Document.
1735
1736         * dbxout.c (dbxout_type): Handle VECTOR_TYPEs.
1737         * dwarf.h (enum dwarf_fundamental_type): Add 128 bit integers.
1738         * dwarf2out.c (lookup_type_die): Handle VECTOR_TYPEs.
1739         (gen_type_die): Likewise.
1740         * dwarfout.c (dwarf_fund_type_name): Handle 128 bit integers.
1741         (fundamental_type_code): Likewise.
1742         (type_is_fundamental): VECTOR_TYPEs aren't.
1743         (output_type): Handle VECTOR_TYPEs.
1744
1745 2000-06-25  Kazu Hirata  <kazu@hxi.com>
1746
1747         * config/arm.c: Fix a comment typo.
1748         * config/arm.h: Likewise.
1749
1750 2000-06-25  Philipp Thomas  <pthomas@suse.de>
1751
1752         * aclocal.m4 (AM_WITH_NLS): Set create_catalogs=no if no catalog
1753         compiler found.
1754         AM_GNU_GETTEXT: Don't set CATALOGS if create_catalogs=no.
1755         * configure: Rebuilt.
1756
1757 2000-06-25  John David Anglin  <dave.anglin@nrc.ca>
1758
1759         * config/vax/vax.h (TARGET_SWITCHES): Provide descriptions.
1760
1761 2000-06-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1762
1763         * mklibgcc.in: Prefer LIB1ASMFUNCS over LIB2FUNCS when generating
1764         libgcc.a.
1765
1766 2000-06-24  Marc Espie <espie@cvs.openbsd.org>
1767
1768         * collect2.c (resolve_lib_name): Move '/' check out of loop.
1769
1770 2000-06-24  Dirk Duellmann  <Dirk.Duellmann@cern.ch>
1771
1772         * ginclude/stddef.h (NULL): define for non-gnu C++ parsers as 0.
1773
1774 2000-06-24  Jakub Jelinek  <jakub@redhat.com>
1775
1776         * stmt.c (expand_decl_cleanup): Emit a dummy insn after
1777         last_unconditional_cleanup.
1778
1779 2000-06-24  Bernd Schmidt  <bernds@cygnus.co.uk>
1780
1781         * tree.def (VECTOR_TYPE): New node type.
1782         * tree.h: Adjust some comments to reflect addition of vector types.
1783         (TYPE_VECTOR_SUBPARTS): New macro.
1784         * stor-layout.c (layout_type): Handle VECTOR_TYPE.
1785         * c-convert.c (convert): Likewise.
1786         * convert.c (convert_to_integer): Handle vector modes.
1787         (convert_to_vector): New function.
1788         * convert.h (convert_to_vector): Declare.
1789         * expr.c (convert_move): Handle vector modes.
1790         * expmed.c (extract_bit_field): Don't abort for vector modes.
1791
1792 2000-06-24  Marek Michalkiewicz  <marekm@linux.org.pl>
1793
1794         * config/avr/avr-protos.h (avr_hard_regno_mode_ok): New prototype.
1795         * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr):
1796         New functions, common code moved from function_{prologue,epilogue}
1797         and extended to support the -mtiny-stack option.
1798         (function_prologue, function_epilogue): Use them.
1799         Use lo8/hi8 consistently for asm output readability.
1800         (avr_hard_regno_mode_ok): New function.
1801         * config/avr/avr.h (TARGET_SWITCHES): Fix typo.  Add -mtiny-stack.
1802         (UNITS_PER_WORD): Define as 4 (not 1) when compiling libgcc2.c.
1803         (HARD_REGNO_MODE_OK): Call the avr_hard_regno_mode_ok function.
1804         * config/avr/avr.md (*mov_sp_r): Add support for -mtiny-stack.
1805         Write SPH before SPL.
1806         (*movqi): No need to disable interrupts for just one "out"
1807         in alternative 5.  Change length attribute from 4 to 1.
1808         * config/avr/libgcc.S (__prologue_saves__, __epilogue_restores__):
1809         Write SPH before SPL.
1810
1811 2000-06-24  Bernd Schmidt  <bernds@cygnus.co.uk>
1812
1813         * rtl.texi (Vector Operations): New node.
1814         (Arithmetic): Add ss_plus, us_plus, ss_minus, us_minus.
1815         (Conversions): Add ss_truncate, us_truncate.
1816         * rtl.def (VEC_MERGE, VEC_SELECT, VEC_CONCAT, VEC_REORDER,
1817         VEC_CONST, VEC_DUPLICATE, SS_PLUS, SS_MINUS, SS_TRUNCATE,
1818         US_TRUNCATE): New rtx codes.
1819         * machmode.def: Add vector modes.
1820         * machmode.h (enum mode_class): Add MODE_VECTOR_INT and
1821         MODE_VECTOR_FLOAT.
1822         (INTEGER_MODE_P): Check for MODE_VECTOR_INT.
1823         (FLOAT_MODE_P): Check for MODE_VECTOR_FLOAT.
1824         (VECTOR_MODE_P): New.
1825
1826 2000-06-24  Nathan Sidwell  <nathan@codesourcery.com>
1827
1828         * cpp.texi: Clarify #pragma GCC namespace.
1829
1830 2000-06-24  Philipp Thomas  <pthomas@suse.de>
1831
1832         * aclocal.m4(AM_GNU_GETTEXT): If LINGUAS isn't set, build
1833         all catalogs specified in ALL_LINGUAS.
1834         * configure: Rebuilt.
1835
1836 2000-06-23  Jakub Jelinek  <jakub@redhat.com>
1837
1838         * config/sparc/sparc.md (reload_outdi+1): Handle
1839         HOST_BITS_PER_WIDE_INT == 64 case correctly.
1840         (adddi3_insn_sp32+1, adddi3_insn_sp32+2, andsi3+2): Likewise.
1841
1842 2000-06-23  Geoffrey Keating  <geoffk@cygnus.com>
1843
1844         * alias.c (fixed_scalar_and_varying_struct_p): Don't examine
1845         struct vs. scalar-ness when -fno-strict-aliasing.
1846
1847 2000-06-23  Nathan Sidwell  <nathan@codesourcery.com>
1848
1849         * cpplib.c (struct pragma_entry): New structure.
1850         (pragma_dispatch): Pragma dispatcher.
1851         (top_pragmas, gcc_pragmas): New static variables.
1852         (do_pragma): Use pragma_dispatch.
1853         (do_pragma_gcc): New pragma handler.
1854         * cpp.texi: Update.
1855
1856 2000-06-23  Jakub Jelinek  <jakub@redhat.com>
1857
1858         * calls.c (compute_argument_addresses): Force stack slots into
1859         alias set 0.
1860         * expr.c (emit_push_insn): Force pushes into alias set 0.
1861
1862 2000-06-23  Richard Henderson  <rth@cygnus.com>
1863
1864         * config/ia64/ia64.md (pred_rel_mutex): Only take one register.
1865         * config/ia64/ia64.c (emit_predicate_relation_info): Adjust to match.
1866
1867 2000-06-22  Jason Merrill  <jason@redhat.com>
1868
1869         * toplev.c (compile_file): Always call timevar_print.
1870         * Makefile.in (calls.o): Depend on TIMEVAR_H.
1871
1872 2000-06-22  Nathan Sidwell  <nathan@codesourcery.com>
1873
1874         * varasm.c (constant_descriptor): Make contents unsigned char.
1875         (mark_const_hash_entry): Adjust.
1876         (const_hash): Just hash the code of unknown nodes.
1877         (compare_constant_1): Adjust for unsigned char.
1878         Use language specific expander on unknown nodes.
1879         (record_constant_1): Likewise.
1880
1881 2000-06-21  Zack Weinberg  <zack@wolery.cumb.org>
1882
1883         * cppfiles.c (cpp_make_system_header): New function.
1884         * cpplib.h: Prototype it.
1885         * cpplib.c (do_line, do_pragma_system_header): Use it.
1886         * fix-header.c (read_scan_file): Use it.
1887
1888         * fix-header.c (check_macro_names): Cast second arg of
1889         cpp_defined to const unsigned char *.
1890         (read_scan_file): Make getchar_call const unsigned char.
1891
1892 2000-06-21  Zack Weinberg  <zack@wolery.cumb.org>
1893
1894         * cppfiles.c: Include splay-tree.h, not hashtab.h.
1895         (redundant_include_p, make_IHASH, hash_IHASH, eq_IHASH): Delete.
1896         (destroy_include_file_node): New.
1897         (_cpp_init_include_hash): Rename _cpp_init_include_table.
1898         Create a splay tree, not a hash table.
1899         (open_include_file): Look up the path in the include table,
1900         do the multiple include optimization here, etc.
1901         (cpp_included): Walk the path.
1902         (find_include_file): Just walk the path calling
1903         open_include_file, or call it directly for an absolute path.
1904         (_cpp_fake_ihash): Rename _cpp_fake_include and update for new
1905         scheme.
1906         (read_include_file): Update for new scheme.  Don't close the
1907         file unless reading fails.
1908         (_cpp_execute_include, cpp_read_file): Tweak for new scheme.
1909
1910         * cpphash.h (struct ihash, NEVER_REINCLUDE): Delete.
1911         (struct include_file): New.
1912         (NEVER_REREAD, DO_NOT_REREAD, CPP_IN_SYSTEM_HEADER): New
1913         macros.
1914         (CPP_PEDANTIC, CPP_WTRADITIONAL): Update.
1915         Update prototypes.
1916
1917         * cppinit.c: Include splay-tree.h.
1918         (cpp_reader_init, cpp_cleanup): Update.
1919
1920         * cpplib.h (struct cpp_buffer): Change ihash field to
1921         'struct include_file *inc'.  Remove system_header_p.
1922         (struct cpp_reader): Change all_include_files to a
1923         struct splay_tree_s *.
1924
1925         * cpplex.c: Update all references to cpp_buffer->ihash and/or
1926         cpp_buffer->system_header_p.
1927         (cpp_pop_buffer): Close file here, only if DO_NOT_REREAD.
1928
1929         * Makefile.in (SPLAY_TREE_H): New macro.
1930         (cppfiles.o, cppinit.o): Update dependencies.
1931
1932 Wed Jun 21 11:05:48 2000  Martin Buchholz <martin@xemacs.org>
1933
1934         * invoke.texi (g++): "g++" is not a script anymore.
1935
1936 2000-06-20  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1937
1938         * function.c (round_down): Delete obsolete prototype.
1939
1940         * pa.h (CPP_SPEC): Add whitespace after -D__STDC_EXT__.
1941
1942 2000-06-20  Zack Weinberg  <zack@wolery.cumb.org>
1943
1944         * configure.in: Use 'test a = b' not 'test a == b'.
1945         * configure: Regen.
1946
1947         * Makefile.in (fix-header): Link with $(LIBS) not $(HOST_LIBS).
1948
1949         * Makefile.in: Remove all references to HOST_INTLLIBS.
1950
1951         * cpplex.c (parse_name): Don't warn about $ in identifiers if
1952         skipping.
1953
1954 2000-06-20  Philipp Thomas  <pthomas@suse.de>
1955
1956         * config/pa/pa.h(TARGET_SWITCHES): Require binutils 2.10 or later
1957         for PA 2.0.
1958
1959 Mon Jun 19 23:26:40 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1960
1961         * Take REG_INC notes into account.
1962
1963 2000-06-19  Zack Weinberg  <zack@wolery.cumb.org>
1964
1965         * c-parse.in (undeclared_variable_notice): Moved to c-typeck.c.
1966         (primary: IDENTIFIER): Just call build_external_ref.
1967         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
1968         Regenerate.
1969         * c-lex.c (lastiddecl): Remove.
1970         (yylex): Replace all instances of lastiddecl with local
1971         variables.
1972
1973         * c-typeck.c (build_external_ref): New function.  Treat decls
1974         with C_DECL_ANTICIPATED mostly the same as nonexistent decls.
1975         Look up the decl from the id here.  Call lookup_objc_ivar.
1976         * c-lang.c (lookup_objc_ivar): Stub.
1977         * objc/objc-act.c (lookup_objc_ivar): New function.
1978
1979         * c-tree.h: Prototype lookup_objc_ivar and build_external_ref.
1980         * c-lex.h: Don't declare lastiddecl.
1981
1982 2000-06-19  Benjamin Chelf  <chelf@codesourcery.com>
1983
1984         * c-common.h (IF_COND): Added documentation.
1985         (THEN_CLAUSE): Likewise.
1986         (ELSE_CLAUSE): Likewise.
1987         (WHILE_COND): Likewise.
1988         (WHILE_BODY): Likewise.
1989         (DO_COND): Likewise.
1990         (DO_BODY): Likewise.
1991         (RETURN_EXPR): Likewise.
1992         (EXPR_STMT_EXPR): Likewise.
1993         (FOR_INIT_STMT): Likewise.
1994         (FOR_COND): Likewise.
1995         (FOR_EXPR): Likewise.
1996         (FOR_BODY): Likewise.
1997         (SWITCH_COND): Likewise.
1998         (SWITCH_BODY): Likewise.
1999         (CASE_LOW): Likewise.
2000         (CASE_HIGH): Likewise.
2001         (GOTO_DESTINATION): Likewise.
2002         (COMPOUND_BODY): Likewise.
2003         (ASM_CV_QUAL): Likewise.
2004         (ASM_STRING): Likewise.
2005         (ASM_OUTPUTS): Likewise.
2006         (ASM_INPUTS): Likewise.
2007         (ASM_CLOBBERS): Likewise.
2008         (DECL_STMT_DECL): Likewise.
2009         (STMT_EXPR_STMT): Likewise.
2010         (LABEL_STMT_LABEL): Likewise.
2011
2012         * c-common.def: Added documenetion for SRCLOC, EXPR_STMT,
2013         COMPOUND_STMT, DECL_STMT, IF_STMT, FOR_STMT, WHILE_STMT, DO_STMT,
2014         RETURN_STMT, BREAK_STMT, CONTINUE_STMT, SWITCH_STMT, GOTO_STMT,
2015         LABEL_STMT, ASM_STMT, SCOPE_STMT, CASE_LABEL, STMT_EXPR.
2016
2017 2000-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2018
2019         * configure.in (--enable-checking): Update --help doc to reflect
2020         new defaults.  Ensure $ac_save_IFS is set before $IFS is changed.
2021
2022 Sun Jun 18 21:42:15 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2023
2024         * gcse.c (insert_insn_end_bb): Always put after NOTE_INSN_BASIC_BLOCK.
2025
2026         * function.c (put_var_into_stack): Don't reference DECL_ fields
2027         if input is a SAVE_EXPR.
2028         Use set_mem_attributes in COMPLEX case.
2029
2030 2000-06-18  Richard Henderson  <rth@cygnus.com>
2031
2032         * config/ia64/ia64-protos.h (process_for_unwind_directive): Declare.
2033         (ia64_file_start): Declare.
2034         * config/ia64/ia64.h (ADDL_REGNO_P): Don't compare unsigned against 0.
2035         (GR_REGNO_P): Likewise.
2036         * config/ia64/ia64.c: Many prototypes.
2037         (ia64_reg_numbers): Constify.
2038         (ia64_input_reg_names, ia64_local_reg_names): Likewise.
2039         (ia64_section_threshold): Make unsigned.
2040         (ia64_print_operand): Constify.
2041         (fix_range): Constify.
2042         (ia64_init_builtins): Don't compare signed vs unsigned.
2043         (ia64_expand_builtin): Likewise.
2044
2045         * config/ia64/ia64.h (EXTRA_CONSTRAINT): New.
2046         (CONSTRAINT_OK_FOR_Q): New.
2047         * config/ia64/ia64.md (movdi_internal): Use Q for fp<->mem.
2048         (movsf_internal, movdf_internal): Likewise.
2049         (cmovdi_internal): Rewrite so that constraints and predicates match;
2050         simplify splitters.
2051         (cmovsi_internal): Likewise.
2052
2053         * config/ia64/ia64.h (ASM_SPEC): Add -x for gas.
2054         (ASM_FILE_START): New.
2055         * config/ia64/ia64.c (ia64_file_start): New.
2056         (rtx_needs_barrier): Handle pred.rel.mutex.
2057         (emit_predicate_relation_info): New.
2058         * config/ia64/ia64.md (pred_rel_mutex): New.
2059         * config/ia64/linux.h (ASM_SPEC): Define.
2060         * config/ia64/sysv4.h (ASM_FILE_START): Define.
2061
2062         * config/ia64/ia64.c (ia64_encode_section_info): Fix thinko
2063         filtering global register variables.
2064
2065 2000-06-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2066
2067         * c-common.c (add_c_tree_codes): Fix definition for traditional C.
2068
2069 2000-06-17  Michael Meissner  <meissner@redhat.com>
2070
2071         * gcc.c (do_spec_1, '%v3' case): Do not abort if patch level is
2072         not present and there is a field after a '-'.
2073
2074 2000-06-17  Bruce Korb  <bkorb@gnu.org>
2075
2076         * fixinc/check.tpl:  finish the implementation of multiple tests
2077         for a single fix
2078         * fixinc/inclhack.def(ctrl_quotes_def): add a second test
2079         (io_quotes_def): add a second test
2080         (various): reorder `files' so that "limits.h" is never first
2081         * fixinc/tests/base/*: update the testing output
2082
2083 Sat Jun 17 10:33:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2084
2085         * gcc.texi: Remove reference to stupid.c.
2086
2087 2000-06-16  Benjamin Chelf  <chelf@codesourcery.com>
2088
2089         * c-common.c (c_tree_code_type): New array.
2090         (c_tree_code_length): Likewise.
2091         (c_tree_code_name): Likewise.
2092         (add_c_tree_codes): New function.
2093
2094         * c-common.h (add_c_tree_codes): Declare.
2095         (enum c_tree_code): New enum.
2096
2097         * c-lex.c (init_parse): Added call to add_c_tree_codes.
2098
2099 2000-06-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2100
2101         * fixinc/inclhack.def (ctrl_quotes_def, io_quotes_def): Modify
2102         select pattern to also match macro defs with only one argument.
2103
2104 Thu Jun 15 18:56:12 2000  Jeffrey A Law  (law@cygnus.com)
2105
2106         * i386.md: Create new [right,left] rotate and right shift
2107         patterns to optimize shift by 1 bit for certain ia32 processors.
2108         Update patterns which perform left shifts to optimize shift by
2109         1 bit for certain ia32 processors.
2110         * i386.c (const_int_1_operand): New predicate.
2111         * i386.h (PREDICATE_CODES): Handle const_int_1_operand.
2112         * i386-protos.h (const_int_1_operand): Prototype.
2113
2114 Wed Jun 14 23:46:26 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2115
2116         * mips.c (machine_dependent_reorg): Fix braces for nested if.
2117
2118 2000-06-14  Geoff Keating  <geoffk@cygnus.com>
2119
2120         * rs6000.c (toc_hash_eq): Use CODE_LABEL_NUMBER to compare
2121         LABEL_REFs.
2122
2123 2000-06-14  Richard Henderson  <rth@cygnus.com>
2124
2125         * conflict.c (conflict_graph_compute): Don't look for REG_INC.
2126
2127         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Don't emit
2128         auto-inc code.
2129
2130         * print-rtl.c (print_rtx): Emit space before mem alias set.
2131
2132 2000-06-14  David Edelsohn  <edelsohn@gnu.org>
2133
2134         * rs6000.c (expand_block_move): Fix typo in earlier change.
2135         (print_operand): Remove unused variables neg and op.
2136         (toc_hash_mark_entry): Fix prototype.
2137
2138 2000-06-14  Benjamin Chelf  <chelf@codesourcery.com>
2139
2140         * c-common.h (IF_COND): Moved here from cp/cp-tree.h.
2141         (THEN_CLAUSE): Likewise.
2142         (ELSE_CLAUSE): Likewise.
2143         (WHILE_COND): Likewise.
2144         (WHILE_BODY): Likewise.
2145         (DO_COND): Likewise.
2146         (DO_BODY): Likewise.
2147         (RETURN_EXPR): Likewise.
2148         (EXPR_STMT_EXPR): Likewise.
2149         (FOR_INIT_STMT): Likewise.
2150         (FOR_COND): Likewise.
2151         (FOR_EXPR): Likewise.
2152         (FOR_BODY): Likewise.
2153         (SWITCH_COND): Likewise.
2154         (SWITCH_BODY): Likewise.
2155         (CASE_LOW): Likewise.
2156         (CASE_HIGH): Likewise.
2157         (GOTO_DESTINATION): Likewise.
2158         (COMPOUND_BODY): Likewise.
2159         (ASM_CV_QUAL): Likewise.
2160         (ASM_STRING): Likewise.
2161         (ASM_OUTPUTS): Likewise.
2162         (ASM_INPUTS): Likewise.
2163         (ASM_CLOBBERS): Likewise.
2164         (DECL_STMT_DECL): Likewise.
2165         (STMT_EXPR_STMT): Likewise.
2166         (LABEL_STMT_LABEL): Likewise.
2167         (SCOPE_BEGIN_P): Likewise.
2168         (SCOPE_END_P): Likewise.
2169         (SCOPE_STMT_BLOCK): Likewise.
2170         (SCOPE_NULLIFIED_P): Likewise.
2171         (SCOPE_NO_CLEANUPS_P): Likewise.
2172         (SCOPE_PARTIAL_P): Likewise.
2173         (ASM_VOLATILE_P): Likewise.
2174         (STMT_LINENO): Likewise.
2175         (STMT_LINENO_FOR_FN_P): Likewise.
2176
2177         * c-common.def: New file. Added SRCLOC, SIZEOF_EXPR, ARROW_EXPR,
2178         ALIGNOF_EXPR, EXPR_STMT, COMPOUND_STMT, DECL_STMT, IF_STMT,
2179         FOR_STMT, WHILE_STMT, DO_STMT, RETURN_STMT, BREAK_STMT,
2180         CONTINUE_STMT, SWITCH_STMT, GOTO_STMT, LABEL_STMT, ASM_STMT,
2181         SCOPE_STMT, CASE_LABEL, STMT_EXPR.
2182
2183         * gencheck.c (tree_codes[]): Added '#include "c-common.def"'.
2184
2185 2000-06-14  David O'Brien  <obrien@FreeBSD.org>
2186
2187         * gcc.c (main): Quiet compiler warnings.  argv is assumed to be
2188         writable in parts of the GCC code.
2189
2190         * config/elfos.h (ASM_GENERATE_INTERNAL_LABEL): Make printf
2191         specification match cast.
2192
2193 Wed Jun 14 09:25:57 2000  Jeffrey A Law  (law@cygnus.com)
2194
2195         * configure.in: Revert AC_TYPE_GETGROUPS patch from June 13.
2196         * configure, config.in: Rebuilt.
2197         * sys-protos.h: Similarly.
2198
2199 Wed Jun 14 03:39:58 EDT 2000  John Wehle  (john@feith.com)
2200
2201         * ifcvt.c (EDGE_COMPLEX): Move definition ...
2202         * basic-block.h (EDGE_COMPLEX): ... here.
2203
2204         * loop.c (check_dbra_loop): Specify the register when
2205         generating REG_NONNEG notes and don't generate duplicates.
2206
2207 2000-06-13  Jakub Jelinek  <jakub@redhat.com>
2208
2209         * tree.h (TYPE_USER_ALIGN, DECL_USER_ALIGN): Define.
2210         (struct tree_type, struct tree_decl): Add user_align member.
2211         * stor-layout.c (layout_decl): Set DECL_USER_ALIGN.
2212         (place_union_field): If BIGGEST_FIELD_ALIGNMENT is defined
2213         and DECL_USER_ALIGN 0, cap alignment to this value.
2214         (place_field): Likewise.
2215         (finalize_type_size): Set TYPE_USER_ALIGN.
2216         (layout_type): Likewise.
2217         (initialize_sizetypes): Likewise.
2218         * c-common.c (decl_attributes): Set TYPE_USER_ALIGN resp.
2219         DECL_USER_ALIGN to 1.
2220         * c-decl.c (duplicate_decls): Set DECL_USER_ALIGN.
2221         (xfer_tag): Set TYPE_USER_ALIGN.
2222         (finish_struct): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN.
2223         (finish_enum): Likewise.
2224         * stmt.c (expand_decl): Set DECL_USER_ALIGN.
2225         (expand_anon_union_decl): Likewise.
2226         * tree.c (make_node): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN.
2227         (build_index_type): Set TYPE_USER_ALIGN.
2228         (build_range_type): Likewise.
2229         (build_common_tree_nodes_2): Likewise.
2230         * tm.texi (BIGGEST_FIELD_ALIGNMENT): Document the changed meaning.
2231
2232 2000-06-13  Andreas Jaeger  <aj@suse.de>
2233
2234         * configure.in: Use --enable-checking=misc,tree,gc by default if
2235         no --enable-checking option is given and for
2236         --enable-checking=yes.
2237         * configure: Rebuilt.
2238
2239 2000-06-13  Richard Henderson  <rth@cygnus.com>
2240
2241         * libgcc2.c (ia64_throw_helper): Use __builtin_return_address.
2242         (__throw): Don't pass the address of a label.
2243
2244         * config/ia64/ia64.c (ia64_compute_frame_size): Use
2245         current_function_is_leaf.
2246         (ia64_expand_prologue): Likewise.  Modify return_address_pointer_rtx
2247         instead of reg_names[RETURN_ADDRESS_REGNUM].
2248         (ia64_init_machine_status): Reset return_address_pointer_rtx.
2249         * config/ia64/ia64.h (RETURN_ADDRESS_POINTER_REGNUM): Rename
2250         from RETURN_ADDRESS_REGNUM.  Update all uses.
2251         (RETURN_ADDR_RTX): Use return_address_pointer_rtx; return
2252         zero instead of null on failure.
2253         (ELIMINABLE_REGS): Add ra->b0 elimination.
2254         (CAN_ELIMINATE): Update accordingly.
2255         (INITIAL_ELIMINATION_OFFSET): Likewise.
2256         (REGISTER_NAMES): Use an illegal assembler name for
2257         RETURN_ADDRESS_POINTER_REGNUM.
2258
2259 2000-06-13  Richard Henderson  <rth@cygnus.com>
2260
2261         * config/ia64/ia64.h (enum reg_class): Remove FR_INT_REGS, FR_FP_REGS,
2262         GR_AND_FR_INT_REGS, GR_AND_FR_FP_REGS.
2263         (REG_CLASS_NAMES): Likewise.
2264         (REG_CLASS_CONTENTS): Likewise.
2265         (FR_FP_REGNO_P, FR_INT_REGNO_P): Remove.
2266         (HARD_REGNO_MODE_OK): Remove references to them.
2267         (REGNO_REG_CLASS): Likewise.
2268         (REG_CLASS_FROM_LETTER): Likewise.
2269         (CLASS_MAX_NREGS): Likewise.
2270         (REGISTER_MOVE_COST): Likewise.
2271         * config/ia64/ia64.c (ia64_secondary_reload_class): Likewise.
2272         * config/ia64/ia64.md (*): Replace "e" constraints with "f".
2273         (movqi_internal): Special case moves from zero.
2274         (movhi_internal, movsi_internal): Likewise.
2275         (movdi_internal): Likewise.  Fill out "f" constraints.
2276         (movsf_internal): Fill out "r" constraints.
2277         (movdf_internal): Likewise.
2278
2279 2000-06-13  Richard Henderson  <rth@cygnus.com>
2280
2281         * flow.c (insn_dead_p): Keep sets to PIC_OFFSET_TABLE_REGNUM
2282         alive before reload.
2283
2284         * haifa-sched.c (struct deps): Add in_post_call_group_p.
2285         (add_dependence): Handle notes between SCHED_GROUP_P insns.
2286         (remove_dependence): Always define.
2287         (set_sched_group_p): New.
2288         (sched_analyze_2): Use it.
2289         (sched_analyze_insn): Don't special-case naked uses.  Look for
2290         and extend in_post_call_group_p.
2291         (sched_analyze): Clear stale SCHED_GROUP_P.  Set in_post_call_group_p.
2292         (init_deps): Clear in_post_call_group_p.
2293
2294 2000-06-13  Richard Henderson  <rth@cygnus.com>
2295
2296         * combine.c (subst): Use CLASS_CANNOT_CHANGE_MODE and
2297         CLASS_CANNOT_CHANGE_MODE_P instead of CLASS_CANNOT_CHANGE_SIZE
2298         and hard-coded tests.
2299         (simplify_set): Likewise.
2300         (gen_lowpart_for_combine): Likewise.
2301         * emit-rtl.c (gen_lowpart_common): Likewise.
2302         * global.c (find_reg): Likewise.
2303         * local-alloc.c (find_free_reg): Likewise.
2304         * recog.c (register_operand): Likewise.
2305         * regclass.c (init_reg_sets_1): Likewise.
2306         (record_operand_costs, regclass): Likewise.
2307         * reload.c (push_reload): Likewise.
2308         * reload1.c (choose_reload_regs): Likewise.
2309         * flow.c (mark_used_regs): Conditionally set REG_CHANGES_MODE.
2310         * local-alloc.c (struct qty): Rename changes_size to changes_mode.
2311         Update all references.
2312         * regs.h (struct reg_info_def): Likewise.
2313         (REG_CHANGES_MODE): Rename from REG_CHANGES_SIZE.
2314         * tm.texi (CLASS_CANNOT_CHANGE_MODE): Document.
2315         (CLASS_CANNOT_CHANGE_MODE_P): Likewise.
2316
2317         * config/alpha/alpha.h (CLASS_CANNOT_CHANGE_MODE): Rename.
2318         (CLASS_CANNOT_CHANGE_MODE_P): New.
2319         * config/mips/mips.h: Likewise.
2320         * config/pa/pa32-regs.h: Likewise.
2321         * config/pa/pa64-regs.h: Likewise.
2322         * config/rs6000/rs6000.h: Likewise.
2323         * config/sh/sh.h: Likewise.
2324         * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE): New.
2325         (CLASS_CANNOT_CHANGE_MODE_P): New.
2326         * config/avr/avr.h (CLASS_CANNOT_CHANGE_SIZE): Remove dead code.
2327         * config/d30v/d30v.h: Likewise.
2328
2329 2000-06-13  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2330
2331         * configure.in: Add AC_TYPE_GETGROUPS test.
2332         * sys-protos.h: Use GETGROUPS_T * for second arg of getgroups.
2333         * configure: Rebuilt.
2334         * config.in: Rebuilt.
2335
2336 2000-06-13  Richard Henderson  <rth@cygnus.com>
2337
2338         * explow.c (set_mem_attributes): Do nothing for NULL type.
2339
2340 Tue Jun 13 14:45:10 2000  Jeffrey A Law  (law@cygnus.com)
2341
2342         * config/m68k/openbsd.h (ASM_SPEC): pass down options to assembler
2343         correctly.
2344
2345 2000-06-13  James E. Wilson  <wilson@cygnus.com>
2346
2347         * config/ia64/ia64.md (movxf_internal): Add missing "e" to ldf/stf.
2348
2349 Tue Jun 13 14:05:35 2000  Jeffrey A Law  (law@cygnus.com)
2350
2351         * Makefile.in (gensupport.o): Remove bogus $(HOST_PREFIX) reference.
2352
2353 2000-06-13  Philipp Thomas  <pthomas@suse.de>
2354
2355         * configure.in(ALL_LINGUAS): Changed en_UK to en_GB.
2356         * configure: Rebuilt.
2357
2358 2000-06-07  David O'Brien  <obrien@FreeBSD.org>
2359
2360         * configure.in:  Adjust FreeBSD bits to match changes to config.guess.
2361         We now default to ELF for the i386, and a.out is the special case.
2362         * configure:  Rebuilt.
2363
2364 Tue Jun 13 10:05:30 2000  Hans-Peter Nilsson  <hp@axis.com>
2365
2366         * final.c (final_scan_insn): Delete notes between cc0 setter and
2367         user when restarting from setter.
2368
2369 2000-06-13  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2370
2371         * vax.h (INDEX_TERM_P): Define evaluation order of &&'s in || and
2372         cast to squelch signed/unsigned warnings.
2373
2374 2000-06-13  Zack Weinberg  <zack@wolery.cumb.org>
2375
2376         * cpplib.c (handle_directive): Print non-NUL-terminated string
2377         with %.*s.
2378
2379 2000-06-12  Michael Meissner  <meissner@redhat.com>
2380
2381         * ifcvt.c (dead_or_predicable): Don't do conditional execution
2382         path if the machine needs extra support to do conditional
2383         execution.
2384
2385 Mon Jun 12 17:04:17 2000  Jeffrey A Law  (law@cygnus.com)
2386
2387         * print-rtl.c (print_rtx, case MEM): Use HOST_WIDE_INT_PRINT_DEC
2388         to print the alias set.
2389         * print-tree.c (print_node, DECL_* nodes and case 't'): Similarly.
2390
2391 2000-06-12  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2392
2393         * config/float-vax.h: Add GFLOAT defines.
2394
2395 Mon Jun  12  9:44:00 2000  Mark Klein  <mklein@dis.com>
2396
2397         * configure.in: Update tm dependencies for MPE.
2398         * configure: Rebuilt.
2399
2400 2000-06-12  H.J. Lu  <hjl@gnu.org>
2401
2402         * gengenrtl.c (obstack_alloc_rtx): Correct the allocated size.
2403
2404 2000-06-12  David Edelsohn  <edelsohn@gnu.org>
2405
2406         * aix41.h (SUBTARGET_SWITCHES): Delete threads.
2407         (CPP_SPEC): Change mthreads to pthread.
2408         (LIB_SPEC): Likewise.
2409         (STARTFILE_SPEC): Likewise.
2410         * aix43.h (SUBTARGET_SWITCHES): Delete threads.
2411         (CPP_SPEC): Change mthreads to pthread.
2412         (LIB_SPEC): Likewise.
2413         (STARTFILE_SPEC): Likewise.
2414         * rs6000-protos.h (reg_or_arith_cint_operand): New.
2415         * rs6000.c (reg_or_arith_cint_operand): New.
2416         (num_insns_constant_wide): Decorate unsigned constant.
2417         * rs6000.h (PREDICATE_CODES): Add reg_or_arith_cint_operand.
2418         * rs6000.md (addsi3): Use new predicate.
2419         (subsi3, adddi3, subdi3): Likewise.
2420
2421 2000-06-12  Mark Mitchell  <mark@codesourcery.com>
2422
2423         * c-common.c (lang_get_alias_set): Fix typo.
2424
2425 2000-06-12  Richard Earnshaw <rearnsha@arm.com>
2426
2427         * flow.c (mark_used_regs): Revert last change.
2428         (life_analysis): Remove PROP_AUTOINC if running after reload.
2429         (propagate_one_insn): PROP_AUTOINC is always off after reload.
2430
2431 2000-06-11  Richard Earnshaw <rearnsha@arm.com>
2432
2433         * flow.c (mark_used_regs): Don't call find_auto_inc after reload
2434         has run.
2435
2436 2000-06-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2437
2438         * bb-reorder.c (build_scope_forest): Initialize variable
2439         `curr_scope'.
2440
2441         * calls.c (expand_call): Likewise for variables
2442         `save_pending_stack_adjust' and `save_stack_pointer_delta'.
2443
2444         * i386.c (function_arg_advance, function_arg): Cast to avoid
2445         signed/unsigned warnings.
2446
2447         * i386.h (MEMORY_MOVE_COST): Likewise.
2448
2449         * ifcvt.c (cond_exec_process_if_block): Initialize variables
2450         `else_start' and `else_end'.
2451
2452         * libgcc2.h (__eh_alloc, __eh_free): Prototype.
2453
2454         * regrename.c (rr_replace_reg): Initialize variable `dest_subregno'.
2455
2456 2000-06-10  Mark Mitchell  <mark@codesourcery.com>
2457
2458         * Makefile.in (libintl.a): Depend on intl.all.
2459
2460 2000-06-09  H.J. Lu  (hjl@gnu.org)
2461
2462         * Makefile.in (c-parse.o): Also depend on output.h.
2463
2464 2000-06-09  Rodney Brown  <RodneyBrown@mynd.com>
2465
2466         * mcore-protos.h: discards const warning removal.
2467         * mcore.c: discards const warning removal.
2468
2469 2000-06-09  Kazu Hirata  <kazu@hxi.com>
2470
2471         * config/h8300/lib1funcs.asm: Declare the machine architecture at
2472         the beginning of the file.
2473
2474 2000-06-09  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2475
2476         * real.h:  Add prototype for ldexp.
2477
2478 2000-06-09  Zack Weinberg  <zack@wolery.cumb.org>
2479
2480         * ggc-none.c, ggc-simple.c, ggc-page.c (ggc_alloc_obj): Rename
2481         it ggc_alloc, drop second argument, never clear returned memory.
2482         * ggc-common.c (ggc_alloc_string): Use ggc_alloc.
2483         (ggc_alloc_cleared): New.
2484         * ggc.h: Prototype ggc_alloc and ggc_alloc_cleared, not
2485         ggc_alloc_obj.  Remove ggc_alloc macro.
2486         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Use ggc_alloc.
2487
2488         * rtl.c (rtvec_alloc): Clear the vector always.
2489         (rtx_alloc): Clear the first word always.  Remove dirty
2490         obstack tricks (this routine is no longer a bottleneck).
2491         * tree.c (make_node): Clear the new node always.
2492         (make_tree_vec): Likewise.
2493         (tree_cons): Clear the common structure always.
2494         (build1): Likewise; also, clear TREE_COMPLEXITY.
2495         * gengenrtl.c: Use puts wherever possible.  Remove extra
2496         newlines.
2497         (gendef): Clear the first word of an RTX in the generator
2498         function, irrespective of ggc_p.  Initialize '0' slots to
2499         NULL.
2500         (genlegend): Don't generate obstack_alloc_rtx routine, just a
2501         thin wrapper macro around obstack_alloc.
2502
2503         * stmt.c (expand_fixup): Use ggc_alloc.
2504         * c-typeck.c (add_pending_init): Use ggc_alloc.
2505         * emit-rtl.c (init_emit_once): Clear CONST_DOUBLE_CHAIN(tem).
2506         * varasm.c (immed_double_const): Set CONST_DOUBLE_MEM(r) to
2507         const0_rtx when it is created.
2508         (immed_real_const_1): Set CONST_DOUBLE_CHAIN(r) to NULL_RTX if
2509         we are not in a function.
2510
2511         * tree.c (tree_class_check_failed): Make second arg an int.
2512         * tree.h: Update prototype.
2513
2514 2000-06-09  Geoff Keating  <geoffk@cygnus.com>
2515
2516         * tree.h (VOID_TYPE_P): Don't look at the TYPE_MAIN_VARIANT
2517         of an error_mark_node.
2518
2519 Fri Jun  9 20:35:13 2000  Denis Chertykov  <denisc@overta.ru>
2520
2521         * config/avr/avr.c (asm_output_section_name): bugfix.
2522
2523 2000-06-09  Jason Merrill  <jason@casey.soma.redhat.com>
2524
2525         * timevar.def: Add TV_EXPAND.
2526         * timevar.c (timevar_print): Update timing information.
2527         * calls.c (try_to_integrate): Push to TV_INTEGRATION for inlining.
2528
2529         * stmt.c (expand_return): Check for error_mark_node.
2530
2531 2000-06-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2532
2533         * configure.in: Also avoid wrapping auto-build.h with IN_GCC.
2534
2535         * scan-types.sh (VALUE) Wrap use with double quotes to protect
2536         variable against filename expansion when it contains "char *".
2537
2538         * system.h (SSIZE_MAX): Delete backup definition.
2539
2540         * cppfiles.c (read_include_file): Use INTTYPE_MAXIMUM(ssize_t)
2541         instead of SSIZE_MAX.
2542
2543 2000-06-09  Jakub Jelinek  <jakub@redhat.com>
2544
2545         * configure.in: Check whether gas supports -relax.
2546         * configure, config.in: Rebuilt.
2547         * config/sparc/sparc.h (ASM_RELAX_SPEC): Define.
2548         (EXTRA_SPECS): Add asm_relax.
2549         (ASM_SPEC): Add %(asm_relax).
2550         (TARGET_SWITCHES): Add -mrelax and -mno-relax.
2551         * config/sparc/linux64.h (LINK_ARCH_SPEC): Rename to LINK_SPEC.
2552         (LINK_SPEC): Pass -relax to linker unless -mno-relax or -r.
2553         (ASM_SPEC): Add %(asm_relax).
2554         * config/sparc/linux.h (LINK_SPEC, ASM_SPEC): Likewise.
2555         * config/sparc/sparc.c (output_sibcall): If HAVE_AS_RELAX_OPTION,
2556         never use sethi/jmpl for leaf tail calls.  Use or with rs2 %g0
2557         instead of mov, so that gas can further optimize it.
2558
2559 2000-06-08  James E. Wilson  <wilson@bletchleypark.cygnus.com>
2560
2561         * dwarf2out.c (size_of_die, case dw_val_class_const): Use
2562         size_of_sleb128.
2563         (value_format, case dw_val_class_const): Use sdata format.
2564         (output_die): Call output_sleb128.
2565
2566 2000-06-08  James E. Wilson  <wilson@cygnus.com>
2567
2568         * dwarf2out.c (ASM_OUTPUT_DWARF_DATA8): Add new macro that uses
2569         UNALIGNED_DOUBLE_INT_ASM_OP.  Rename old macro to
2570         ASM_OUTPUT_DWARF_CONST_DOUBLE.
2571         (output_die, case dw_val_class_unsigned_const): Correct call to
2572         ASM_OUTPUT_DWARF_DATA8.
2573         (output_die, case dw_val_class_long_long): Use
2574         ASM_OUTPUT_DWARF_CONST_DOUBLE.
2575         * tree.c (host_integerp): Accept unsigned HOST_WIDE_INT values when
2576         pos is zero.
2577
2578         * config/ia64/ia64-protos.h (ia64_output_end_prologue): Add.
2579         (output_function_prologue): Fix mispelling.
2580         (output_function_prologue, output_function_epilogue): Reorder to
2581         match ia64.c definition order.
2582         * config/ia64/ia64.c (ia64_expand_prologue): Add comment.
2583         (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on stack restore insns.
2584         Use r3 instead of r2 for large stack restores.
2585         (ia64_output_end_prologue): New function.
2586         (process_set): Emit ".restore sp" for epilogue stack restores.
2587         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE): Define.
2588
2589 2000-06-08  Jakub Jelinek  <jakub@redhat.com>
2590
2591         * dbxout.c (dbxout_type_fields): Don't segfault on fields with
2592         incomplete types.
2593
2594 2000-06-08  Nathan Sidwell  <nathan@codesourcery.com>
2595
2596         * frame.c (end_fde_sort): Remove extraneous erratic array test.
2597
2598 2000-06-08  Denis Perchine <dyp@perchine.com>
2599
2600         * frame.c (start_fde_sort): Don't malloc (0).
2601
2602 2000-06-07  Zack Weinberg  <zack@wolery.cumb.org>
2603
2604         * c-decl.c (pushdecl): Do not call COMPLETE_TYPE_P on
2605         error_mark_node.
2606         * print-tree.c (print_node): The transparent_union_flag means
2607         different things for unions and arrays.  Do not inspect it
2608         with TYPE_TRANSPARENT_UNION.
2609
2610 2000-06-06  Jakub Jelinek  <jakub@redhat.com>
2611
2612         * cpplib.c (do_ifdef, do_ifndef): Don't segfault if parse_ifdef
2613         returned NULL.
2614
2615 Wed Jun  7 20:34:33 2000  Denis Chertykov  <denisc@overta.ru>
2616
2617         * config/avr/avr.c (asm_output_section_name): output section
2618         attributes.
2619         * config/avr/libgcc.S (.text.libgcc): declare section attributes.
2620
2621 2000-06-06  James E. Wilson  <wilson@cygnus.com>
2622
2623         * frame.h (struct unwind_info_ptr): Collapse version, flags, and length
2624         fields into header field.
2625         (IA64_UNW_HDR_LENGTH, IA64_UNW_HDR_FLAGS, IA64_UNW_HDR_VERSION): New
2626         macros to access length, flags, and version info from header field.
2627         * config/ia64/crtbegin.asm (__do_frame_setup_aux): Delete here.
2628         * config/ia64/crtend.asm (__do_frame_setup_aux): Add here.
2629         (__do_global_ctors_aux): Fix caller.
2630         * config/ia64/frame-ia64.c (get_unwind_record): Change parameter
2631         prologue_flag to header.  Pass to read_P_record.
2632         (read_P_record): New argument header.  Implement P4 format.
2633         Multiply P7_T_SIZE by 16.
2634         (execute_one_ia64_descriptor): New static local region_header.  Pass to
2635         get_unwind_record.  Copy r to region_header if r is a header record.
2636         (print_all_records): Likewise.
2637         (__build_ia64_frame_state): Use IA64_UNW_HDR_LENGTH.
2638         (__get_personality, __get_except_table): Likewise.
2639         * config/ia64/ia64.c (process_set): Do not divide offsets by 4.
2640
2641 2000-06-06  Philipp Thomas  <pthomas@suse.de>
2642
2643         * configure.in (AC_C_INLINE): Added.
2644         * aclocal.m4 (AM_WITH_NLS): Enable --with-included-gettext by default.
2645         * configure: Regenerate.
2646
2647 2000-06-06  Mark Mitchell  <mark@codesourcery.com>
2648
2649         * c-common.h (c_language_kind): New type.
2650         (c_language): New variab.e
2651         * c-common.c (lang_get_alias_set): Don't put structures in
2652         non-zero alias sets in C++.
2653         * c-decl.c (c_language): Define it.
2654         * c-lex.c (doing_objc_thang): Remove.
2655         * c-tree.h (doing_objc_thang): Make it a macro.
2656         * objc/objc-act.c (lang_decode_option): Set c_language, not
2657         doing_objc_thang.
2658
2659 2000-06-06  Gabriel Dos Reis  <gdr@codesourcery.com>
2660
2661         * diagnostic.c (output_maximum_width): Remove.
2662         (doing_line_wrapping): Tweak.
2663         (diagnostic_buffer): New object.
2664         (global_output_buffer): New object.
2665         (output_destroy_prefix): New function.
2666         (default_initialize_buffer): Likewise.
2667         (reshape_diagnostic_buffer): Likewise.
2668         (initialize_diagnostics): Likewise.
2669         (output_clear): Tweak.
2670         (line_wrapper_printf): Adjust call to init_output_buffer.
2671         (vline_wrapper_message_with_location): Likewise.  Use
2672         output_destroy_prefix.
2673         (v_message_with_decl): Likewise.
2674
2675         * diagnostic.h (struct output_buffer): Constify prefix.
2676         (init_output_buffer, output_get_prefix): Constify.
2677         (diagnostic_message_length_per_line): Likewise.
2678         (reshape_diagnostic_buffer): Declare.
2679         (default_initialize_buffer): Declare.
2680         (initialize_diagnostics): Declare.
2681         (diagnostic_buffer): Declare new obbject.
2682
2683         * toplev.c: #include diagnostic.h
2684         (display_help): Document diagnostic formatting options.
2685         (decode_f_option): Handle diagnostic formatting options.
2686         (main): Setup initialization for diagnostic messages outputter.
2687
2688         * toplev.h (set_message_length): Remove.
2689
2690         * Makefile.in (toplev.o): Depends upon diagnostic.h
2691
2692         * invoke.texi : Document diagnostics formatting options.
2693
2694 Tue Jun  6 19:25:32 2000  Philippe De Muyter  <phdm@macqel.be>
2695
2696         * configure.in (Make the links): Typo fix : the file that must be
2697         included without #ifdef IN_GCC is `auto-host.h', not `auto-config.h'.
2698         * configure: File rebuilt.
2699
2700 2000-06-06  Nathan Sidwell  <nathan@codesourcery.com>
2701
2702         * eh-common.h (EH_ALLOC_SIZE, EH_ALLOC_ALIGN): New #defines.
2703         (eh_context): Add alloc_mask and alloc_buffer emergency fallback
2704         space.
2705         * libgcc2.c (__eh_alloc): Moved from cp/exception.cc. Fallback on
2706         emergency eh_context buffer, if malloc fails.
2707         (__eh_free): Moved from cp/exception.cc. Release to emergency
2708         eh_context buffer, if appropriate.
2709
2710 2000-06-06  Jason Merrill  <jason@casey.soma.redhat.com>
2711
2712         * expr.c (store_expr): Fix typo.
2713
2714 2000-06-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2715
2716         * m68k.c (legitimize_pic_address): Move prototype ...
2717
2718         * m68k-protos.h (legitimize_pic_address): ... here.
2719
2720         * m68k.md (legitimize_pic_address): Delete prototypes.
2721         (untyped_call): Invoke GEN_CALL(), not gen_call().
2722
2723         * nextstep.c: Include system.h and toplev.h.
2724         (get_directive_line): Don't prototype.
2725         (handle_pragma): Mark parameters with ATTRIBUTE_UNUSED and constify.
2726
2727         * nextstep.h (handle_pragma): Prototype.
2728         (SECTION_FUNCTION): Prototype FUNCTION().  Move prototype of
2729         objc_section_init ...
2730         (EXTRA_SECTION_FUNCTIONS): ... here.
2731
2732 Tue Jun  6 08:17:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2733
2734         * sdbout.c (struct sdb_file): NAME now const.
2735         (sdbout_init): input_file_name now const.
2736         (sdbout_start_new_source_file): FILENAME now const.
2737         * sdbout.c (sdbout_init, sdbout_start_new_source_file): Reflect above.
2738
2739 2000-06-06  Gabriel Dos Reis  <gdr@codesourcery.com>
2740
2741         * c-typeck.c (build_conditional_expr): Handle complex data types.
2742
2743 2000-06-05  Jason Merrill  <jason@casey.soma.redhat.com>
2744
2745         * explow.c (maybe_set_unchanging): New function, broken out from...
2746         (set_mem_attributes): Here.
2747         * expr.h: Declare it.
2748         * stmt.c (expand_decl): Call it.
2749
2750 2000-06-05  Richard Henderson  <rth@cygnus.com>
2751
2752         * reload1.c (choose_reload_regs): Mind CLASS_CANNOT_CHANGE_SIZE
2753         while looking for a register to inherit from.
2754
2755 2000-06-05  Jason Merrill  <jason@casey.soma.redhat.com>
2756
2757         * Makefile.in (libgcc.ready): Lose.
2758         (libgcc.mk): Just use mv, not move-if-change.
2759         (LIBGCC_DEPS): New macro.
2760         (libgcc.a): Use it.
2761         (stmp-multilib): Likewise.
2762         * mklibgcc.in (stmp-dirs): New target.  Make everything depend on
2763         it rather than the directories themselves.
2764         (LIB2ADD): Depend on the list file rather than 'force'.
2765
2766         * fold-const.c (fold, case COND_EXPR): Elide conversion between
2767         cv-qualified versions of types.
2768
2769 Mon Jun  5 14:06:18 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2770
2771         * config/sparc/sparc.c (short_branch): Correct error in range
2772         computation.
2773
2774 2000-06-05  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2775
2776         * fixinc/inclhack.def: New include hacks for ultrix.
2777         * (nested_ultrix): Replaced by ultrix_nested_svc.
2778         * (ultrix_atof_param): test_text string added.
2779         * (ultrix_ifdef): Modified select string.
2780
2781 2000-06-05  Zack Weinberg  <zack@wolery.cumb.org>
2782
2783         * objc/objc-act.c (generate_method_descriptors): Register
2784         objc_method_prototype_template as a GC root.
2785         (comp_method_with_proto): Register function_type as a GC root.
2786         (comp_proto_with_proto): Replace function_type1 and
2787         function_type2 with a two-element array; register it as a GC root.
2788
2789         (generate_protocols, build_protocol_initializer,
2790         generate_protocol_list, build_category_initializer,
2791         build_shared_structure_initializer): Do not cache cast_type
2792         and/or cast_type2.
2793
2794 2000-06-05  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2795
2796         * function.c (assign_parms): Add missing argument to set_mem_attributes
2797         call.
2798
2799 2000-06-05  Nathan Sidwell  <nathan@codesourcery.com>
2800
2801         * tree.h (VOID_TYPE_P): New macro.
2802         (COMPLETE_OR_VOID_TYPE_P): Use VOID_TYPE_P.
2803         * c-decl.c (grokdeclarator): Use VOID_TYPE_P.
2804         (get_parm_info): Likewise.
2805         (store_parm_decls): Likewise.
2806         (combine_parm_decls): Likewise.
2807         (finish_function): Likewise.
2808         * c-typeck.c (build_function_call): Likewise.
2809         (build_binary_op): Likewise.
2810         (build_conditional_expr): Likewise.
2811         (internal_build_compound_expr): Likewise.
2812         (convert_for_assignment): Likewise.
2813         * stmt.c (expend_expr_stmt): Likewise.
2814         (warn_if_unused_value): Likewise.
2815         (expand_return): Likewise.
2816         * c-parse.in (primary): Likewise.
2817         * c-parse.y, c-parse.c, c-parse.h: Regenerate.
2818         * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
2819
2820 Mon Jun  5 06:46:28 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2821
2822         * alias.c (get_alias_set): If compnent is addressable, use alias
2823         set of component.
2824         * c-decl.c (init_decl_processing): Don't call record_component_aliases.
2825         (grokdeclarator): Likewise.
2826         * c-typeck.c (common_type): Likewise.
2827
2828 2000-06-04  Alex Samuel  <samuel@codesourcery.com>
2829
2830         * Makefile.in (OBJS): Remove dyn_string.o
2831         (dyn-string.o): Delete rule.
2832         * dyn-string.c: Delete file
2833         * dyn-string.h: Likewise.
2834
2835 2000-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2836
2837         * Makefile.in (intl.*): Honor non-zero exit codes in the intl
2838         subdir.
2839
2840 2000-06-03  Geoff Keating  <geoffk@cygnus.com>
2841
2842         * alias.c (record_component_aliases): Don't inspect
2843         DECL_NONADDRESSABLE_P of non-FIELD_DECL components of structures.
2844
2845 Sat Jun  3 19:05:30 2000  Michael Meissner  <meissner@redhat.com>
2846
2847         * ifcvt.c (process_insns): If IFCVT_MODIFY_INSN is defined, call
2848         it with the pattern to do machine dependent work.
2849         (cond_exec_process_if_block): If IFCVT_MODIFY_TESTS is defined,
2850         use it to modify the true/false tests used in conditional
2851         execution.  If IFCVT_MODIFY_FINAL and IFCVT_MODIFY_CANCEL are
2852         defined, invoke them if the conversion to conditional execution
2853         was successful or not.
2854
2855         * tm.texi (IFCVT_MODIFY_TESTS): Document.
2856         (IFCVT_MODIFY_INSN): Ditto.
2857         (IFCVT_MODIFY_FINAL): Ditto.
2858         (IFCVT_MODIFY_CANCEL): Ditto.
2859
2860 Sat Jun  3 15:26:13 2000  Matt Kraai <kraai@alumni.carnegiemellon.edu>
2861
2862         * toplev.c (main): Fix misspellings of possibility and language.
2863
2864 2000-06-03  Richard Henderson  <rth@cygnus.com>
2865
2866         * alias.c (record_alias_subset): Initialize has_zero_child in the
2867         superset.
2868
2869 2000-06-03  Richard Earnshaw (rearnsha@arm.com)
2870
2871         * arm.md (untyped_call): Use GEN_CALL macro.
2872
2873 2000-06-02  Pekka Nikander  <pnr@teldanex.tcm.hut.fi>
2874
2875         * Makefile.in: Use $(MAKE) not "make"
2876
2877 Fri Jun  2 19:31:03 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2878
2879         * alias.c (struct alias_set_entry): New field has_zero_child.
2880         (mem_in_disjoint_alias_sets_p): Return 0 if set in either ase.
2881         (get_alias_set): If language-dependent routine set TYPE_ALIAS_SET,
2882         do nothing.
2883         Call record_component_aliases for aggregate types.
2884         (record_alias_subset): Set has_zero_child.
2885         (record_component_aliases, case ARRAY_TYPE): Do nothing if
2886         TYPE_NONALIASES_COMPONENT.
2887         (record_component_aliases, case RECORD_TYPE): Test
2888         DECL_NONADDRESSABLE_P.
2889         * c-decl.c (grokdeclarator): Set DECL_NONADDRESSABLE_P instead
2890         of TREE_ADDRESSABLE.
2891         * calls.c (initialize_argument_information): Only test
2892         TYPE_TRANSPARENT_UNION for UNION_TYPE.
2893         * function.c (assign_parms): Likewise.
2894         * integrate.c (function_cannot_inline_p): Likewise.
2895         * stor-layout.c (finish_record_layout): Don't call
2896         record_component_aliases.
2897         * tree.h (struct tree_int_cst): Use struct tree_common.
2898         (struct tree_real_cst, struct tree_string): Likewise.
2899         (struct tree_complex, struct tree_identifier): Likewise.
2900         (struct tree_list, struct tree_vec, struct tree_exp): Likewise.
2901         (struct tree_block, struct tree_type, struct tree_decl): Likewise.
2902         (TYPE_TRANSPARENT_UNION): Use UNION_TYPE_CHECK.
2903         (TYPE_NONALIASES_COMPONENT): New macro.
2904         (TYPE_AMBIENT_BOUNDEDNESS): Use FUNCTION_TYPE_CHECK.
2905         (DECL_NONADDRESSABLE_P): New macro.
2906         (struct tree_decl): Reorder bits for clarity of how many left;
2907         add non_adressable.
2908
2909 2000-06-02  Jason Merrill  <jason@casey.soma.redhat.com>
2910
2911         * Makefile.in (libgcc.a): Also depend on $(LIB2ADD).
2912         * mklibgcc.in (force): New target.
2913         Make LIB2ADD stuff depend on it.
2914
2915 2000-06-02  Richard Henderson  <rth@cygnus.com>
2916
2917         * alias.c (lang_get_alias_set): Remove.
2918         (get_alias_set): Call it directly, not indirectly.
2919         * c-common.c (lang_get_alias_set): Rename from c_get_alias_set.
2920         * c-common.h (c_get_alias_set): Don't declare.
2921         * c-decl.c (init_decl_processing): Don't set lang_get_alias_set.
2922         * expr.h (lang_get_alias_set): Declare as function, not pointer.
2923
2924 2000-06-02  Bruce Korb  <bkorb@gnu.org>
2925
2926         * fixinc/server.c(sig_handler):  resume closing server on SIGPIPE
2927         (server_setup):  define the server's master pid
2928         (close_server):  actually do the deed IFF we are the server's master
2929
2930 2000-06-02  Jakub Jelinek  <jakub@redhat.com>
2931
2932         * c-common.c (c_get_alias_set): Check whether signed_type did not
2933         return its argument before calling get_alias_set on the result.
2934
2935 2000-06-02  Andrew MacLeod  <amacleod@cygnus.com>
2936
2937         * expr.c (emit_group_load): Fix typo, GET_MODE not GET_CODE.
2938
2939 Fri Jun  2 00:22:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2940
2941         * sh.h (CPP_SPEC): Add -D__NOMACSAVE__ for -mnomacsave.
2942         (CONDITIONAL_REGISTER_USAGE): Mac registers are call used
2943         for TARGET_NOMACSAVE.
2944         (NOMACSAVE_BIT): Define.
2945         (TARGET_NOMACSAVE): Define.
2946         (TARGET_SWITCHES): Add "nomacsave".
2947
2948 2000-06-02  Toshiyasu Morita  <toshi.morita@sega.com>
2949
2950         * sh.md (untyped_call): Remove excess parameters
2951
2952 2000-06-01  Loren J. Rittle  <ljrittle@acm.org>
2953
2954         * fixinc/inclhack.def (osf_namespace_a): Relax expression to
2955         match that used before the conversion to c_fix style.
2956         * fixinc/fixincl.x: regenerate
2957
2958 2000-06-01  Stan Cox  <scox@cygnus.com>
2959
2960         * varray.h (VARRAY_PUSH_GENERIC_PTR, VARRAY_PUSH_CHAR_PTR): Fix
2961         macro argument typo.
2962
2963 2000-06-01  Zack Weinberg  <zack@wolery.cumb.org>
2964
2965         * cpplex.c (maybe_macroexpand): Use CPP_WTRADITIONAL.  Improve
2966         error message.
2967         * cpplib.c (parse_include): Remove support for VAX-C
2968         "#include starlet" misfeature.
2969
2970 2000-05-31 Laurynas Biveinis <lauras@softhome.net>
2971
2972         * cppfiles.c: conditionally define O_BINARY.
2973         (open_include_file): pass O_BINARY to open().
2974
2975 2000-06-01  Richard Henderson  <rth@cygnus.com>
2976
2977         * i960.c (i960_br_predict_opcode): Remove.
2978         (i960_print_operand) [+]: Emit branch prediction hints.
2979         (i960_function_arg): Return early for VOIDmode.
2980         (i960_round_align): Return early for incomplete types.
2981         * i960.h (PRINT_OPERAND_PUNCT_VALID_P): New.
2982         * i960.md (all conditional branches): Add "%+".
2983
2984 Thu Jun  1 12:24:21 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2985
2986         * alias.c (get_alias_set): Don't call language-specific routine more
2987         than is needed and clean up code a bit.
2988         * c-common.c (c_get_alias_set): All references whose type
2989         is char get alias set 0, but character types need not.
2990         * varasm.c (make_function_rtl): Don't call set_mem_attributes.
2991         (make_decl_rtl): Don't call it for FUNCTION_DECL.
2992
2993 2000-06-01  Bruce Korb  <bkorb@gnu.org>
2994
2995         * fixinc/tests/base/...: new base result files
2996
2997 Thu Jun  1 09:37:35 2000  Clinton Popetz  <cpopetz@cygnus.com>
2998
2999         * config/i386/i386.c (ix86_use_fcomi_compare): Make global.
3000         * config/i386/i386-protos.h (ix86_use_fcomi_compare): Declare.
3001         * config/i386/i386.md (*fp_jcc_3, *fp_jcc_4): Disable if we
3002         will use FCOMI.
3003
3004 2000-06-01  Richard Henderson  <rth@cygnus.com>
3005
3006         * Makefile.in (c-decl.o): Depend on $(EXPR_H), not expr.h.
3007
3008         * c-decl.c (init_decl_processing): Set lang_get_alias_set first thing.
3009
3010 2000-05-31  Richard Henderson  <rth@cygnus.com>
3011
3012         * config/ia64/ia64.c (sdata_symbolic_operand): Consider small
3013         CONSTANT_POOL_ADDRESS_P addresses for .sdata.
3014         * config/ia64/sysv4.h (SELECT_RTX_SECTION): New.
3015
3016 2000-05-31  Richard Henderson  <rth@cygnus.com>
3017
3018         * config/ia64/ia64-protos.h (ia64_expand_prediction): Remove.
3019         * config/ia64/ia64.c (ia64_expand_prediction): Move code ...
3020         (ia64_print_operand) [+]: ... here.  Use current_output_insn.
3021         * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): New.
3022         * config/ia64/ia64.md (all branch/call patterns): Use %+.
3023
3024 2000-05-31  Richard Henderson  <rth@cygnus.com>
3025
3026         * ifcvt.c (cond_exec_process_insns): Don't ever ignore clobbers.
3027
3028 2000-05-31  Richard Henderson  <rth@cygnus.com>
3029
3030         * ifcvt.c (merge_if_block): Be prepared for JOIN to have no
3031         remaining edges.
3032         (find_if_block): Allow THEN with no outgoing edges.
3033         * flow.c (merge_blocks_nomove): Remove a barrier not following
3034         a jump as well.
3035
3036 2000-05-31  Richard Henderson  <rth@cygnus.com>
3037
3038         * flow.c (propagate_block): Move initialization of mem_set_list ...
3039         (init_propagate_block_info): ... here.  Also track blocks with
3040         no successors; don't scan insns if ! PROP_SCAN_DEAD_CODE.
3041
3042 2000-05-31  Richard Henderson  <rth@cygnus.com>
3043
3044         * jump.c (jump_optimize_1): Revert 05-18 change.
3045
3046 2000-05-31  Mark Mitchell  <mark@codesourcery.com>
3047
3048         * invoke.texi: Remove documentation for -fguiding-decls.
3049
3050 2000-05-31  Richard Henderson  <rth@cygnus.com>
3051
3052         * configure.in: Fix typo last change.
3053
3054 2000-05-31  Philipp Thomas  <pthomas@suse.de>
3055
3056         * configure.in (enable-nls): Enable if build == host, i.e. when
3057         not building a canadian cross compiler.
3058         (enable-maintainer-mode): Added for use with i18n.
3059         * aclocal.m4 (AM_GNU_GETTEXT): Only build catalogs that are a
3060         cross section of ALL_LINGUAS and LINGUAS.
3061         * configure: Rebuild.
3062
3063 2000-05-31  Bruce Korb  <bkorb@gnu.org>
3064
3065         * fixinc/check.tpl: rework to use test result tree
3066         * fixinc/Makefile.in: change invocation of check script
3067         * fixinc/check.diff: No longer needed
3068         * fixinc/fixincl.x: regenerate
3069         * fixinc/inclhack.def:  add new tests
3070         * fixinc/tests/base/arch/i960/archI960.h:  New test result
3071         * fixinc/tests/base/curses.h: modified test result
3072         * fixinc/tests/base/stdio.h: ditto
3073         * fixinc/tests/base/time.h: ditto
3074         * fixinc/tests/base/sys/asm.h: ditto
3075         * fixinc/tests/base/sys/stat.h: ditto
3076         * fixinc/tests/base/sys/wait.h: ditto
3077
3078 Wed May 31 13:17:20 2000  Philippe De Muyter  <phdm@macqel.be>
3079
3080         * except.c (clear_function_eh_region): Do not free NULL.
3081
3082 Wed May 31 08:07:52 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3083
3084         * Makefile.in (c-decl.o): Depend on rtl.h and expr.h.
3085         * alias.c (struct alias_entry): alias_set is HOST_WIDE_INT.
3086         (REG_BASE_VALUE): Remove unneeded cast to unsigned.
3087         (get_alias_set_entry): ALIAS_SET arg is HOST_WIDE_INT.
3088         (find_base_decl): New function, from c_find_base_decl in c-common.c.
3089         (new_alias_set): Moved from tree.c; return is HOST_WIDE_INT.
3090         (get_alias_set): Likewise.
3091         Major rework to do more things and allow language-specific code
3092         to just handle special-cases.
3093         (record_alias_subset): Args are HOST_WIDE_INT.
3094         (record_component_alias): Local vars are HOST_WIDE_INT.
3095         Don't handle COMPLEX_EXPR.
3096         (get_varargs_alias_set): Moved from builtins.c.
3097         (get_frame_alias_set): New function.
3098         * builtins.c (expand_builtin_return_address): Use frame alias set.
3099         (expand_builtin_setjmp, expand_builtin_longjmp): Use alias set
3100         for setjmp buffer.
3101         (get_memory_rtx): Rework to use set_mem_attributes.
3102         (get_varargs_alias_set): Deleted from here.
3103         * c-common.c (c_apply_type_quals_to_decl): Alias sets now HOST_WIDE_INT.
3104         (c_find_base_decl): Deleted from here.
3105         (c_get_alias_set): Remove many cases and rework to just handle
3106         C-specific cases.
3107         * c-common.h (c_get_alias_set): Returns HOST_WIDE_INT.
3108         * c-decl.c (rtl.h, expr.h): Now included.
3109         (init_decl_processing): Call record_component_aliases on array types.
3110         (grokdeclarator): Likewise.
3111         Set TREE_ADDRESSABLE for all fields that are not bitfields.
3112         * c-typeck.c (common_type): Call record_component_aliases for array.
3113         * caller-save.c (setup_save_areas): Rework register loop for unsigned.
3114         Set all save areas to the frame alias set.
3115         * calls.c (initialie_argument_information): Call set_mem_attributes.
3116         (compute_argument_addresses, expand_call): Likewise.
3117         * explow.c (set_mem_attributes): New function.
3118         (stabilize): Use MEM_COPY_ATTRIBUTES and force_reg.
3119         * expr.c (struct move_by_pieces): Remove {to,from}_{struct,readonly}.
3120         LEN and OFFSET now HOST_WIDE_INT.
3121         (clear_by_pieces): Similar changes.
3122         (move_by_pieces): LEN now HOST_WIDE_INT; don't set deleted fields.
3123         (move_by_pieces_ninsns): Now returns unsigned HOST_WIDE_INT.
3124         (move_by_pieces_1): Don't use deleted fields, use MEM_COPY_ATTRIBUTES.
3125         (clear_by_pieces_1): Likewise.
3126         (emit_push_insn): Call set_mem_attributes.
3127         (expand_expr, case INDIRECT_REF): Likewise.
3128         (expand_expr, case VAR_DECL): Call change_address.
3129         * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE): Use host_integerp and
3130         tree_low_cst.
3131         (get_varargs_alias_set, get_frame_alias_set): New decls.
3132         (record_base_value, record_alias_subset, lang_get_alias_set): Likewise.
3133         (new_alias_set, set_mem_attributes): Likewse.
3134         * function.c (struct temp_slot): ALIAS_SET is HOST_WIDE_INT.
3135         (assign_stack_temp_for_type): Likewise.
3136         Can split slot even if alias set since can copy.
3137         Set MEM_ALIAS_SET and MEM_SET_IN_STRUCT_P.
3138         (assign_temp): Use host_integerp and tree_low_cst.
3139         (put_var_into_stack): Properly handle SAVE_EXPR.
3140         (put_addressof_into_stack): Likewise.
3141         (assign_parms): Call set_mem_attributes.
3142         Delete #if 0 code.
3143         (fix_lexical_address): Put reference to chain into frame alias set.
3144         (expand_function_start): Call set_mem_attributes.
3145         * integrate.c (expand_inline_function): Likewise.
3146         * recog.c (adj_offsettable_operand): Use MEM_COPY_ATTRIBUTES.
3147         * regmove.c (try_apply_stack_adjustment): Likewise.
3148         * reload.c (push_reload, make_memloc): Likewise.
3149         * reload1.c (alter_reg): Make alias sets for spilled pseudos.
3150         * rtl.def (MEM): Update comment.
3151         * rtl.h (MEM_ALIAS_SET): Now uses XCWINT.
3152         (move_by_pieces): Change length to HOST_WIDE_INT.
3153         (record_base_value, record_alias_subset): Delete from here.
3154         * stmt.c (expand_decl): Call set_mem_attributes.
3155         * stor-layout.c (finish_record_layout): Call record_component_aliases.i
3156         * toplev.c (compile_file): Call init_alias_once earlier.
3157         * tree.c (lang_get_alias_set, get_alias_set, new_alias_set): Deleted
3158         from here: now in alias.c.
3159         * tree.h (struct tree_type): alias_set is HOST_WIDE_INT.
3160         (struct tree_decl): Likewise.
3161         (get_alias_set, new_alias_set, lang_get_alias_set): Deleted from here.
3162         * varasm.c (make_function_rtl, make_decl_rtl): Call set_mem_attributes.
3163         (output_constant_def, force_const_mem): Likewise.
3164
3165         * flow.c (propagate_block): If block has no successors, stores to
3166         frame are dead if not used.
3167
3168 2000-05-31  Nathan Sidwell  <nathan@codesourcery.com>
3169
3170         * stmt (expand_end_case): Reorder conversion sequence for jump
3171         table to avoid extra truncations.
3172
3173 Wed May 31 01:31:42 2000  Jeffrey A Law  (law@cygnus.com)
3174
3175         * ifcvt.c (cond_exec_process_if_block): Do nothing if the last insn
3176         in the block is more than just a simple conditional branch.
3177         (noce_process_if_block): Similarly.
3178
3179 Tue May 30 22:25:57 2000  Alexandre Oliva  <aoliva@cygnus.com>
3180
3181         * optabs.c (prepare_float_lib_cmp): Protect *px and *py from
3182         queue.
3183
3184 2000-05-30  Michael Meissner  <meissner@redhat.com>
3185
3186         * dwarf2out.c (dwarf2out_frame_debug_expr): Ignore HIGH
3187         instructions.  Treat LO_SUM operations as loading the full integer
3188         constant.
3189
3190 2000-05-30  Richard Henderson  <rth@cygnus.com>
3191
3192         * combine.c (get_pos_from_mask): Test exact_log2 result as signed.
3193
3194 2000-05-30  Richard Henderson  <rth@cygnus.com>
3195
3196         * bb-reorder.c (emit_jump_to_block_after): Protect use of HAVE_return.
3197
3198 2000-05-30  Bruce Korb  <bkorb@gnu.org>
3199
3200         * fixinc/tests/*:  Added expected result files for fixinc's make check
3201         * fixinc/fixfixes(char_macro_*_fix): Restore original algorithm
3202
3203 2000-05-30  Richard Henderson  <rth@cygnus.com>
3204
3205         * config/alpha/alpha.md (*setne_internal): Use match_operator
3206         instead of working down from insn.
3207
3208 2000-05-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3209
3210         * invoke.texi (-Wtraditional): Update WRT function macros.
3211
3212 Tue May 30 09:57:32 2000  Philippe De Muyter  <phdm@macqel.be>
3213
3214         * except.c (free_exception_table): Do not free NULL.
3215
3216 2000-05-29  Zack Weinberg  <zack@wolery.cumb.org>
3217
3218         * cpplib.c (do_if): Don't save and restore only_seen_white here.
3219         * cppexp.c (_cpp_parse_expr): Save and restore only_seen_white
3220         and skipping here.
3221
3222 2000-05-29  Richard Earnshaw (rearnsha@arm.com)
3223
3224         * flow.c (mark_used_reg): If a register is unconditionally live,
3225         remove any conditional death information.
3226
3227 2000-05-29  Richard Henderson  <rth@cygnus.com>
3228
3229         * final.c (current_output_insn): New.
3230         (final_scan_insn): Set it.
3231         * output.h: Declare it.
3232
3233 2000-05-29  Richard Henderson  <rth@cygnus.com>
3234
3235         * stor-layout.c (finalize_record_size): Fix typo.
3236
3237         * jump.c (redirect_jump): Don't emit NOTE_INSN_FUNCTION_END
3238         if nlabel is null.
3239
3240 2000-05-29  Zack Weinberg  <zack@wolery.cumb.org>
3241
3242         * cpplib.h (cpp_reader): Remove if_stack.  Change
3243         potential_control_macro to a cpp_hashnode *.  Add skipping flag.
3244         * cpphash.h (struct ihash): Change control_macro to a
3245         cpp_hashnode * and shorten name to cmacro.
3246         Add NEVER_REINCLUDE constant.
3247
3248         * cppfiles.c (redundant_include_p): Drop cpp_reader argument.
3249         Examine the cmacro node directly, no need to call cpp_defined.
3250         (_cpp_execute_include, read_include_file): Set cmacro to
3251         NEVER_REINCLUDE, not U"".
3252         * cpplex.c (cpp_push_buffer): Don't set new->if_stack.
3253         (cpp_get_token): If pfile->skipping is true, discard text and
3254         keep scanning until we hit a directive; don't expand macros.
3255
3256         * cpplib.c (struct if_stack): Remove if_succeeded, add
3257         was_skipping. Change control_macro to a cpp_hashnode * and
3258         shorten name to cmacro.  Remove typedef IF_STACK.
3259         (parse_ifdef), detect_if_not_defined): Return a cpp_hashnode *.
3260         (conditional_skip, skip_if_group,
3261         consider_directive_while_skipping): Delete.
3262         (push_conditional): New.
3263         (_cpp_handle_directive): Don't process directives other than
3264         conditionals if we are skipping.
3265
3266         (do_ifdef, do_ifndef, do_if, do_else, do_elif, do_endif):
3267         Update to new scheme.
3268         (validate_else): Skip rest of line here, unconditionally.
3269         (_cpp_unwind_if_stack): The stack is per-buffer.  Force
3270         pfile->skipping off.
3271
3272         (all): Remove `scare quotes' from error messages.
3273
3274 2000-05-29  Richard Henderson  <rth@cygnus.com>
3275
3276         * function.c (emit_return_into_block): New line_note arg; emit it.
3277         (thread_prologue_and_epilogue_insns): Attempt to locate a line note
3278         for the close brace to accompany HAVE_return.  Move all line notes
3279         following the epilogue to before the NOTE_INSN_EPILOGUE_BEG.
3280
3281 2000-05-29  Richard Henderson  <rth@cygnus.com>
3282
3283         * longlong.h [__alpha] (count_leading_zeros): New.
3284         (count_trailing_zeros): New.
3285         (COUNT_LEADING_ZEROS_0): New.
3286
3287         * config/alpha/alpha.c (alpha_zero_comparison_operator): New.
3288         (alpha_split_conditional_move): New.
3289         * config/alpha/alpha-protos.h: Prototype them.
3290         * config/alpha/alpha.h (PREDICATE_CODES): Update.
3291         (CPP_CPU_DEFAULT_SPEC): Fix typo for EV67.
3292         * config/alpha/alpha.md: Update ffs cix commentary.
3293         (*ze_and_ne): New.
3294         (*nabssf2, *nabsdf2): New.
3295         (*mov[qhsd]icc_internal): Use add_operand.
3296         (if_then_else constant splitters): New.
3297         (*cmp_sadd_di, *cmp_sadd_si, *cmp_sadd_sidi): New.
3298         (*cmp_ssub_di, *cmp_ssub_si, *cmp_ssub_sidi): New.
3299
3300 2000-05-29  Richard Henderson  <rth@cygnus.com>
3301
3302         * combine.c (force_to_mode) [MINUS]: Convert subtraction from
3303         a constant to NEG or NOT when conditions allow.
3304
3305         * combine.c (combine_simplify_rtx): Don't create an if_then_else
3306         unless both args are general_operand.  Don't canonicalize plus
3307         to ior unless it helps.
3308
3309         * toplev.c (rest_of_compilation): Set no_new_pseudos after flow1;
3310         instead track register_life_up_to_date.  Toggle no_new_pseudos
3311         around if_convert.
3312
3313 2000-05-28  Geoff Keating  <geoffk@cygnus.com>
3314
3315         * config/rs6000/rs6000.c (output_cbranch): Escape '%' characters
3316         so output_operand doesn't see them.
3317
3318 Sun May 28 18:37:07 2000  Clinton Popetz  <cpopetz@cygnus.com>
3319
3320         * lcm.c (make_preds_opaque): Fix comment.
3321         (optimize_mode_switching): Use NORMAL_MODE instead of
3322         MODE_USES_IN_EXIT_BLOCK.  Change leftover instance of
3323         FP_MODE_NONE to no_mode.  Rename MODE_AT_ENTRY to NORMAL_MODE.
3324         Handle insertions before an existing NOTE_INSN_BASIC_BLOCK.
3325         * tm.texi (OPTIMIZE_MODE_SWITCHING): Refer to NORMAL_MODE.
3326         (MODE_USES_IN_EXIT_BLOCK): Delete.
3327         (MODE_AT_ENTRY) Rename to NORMAL_MODE.
3328         * sh.h (MODE_USES_IN_EXIT_BLOCK): Delete.
3329         (MODE_AT_ENTRY): Rename to NORMAL_MODE.
3330         (MODE_NEEDED): Don't look for USE.
3331         (EPILOGUE_USES): Define.
3332
3333 Sun May 28 23:26:59 2000  Philippe De Muyter <phdm@macqel.be>
3334
3335         * mklibgcc.in (all): Variable initialised to `libgcc'.
3336
3337 2000-05-28  Gabriel Dos Reis  <gdr@codesourcery.com>
3338
3339         * toplev.h (skip_leading_substring): New macro.
3340         * toplev.c (decode_f_option): Use skip_leading_substring instead
3341         of strncmp.
3342         (decode_W_option): Likewise.
3343
3344 2000-05-28  Nick Clifton  <nickc@cygnus.com>
3345
3346         * tm.texi (CONDITIONAL_REGISTER_USAGE): Document that it can
3347         modify reg_names.
3348
3349 2000-05-28  Richard Henderson  <rth@cygnus.com>
3350
3351         * regclass.c (record_operand_costs): Protect reg_changes_size
3352         with CLASS_CANNOT_CHANGE_SIZE.
3353
3354         * loop.c (instrument_loop_bct): Set JUMP_LABEL on the new insn.
3355
3356 2000-05-28  Richard Henderson  <rth@cygnus.com>
3357
3358         * function.c (diddle_return_value): A pcc-style struct return
3359         returns a pointer.
3360
3361 2000-05-27  Zack Weinberg  <zack@wolery.cumb.org>
3362
3363         * cppfiles.c: Read files in, using mmap if possible, then
3364         prescan them separately.
3365         (read_file, read_with_read): New functions.
3366         * cpplex.c: Don't define UCHAR_MAX.
3367         (_cpp_read_and_prescan): Rename to _cpp_prescan.  Don't read
3368         the file here.
3369
3370         * cppinit.c (handle_option): Automatically define __cplusplus,
3371         __OBJC__, __ASEEMBLER__, _LANGUAGE_FORTRAN here when we see
3372         the respective -lang switch.
3373
3374         * cpphash.h (enum node_type, struct hashnode, _cpp_lookup
3375         prototype): Move to...
3376         * cpplib.h: ... here.  Rename struct hashnode to struct
3377         cpp_hashnode and give it a typedef.  Rename _cpp_lookup to
3378         cpp_lookup.  Add 'fe_value' slot, a union tree_node *.
3379
3380 2000-05-27  Geoffrey Keating  <geoffk@cygnus.com>
3381
3382         * config/rs6000/rs6000.md (movsi): Constify 'name'.
3383
3384         * regclass.c [CLASS_CANNOT_CHANGE_SIZE]
3385         (class_can_change_size): New variable.
3386         (reg_changes_size): New variable.
3387         (init_reg_sets_1): Initialise class_can_change_size.
3388         (record_operand_costs): Remove subreg_changes_size.
3389         Don't pass it around.  Instead update reg_changes_size.
3390         (regclass): Initialise and free reg_changes_size.  If a register
3391         changes size, don't preference it to a class that contains
3392         registers that can't change size.
3393         (record_reg_classes): Don't look at subreg_changes_size.
3394
3395 2000-05-27  Richard Henderson  <rth@cygnus.com>
3396
3397         * print-rtl.c (reg_names): Remove const.
3398         * regclass.c (reg_names): Likewise.
3399         * regs.h (reg_names): Likewise.
3400         * hard-reg-set.h (reg_names): Likewise.
3401
3402 2000-05-27  Richard Henderson  <rth@cygnus.com>
3403
3404         * config/rs6000/rs6000.md (untyped_call): Use GEN_CALL.
3405
3406 2000-05-27  Richard Henderson  <rth@cygnus.com>
3407
3408         * config/alpha/alpha.c (alpha_does_function_need_gp): Test
3409         TARGET_PROFILING_NEEDS_GP in the if, instead of with an ifdef.
3410         (alpha_expand_prologue): Emit prologue_mcount if needed.
3411         * config/alpha/alpha.h (TARGET_PROFILING_NEEDS_GP): Default to 0.
3412         * config/alpha/alpha.md (prologue_mcount): New.
3413         * config/alpha/linux.h (FUNCTION_PROFILER): Remove.
3414         (TARGET_PROFILING_NEEDS_GP): Undef before redefining.
3415         * config/alpha/netbsd.h: Likewise.
3416
3417 2000-05-27  Richard Henderson  <rth@cygnus.com>
3418
3419         * config/alpha/elf.h (SELECT_SECTION): Mirror Kenner's May 19
3420         change to config/elfos.h.
3421
3422 2000-05-27  Richard Henderson  <rth@cygnus.com>
3423
3424         * Makefile.in (resource.o): Depend on except.h.
3425         * except.h (output_exception_table_data): Prototype.
3426         * genconfig.c (gen_peephole2): Prototype.
3427         * genemit.c (main): Include ggc.h.
3428         * genoutput.c: Revert parts of last change: include errors.h
3429         (main): Set progname.
3430         * recog.c: Include hard-reg-set.h before recog.h.
3431         * resource.c: Include except.h.
3432
3433         * config/alpha/alpha-protos.h (alpha_arg_info_reg_val): Protect
3434         with RTX_CODE.
3435         (alpha_write_linkage): Protect with BUFSIZ.
3436         (alpha_need_linkage): Update prototype.
3437         * config/alpha/alpha.c (function_arg): Move VMS code here.
3438         (alpha_links_base): Remove.
3439         (alpha_links): New.
3440         (mark_alpha_links_node, mark_alpha_links): New.
3441         (alpha_write_one_linkage): New.
3442         (alpha_need_linkage): Use a splay tree.  Build the linkage symbol.
3443         (alpha_write_linkage): Use splay_tree_foreach.
3444         * config/alpha/alpha.md (call_vms): Use alpha_need_linkage
3445         to get the linkage symbol.
3446         (call_value_vms): Likewise.
3447         * config/alpha/elf.h (output_file_directive): Remove decl.
3448         (ctors_section, dtors_section): Prototype.
3449         (sbss_section, sdata_section): Prototype.
3450         * config/alpha/vms.h (FUNCTION_ARG): Remove.
3451         (readonly_section, link_section, literals_section): Prototype.
3452         (ctors_section, dtors_section): Prototype.
3453         (vms_valid_decl_attribute_p): Remove decl.
3454         (alpha_arg_type, alpha_arg_info_reg_val): Likewise.
3455
3456 2000-05-27  Geoff Keating  <geoffk@cygnus.com>
3457
3458         * reload.c (get_secondary_mem): Don't widen floating-point modes.
3459
3460         * combine.c (subst): Honour CLASS_CANNOT_CHANGE_SIZE when
3461         substituting the REG in a (subreg:X (reg:Y ...)).
3462
3463 2000-05-28  Neil Booth  <NeilB@earthling.net>
3464
3465         * cpplex.c (_cpp_lex_line): Merge vertical space.  Flag
3466         first token of a line BOL.  Update EOF code for this.
3467         Remove illegal directive check - it appears in the (not
3468         yet committed) caller.
3469         * cpplib.h (BOL): New flag.
3470
3471 2000-05-28  Neil Booth  <NeilB@earthling.net>
3472
3473         * cpplex.c (_cpp_init_toklist): No comment space to initialise.
3474         (_cpp_free_toklist): No comment space to free.
3475         (expand_comment_space): Remove.
3476         (save_comment_space): Place the comment in the current token and
3477         not in a separate comment space.
3478         (_cpp_lex_line): Save comments during plain code and #define
3479         directives only.
3480         * cpplib.h (struct _cpp_toklist): Remove comment space.
3481
3482 2000-05-28  Neil Booth  <NeilB@earthling.net>
3483
3484         * cppexp.c (parse_assertion): Supply extra argument to
3485         _cpp_init_toklist.
3486         * cpplib.c (do_assert, do_unassert): Similarly.
3487         * cpphash.h (_cpp_init_toklist) Update.
3488         (_cpp_expand_token_space): New.
3489         (DUMMY_TOKEN, NO_DUMMY_TOKEN): New.
3490         * cpplex.c (_cpp_init_toklist): New argument.
3491         (parse_string2): New argument multiline_ok.
3492         (spell_token): Take a const cpp_token *.
3493         (INIT_NAME): Replace with INIT_TOKEN_NAME.  Update tokens_used.
3494         (SPELL_ macros): Replace with enum.
3495         (expand_token_space): Replace with _cpp_expand_token_space.
3496         Take COUNT argument.
3497         (IS_DIRECTIVE): Update.
3498         (_cpp_lex_line): Update token structure before parsing number.
3499         Don't assume start at beginning of token list.
3500         (save_comment): Use INIT_TOKEN_NAME.
3501
3502 2000-05-27  Zack Weinberg  <zack@wolery.cumb.org>
3503
3504         * configure.in (stage1_warn_cflags): Add -Wstrict-prototypes
3505         -Wmissing-prototypes.
3506         * configure: Regenerate.
3507         * gcc.texi: Remove explanation of MD_CALL_PROTOTYPES.
3508
3509         * builtins.c, calls.c: Change all instances of gen_call_* or
3510         gen_sibcall_* to GEN_CALL_* and GEN_SIBCALL_*.
3511         * calls.c (struct_value_size_rtx): Separate definition from
3512         initialization to avoid unused variable warning.
3513
3514         * genflags.c (gen_macro): New function.
3515         (gen_proto): Call it for gen_call_* and gen_sibcall_*.
3516         (gen_nonproto): Delete.
3517         (gen_insn): Put all insns on the same obstack.
3518         (main): Generate prototypes for everything unconditionally.
3519
3520         * configure.in: Add AC_CHECK_TYPE(ssize_t).  Remove commented
3521         out check for wchar_t.
3522         * acconfig.h: Add template for ssize_t.  Remove @TOP@.
3523         * system.h: Add infrastructure for defining missing
3524         TYPE_MAX/TYPE_MIN macros.  Use it to provide fallback
3525         definitions of UCHAR_MAX and SSIZE_MAX.
3526         * configure: Regenerate.
3527         * config.in: Regenerate.
3528
3529         * Makefile.in (libgcc2.ready): Rename to libgcc.ready.
3530         Depend on $(LANGUAGES) as well as $(GCC_PATCHES) and fixed
3531         headers.
3532         (clean): No need to delete libgcc1.a, libgcc1-asm.a,
3533         libgcc2.a, or libgcc1.null.
3534
3535 2000-05-27  Richard Henderson  <rth@cygnus.com>
3536
3537         * Makefile.in (recog.o): Don't depend on resource.h.
3538         * recog.c: Don't include resource.h.
3539         (recog_last_allowed_insn): Remove.
3540         (recog_next_insn): Remove.
3541         (struct peep2_insn_data): New.
3542         (peep2_insn_data, peep2_current): New.
3543         (peep2_next_insn): New.
3544         (peep2_regno_dead_p, peep2_reg_dead_p): New.
3545         (peep2_find_free_register): New.
3546         (peephole2_optimize): Track life information by insn as we go.
3547         * recog.h: Update declarations.
3548         * resource.c (find_free_register, reg_dead_p): Remove.
3549         * resource.h: Remove their declarations.
3550         * toplev.c: Include hard-reg-set.h before recog.h.
3551
3552         * genconfig.c (max_insns_per_peep2): New.
3553         (gen_peephole2): New.
3554         (main): Call it.
3555         * genemit.c (output_peephole2_scratches): Generate calls to
3556         peep2_find_free_register; adjust surrounding code.
3557         (main): Have insn-emit.c include hard-reg-set.h before recog.h.
3558         * genrecog.c (change_state): Don't track last_insn.
3559         (write_action): Write into *_pmatch_len before accepting.
3560         (write_tree): Adjust peephole2_insns and subroutines to match.
3561
3562         * config/i386/i386.md (all peepholes): Use peep2_regno_dead_p.
3563
3564         * config/alpha/alpha.c (hard_fp_register_operand): Mind the mode.
3565         (hard_int_register_operand): New.
3566         * config/alpha/alpha-protos.h: Declare it.
3567         * config/alpha/alpha.h (PREDICATE_CODES): Update.
3568         * config/alpha/alpha.md (peep2 patterns): Use hard_int_register_operand
3569         as needed; use peep2_reg_dead_p instead of dead_or_set_p.
3570
3571 2000-05-27  Richard Henderson  <rth@cygnus.com>
3572
3573         * function.c (thread_prologue_epilogue_insns): Don't move the
3574         line note at the head of the chain.  Only force a lineno note
3575         before the end of block 0.
3576
3577 2000-05-27  Richard Henderson  <rth@cygnus.com>
3578
3579         * gensupport.c (collect_insn_data): Record the maximum number
3580         of alternatives, not the last seen.
3581
3582         * genoutput.c: Don't include errors.h.
3583         (struct data): Add lineno member.
3584         (have_error): New.
3585         (scan_operands): Use message_with_line instead of error.
3586         (validate_insn_alternatives): Likewise.
3587         (gen_insn): Accept and store the pattern's line number.
3588         (gen_peephole, gen_expand, gen_split): Likewise.
3589         (main): Don't set progname.  Pass line_no to gen_foo.
3590
3591 2000-05-27  Richard Henderson  <rth@cygnus.com>
3592
3593         * config/d30v/d30v.c (d30v_print_operand): Handle ':'.
3594         * config/d30v/d30v.h (PRINT_OPERAND_PUNCT_VALID_P): Accept ':'.
3595         * config/d30v/d30v.md (attr predicable): New.
3596         (all insn patterns): Mark non-predicable patterns; use %: on the rest.
3597         (andsi3*): Unify into one pattern.
3598         (iorsi3*, xorsi3*): Likewise.
3599         (peephole2 patterns): Use peep2_reg_dead_p; verify not a
3600         conditional return.
3601         (old cond_exec patterns): Remove.
3602         (define_cond_exec): New.
3603
3604 Sat May 27 11:01:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3605
3606         * tree.h (TREE_CODE_LENGTH): New macro.
3607         * c-common.c (c_find_base_decl): Use it.
3608         * expr.c (safe_from_p): Likewise.
3609         * print-tree.c (print_node): Likewise.
3610         * tree.c (make_node, copy_node, get_identifier): Likewie.
3611         (first_rtl_op, contains_placeholder_p, substitute_in_expr): Likewise.
3612         (build, build_nt, build_parse_node, simple_cst_equal): Likewise.
3613         * fold-const.c (make_range): Likewise.
3614         (fold): Likewise; also use first_rtl_op.
3615         * c-iterate.c (collect_iterators): Use first_rtl_op.
3616         * calls.c (calls_function_1): Likewise; also rename TYPE to CLASS.
3617         Use IS_EXPR_CODE_CLASS.
3618         (preexpand_calls): Likewise.
3619         * ggc-common.c (ggc_mark_trees): Rework to use first_rtl_op
3620         and TREE_CODE_LENGTH.
3621         * stmt.c (warn_if_unused_value): If no operands, no unused value.
3622
3623 2000-05-26  Geoffrey Keating  <geoffk@cygnus.com>
3624
3625         * config/rs6000/rs6000.md (movsi_internal1): Use '%a1' rather
3626         than '%1(%*)'.
3627         (movdi_internal64): Likewise.
3628
3629         * config/rs6000/rs6000.md: Correct order of operands for DImode
3630         boolean patterns.
3631
3632         * config/rs6000/rs6000.c (boolean_or_operator): New function.
3633         * config/rs6000/rs6000-protos.h (boolean_or_operator): Prototype it.
3634         * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_or_operator.
3635         * config/rs6000/rs6000.md: Use boolean_or_operator instead of
3636         boolean_operator for the boolean patterns without NOTs.
3637
3638         * config/rs6000/rs6000.c (reg_or_logical_cint_operand): Rename
3639         from reg_or_u_cint_operand.  Change comment and behaviour.
3640         (logical_operand): Clean up, add assertion.
3641         (non_logical_cint_operand): Also check for
3642         reg_or_logical_cint_operand.
3643         * config/rs6000/rs6000.h (PREDICATE_CODES): Update.
3644         * config/rs6000/rs6000.md (iorsi3): Use reg_or_logical_cint_operand
3645         in the expander.
3646         (xorsi3): Likewise.
3647         (iordi3): Likewise.
3648         (xordi3): Likewise.
3649
3650 2000-05-26  Mark Mitchell  <mark@codesourcery.com>
3651
3652         * tree.h (struct record_layout_info): Rename to (struct
3653         record_layout_info_s).
3654         * stor-layout.c (start_record_layout): Replace
3655         `record_layout_info' with `record_layout_info_s'.
3656
3657 2000-05-26  Richard Earnshaw  <rearnsha@arm.com>
3658
3659         * flow.c (find_label_refs): New function.
3660         (find_basic_blocks_1): Call it for each alternative of a call
3661         placeholder.
3662
3663 2000-05-26  Richard Earnshaw  <rearnsha@arm.com>
3664
3665         * ifcvt.c (cond_exec_get_condition): Set test_if to the SET_SRC
3666         of get_pc.
3667
3668 2000-05-25  Richard Henderson  <rth@cygnus.com>
3669
3670         * config/alpha/alpha.c (alpha_comparison_operator): Don't be
3671         so strict about DImode.
3672         (alpha_swapped_comparison_operator): Likewise.
3673         * config/alpha/alpha.md (*setne_internal): Name it.  Allow
3674         any integer output mode.
3675         (*setcc_internal): Likewise.
3676         (*setcc_swapped_internal): Likewise.
3677         (*movdicc_internal, *movdicc_lbc, *movdicc_lbs): Name them.
3678         (*mov[qhs]icc_internal): New.
3679         (*mov[qhs]icc_lbc, *mov[qhs]icc_lbs): New.
3680
3681 2000-05-25  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
3682
3683         * vax.h (CPP_SPEC): Define __GFLOAT and GFLOAT when -mg is specified.
3684
3685 2000-05-25  Richard Henderson  <rth@cygnus.com>
3686
3687         * bb-reorder.c (reorder_block_def): Reorder elements for size.
3688         Remove add_jump; add next; replace flags with visited.
3689         (rbd_init): Remove.
3690         (REORDER_BLOCK_HEAD, REORDER_BLOCK_VISITED): Remove.
3691         (REORDER_BLOCK_FLAGS, REORDER_BLOCK_INDEX): Remove.
3692         (REORDER_BLOCK_ADD_JUMP, REORDER_BLOCK_EFF_HEAD): Remove.
3693         (REORDER_BLOCK_EFF_END, REORDER_BLOCK_SCOPE): Remove.
3694         (RBI): New.
3695         (reorder_index, reorder_last_visited): Remove.
3696         (skip_insns_after_block): Rewrite to use a switch.
3697         (get_common_dest): Remove.
3698         (chain_reorder_blocks): Remove.
3699         (record_effective_endpoints): Split out from reorder_basic_blocks.
3700         (make_reorder_chain): Likewise.  Loop until all blocks are placed.
3701         (make_reorder_chain_1): Renamed from old make_reorder_chain.
3702         Only construct the reorder chain, do not move insns.  Try harder
3703         to tail recurse.
3704         (label_for_bb, emit_jump_to_block_after): New.
3705         (fixup_reorder_chain): Use them.  Do bulk block movement.  Examine
3706         and adjust the jump insns appropriately.  Fixup basic_block_info.
3707         (verify_insn_chain): Always define.
3708         (relate_bbs_with_scopes): Call xmalloc, not xcalloc.  Fix thinko
3709         in allocation size.
3710         (make_new_scope): Don't write zeros to calloc'd space.
3711         (build_scope_forest): Rely on xrealloc to DTRT.
3712         (reorder_basic_blocks): Don't build loop nest.  Don't fail if
3713         profile_arc_flag.  Streamline EH test.
3714
3715         * flow.c (redirect_edge_succ, redirect_edge_pred): New.
3716         * basic-block.h: Declare them.
3717
3718 2000-05-25  Alexandre Oliva  <aoliva@cygnus.com>
3719
3720         * emit-rtl.c (reset_used_decls): New function.
3721         (unshare_all_rtl_again): Call it.
3722
3723 2000-05-25  Zack Weinberg  <zack@wolery.cumb.org>
3724
3725         * cpplex.c (maybe_macroexpand): Warn about function-like
3726         macros used in non-function context, if -Wtraditional.
3727
3728 2000-05-25  Mark Mitchell  <mark@codesourcery.com>
3729
3730         * recog.c (peephole2_optimize): Use INSN_P.
3731
3732 2000-05-25  Richard Henderson  <rth@cygnus.com>
3733
3734         * ifcvt.c (seq_contains_jump): New.
3735         (noce_try_store_flag_constants): Use it to fail conversion.
3736         (noce_try_store_flag_inc, noce_try_store_flag_mask): Likewise.
3737
3738 2000-05-25  Mark Mitchell  <mark@codesourcery.com>
3739
3740         * except.h (can_throw): Declare it.
3741         * except.c (can_throw): Give it external linkage.
3742         * resource.c (find_dead_or_set_registers): Use can_throw.
3743
3744 2000-05-25  Richard Henderson  <rth@cygnus.com>
3745
3746         * flow.c (mark_set_1): Don't record conditionally dead memory.
3747
3748 2000-05-25  Jan Hubicka  <jh@suse.cz>
3749
3750         * combine.c (try_combine): Use any_condjump_p, any_uncondjump_p
3751         and pc_set at the place of simplejump_p and condjump_p.
3752         * cse.c (record_jump_equiv): Likewise.
3753         * emit-rtl.c (emit): Likewise.
3754         * explow.c (find_next_ref): Likewise.
3755         * flow.c (tidy_fallthru_edge): Likewise.
3756         (init_propagate_block_info): Likewise.
3757         * gcse.c (delete_null_pointer_checks): Likewise.
3758         * ifcvt.c (cond_exec_get_condition, noce_get_condition,
3759         dead_or_predicable): Likewise.
3760         * integrate.c (copy_insn_list): Likewise.
3761         * loop.c (scan_loop, verify_dominator, find_and_verify_loops,
3762         for_each_insn_in_loop, check_dbra_loop, get_condition,
3763         insert_bct, load_mems): Likewise.
3764         * resource.c (find_dead_or_set_registers): Likewise.
3765         * sibcalls.c (simplejump_p): Likewise.
3766         * unroll.c (copy_loop_body, reg_dead_after_loop): Likewise.
3767
3768 2000-05-25  David Edelsohn  <edelsohn@gnu.org>
3769
3770         * rs6000.c (expand_block_move): Add 64-bit PowerPC doubleword move
3771         to STRING case.  Use doubleword STRING move for TARGET_POWERPC64
3772         when unaligned.
3773         * rs6000.h (CONST_OK_FOR_LETTER_P, 'J'): unsigned HOST_WIDE_INT.
3774         (RETURN_ADDR_RTX): Use COUNT and FRAME, not count and frame.
3775         (LEGITIMIZE_RELOAD_ADDRESS): unsigned HOST_WIDE_INT high.
3776         * rs6000.md: Name various internal patterns.
3777
3778 2000-05-25  Jan Hubicka  <jh@suse.cz>
3779
3780         * jump.c (invert_exp_1): Remove first argument, use pc_set
3781         to get the expression.
3782         (redirect_exp): Make static; redirect only the pc_set expression,
3783         remove first argument.
3784         (invert_exp): Remove first argument, make static.
3785         (jump_optimize): Use any_condjump_p, any_uncondjump_p and
3786         any_onlyjump at most places where we originaly did condjump_p
3787         and simplejump_p.
3788         (jump_back_p, follow_jumps, thread_jumps): Likewise.
3789         (delete_barrier_succesors): Use pc_set.
3790         (invert_jump_1, invert_jump, redirect_jump_1, redirect_jump): Update
3791         calls of invert_exp and redirect_exp.
3792         * rtl.h (redirect_exp, invert_exp): Remove.
3793         * unroll.c (copy_loop_body): Use invert_jump and redirect_jump.
3794
3795 2000-05-25  Richard Henderson  <rth@cygnus.com>
3796
3797         * stmt.c (expand_end_bindings): Fix thinko last change.
3798
3799 2000-05-25  Andrew MacLeod  <amacleod@cygnus.com>
3800             Andrew Haley  <aph@cygnus.com>
3801
3802         * except.c  (func_eh_entry): Add emitted field.
3803         (new_eh_region_entry): Set emitted field to 0;
3804         (output_exception_table_entry): Only emit previously un-emitted data,
3805         and send it to the eh_data section.
3806         (output_exception_table): Break out common parts. Output
3807         exception table for entire compilation unit to eh_data section.
3808         (output_exception_table_data): Common parts of output_exception_table.
3809         Send output to eh_data section.
3810         (output_function_exception_table): Output exception table data for
3811         a single function to eh_data section.
3812         (free_exception_table): New external to free the table.
3813         * except.h (free_exception_table): Add prototype.
3814         (output_function_exception_table): Add prototype.
3815         * final.c (final_end_function): Output function exception table
3816         for IA64_UNWIND_INFO.
3817         (final_scan_insn): Emit any unwind directives for an insn.
3818
3819         * frame-dwarf2.c: New file containing all DWARF 2 specific code
3820         from frame.c.
3821         * frame.c: Remove all DWARF 2 specific code.
3822         * config/ia64/frame-ia64.c: New file.
3823         (gthread_stuff): Make all gthread available with
3824         IA64_UNWIND_INFO.
3825         (dwarf_fde): Define an IA64 struct for dwarf_fde.
3826         (__register_frame_info, __register_frame): Move to common area of file.
3827         (__register_frame_info_table, __register_frame_table): Move to common i
3828         area.
3829         (__deregister_frame_info, __deregister_frame): Move to common area.
3830         (__frame_init, find_fde): New versions for IA64_UNWIND_INFO.
3831         (read_uleb128): New version for ia64.
3832         (get_unwind_record): Read the next IA-64 unwind record.
3833         (read_R_record): Read a region header record.
3834         (process_a_b_reg_code): X record helper.
3835         (read_X_record): Read an X format record.
3836         (read_B_record): Read a B format record.
3837         (P3_record_types): List of record types matching the P3 format.
3838         (P7_record_types): List of record types matching the P7 format.
3839         (P8_record_types): List of record types matching the P8 format.
3840         (read_P_record): Read a P format record.
3841         (init_ia64_reg_loc): Set default fields for a register.
3842         (init_ia64_unwind_frame): Set defaults for all register records.
3843         (execute_one_ia64_descriptor): Execute one descriptor record.
3844         (rse_address_add): Calculate the position of a local reg in memory.
3845         (normalize_reg_loc): Turn a location descriptor into a memory address.
3846         (maybe_normalize_reg_loc): Only normalize a descriptor if it falls
3847         within a specified PC offset range.
3848         (get_real_reg_value): Given a register location, retrieve its value.
3849         (set_real_reg_value): Change the value of a register location.
3850         (copy_reg_value): Copy reg values, if needed.
3851         (copy_saved_reg_state): Copy all registers that need to be copied.
3852         (process_state_between): Normalize all frame register records that
3853         fall within the specified PC range.
3854         (frame_translate): Take a processed frame description, and turn
3855         everything into addresses.
3856         (build_ia64_frame_state ): Find and create frame state record for a PC.
3857         (get_personality): Get the personality routine for a given frame.
3858         (get_except_table): Get the exception table for a given frame.
3859         (record_name): Unwind record names for debugging.
3860         (print_record): Print and unwind record.
3861         (print_all_records): Print an entire unwind image.
3862         (__ia64_backtrace): Print a backtrace.
3863         (ia64_backtrace_helper): New function.
3864         (__register_frame_info_aux): New function.
3865         * config/ia64/crtend.asm (__do_frame_setup_aux): New function.
3866
3867         * frame.h (enum unw_record_type): New unwind record types.
3868         (struct unw_p_record, unw_b_record, unw_x_record) : New unwind records.
3869         (struct unw_r_record, unwind_record): New unwind record structs.
3870         (struct unwind_info_ptr): Unwind information layout.
3871         (IA64_UNW_LOC_TYPE_*): Macros for different types for location
3872         descriptors.
3873         (struct ia64_reg_loc): Register location description.
3874         (struct ia64_frame_state): Location of all registers in a frame.
3875         (struct object): Add pc_base and fde_end for IA64_UNWIND_INFO.
3876         * libgcc2.c (__ia64_personality_v1): Personality routine.
3877         (__calc_caller_bsp): Calculate the bsp register for the caller's
3878         frame.
3879         (ia64_throw_helper): Figure out who to return to and set up the
3880         registers.
3881         (__throw): Throw routine.
3882
3883         * output.h (assemble_eh_align, assemble_eh_label): New functions
3884         to generate EH info where we want it.
3885         (assemble_eh_integer): New function.
3886         * toplev.c (compile_file): Output module level exception table for
3887         non-ia64 targets.
3888         (main): Set exceptions_via_longjump and flag_new_exceptions based
3889         on IA64_UNWIND_INFO too.
3890
3891         * varasm.c (assemble_eh_label): Generate a label via
3892         ASM_OUTPUT_EH_LABEL if it has been specified.
3893         (assemble_eh_align): Generate an alignment directive via
3894         ASM_OUTPUT_EH_ALIGN if it has been specified.
3895         (assemble_eh_label): Generate an integer value via
3896         ASM_OUTPUT_EH_type if they have been specified.
3897         * config/ia64/ia64.c (rtx_needs_barrier): Add flushrs.
3898         (ia64_init_builtins): Add __builtin_ia64_bsp
3899         and __builtin_ia64_flushrs.
3900         (ia64_expand_builtin): Add IA64_BUILTIN_BSP and
3901         IA64_BUILTIN_FLUSHRS.
3902         * config/ia64/ia64.h (ia64_builtins): Add IA64_BUILTIN_BSP and
3903         IA64_BUILTIN_FLUSHRS.
3904
3905         * config/ia64/ia64.md (flushrs): New insn to flush the register
3906         stack.  Add to unspec list.
3907
3908         * config/ia64/crtbegin.asm (frame_object): Change size.
3909         (__do_frame_setup_aux): New function.
3910         * config/ia64/crtend.asm: call __do_frame_setup_aux.
3911         * config/ia64/t-ia64 (LIB2ADDEH): Add.
3912         * Makefile.in (LIB2ADDEH): Add.
3913         (LIB2ADD): Use LIB2ADDEH.
3914
3915 2000-05-24  Richard Henderson  <rth@cygnus.com>
3916
3917         * recog.c (offsettable_address_p): If mode size is zero, assume
3918         BIGGEST_ALIGNMENT.
3919
3920 2000-05-24  J. David Anglin  <dave@hiauly.hia.nrc.ca>
3921
3922         * configure.in: Check for -Wno-long-long option support and improve
3923         handling of warning CFLAGS for stages 1 and 2.
3924         * Makefile.in (WARN_CFLAGS): Move definition to configure.in.
3925         * configure: Regenerate.
3926
3927 Wed May 24 19:37:53 2000  Jeffrey A Law  (law@cygnus.com)
3928
3929         * gcc.texi: Remove contributor list.  Instead include contrib.texi.
3930         * contrib.texi: New file.
3931
3932 Thu May 25 02:27:22 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3933
3934         * loop.c (basic_induction_var): Avoid double recording of an increment.
3935
3936 Thu May 25 02:19:27 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3937
3938         * Back out this patch:
3939         Tue Dec  7 19:22:06 1999  Richard Henderson  <rth@cygnus.com>
3940           * loop.h (struct induction): Add multi_insn_incr.
3941           * loop.c (basic_induction_var): New multi_insn_incr argument.
3942           Set it if we search back through previous insns for the biv.
3943           (record_biv): New multi_insn_incr argument; fill in struct induction.
3944           (strength_reduce): Discard an iv with multiple bivs, any of
3945           which require multiple insns to increment.
3946
3947         * loop.c (check_insn_for_bivs): Remove bits copied from above patch.
3948
3949 Thu May 25 02:09:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3950
3951         * rtl.h (loc_mentioned_in_p): Declare.
3952         * reload.c (loc_mentioned_in_p): Moved from here...
3953         * rtlanal.c (loc_mentioned_in_p): to here.  No longer static.
3954         Fix loop increment for 'E' handling.
3955         * loop.c (strength_reduce): When doing biv->giv conversion,
3956         take multi-insn biv increments into account.
3957
3958 2000-05-24  Jason Merrill  <jason@casey.soma.redhat.com>
3959
3960         * stmt.c (expand_end_bindings): Look through NOTEs to find a
3961         BARRIER.
3962
3963 2000-05-24  Mark Mitchell  <mark@codesourcery.com>
3964
3965         * calls.c (expand_call): Handle cleanups in tail-recursion
3966         arguments analagously to cleanups in sibling calls.
3967
3968 2000-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3969
3970         * simplify-rtx.c: Rename macro SIGN_EXTEND to HWI_SIGN_EXTEND.
3971         All callers changed.
3972
3973 2000-05-24  Alexandre Oliva  <aoliva@cygnus.com>
3974
3975         * expr.c (expand_assignment, store_expr, expand_expr,
3976         expand_expr_unaligned): Set in_check_memory_usage while emitting
3977         chkr_check_addr libcall.
3978
3979 2000-05-24  Nick Clifton  <nickc@cygnus.com>
3980
3981         * fold-const.c (extract_muldiv): When constructing a
3982         multiplier/divisor, do not expect const_binop to correctly
3983         determine if overflow has occured, so check explicitly.
3984
3985 2000-05-24  Alexandre Oliva  <aoliva@cygnus.com>
3986
3987         * c-decl.c (build_enumerator): Don't modify the value's type,
3988         convert it.
3989
3990 2000-05-24  Andreas Jaeger  <aj@suse.de>
3991
3992         * mips.h (LINKER_ENDIAN_SPEC): Pass -EL to linker by default.
3993
3994 2000-05-24  Eric Christopher <echristo@cygnus.com>
3995
3996         * configure.in: Redefine inhibit_libc conditions.
3997         * libgcc2.c: Remove inhibit_libc conditional define.
3998         * configure: Regenerate.
3999
4000 2000-05-24  Phil Edwards  <pme@sourceware.cygnus.com>
4001
4002         * configure.in:  For --enable-languages=LIST, check for empty LIST.
4003         * configure:  Regenerate.
4004
4005 2000-05-24  Lars Brinkhoff  <lars@nocrew.org>
4006
4007         * pdp11.h (STACK_BOUNDARY): Define.
4008
4009 2000-05-24  Jakub Jelinek  <jakub@redhat.com>
4010
4011         * ifcvt.c (if_convert): Update life info globally.
4012
4013 2000-05-24  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
4014
4015         * emit-rtl.c (unshare_all_decls): New function.
4016         (unshare_all_rtl): Call it.
4017
4018 2000-05-23  Nick Clifton  <nickc@cygnus.com>
4019
4020         * configure.in: Treat 'strongarm' as if it were 'arm' when
4021         determining cpu type.
4022
4023         * configure: Regenerate.
4024
4025         * config/arm/arm.c: Change 'char *' to 'const char *' for cases
4026         where constant strings are involved.
4027
4028         * config/arm/arm.h (arm_condition_codes): Change type to 'const
4029         char *'.
4030
4031         * config/arm/arm-protos.h: Change 'char *' to 'const char *' for
4032         cases where constant strings are involved.
4033
4034 Tue May 23 15:08:31 2000  Clinton Popetz  <cpopetz@cygnus.com>
4035
4036         * config/sh/sh.c (gen_far_branch, split_branches): Update
4037         to reflect new prototypes for redirect_jump and invert_jump.
4038         (sh_insn_length_adjustment): Get rid of const warnings.
4039
4040 2000-05-23  Kazu Hirata  <kazu@hxi.com>
4041
4042         * invoke.texi (Options for Debugging Your Program or GCC): Update
4043         the names of dump files.
4044
4045 Tue May 23 13:58:52 2000  Philippe De Muyter  <phdm@macqel.be>
4046
4047         * configure.in (NO_MINUS_C_MINUS_O): Fix thinko in previous fix.
4048         * configure: Regenerated.
4049
4050 2000-05-23  Zack Weinberg  <zack@wolery.cumb.org>
4051
4052         * simplify-rtx.c (SIGN_EXTEND): New macro.
4053         (simplify_unary_operation, simplify_binary_operation,
4054         simplify_relational_operation): Use SIGN_EXTEND.  Make low
4055         halves of (low, high) pairs unsigned if they weren't already.
4056         (simplify_ternary_operation): Cast INTVAL to unsigned before
4057         comparing to a MODE_BITSIZE.
4058
4059 2000-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4060
4061         * aclocal.m4 (gcc_AC_CHECK_DECL, gcc_AC_CHECK_DECLS): New macros
4062         rewritten from the internals of gcc_AC_NEED_DECLARATION{S}.
4063
4064         * configure.in (gcc_AC_CHECK_DECLS): Call this instead of
4065         gcc_AC_NEED_DECLARATIONS.
4066
4067         * dwarfout.c: Don't prototype time().
4068
4069         * gcc.c: Check HAVE_DECL_* instead of NEED_DECLARATION_*.
4070
4071         * system.h: Likewise.
4072
4073         * toplev.c: Likewise.
4074
4075 2000-05-23  Zack Weinberg  <zack@wolery.cumb.org>
4076
4077         * c-decl.c (pushdecl): Invert sense of test for non-global types.
4078
4079 Tue May 23 18:11:42 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4080
4081         * reload1.c (reload_cse_move2add): Honor TRULY_NOOP_TRUNCATION.
4082
4083 2000-05-23  Jonathan Larmour  <jlarmour@redhat.co.uk>
4084
4085         * config/mips/elf64.h (CTOR_LISTS_DEFINED_EXTERNALLY): Define
4086
4087 Tue May 23 06:50:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4088
4089         * config/alpha/alpha.c: Remove #ifdef HAIFA since now only scheduler.
4090         (alpha_start_function): Never write ..ng label if VMS or NT.
4091         (alpha_align_insns): Remove GP_IN_USE arg.
4092         Alignment now unsigned.
4093         (alpha_reorg): Don't pass GP_IN_USE arg to alpha_align_insns.
4094         * config/alpha/alpha.md (prologue_ldgp): Split into one define_expand
4095         and two define_insn's.
4096
4097 2000-05-22  Richard Henderson  <rth@cygnus.com>
4098
4099         * combine.c (simplify_comparison): Use trunc_int_for_mode.
4100
4101 2000-05-22  Richard Henderson  <rth@cygnus.com>
4102
4103         * stor-layout.c (place_field): Change rli->size to rli->offset.
4104
4105 2000-05-22  Richard Henderson  <rth@cygnus.com>
4106
4107         * function.c (thread_prologue_and_epilogue_insns): Make sure
4108         existing line number notes appear after the prologue.
4109
4110 Mon May 22 21:49:00 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4111
4112         * config/alpha/alpha.c (alpha_fnname): New static variable.
4113         (print_operand, case '~'): New case.
4114         (alpha_expand_prologue): Emit prologue_ldgp insn if needed.
4115         (alpha_start_function): Set alpha_fnname.
4116         Write "ng" label if no ldgp; don't write ldgp insn.
4117         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): New case '~'.
4118         * config/alpha/alpha.md (prologue_ldgp): New define_insn.
4119
4120 Mon May 22 11:30:48 2000  Clinton Popetz  <cpopetz@cygnus.com>
4121
4122         * jump.c (jump_optimize_1): Don't increment LABEL_NUSES
4123         on deleted labels.
4124
4125 2000-05-22  Zack Weinberg  <zack@wolery.cumb.org>
4126
4127         * varasm.c (eh_frame_section): Revert change to argument list.
4128
4129 Mon May 22 13:14:03 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4130
4131         * optabs.c (can_extend_p): Allow unsignedp to have any nonzero value.
4132         (gen_extend_insn, can_fix_p, can_float_p): Likewise.
4133
4134         * final.c (final_scan_insn, case NOTE_INSN_FUNCTION_BEG): Remove
4135         dangling "else" that causes "break" to be conditional.
4136         Also remove unneeded code at start.
4137
4138 Mon May 22 17:31:35 2000  Philippe De Muyter  <phdm@macqel.be>
4139
4140         * m68k/m68k.h (STORE_FLAG_VALUE): Macro set to (-1), not -1.
4141         * fx80/fx80.h, i370/i370.h, m88k/m88k.h (STORE_FLAG_VALUE): Ditto.
4142         * gmicro/gmicro.h, we32k/we32k.h (STORE_FLAG_VALUE): Ditto.
4143
4144 2000-05-22  Jakub Jelinek  <jakub@redhat.com>
4145
4146         * config/sparc/sparc.md (movdf_insn_v9only_vis): fzero has
4147         just one argument.
4148
4149 Mon May 22 06:57:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4150
4151         * alias.c (record_component_aliases): New function.
4152         * tree.h: Clean up some declarations and comments.
4153         (record_component_aliases): New declaration.
4154         * tree.c (get_alias_set): If type and has alias set, use it.
4155
4156 2000-05-22  Richard Henderson  <rth@cygnus.com>
4157
4158         * simplify-rtx.c (simplify_ternary_operation): Try to simplify
4159         IF_THEN_ELSE to a setcc form.
4160         * jump.c (can_reverse_comparison_p): Be prepared for insn null.
4161
4162 2000-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4163
4164         * fixinc/inclhack.def (sun_malloc): Handle `calloc'.
4165         (sun_malloc, sysz_stdtypes_for_sun): Add test_text.
4166
4167 Sun May 21 16:42:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4168
4169         * combine.c (try_combine): Handle i3_subst_into_i2 case when I2 is
4170         not a PARALLEL.
4171
4172 2000-05-20  Alexandre Oliva  <aoliva@cygnus.com>
4173
4174         * config/mn10300/mn10300.md (movdi, movdf): 64-bit clean-up.
4175         * config/mn10300/mn10300.c (print_operand): Likewise.
4176
4177         * final.c (split_double): Right shift of negative values is not
4178         portable.
4179
4180         * ifcvt.c (if_convert): Scan and kill dead code.
4181
4182         * emit-rtl.c (unshare_all_rtl): Store the copied rtx.
4183
4184 2000-05-20  Zack Weinberg  <zack@wolery.cumb.org>
4185
4186         * diagnostic.c: Eliminate implicit int.
4187         * except.c, gcc.c: Add static prototypes.
4188         * final.c (final_end_function): Mark file arg ATTRIBUTE_UNUSED.
4189         * gensupport.c (process_rtx): Use XVEC to initialize vector
4190         slot of 'split'.
4191
4192         * print-rtl.c: If DEBUG_REGISTER_NAMES, define static
4193         debug_reg_names instead of static reg_names.  If not, define
4194         global reg_names.
4195         * regclass.c: Don't define global reg_names unless
4196         DEBUG_REGISTER_NAMES is defined.
4197
4198         * reload1.c (order_regs_for_reload): Remove unused variable.
4199         * varasm.c: Include output.h after defaults.h.  Define
4200         eh_frame_section as function of no args, not of unspecified args.
4201
4202         * gcc.c: Constify argbuf; arguments to store_arg,
4203         process_command, main; elements of struct command and struct
4204         switchstr; local variables in execute, process_command, main.
4205
4206 2000-05-20  Bruce Korb  <bkorb@gnu.org>
4207
4208         * fixinc/inclhack.def:  many applications of c_fix=format + tests
4209         * fixinc/check.diff:  regenerated
4210         * fixinc/fixincl.x:  regenerated
4211
4212 Sat May 20 09:30:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4213
4214         * alias.c: Clarify some comments.
4215         (record_base_value): REGNO is unsigned.
4216         * rtl.h (record_base_value): Likewise.
4217
4218         * alias.c (aliases_everything_p): Don't special-case QImode here.
4219         * c-common.c (c_get_alias_set): Do it here.
4220         Handle BIT_FIELD_REF by getting alias info for arg.
4221         Use POINTER_TYPE_P.
4222
4223 2000-05-20  Alexandre Oliva  <aoliva@cygnus.com>
4224
4225         * mklibgcc.in: Restore rule to create ${dir}.
4226
4227 Sat May 20 08:45:41 2000  H.J. Lu  <hjl@gnu.org>
4228
4229         * Makefile.in (libgcc.mk): Depend on xgcc$(exeext) for
4230         GCC_FOR_TARGET used by MULTILIBS.
4231         * mklibgcc.in: Make sure each .o file depends on the
4232         directory it will be in.
4233         Make the multilib directory depends libgcc.
4234
4235 Sat May 20 08:29:28 2000  H.J. Lu  <hjl@gnu.org>
4236
4237         * Makefile.in (bootstrap): Unset LANG_LIB2FUNCS for stage 1.
4238
4239 Sat May 20 07:27:35 2000  Alexandre Oliva  <aoliva@cygnus.com>
4240
4241         * fold-const.c (make_range): Handle degenerated intervals.
4242         Fixes c-torture/execute/991221-1.c
4243
4244 Fri May 19 18:16:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4245
4246         * cse.c (cse_basic_block): Only call find_reg_note if REG_NOTES not 0.
4247         * reload.c (find_equiv_reg): Likewise.
4248         * alias.c (init_alias_analysis): Likewise.
4249         Only call prologue_epilogue_contains on insns.
4250         * basic-block.h (REG_SET_TO_HARD_REG_SET): Call new function.
4251         * bb-reorder.c (hard-reg-set.h): Include earlier.
4252         * haifa-sched.c (hard-reg-set.h): Likewise.
4253         * ifcvt.c (hard-reg-set.h): Likewise.
4254         * local-alloc.c (hard-reg-set.h): Likewise.
4255         * loop.c (hard-reg-set.h): Likewise.
4256         * predict.c (hard-reg-set.h): Likewise.
4257         * regrename.c (hard-reg-set.h): Likewise.
4258         * flow.c (hard-reg-set.h): Likewise.
4259         (reg_set_to_hard_reg_set): New function.
4260         * bitmap.c (regs.h, basic-block.h): No longer include.
4261         (bitmap.h): Now include.
4262         * conflict.c (hard-reg-set.h): Include.
4263         * profile.c (hard-reg-set.h): Likewise.
4264         * print-rtl.c (hard-reg-set.h): Likewise.
4265         * sbitmap.c (hard-reg-set.h): Likewise.
4266         * toplev.c (hard-reg-set.h): Likewise.
4267         * unroll.c (hard-reg-set.h, basic-block.h): Likewise.
4268         * hard-reg-set.h (reg_names): Now constant.
4269         * regs.h (reg_names): Likewise.
4270         * regclass.c (reg_names): Likewise.
4271         * loop.h (basic-block.h): No longer include.
4272         (bitmap.h): Now include.
4273         * reload1.c (order_regs_for_reload): Avoid loop over reg sets.
4274         * Makefile.in (LOOP_H, sbitmap.o, profile.o): Reflect above changes.
4275         (toplev.o, print-rtl.o, conflict.o, unroll.o, bitmap.o): Likewise.
4276
4277 2000-05-19  Jan Hubicka  <jh@suse.cz>
4278             Richard Henderson  <rth@cygnus.com>
4279
4280         * basic-block.h (struct edge_def): New field "count".
4281         (struct basic_block_def): Likewise.
4282         * flow.c (entry_exit_blocks): Add count fileds.
4283         (split_edge): Keep count information up-to-date.
4284         (dump_edge_info, dump_flow_info): Dump count fields.
4285
4286         * final.c (count_instrumented_edges): Rename to edge from arc.
4287         (end_final): Update users.
4288         * profile.c: Include expr.h, basic-block.h.
4289         (struct adj_list, ARC_TARGET, ARC_SOURCE, ARC_COUNT): Kill.
4290         (struct bb_info, label_to_bb, label_to_bb_size, bb_graph): Kill.
4291         (ignore_next_note, return_label_execution_count): Kill.
4292         (bbg_file_name, da_file_name): Kill.
4293         (edge_info, bb_info): New structures.
4294         (EDGE_INFO, BB_INFO, GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): New macros.
4295         (count_instrumented_edges, total_num_edges): Rename to edge from arc.
4296         (total_num_edges_instrumented): Likewise.
4297         (init_arc, expand_spanning_tree): Kill.
4298         (fill_spanning_tree, tablejump_entry_p): Kill.
4299         (instrument_edges):  Rewrite from instrument_arcs to use
4300         commit_edge_insertions infrastructure.
4301         (compute_branch_probabilities): Remove arguments; rewrite for
4302         CFG infrastructure; use rtl_dump_file directly.
4303         (branch_prob, find_spanning_tree): Likewise.
4304         (union_groups, find_group): New.
4305         (init_branch_prob): Make bbg_file_name and da_file_name local.
4306         (end_branch_prob): Use rtl_dump_file directly.
4307         (init_edge_profiler): Rename to edge from arc.
4308         (output_arc_profiler): Kill.
4309         (gen_edge_profiler): New.
4310         (output_func_start_profiler): Turn off profiling.  Make the
4311         constructor static when we can.
4312         * rtl.h (branch_prob, end_branch_prob): Update prototypes.
4313
4314         * toplev.c (DFI_flow): Remove.
4315         (DFI_cfg, DFI_life): New.
4316         (dump_file): Update accordingly.
4317         (compile_file): Call end_branch_prob if profile_arc_flag too.
4318         (rest_of_compilation): Move flow1 cfg creation to DFI_cfg.  Do edge
4319         profiling after the CFG is built.  Move flow1 life analysis to
4320         DFI_life.  Always estimate remaining probabilities.
4321
4322 2000-05-19  Richard Henderson  <rth@cygnus.com>
4323
4324         * ifcvt.c (find_if_case_2): Don't allow THEN to be EXIT.
4325
4326         * flow.c (make_edges): The sibling call edge to exit is abnormal.
4327
4328 2000-05-19  Richard Henderson  <rth@cygnus.com>
4329
4330         * jump.c (redirect_jump): Add delete_unused argument.  Don't
4331         remove labels and code following when LABEL_NUSES goes to zero.
4332         (invert_jump): Likewise.
4333         (jump_optimize_1): Fix redirect/invert arguments.
4334         (do_cross_jump, thread_jumps): Likewise.
4335         * flow.c (split_edge): Likewise.
4336         * reorg.c (optimize_skip): Likewise.
4337         (reorg_redirect_jump, relax_delay_slots, dbr_schedule): Likewise.
4338         * profile.c (instrument_arcs): Likewise.
4339         * loop.c (find_and_verify_loops): Likewise.  Fix indentation.
4340         * rtl.h: Update prototypes.
4341
4342 Fri May 19 12:05:13 2000  Clinton Popetz  <cpopetz@cygnus.com>
4343
4344         * ssa.c (convert_from_ssa): Tell life_analysis we need death
4345         notes.
4346         (make_regs_equivalent_over_bad_edges): Only look at abnormal
4347         critical edges.
4348
4349 2000-05-19  Zack Weinberg  <zack@wolery.cumb.org>
4350
4351         * cpphash.c (funlike_macroexpand): Make sure not to walk p1
4352         past l1 when deleting whitespace and markers.
4353
4354         * cpplex.c (_cpp_scan_until): Clear AUX field of tokens.
4355         * cpplib.c (do_unassert): Put the list to compare against on
4356         the stack.
4357
4358 2000-05-19  Bruce Korb  <bkorb@gnu.org>
4359
4360         * fixinc/README:  cleaned up old documentation
4361         * fixinc/check.diff: regenerated & verified on OSR5 on ix86
4362         * fixinc/check.tpl: compute the list of needed directories
4363         emit "#if defined(name)" because of conflict
4364         omit machine name differences from output differences
4365         * fixinc/inclhack.def( m88k_multi_incl ):  Use `wrap' function
4366         (machine_name): change test text to use `sed' markers
4367         * fixinc/fixincl.x: regen
4368
4369 Fri May 19 06:49:35 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4370
4371         * config/elfos.h (SELECT_SECTION): Don't access DECL_INITIAL of
4372         a CONSTRUCTOR.
4373
4374 2000-05-18  Chris Demetriou  <cgd@sibyte.com>
4375
4376         * gcc.texi (MULTILIB_EXCEPTIONS): Correct example and update
4377         it to match the current practice.
4378
4379 2000-05-18  Mark Mitchell  <mark@codesourcery.com>
4380
4381         * Makefile.in (STAGESTUFF): Fix typo in spelling of s-under.
4382
4383 2000-05-18  Richard Henderson  <rth@cygnus.com>
4384
4385         * rtlanal.c (insn_dependant_p, insn_dependant_p_1): New.
4386         * rtl.h (insn_dependant_p): Declare it.
4387         * loop.c (strength_reduce): Use it.
4388
4389 2000-05-18  Alexandre Oliva  <aoliva@cygnus.com>
4390
4391         * config/mn10300/mn10300.c (expand_prologue, expand_epilogue):
4392         16-bit and 64-bit clean-up.
4393
4394 2000-05-18 Mark Elbrecht <snowball3@bigfoot.com>
4395
4396         * configure.in (*-pc-msdosdjgpp): Set float_format to none.
4397         * configure: Rebuilt.
4398
4399 2000-05-18  Zack Weinberg  <zack@wolery.cumb.org>
4400
4401         * genopinit.c: Use $ for escape sequences in optab patterns.
4402         Remove backslashes from optab patterns.  Change $A, $B, $C to
4403         expand to (int) whatever instead of just whatever; remove
4404         explicit (int) from all optab patterns.
4405
4406         * gensupport.c (xmalloc, xrealloc, xstrdup): Provide.
4407         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c,
4408         genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
4409         genrecog.c: Remove private copies of xmalloc, xrealloc, and
4410         xstrdup.
4411
4412 2000-05-18  Richard Henderson  <rth@cygnus.com>
4413
4414         * jump.c (jump_optimize_1): Base minimum insn count during
4415         find_cross_jump on BRANCH_COST.
4416
4417 2000-05-18  Jakub Jelinek  <jakub@redhat.com>
4418
4419         * print-rtl.c (print_rtx): Only print note line number as string
4420         if between NOTE_INSN_BIAS and NOTE_INSN_MAX.
4421         * final.c (final_scan_insn): Do nothing for note line number 0.
4422
4423 2000-05-18  Jakub Jelinek  <jakub@redhat.com>
4424
4425         * gcc-common.c (ggc_mark_rtx_children): Mark NOTE_EXPECTED_VALUE
4426         from NOTE_INSN_EXPECTED_VALUE notes and NOTE_SOURCE_FILE from
4427         NOTE_INSN_DELETED_LABEL.
4428
4429 2000-05-18  Nick Clifton  <nickc@cygnus.com>
4430
4431         * config/arm/unknown-elf.h (UNIQUE_SECTION): Place constant,
4432         uninitialised data in .rodata not .bss, and do not interpret an
4433         error in the initialisation value as meaning that the variable
4434         should be placed in the .bss section.
4435
4436 Thu May 18 12:10:18 2000  Philippe De Muyter  <phdm@macqel.be>
4437
4438         * configure.in (NO_MINUS_C_MINUS_O): Test `$ac_cv_prog_cc_${ac_cc}_c_o',
4439         not `$ac_cv_prog_cc_cc_c_o'.
4440         * configure: Regenerated.
4441
4442 2000-05-18  Chris Demetriou  <cgd@sibyte.com>
4443             Richard Henderson  <rth@cygnus.com>
4444
4445         * c-common.h (enum c_tree_index): Add g77 type entries.
4446         (g77_integer_type_node, g77_uinteger_type_node): New.
4447         (g77_longint_type_node, g77_ulongint_type_node): New.
4448         * c-decl.c (init_decl_processing): Initialize them.
4449
4450 2000-05-18  Richard Henderson  <rth@cygnus.com>
4451
4452         * config/h8300/h8300.md (subs patterns): Use %G to negate.
4453
4454         * config/h8300/h8300.c (ok_for_bclr): Take a HOST_WIDE_INT.
4455         (small_power_of_two): Likewise; use exact_log2.
4456         (adds_subs_operand, one_insn_adds_subs_operand): Remove.
4457         (output_adds_subs): Remove.
4458         (two_insn_adds_subs_operand): New.
4459         (split_adds_subs): New.
4460         * config/h8300/h8300-protos.h: Update.
4461         * config/h8300/h8300.h (CONST_OK_FOR_J): Cast to uns HOST_WIDE_INT.
4462         (CONST_OK_FOR_L): Match strict adds operands.
4463         (CONST_OK_FOR_N): Match struct subs operands.
4464         * config/h8300/h8300.md (adds_subs insns): Remove.
4465         (addhi patterns): Output adds/subs directly.
4466         (addsi_h8300h): Likewise.
4467         (addhi/addsi splitters): New.  Decompose two_insn_adds_subs_operand.
4468
4469 2000-05-18  Zack Weinberg  <zack@wolery.cumb.org>
4470
4471         * cppexp.c (parse_assertion): New.
4472         (lex): Call it for CPP_HASH.  Remove CPP_ASSERTION case.
4473         (_cpp_parse_expr): Remove case '#'.  Don't set
4474         parsing_if_directive.
4475         * cpphash.c (collect_objlike_expansion,
4476         collect_funlike_expansion, collect_params,
4477         _cpp_create_definition): The list no longer has a trailing
4478         VSPACE token.
4479         * cpphash.h (enum node_type): Add T_ASSERTION.
4480         (struct hashnode): Remove aschain, add pred.
4481         (struct predicate): New.
4482         Update prototypes.
4483
4484         * cpplex.c (expand_token_space): Handle both offset and
4485         nonoffset lists.
4486         (init_token_list, _cpp_free_token_list, _cpp_parse_assertion): Delete.
4487         (_cpp_init_toklist, _cpp_clear_toklist, _cpp_free_toklist,
4488         _cpp_slice_toklist, _cpp_squeeze_toklist, _cpp_equiv_tokens,
4489         _cpp_equiv_toklists): New.
4490         (_cpp_scan_line): Rename to _cpp_scan_until; add ability to
4491         stop at any single-character token, not just newline.
4492         (_cpp_lex_token): Remove special cases for #define and #if.
4493         (cpp_get_token): Expect # as a separate token type.  Remove
4494         DIRECTIVE case.
4495         (_cpp_get_directive_token): Remove DIRECTIVE case.
4496         (_cpp_lex_line, _cpp_lex_file, _cpp_init_input_buffer): Update.
4497
4498         * cpplib.c (_cpp_check_directive): Set dirno and
4499         SYNTAX_INCLUDE bit of flags, not dir_handler and dir_flags.
4500         (_cpp_handle_directive): Run # <number> through the same logic
4501         as normal directives.
4502         (do_define): Don't set parsing_define_directive.  Use
4503         _cpp_scan_until.  The list does not have a VSPACE at the end.
4504         (do_if): Save, clear, and restore only_seen_white around
4505         _cpp_parse_expr.
4506         (skip_if_group): s/CPP_DIRECTIVE/CPP_HASH/
4507         (do_assert, do_unassert): Rewrite.
4508
4509         * cpplib.h (TTYPE_TABLE): Remove CPP_ASSERTION.
4510         (LIST_OFFSET): New flag.
4511         (struct cpp_toklist): Replace dir_handler and dir_flags with
4512         dirno and flags.
4513         (struct cpp_reader): Remove parsing_if_directive and
4514         parsing_define_directive.
4515
4516 2000-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4517
4518         * fixinc/inclhack.def (broken_cabs): Update fix to handle comments
4519         following the cabs decl which terminate on the following line.
4520         Add the corresponding test_text case.
4521
4522 2000-05-18  Neil Booth  <NeilB@earthling.net>
4523
4524         * cppinit.c (cpp_reader_init): Initialise col_adjust and
4525         default tab stop size.
4526         (no_num, OPT_ftabstop): New.
4527         (handle_option): Handle "ftabstop=" command-line option.
4528         (print_help): Document it.
4529         * cpplex.c (COLUMN): Remove.
4530         (handle_newline): Reset col_adjust.
4531         (skip_whitespace): Update col_adjust as tabs encountered.
4532         (_cpp_lex_line): Update to use col_adjust.  Call
4533         skip_whitespace for all whitespace.
4534         * cpplib.h (struct cpp_options): New member tabstop.
4535         (struct cpp_reader): New member col_adjust.
4536         (CPP_BUF_COL): Update.
4537         (CPP_BUF_COLUMN): New.
4538         * cpp.texi: Document "-ftabstop=" command line option.
4539
4540 Wed May 17 18:19:41 2000  Philippe De Muyter  <phdm@macqel.be>
4541
4542         * configure.in (NO_MINUS_C_MINUS_O): Macro made availabe for AC_OUTPUT
4543         files.
4544         * configure: Rebuilt.
4545
4546 Wed May 17 18:06:12 2000  John David Anglin <dave@hiauly1.hia.nrc.ca>
4547
4548         * mklibgcc.in Add missing -DL$name when compiling modules in libgcc1.c.
4549
4550         * tree.c (build_common_tree_nodes): Do not build TI nodes unless
4551         HOST_BITS_PER_WIDE_INT is >= 64.
4552
4553 2000-05-17  Richard Henderson  <rth@cygnus.com>
4554
4555         * jump.c (jump_optimize_1): Remove inactive but real insns
4556         in jump-to-next-insn optimization.
4557
4558 2000-05-17  Richard Henderson  <rth@cygnus.com>
4559
4560         * toplev.c (rest_of_compilation): Don't call optimize_mode_switching
4561         unless OPTIMIZE_MODE_SWITCHING.  Conditionally set no_new_pseudos.
4562         Don't call recompute_reg_usage if no_new_pseudos is true.
4563         * lcm.c (optimize_mode_switching): Move ifdefs outside function.
4564         Return true if we did work; update global life information.
4565         * basic-block.h (optimize_mode_switching): Update decl.
4566
4567 2000-05-17  Neil Booth  <neilb@earthling.net>
4568
4569         * cpplex.c (expand_name_space): Don't use ptrdiff_t.
4570
4571 2000-05-17  Zack Weinberg  <zack@wolery.cumb.org>
4572
4573         * cpplib.c: New feature, #pragma system_header.
4574         * cpp.texi: Document special treatment of system headers, and
4575         the various mechanisms to get a header that special treatment.
4576
4577 2000-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4578
4579         * system.h (offsetof): Define at the very end, to ensure we prefer
4580         the platform's definition if available.
4581
4582 2000-05-16  Bruce Korb  <bkorb@gnu.org>
4583
4584         * fixinc/fixincl.c: improve the debug displays, ignore SIGPIPE
4585         * fixinc/server.c: likewise
4586         * fixinc/fixfixes.c( char_macro_def_fix ): fix regex
4587         + #ifdef debugging code + use #def constant for
4588         sub-pattern count
4589         * fixinc/inclhack.def( hpux11_fabsf ): Keep HP-UX 11 from stomping
4590         on C++ math namespace
4591
4592 2000-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4593
4594         * fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix):
4595         Don't check the return value of sprintf.  Use asprintf to avoid
4596         buffer overflows.
4597
4598 Wed May 17 17:27:44 2000  Andrew Cagney  <cagney@b1.cygnus.com>
4599
4600         * flags.h (warn_unused_function, warn_unused_label,
4601         warn_unused_parameter, warn_unused_variable, warn_unused_value):
4602         Replace ``warn_unused''.
4603         (set_Wunused): Add declaration.
4604         * toplev.c (set_Wunused): New function.
4605         (warn_unused_function, warn_unused_label, warn_unused_parameter,
4606         warn_unused_variable, warn_unused_value): New variables.
4607         (W_options): Add -Wunused-function, -Wunused-function,
4608         -Wunused-label, -Wunused-parameter, -Wunused-variable and
4609         -Wunused-value.  Delete -Wunused.  Handled in decode_W_option.
4610
4611         * toplev.c (decode_W_option): Update -Wunused flags by calling
4612         set_Wunused.
4613         * c-decl.c (c_decode_option): Ditto for -Wall.
4614
4615         * stmt.c (expand_expr_stmt, expand_expr_stmt,
4616         warn_about_unused_variables): Replace warn_unused with more
4617         explicit warn_unused_value et.al.
4618         * function.c (expand_function_end): Ditto.
4619         * c-typeck.c (internal_build_compound_expr,
4620         internal_build_compound_expr): Ditto.
4621         * c-decl.c (poplevel, pop_label_level): Ditto.
4622         * toplev.c (check_global_declarations): Replace warn_unused with
4623         check for either warn_unused_function or warn_unused_variable.
4624
4625         * gcc.1, invoke.texi (Warning Options): Document
4626         -Wunused-function, -Wunused-function, -Wunused-label,
4627         -Wunused-parameter, -Wunused-variable and -Wunused-value options.
4628
4629 Wed May 17 10:28:12 2000  Philippe De Muyter  <phdm@macqel.be>
4630
4631         * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Find libgcc1.c in
4632         $(srcdir), not in the current directory.
4633
4634 2000-05-16  Richard Henderson  <rth@cygnus.com>
4635
4636         * config/ia64/crtbegin.asm (__dso_handle): Mark hidden if the
4637         assembler supports it.
4638         (.fini, .init): Use a gp-relative indirect call.
4639         (__do_global_dtors_aux): Preserve the gp; rebundle.
4640         (__do_frame_setup): Likewise.
4641         * config/ia64/crtend.asm (.IA_64.unwind): Don't terminate with -1.
4642         (.init): Use a gp-relative indirect call.
4643         (__do_global_ctors_aux): Preserve the gp.
4644
4645 2000-05-16  Richard Henderson  <rth@cygnus.com>
4646
4647         * flow.c (commit_one_edge_insertion): Be prepared for a return
4648         insn to be inserted on the edge with a normal jump.
4649         * jump.c (jump_optimize_1): Don't look to create return isns.
4650
4651         * flow.c (flow_delete_insn): Don't adjust reference count of notes.
4652         * jump.c (jump_optimize_1): Likewise.
4653         (returnjump_p): Verify the argument is a JUMP_INSN.
4654         * rtl.def (NOTE): Add 5th element for NOTE_INSN_DELETED_LABEL.
4655
4656 2000-05-16  Nick Clifton  <nickc@cygnus.com>
4657
4658         * config/m32r/m32r.c (small_insn_p): Use INSN_P() to replace
4659         GET_RTX_CLASS (GET_CODE ()) == 'i'.
4660         (large_insn_p): Ditto.
4661         (m32r_is_insn): New function: Return true if the insn contains
4662         an executable instruction.
4663         (m32r_adjust_insn): Use m32r_is_insn.
4664         (m32r_sched_reorder): Use m32r_is_insn.
4665         (m32r_sched_variable_issue): Use m32r_is_insn.
4666
4667 2000-05-16  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4668
4669         * rs6000/rs6000.c (rs6000_select_section): Treat CONSTRUCTOR like
4670         VAR_DECL.
4671
4672         * rs6000/sysv4.h (ASM_OUTPUT_DWARF_ADDR): Delete unused variable.
4673
4674         * rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Define __unix and __linux
4675         according to given options.
4676
4677 Tue May 16 12:17:31 2000  Jeffrey A Law  (law@cygnus.com)
4678
4679         * mn10200.h (PREFERRED_RELOAD_CLASS): Do not prefer DATA_REGS
4680         if X has VOIDmode either.
4681         (LIMIT_RELOAD_CLASS): Similarly.
4682
4683         * mn10200.md (indirect_jump, tablejump): Use "register_operand",
4684         not "general_operand" to match the processor's capabilities.
4685
4686 2000-05-16  Bruce Korb  <bkorb@gnu.org>
4687
4688         * fixinc/README:  corrected return address
4689         * fixinc/check.diff:  regenerate, now that test works
4690         * fixinc/fixfixes.c(format_fix,format_write): reformatted
4691         (char_macro_def_fix,char_macro_use_fix): corrected and
4692         rewrote to use regex to parse the text
4693         * fixinc/inclhack.def: more testing
4694         * fixinc/fixincl.x:  regenerated
4695
4696         * fixinc/inclhack.def: added several "test_text" attributes
4697         changed several fixes to use `c_fix = format'
4698         re-alphabetized the fixes
4699
4700         * fixinc/check.diff: regenerate
4701         * fixinc/fixincl.x: regenerate
4702         * fixinc/check.tpl: added `sparc' and `netinet' to the list
4703         of created dirs
4704
4705
4706 2000-05-16  Alexandre Oliva  <aoliva@cygnus.com>
4707
4708         * config/mn10300/mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove.
4709
4710 2000-05-15  Richard Henderson  <rth@cygnus.com>
4711
4712         * toplev.c (rest_of_compilation): Run full jump pass before
4713         find_basic_blocks of flow2.
4714
4715 2000-05-15  Richard Henderson  <rth@cygnus.com>
4716
4717         * jump.c: Fix typos and clarify commentary from last change.
4718         (any_condjump_p): Verify SET_SRC is an IF_THEN_ELSE.
4719         (safe_to_remove_jump_p): Remove.
4720         (condjump_label): Use pc_set.
4721
4722 2000-05-15  Richard Henderson  <rth@cygnus.com>
4723
4724         * ifcvt.c (cond_exec_process_insns): Drop USE and CLOBBER insns
4725         that get in the way after reload.
4726         (cond_exec_process_if_block): Skip a label heading THEN block.
4727
4728 2000-05-15  Richard Henderson  <rth@cygnus.com>
4729
4730         * varasm.c (output_constant_pool): Abort instead of converting
4731         (improperly) deleted labels to zero.
4732
4733 2000-05-16  Neil Booth  <NeilB@earthling.net>
4734
4735         * cpplex.c (parse_string2): Update comment.
4736         (cpp_lex_line): No special assertion treatment for '('.
4737         * cpplib.c (DIRECTIVE_TABLE): Remove SYNTAX_ASSERT.
4738         * cpplib.h (SYNTAX_ASSERT): Remove.
4739
4740 Mon May 15 21:45:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4741
4742         * jump.c (condjump_p):  Mark as depreached.
4743         (any_condump_p): New.
4744         (any_uncondump_p): New.
4745         (pc_set): New.
4746         (safe_to_remove_jump_p): New.
4747         * rtl.h (any_condump_p, any_uncondjump_p, pc_set
4748         safe_to_remove_jump_p): Declare.
4749
4750 Mon May 15 21:07:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4751
4752         * calls.c: Re-install both patches reverted by last patch.
4753         (struct arg_data): New field tail_call_reg.
4754         (initialize_argument_information): Initialize tail_call_reg
4755         (load_register_parameters): New argument flags, use
4756         tail_call_reg when emiting tail call sequence.
4757         (expand_call): Update call of load_register_parameters;
4758         copy unadjusted_args_size to adjusted_args_size.
4759
4760 Mon May 15 19:01:42 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4761
4762         * loop.c (scan_loop, strength_reduce, loop_optimize): Change unroll_p
4763         and bct_p parameters to flags.
4764         * loop.h (LOOP_UNROLL, LOOP_BCT): New constants.
4765         * rtl.h (loop_optimize): Update prototype.
4766         * toplev.c (rest_of_compilation): Update call of loop_optimize.
4767
4768 2000-05-15  Jakub Jelinek  <jakub@redhat.com>
4769
4770         * calls.c (expand_call): Move expand_start_target_temps call after
4771         start_sequence().
4772
4773 2000-05-15  Neil Booth  <NeilB@earthling.net>
4774
4775         * cpphash.c (trad_stringify, warn_trad_stringify,
4776         collect_params): Make some pointers pointers to const.
4777         * cpplex.c (auto_expand_name_space) Guaranteed to always
4778         expand by at least one character.
4779         (SPELL_CHAR, SPELL_NONE): Temporarily reverse order.
4780         (struct token_spelling): Use const U_CHAR * rather than PTR.
4781         (expand_name_space): Fix up token pointers if name space
4782         is moved when expanding.
4783         (INIT_NAME, cpp_scan_line, parse_name, parse_number,
4784         parse_string2, save_comment, spell_token, cpp_output_list):
4785         Update so the routines handle tokens with a direct pointer to
4786         their text, rather than an offset into the token's list's namebuf.
4787         (_cpp_lex_line): Rearrange for clarity.
4788
4789         * cpplib.c (_cpp_check_directive): Similarly.
4790         (do_define): Make SYM a pointer to const.
4791         * cpplib.h (struct cpp_name): Replace offset with direct pointer.
4792         (CPP_INT, CPP_FLOAT): Spelling type should be SPELL_IDENT.
4793         (TOK_OFFSET): Delete.
4794         (TOK_NAME): Update.
4795
4796 2000-05-14  Geoffrey Keating  <geoffk@cygnus.com>
4797
4798         * config/rs6000/rs6000.h (RETURN_ADDRESS_OFFSET): Correct for
4799         64-bit ABI.
4800
4801         * config/rs6000/rs6000.c (logical_operand): Rewrite to take MODE
4802         into account.
4803         (logical_u_operand): Delete.
4804         (non_logical_cint_operand): Rewrite to take MODE into account.
4805         (non_logical_u_cint_operand): Delete.
4806         (boolean_operator): New function.
4807         (print_operand): Add new %q operand.
4808         * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_operator,
4809         remove logical_u_operand and non_logical_u_cint_operand,
4810         update logical_operand and non_logical_cint_operand.
4811         * config/rs6000/rs6000.md: Rewrite the patterns for performing
4812         logical operations to use %q.
4813
4814         * config/rs6000/rs6000.md (movsi): Don't modify RTL in-place.
4815         (movdi): Make similar to movsi.
4816         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): There
4817         is no such thing as a DImode CONST_DOUBLE.
4818         * config/rs6000/rs6000.c (output_toc): Likewise.
4819
4820         * config/rs6000/rs6000.c (output_cbranch): Don't output prediction
4821         codes when old mnemonics are in use.  Print register names
4822         for cc registers when requested.
4823
4824         * optabs.c (expand_float): Don't allow mode widening that causes
4825         double rounding.
4826
4827         * invoke.texi (RS/6000 and PowerPC Options): Update -m64/-m32
4828         flags to their current names -maix64 and -maix32.
4829
4830 2000-05-14  Bruce Korb  <bkorb@gnu.org>
4831
4832         * fixinc/fixfixes.c(wrap_fix): new fix - inserts text before
4833         and/or after current text of file
4834         * fixinc/fixlib.c(must_malloc):
4835         * fixinc/fixlib.h(must_malloc): + reformatting
4836         * fixinc/inclhack.def: replace the "1i" and "$a" sed commands
4837         with usages of ``c_fix = wrap;''
4838         Add several tests and use the ``c_fix = format'' fixer more.
4839         * fixinc/fixincl.x: regen
4840         * fixinc/check.diff: regen
4841         * fixinc/check.tpl: emit the associated header with the missing
4842         test message
4843
4844 Sun May 14 17:58:59 2000  Hans-Peter Nilsson  <hp@axis.com>
4845
4846         * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Do not use unset
4847         variables $src and $dst.
4848
4849 2000-05-13  Gabriel Dos Reis <gdr@codesourcery.com>
4850
4851         * diagnostic.h (DIAGNOSTICS_SHOW_PREFIX_ONCE): New macro.
4852         (DIAGNOSTICS_SHOW_PREFIX_NEVER): Likewise.
4853         (DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE): Likewise.
4854         (struct output_buffer: emitted_prefix_p, prefixing_rule): New
4855         fields.
4856         (set_message_prefixing_rule): Declare.
4857
4858         * diagnostic.c: (current_prefixing_rule): New variable.
4859         (set_message_prefixing_rule): Define.
4860         (output_set_prefix): Adjust buffer->emitted_prefix_p.
4861         (init_output_buffer): Adjust Initialization.
4862         (output_emit_prefix): Rewrite.  Take prefixing rules into account.
4863
4864 Sat May 13 11:05:47 2000  Philippe De Muyter  <phdm@macqel.be>
4865
4866         * ifcvt.c (if_convert): Do not free NULL.
4867
4868 2000-05-12  Nick Clifton  <nickc@cygnus.com>
4869
4870         * config/fr30/fr30.c (fr30_move_double): New function:  Emit code
4871         to move a double word value.
4872         (di_operand): New function: Return true if the operand is suitbale
4873         for a double word move operation.
4874         (nonimmediate_di_operand): New function: Return true if the
4875         operand is a DImode register or MEM.
4876
4877         * config/fr30/fr30.h (PREDICATE_CODES): Add di_operand and
4878         nonimmediate_di_operand.
4879
4880         * config/fr30/fr30-protos.h Add fr30_move_double, di_operand, and
4881         nonimmediate_di_operand.
4882
4883         * config/fr30/fr30.md (movdi): New pattern.  Required because
4884         other patterns generate DImode results.
4885         (movdi_insn): New pattern.
4886
4887 2000-05-12  Richard Henderson  <rth@cygnus.com>
4888
4889         * config/alpha/alpha.c (struct shadow_summary): Define
4890         bitfields as type unsigned int.
4891
4892 Sat May 13 00:09:59 2000  Denis Chertykov  <denisc@overta.ru>
4893
4894         * config/avr/t-avr: Added definition of FLOAT while generates
4895         fp-bit.c
4896
4897         * config/avr/avr.md: `NEXT_INSN (insn)' substituted to `insn' in
4898         peepholes for tst+jump = sbrs/sbrc optimization.
4899
4900 Fry May 12 20:03:00 CEST 2000  Jan Hubicka  <jh@suse.cz>
4901
4902         * expr.c (emit_push_insn): Do not adjust stack pointer when
4903         preallocating.
4904
4905 Fri May 12 19:03:58 2000  Philippe De Muyter  <phdm@macqel.be>
4906
4907         * ggc-simple.c (offsetof): Macro fallback definition moved from here ..
4908         * system.h (offsetof): ... to here.
4909
4910 2000-05-12  Richard Henderson  <rth@cygnus.com>
4911
4912         * Makefile.in (final.o): Depend on BASIC_BLOCK_H.
4913         * final.c (final_end_function): Use app_disable.  Rearrange note
4914         handling into a switch.  Emit deleted labels.
4915         (output_asm_label): Generate label strings for deleted labels.
4916         * flow.c (tail_recursion_label_list): New.
4917         (find_basic_blocks_1): Set label_value_list directly.  Collect list
4918         of tail recursion labels from call_placeholders.  Don't add deleted
4919         labels to the label value list.
4920         (cleanup_cfg): Use free_EXPR_LIST_list.
4921         (flow_delete_insn_chain): Turn non-removable labels into notes.
4922         (flow_delete_block): Don't disable deleting the block because of
4923         a non-removable label.
4924         (tail_recursion_label_p): New.
4925         (merge_blocks_move_predecessor_nojumps): Don't disable the merge
4926         because of a label.
4927         (merge_blocks_move_successor_nojumps): Likewise.  Also move a
4928         jump table.
4929         (merge_blocks): Disable a merge because of tail recursion labels.
4930         * ifcvt.c (merge_if_block): Don't disable a merge because of a label.
4931         Use a more accurate measure of not merging the join block.
4932         (find_if_block): Don't disable conversion because of a label.
4933         (find_if_case_1, find_if_case_2): Likewise.
4934         * jump.c (duplicate_loop_exit_test): Preserve the kind of list
4935         element when copying.
4936         (squeeze_notes): Also leave EH notes.
4937         (mark_jump_label): Ignore deleted labels.  Use an INSN_LIST for
4938         REG_LABEL notes.
4939         (delete_insn): Preserve LABEL_NAME in NOTE_SOURCE_FILE when
4940         deleting a label.
4941         * print-rtl.c (print_rtx): Print NOTE_SOURCE_FILE for
4942         NOTE_INSN_DELETED_LABEL.  Print `[# deleted]' for a label_ref
4943         referring to a deleted label.  Convert tail handling to a switch.
4944         * rtl.def (CODE_LABEL): Rearrange elements to be compatible with NOTE
4945         for NOTE_INSN_DELETED_LABEL.
4946         (NOTE): Fix commentary.
4947         * rtl.h (REG_LABEL): Update commentary wrt INSN_LIST.
4948         (REG_CC_SETTER, REG_CC_USER, REG_LIBCALL): Likewise.
4949         (CODE_LABEL_NUMBER, LABEL_NAME): Update index.
4950         (LABEL_NUSES, LABEL_REFS): Likewise.
4951         * unroll.c (copy_loop_body): Don't copy NOTE_INSN_DELETED_LABEL.
4952
4953 2000-05-12  Bruce Korb  <bkorb@gnu.org>
4954
4955         * fixinc/fixfixes.c(format_write): buglet & relaxed rules
4956         * fixinc/check.diff: updated
4957         * fixinc/inclhack.def: corrected & added some test_text-s
4958         * fixinc/genfixes: removed unneeded options to autogen invocation
4959         * fixinc/fixincl.tpl: Specified the output file
4960         * fixinc/fixfixes.c: visual appearance
4961         * fixinc/fixincl.x: regenerate
4962
4963 2000-05-12  Zack Weinberg <zack@wolery.cumb.org>
4964
4965         * fixinc/fixfixes.c (IO_use_fix, IO_defn_fix, CTRL_use_fix,
4966         CTRL_defn_fix): Delete.
4967         (fix_char_macro_defines, fix_char_macro_uses): Rename to
4968         char_macro_def_fix and char_macro_use_fix, respectively.  Put
4969         them into the FIXUP_TABLE.  Get the string to search for from
4970         a c_fix_arg.
4971
4972         (format_write): New function.
4973         (format_fix): Use it.
4974
4975         (FIX_PROC_HEAD): Constify text parameter.
4976         (machine_name_fix): Constify all char *s.
4977         * fixtests.c (skip_quote): Remove double static.
4978
4979         * inclhack.def (io_def_quotes, io_use_quotes, ctrl_def_quotes,
4980         ctrl_use_quotes): Update for new scheme.
4981         * fixincl.x: Regenerate.
4982
4983 2000-05-12  Alexandre Oliva  <aoliva@cygnus.com>
4984
4985         * config/mn10300/mn10300.h (PREFERRED_DEBUGGING_TYPE): Redefine as
4986         DWARF2_DEBUG.
4987         (DWARF2_ASM_LINE_DEBUG_INFO): Define.
4988         (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
4989
4990 2000-05-11  Robert Lipe <robertlipe@usa.net>
4991
4992         * fixinc/inclhack.def (hpux8_bogus_inlines): Delete bypass for SCO.
4993         * fixincl.x: Regenerate.
4994
4995 2000-05-11  Richard Henderson  <rth@cygnus.com>
4996
4997         * calls.c: Revert both 05-09 patches.
4998
4999 2000-05-11  Alexandre Oliva  <aoliva@cygnus.com>
5000
5001         * config/mn10300/mn10300.c (print_operand): Print FP constants in
5002         hexadecimal.
5003         * config/mn10300/mn10300.md (movsf, movdf): Use the `F' constraint
5004         for FP values.
5005
5006         * mklibgcc.in (EQ): Define it to an equal sign in the Makefile,
5007         and replace any occurrences of `=' in multilib dirs with `$(EQ)'.
5008
5009 2000-05-11  Jason Merrill  <jason@casey.cygnus.com>
5010
5011         * fixinc/fixincl.c (run_compiles): Don't crash on null pz_machine.
5012
5013 2000-05-11  Zack Weinberg  <zack@wolery.cumb.org>
5014
5015         * fixinc/fixfixes.c, fixinc/fixtests.c: Update commentary.
5016
5017 Thu May 11 22:28:05 2000  Denis Chertykov  <denisc@overta.ru>
5018
5019         * config/avr/avr-protos.c (jump_over_one_insn_p): New declaration.
5020         * config/avr/avr.c (jump_over_one_insn_p): New function.
5021         * config/avr/avr.md: New peepholes added. Output test and
5022         conditional jump to "sbrc" or "sbrs" command.
5023
5024 2000-05-11  Mark Elbrecht  <snowball3@bigfoot.com>
5025
5026         * cppmain.c (main): Use IS_DIR_SEPARATOR.
5027
5028 2000-05-11  Jakub Jelinek  <jakub@redhat.com>
5029
5030         * except.c (find_exception_handler_labels_1): New function.
5031         (find_exception_handler_labels): Split into two functions, dive
5032         into CALL_PLACEHOLDERs when looking for exception handler labels.
5033
5034 2000-05-11 Stan Cox <scox@cygnus.com>
5035
5036         * regrename.c (replace_reg_in_block): Improve REG_DEAD handling.
5037         * timevar.def (TV_RENAME_REGISTERS): Move before TV_SCHED2.
5038         * toplev.c (rest_of_compilation): Call regrename_optimize before sched2.
5039
5040 2000-05-11  Bruce Korb  <bkorb@gnu.org>
5041
5042         * fixinc/fixfixes.c (double_slash_fix):  obsolete
5043         (else_endif_label_fix): obsolete
5044         (format_fix):  new, unused as yet
5045         (main): obsolete
5046         * fixinc/fixlib.h: added fix description struct for use by format_fix
5047         * fixinc/fixincl.c: removed the struct & test for SIGIOT befure using
5048         * fixinc/Makefile.in:  compile fixfixes.c and fixtests.c as separate
5049         modules.  Removed the vestiges of the script version.
5050         Added support for "make check".
5051         * fixinc/check.diff: base diff file (needs work!!)
5052         * fixinc/check.tpl: quiet the fixup output
5053         * fixinc/fixtests.c (main): obsolete
5054         * fixinc/fixincl.sh:  don't bother copying fixincl to ..
5055         * fixinc/fixincl.tpl:  provide for arguments to c_fix routines
5056
5057 Thu May 11 11:57:02 MET DST 2000  Jan Hubicka <jh@suse.cz>
5058
5059         * toplev.c (rest_of_compilation): Remove dead code after
5060         combine.
5061
5062 2000-05-11  Zack Weinberg  <zack@wolery.cumb.org>
5063
5064         * cpphash.c (collect_funlike_expansion): Make "# is not
5065         followed by a macro argument name" a pedwarn, not an error.
5066         Preserve the # in the output.  Suppress the warning if lang_asm.
5067
5068 Thu May 11 01:19:31 2000  Jeffrey A Law  (law@cygnus.com)
5069
5070         * configure.in (hppa*64*-*-hpux11*): New target for PA64 support.
5071         * configure: Rebuilt.
5072
5073 2000-05-10 Laurynas Biveinis <lauras@softhome.net>
5074
5075         * i386/xm-djgpp.h (XREF_FILE_NAME): Add mising brace.
5076
5077 2000-05-10  Kazu Hirata  <kazu@hxi.com>
5078
5079         * combine.c (try_combine): Fix a typo.
5080
5081 Wed May 10 21:31:44 2000  Jim Wilson  <wilson@cygnus.com>
5082
5083         * config/ia64/ia64.md (insv): Add comment.
5084
5085 2000-05-10  Richard Henderson  <rth@cygnus.com>
5086
5087         * Makefile.in (libgcc.a, stmp-multilib): Depend on FPBIT and DPBIT.
5088         * mklibgcc.in: Rewrite to not use functions.  Don't shortcut
5089         dependancies on FPBIT and DPBIT.
5090
5091 2000-05-10  Nick Clifton  <nickc@redhat.com>
5092
5093         * flow.c (find_auto_inc): Do not bias REG_N_REFS by loop_depth
5094         when optimising for size.
5095         (mark_used_regs:) Ditto.
5096         (try_pre_increment_1): Ditto.
5097
5098 2000-05-10  Zack Weinberg  <zack@wolery.cumb.org>
5099
5100         * cppexp.c (lex): Use %.*s to print non-NUL-terminated string.
5101         Make error message friendlier.
5102
5103         * cpphash.h (struct hashnode): Use struct hack for name
5104         member.
5105         * cpphash.c (struct hashdummy): New.
5106         (eq_HASHNODE): Second argument is a hashdummy, not a HASHNODE.
5107         (make_HASHNODE): No need to set ->name pointer.  Correct
5108         setting of p.
5109         (cpp_lookup): Make 'dummy' a struct hashdummy.  Tidy up a bit.
5110
5111 2000-05-10  Richard Henderson  <rth@cygnus.com>
5112
5113         * flow.c (find_basic_blocks_1): Remove any spare bb_note
5114         after completion.
5115
5116 2000-05-10  Bruce Korb  <bkorb@gnu.org>
5117
5118         * fixinc/gnu-regex.c:  reg_syntax_t re_syntax_options must be static
5119
5120 2000-05-10  Eric Schweitz  <schweitz@nortelnetworks.com>
5121
5122         * dwarfout.c (dwarfout_finish): Call retry_incomplete_types
5123         after we enter .debug.
5124
5125 2000-05-10  Jason Merrill  <jason@casey.cygnus.com>
5126
5127         * dwarf2out.c (gen_subprogram_die): Fixup die_parent for the
5128         abstract instance of a nested inline function.
5129
5130         * stor-layout.c (finish_record_layout): finalize_type_size
5131         before laying out the pending_statics.
5132
5133 Wed 10 May 09:36:47 2000  Neil Booth  <NeilB@earthling.net>
5134
5135         * cpplex.c (spell_token): New function.
5136         (spell_string, spell_comment, spell_name): fold into
5137         spell_token.
5138         (I, S): Add macros.
5139         (E, H): Remove macros.
5140         (save_comment): Save comment opening characters too.
5141         (_cpp_lex_file): Update to use spell_token.  Tidy up comment
5142         handling.
5143         * cpplib.h (I, S): Add macros.
5144         (E, H): Remove macros.
5145         (TTYPE_TABLE): Update entries for new speller.
5146         (SYNTAX_ASSERT): Remove.
5147
5148 Wed 10 May 09:08:30 2000  Neil Booth  <NeilB@earthling.net>
5149
5150         * cpplex.c (_cpp_lex_line): Maintain PREV_WHITESPACE flag
5151         when removing escaped newlines.  Reverse sense of test for
5152         escaped newline.
5153
5154 2000-05-09  Richard Henderson  <rth@cygnus.com>
5155
5156         * flow.c (find_basic_blocks_1): Do not delete the first
5157         bb_note we run across.
5158         (create_basic_block): Use reorder_insns to move an existing
5159         bb_note to the correct place.
5160
5161 2000-05-09  Richard Henderson  <rth@cygnus.com>
5162
5163         * calls.c (expand_call): Increment currently_expanding_call
5164         before calling optimize_tail_recursion.
5165
5166 Tue May  9 18:54:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5167
5168         * reload1.c (reload_combine): Fix errors in last change.
5169
5170 2000-05-09  Zack Weinberg  <zack@wolery.cumb.org>
5171
5172         * gcc.c (used_arg): Skip over a semicolon at the end of the
5173         split-up loop; don't break out of it.
5174
5175         * Makefile.in (WARN_CFLAGS): Add -Wwrite-strings.
5176         (tree.o): Depend on output.h.
5177
5178         * c-decl.c (pending_invalid_xref_file,
5179         current_function_prototype_file): Constify.
5180         (pushdecl): Constify a local char *.
5181         (define_label): Constify filename parameter.
5182         * c-lex.c (init_parse): Constify parameter and return value.
5183         * c-typeck.c (c_expand_asm_operands): Constify filename parameter.
5184         * c-tree.h: Update prototypes.
5185         * c-parse.in: Constify filename member of %union, and if_stmt_file.
5186         * c-parse.y, c-parse.c, c-parse.h, objc/objc-parse.y,
5187         objc/objc-parse.c: Regenerate.
5188
5189         * dwarfout.c (dwarfout_init): Constify main_input_filename parameter.
5190         * dwarfout.h: Update prototypes.
5191         * expr.c (expand_expr): Constify a local char *.
5192         * flags.h: Constify main_input_filename.
5193         * function.c (expand_function_end): Constify filename parameter.
5194         * genrecog.c (make_insn_sequence): Use a character array for
5195         c_test_pos.
5196         (main): Remove unused variables.
5197         * input.h: Constify input_filename, main_input_filename, and
5198         file_stack.name.  Update prototypes.
5199         * output.h: Declare first_global_object_name and
5200         weak_global_object_name here, as const char *.
5201         * stmt.c (expand_asm_operands): Constify filename parameter.
5202         * toplev.c (compile_file, push_srcloc, debug_start_source_file):
5203         Constify filename parameter.
5204         (input_filename, main_input_filename): Constify.
5205         * toplev.h: Update prototypes.
5206         * tree.c: Include output.h.  Don't declare
5207         first_global_object_name or weak_global_object_name.  Clean up string
5208         bashing in get_file_function_name_long.
5209         * tree.h (struct tree_decl): Constify filename member.
5210         (input_filename): Constify.
5211         Update prototypes.
5212         * varasm.c (first_global_object_name, weak_global_object_name):
5213         Constify.
5214         (assemble_start_function, assemble_variable): Clean up string bashing.
5215
5216         * gcc.c: Constify all spec-related strings initialized,
5217         transitively, from string constants.  Constify all strings
5218         and string variables related to multilibs.
5219         (set_spec, read_specs): Cast argument to free to PTR.
5220         (used_arg): Do not modify multilib_matches.  Use strncmp plus
5221         length comparison to compare multilib switches.
5222         * genmultilib: Constify everything declared in multilib.h.
5223
5224 Tue May  9 22:28:03 2000  Denis Chertykov  <denisc@overta.ru>
5225
5226         * flow.c (flow_delete_insn): Use INSN_DELETED_P for marking insn
5227         as deleted.
5228
5229 Tue May  9 20:52:43 2000  Denis Chertykov  <denisc@overta.ru>
5230
5231         * config/avr/avr-protos.h (extra_constraint): change a type of
5232         second argument from char to int to avoid warnings.
5233         (asm_output_byte): Likewise.
5234
5235         * config/avr/avr.c (MAX_LD_OFFSET) New macro.
5236         (initial_elimination_offset): Handle elimination from
5237         FRAME_POINTER_REGNUM to STACK_POINTER_REGNUM.
5238         (legitimate_address_p): Use MAX_LD_OFFSET.
5239         (legitimize_address): Likewise.
5240         (out_movqi_r_mr): Likewise.
5241         (out_movhi_r_mr): Likewise, use `fatal_insn' instead of `fatal'.
5242         (out_movsi_r_mr): Use MAX_LD_OFFSET.
5243         (out_movsi_mr_r): Likewise.
5244         (out_movqi_mr_r): Likewise.
5245         (out_movhi_mr_r): Likewise.
5246         (notice_update_cc): Correct CC for the ashrqi3 with the shift
5247         count as CONST_INT != 6.
5248         (ashlqi3_out): Coding style modifications. Run `fatal_insn' if
5249         shift count is a CONSTANT_P, but not a CONST_INT.
5250         (ashlhi3_out): Coding style modifications.
5251         (ashlsi3_out): Likewise.
5252         (ashrhi3_out): Likewise.
5253         (ashrsi3_out): Likewise.
5254         (lshrhi3_out): Likewise.
5255         (lshrsi3_out): Likewise.
5256         (ashrqi3_out): Generate shift for any known constant count without
5257         scratch register. Run `fatal_insn' if shift count is a CONSTANT_P,
5258         but not a CONST_INT.
5259         (lshrqi3_out): Coding style modifications. Run `fatal_insn' if
5260         shift count is a CONSTANT_P, but not a CONST_INT.
5261         (extra_constraint): change a type of
5262         second argument from char to int to avoid warnings.
5263         (asm_output_byte): Likewise.
5264         (asm_file_end): Output size generated commands count as a hex
5265         number too.
5266
5267         * config/avr/avr.h (RETURN_ADDR_RTX): New macro.
5268
5269         * config/avr/avr.md (addhi3): Fragment commented by &&0 is
5270         removed.
5271         (ashlqi3): Values of "length" attribute changed. Shift count
5272         uses constraints 'n' instead of 'i'.
5273         (ashrqi3): Likewise. Values of "cc" attribute changed. Generate
5274         shifts without clobber register.
5275         (lshrqi3): Shift count uses constraints 'n' instead of 'i'.
5276         (call_insn): Correct test for which_alternative == 1 (was 0).
5277         (call_value_insn): Likewise.
5278
5279         * config/avr/t-avr: Remove definition of FLOAT while generates
5280         fp-bit.c
5281
5282 2000-05-09  Bruce Korb  <bkorb@gnu.org>
5283
5284         * fixinc/check.tpl:  Template for checking fixes
5285         * fixinc/inclhack.def:  Added 'test_text' for many fixes
5286         disable hpux8_bogus_inlines on SCO
5287         * fixinc/fixinc.sco:  Oh, yes, we don't need this any more.
5288
5289 Tue May  9 16:30:27 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5290
5291         * calls.c (expand_call): Reorganize somewhat in order
5292         to avoid unnecesary recalculation inside loop and make
5293         tail call failure code cleaner.
5294
5295 Tue May  9 06:30:20 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5296
5297         * alias.c (nonlocal_reference_p): Minor reformatting.
5298         * reload.c (find_equiv_reg): Simplify logic for
5299         CALL_INSN_FUNCTION_USAGE since can't have SUBREG or pseudos and
5300         some some reformatting.
5301         * reload1.c (reload_combine): Don't assume everything in
5302         CALL_INSN_FUNCTION_USAGE is a REG and clean up code a bit.
5303
5304 2000-05-08  Richard Henderson  <rth@cygnus.com>
5305
5306         * final.c (current_insn_predicate): New.
5307         (final_scan_insn): Set it.
5308         * output.h (current_insn_predicate): Declare.
5309
5310         * ifcvt.c (cond_exec_process_insns): New argument prob_val.
5311         Attach it to call insns.
5312         (cond_exec_process_if_block): Track probability for true and
5313         false branches.
5314         (dead_or_predicable): Likewise.
5315
5316         * predict.c (PROB_NEVER, PROB_VERY_UNLIKELY): New.
5317         (PROB_UNLIKELY, PROB_EVEN, PROB_LIKELY): New.
5318         (PROB_VERY_LIKELY, PROB_ALWAYS): New.
5319         (estimate_probability, expected_value_to_br_prob): Use them.
5320
5321         * config/ia64/ia64-protos.h (ia64_expand_prediction): Declare.
5322         * config/ia64/ia64.c (ia64_print_operand_address): Handle 'j'.
5323         (ia64_expand_prediction): New.
5324         (emit_insn_group_barriers): Don't look at notes.  Emit barriers
5325         as needed after calls.
5326         (ia64_epilogue_uses): Mark b0 used.
5327         * config/ia64/ia64.md (beq_true, beq_false): Remove.
5328         (bne_true, bne_false): Remove.
5329         (eq_return, eq_not_return, ne_return, ne_not_return): Remove.
5330         (br_true, br_false): New.  Use predicate_operator and
5331         ia64_expand_prediction.
5332         (return_true, return_false): Likewise.
5333         (call_internal): Use ia64_expand_prediction.  Don't emit stop bit.
5334         (call_internal1, call_value_internal): Likewise.
5335         (call_value_internal1, call_multiple_values_internal1): Likewise.
5336
5337         * config/ia64/ia64.c (ia64_direct_return): Require frame size zero.
5338
5339         * config/ia64/ia64.md (extendsfdf2): Split only after reload.
5340
5341 2000-05-08  Richard Henderson  <rth@cygnus.com>
5342
5343         * rtlanal.c (may_trap_p): Consider old-style and volatile
5344         asms to trap.
5345
5346 Mon May  8 17:16:48 2000  Jim Wilson  <wilson@cygnus.com>
5347
5348         * config/ia64/ia64.h (RETURN_ADDR_RTX): Use COUNT not count.
5349
5350 2000-05-08  Richard Henderson  <rth@cygnus.com>
5351
5352         * config/ia64/ia64.h (predicate_operator): Declare.
5353
5354         * config/ia64/ia64.md (extendsfdf2): Split the nop case out
5355         of existance.
5356
5357         * gensupport.c (process_rtx): Copy and post-process each member
5358         of the define_insn rtvec individually.
5359
5360 Mon  8 May 22:17:35 2000  Neil Booth  <NeilB@earthling.net>
5361
5362         * cpplex.c (spell_token): New function.
5363         (TOKEN_LEN): Add 1 for whitespace.
5364         (_cpp_lex_file): Update to use spell_token.
5365         * cpplib.h (E): Remove.
5366         (TTYPE_TABLE): Update CPP_VSPACE entry.
5367
5368 2000-05-08  Richard Henderson  <rth@cygnus.com>
5369
5370         * flow.c (init_propagate_block_info): Watch out for conditional
5371         branch to next instruction, and thus one outgoing edge.
5372
5373         * config/ia64/ia64.c (ia64_encode_section_info): Exit early
5374         for global register variables; don't special case __[CD]TOR_LIST__;
5375         mind ggc_p for string allocation.
5376
5377 2000-05-08  Nick Clifton  <nickc@cygnus.com>
5378
5379         * config/i386/i386.h (ELIMINABLE_REGS): Fix comment.
5380
5381 2000-05-08  Bruce Korb  <bkorb@gnu.org>
5382
5383         * fixinc/mkfixinc.sh:  fixinc.sco is no longer used
5384         i?86-*-msdosdjgpp* no longer uses fixincludes
5385         * fixinc/genfixes:  inclhack.sh and fixincl.sh are no longer generated
5386         * fixinc/inclhack.sh:  deleted
5387         * fixinc/hackshell.tpl:  deleted
5388         * fixinc/inclhack.tpl:  deleted
5389         * fixinc/Makefile.in:  Remove dependencies on above
5390         * fixinc/fixincl.sh:  "DO NOT EDIT" text modified
5391
5392 2000-05-08  Andreas Jaeger  <aj@suse.de>
5393
5394         * config/mips/linux.h: Remove undefines which disabled .ctor/.dtor
5395         support.
5396
5397 2000-05-07  Zack Weinberg  <zack@wolery.cumb.org>
5398
5399         * Makefile.in (LOOSE_CFLAGS): Add /g modifiers to both sed
5400         substitutions.
5401
5402 Sun  7 May 08:43:53 2000  Neil Booth  <NeilB@earthling.net>
5403
5404         * cpplex.c: Move new lexer definitions and prototypes
5405         to top.  Conditional include these and the code if
5406         NEW_LEXER is defined.  Rename functions whose names
5407         clash if this code included.
5408
5409 Sun May  7 00:54:57 EDT 2000  John Wehle  (john@feith.com)
5410
5411         * rtl.def (COND_EXEC): Clarify.
5412
5413         * i386.md (extendsidi2): Clobber (reg:CC 17) in the
5414         same fashion as zero_extendsidi2.
5415
5416 2000-05-06  Richard Henderson  <rth@cygnus.com>
5417
5418         * config/ia64/ia64.c (predicate_operator): New.
5419         (ia64_print_operand): Handle 'J'.
5420         (rtx_needs_barrier): Handle COND_EXEC.
5421         * config/ia64/ia64.h (BRANCH_COST): Define.
5422         (PREDICATE_CODES): Update.
5423         * config/ia64/ia64.md: Docuement used unspec values.
5424         (attr predicable): New.
5425         (movxf, movxf_internal): New.
5426         (extendsfdf2): Don't comment out nop.
5427         (floatdidf2): Remove.
5428         (truncxfsf2, truncxfdf2, floatdixf2): New.
5429         (abssi2, absdi2): Put the neg in the "true" slot.
5430         (conditional branch instructions): Mark not predicable.
5431         (cmov*_internal): Use predicate_operator.  Split to cond_exec.
5432         (abs*_internal): Likewise.
5433         (alloc, set_bsp): Mark not predicable.
5434         (barrier, insn_group_barrier, flush_cache): Likewise.
5435         (define_cond_exec): New.
5436
5437 2000-05-06  Richard Henderson  <rth@cygnus.com>
5438
5439         * c-decl.c: Include "tm_p.h".
5440
5441         * config/ia64/ia64-protos.h: Rearrange decls to reduce ifdef madness.
5442         (fetchadd_operand, ia64_expand_fetch_and_op): Declare.
5443         (ia64_expand_op_and_fetch): Declare.
5444         * config/ia64/ia64.c: Include "toplev.h".  Kill trailing whitespace.
5445         (setjmp_operand): Constify variables for XSTR.
5446         (ia64_encode_section_info): Likewise.
5447         (ia64_print_operand): Use %d for exact_log2; cast 32-bit printed
5448         values to int.
5449         (ia64_asm_output_external): Constify name.
5450         (process_set): Use HOST_WIDE_INT_PRINT_DEC for frame size.
5451         (process_for_unwind_directive): Provide switch default.
5452         (ia64_expand_compare_and_swap): Remove unused variables.
5453         (ia64_expand_builtin): Likewise.
5454         * config/ia64/ia64.h (ASM_OUTPUT_BYTE): Mask and cast value to int
5455         for printing.
5456
5457         * config/ia64/ia64.c (sdata_symbolic_operand): Mark unused args.
5458         (symbolic_operand, function_operand, setjmp_operand): Likewise.
5459         (shift_count_operand, shift_32bit_count_operand): Likewise.
5460         (shladd_operand, fetchadd_operand, ia64_function_prologue): Likewise.
5461         (ia64_function_epilogue, ia64_setup_incoming_varargs): Likewise.
5462         (ia64_function_arg_partial_nregs, ia64_function_value): Likewise.
5463         (ia64_print_operand_address, ia64_secondary_reload_class): Likewise.
5464         (ia64_expand_builtin): Likewise.
5465         (call_multiple_values_operation): Make dest_regno unsigned.
5466
5467 2000-05-06  Richard Henderson  <rth@cygnus.com>
5468
5469         * rtl.def (DEFINE_COND_EXEC): New.
5470         * md.texi: Document it.
5471
5472         * gensupport.c (input_file): Remove.
5473         (struct queue_elem): Add lineno.
5474         (rtx_ready_queue): Remove.
5475         (errors): New.
5476         (predicable_default): New.
5477         (predicable_true, predicable_false): New.
5478         (define_attr_queue, define_attr_tail): New.
5479         (define_insn_queue, define_insn_tail): New.
5480         (define_cond_exec_queue, define_cond_exec_tail): New.
5481         (other_queue, other_tail): New.
5482         (queue_pattern): New.
5483         (process_rtx): Add patterns to the appropriate queues.
5484         (is_predicable, identify_predicable_attribute): New.
5485         (n_alternatives, collect_insn_data): New.
5486         (alter_predicate_for_insn, alter_test_for_insn): New.
5487         (shift_output_template, alter_output_for_insn): New.
5488         (process_one_cond_exec, process_define_cond_exec): New.
5489         (init_md_reader): Read the entire file.  Process define_cond_exec.
5490         (read_md_rtx): Return elements from the queues.
5491
5492 2000-05-06  Richard Henderson  <rth@cygnus.com>
5493
5494         * flow.c (mark_set_1): Don't update conditional life info
5495         if the register is not_dead.
5496
5497 2000-05-06  Zack Weinberg  <zack@wolery.cumb.org>
5498
5499         * Makefile.in (STAGESTUFF): Add genrtl.c and genrtl.h.
5500         (mostlyclean): Also delete fixincl, fixinc.sh, and
5501         specs.ready, and make clean in the fixinc subdir.
5502
5503 2000-05-06  Richard Henderson  <rth@cygnus.com>
5504
5505         * Makefile.in (gensupport.o): Compile for the host.
5506         (host-prefix gensuuprt.o): Remove.
5507         (genflags.o): Depend on gensupport.h and OBSTACK_H.
5508         (genattrtab.o): Likewise.
5509         (gencodes.o): Depend on gensupport.h.
5510         (genemit.o, genopinit.o, genrecog.o, genextract.o): Likewise.
5511         (genpeep.o, genattr.o, genoutput.o): Likewise.
5512
5513         * gensupport.c (obstack, rtl_obstack): New.
5514         (init_md_reader): Initialize rtl_obstack.
5515         * gensupport.h (rtl_obstack): Declare.
5516         (message_with_line): Declare.
5517
5518         * genattr.c: Remove all traces of obstack manipulation.
5519         * gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise.
5520         * genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise.
5521
5522         * genattrtab.c (obstack, rtl_obstack): Remove.
5523         (main): Don't init rtl_obstack.
5524         * genflags.c: Likewise.
5525
5526         * genrecog.c (message_with_line): Move ...
5527         * gensupport.c: ... here.
5528
5529 2000-05-06  Richard Henderson  <rth@cygnus.com>
5530
5531         * c-typeck.c (build_c_cast): Remove dead code.
5532
5533 2000-05-06  Richard Henderson  <rth@cygnus.com>
5534
5535         * flow.c (split_edge): Don't allocate global_live_at_start for
5536         the new block unless the old blocks had them as well.
5537
5538         * flow.c (mark_set_1): Respect not_dead when updating reg_live.
5539
5540         * ifcvt.c (noce_process_if_block): Don't use an insn_b from
5541         test_bb if a or b uses x.
5542
5543 2000-05-06  Zack Weinberg  <zack@wolery.cumb.org>
5544
5545         * cpphash.h: Remove conditional #define of __extension__.
5546         * rtl.h: Add __extension__ to RTL_CHECK1, RTL_CHECK2,
5547         RTL_CHECKC1, RTL_CHECKC2, and RTVEC_ELT macros
5548         (ENABLE_RTL_CHECKING only).
5549         * tree.h: Add __extension__ to TREE_CHECK, TREE_CLASS_CHECK,
5550         CST_OR_CONSTRUCTOR_CHECK, and EXPR_CHECK macros
5551         (ENABLE_TREE_CHECKING only).
5552         * varray.h: Add __extension__ to VARRAY_CHECK macro
5553         (ENABLE_CHECKING only).
5554
5555 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
5556
5557         Use new tail-calling mechanism on ARM.
5558         * arm.md (sibcall, sibcall_value): New expands.
5559         (sibcall_insn, sibcall_value_insn, sibcall_epilogue): New insns.
5560         (tailcalling peepholes): Delete.
5561         (push_multi): Simplify.
5562         * arm.c (lr_save_eliminated): Delete definition.
5563         (pattern_really_clobbers_lr, function_really_clobbers_lr): Delete.
5564         (output_return_instruction): Remove checks on lr_save_eliminated.
5565         (output_arm_prologue): Remove old tail-calling code.
5566         (arm_output_epilogue): New parameter, really_return.  All callers
5567         changed.  Handle tail-calling epilogues.
5568         * arm.h (lr_save_eliminated): Delete declaration.
5569         (frame_pointer_needed): Delete declaration.
5570         * arm-protos.h (arm_output_epilogue): Adjust prototype.
5571
5572         * arm.md (is_thumb): Examine symbol thumb_code, not expression
5573         TARGET_ARM.
5574         * arm.c (thumb_code): Define it.
5575         (arm_override_options): Set it.
5576         * arm.h (thumb_code): Declare it.
5577
5578 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
5579
5580         * arm-protos.h (arm_dllexport_name_p, arm_dllimport_name_p): Constify.
5581
5582 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
5583
5584         * arm.c (arm_gen_load_multiple, arm_gen_store_mulitple): Don't add
5585         bogus clobber to insns.
5586         (load_multiple_operation, store_mulitple_operation): Don't check
5587         for it.
5588         * arm.md (ldmsi_postinc, stmsi_postinc): Adjust accordingly.
5589
5590         * arm.md (and_scc, ior_scc): Add missing mode.
5591
5592         * arm.md (call_value_symbol): Remove predicate from op2.
5593
5594         * arm.h (SPECIAL_MODE_PREDICATES): Define.
5595
5596 Sat May  6 06:25:56 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5597
5598         * expr.c (get_subtarget): New function.
5599         (force_operand, expand_expr, do_store_flag): Use it.
5600
5601         * toplev.c (compile_file): Don't take strlen of NAME if null.
5602
5603 2000-05-06  David Edelsohn  <edelsohn@gnu.org>
5604
5605         * xcoffout.c (xcoff_current_include_file,
5606         xcoff_current_function_file, xcoff_lastfile): Constify char *.
5607         (xcoffout_source_file, xcoffout_source_line): Make filename 'const
5608         char *'.
5609         (xcoffout_declare_function): Make name 'const char *'.
5610         (xcoffout_end_epilogue): Make fname 'const char *'
5611         * xcoffout.h (xcoff_current_include_file, xcoff_lastfile,
5612         xcoffout_declare_function, xcoffout_source_line): Match above.
5613
5614         * aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -mpowerpc64 without
5615         -maix64 is error.
5616         * rs6000.c (print_operand): Fix lossage typo.
5617         (output_cbranch): Remove "cr" decoration for now.
5618         * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Make alias 'const char *'.
5619
5620 Sat May  6 06:55:32 2000  Denis Chertykov  <denisc@overta.ru>
5621
5622         * config/avr/avr.c (out_shift_with_cnt): Bugfix for shift by
5623         constant count.
5624
5625 2000-05-05  Bruce Korb  <bkorb@gnu.org>
5626
5627         * fixinc/genfixes: Improve the matching for make target names
5628
5629 2000-05-05  Catherine Moore  <clm@cygnus.com>
5630
5631         * c-common.c (decl_attributes):  For TYPE_DECLs attach the
5632         attribute to the decl.
5633         * c-decl.c (pushdecl): Propagate the USED attribute to the
5634         type copy.
5635
5636 2000-05-05  Richard Henderson  <rth@cygnus.com>
5637
5638         * rtlanal.c (reg_overlap_mentioned_p): Treat parallels in the
5639         same way emit_group_load does.
5640
5641 2000-05-05 Mark Elbrecht <snowball3@bigfoot.com>
5642
5643         * gcc.c (set_input) [HAVE_DOS_STYLE_FILE_SYSTEM]: Skip drive name.
5644
5645         * toplev.c (output_file_directive): Use IS_DIR_SEPARATOR.
5646         (main): Likewise.
5647
5648 2000-05-05 Rodney Brown <RodneyBrown@mynd.com>
5649
5650         * pa.h (FUNCTION_ARG_ADVANCE): Warning removal.
5651
5652 Fri May  5 10:29:21 2000  Marc Espie <espie@cvs.openbsd.org>
5653
5654         * config/openbsd.h (LINK_SPEC): pass correct flags to ld
5655         to support -shared, on platforms with dynamic libraries.
5656
5657 Fri May  5 10:27:06 2000  Philippe De Muyter  <phdm@macqel.be>
5658
5659         * system.h (S_ISBLK): Provide fallback definition.
5660
5661 2000-05-05  Geoff Berry  <geoffb@bops.com>
5662
5663         * extend.texi (Extended Asm): Document inability to give asm
5664         statements access to condition codes.
5665
5666 2000-05-05  Marek Michalkiewicz  <marekm@linux.org.pl>
5667
5668         * varasm.c (asm_emit_uninitialised): Use 0, not NULL
5669         as arg 2 of UNIQUE_SECTION.
5670
5671 Fri May  5 10:11:41 2000  Jeffrey A Law  (law@cygnus.com)
5672
5673         * predict.c: Remove May 4 change.
5674         * bb-reorder.c (make_reorder_chain): Do not perform block movement
5675         if we have predicted the branch at 50-50 probability.
5676
5677 2000-05-05  Richard Henderson  <rth@cygnus.com>
5678
5679         * flow.c (init_propagate_block_info): Fix merge error
5680         in HAVE_conditional_execution code.
5681
5682 Fri May  5 07:43:50 2000  Denis Chertykov  <denisc@overta.ru>
5683
5684         * config/avr/avr.c (out_shift_with_cnt): Genetare a more optimal
5685         shift cycle for unknown shift count. Also generates dec + brpl.
5686         (ashlqi3_out): Don't generate dec + brpl which now generates by
5687         `out_shift_with_cnt'.
5688         (ashlhi3_out): Likewise.
5689         (ashlsi3_out): Likewise.
5690         (ashrqi3_out): Likewise.
5691         (ashrhi3_out): Likewise.
5692         (ashrsi3_out): Likewise.
5693         (lshrqi3_out): Likewise.
5694         (lshrhi3_out): Likewise.
5695         (lshrsi3_out): Likewise.
5696
5697 2000-05-04 Mark Elbrecht <snowball3@bigfoot.com>
5698
5699         * gcc.c (free_split_directories): Correct typo in explanation
5700         of make_relative_prefix.
5701
5702 2000-05-04  Geoff Keating  <geoffk@cygnus.com>
5703
5704         * config/rs6000/rs6000.h (PREDICATE_CODES): Add floating-point
5705         comparison codes to branch_comparison_operator.
5706
5707 2000-05-04  Richard Henderson  <rth@cygnus.com>
5708
5709         * ifcvt.c (noce_process_if_block): Always reset X in the A == B case.
5710
5711 2000-05-04  Richard Henderson  <rth@cygnus.com>
5712
5713         * Makefile.in (FPBIT_FUNCS): Remove _df_to_usi.
5714         (DPBIT_FUNCS): Remove _sf_to_usi.
5715         (stmp-multilib): Pass LIB1ASMSRC to libgcc.mk.
5716
5717         * ifcvt.c (noce_process_if_block): Fail if A or B modified
5718         between condition and jump.
5719
5720         * libgcc2.c (near eh_context_specific): Comment #endif string.
5721         * longlong.h: Don't use strings with embedded newlines.
5722
5723 2000-05-04  Geoff Keating  <geoffk@cygnus.com>
5724
5725         * config/rs6000/rs6000-protos.h: Add output_cbranch.
5726         * config/rs6000/rs6000.c (ccr_bit_negated_p): Delete.
5727         (print_operand): Delete %t and %T codes.
5728         (output_cbranch): New function.  Support branch prediction.
5729         * config/rs6000/rs6000.md: Use output_cbranch for
5730         conditional branches and returns.
5731
5732 2000-05-04  Jason Merrill  <jason@casey.cygnus.com>
5733
5734         * simplify-rtx.c (simplify_ternary_operation): Cast to unsigned.
5735         * stor-layout.c (place_field): Likewise.
5736         * integrate.h (struct inline_remap): Make regno_pointer_align unsigned.
5737         * expr.c (store_expr): Make align unsigned.
5738         * explow.c (plus_constant_wide): Make low words unsigned.
5739         * expmed.c (choose_multiplier): Likewise.
5740         * fold-const.c (fold):  Likewise.
5741         * tree.h (build_int_2): Likewise.
5742         * tree.c (build_int_2_wide, tree_int_cst_msb): Likewise.
5743         * emit-rtl.c (gen_reg_rtx): Add cast to unsigned char*.
5744         (init_emit): Change cast to unsigned char*.
5745         * varasm.c (compare_constant_1): Add cast to char*.
5746         * gcse.c (delete_null_pointer_checks): Change cast to unsigned int*.
5747         * reload1.c (reload): Likewise.
5748
5749         * rtl.h (MEM_SET_IN_STRUCT_P): Use do { } while (0).
5750
5751 Thu May  4 14:37:23 2000  Jeffrey A Law  (law@cygnus.com)
5752
5753         * predict.c (estimate_probability): If no prediction was found, then
5754         predict the successor that is the next physical block (if such a
5755         successor exists).
5756
5757 2000-05-04  Richard Henderson  <rth@cygnus.com>
5758
5759         * config/alpha/t-alpha (LIB2FUNCS_EXTRA): Use qrrnd.asm in place.
5760
5761 2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5762
5763         * system.h: Don't wrap <sys/types.h> with HAVE_SYS_TYPES_H.
5764
5765 2000-05-04  Mumit Khan  <khan@xraylith.wisc.edu>
5766
5767         * i386/cygwin.h (CPP_PREDEFINES): Don't define __STDC__. Move
5768         attribute macros from here ...
5769         (CPP_SPEC): to here.
5770         * i386/mingw32.h (CPP_PREDEFINES): Likewise.
5771         (CPP_SPEC): Likewise.
5772         * i386/crtdll.h (CPP_PREDEFINES): Delete attribute macros.
5773
5774         * Makefile.in ($(HOST_PREFIX_1)gensupport.o): Add build rule.
5775         (libgcc.a): Pass LIB1ASMSRC to libgcc.mk.
5776
5777 2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5778
5779         * bb-reorder.c (get_next_bb_note, get_prev_bb_note): Prototype.
5780
5781         * diagnostic (vbuild_message_string, build_message_string,
5782         build_location_prefix, output_get_prefix, init_output_buffer,
5783         output_notice, vline_wrapper_message_with_location,
5784         v_message_with_decl, default_print_error_function): De-constify.
5785         (set_real_maximum_length): Prototype.
5786
5787         * diagnostic.h (struct output_buffer, init_output_buffer,
5788         output_get_prefix, output_set_prefix): De-constify.
5789
5790         * function.c (init_function_start): Constify.
5791
5792         * gensupport.c (remove_constraints, process_rtx): Prototype.
5793
5794         * gthr-posix.h: Indent uses of #pragma.
5795
5796         * objc/objc-act.c (ggc_mark_imp_list, ggc_mark_hash_table):
5797         Prototype.
5798
5799         * predict.c (find_expected_value): Delete prototype.
5800         (expected_value_to_br_prob): Initialize variable `ev_reg'.
5801
5802         * sbitmap.h (debug_sbitmap): Prototype.
5803
5804         * ssa.c (compute_coalesced_reg_partition): Prototype.
5805
5806         * stor-layout.c (debug_rli): Prototype.
5807
5808         * tree.h (round_down): Prototype.
5809         (init_function_start): Constify.
5810
5811 2000-05-04  Zack Weinberg  <zack@wolery.cumb.org>
5812
5813         * cpphash.h: #define __extension__ away if GCC_VERSION < 2095
5814         (overly conservative).  Change extern inline wrappers to
5815         static inline, define them always, use PARAMS properly.
5816         * cpplex.c (_cpp_get_directive_token): Don't issue pedantic
5817         whitespace warnings for \f and \v at the beginning of a line.
5818
5819 Thu May  4 10:03:50 2000  Jeffrey A Law  (law@cygnus.com)
5820
5821         * haifa-sched.c (schedule_insns): Free the flow edge list when it
5822         is no longer needed
5823
5824 2000-05-04  Bruce Korb  <bkorb@gnu.org>
5825
5826         * fixincl/inclhack.def: added broken_cabs -
5827         Remove `extern double cabs' declarations from math.h
5828         * fixincl/inclhack.sh: regen
5829         * fixincl/fixincl.x: regen
5830         * fixincl/fixincl.c: Remove BOGOSITY code
5831         * fixincl/mkfixinc.sh: Remove code for installing "shell" version
5832
5833 Thu May  4 09:45:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5834
5835         * rtl.h (MEM_COPY_ATTRIBUTES): Also copy RTX_UNCHANGING_P and
5836         MEM_ALIAS_SET.
5837         * alias.c (canon_rtx): Don't copy RTX_UNCHANGING_P or MEM_ALIAS_SET
5838         when calling MEM_COPY_ATTRIBUTES.
5839         * emit-rtl.c (operand_subword, change_address): Likewise.
5840         * explow.c (stabilize): Likewise.
5841         * expr.c (protect_from_queue, emit_move_insn_1): Likewise.
5842         * integrate.c (copy_rtx_and_substitute): Likewise.
5843         * combine.c (combine_simplify_rtx): Don't copy RTX_UNCHANGING_P
5844         when calling MEM_COPY_ATTRIBUTES.
5845         (make_extraction, simplify_shift_const, gen_lowpart_for_combine):
5846         Likewise.
5847         * cse.c (gen_lowpart_if_possible): Likewise.
5848         * function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
5849         * optabs.c (gen_move_insn): Likewise.
5850         * recog.c (validate_replace_rtx_1): Likewise.
5851         * simplify-rtx.c (add_mem_for_addr): Likewise.
5852         * stmt.c (expand_anon_union_decl): Likewise.
5853         * config/arm/arm.md: Likewise.
5854         * config/h8300/h7300.c (fix_bit_operand): Likewise.
5855         * config/m88k/m88k.c (legitimize_address, block_move_loop): Likewise.
5856         (block_move_no_loop, block_move_sequence): Likewise.
5857         * config/rs6000/rs6000.c (expand_block_move_mem): Likewise.
5858         * config/alpha/alpha.c (get_aligned_mem): Likewise.
5859         Clear MEM_ALIAS_SET.
5860         * final.c (alter_subreg): Don't copy MEM_ALIAS_SET when calling
5861         MEM_COPY_ATTRIBUTES.
5862
5863 2000-05-03  Robert Lipe <robertlipe@usa.net>
5864
5865         * configure.in (i[34567]86-*-isc*) [tmake_file]: Add t-i386bare
5866         to suppress libgcc1.
5867         (i[34567]86-*-sco3.2v5*) Likewise.
5868         (i[34567]86-*-sco3.2v4*) Likewise.
5869         (i[34567]86-*-sco) Likewise.
5870         (i[34567]86-*-solaris2) Likewise.
5871         (i[34567]86-*-sysv5*) Likewise.
5872         (i[34567]86-*-sysv4*) Likewise.
5873         (i[34567]86-*-udk*) Likewise.
5874         (i[34567]86-*-sysv*) Likewise.
5875
5876 2000-05-03  Zack Weinberg  <zack@wolery.cumb.org>
5877
5878         * cpphash.h (U): New define, to correct type of string constants.
5879         (ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr): New wrapper
5880         routines, to do casts when passing unsigned strings to libc.
5881         * cppexp.c, cppfiles.c, cpphash.c, cppinit.c, cpplib.c: Use them.
5882
5883         * cppfiles.c (_cpp_execute_include): Make filename an U_CHAR *.
5884         * cpphash.c (_cpp_quote_string): Make string an U_CHAR *.
5885         * cppinit.c (dump_special_to_buffer): Make macro name an U_CHAR *.
5886         * cpplex.c (parse_ifdef, parse_include, validate_else): Make
5887         second argument an U_CHAR *.
5888
5889         * cppinit.c (builtin_array): Make name and value U_CHAR *, add
5890         length field, clean up initializer.
5891         (ISTABLE): Add __extension__ to designated-
5892         initializers version.
5893         * cpplex.c (CHARTAB): Likewise.
5894
5895         * mbchar.c: Add dummy external declaration to the !MULTIBYTE_CHARS
5896         case so the file won't be empty.
5897
5898 Wed May  3 21:01:46 2000  Jason Eckhardt  <jle@cygnus.com>
5899
5900         * bb-reorder.c (struct reorder_block_def): Member succ removed.
5901         (REORDER_BLOCK_SUCC): Removed.
5902         (enum reorder_skip_type): Removed.
5903         (skip_insns_between_block): Renamed to skip_insns_after_block.
5904         Removed second argument. Removed dead code and cleaned up.
5905         (make_reorder_chain): Removed use of REORDER_BLOCK_SUCC.
5906         (reorder_basic_blocks): Remove use of REORDER_SKIP_AFTER. Removed
5907         second parameter to skip_insns_after_block.
5908
5909 Wed May  3 13:29:54 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5910
5911         * tree.c (staticp, case LABEL_DECL): New case.
5912
5913 2000-05-03  Richard Henderson  <rth@cygnus.com>
5914
5915         * Makefile.in (start.encap): Do not depend on LIBGCC1.
5916
5917         * mklibgcc1.in: Fix typo last change.
5918
5919 2000-05-03  Jason Merrill  <jason@casey.cygnus.com>
5920
5921         * Makefile.in (WARN_CFLAGS): Add -pedantic -Wno-long-long.
5922         (LOOSE_CFLAGS): New: CFLAGS without -pedantic and -Wtraditional.
5923         (GCC_CFLAGS): Use it.
5924         (LANG_FLAGS_TO_PASS): New: SUBDIR_FLAGS_TO_PASS with LOOSE_CFLAGS.
5925         * cp/Make-lang.in, java/Make-lang.in, f/Make-lang.in, ch/Make-lang.in,
5926         objc/Make-lang.in: Use it.
5927
5928 2000-05-03  Jason R Thorpe  <thorpej@zembu.com>
5929
5930         * config/i386/i386.md (lshrqi2_cmpno): Use q not r in constraint.
5931
5932 2000-05-03  Richard Henderson  <rth@cygnus.com>
5933
5934         * mklibgcc.in: Restrict OLDCC=GCC test to native.  Equate
5935         LIBGCC1 empty with libgcc1.null.
5936
5937 Wed May  3 12:55:46 2000  Jim Wilson  <wilson@cygnus.com>
5938
5939         * fold-const.c (extract_muldiv, case MAX_EXPR): Don't allow signedness
5940         change.
5941
5942 2000-05-03  Greg McGary  <gkm@gnu.org>
5943
5944         * tree.h (tree_common): Add bounded_flag member.  Remove
5945         inaccurate comment about number of remaining bits.
5946         (BOUNDED_INDIRECT_TYPE_P, BOUNDED_POINTER_TYPE_P,
5947         BOUNDED_REFERENCE_TYPE_P, MAYBE_BOUNDED_INDIRECT_TYPE_P,
5948         MAYBE_BOUNDED_POINTER_TYPE_P, MAYBE_BOUNDED_REFERENCE_TYPE_P,
5949         TREE_BOUNDED, TYPE_MAIN_VARIANTS_PHYSICALLY_EQUAL_P,
5950         TYPE_MAIN_PHYSICAL_VARIANT, TYPE_BOUNDED): New macros.
5951         (TYPE_QUAL_BOUNDED): New constant.
5952         (TYPE_QUALS): Handle bounded qualifier.
5953         (TREE_EXPR_QUALS, TREE_FUNC_QUALS): New macros.
5954         (TYPE_BOUNDED_VALUE, TYPE_BOUNDED_BASE, TYPE_BOUNDED_EXTENT,
5955         TYPE_BOUNDED_SUBTYPE, TYPE_UNBOUNDED_VARIANT, TYPE_POINTER_DEPTH,
5956         TYPE_AMBIENT_BOUNDEDNESS): New macros.
5957         (MAX_POINTER_DEPTH, VA_LIST_POINTER_DEPTH): New constants.
5958         (tree_type): Add pointer_depth member.  Remove
5959         inaccurate comment about number of remaining bits.
5960         (DECL_POINTER_DEPTH): Add macro.
5961         (tree_decl): Add pointer_depth member.
5962
5963 Wed May  3 22:52:53 2000  Denis Chertykov  <denisc@overta.ru>
5964
5965         * config/avr/avr-protos.h (test_hard_reg_class): Declared.
5966         * config/avr/avr.c (ashrhi3_out): optimized shift by 15.
5967         (lshrhi3_out): Likewise.
5968         (ashrsi3_out): bugfix in shift by 8.
5969         (test_hard_reg_class): New function.
5970         * config/avr/avr.md: Bugfix inside conditions in peepholes.
5971         (ashlhi3): removed define_expand of this pattern.
5972         (*ashlhi3_insn): renamed to ashlhi3.
5973         (ashlsi3): removed define_expand of this pattern.
5974         (*ashlsi3_insn): renamed to ashlsi3.
5975         (ashrqi3): removed define_expand of this pattern.
5976         (*ashrqi3_insn): renamed to ashrqi3.
5977         (ashrhi3): removed define_expand of this pattern.
5978         (*ashrhi3_insn): renamed to ashrhi3.
5979         (ashrsi3): removed define_expand of this pattern.
5980         (*ashrsi3_insn): renamed to ashrsi3.
5981         (lshrhi3): removed define_expand of this pattern.
5982         (*lshrhi3_insn): renamed to lshrhi3.
5983         (lshrsi3): removed define_expand of this pattern.
5984         (*lshrsi3_insn): renamed to lshrsi3.
5985
5986 2000-05-03  Rodney Brown  <RodneyBrown@pmsc.com>
5987
5988         * config/mcore/mcore.c: Replacing inclusion of "stdio,h" with
5989         inclusion of "system.h".
5990
5991 Wed May  3 11:43:53 2000  Jim Wilson  <wilson@cygnus.com>
5992
5993         * config/ia64/ia64.c (ia64_encode_section_info): Add check for
5994         TREE_ASM_WRITTEN.
5995
5996 2000-05-03  David Mosberger  <davidm@hpl.hp.com>
5997
5998         * config/ia64/ia64.c (ia64_override_options): Force -mconstant-gp
5999         if -mauto-pic is on.
6000         (ia64_epilogue_uses): Mark "gp" (r1) as used by the epilogue if
6001         -mconstant-gp is in effect and function-descriptors are being used
6002         to make indirect calls.
6003         * config/ia64/ia64.h (MASK_CONST_GP): New macro.
6004         (MASK_AUTO_PIC): Ditto.
6005         (TARGET_CONST_GP): Ditto.
6006         (TARGET_AUTO_PIC): Ditto.
6007         (TARGET_SWITCHES): Add -mconstant-gp and -mauto-pic options.
6008         (ASM_OUTPUT_DOUBLE_INT): Don't generate @fptr() if -mauto-pic or
6009         -mno-pic is in effect.
6010         (ASM_OUTPUT_XDATA_DOUBLE_INT): Ditto.
6011         * config/ia64/ia64.md (movdi): Use gen_load_gprel64() if
6012         -mauto-pic is in effect.
6013         (gprel64_offset): New pattern.
6014         (load_gprel64): Ditto.
6015         (call): Handle -mauto-pic like -mno-pic (don't use fptr).  If
6016         -mconstant-gp is in effect, no need to preserve gp around direct
6017         calls.
6018         (call_value): Ditto.
6019         * config/ia64/linux.h (PROFILE_BEFORE_PROLOGUE): Define.
6020         (FUNCTION_PROFILER): Define.
6021         * config/ia64/sysv4.h (ASM_OUTPUT_CONSTRUCTOR): Don't generate
6022         @fptr() directive when -mno-pic or -mauto-pic is in effect.
6023         (ASM_OUTPUT_DESTRUCTOR): Ditto.
6024
6025 2000-05-03  Richard Henderson  <rth@cygnus.com>
6026
6027         * Makefile.in (STAGESTUFF): Add libgcc libgcc.mk.
6028         (libgcc1.null, libgcc1.cross, libgcc1.a): Remove targets.
6029         (libgcc1-asm.a, libgcc1.S, libgcc2.a): Remove targets.
6030         (mklibgcc, libgcc.mk): New targets.
6031         (libgcc.a): Use libgcc.mk.
6032         (stmp-multilib): Likewise.
6033         (stmp-multilib-sub): Remove.
6034         (mostlyclean): Don't delete libgcc2 temp files.
6035         * configure.in (AC_PROG_CC_C_O): Add.
6036         (NO_MINUS_C_MINUS_O): Substitute it.
6037         (all_outputs): Add mklibgcc.
6038         * mklibgcc.in: New file.
6039
6040 2000-05-03  Jason Merrill  <jason@casey.cygnus.com>
6041
6042         * cppexp.c (op_t): Make an int.
6043
6044         * rtlanal.c (dead_or_set_regno_p): Remove unused variable.
6045
6046         * varasm.c (initializer_constant_valid_p): Fix parenthesis.
6047
6048         * gensupport.c (process_rtx): Fix macros used.
6049
6050 2000-05-03  Richard Henderson  <rth@cygnus.com>
6051
6052         * flow.c (propagate_one_insn): Also don't PROP_REG_INFO for
6053         call-clobbered registers of a call.
6054
6055 Wed May  3 12:40:53 2000  Clinton Popetz  <cpopetz@cygnus.com>
6056
6057         * gensupport.c: New file.
6058         * gensupport.h: New file.
6059         * Makefile.in (HOST_RTL): Depend on gensupport.
6060         (gensupport.o) New rule.
6061         * genattr.c: Use gensupport for reading .md files.
6062         * genattrtab.c: Ditto.
6063         * gencodes.c: Ditto.
6064         * genconfig.c: Ditto.
6065         * genemit.c: Ditto.
6066         * genextract.c: Ditto.
6067         * genflags.c: Ditto.
6068         * genopinit.c: Ditto.
6069         * genoutput.c: Ditto.
6070         * genpeep.c: Ditto.
6071         * genrecog.c: Ditto.
6072         * rtl.def (define_insn_and_split): New DEF_RTL_EXPR.
6073         * md.texi (Insn Splitting): Document define_insn_and_split.
6074
6075 Tue May  2 00:20:30 2000  Jason Eckhardt  <jle@cygnus.com>
6076
6077         * flow.c (verify_flow_info): Added two more sanity checks. The
6078         first checks that the blocks are numbered consecutively. The second
6079         checks that n_basic_blocks is actually equal to the number of
6080         basic blocks in the insn chain.
6081
6082 2000-05-03  Zack Weinberg  <zack@wolery.cumb.org>
6083
6084         * cpplib.h: Add accessor macros for token lists.
6085         * cpplib.c, cpphash.c, cpplex.c: Use them.
6086
6087 Wed May  3 09:29:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6088
6089         * expr.c (expand_expr, case COMPONENT_REF): Don't check for checking
6090         memory usage if not in a function.
6091         * varasm.c (initializer_constant_valid_p, case ADDR_EXPR): Only
6092         return address if static.
6093
6094 Wed May  3 13:14:49 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6095
6096         * ifcvt.c (noce_try_cmove_arith):  Use may_trap_p to thest
6097         whether address may trap.
6098
6099 Tue May  2 23:38:37 2000  Jason Eckhardt  <jle@cygnus.com>
6100
6101         * bb-reorder (chain_reorder_blocks): Changed code to test for
6102         EDGE_FALLTHRU rather than making erroneous assumption that the
6103         first outgoing edge is the fall-through edge.
6104
6105 Tue May  2 18:20:31 2000  Donald Lindsay  <dlindsay@hound.cygnus.com>
6106
6107         * config/mips/mips.c (mips_build_va_list,mips_va_start,mips_va_arg): new
6108         ABI for varargs, across all MIPS. This is incompatible because the
6109         va_list (__builtin_va_list) structure is different, so a compilation
6110         unit passing a va_list and a compilation unit being passed one, should
6111         both be compiled with the same ABI. (The old structure had two
6112         pointers, now it has three.)
6113
6114 Tue May  2 19:18:43 2000  Jason Eckhardt  <jle@cygnus.com>
6115
6116         * bb-reorder.c (struct reorder_block_def): Remove members end,
6117         block_begin, and block_end.
6118         (REORDER_BLOCK_OLD_END): Delete.
6119         (REORDER_BLOCK_BEGIN): Delete.
6120         (REORDER_BLOCK_END): Delete.
6121         (chain_reorder_blocks): Remove dead code.
6122
6123 Tue May  2 17:06:53 2000  Jason Eckhardt  <jle@cygnus.com>
6124
6125         * bb-reorder.c (remove_scope_notes): Check for both types of scope
6126         notes as the end of a basic block before deleting.
6127
6128 2000-05-02  Mumit Khan  <khan@xraylith.wisc.edu>
6129
6130         * final.c (final_start_function): Fix spelling of "necessary".
6131
6132 2000-05-02  Jason Merrill  <jason@casey.cygnus.com>
6133
6134         * toplev.c (debug_ignore_block): Return int.
6135         * dwarf2out.c (dwarf2out_ignore_block): Likewise.
6136         * toplev.h, dwarf2out.h: Adjust.
6137         * emit-rtl.c (remove_unnecessary_notes): Test return value.
6138
6139         * emit-rtl.c (remove_unnecessary_notes): Fix spelling of "necessary".
6140         * toplev.c, final.c, rtl.h: Adjust.
6141
6142 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
6143
6144         * aclocal.m4 (gcc_AC_CHECK_PROG_VER): New macro.
6145         * configure.in: Look for makeinfo in the unified tree, then
6146         for a system makeinfo which is sufficiently new.
6147         * Makefile.in: If configure says makeinfo is too old, don't
6148         build or install Info documentation.
6149
6150 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
6151
6152         * cpphash.c (collect_params): Fix off-by-one error.
6153         (dump_hash_helper): Dump all four macro nodetypes.
6154
6155 2000-05-02  Jakub Jelinek  <jakub@redhat.com>
6156
6157         * cpphash.c (trad_stringify): Adjust p after stringification as
6158         well.
6159
6160 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
6161
6162         * cpplib.h (CPP_POP, parse_cleanup_t): Delete.
6163         (cpp_buffer): Remove cleanup, seen_eof, manual_pop members.
6164
6165         * cppfiles.c (file_cleanup): Delete.
6166         * cpphash.c (macro_cleanup): Delete.
6167         (collect_objlike_expansion, collect_funlike_expansion,
6168         macarg, scan_arguments): Remove CPP_POP case.
6169
6170         * cpplex.c (null_cleanup): Delete.
6171         (cpp_pop_buffer): Do the work that was done in the cleanups
6172         here.  Call _cpp_unwind_if_stack from here.
6173         (_cpp_expand_to_buffer, cpp_scan_buffer_nooutput,
6174         cpp_scan_buffer): Run until we see CPP_EOF and the top of
6175         stack is the buffer _below_ the one we stacked.
6176         (cpp_get_token): Always pop an exhausted buffer.  Return
6177         CPP_EOF unless it's a macro buffer.  Don't call _cpp_handle_eof.
6178         * cpplib.c (skip_if_group): Don't call cpp_get_token to
6179         increment the line number.
6180         (_cpp_handle_eof): Rename to _cpp_unwind_if_stack.
6181
6182         * fix-header.c (read_scan_file) [parsing getchar()]: Run until
6183         we see CPP_EOF and the top of stack is the buffer _below_ the
6184         one we stacked.
6185         * scan-decls.c: Likewise.
6186
6187 2000-05-02  Andrew Haley  <aph@cygnus.com>
6188
6189         * config/ia64/ia64.c (ia64_encode_section_info): Handle the case
6190         where this function is called for the second time on a decl that
6191         has had its section info changed in such a way as to move it out
6192         of small data/bss.
6193         * config/ia64/ia64.h (REDO_SECTION_INFO_P): New definition.
6194
6195 2000-05-01  Richard Henderson  <rth@cygnus.com>
6196
6197         * ifcvt.c (dead_or_predicable): Set merge_bb->end to the insn before
6198         the sequence we're moving, not to merge_bb->head.
6199
6200 2000-05-01  Richard Henderson  <rth@cygnus.com>
6201
6202         * configure.in (alpha*-*-linux-gnulibc1*) [tmake_file]: Remove
6203         reference to alpha/t-linux.
6204         (alpha*-*-linux-gnu*): Likewise.
6205         * configure: Rebuild.
6206
6207         * calls.c (expand_call): Don't emit reg notes for a sibcall.
6208
6209         * flow.c (calculate_global_regs_live): Skip for_each_successor_phi
6210         if not in SSA form.
6211
6212         * ifcvt.c (if_convert): Only verify_flow_info if ENABLE_CHECKING.
6213
6214 2000-05-01  Jason Merrill  <jason@casey.cygnus.com>
6215
6216         * integrate.c (copy_decl_for_inlining): Copy TREE_READONLY and
6217         TREE_THIS_VOLATILE.
6218
6219 2000-05-01  Richard Henderson  <rth@cygnus.com>
6220
6221         * ifcvt.c (noce_emit_cmove): Conditionally compile call to
6222         emit_conditional_move.
6223
6224 2000-05-01  Jakub Jelinek  <jakub@redhat.com>
6225
6226         * config/ia64/linux.h (LINK_SPEC): Use /lib/ld-linux-ia64.so.1
6227         as the dynamic linker.
6228
6229 2000-05-01  Zack Weinberg  <zack@wolery.cumb.org>
6230
6231         * cppfiles.c (open_include_file): Open file in blocking mode.
6232         (read_include_file): Don't fcntl(fd, F_SETFL, 0) anymore.
6233         Only exclude block devices and directories.
6234
6235         * cpphash.c (_cpp_make_hashnode): Rename make_HASHNODE, now
6236         static.  Allocate the hashnode and its string in the same
6237         block of memory.
6238         (del_HASHNODE): Don't free h->name.
6239         (_cpp_lookup): If there is no entry for this string, create
6240         one, of type T_VOID.
6241         (_cpp_lookup_slot): Delete.
6242         * cpphash.h: Update prototypes.
6243
6244         * cpplex.c (maybe_macroexpand): Check for hp->type == T_VOID,
6245         not hp == NULL.
6246         * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert,
6247         do_unassert, cpp_defined): Use _cpp_lookup.  Don't create a
6248         node here, just fill in the value field properly.  "Delete"
6249         entries by setting the value field to T_VOID.  Check for
6250         hp->type == T_VOID, not hp == NULL.
6251
6252         * Makefile.in (cpplib.o): Don't depend on $(HASHTAB_H).
6253         * cpperror.c, cppexp.c, cpplex.c, cpplib.c:  Don't include
6254         hashtab.h.
6255
6256 2000-05-01  Alexandre Oliva  <aoliva@cygnus.com>
6257
6258         * config/mn10300/mn10300.c (print_operand_address): Do not add
6259         zero to SP.
6260
6261         * config/mn10300/mn10300.c (expand_epilogue): If SP is to be
6262         adjusted by less than 256 bytes, use ret regardless of having any
6263         callee-saved register to restore.
6264
6265 2000-05-01 Laurynas Biveinis <lauras@softhome.net>
6266
6267         * tm.texi (TARGET_HAS_F_SETFLKW): Fix typo.
6268
6269 2000-05-01 Mark Elbrecht <snowball3@bigfoot.com>
6270
6271         * config/i386/djgpp.h (INT_ASM_OP): Define.
6272         (CPP_PREDEFINES): Rename MSDOS to __MSDOS__.
6273         (ASM_WEAKEN_LABEL): Define.
6274         (MASK_BNU210): Define.
6275         (SUBTARGET_SWITCHES): Define.
6276         (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Define.
6277         (MAKE_DECL_ONE_ONLY): Define.
6278         (UNIQUE_SECTION_P, UNIQUE_SECTION): Define.
6279
6280 2000-05-01  Mumit Khan  <khan@xraylith.wisc.edu>
6281
6282         * i386/cygwin.h (INT_ASM_OP): Define.
6283
6284 Mon May  1 18:20:06 2000  Denis Chertykov  <denisc@overta.ru>
6285
6286         * config/avr/avr.c (address_cost): renamed to avr_address_cost.
6287         * config/avr/avr.h (ADDRESS_COST): use avr_address_cost.
6288
6289 Mon May  1 17:50:44 2000  Denis Chertykov  <denisc@overta.ru>
6290
6291         * config/avr/avr.c (asm_file_start): output 0 as r0 and 1 as r1 in
6292         __tmp_reg__ and __zero_reg__ initialization.
6293
6294 2000-04-30  Richard Henderson  <rth@cygnus.com>
6295
6296         * flow.c (propagate_one_insn): Mark sets even when the insn is dead.
6297
6298         * ifcvt.c (noce_process_if_block): Fail the conversion if X is
6299         referenced bewteen the condition and the jump.  Don't delete
6300         anything but the jump.
6301
6302 Sun Apr 30 22:48:24 2000  Jason Eckhardt  <jle@cygnus.com>
6303
6304         * bb-reorder.c (scope_def): New struct.
6305         (scope_forest_info): New struct.
6306         (struct reorder_block_def): New member "scope".
6307         (REORDER_BLOCK_SCOPE): New macro.
6308         (relate_bbs_with_scopes): New function and prototype.
6309         (make_new_scope): Likewise.
6310         (build_scope_forest): Likewise.
6311         (remove_scope_notes): Likewise.
6312         (insert_intra_1): Likewise.
6313         (insert_intra_bb_scope_notes): Likewise.
6314         (insert_inter_bb_scope_notes): Likewise.
6315         (rebuild_scope_notes): Likewise.
6316         (free_scope_forest_1): Likewise.
6317         (free_scope_forest): Likewise.
6318         (dump_scope_forest): Likewise.
6319         (dump_scope_forest_1): Likewise.
6320         (chain_reorder_blocks): Set REORDER_BLOCK_SCOPE for new block.
6321         Update REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for new
6322         block.
6323         (reorder_basic_blocks): Added calls to build_scope_scope_forest
6324         and remove_scope_notes before reordering is done. Added calls to
6325         rebuild_scope_notes, free_scope_forest, and reorder_blocks after
6326         after reordering is done.
6327
6328 2000-40-30  Bruce Korb  <bkorb@gnu.org>
6329
6330         * fixinc/inclhack.def:  Added definitions needed by OSR5,
6331         removed two stale entries (defined away with OLD_CPP).
6332         * fixinc/inclhack.sh: regen
6333         * fixinc/fixincl.x: regen
6334
6335 2000-04-30  Richard Henderson  <rth@cygnus.com>
6336
6337         * ifcvt.c (dead_or_predicable): Manually squeeze non-movable notes
6338         from the last insn in the sequence.
6339
6340 2000-04-30  Zack Weinberg  <zack@wolery.cumb.org>
6341
6342         * cpplex.c (cpp_idcmp): New function.
6343         * cpplib.h: Prototype it.
6344         * scan_decls.c (scan_decls): Use it to inspect token names.
6345         * fix-header.c (read_scan_file): Likewise.  Set system_header_p on
6346         the file being run through the preprocessor.
6347         (check_macro_names): Provide length of token to cpp_defined.
6348
6349         * Makefile.in: Remove stale warning message.
6350
6351         * cppfiles.c (redundant_include_p): Provide length of token to
6352         cpp_defined.
6353         * cpphash.c (_cpp_make_hashnode, _cpp_lookup_slot): Hash
6354         values are unsigned int.
6355         (_cpp_lookup, _cpp_lookup_slot): Do not calculate the length.
6356         (_cpp_lookup_slot): Do not calculate the hash, either.
6357         * cpphash.h: Update prototypes.
6358         * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert):
6359         Hashes are unsigned int.  Calculate hash here, pass by value
6360         to _cpp_lookup_slot.
6361
6362 2000-04-30  Bernd Schmidt  <bernds@cygnus.co.uk>
6363
6364         * simplify-rtx.c (check_value_useless): Delete function.
6365         (discard_useless_locs): Don't call it; manage N_USELES_VALUES counter
6366         by hand.
6367         (cselib_invalidate_regno): Likewise.
6368         (cselib_invalidate_mem_1): Likewise.
6369         (references_value_p): Recognize useless values by the fact that they
6370         have no locations.
6371         (discard_useless_values): Likewise.
6372         (cselib_record_set): This may turn a useless value
6373         into a useful one.
6374
6375 2000-04-30  Richard Henderson  <rth@cygnus.com>
6376
6377         * config/d30v: New port.
6378
6379         * configure.in (d30v-*): Set fp format.
6380         * configure: Rebuild.
6381
6382 2000-04-30  Richard Henderson  <rth@cygnus.com>
6383
6384         * ifcvt.c: New file.
6385         * Makefile.in (OBJS): Add it.
6386         (ifcvt.o): New target.
6387         * jump.c (jump_optimize_1): Remove all code related to if-conversion,
6388         and conditional arithmetic.
6389         (find_insert_position): Remove.
6390         * timevar.def (TV_IFCVT, TV_IFCVT2): New.
6391         * toplev.c (DFI_ce, DFI_ce2): New.
6392         (dump_file): Add ce and ce2 dumps.
6393         (rest_of_compilation): Run if_convert a couple o times.  Set
6394         cse_not_expected after cse2.  Don't set no_new_pseudos until
6395         after sched1 or recompute_reg_usage.
6396
6397 2000-04-30  Richard Henderson  <rth@cygnus.com>
6398
6399         * config/alpha/t-crtbe (crtbegin.o): Add "-I.".
6400         (crtend.o, crtbeginS.o, crtendS.o): Likewise.
6401
6402 2000-04-30  Richard Henderson  <rth@cygnus.com>
6403
6404         * flow.c (struct reg_cond_life_info): New.
6405         (struct propagate_block_info): Add reg_cond_dead and reg_cond_reg.
6406         (init_propagate_block_info): Initialize them.
6407         (free_propagate_block_info): Destruct them.
6408         (mark_set_1): Consider conditional life before killing a register.
6409         (mark_regno_cond_dead): New.
6410         (free_reg_cond_life_info): New.
6411         (flush_reg_cond_reg_1, flush_reg_cond_reg): New.
6412         (ior_reg_cond, not_reg_cond, nand_reg_cond): New.
6413         (mark_used_reg): Record conditional life.
6414
6415         * haifa-sched.c (schedule_insns): Disable death counting
6416         sanity check for HAVE_conditional_execution.
6417
6418 2000-04-30  Richard Henderson  <rth@cygnus.com>
6419
6420         * Makefile.in (TIMEVAR_H): New.
6421         (ggc-simple.o, ggc-page.o, toplev.o, timevar.o): Use it.
6422         (timevar.h): Remove rule.
6423
6424 2000-04-29  Richard Henderson  <rth@cygnus.com>
6425
6426         * config/alpha/crtend.asm: Use C comments instead of #.
6427         * config/alpha/crtbegin.asm: Likewise.  Mark __dso_handle hidden.
6428
6429         * config/alpha/elf.h (SELECT_SECTION): Treat CONSTRUCTOR like VAR_DECL.
6430
6431 2000-04-29  Zack Weinberg  <zack@wolery.cumb.org>
6432
6433         * cpphash.h (enum node_type: Take out T_MCONST.
6434         (union hashval): Move into struct hashnode.
6435         (struct hashnode): Pack tighter.  Remove file, line, col
6436         members.
6437         * cpphash.c: Constify most of the macro-definition structures.
6438         (struct definition): Replace by struct object_defn
6439         and struct funct_defn.  Put file, line, column information
6440         here.  All users updated to match.
6441         (_cpp_create_definition, _cpp_macroexpand): Remove special
6442         case for #define WORD OTHERWORD.
6443         * cpplib.c (do_undef): Remove T_MCONST case.
6444
6445         * cpphash.h: Move struct reflist, struct definition, and the
6446         DEFINITION typedef to cpphash.c.  Use 'struct definition *' in
6447         union hashval.  _cpp_free_definition takes a HASHNODE pointer.
6448         * cpphash.c (_cpp_free_definition): Free data pointed to by
6449         MCONST, XCONST, MACRO, and FMACRO nodes properly.
6450         (_cpp_create_definition, del_HASHNODE): Just call
6451         _cpp_free_definition to clear out a hashnode.
6452         * cpplib.c (do_pragma_poison): Likewise.
6453
6454 Sat Apr 29 12:25:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
6455
6456         * config/mn10300/mn10300.h (FIRST_DATA_REGNUM,
6457         LAST_DATA_REGNUM, FIRST_ADDRESS_REGNUM, LAST_ADDRESS_REGNUM,
6458         FIRST_EXTENDED_REGNUM, LAST_EXTENDED_REGNUM): New macros.
6459         (REGNO_SP_P): Redefine in terms of STACK_POINTER_REGNUM.
6460         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_EXTENDED_P,
6461         REGNO_AM33_P): Redefine in terms of the new macros.
6462         (CONDITIONAL_REGISTER_USAGE, REGNO_REG_CLASS): Likewise.
6463         (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
6464         STRUCT_VALUE): Likewise.
6465         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM,
6466         ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Likewise.  Moved.
6467
6468 Sat Apr 29 01:18:45 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6469
6470         * regmove.c (struct record_stack_memrefs_data): New.
6471         (record_stack_memrefs): New function.
6472         (combine_stack_adjustments_for_block): Use it.
6473
6474 Sat Apr 29 01:15:27 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6475
6476         * calls.c (calls_function_1):  Propertly handle TREE_LIST expressions;
6477         use special_function_p to detect alloca.
6478
6479 Fri Apr 28 16:30:33 2000  Marc Espie <espie@cvs.openbsd.org>
6480
6481         * gcc.texi: Fixes for makeinfo 4.0 --html.
6482
6483 2000-04-28  Zack Weinberg  <zack@wolery.cumb.org>
6484
6485         * pcp.h: Delete file.
6486
6487 2000-04-28  Kazu Hirata  <kazu@hxi.com>
6488
6489         * h8300.c (function_epilogue): Clean up flags when the last insn
6490         in a function is a barrier.
6491
6492 2000-04-28  Chris Demetriou  <cgd@sibyte.com>
6493
6494         * configure.in (sparc-hal-solaris2*): protect [] glob from
6495         my expansion.
6496         (mips*-*-ecoff*, mips*-*-elf*, mips*-*-*): use MASK_ defines
6497         rather than hard-coded constants in target_cpu_default2.
6498         * configure: Regenerate.
6499
6500 2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
6501
6502         * tree.c (get_callee_fndecl): Extract the initial value from
6503         a readonly decl.
6504
6505 2000-04-28  Richard Henderson  <rth@cygnus.com>
6506
6507         * varasm.c (record_constant_1): Record the CODE_LABEL when
6508         taking the address of a LABEL_REF.
6509
6510 2000-04-28  Richard Henderson  <rth@cygnus.com>
6511             Jan Hubicka  <jh@suse.cz>
6512
6513         * calls.c (combine_pending_stack_adjustment_and_call): Return the
6514         adjustment; don't do the stack adjust.
6515         (expand_call): Call compute_argument_block_size right before
6516         allocating the block; update comment; don't do alignment sanity
6517         checking for sibling call; use args_size instead of
6518         unadjusted_args_size before args_size is adjusted.  Use
6519         combine_pending_stack_adjustment_and_call to compute stack adjust
6520         for must_preallocate case.
6521
6522         * expr.c (push_block): Remove shadow `temp' in inner scope.
6523
6524 2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
6525
6526         * toplev.c (rest_of_compilation): Call
6527         note_deferral_of_defined_inline_function even if the function
6528         can't be inlined.
6529
6530 2000-04-28  Scott Bambrough  <scottb@netwinder.org>
6531
6532         * cpplex.c (_cpp_scan_line): Fix buffer overwrite.
6533
6534 2000-04-28  Richard Henderson  <rth@cygnus.com>
6535
6536         * toplev.c (rest_of_type_compilation): Fix sdb TIMEVAR typo.
6537
6538 2000-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6539
6540         * timevar.c (init_timevar): DeANSIfy function definition.
6541
6542 2000-04-27  Alex Samuel  <samuel@codesourcery.com>
6543
6544         * Makefile.in (timevar.o): Depend on flags.h.
6545         * timevar.c (unused_stack_instances): New variable.
6546         (timevar_push): Take a timevar_stack_def from
6547         unused_stack_instances if available.
6548         (timevar_pop): Push the popped timevar_stack_def onto
6549         unused_stack_instances.
6550         (TIMEVAR_ENABLE): New macro.
6551         (timevar_def): Make standalone a 1-bit field.  Add field used.
6552         (get_time): Rename parameter to now.  Return after clearing it if
6553         not TIMEVAR_ENABLE.
6554         (init_timevar): Do nothing if not TIMEVAR_ENABLE.
6555         (timevar_pop): Likewise.
6556         (timevar_stop): Likewise.
6557         (timevar_push): Likewise.  Mark the timing variable as used.
6558         (timevar_start): Likewise.
6559         (timevar_print): Do nothing if not TIMEVAR_ENABLE.  Don't print
6560         timevars that were never used.
6561
6562 2000-04-27  Mark Mitchell  <mark@codesourcery.com>
6563
6564         * c-common.c (c_apply_type_quals_to_decl): REFERENCE_TYPES are
6565         always TREE_READONLY.
6566
6567 2000-04-27  Ulrich Drepper  <drepper@cygnus.com>
6568
6569         * i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Generate mem reference
6570         for call instruction with mode QImode.
6571
6572 2000-04-27  Alex Samuel  <samuel@codesourcery.com>
6573
6574         * Makefile.in (OBJS): Add timevar.o.
6575         (toplev.o): Depend on timevar.h.
6576         (ggc-simple.o): Likewise.
6577         (ggc-page.o): Likewise.
6578         (timevar.o): New rule.
6579         (timevar.h): New rule.
6580
6581         * timevar.h: New file.
6582         * timevar.c: Likewise.
6583         * timevar.def: Likewise.
6584
6585         * toplev.h (gc_time, parse_time, varconst_time): Remove.
6586         * toplev.c: Use timevar_push and timevar_pop instead of TIMEVAR
6587         throughout.
6588         (TIMEVAR): Remove macro.
6589         (gc_time, parse_time, varconst_time, integration_time, jump_time,
6590         cse_time, gcse_time, loop_time, cse2_time, branch_prob_time,
6591         flow_time, combine_time, regmove_time, sched_time,
6592         local_alloc_time, global_alloc_time, flow2_time, peephole2_time,
6593         sched2_time, dbr_sched_time, reorder_blocks_time,
6594         rename_registers_time, shorten_branch_time, stack_reg_time,
6595         to_ssa_time, from_ssa_time, final_time, symout_time, dump_time,
6596         all_time): Remove.
6597         (compile_file): Don't initialize time variables.  Call
6598         init_timevar and start TV_TOTAL timer.  Call timevar_print instead
6599         of many calls to print_time.
6600         (rest_of_compilation): Add timing for reload_cse_regs.
6601         (get_run_time): Removed to timevar.c.
6602         (print_time): Likewise.
6603         (get_run_time): Implement using TV_TOTAL time variable.
6604         (print_time): Get total run time from get_run_time.
6605         * ggc-page.c (ggc_collect): Push and pop TV_GC instead of
6606         computing elapsed time explicitly.
6607         * ggc-simple.c (ggc_collect): Likewise.
6608         (gc_time): Remove declaration.
6609
6610 2000-04-27  Mark Mitchell  <mark@codesourcery.com>
6611
6612         * calls.c (combine_pending_stack_adjustment_and_call): New function.
6613         (expand_call): Use it.
6614
6615 2000-04-27  Jan Hubicka  <jh@suse.cz>
6616
6617         * flow.c (mark_set_1):  Handle MEMs in ZERO_EXTRACT/SIGN_EXTRACT
6618         fields.
6619
6620 Thu Apr 27 12:47:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
6621
6622         * config/mn10300/mn10300.md (movhi): Simplify.  Prefer data
6623         registers.
6624
6625 Thu Apr 27 17:33:05 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6626
6627         * function.c (epilogue_done): Pass whole insn to record_insns.
6628
6629 Thu Apr 27 16:55:28 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6630
6631         * cse.c (CSE_ADDRESS_COST): Remove.
6632         (find_best_addr): Add new parameter "MODE", use address_cost instead
6633         of CSE_ADDRESS_COST
6634         (address_cost): New.
6635         (fold_rtx): Update call of find_best_addr.
6636         * rtl.h (address_cost): Declare.
6637         * loop.c (general_induction_var): Add new parameter "MODE", use
6638         address_cost instead of ADDRESS_COST
6639         (init_loop): Use address_cost instead of ADDRESS_COST.
6640         (check_insn_for_givs): Update call of general_induction_var.
6641         (find_mem_givs): Likewise.
6642         (consec_sets_giv): Likewise.
6643         * config/i386/i386.h (ADDRESS_COST): Call ix86_address_cost.
6644         * i386.c (ix86_address_cost): New.
6645         * i386-protos.h (ix86_address_cost): Declare.
6646
6647 Thu Apr 27 11:45:16 2000  Alexandre Oliva  <aoliva@cygnus.com>
6648
6649         * config/mn10300/mn10300.md (movqi): Simplify.  Prefer data
6650         registers.
6651
6652 Thu Apr 27 16:11:00 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6653
6654         * expr.c (store_expr): Use clear_storage instead of direct memset
6655         libcall.
6656
6657 Thu Apr 27 10:36:51 2000  Alexandre Oliva  <aoliva@cygnus.com>
6658
6659         * config/mn10300/mn10300.c (mn10300_address_cost): Test
6660         ASHIFT, AND and LABEL_REF.
6661
6662 Thu Apr 27 15:08:46 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6663
6664         * invoke.texi (-foptimize-sibling-calls): Fix.
6665
6666 Thu Apr 27 14:54:22 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6667
6668         * loop.c (load_mems)  Don't use hard registers for the hoisting.
6669
6670         * unroll.c (unroll_loop): Avoid overflow in the n_iterations
6671         calculation; rename const_equiv array in the preconditioning code
6672         from loop_unroll to loop_unroll_precondition
6673
6674 2000-04-27  Richard Henderson  <rth@cygnus.com>
6675
6676         * flow.c (struct propagate_block_info): Remove new_dead, new_live;
6677         add new_set.
6678         (propagate_one_insn): Clear it.  Don't update reg_live here.
6679         (init_propagate_block_info): Update for pbi member changes.
6680         (free_propagate_block_info): Likewise.
6681         (mark_set_1): Know that zero_extract, sign_extract, and
6682         strict_low_part don't kill their argument.  Alter hard subregs.
6683         Update new_set for non-CLOBBER sets.  Update reg_live.
6684         (find_auto_inc): Update reg_live, not new_dead.
6685         (mark_used_reg): Update reg_live, not new_live.  Examine new_set
6686         to determine if the reg in question was set this insn.  Only update
6687         reg info with PROP_REG_INFO.
6688
6689 2000-04-26  Richard Henderson  <rth@cygnus.com>
6690
6691         * flow.c (allocate_reg_life_data): Set max_regno here ...
6692         (life_analysis): ... not here.
6693
6694         * flow.c (calculate_global_regs_live): Force stack pointer
6695         live at end.
6696
6697 2000-04-26  Richard Henderson  <rth@cygnus.com>
6698
6699         * jump.c (redirect_exp_1): Rework from old redirect_exp.  Never
6700         commit change group changes.
6701         (invert_exp_1): Similarly.
6702         (redirect_exp, invert_exp): Use them.
6703         (redirect_jump_1): New.
6704         (invert_jump_1): New.
6705         (jump_optimize_1): Remove code subsumed by condexec.c.
6706         * rtl.h (invert_jump_1, redirect_jump_1): Declare.
6707
6708 2000-04-26  Richard Henderson  <rth@cygnus.com>
6709
6710         * rtlanal.c (dead_or_set_regno_p): Use find_regno_note.
6711
6712         * genconfig.c (main): Set all HAVE_foo to 1.
6713
6714         * graph.c (node_data): Use GET_NOTE_INSN_NAME instead of local array.
6715
6716 2000-04-26  Alex Samuel  <samuel@codesourcery.com>
6717
6718         * invoke.texi: Document -fssa flag.
6719
6720 2000-04-26  Richard Henderson  <rth@cygnus.com>
6721
6722         * flow.c (count_reg_sets_1): Remove.
6723         (count_reg_sets, count_reg_references): Remove.
6724         (recompute_reg_usage): Implement with update_life_info.
6725         Reallocate life data.
6726
6727 2000-04-26  Richard Henderson  <rth@cygnus.com>
6728
6729         * flow.c (update_life_info): Consider blocks null to mean the
6730         universal set.
6731         (calculate_global_regs_live): Likewise.
6732         (life_analysis): Do that instead of collecting all_blocks.
6733
6734 2000-04-26  Richard Henderson  <rth@cygnus.com>
6735
6736         * flow.c (tidy_fallthru_edge): Don't delete the jump when it's
6737         a still-valid conditional jump.
6738
6739 2000-04-26  Richard Henderson  <rth@cygnus.com>
6740
6741         * jump.c (invert_jump): Always invert REG_BR_PROB.  Do it correctly.
6742
6743         * bb-reorder.c (reorder_basic_blocks): Don't run estimate_probability.
6744         * flow.c (calculate_loop_depth): Remove.
6745         * output.h (calculate_loop_depth): Don't declare.
6746         * toplev.c (rest_of_compilation): Expand calculate_loop_depth
6747         inline; run estimate_probability at the same time.
6748
6749 2000-04-26  Neil Booth  <NeilB@earthling.net>
6750
6751         * cpplib.h: "~=" is not a single pp-token.
6752         * cpplex.c: Correct commentary.
6753
6754 2000-04-26  Richard Henderson  <rth@cygnus.com>
6755
6756         * flow.c (mark_set_1): New arguments code and flags; update all
6757         callers.  Track regno_first and regno_last; do HARD_REGNO_NREGS
6758         test in one place.  Tidy flags tests.  Don't bias REG_N_REFS by
6759         loop_depth when optimizing for size.  Do new_dead update after
6760         emitting REG_UNUSED notes.  Merge mark_set_reg code.
6761         (mark_set_reg): Remove.
6762         (propagate_one_insn): Use mark_set_1 for call-clobbered registers;
6763         arrange to not emit REG_UNUSED notes.
6764
6765 2000-04-26  Richard Henderson  <rth@cygnus.com>
6766
6767         * flow.c (find_auto_inc): Use pbi->bb instead of BLOCK_FOR_INSN.
6768         * ssa.c (convert_from_ssa): Don't run compute_bb_for_insn.
6769
6770 2000-04-26  Richard Henderson  <rth@cygnus.com>
6771
6772         * flow.c (propagate_one_insn): Break out from propagate_block.
6773         (init_propagate_block_info): Likewise.
6774         (free_propagate_block_info): Likewise.
6775         (propagate_block): Use them.  Export.
6776         * basic-block.h: Declare them all.
6777
6778 2000-04-26  Richard Henderson  <rth@cygnus.com>
6779
6780         * basic-block.h (life_analysis): Declare here ...
6781         * output.h: ... not here.
6782         * flow.c (life_analysis): Remove nregs parameter; replace
6783         remove_dead_code with flags.  Remove ssa dead code check.
6784         Only init alias analysis if we'll use it.
6785         * reg-stack.c (reg_to_stack): Update life_analysis arguments.
6786         * ssa.c (convert_to_ssa): Likewise.
6787         (convert_from_ssa): Likewise.
6788         * toplev.c (rest_of_compilation): Likewise.
6789
6790 2000-04-26  Richard Henderson  <rth@cygnus.com>
6791
6792         * flow.c (flow_delete_block): Rename from delete_block.  Export.
6793         * basic-block.h (flow_delete_block): Declare.
6794
6795 2000-04-26  David S. Miller  <davem@redhat.com>
6796
6797         * optabs.c (emit_libcall_block): Verify insns with INSN_P before
6798         taking a PATTERN of it.
6799
6800 2000-04-26  <NeilB@earthling.net>
6801
6802         * cpplex.c (spell_other, spell_char): Remove.
6803         (SPELL_CHAR): New.
6804         (token_spelling, trigraph_map): Use unsigned chars.
6805         (_cpp_lex_line): Tidy up the switch statement.
6806         * cpplib.h: Implement spell_char with spell_string.
6807         (C): New.
6808
6809 2000-04-26  <RodneyBrown@pmsc.com>
6810
6811         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Warning removal.
6812         * pa/pa64-regs.h (HARD_REGNO_MODE_OK): Warning removal.
6813
6814 2000-04-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6815
6816         * dwarf2out.c (dw_cfi_oprnd_struct, dw_fde_struct, add_fde_cfi,
6817         reg_save, dwarf2out_frame_debug_expr, dwarf2out_def_cfa,
6818         dwarf2out_window_save, dwarf2out_args_size, dwarf2out_reg_save,
6819         dwarf2out_return_save, dwarf2out_return_reg,
6820         dwarf2out_stack_adjust, dwarf2out_frame_debug, primary_filename,
6821         add_AT_lbl_id, add_AT_lbl_offset, type_tag, decl_start_label,
6822         gen_compile_unit_die, dwarf2out_init): Constify a char*.
6823
6824         * dwarf2out.h (dwarf2out_init): Likewise.
6825
6826         * dwarfout.c (filename_entry, primary_filename, last_filename,
6827         type_tag, output_compile_unit_die, dwarfout_init): Likewise.
6828
6829         * tree.h (dwarf2out_def_cfa, dwarf2out_window_save,
6830         dwarf2out_args_size, dwarf2out_reg_save, dwarf2out_return_save,
6831         dwarf2out_return_reg): Likewise.
6832
6833 2000-04-26  Andreas Jaeger  <aj@suse.de>
6834
6835         * extend.texi (Function Attributes): Fix description of pure
6836         attribute.
6837
6838 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
6839
6840         * integrate.c (output_inline_function): Do clear DECL_DEFER_OUTPUT
6841         before calling rest_of_compilation.
6842
6843 2000-04-26  Andreas Jaeger  <aj@suse.de>
6844
6845         * config/mips/linux.h: Remove erroneous commit of #if 0/#endif in
6846         last patch.
6847
6848 2000-04-25  Richard Henderson  <rth@cygnus.com>
6849
6850         * cse.c (cse_insn): Emit barrier after unconditional jump.
6851
6852         * calls.c (expand_call): Disable tail call generation once
6853         rtx_equal_function_value_matters is false.
6854
6855         * reg-stack.c (convert_regs_1): Treat EDGE_ABNORMAL_CALL edges
6856         like EDGE_EH edges.
6857
6858 2000-04-25  Jason Merrill  <jason@casey.cygnus.com>
6859
6860         * dwarf2out.c (add_bound_info): Don't crash on an unexpanded SAVE_EXPR.
6861
6862         * dwarfout.c (output_decl): Ignore NAMESPACE_DECLs.
6863
6864         * dwarf2out.c (gen_subprogram_die): The class-scope declaration DIE
6865         is the primary DIE for a member function.
6866         (gen_decl_die): Call set_decl_origin_self here.
6867         * dwarfout.c (output_decl): And here.
6868         * integrate.c (output_inline_function): Not here.
6869         Don't clear DECL_INLINE until after calling rest_of_compilation.
6870         (set_decl_origin_self): No longer static.
6871         * tree.h: Add prototype.
6872         * toplev.c (note_deferral_of_defined_inline_function): Only write
6873         out abstract instance for actual inlines.
6874
6875 2000-04-25  Alexandre Oliva  <aoliva@cygnus.com>
6876
6877         * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Return
6878         EXTENDED_REGS only if TARGET_AM33.
6879         * config/mn10300/mn10300.md (movsi, addsi): Avoid exposing
6880         SP_REGS to register allocation and reloading unless absolutely
6881         necessary.
6882         (movsi3): Remove special-case of adding non-constants to SP.
6883
6884 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6885
6886         * aclocal.m4 (gcc_AC_NEED_DECLARATION): This macro now requires
6887         INCLUDES to search and does not provide any of its own.  Also it
6888         now accepts optional ACTION-IF-NEEDED and ACTION-IF-NOT-NEEDED
6889         parameters.  Also it does not call AC_DEFINE.
6890         (gcc_AC_NEED_DECLARATIONS): Likewise.  Also this macro now calls
6891         AC_DEFINE and provides for automatic entries for autoheader.
6892         (gcc_AC_FUNC_PRINTF_PTR): Cleanup C code in test.
6893
6894         * configure.in (gcc_AC_NEED_DECLARATIONS): Save and restore CFLAGS
6895         so we can pass -I flags and include gansidecl.h/system.h in this
6896         test.
6897
6898         * acconfig.h: Delete all NEED_DECLARATION_* entries.
6899
6900 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6901
6902         * acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
6903         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
6904         ENABLE_GC_ALWAYS_COLLECT): Delete entries.
6905
6906         * configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
6907         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
6908         ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
6909         for these macros.  Clean up spacing and linewraps.
6910
6911 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
6912
6913         * calls.c (expand_call): Use get_callee_fndecl.
6914
6915         * print-tree.c (print_node): Print the chain of an _EXPR.
6916
6917 Tue Apr 25 16:16:04 2000  Andrew MacLeod  <amacleod@cygnus.com>
6918                           Jim Wilson  <wilson@cygnus.com>
6919                           Andrew Haley  <aph@cygnus.com>
6920
6921         * config/ia64/crtbegin.asm: Add IA-64 unwind support.  Correct alloc
6922         and gp save/restore problems.
6923         * config/ia64/crtend.asm: Add IA-64 unwind support.
6924         * config/ia64/ia64.c (ia64_compute_frame_size): Don't include pr_size
6925         in fr_pad_size calculation.
6926         (save_restore_insns): Move PR save area.  Correct uses of
6927         RTX_FRAME_RELATED_P.
6928         (ia64_expand_prologue): Mark alloc with RTX_FRAME_RELATED_P.
6929         (ia64_expand_epilogue): Add eh_epilogue support.
6930         (ia64_function_prologue): Emit .prologue directive.
6931         (ia64_init_machine_status, ia64_mark_machine_status): New functions.
6932         (ia64_override_options): Set init_machine_status and
6933         mark_machine_status.
6934         (rtx_needs_barrier): Handle bsp reads and writes.
6935         (spill_offset, sp_offset, spill_offset_emitted, tmp_reg, tmp_saved):
6936         New static variables.
6937         (process_set, process_for_unwind_directive): New functions.
6938         * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR, ASM_OUTPUT_XDATA_SHORT,
6939         ASM_OUTPUT_XDATA_INT, ASM_OUTPUT_XDATA_DOUBLE_INT, ASM_OUTPUT_EH_CHAR,
6940         ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT, ASM_OUTPUT_EH_DOUBLE_INT): New
6941         macros.
6942         (EH_FRAME_SECTION_ASM_OP): Define to IA_64.unwind section.
6943         (IA64_UNWIND_INFO, HANDLER_SECTION, IA64_UNWIND_EMIT): Define.
6944         (struct machine_function): Define.
6945         * config/ia64/ia64.md (bsp_value, set_bsp, eh_epilogue): New patterns.
6946
6947 2000-04-25  Bruce Korb  <bkorb@gnu.org>
6948
6949         * fixinc/Makefile.in: make the removal of old programs more
6950         robust
6951         * fixinc/mkfixinc.sh: use the two new targets in the Makefile:
6952         install-bin and install-sh
6953
6954 2000-04-25  Nick Clifton  <nickc@cygnus.com>
6955
6956         * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): If not
6957         defined, define to return zero.
6958         (function_cannot_inline_p): If a function has any target
6959         specific attributes, then use the macro
6960         FUNCTION_ATTRIBUTE_INLINABLE_P to allow the target to decide
6961         whether it can be inlined.  If it cannot, issue a suitable
6962         explanation.
6963
6964         * tm.texi: Add a new node 'Inlining' to document the new macro
6965         FUNCTION_ATTRIBUTE_INLINABLE_P.
6966
6967 2000-04-25  Zack Weinberg  <zack@wolery.cumb.org>
6968
6969         * cpplib.h (struct cpp_buffer): Add 'mapped' flag; fix
6970         commentary.
6971
6972 2000-04-25  Neil Booth  <NeilB@earthling.net>
6973
6974         Restore previous patch, plus the following fixes:
6975
6976         * cpphash.c (_cpp_create_definition): Test PREV_WHITESPACE in
6977         flags, not CPP_OPEN_PAREN.
6978         * cpplex.c (expand_token_space, init_token_list,
6979         cpp_free_token_list): Put the dummy token at list->tokens[-1].
6980         (_cpp_lex_line, _cpp_lex_file): token list is 0-based.
6981
6982 Tue Apr 25 14:06:40 2000  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6983
6984         * config/i386/freebsd.h (INT_ASM_OP): Define.
6985
6986 Tue Apr 25 14:51:07 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6987
6988         * loop.c (strength_reduce): Fix typo in the last checkin.
6989
6990 Tue Apr 25 07:33:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6991
6992         * stor-layout.c (finalize_record_size): Simplify to use existing
6993         functions.
6994         (compute_record_mode): No longer static.
6995         * tree.h (compute_record_mode): New declaration.
6996
6997 2000-04-25  Neil Booth  <NeilB@earthling.net>
6998
6999         * Revert my patch below until cause of build failures
7000         determined.
7001
7002 2000-04-25  Richard Henderson  <rth@cygnus.com>
7003
7004         * combine.c (combine_instructions): Add missing argument
7005         to try_combine.
7006
7007         * toplev.c (rest_of_compilation): Delay sibcall optimization
7008         until after emit_eh_context.
7009
7010 2000-04-24  Nick Clifton  <nickc@redhat.com>
7011
7012         * combine.c (combine_instructions): Do not try to combine a
7013         sequence of insns when the second insn has been replaced by a
7014         note.
7015
7016 Mon Apr 24 17:34:18 2000  Mumit Khan  <khan@xraylith.wisc.edu>
7017
7018         * gcc.c (load_specs): New static function.
7019         (read_specs): Use it.
7020
7021         * gcc.c (lookup_compiler): Make multiple passes for case
7022         insensitive filesystems.
7023
7024 2000-04-24  Neil Booth  <NeilB@earthling.net>
7025
7026         * cpphash.c: replace HSPACE_BEFORE with PREV_WHITESPACE.
7027         * cpphash.h (_cpp_check_directive): new.
7028         * cpplex.c (handle_newline, cpp_free_token_list,
7029         init_trigraph_map, trigraph_ok, trigraph_replace,
7030         backslash_start, skip_block_comment, skip_line_comment,
7031         skip_whitespace, parse_name, parse_number, parse_string,
7032         copy_comment, _cpp_lex_line, spell_char, spell_string,
7033         spell_comment, spell_name, spell_other, _cpp_lex_file,
7034         _cpp_output_list): new.
7035         (expand_name_space): take length argument.
7036         (init_token_list): add comment list initialisation.
7037         (cpp_scan_line): use auto_expand_name_space.  PREV_WHITESPACE
7038         instead of HSPACE_BEFORE.
7039
7040         * cpplib.c (_cpp_check_directive): new
7041         * cpplib.h (cpp_name, PREV_WHITESPACE, PREV_COMMENT,
7042         DIGRAPH, UNSIGNED_INT, TOK_NAME): new.
7043         (HSPACE_BEFORE): delete.
7044         (TTYPE_TABLE): rearrange.
7045         (struct cpp_toklist): update.
7046
7047 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7048
7049         * aclocal.m4 (gcc_AC_HEADER_STRING, gcc_AC_FUNC_PRINTF_PTR,
7050         gcc_AC_C_VOLATILE, gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG): Use the three
7051         argument form of AC_DEFINE.
7052
7053         * configure.in (DEFAULT_LINKER, DEFAULT_ASSEMBLER,
7054         HAVE_INTTYPES_H, PACKAGE, VERSION, ENABLE_WIN32_REGISTRY,
7055         WIN32_REGISTRY_KEY, HAVE_GAS_SUBSECTION_ORDERING, HAVE_GAS_WEAK,
7056         HAVE_GAS_HIDDEN, HAVE_AS_REGISTER_PSEUDO_OP, AS_SPARC64_FLAG,
7057         HAVE_AS_OFFSETABLE_LO10, ENABLE_NEW_GXX_ABI): Likewise.
7058
7059         * acconfig.h: Delete stubs made redundant by 3-arg AC_DEFINE.
7060
7061 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7062
7063         * Makefile.in (GCC_FOR_TARGET, GCC_CFLAGS, LIBGCC2_INCLUDES,
7064         deduced.h): Use -isystem, not -I, for including system headers.
7065
7066 2000-04-24  Nick Clifton  <nickc@cygnus.com>
7067
7068         * config/fr30/fr30.md (addsi3): Do not use small add instruction if
7069         the source register is the frame pointer or arg pointer.
7070         (addsi3_small_int): Disallow if source register is the frame
7071         pointer or arg pointer.
7072
7073 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7074
7075         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Delete redundant
7076         call to AC_MSG_RESULT.
7077
7078 2000-04-24  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
7079
7080         * invoke.texi: Correct grammatical errors, document
7081         -fno-gnu-keywords as identical to -fno-asm for C++.
7082
7083 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7084
7085         * aclocal.m4: (GCC_HEADER_STRING, GCC_NEED_DECLARATION,
7086         GCC_NEED_DECLARATIONS, GCC_FUNC_VFPRINTF_DOPRNT,
7087         GCC_FUNC_PRINTF_PTR, GCC_PROG_LN_S, GCC_PROG_LN, GCC_C_VOLATILE,
7088         AC_GCC_C_LONG_DOUBLE, GCC_FUNC_MKDIR_TAKES_ONE_ARG,
7089         EGCS_PROG_INSTALL): Rename autoconf macros with prefix gcc_AC_.
7090
7091         * configure.in (AC_GCC_C_LONG_DOUBLE, GCC_PROG_LN, GCC_PROG_LN_S,
7092         GCC_C_VOLATILE, EGCS_PROG_INSTALL, GCC_HEADER_STRING,
7093         GCC_FUNC_VFPRINTF_DOPRNT, GCC_FUNC_PRINTF_PTR,
7094         GCC_NEED_DECLARATIONS, GCC_FUNC_MKDIR_TAKES_ONE_ARG): Invoke with
7095         new macros names.
7096
7097 2000-04-24  Mumit Khan  <khan@xraylith.wisc.edu>
7098
7099         * c-pragma.c (push_alignment): Use BITS_PER_UNIT macro.
7100         (pop_alignment): Likewise.
7101         (handle_pragma_token): Likewise.
7102
7103 2000-04-24  Robert Lipe <robertlipe@usa.net>
7104
7105         * tree.h (tree_decl): Member `mode' now ENUM_BITFIELD.
7106
7107 2000-04-24  Hiroyuki Machida <machida@sm.sony.co.jp>
7108
7109         * combine.c (try_combine): Update reg_nonzero_bits of
7110         newi2pat before newpat.
7111
7112 Mon Apr 24 10:19:48 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7113
7114         * loop.c (strength_reduce): Simplify test to INSN_P.
7115         (record_giv): Attempt to simplify the add value, use CONSTANT_P
7116         expressions instead of CONST_INT.
7117         (express_from_1): Likewise.
7118
7119 2000-04-24  Mark Mitchell  <mark@codesourcery.com>
7120
7121         * regs.h (reg_n_max): Don't declare.
7122         * flow.c (reg_n_max): Don't define.
7123         * regclass.c (renumber): Don't initialize to zero.
7124         (regno_allocated): Likewise.
7125         (reg_n_max): Define.
7126         (allocate_reg_info): Don't initialize unnecessarily.
7127
7128 Mon Apr 24 00:21:36 2000  Jeffrey A Law  (law@cygnus.com)
7129
7130         * genattrtab.c (find_attr): Initialize unsigned_p, func_units_p
7131         and blockage_p in the newly allocated attribute.
7132
7133 Sun Apr 23 20:16:49 2000  Alexandre Oliva  <aoliva@cygnus.com>
7134
7135         * config/mn10300/mn10300.md (addsi): `inc4' on address
7136         registers does not modify cc, but `inc' on an extended
7137         register does.
7138
7139 Sun Apr 23 16:24:35 2000  Denis Chertykov  <denisc@overta.ru>
7140
7141         * reload.c (find_equiv_reg): Checks all valueno regs
7142         as a reload_reg_p regs.
7143
7144 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
7145
7146         * cpphash.c (collect_objlike_expansion): Add sanity check.
7147         (special_symbol): Remove case T_CONST, T_XCONST, T_MCONST.  If
7148         the buffer is the empty string, return.  Mark __DATE__ and
7149         __TIME__ as XCONST nodes, not MCONST.
7150         (_cpp_macroexpand): Avoid pushing an empty buffer.
7151         (funlike_macroexpand): Don't pop token_buffer here.
7152
7153 Sun Apr 23 18:37:53 2000  Alexandre Oliva  <aoliva@cygnus.com>
7154
7155         * config/mn10300/mn10300.h (REGNO_IN_RANGE_P): New macro.
7156         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P): New macros.
7157         (REGNO_EXTENDED_P, REGNO_AM33_P): New macros.
7158         (REGNO_OK_FOR_BASE_P): Define in terms of them.
7159         (REGNO_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P): Likewise.
7160         (REG_OK_FOR_BASE_P): Define in terms of the REGNO macro.
7161         (REG_OK_FOR_BIT_BASE_P, REG_OK_FOR_INDEX_P): Likewise.
7162
7163 Sun Apr 23 22:23:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7164
7165         * loop.c (simplify_giv_expr):  Be more agressive on simplifying
7166         constant MULT givs.
7167
7168 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
7169
7170         * cpphash.h (struct definition): Move file, line, col members...
7171         (struct hashnode): ... here.  Also add 'disabled' flag.
7172         (enum node_type): Add T_VOID, T_XCONST, T_FMACRO, and
7173         T_IDENTITY.  Remove T_DISABLED.
7174         Update prototypes.
7175
7176         * cpphash.c (_cpp_dump_definition): Split out dump_DEFINITION.
7177         (collect_expansion): Split into collect_objlike_expansion and
7178         collect_funlike_expansion.
7179         (_cpp_macroexpand): Split out scan_arguments, stringify, and
7180         funlike_macroexpand.
7181         (_cpp_compare_defs): Rename compare_defs, make static.
7182         (_cpp_make_hashnode): Initialize hp->disabled.
7183         (macro_cleanup): Adjust for new token types.  Clear
7184         m->disabled.
7185         (_cpp_create_definition): Move code here to determine what
7186         sort of macro it is, and code to check for redefinitions, from
7187         do_define.  Implement a few simple cases without creating a
7188         full DEFINITION.
7189         (_cpp_macroexpand, special_symbol, _cpp_dump_definition):
7190         Handle the simple cases.
7191         (push_macro_expansion): Set buf->has_escapes and hp->disabled
7192         here.
7193
7194         * cppinit.c (builtin_array): Change MCONST to XCONST
7195         everywhere.
7196         * cpplex.c (maybe_macroexpand): Handle IDENTITY macros here;
7197         fix check for disabled and function-like macros.
7198         * cpplib.c (do_define): Move most logic to
7199         _cpp_create_definition.
7200         (do_undef): Handle new special token types.
7201
7202 Sun Apr 23 14:27:44 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7203
7204         * loop.c (maybe_eliminate_biv_1): Use GET_CODE (x) == CONST_INT instead
7205         of CONSTANT_P for mult_val; always use validate_change to update insn.
7206
7207 2000-04-22  Zack Weinberg  <zack@wolery.cumb.org>
7208
7209         * cpphash.c (trad_stringify, add_pat): New functions.
7210         (collect_expansion): Restore support for -traditional syntax.
7211         Use trad_stringify and add_pat.
7212         (_cpp_macroexpand): Restore support for -traditional semantics.
7213         * cpplex.c (_cpp_scan_line): Don't change space_before if we
7214         get a COMMENT token.
7215         (_cpp_lex_token): Provide COMMENT tokens to caller if
7216         traditional and parsing_define_directive.
7217         (skip_comment): Warn about // comments if -Wtraditional.
7218         * cpplib.c (do_define): Fix typo.  Create EMPTY nodes with
7219         proper node type.
7220         (do_undef): Don't warn about undefining EMPTY nodes.
7221
7222 Sat Apr 22 22:35:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7223
7224         * loop.c (strength_reduce): Fix biv removal code.
7225
7226 2000-04-22  Richard Henderson  <rth@cygnus.com>
7227
7228         * predict.c (estimate_probability): Examine both sides of
7229         a branch for no exits.  Use 90% not 50% for predict taken.
7230         Reorg for one copy of note generation code.
7231
7232 2000-04-22  Richard Henderson  <rth@cygnus.com>
7233
7234         * flow.c (mark_used_reg): Hack around rs6000 eliminable pic reg.
7235
7236 2000-04-22  Richard Henderson  <rth@cygnus.com>
7237
7238         * diagnostic.c (init_output_buffer): Don't initialize format_args.
7239         (output_clear): Likewise.
7240         (output_printf): Use va_copy.
7241         (vline_wrapper_message_with_location): Likewise.
7242         (v_message_with_decl): Likewise.
7243         (line_wrapper_printf): VA_START infor buffer.format_args directly.
7244         * system.h (va_copy): Provide default implementation.
7245
7246 2000-04-22  Richard Henderson  <rth@cygnus.com>
7247
7248         * predict.c (expected_value_to_br_prob): Don't bomb if op1 of
7249         the collected condition is not a constant.
7250
7251 2000-04-22  Gabriel Dos Reis  <gdr@codesourcery.com>
7252
7253         * diagnostic.h: New file.
7254
7255         * Makefile.in (diagnostic.o): Depends on diagnostic.h
7256
7257         * diagnostic.c: Tweak.  Rationalize the output logic.  Adjust
7258         various function prototypes.
7259         (diagnostic.h): #include.
7260         (struct output_buffer): Move into diagnostic.h.
7261         (get_output_prefix): Rename to output_get_prefix.  Export.
7262         (init_output_buffer): Export. Break out.  Ajust intialization.
7263         (output_space_left, output_append): Export.
7264         (output_newline): Rename to output_add_newline.  Export.
7265         (output_clear): Nullify additional output_buffer fields.
7266         (output_puts): Rename to output_add_string.  Export.
7267         (dump_output): Rename to output_flush_on.  Export.
7268         (build_location_prefix): Constify return-type.
7269         (emit_output_prefix): Rename to output_emit_prefix. Export.
7270         (set_real_maximum_length): New function.
7271         (output_set_maximum_length): Ditto
7272         (output_clear): Ditto.
7273         (output_add_character): Ditto.
7274         (output_add_integer): Ditto.
7275         (output_add_space): Ditto.
7276         (output_format): Ditto.
7277         (output_printf): Adjust buffer initialization.
7278         (vline_wrapper_message_with_location): Ditto.
7279         (v_message_with_decl): Ditto.  Adjust call to output_puts
7280         and get_output_prefix.
7281         (default_print_error_function): Adjust buffer intialization.
7282
7283 Sat Apr 22 06:45:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7284
7285         * expr.c (preexpand_calls, case CALL_EXPR): Don't look at TYPE_SIZE
7286         of VOID_TYPE.
7287
7288 Fri Apr 21 18:33:09 2000  Alexandre Oliva  <aoliva@cygnus.com>
7289
7290         * config/mn10300/mn10300.h (REGNO_REG_CLASS): Use NO_REGS instead
7291         of explicit 0.
7292
7293 Fri Apr 21 18:30:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
7294
7295         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Provide more
7296         accurate data about SP moves.
7297
7298 Fri Apr 21 18:28:28 2000  Alexandre Oliva  <aoliva@cygnus.com>
7299
7300         * config/mn10300/mn10300.h (ADDITIONAL_REGISTER_NAMES): Added
7301         aliases to AM33 registers.
7302
7303 Fri Apr 21 18:26:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
7304
7305         * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Added register 16
7306         to all EXTENDED bitmaps.
7307
7308 Fri Apr 21 18:17:12 2000  Alexandre Oliva  <aoliva@cygnus.com>
7309
7310         * config/mn10300/mn10300-protos.h (mn10300_address_cost): Declare.
7311         * config/mn10300/mn10300.h (ADDRESS_COST): New macro.
7312         * config/mn10300/mn10300.c (mn10300_address_cost): New function.
7313
7314 Fri Apr 21 18:11:56 2000  Alexandre Oliva  <aoliva@cygnus.com>
7315
7316         * config/mn10300/mn10300.md (movdi, movdf): Do not use `movu' when
7317         the operand is not constant.
7318
7319 Fri Apr 21 14:58:29 2000  Denis Chertykov  <denisc@overta.ru>
7320
7321         * reload.c (find_equiv_reg): Checks all valueno and regno regs
7322         as a call-clobbered regs.
7323
7324 Fri Apr 21 13:30:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7325
7326         * rtl.c: Use NOTE_INSN_REPEATED_LINE_NUMBER and NOTE_INSN_RANGE_BEG.
7327         * rtl.h: Likewise.
7328         * rtl.def: Update comment.
7329         * function.c (expand_function): Use NOTE_INSN_REPEATED_LINE_NUMBER.
7330         * integrate.c (expand_inline_function): Likewise.
7331         * profile.c (branch_prob): Likewise.
7332         * ggc-common.c (ggc_mark_rtx_children): Use NOTE_INSN_RANGE_BEG.
7333         * print-rtl.c (print_rtx): Likewise.
7334         * haifa-sched.c (sched_analyze, unlink_other_notes): Likewise.
7335         (reemit_notes): Likewise; also use enum insn_note.
7336
7337         * stor-layout.c (layout_decl): Only set DECL_MODE if not already set.
7338         (place_field): Properly compute know and actual alignment.
7339
7340         * gengenrtl.c (gencode): Write obstack_alloc_rtx function start
7341         in proper format.
7342
7343         * cse.c (cse_insn): In (set REG0 REG1) case, remove a REG_EQUAL
7344         note for REG1.
7345
7346 2000-04-21  Zack Weinberg  <zack@wolery.cumb.org>
7347
7348         * cpphash.c (struct arg, struct arglist): Const-ify strings.
7349         (warn_trad_stringify, duplicate_arg_p): New helper functions.
7350         (collect_expansion): Rewrite to scan over a token list.
7351         Remove -traditional support.
7352         (collect_formal_parameters): Rename to collect_params; rewrite
7353         to scan over a token list.
7354         (_cpp_create_definition): Adjust to scan a token list.
7355         (_cpp_macroexpand): Remove -traditional support.
7356         (_cpp_compare_defs): Whitespace is now canonicalized.
7357         (comp_def_part): Delete function.
7358
7359         * cpphash.h: Update prototypes.
7360         * cpplex.c (init_token_list): Don't set lineno if there is no
7361         buffer.
7362         (pedantic_whitespace): New function.
7363         (_cpp_scan_line): Mark tokens that had hspace before.  Don't
7364         consume a newline.  Use pedantic_whitespace.
7365         (_cpp_lex_token): Remove support for -traditional macros.
7366         (_cpp_get_define_token): Delete.
7367         (_cpp_get_directive_token): Do the real work here.  Use
7368         pedantic_whitespace.
7369         (_cpp_init_input_buffer): Initialize pfile->directbuf.
7370
7371         * cpplib.c (get_macro_name): Delete.
7372         (do_define): Read the entire line into pfile->directbuf, then
7373         feed the token list to _cpp_create_definition.
7374         * cpplib.h (HSPACE_BEFORE): new define.
7375         (struct cpp_reader): Add a toklist member, "directbuf".
7376
7377         * predict.c (estimate_probability): New heuristic: if a jump
7378         branches around a block with no successors, predict it taken.
7379         Disentangle control flow.
7380
7381 2000-04-20  Richard Henderson  <rth@cygnus.com>
7382
7383         * loop.c (emit_iv_add_mult): Revert last change.
7384
7385 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
7386
7387         * cpplib.h (enum cpp_ttype): Add token types for all
7388         punctuators.  Distinguish pp-numbers from valid C numbers.
7389         Give some tokens better names.  Initialize from macro.
7390         (struct cpp_name, cpp_token, cpp_toklist): New data
7391         structures.
7392         Update prototypes.
7393         * cpplex.c (bump_column, expand_name_space,
7394         expand_token_space, init_token_list, cpp_output_list,
7395         _cpp_scan_line):  New functions.
7396         (output_line_command): Add third argument, new line number.
7397         * cpphash.h: Update prototypes.
7398         * cppexp.c, cpphash.c, cpplib.c, scan-decls.c: Update for new
7399         token names.
7400
7401 2000-04-20  Richard Henderson  <rth@cygnus.com>
7402
7403         * config/alpha/alpha.c (alpha_emit_floatuns): Emit missing barrier.
7404
7405 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
7406
7407         * c-common.c (decl_attributes) [A_ALIAS]: Set TREE_USED on the
7408         object pointed to.
7409
7410 Thu Apr 20 14:19:18 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7411
7412         * loop.c (emit_iv_add_mult):  Simplify it's input and emit
7413         REG_EQUAL note explaining the calculated value.
7414
7415         * calls.c (expand_call): Avoid unnecesary precalculation
7416         and outgoing parameters space guarding for sibling calls.
7417         (store_one_arg): Likewise.
7418
7419 Thu Apr 20 08:01:07 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7420
7421         * toplev.c (enum dump_file_index, dump_file): Add DFI_sibling.
7422         (rest_of_compilation): Write sibling dump file and account
7423         for time as jump time.
7424         * invoke.texi: Update documentation on dump flags.
7425
7426 2000-04-19  Marek Michalkiewicz  <marekm@linux.org.pl>
7427
7428         * avr.c: #include "system.h" instead of <stdio.h> and <stdlib.h>.
7429
7430 2000-04-19  Zack Weinberg  <zack@wolery.cumb.org>
7431
7432         * cpphash.c (special_symbol): Represent an empty macro with
7433         "\r \r " not just "\r ".
7434         (_cpp_macroexpand): Correct condition for the foo ( ) special
7435         case.
7436         (unsafe_chars): Handle EOF as second argument.
7437         (push_macro_expansion): Simplify test for removing escape at
7438         end.  Do not trim both escapes if there is no text in between.
7439
7440 2000-04-19  Jim Blandy  <jimb@redhat.com>
7441
7442         * dwarf2out.c (DWARF2_ADDR_SIZE): New macro.  Use it instead
7443         of PTR_SIZE, when appropriate.
7444
7445 2000-04-19  Mark Mitchell  <mark@codesourcery.com>
7446
7447         * system.h (ONLY_INT_FIELDS): Make sure it is defined.
7448         (USE_ENUM_BITFIELDS): Fix typo.
7449
7450 Wed Apr 19 12:14:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7451
7452         * stor-layout.c (place_field): Set rli->offset_align properly.
7453
7454 2000-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7455
7456         * mips.h (BITS_PER_WORD, UNITS_PER_WORD, UNITS_PER_FPREG,
7457         INT_TYPE_SIZE, LONG_TYPE_SIZE, POINTER_SIZE, POINTER_BOUNDARY,
7458         PARM_BOUNDARY): Remove unnecessary casts.
7459
7460 Wed Apr 19 12:02:37 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7461
7462         * calls.c (precompute_arguments): Remove must_preallocate and
7463         args_size calls.
7464         (expand_call): Update call of precompute_arguments.
7465
7466         * loop.c (check_insn_for_bivs, for_every_insn_in_loop,
7467         check_insn_for_givs): Break out from ...
7468         (strength_reduce) ... here; use for_every_insn_in_loop to call
7469         check_insn_for_givs.
7470         * loop.h (for_every_insn_in_loop): Declare.
7471         (loop_insn_callback): New type.
7472
7473 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
7474
7475         * cpplib.c (do_pragma_poison):  Strings in the token buffer are
7476         not nul-terminated.
7477
7478 Tue Apr 18 16:04:12 2000  Jim Wilson  <wilson@cygnus.com>
7479
7480         * config/ia64/sysv4.h (SELECT_SECTION): Use data_section if
7481         flag_pic and RELOC.
7482
7483 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
7484
7485         * cccp.c, cexp.y, cexp.c, cccp.1: Removed.
7486
7487         * configure.in: Delete --disable-cpplib option and all
7488         references to cpp_main.
7489         * configure: Regenerate.
7490         * Makefile.in: Remove all references to CCCP, CCCP_OBJS,
7491         @cpp_main@, cccp.c, cexp.c, cexp.y, cexp.output, cexp.o,
7492         cccp.o, cccp, or cppmain.  Link cppmain.o straight to
7493         cpp$(exeext).  Add --no-headers to makeinfo command line when
7494         generating INSTALL.  Install and uninstall cpp.1 manpage, not
7495         cccp.1.
7496         * install.texi: Delete all references to cexp.y/cexp.c.
7497         Delete ancient instructions for compiling GCC on 3b1.
7498         * INSTALL: Regenerate.
7499
7500         * cppfiles.c, cpplib.h, jump.c, protoize.c, c-lex.c, mips/t-ecoff,
7501         mips/t-elf, mips/t-r3900: Remove references to cccp.c.
7502         * convex.h, fx80.h, m68k.h, pdp11.h: Remove references to
7503         cexp.c/cexp.y.
7504         * xm-linux.h, xm-os2.h, romp.h: Remove definition of BSTRING,
7505         which is no longer tested anywhere.
7506
7507         * cppinit.c (handle_option): Don't run error message through
7508         gettext twice.
7509
7510 Tue Apr 18 14:16:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7511
7512         * conflict.c (conflict_graph_add): Pass enum type to htab_find_slot.
7513         * cpperror.c (hashtab.h): Now include.
7514         * cppexp.c (hashtab.h): Likewise.
7515         * cpplex.c (hashtab.h): Likewise.
7516         * cppfiles.c (hashtab.h): Likewise.
7517         (find_include_file, _cpp_calc_hash, cpp_read_file): Pass enum type
7518         to htab_find_slot_with_hash.
7519         * cpphash.c (hashtab.h): Now include.
7520         (_cpp_lookup_slot): INSERT is now enum insert_option.
7521         * cpphash.h (_cpp_lookup_slot): Likewise.
7522         * cppinit.c (hashtab.h): Include earlier.
7523         (initialize_builtins): Pass enum to htab_find_slot.
7524         * cpplib.c (hashtab.h): Now include.
7525         (do_define, do_undef): Pass enum type to _cpp_lookup_slot.
7526         (do_pragma_poison, do_assert): Likewise.
7527         * emit-rtl.c (gen_rtx_CONST_INT): Pass enum to
7528         htab_find_slot_with_hash.
7529         * simplify-rtx.c (cselib_lookup_mem, cselib_lookup): Likewise.
7530         * tree.c (type_hash_add): Likewise.
7531         (build1): Minor cleanup.
7532
7533         * ggc-common.c: Add missing blanks.
7534         * print-tree.c (print_node): Print DECL_OFFSET_ALIGN.
7535         * tree.h (DECL_OFFSET_ALIGN): Fix typo in comment.
7536
7537         * stmt.c (mark_case_node): New function.
7538         (mark_case_nesting): Call it.
7539
7540         * expmed.c (emit_store_flag): If comparing two-word integer
7541         with zero, can optimize NE, EQ, GE, and LT.
7542
7543         * c-decl.c (mark_binding_level): Use 'for' instead of `while'.
7544         * conflict.c: Minor cleanups.
7545         * optabs.c: Add blank line
7546         * simplify-rtx.c: Minor cleanups.
7547
7548 2000-04-18  Stan Cox  <scox@cygnus.com>
7549
7550         * gengenrtl.c (genlegend): Fix misspelling.
7551
7552 2000-04-18  Robert Lipe  <robertlipe@usa.net>
7553
7554         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Added.  Check that
7555         bitfields of the host compiler are not signed quantities.
7556         * config.in: Regenerate.
7557         * configure: Regenerate.
7558         * system.h (USE_ENUM_BITFIELDS): Added.
7559         (ENUM_BITFIELDS): Added.
7560         * rtl.h (rtx_def): Members `code', `mode', now ENUM_BITFIELD.
7561         (SHORT_ENUM_BUG): Deleted.
7562         * tree.h (tree_common): Members `code', `mode', `built_in_class',
7563         now ENUM_BITFIELD.
7564         * config/i386/xm-sco.h (ONLY_INT_FIELDS): Deleted.
7565         (CODE_FIELD_BUG): Likewise.
7566         * config/m68k/x-apollo68 (CC): Deleted SHORT_ENUM_BUG.
7567         (OLD_CC): Likewise.
7568         * config/m68k/x-ccur (X_CFLAGS): Likewise.
7569
7570 2000-04-18  Mark Mitchell  <mark@codesourcery.com>
7571
7572         * cpplex.c (_cpp_lex_token): Don't call CPP_BUMP_LINE when the
7573         mark is active.
7574
7575 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
7576
7577         * cppexp.c (lex): Don't assume tokens are NUL terminated.
7578         * cpplib.c (do_include, do_import, do_include_next,
7579         read_line_number, detect_if_not_defined): Likewise.
7580         * cpphash.c (collect_expansion): Likewise.
7581         (special_symbol, _cpp_macroexpand): Check return from
7582         cpp_file_buffer.
7583         * cpphash.h (CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q): Delete
7584         macros.  Delete all uses.
7585
7586         * gcc.dg/cpp-mi.c: Add two more test cases.
7587         * gcc.dg/cpp-mind.h, gcc.dg/cpp-mindp.h: New files.
7588
7589 2000-04-17  Richard Henderson  <rth@cygnus.com>
7590
7591         * bb-reorder.c (fixup_reorder_chain): Don't look up new block again.
7592         (reorder_basic_blocks): If no epilogue in rtl, force last block last.
7593
7594 2000-04-17  Mark Mitchell  <mark@codesourcery.com>
7595
7596         * function.c (expand_function_start): Use hard_function_value to
7597         compute the RTL to use for DECL_RESULT.
7598
7599 Mon Apr 17 23:35:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7600
7601         * i386.c (athlon_cost): Fix lea, divide and XFmode move costs.
7602         (x86_integer_DFmode_moves, x86_partial_reg_dependency,
7603          x86_memory_mismatch_stall): New global variables.
7604         (ix86_adjust_cost): Handle MEMORY_BOTH on places MEMORY_STORE was only
7605         alloved; fix load penalties for Athlon.
7606         * i386.h (x86_integer_DFmode_moves, x86_partial_reg_dependency,
7607         x86_memory_mismatch_stall): Declare.
7608         (TARGET_INTEGER_DFMODE_MOVES, TARGET_PARTIAL_REG_DEPENDENCY,
7609          TARGET_MEMORY_MISMATCH_STALL): New.
7610         * i386.md (athlon scheduling parameters): Fix latencies according to
7611         Athlon Optimization Manual.
7612         (sahf, xchg, fldcw, leave instruction patterns): Set athlon_decode to
7613         vector.
7614         (fsqrt instruction patterns): Set athlon_decode to direct.
7615         (movhi_1): Promote for TARGET_PARTIAL_REG_DEPENDENCY and for
7616         PARTIAL_REGISTER_STALL with !TARGET_HIMODE_MATH machines.
7617         (movqi_1): Handle promoting correctly for TARGET_PARTIAL_REG_DEPENDENCY
7618         and TARGET_PARTIAL_REGISTER_STALL machines.
7619         (pushdf_nointeger): New pattern.
7620         (pushdf_integer): Rename from pushdf.
7621         (movdf_nointger): Enable for !TARGET_INTEGER_DFMODE_MOVES machines.
7622         (movdf_intger): Disable for !TARGET_INTEGER_DFMODE_MOVES machines.
7623
7624 2000-04-17  Richard Henderson  <rth@cygnus.com>
7625
7626         * loop.c (canonicalize_condition): Add WANT_REG argument.
7627         Stop the search if we match it.
7628         * expr.h (canonicalize_condition): Update decl.
7629         * predict.c (expected_value_to_br_prob): Use it.  Track last
7630         expected value note.
7631         (find_expected_value): Remove.
7632
7633         * reorg.c (mostly_true_jump): Always use BR_PROB if present.
7634
7635 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
7636
7637         * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE([AC_FUNC_MMAP]).
7638         (AC_FUNC_MMAP_FILE): New macro, tests read-only private map of
7639         a plain file.
7640         * configure.in: Call AC_FUNC_MMAP_FILE.
7641         * configure: Regenerate.
7642         * config.in: Regenerate.
7643
7644         * intl/loadmsgcat.c: Test HAVE_MMAP_FILE not HAVE_MMAP.
7645         * fixinc/fixincl.c: Likewise.
7646
7647 2000-04-17  Richard Henderson  <rth@cygnus.com>
7648
7649         * builtins.c (expand_builtin_expect): New.
7650         (expand_builtin): Call it.
7651         * builtins.def (BUILT_IN_EXPECT): New.
7652         * c-common.c (c_common_nodes_and_builtins): Declare __builtin_expect.
7653         * extend.texi: Document it.
7654
7655         * predict.c (expected_value_to_br_prob): New.
7656         (find_expected_value): New.
7657         * basic-block.h (expected_value_to_br_prob): Declare.
7658         * toplev.c (rest_of_compilation): Invoke it.
7659
7660         * rtl.h (NOTE_EXPECTED_VALUE): New.
7661         (NOTE_INSN_EXPECTED_VALUE): New.
7662         * rtl.c (note_insn_name): Update.
7663         * print-rtl.c (print_rtx): Reorg NOTE_LINE_NUMBER special
7664         cases; handle NOTE_INSN_EXPECTED_VALUE.
7665
7666 2000-04-17  Jakub Jelinek  <jakub@redhat.com>
7667
7668         * config/sparc/sparc.c (eligible_for_sibcall_delay): Cannot use
7669         leaf sibcall delay slot if flag_pic.
7670         (output_sibcall): Always emit call for leaf sibcall if flag_pic.
7671
7672 2000-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7673
7674         * Makefile.in (stmp-fixproto): Acknowledge errors in fixproto.
7675
7676         * fixproto: If fix-header fails, exit with an error.
7677
7678 Mon Apr 17 14:59:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7679
7680         * cse.c (struct check_depdendence_data): New.
7681         (check_dependence): New function.
7682         (invalidate): Use check_depdenence.
7683
7684 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
7685
7686         * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Adjust, now that
7687         UNITS_PER_WORD is unsigned.
7688
7689         * tree.h (struct tree_common): Remove misleading comment.
7690
7691 2000-04-16  Dave Pitts  <dpitts@cozx.com>
7692
7693         * Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole
7694         message in quotes. Otherwise, IBM's make program treats the '#' as the
7695         start of a comment and ignores the remainder of the line.
7696
7697         * c-lex.c (yylex): Change for EBCDIC, lower case characters preceed
7698         upper case.
7699         * cccp.c (initialize_char_syntax): Allow for holes in EBCDIC.
7700         * cexp.y (initialize_random_junk): Likewise.
7701         * cppfiles.c (find_include_file): Cast alloca return value.
7702         * cppinit.c (initialize_standard_includes): Likewise.
7703         * cpplib.c (cpp_define, cpp_undef): Likewise.
7704         * defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT.
7705         * final.c (output_asm_insn): Allow for holes in EBCDIC.
7706         * fold-const.c (CHARMASK): New.
7707         (real_hex_to_f): Use it.
7708         * real.c (CHARMASK): New.
7709         (etoasc, asctoeg): Use it.
7710         (asctoeg): EBCDIC lower case characters preceed upper case.
7711
7712         * i370.c (mvs_add_label): Change spacing for coding conventions.
7713         * i370.h (ASM_OUTPUT_CASE_LABEL): Change to the data CSECT for the
7714         outputing case vectors.
7715         (ASM_OUTPUT_CASE_END): New, put assembler back into code CSECT.
7716         (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove page check,
7717         since vector in in the data CSECT.
7718         (ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation.
7719         * i370.md (Many patterns): Put the length in the XL directives.
7720         (movdi): Put back STM and MVC in definition.
7721         (floatsidf2): Correct TARGET_ELF_ABI pattern and add back the LE370
7722         pattern using the TCA.
7723         * oe.h (CPP_SPEC): Added to allow trigraphs.
7724         * xm-oe.h (HOST_BITS_PER_LONGLONG): Change to 32. IBM's compiler does
7725         not support the "long long" type.
7726
7727 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
7728
7729         * config/mips/mips-protos.h (mips_legitimate_address_p): New
7730         function.
7731         (mips_reg_mode_ok_for_base_p): Likewise.
7732         * config/mips/mips.h (REG_OK_STRICT_P): Don't define.
7733         (REG_OK_FOR_INDEX_P): Define unconditionally.
7734         (REG_MODE_OK_FOR_BASE_P): Use mips_reg_mode_ok_for_base_p.
7735         (GO_IF_LEGITIMATE_ADDRESS): Use mips_legitimate_address_p.
7736         * config/mips/mips.c (mips16_simple_memory_operand): Adjust now
7737         that GET_MODE_SIZE is unsigned.
7738         (mips_reg_mode_ok_for_base_p): Define.
7739         (mips_legitimate_address_p): Likewise.  Adjust now
7740         that GET_MODE_SIZE is unsigned.
7741         (block_move_loop): Make the number of bytes unsigned.
7742         (expand_block_move): Likewise.
7743         (function_arg): Make the loop counter unsigned to match the
7744         boundary condition.
7745
7746 2000-04-16  Richard Henderson  <rth@cygnus.com>
7747
7748         * rtl.h (enum insn_note): New enumeration.  Subsume
7749         NOTE_INSN_DELETED and friends.
7750         (GET_NOTE_INSN_NAME): Adjust index by NOTE_INSN_BIAS.
7751         * rtl.c (note_insn_name): Tweak string order.
7752
7753 2000-04-15  Zack Weinberg  <zack@wolery.cumb.org>
7754
7755         * cpplex.c (_cpp_read_and_prescan): Enlarge len by setting it
7756         to offset * 2.
7757
7758         * cpplex.c (output_line_command): Remove debugging prints.
7759         (cpp_output_tokens): Don't write out a zero-length buffer or
7760         try to see if it has a newline in it.
7761         (_cpp_expand_to_buffer): Copy the source buffer before pushing.
7762         (_cpp_read_and_prescan): Move shift-down of pushback bytes to
7763         the end of the loop.  Use memmove.  Don't read past the end of
7764         the buffer.  Remove trailing newlines from error messages.
7765
7766 2004-04-16  Neil Booth  <NeilB@earthling.net>
7767
7768         * cpphash.h (SYNTAX_INCLUDE, SYNTAX_ASSERT, directive_handler): new.
7769         * cpplib.c: Add new syntax flags to directive table, and
7770         supporting macros.
7771
7772 2000-04-15  Ulrich Drepper  <drepper@redhat.com>
7773
7774         * i386.c (ix86_expand_epilogue): Yes, the x86 can pop 64k at once
7775         using ret $N.
7776
7777 2000-04-15  David Edelsohn  <edelsohn@gnu.org>
7778
7779         * toplev.c (display_help): Prefix "f" to "sched-verbose=".
7780         * haifa-sched.c: Update -fsched-verbose comments to use "=".
7781
7782 Sat Apr 15 10:59:19 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7783
7784         * Makefile.in (ggc-page.o): Now includes toplev.h.
7785         * ggc-page.c (toplev.h): Now included.
7786         (gc_time): Remove declaration.
7787         (ggc_collect): TIME now long.
7788         * toplev.c (parse_time, varasm_time, gc_time): Still global; all
7789         others static.
7790         * toplev.h (gc_time, parse_time, gc_time): New declarations.
7791
7792         * toplev.c: Make *_time variable long to reduce chance of overflow.
7793         (TIMEVAR): Likewise for `otime'.
7794         (print_time): Arg is now long; compute percentage in FP and round.
7795         * toplev.h (print_time): Arg is long.
7796
7797         * tree.c: Minor whitespace changes.
7798
7799         * configure.in (alpha*-*-*): Add config/alpha/t-alpha.
7800         * configure: Rebuilt.
7801         * libgcc2.c (__fixunstfDI): Renamed from __fixunstfdi.
7802         (__fixunsxfDI): Renamed from __fixunsxfdi.
7803         (__fixunsdfDI): Renamed from __fixunsdfdi.
7804         (__fixunssfDI): Renamed from __fixunssfdi.
7805         (__floatdisf): Use proper type in REP_BIT macro.
7806         (__fixunsxfSI): Renamed from __fixunsxfsi.
7807         (__fixunsdfSI): Renamed from __fixunsdfsi.
7808         (__fixunssfSI): Renamed from __fixunssfsi.
7809         * libgcc2.h: Add cases for MIN_UNITS_PER_WORD > 4.
7810         Change location of macros and upper-case some names as above.
7811         * longlong.h ([alpha]): Use PARAMS, not __P in decl of __udiv__qrnnd.
7812         * config/alpha/t-alpha, config/alpha/qrnnd.asm: New files.
7813
7814         * varasm.c (assemble_variable): Add cast to remove warning.
7815         (immed_real_const_1): Only use CONST[01]_RTX if not in nested function.
7816
7817         * flow.c (count_basic_blocks, find_basic_blocks_1): Remove last change.
7818         * optabs.c (emit_libcall_block): If have REG_EH_REGION, update
7819         region number to -1.
7820
7821 2000-04-15  Richard Earnshaw (rearnsah@arm.com)
7822
7823         * emit-rtl.c (unshare_all_rtl_again): Unmark everything, then
7824         call unshare_all_rtl.
7825
7826         * arm.md (movhi): REGNO_POINTER_ALIGN is now bits.
7827
7828 Fri Apr 14 16:58:45 2000  Jim Wilson  <wilson@cygnus.com>
7829
7830         * config/ia64/lib1funcs.asm (__divdi3, __moddi3, __udivdi3, __umoddi3):
7831         Use .s1 not .s0 for all FP instructions.
7832
7833 2000-04-14  Zack Weinberg  <zack@wolery.cumb.org>
7834
7835         * cpplex.c (cpp_output_tokens, cpp_scan_buffer_nooutput): New public
7836         interfaces.
7837         (safe_fwrite, output_line_command): New static functions.
7838         (cpp_expand_to_buffer): Now private to cpplib.
7839         (cpp_scan_buffer): Take a printer.
7840
7841         * cpphash.h: Update prototypes.
7842         * cpplib.h: Update prototypes.
7843         (cpp_printer): New.
7844         (cpp_buffer): Remove last_nominal_fname.
7845         (cpp_reader): Remove lineno.
7846
7847         * cppmain.c: Use a cpp_printer.
7848         * fix-header.c: No need to inhibit line commands.  Call
7849         cpp_start_read with no printer.
7850
7851         * cpperror.c (cpp_notice_from_errno): Provide default name.
7852         * cppfiles.c (make_IHASH, _cpp_fake_ihash): New functions.
7853         (find_include_file, cpp_read_file): Use make_IHASH.
7854         (file_cleanup): Set control_macro and clear
7855         input_stack_listing_current here.
7856         (_cpp_execute_include): Don't output entering-file marker.
7857         * cpphash.c (special_symbol): Look for the line number in the
7858         buffer, not the reader.
7859         (_cpp_macroexpand): No need to disable line commands.
7860         (_cpp_dump_definition): No need to generate line commands.
7861         (dump_hash_helper): Remove excess newline from output.
7862         * cppinit.c (dump_special_to_buffer): No need to generate line
7863         commands.
7864         (cpp_printer_init): New.
7865         (cpp_start_read): Take a printer, and start it up if it's not
7866         NULL.  No need to generate line commands.
7867         (cpp_finish): Expect no buffers stacked at all.  Take a
7868         printer argument, and flush the output buffer if it's not
7869         NULL.
7870         * cpplex.c (_cpp_lex_token): Return EOF if there's no buffer.
7871         Don't put two hashes at the beginning of an assertion.
7872         (cpp_get_token): Don't increment pfile->lineno or emit line
7873         commands here.  Return EOF if there's no buffer when we get
7874         EOF.
7875         * cpplib.c (do_define, skip_if_group):
7876         No need to disable line commands.
7877         (_cpp_output_line_command): Delete function.
7878         (do_line): Don't emit line commands here, but set things up so
7879         they will be emitted if necessary.  Use _cpp_fake_ihash to
7880         make unique nominal_fnames if necessary.
7881         (do_elif, do_else, _cpp_handle_eof): Call cpp_error_with_line
7882         with 0 for column, not -1.
7883         (_cpp_handle_eof): Don't set the control macro here.  Don't
7884         clear input_stack_listing_current here.  Don't emit line
7885         commands.
7886
7887 2000-04-14  Geoff Keating  <geoffk@cygnus.com>
7888
7889         * config/rs6000/sysv4.h (LINK_START_SOLARIS_SPEC): Define to empty
7890         always, use the default SVR4 start address.
7891
7892         * config/rs6000/linux.h (LINK_SPEC): Don't define.
7893         (LINK_SHLIB_SPEC): Define.
7894         (LINK_START_DEFAULT_SPEC): Define.
7895         (LINK_OS_DEFAULT_SPEC): Define.
7896
7897         * config/rs6000/sysv4.h (ENDFILE_SPEC): Use the %(endfile_*) macros.
7898
7899         * config/rs6000/eabi.asm (__eabi): Call __init rather than
7900         __do_global_ctors to handle constructors.
7901         * config/rs6000/sysv4.h (STARTFILE_ADS_SPEC): Use crtbegin.
7902         (STARTFILE_YELLOWKNIFE_SPEC): Likewise.
7903         (STARTFILE_MVME_SPEC): Likewise.
7904         (STARTFILE_SIM_SPEC): Likewise.
7905         (ENDFILE_ADS_SPEC): Use crtend.
7906         (ENDFILE_YELLOWKNIFE_SPEC): Likewise.
7907         (ENDFILE_MVME_SPEC): Likewise.
7908         (ENDFILE_SIM_SPEC): Likewise.
7909         (STARTFILE_SOLARIS_SPEC): Use crtbegin/crtbeginS.
7910         (ENDFILE_SOLARIS_SPEC): Use crtend/crtendS.
7911         (STARTFILE_LINUX_SPEC): Use crtbeginS for shared objects.
7912         (ENDFILE_LINUX_SPEC): Use crtendS for shared objects.
7913         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Don't build eabi-ctors.o.
7914         (EXTRA_MULTILIB_PARTS): Build crtbeginS/crtendS.
7915         (CRTSTUFF_T_CFLAGS_S): Define.
7916         * config/rs6000/eabi-ctors.c: Delete.
7917
7918         * config/rs6000/eabi-ci.asm (__init): Align stack to 16-byte
7919         boundary.
7920         (__fini): Likewise.
7921         * config/rs6000/eabi-cn.asm (__init): Allow for 16-byte stack frame.
7922         boundary.
7923         (__fini): Likewise.
7924
7925 Fri Apr 14 16:09:02 2000  Jim Wilson  <wilson@cygnus.com>
7926
7927         * combine.c (force_to_mode, case LSHIFTRT): Check that shift shift
7928         plus mask size is smaller or equal to the mode size.
7929
7930 Fri Apr 14 18:07:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7931
7932         * print-rtl.c (print_rtx, case NOTE): Don't blow up if NOTE_BASIC_BLOCK
7933         not yet set.
7934
7935         * expr.c (reload.h): Now included.
7936         (emit_block_move): Set volatile_ok when checking for movstr.
7937         (emit_move_1): Check for replacements in addresses in multi-word case.
7938         * Makefile.in (expr.o): Now includes reload.h.
7939
7940         * flow.c (count_basic_blocks): Remove unused var PREV_CALL.
7941         Never have a LIBCALL end a basic block.
7942         (find_basic_blocks_1): Likewise.
7943         Reorganize CALL_INSN cases.
7944
7945         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Revert last change.
7946
7947 Fri Apr 14 10:54:22 2000  Jim Wilson  <wilson@cygnus.com>
7948
7949         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Drop obsolete
7950         completers from mov.ret instruction.
7951
7952 2000-04-14  Richard Henderson  <rth@cygnus.com>
7953
7954         * fold-const.c (extract_muldiv): Don't distribute and widen
7955         multiply across plus for non-sizetype unsigned types.
7956
7957 2000-04-14  Richard Henderson  <rth@cygnus.com>
7958
7959         * flow.c (find_auto_inc): Don't autoinc eliminable registers.
7960         If the original source is dead in the incr insn, it's dead now.
7961
7962 Fri Apr 14 07:40:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7963
7964         * stor-layout.c (layout_decl): Properly compare KNOWN_ALIGN to
7965         see if DECL_BIT_FIELD needs to still be set.
7966
7967         * tree.h (struct tree_type): Make PRECISION 9 bits and MODE 7.
7968
7969         * dbxout.c (dbxout_type, case INTEGER_TYPE): Don't call
7970         print_int_cst_octal with something that's not an INTEGER_CST.
7971
7972         * config/alpha/alpha.c (alpha_emit_floatuns): Ensure we pass a REG
7973         and not a SUBREG to a FLOAT rtl.
7974
7975 Thu Apr 13 19:39:56 2000  Clinton Popetz  <cpopetz@cygnus.com>
7976
7977         * emit-rtl.c (try_split): Avoid infinite loop if the split
7978         results in a sequence that contains the original insn.
7979
7980 2000-04-13  Andreas Jaeger  <aj@suse.de>
7981
7982         * config/mips/mips.c (expand_block_move): Pass alignment
7983         argument to move_by_pieces in bits, not bytes.
7984
7985         * config/mips/linux.h (CPP_PREDEFINES): Also define __PIC__ and
7986         __pic__ for little endian.
7987
7988 2000-04-13  Andreas Jaeger  <aj@suse.de>
7989
7990         * config/i386/i386-protos.h: Add prototype for
7991         uno_comparison_operator.
7992
7993 Thu Apr 13 15:55:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7994
7995         * alias.c (nonlocal_reference_p): Take care of CALL_INSNS's fusage.
7996         * calls.c (ECF_PURE): New flag.
7997         (emit_call_1): Handle ECF_PURE calls.
7998         (initialize_argument_information): Unset ECF_PURE flag too.
7999         (precompute_arguments): Precompute for ECF_PURE too.
8000         (expand_call): Handle ECF_PURE calls too.
8001         (emit_library_call_value_1): Rename no_queue argument to fn_type,
8002         accept value of 2 as pure function.
8003         (emit_library_call_value, emit_library_call): Rename no_queue argument
8004         to fn_type.
8005         * optabs.c (prepare_cmp_insn): Pass fn_type 2 to memcmp call.
8006
8007         * tree.h (DECL_IS_PURE): New macro.
8008         (struct tree_decl): Add pure_flag.
8009         * c-common.c (enum attrs): Add attribute "pure".
8010         (init_attributes): Initialize attribute "pure"
8011         (decl_attributes): Handle attribute "pure".
8012         * extend.texi (Attribute "pure"): Document.
8013         * calls.c (expand_call): Add (mem:BLK (scratch)) to "equal from"
8014         in pure function.
8015         (flags_from_decl_or_type): Support attribute "pure".
8016
8017 2000-04-13  Jason Merrill  <jason@casey.cygnus.com>
8018
8019         * cpplex.c (_cpp_lex_token): Handle digraphs.  Don't null-terminate
8020         the token except for numbers and identifiers.
8021
8022 Thu Apr 13 00:09:16 EDT 2000  John Wehle  (john@feith.com)
8023
8024         * i386.c (ix86_expand_binary_operator,
8025         ix86_expand_unary_operator): Check no_new_pseudos
8026         instead of reload_in_progress and reload_completed.
8027         (ix86_split_ashldi, ix86_split_ashrdi,
8028         ix86_split_lshrdi): Check no_new_pseudos instead
8029         of reload_completed.
8030
8031 2000-04-12  Jeffrey A Law  (law@cygnus.com)
8032
8033         * function.c (purge_addressof): Unshare any shared rtl created by
8034         purge_addressof and its children.
8035
8036 2000-04-12  Mark Mitchell  <mark@codesourcery.com>
8037
8038         * function.c (aggregate_value_p): VOID_TYPE nodes are never
8039         aggregates.
8040
8041 2000-04-05  Andreas Jaeger  <aj@suse.de>
8042
8043         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Use proper flags if
8044         not compiling PIC code, add flags for mabi=64.
8045         (SUBTARGET_CPP_SIZE_SPEC): New.
8046         (SUBTARGET_CPP_SPEC): New.
8047         (CPP_PREDEFINES): Define __PIC__ and __pic__.  PIC code is default
8048         for MIPS/Linux and lots of code needs these defines.
8049
8050 Wed Apr 12 22:44:11 2000  Hans-Peter Nilsson  <hp@axis.com>
8051
8052         * reorg.c (fill_slots_from_thread): Check side_effects_p when
8053         trying the "opposite arithmetic" approach.
8054
8055 Wed Apr 12 20:51:20 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8056
8057         * sh.h (STRUCT_VALUE): Just 0 for TARGET_HITACHI.
8058         (struct sh_args): Add new field force_mem.
8059         (INIT_CUMULATIVE_ARGS): Initialize it.
8060         (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Act on it.
8061
8062 Wed Apr 12 17:20:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8063
8064         * calls.c (expand_call): Do not reverse args in "equal from" field.
8065         (emit_library_call_value_1): Emit_libcall_block for const and pure
8066         function.
8067
8068 Wed Apr 12 16:00:25 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8069
8070         * reload1.c (reload_combine): Don't enable optimization for fixed
8071         registers when encountering a BARRIER.
8072
8073 Wed Apr 12 15:54:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8074
8075         * builtins.c (expand_builtin_memcmp): Do expansion even with
8076         !HAVE_cmpstrsi, do libcall when gen_strcmpsi fails.
8077
8078         * calls.c (expand_call): Do NO_DEFER_POP unconditionally once
8079         stack is propertly aligned; add sanity checking for aligned
8080         stack pointer.
8081         (expand_library_call_value_1): Add sanity checking for aligned
8082         stack pointer.
8083
8084 Wed Apr 12 07:51:54 2000  Catherine Moore  <clm@cygnus.com>
8085
8086         * calls.c (emit_library_call_value_1): Change 3rd arg to
8087         locate_and_pad_parm to disregard the setting of partial.
8088
8089 Wed Apr 12 08:47:38 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8090
8091         * tree.c (unsave_expr_now_r, unsafe_for_reeval): Properly do TREE_LIST.
8092
8093         * print-rtl.c (print_rtx): For CALL_PLACEHOLDER, output the
8094         CALL_INSN from the normal case.
8095
8096 Fri Apr  7 12:23:04 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8097
8098         * i386.c (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
8099         New global variables.
8100         (ix86_emit_epilogue_adjustment): Do not attempt to use pop for the
8101         adjustment.
8102         * i386.h (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
8103         Declare,
8104         (TARGET_SUB_ESP_4, TARGET_SUB_ESP_8, TARGET_ADD_ESP_4,
8105          TARGET_ADD_ESP_8): New macros.
8106         * i386.md: Add peep2s to convert esp adjustments to push and pop
8107         instructions.
8108         (pushsi_prologue, popsi_epilogue): New patterns.
8109
8110 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
8111
8112         * real.c (toe64): Remove stale #endif from the last change.
8113
8114 2000-04-12  Stephen L Moshier  <moshier@mediaone.net>
8115
8116         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment.
8117         * real.c (toe64): Revert previous change.
8118
8119 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
8120
8121         * objc/objc-act.c: Include ggc.h.
8122         (objc_tree_index, objc_global_trees): Convert most of the
8123         static tree variables into a static array with previous names
8124         as defines.
8125         (objc_ellipsis_node): New variable.
8126         (lang_init): Call objc_act_parse_init and c_parse_init.
8127         Create objc_ellipsis_node.
8128         (build_selector_translation_table): Use objc_ellipsis_node instead
8129         of (tree)1.
8130         (hack_method_prototype): Likewise.
8131         (get_arg_type_list): Likewise.
8132         (start_method_def): Likewise.
8133         (continue_method_def): Likewise.
8134         (gen_method_decl): Likewise.
8135         (ggc_mark_imp_list): New function.
8136         (ggc_mark_hash_table): New function.
8137         (objc_act_parse_init): New function.
8138         * objc/objc-act.h (objc_ellipsis_node): Add extern variable.
8139         * c-parse.in (c_parse_init): For objc add roots of objc specific
8140         local tree variables.
8141         * objc/objc-parse.y: Rebuilt.
8142         * objc/objc-parse.c: Rebuilt.
8143         (opt_parm_list): Use objc_ellipsis_node instead of (tree)1.
8144
8145 Wed Apr 12 01:00:44 EDT 2000  John Wehle  (john@feith.com)
8146
8147         * cse.c (delete_trivially_dead_insns): Also delete insns
8148         that copy a register to itself where the destination is
8149         a strict_low_part.
8150
8151 2000-04-11  Richard Henderson  <rth@cygnus.com>
8152
8153         * flow.c (struct propagate_block_info): Add new_dead, new_live.
8154         (propagate_block): Initialize them.  Use them in parallel instead
8155         of one tmp variable, ie revert much of the 0408 and 0407 functional
8156         changes, but keep the structural changes.
8157         (mark_set_regs): Take new_dead from propagate_block_info instead.
8158         (mark_set_1, mark_set_reg): Likewise.
8159         (mark_used_regs): Likewise with new_live.
8160         (mark_used_reg): Likewise.  Revert 0408 change.
8161
8162 2000-04-11  Nick Clifton  <nickc@cygnus.com>
8163
8164         * config/arm/arm.h: (INCOMING_RETURN_ADDR_RTX): Remove Dwarf2
8165         restriction.
8166         (DWARF_FRAME_RETURN_COLUMN): Remove Dwarf2 restriction.
8167
8168 2000-04-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
8169
8170         * config/elfos.h (SELECT_SECTION): Decide whether to use a data or
8171         const section to output a CONSTRUCTOR based on the same conditions
8172         used for VAR_DECLs.
8173
8174 Tue Apr 11 09:55:59 2000  Jeffrey A Law  (law@cygnus.com)
8175
8176         * pa/long-double.h (FIX_TRUNCTFSI2_LIBCALL): Tweak for PA64.
8177         * pa/pa-protos.h (output_call): Add additional argument indicating
8178         if the call is a sibling/tail call.
8179         (compute_zdepdi_operands, output_64bit_and): Prototype new functions.
8180         (compute_64bit_ior, cmpib_comparison_operator): Likewise.
8181         (function_arg, function_arg_partial_nregs): Likewise
8182         * pa/pa.c (override_options): Always set flag_pic for TARGET_64BIT.
8183         (emit_move_sequence): Zero extend certain constants as needed
8184         for TARGET_64BIT.
8185         (compute_zdepdi_operands, output_64bit_and): New functions.
8186         (output_64bit_ior, function_arg): Likewise.
8187         (cmpib_comparison_operator, function_arg_partial_nregs): Likewise.
8188         (compute_frame_size, hppa_expand_prologue): Handle TARGET_64BIT.
8189         (hppa_expand_epilogue, return_addr_rtx, hppa_va_arg): Likewise.
8190         (hppa_builtin_saveregs, output_cbranch, output_bb): Likewise.
8191         (output_bvb): Likewise.
8192         (output_millicode_call): Return pointer is in %r2 for TARGET_64BIT.
8193         (output_call): New argument 'sibcall'.  Generate sibcall sequences
8194         as needed.
8195         (print_operand); Handle cases 'Q', 'p', and 'z' for TARGET_64BIT.  For
8196         (ouput_arg_descriptor): Do not emit argument descriptors for
8197         TARGET_64BIT.
8198         * pa/pa.h (TARGET_PA_11, TARGET_PA_20): Only define if not already
8199         defined.
8200         (TARGET_64BIT, PROMOTE_FUNCTION_RETURN): Define.
8201         (FUNCTION_OK_FOR_SIBALL): Define.
8202         (CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC): Define.
8203         (CPP_CPU_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS, EXTRA_SPECS): Likewise.
8204         (CPP_SPEC): Use new spec infrastructure.
8205         (BITS_PER_WORD, UNITS_PER_WORD): Handle TARGET_64BIT.
8206         (STACK_BOUNDARY, FUNCTION_BOUNDARY, PIC_OFFSET_TABLE_REGNUM): Likewise.
8207         (RETURN_IN_MEMORY, EXTRA_CONSTRAINT, FIRST_PARM_OFFSET): Likewise.
8208         (REG_PARM_STACK_SPACE, STACK_POINTER_OFFSET): Likewise.
8209         (STACK_DYNAMIC_OFFSET, FUNCTION_VALUE): Likewise.
8210         (FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES): Likewise.
8211         (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise.
8212         (INITIALIZE_TRAMPOLINE, LEGITIMATE_CONSTANT_P): Likewise.
8213         (CONST_OK_FOR_LETTER_P, MOVE_RATIO): Likewise.
8214         (FUNCTION_ARG); Call out to C code.
8215         (FUNCTION_ARG_PARTIAL_NREGS): Likewise.
8216         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Define.
8217         (MIN_UNITS_PER_WORD): Likewise.
8218         * pa/pa.md (cmpdi): New expander.
8219         (scc patterns, movstrsi): Not available for TARGET_64BIT.
8220         (64bit conditional arithmetic): New patterns.
8221         (absdi2, smindi3, umindi3, smaxdi3, umaxdi3): New patterns.
8222         (movsicc): Not available if modes on all the operands to not match.
8223         (movdicc): New expander and associated patterns.
8224         (64bit branches): New patterns.
8225         (pre_load, post_store): Generate appropriate code for TARGET_64BIT.
8226         (pre_ldd, post_std): New patterns.
8227         (64bit addil, load low part): New patterns.
8228         (special movsf constant): Not available for TARGET_64BIT.
8229         (movsf, movdf expanders): Force constants into memory.
8230         (32bit movdf/movdi patterns): Disable for TARGET_64BIT.
8231         (64bit movdf/movdi patterns): New patterns.
8232         (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New patterns
8233         for TARGET_64BIT.
8234         (extendqidi2, extendhidi2, extendsidi2): Similarly.
8235         (adddi3 expander): Allow "arith_operand" for second input.
8236         (32bit adddi3, subdi3, uaddcm): Disable for TARGET_64BIT.
8237         (64bit adddi3, subsi3, uaddcm): New patterns for TARGET_64BIT.
8238         (mulsi3 expander): Revamp slightly so it supports TARGET_64BIT too.
8239         (muldi3): New expander for TARGET_64BIT.
8240         (divsi3, udivsi3, modsi3, umodsi3): Fourth operand must be (reg:SI 2)
8241         for TARGET_64BIT.
8242         (32bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm): Disable
8243         patterns for TARGET_64BIT.
8244         (64bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm, shadd): New
8245         patterns for TARGET_64BIT.
8246         (64bit bit insertion/extractions): New patterns for TARGET_64BIT.
8247         (64bit shifts/rotates): New patterns/expanders for TARGET_64BIT.
8248         (sibcall_epilogue): New expander.
8249         (casesi): Tweak for TARGET_64BIT.
8250         (call expanders): Set & use the outgoing argument pointer.  Use the
8251         64bit call patterns as needed. Add additional arg to output_call.
8252         (call_internal_reg_64bit, call_value_internal_reg_64bit): New pattern.
8253         (sibcall, sibcall_internal_symref): New expanders.
8254         (sibcall_value, sibcall_value_internal_symref
8255         (interspace_jump): Turn into an expander + matching patterns.
8256         (canonicalize_funcptr_for_compare): Not needed for TARGET_64BIT.
8257         * pa/pa64-regs.h: Eliminate trigraph sequences.
8258         * pa/pa64-start.h (TARGET_PA_20): Fix typo.
8259
8260 2000-04-11  Zack Weinberg  <zack@wolery.cumb.org>
8261
8262         * cppexp.c, cpphash.c, cpphash.h, cpplex.c, cpplib.c,
8263         cpplib.h, cppmain.c, fix-header.c, scan-decls.c: Replace
8264         cpp_token with cpp_ttype everywhere.
8265         * cpperror.c, cpphash.c, cpplex.c, cpplib.c, scan-decls.c:
8266         Replace cpp_buf_line_and_col with CPP_BUF_LINE and/or
8267         CPP_BUF_COL.  Line and column numbers are unsigned int, not
8268         long.
8269         * cpplex.c (cpp_buf_line_and_col): Delete.
8270         * cpplib.h (struct cpp_buffer, struct cpp_reader): Change
8271         'long lineno' to 'unsigned int lineno'.
8272         (CPP_BUF_LINE, CPP_BUF_COL): New macros.
8273
8274 2000-04-11  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
8275
8276         * extend.texi: ISO C99 is not a draft anymore.
8277         * invoke.texi: ISO C++ is not a draft anymore.
8278         * cpp.texi: __cplusplus is required by the ISO standard.
8279
8280         * extend.texi (-fthis-is-variable): Undocument.
8281         * flags.h (warn_template_debugging): Remove declaration.
8282         * gcc.1 (-fall-virtual, -fenum-int-equiv, -fthis-is-variable,
8283         -Wenum-clash, -Wtemplate-debugging): Undocument.
8284
8285 2000-04-10  Nick Clifton  <nickc@cygnus.com>
8286
8287         * config/arm/arm.h (HOST_INT): New macro: Declare a HOST_WIDE_INT
8288         integer.
8289         (HOST_UINT): New macro: Declare an unsigned HOST_WIDE_INT
8290         integer.
8291         (ARM_SIGN_EXTEND): Use HOST_UINT.
8292         (STRIP_NAME_ENCODING): Prevent warnings about redefinitions.
8293         (ASM_OUTPUT_LABELREF): Prevent warnings about redefinitions.
8294         (INCOMING_RETURN_ADDR_RTX): Only define if Dwarf2 is supported.
8295         (DWARF_FRAME_RETURN_COLUMN): Only define if Dwarf2 is supported.
8296
8297         * config/arm/arm.c: (const_ok_for_arm): Use HOST_UINT.
8298         (arm_gen_constant): Use HOST_UINT.
8299         (arm_canonicalize_constant): Use HOST_UINT.
8300         (arm_reload_in_hi): Use HOST_UINT.
8301         (arm_reload_out_hi): Use HOST_UINT.
8302         (output_multi_immediate): Use HOST_UINT.
8303         (int_log2): Use HOST_UINT.
8304         (arm_poke_function_name): Use HOST_UINT.
8305         (arm_output_epilogue): Use arm_volatile_func().
8306         (output_thumb_prologue): Use arm_strip_name_encoding().
8307
8308 Mon Apr 10 15:40:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8309
8310         * sbitmap.c (sbitmap_a_subset_b_p): Rework loop to avoid potential
8311         of sequence point problems.
8312
8313 2000-04-10  Nathan Sidwell  <nathan@codesourcery.com>
8314
8315         * rtl.def (ASHIFT, ROTATE, ASHIFTRT, LSHIFTRT, ROTATERT):
8316         Recomment.
8317         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Recomment.
8318
8319 Mon Apr 10 07:21:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8320
8321         * sbitmap.h: Whitespace changes and use upper-case macro args.
8322         (struct simple_bitmap_def): All sizes now unsigned.
8323         (EXECUTE_IF_SET_IN_SBITMAP): Internal vars now _X instead of X_.
8324         * sbitmap.c (sbitmap_alloc): N_ELMS now unsigned; also local vars.
8325         (sbitmap_vector_alloc): Parms and local vars now unsigned.
8326         (sbitmap_zero): Cast bzero arg to PTR.
8327         (sbitmap_vector_zero, sbitmap_vector_one): Parm and Local var unsigned.
8328         (sbitmap_union_of_diffs): Change loop index to unsigned and rework
8329         loop to make structure clearer.
8330         (sbitmap_not, sbitmap_difference, sbitmap_a_and_b): Likewise.
8331         (sbitmap_a_or_b, sbitmap_a_subset_b_p, sbitmap_a_or_b_and_c): Likewise.
8332         (sbitmap_a_and_b_or_c): Likewise.
8333         (sbitmap_intersection_of_succs): Minor cleanups.
8334         (sbitmap_intersection_of_preds, sbitmap_union_of_succs): Likewise.
8335         (sbitmap_union_of_preds): Likewise.
8336         (sbitmap_first_set_bit, dump_sbitmap): Local variables now unsigned.
8337         (debug_sbitmap): New function.
8338
8339         * c-convert.c (convert): Handle REFERENCE_TYPE like POINTER_TYPE.
8340         * c-typeck.c (convert_for_assignment): Likewise.
8341
8342         * expmed.c (init_expmed): Don't free objects we make.
8343         * emit-rtl.c (gen_rtx_CONST_INT, init_emit_once): Minor cleanups.
8344
8345         * expr.c (get_inner_reference): Correct some WITH_RECORD_EXPR cases.
8346         (expand_expr, case CONVERT_EXPR): Pass proper alignment to store_field.
8347
8348         * gcse.c (expr_hash_table_size): Now unsigned.
8349         (compute_ae_gen): Local variable `i' now unsigned.
8350         (compute_ae_kill, pre_insert_copies, pre_delete, pre_gcse): Likewise.
8351         (compute_transout, hoist_code): Likewise.
8352         (compute_local_properties): Likewise, also hash_table_size.
8353         (alloc_expr_hash_table): N_INSNS now unsigned.
8354         (delete_null_pointer_checks): Mark arg F as unused.
8355
8356         * regrename.c: Minor cleanups, including chang some variables
8357         to unsigned int.
8358
8359 2000-04-10  Neil Booth  <NeilB@earthling.net>
8360
8361         * cpplex.c (skip_block_comment): Use pointer arithmetic rather
8362         than GETC ().
8363         * cpphash.h: (CPP_BUMP_BUFFER_LINE_CUR, CPP_BUMP_LINE_CUR): New.
8364
8365 2000-04-10  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
8366
8367         * invoke.texi (-fno-gnu-keywords): Remove classof, headof,
8368         __classof__, and __headof__ from the list of gnu keywords.
8369         (-ansi): Remove -foperator-names from list of implied options.
8370         Do not call it ANSI C++.
8371         (-foperator-names): Document as -fno-operator-names.
8372
8373 2000-04-09  Zack Weinberg  <zack@wolery.cumb.org>
8374
8375         * cpphash.c (timestamp): Delete.
8376         (del_HASHNODE): If type is T_MCONST, free value.cpval.
8377         (special_symbol): Remove unnecessary braces.  Remove
8378         T_VERSION.  Treat T_STDC like T_CONST unless
8379         STDC_0_IN_SYSTEM_HEADERS.  Render both __DATE__ and __TIME__
8380         when one is encountered, then convert them into T_MCONST
8381         nodes.
8382         * cppinit.c (builtin_array): version_string is T_MCONST.
8383         __STDC__ has a "1" in its cpval.  Don't have a terminator
8384         entry.  Clean up which entries are dumped.
8385         (initialize_builtins): Only __STDC__ gets the special
8386         -traditional treatment.  Count the length of builtin_array.
8387         Render version_string here.
8388         * cpphash.h: Remove T_VERSION.  Add T_MCONST.
8389         * cpplib.h (struct cpp_reader): Remove timebuf.
8390
8391 2000-04-09  Richard Henderson  <rth@cygnus.com>
8392
8393         * genrecog.c (pred): Update comparison_operator for the unordered
8394         operators.
8395
8396         * config/i386/i386.c (no_comparison_operator): Disallow unordered
8397         operators.
8398         (fcmov_comparison_operator): Allow UNORDERED/ORDERED.
8399         (uno_comparison_operator): New.
8400         (put_condition_code): Handle UNORDERED/ORDERED.
8401         (unsigned_comparison): Likewise.
8402         (ix86_fp_compare_mode): Broken out of ix86_expand_fp_compare.
8403         (ix86_use_fcomi_compare, ix86_prepare_fp_compare_args): Likewise.
8404         (ix86_expand_fp_compare): Use them.  Take scratch as argument,
8405         update all callers.  Handle all 8 unordered operators.
8406         (ix86_expand_setcc): Lose the unordered argument, update all callers.
8407         (ix86_expand_branch): Likewise.  Don't fully expand fp branches.
8408         * config/i386/i386.h (PREDICATE_CODES): Update.
8409         * config/i386/i386-protos.h (ix86_expand_fp_compare): Declare.
8410         (ix86_expand_branch, ix86_expand_setcc): Update.
8411         * config/i386/i386.md (sunordered, sordered): New.
8412         (suneq, sunge, sungt, sunle, sunlt, sltgt): New.
8413         (bunordered, bordered): New.
8414         (buneq, bunge, bungt, bunle, bunlt, bltgt): New.
8415         (*fp_jcc_1, *fp_jcc_2, *fp_jcc_3, *fp_jcc_4): New.
8416         (*fp_jcc_5, *fp_jcc_6, and splitters): New.
8417
8418 2000-04-09  Philip Blundell  <philb@gnu.org>
8419
8420         * config/arm/arm.h (ARM_NAME_ENCODING_LENGTHS): Strip `*' too.
8421
8422 Sun Apr  9 15:16:14 EDT 2000  John Wehle  (john@feith.com)
8423
8424         * i386.md (fix_truncsfhi2, fix_truncdfhi2,
8425         fix_truncxfhi2): New patterns.
8426         * i386.c (output_fix_trunc): Handle converting to HImode.
8427
8428 2000-04-08  Alex Samuel  <samuel@codesourcery.com>
8429
8430         * ssa.c (convert_to_ssa): Eliminate dead code when calling
8431         life_analysis.
8432         (convert_from_ssa): Call compute_bb_for_insn before life_analysis.
8433         (for_each_successor_phi): Change parameter to basic_block.
8434         (coalesce_regs_in_successor_phi_nodes): Likewise.
8435         (coalesce_regs_in_copies): Likewise.
8436         (compute_coalesced_reg_partition): Use basic_block instead of index.
8437         * rtl.h (convert_to_ssa): Delete.
8438         (convert_from_ssa): Likewise.
8439         (successor_phi_fn): Likewise.
8440         (for_each_successor_phi): Likewise.
8441         (in_ssa_form): Likewise.
8442         * basic-block.h (convert_to_ssa): Moved from rtl.h.
8443         (convert_from_ssa): Likewise.
8444         (successor_phi_fn): Likewise.
8445         (in_ssa_form): Likewise.
8446         (for_each_successor_phi): Likewise.  Change parameter to basic_block.
8447         * flow.c (calculate_global_regs_live): Pass a basic_block to
8448         for_each_successor_phi.
8449
8450 2000-04-08  Richard Henderson  <rth@cygnus.com>
8451
8452         * flow.c (mark_used_reg): Use reg_set_p to determine if a register
8453         was modified in the current insn.
8454
8455 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
8456
8457         * arm/thumb.md: Delete.
8458         * arm/thumb-protos.h: Delete.
8459
8460 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
8461
8462         Merge changes from merged-arm-thumb-backend-branch onto trunk.
8463
8464         2000-04-08  Richard Earnshaw (rearnsha@arm.com)
8465
8466         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000408
8467         into branch.
8468
8469         * arm.md (nop): Use the standard RTL expression.  Don't code as a
8470         define_expand.
8471         (*arm_nop, *thumb_nop): Delete.
8472
8473         * arm.c (const_ok_for_arm): Don't use ANSI extensions for defining
8474         constants.  Use casts instead.
8475         (arm_gen_constant, arm_rtx_costs, arm_reload_in_hi, arm_reload_out_hi,
8476         output_multi_immediate, arm_poke_function_name): Likewise.
8477         * arm.h (ARM_LEGITIIMIZE_RELOAD_ADDRESS, ARM_SIGN_EXTEND,
8478         MASK_RETURN_ADDDR): Likewise.
8479
8480         2000-03-31  Richard Earnshaw (rearnsha@arm.com)
8481
8482         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000325
8483         into branch.
8484
8485         * arm.md (eh_epilogue): New function.
8486         * arm.h (struct machine_function): Move to here ...
8487         * arm.c: ... from here.
8488         (arm_output_epilogue): Support epilogues for __builtin_eh_return.
8489         (thumb_exit): Extra parameter eh_ofs.  All callers changed.
8490         Handle epilogues for __builtin_eh_return.  Make bit-fields unsigned.
8491
8492         2000-03-30  Nick Clifton  <nickc@cygnus.com>
8493
8494         * config/arm/semi.h (ASM_SPEC): Restore definition.
8495         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
8496
8497         * config/arm/elf.h (ASM_SPEC): Restore definition.
8498         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
8499
8500         * config/arm/arm.h (ASM_SPEC): Remove definition.
8501         (SUBTARGET_EXTRA_ASM_SPEC): Remove definition.
8502
8503         2000-03-26  Bernd Schmidt <bernds@cygnus.co.uk>
8504
8505         * config/arm/arm.c: Disable -fschedule-insns for Thumb.
8506
8507         2000-03-24  Nick Clifton  <nickc@cygnus.com>
8508
8509         Various formating tidyups, elimination of compile time
8510         warnings and synchronisation with internal sources:
8511
8512         * config/arm/arm-protos.h (assemble_align): Add prototype.
8513         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
8514         (gen_comapre_reg): Rename to arm_gen_compare_reg.
8515         (arm_return_addr_rtx): Rename to arm_return_addr.
8516
8517         * config/arm/arm.c: Include except.h.
8518         Define shorter typenames for strict minipool_node and struct
8519         minipool_fix.
8520         (arm_return_in_memory): For WinCE return all structures <= 32 bits
8521         in memory.
8522         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
8523         (gen_comapre_reg): Rename to arm_gen_compare_reg.
8524
8525         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
8526         already defined.
8527         (ASM_SPEC): Define if not already defined.
8528         (ASM_OUTPUT_DEF_FROM_DECLS): Define.
8529
8530         * config/arm/arm.md: Rename references to gen_rotated_half_load to
8531         arm_gen_rotated_half_load, and references to gen_comapre_reg to
8532         arm_gen_compare_reg.
8533         (indirect_jump):  Only accept register operands.
8534         (load_indirect_jump): Keep this pattern since combine can generate
8535         it.
8536
8537         * config/arm/coff.h: Include aout.h.
8538         (MULTILIB_DEFAULTS): Only define if not already defined.
8539
8540         * config/arm/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Move definition
8541         into arm.h (so that COFF ports can support thumb based aliases).
8542         (ASM_SPEC): Move definition into arm.h
8543
8544         * config/arm/linux-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Remove
8545         redundant apcs spec.
8546         (ASM_SPEC): Move definition to arm.h
8547
8548         * config/arm/semi.h (ASM_SPEC): Move definition to arm.h
8549
8550         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Add support
8551         for entries in the .bss section
8552
8553         2000-03-23  Nick Clifton  <nickc@cygnus.com>
8554
8555         * config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Pass 0
8556         to thumb_far_jump_used_p.
8557
8558         * config/arm/arm-protos.h (thumb_far_jump_used_p): Take a
8559         single integer parameter.
8560
8561         * config/arm/arm.c (struct machine_function): Add two new
8562         fields, 'far_jump_used' and 'arg_pointer_live'.
8563         (thumb_far_jump_used_p): Once the decision has been made that
8564         far jumps might be used, always return true.
8565         If being called from the initial elimination offset macro then
8566         do not bother to perform the test if the arg pointer is not
8567         being used.
8568         (thumb_unexpand_epilogue): Pass 1 to thumb_far_jump_used_p().
8569         (output_thumb_prologue): Pass 1 to thumb_far_jump_used_p().
8570
8571         2000-03-23  Richard Earnshaw (rearnsha@arm.com)
8572
8573         * arm.c (output_return_instruction): Handle more cases where we can
8574         return from a function with an ldr instruction.
8575         (arm_output_epilogue): Likewise.
8576
8577         * arm.c (thumb_expand_prologue): Don't clobber the frame pointer
8578         if we need to push a large stack frame and there are no callee-saved
8579         registers.
8580
8581         * arm.c (arm_debugger_arg_offset): An offset of 0 is also valid
8582         in ARM code if the frame pointer has been eliminated.
8583
8584         * arm.md (epilogue, *epilogue_insns, consttable_*, align_4): Renumber
8585         unspec_volatile arguments to avoid duplicates.
8586         (consttable_1, consttable_2): Fixes for big-endian mode.
8587
8588         * arm.md (all ARM-mode load insns): Add neg_pool_range attribute
8589         as appropriate.
8590
8591         Re-write constant pool code.
8592         * arm.c (minipool_node, minipool_fix): New types.
8593         (minifix): Delete type.
8594         (arm_add_minipool_constant): Delete.
8595         (arm_compute_minipool_offsets, arm_find_barrier,
8596         arm_find_minipool_constant, fixup_compare, sort_fixups): Likewise.
8597         (get_jump_table_size): Now returns HOST_WIDE_INT.
8598         (move_minipool_fix_forward_ref, add_minipool_forward_ref): New
8599         functions.
8600         (move_minipool_fix_backward_ref, add_minipool_backward_ref): Likewise.
8601         (assign_minipool_offsets, arm_print_value): Likewise.
8602         (dump_minipool): Rewrite.
8603         (arm_barrier_cost): New function.
8604         (create_fix_barrier): New function.
8605         (push_minipool_barrier): New function.
8606         (push_minipool_fix): Record additional information about the fixup
8607         required.
8608         (note_invalid_constants): Remove push for (UNSPEC 3).  Don't
8609         check the mode of what needs fixing.
8610         (arm_reorg): Rewrite.
8611
8612         2000-03-08  Nick Clifton  <nickc@cygnus.com>
8613
8614         * config/arm/arm.md (indirect_jump): Force constant addresses into
8615         a register.
8616
8617         2000-03-01  Bernd Schmidt <bernds@cygnus.co.uk>
8618
8619         * config/arm/arm.md: Add splitter to turn SF moves into SI moves.
8620
8621         2000-02-24  Nick Clifton  <nickc@cygnus.com>
8622
8623         * config/arm/arm.c (thumb_expand_prologue): Make sure that stack
8624         adjust is word aligned.
8625         (thumb_expand_epilogue): Make sure that stack adjust is word
8626         aligned.
8627
8628         * config/arm/elf.h (ASM_FILE_START): Fix type of version string.
8629
8630         2000-02-24  Bernd Schmidt <bernds@cygnus.com>
8631
8632         * config/arm/arm.h (THUMB_GO_IF_LEGITIMATE_ADDRESS): Allow frame
8633         pointer relative addresses.
8634
8635         2000-02-10  Richard Earnshaw  <rearnsha@arm.com>
8636
8637         * arm.c (find_barrier): Find the last barrier within the allowed
8638         range.
8639
8640         2000-02-09  Nick Clifton  <nickc@cygnus.com>
8641
8642         * config/arm/arm-protos.h: Replace PROTO with PARAMS.
8643
8644         2000-02-09  Nick Clifton  <nickc@cygnus.com>
8645
8646         * config/arm/linux-elf.h (FUNCTION_PROFILER): Rename to
8647         ARM_FUNCTION_PROFILER.
8648
8649         * config/arm/netbsd.h (FUNCTION_PROFILER): Rename to
8650         ARM_FUNCTION_PROFILER.
8651
8652         * config/arm/linux-oldld.h: Imported from mainline sources.
8653
8654         2000-02-07  Nick Clifton  <nickc@cygnus.com>
8655
8656         * config/arm/lib1funcs.asm: Merge in thumb functions from
8657         lib1thumb.asm.
8658
8659         * config/arm/lib1thumb.asm: Delete.
8660
8661         2000-02-04  Nick Clifton  <nickc@cygnus.com>
8662
8663         * config/arm/arm.c: Sychronised with current Red hat local
8664         sources.
8665         * config/arm/arm.h: Ditto.
8666         * config/arm/arm-protos.h: Ditto.
8667
8668         2000-02-02  Bernd Schmidt  <bernds@cygnus.co.uk>
8669
8670         * arm.c (soft_df_operand): Reject SUBREGs containing a constant.
8671
8672         * arm.c (arm_gen_movstrqi): Generate halfword stores rather than two
8673         byte stores.
8674
8675         2000-02-02  Nick Clifton  <nickc@cygnus.com>
8676
8677         * config/arm/thumb.c (thumb_exit): Additional fix for same bug.
8678
8679         * config/arm/arm.md (epilogue): Fix rtl checking abort because
8680         (return) was emited using an emit_insn() call.
8681
8682         2000-01-31  Nick Clifton  <nickc@cygnus.com>
8683
8684         * config/arm/arm.c (output_thumb_prologue): Fix bug generating
8685         thumb stack frame.
8686         (thumb_exit): Move frame pointer back into hard frame pointer
8687         register if backtracing is being used.
8688
8689         2000-01-13  Richard Earnshaw (rearnsha@arm.com)
8690
8691         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000113
8692         into branch.
8693
8694         1999-12-15  Bernd Schmidt  <bernds@cygnus.co.uk>
8695
8696         * config/arm/arm.md (neg_pool_offset): Provide default for new
8697         attribute.
8698         (arm_movsi_insn): Add neg_pool_offset attribute.
8699         * config/arm/arm.c (arm_find_barrier): Replace arg FIX with an
8700         rtx for the insn that starts the scan and an unsigned long for its
8701         address.  Add MIN_OFFSET and PINSERTED args.  All callers changed.
8702         Change scan to ignore insns before MIN_OFFSET.  Store size of inserted
8703         instructions in *PINSERTED.
8704         (struct minipool_fixup): Add MIN_ADDRESS elt.
8705         (sort_fixups): Compute it.
8706         (arm_reorg): Changes to support inserting pools before the insn to be
8707         fixed up.
8708
8709         1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
8710
8711         * config/arm/elf.h (MULTILIB_DEFAULTS): Add "marm".
8712         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Add "marm".
8713         * config/arm/coff.h (MULTILIB_DEFAULTS): Add "marm".
8714
8715         Wed Nov  3 10:04:07 1999  Nick Clifton  <nickc@cygnus.com>
8716
8717         * config/arm/semi.h (TARGET_VERSION): Do not define if already
8718         defined.
8719         (TARGET_DEFAULT): Do not define if already defined.
8720
8721         Tue Nov  2 10:37:25 1999  Nick Clifton  <nickc@cygnus.com>
8722
8723         * config/arm/arm.md (anddi3): Allow disjoint source operands.
8724         (iordi3): Allow disjoint source operands.
8725         (xordi3): Allow disjoint source operands.
8726         (negdi2): Permit construction for ARM and Thumb.
8727         (arm_negdi2): Renamed version of old negdi2 pattern.
8728         (thumb_negdi2): New pattern: Only permit non-overlapping
8729         source and destination.
8730
8731         Fri Oct 29 18:52:38 1999  Nick Clifton  <nickc@cygnus.com>
8732
8733         * config/arm/arm.c (thumb_expand_prologue): Emit a USE of the
8734         scratch low register so that it will not be deleted.
8735
8736         Fri Oct 29 15:23:48 1999  Nick Clifton  <nickc@cygnus.com>
8737
8738         * config/arm/pe.h (ARM_PE): Define.
8739
8740         * config/arm/arm.c (arm_valid_machine_decl_attribute): Allow
8741         interfacearm attribute if this is a PE toolchain.
8742         (output_return_instruction): Do not emit anything if the function
8743         has the naked attribute set.
8744         (is_called_in_ARM_mode): If the function has the interfacearm
8745         attribute then return true.
8746         (thumb_expand_prologue): Do not generate a prologue for naked
8747         functions.
8748         (thumb_expand_epilogue): Do not generate an epilogie for a naked
8749         function.
8750         (output_thumb_prologue): Do not bother if the function is naked.
8751         Strip PE encoding from function name before emitting.
8752
8753         Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
8754
8755         * arm.md (pic_load_addr): Fix constraints.
8756
8757         * arm.md (casesi_insn): Fix mis-applied patch.
8758
8759         * arm.md ("core" function unit): Add rules for single- and
8760         multi-cycle insns.
8761         (All TARGET_THUMB patterns): Add "type" attribute information
8762         where needed.
8763         * arm.c (arm_adjust_cost): Reduce the cost of a data dependency if
8764         the following insn is a CALL.
8765
8766         * arm.c (thumb_expand_epilogue): Add a use of the adjusted stack
8767         pointer.
8768         * arm.h (CONDITIONAL_REGISTER_USAGE): Nail down the
8769         ARM_HARD_FRAME_POINTER_REGNUM when TARGET_APCS_FRAME.
8770         (FRAME_POINTER_REQUIRED): Only check TARGET_APCS_FRAME if TARGET_ARM.
8771
8772         Wed Oct 27 14:40:48 1999  Nick Clifton  <nickc@cygnus.com>
8773
8774         * config/arm/linux-gas.h: oops - this file was missed out when the
8775         branch was created...
8776
8777         Tue Oct 26 17:07:38 1999  Richard Earnshaw <rearnsha@arm.com>
8778
8779         * thumb.c: Deleted.  Move contents to ...
8780         * arm.c: ... here.
8781         * t-arm-aout, t-arm-coff, t-arm-elf, t-linux, t-netbsd, t-semi: Remove
8782         rule for thumb.o
8783         * configure.in (arm*-*-*): Remove thumb.o from extra_objs list.
8784         * configure: Regen.
8785
8786         * arm-protos.h: Use RTX_CODE and tidy up long lines.  Don't
8787         declare a prototype for asm_output_align();
8788
8789         * arm.c (thumb_condition_code): Delete.
8790         (arm_print_operand): Always use arm_condition_code array.
8791
8792         * arm.c (thumb_return_addr_rtx): Delete.
8793         (arm_save_machine_status, arm_restore_machine_status): Delete.
8794         (arm_init_machine_status, arm_mark_machine_status): New functions.
8795         (arm_init_expanders): Update accordingly.
8796         (arm_return_addr): Renamed from arm_return_addr_rtx.  Rewrite.
8797         (thumb_expand_prologue): Delete code referencing thumb_return_addr_rtx.
8798         * arm.h (RETURN_ADDR_RTX): Call arm_return_addr().
8799
8800         Tue Oct 26 13:24:16 1999  Nick Clifton  <nickc@cygnus.com>
8801
8802         * configure.in : Fix arm-*-aout target to use new t-arm-aout
8803         script.
8804         * config/arm/t-arm-aout: New file: Makefile script for arm-*-aout
8805         targets.
8806
8807         Tue Oct 26 11:27:12 1999  Nick Clifton  <nickc@cygnus.com>
8808
8809         * config/arm/thumb.c (output_thumb_prologue): Fix bug creating
8810         stack backtrace structure.
8811
8812         * config/arm/arm-protos.h: Add prototypes for functions defined in
8813         arm/pe.h.
8814
8815         * config/arm/arm.c (arm_override_options): Fix selection of
8816         attributes of default processor.
8817
8818         * config/arm/coff.h: Delete needless #include.
8819
8820         * config/arm/pe.c: Delete unused code.
8821
8822         * config/arm/pe.h (CPP_DEFINES): Delete
8823         (SUBTARGET_CPP_SPEC): Define.
8824         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
8825
8826         * config/arm/t-pe: Add -DInhibit_libc to allof libgcc.a to build.
8827
8828         Mon Oct 25 15:42:09 1999  Richard Earnshaw (rearnsha@arm.com)
8829
8830         * arm.h (TARGET_APCS_FRAME): Renamed from TARGET_APCS -- all uses
8831         updated.
8832         (CAN_DEBUG_WITHOUT_FP): Define.
8833         (FIXED_REGISTERS): Make r11 call-saved.
8834         (CALL_USED_REGISTERS): Likewise.
8835         (CONDITIONAL_REGISTER_USAGE): Fix r11 if TARGET_APCS_FRAME.
8836         (FRAME_POINTER_REQUIRED): Correct logic for determining when a
8837         frame-pointer is required.
8838         (TARGET_DEFAULT): Make default setting include ARM_FLAG_APCS_FRAME.
8839         * arm.c (arm_override_options): Warn about -mno-apcs-frame and -g
8840         if the target normally needs a stack frame in non-leaf functions.
8841         (use_return_insn): Correct logic for determining when a return
8842         instruction can be used.
8843         (output_return_instruction): Handle the frame-pointer register as
8844         a normal register when not TARGET_APCS_FRAME.
8845         (arm_output_prologue): Likewise.
8846         (arm_output_epilogue): Likewise.
8847         (output_func_epilogue): Likewise.
8848         (arm_expand_prologue): Likewise.
8849         * netbsd.h semi.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_FRAME.
8850
8851         * arm.c (use_return_insn): No need to check floating point regs if
8852         TARGET_SOFT_FLOAT.
8853         (arm_find_minipool_constant): Correct typo; use GET_CODE to get
8854         the code of value stored in the minipool array.
8855         (arm_add_minipool_constant): Likewise.
8856
8857 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8858
8859         * basic-block.h (conflict_graph_enum_fn): K&R fix.
8860
8861 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8862
8863         * tree.c (tree_expr_nonnegative_p): New function.
8864
8865         * tree.h (tree_expr_nonnegative_p): Declare.
8866
8867         * c-typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to
8868         elide some sign_compare warnings.
8869         (build_conditional_expr): Likewise.
8870
8871 Sat Apr  8 00:21:51 EDT 2000  John Wehle  (john@feith.com)
8872
8873         * i386.md (ashrsi3, ashrhi3, ashrqi3): Fix typo.
8874
8875         * i386.md (floathisf2, floathidf2, floathixf2): New patterns.
8876         * i386.c (print_operand): Use the proper suffix for a 387 HImode
8877         operand.  Abort if a 387 operand has an unsupported size.
8878
8879 2000-04-08  Neil Booth  <NeilB@earthling.net>
8880
8881         * cppexp.c (parse_charconst): Null does not end character
8882         constants.
8883         * cppinit.c (ISTABLE): Null character handled as whitespace.
8884         * cpplex.c (null_warning):  new function.
8885         (skip_string): Emit warning if nulls encountered.
8886         (_cpp_skip_hspace): Emit warning if nulls encountered.
8887         (_cpp_lex_token): Emit warning if nulls encountered.  Drop
8888         them.
8889         * cpp.texi: Update.
8890
8891 2000-04-07  Richard Henderson  <rth@cygnus.com>
8892
8893         * flow.c (loop_depth): Remove.
8894         (reg_next_use, cc0_live, mem_set_list): Replace with ...
8895         (struct propagate_block_info): New.
8896         (life_analysis): Don't allocate reg_next_use.
8897         (propagate_block_delete_insn): Break out of propagate_block.
8898         Use flow_delete_insn to unlink rather than use NOTE_INSN_DELETED.
8899         (propagate_block_delete_libcall): Likewise.
8900         (propagate_block): Create a propagate_block_info struct to pass
8901         to subroutines.  Allocate one not two temporary regsets.  Don't
8902         clobber memory for const calls.  Look for clobbers in
8903         CALL_INSN_FUNCTION_USAGE.
8904         (mark_set_regs): Recognize COND_EXEC.
8905         (mark_set_reg): Break out of mark_set_1.
8906         (mark_used_reg): Break out of mark_used_regs.
8907         (mark_used_regs): Recognize COND_EXEC.
8908         (insn_dead_p): Use propagate_block_info struct.
8909         (libcall_dead_p, invalidate_mems_from_autoinc): Likewise.
8910         (find_auto_inc, try_pre_increment_1): Likewise.
8911         (print_rtl_with_bb): Dump regs live at end too.
8912         (count_reg_sets_1): Pass in loop_depth.
8913         (count_reg_sets, count_reg_references): Likewise.
8914         (recompute_reg_usage): Provide it.
8915
8916 2000-04-07  Richard Henderson  <rth@cygnus.com>
8917
8918         * Makefile.in (conflict.o): Depend on $(RTL_H) and $(BASIC_BLOCK_H)
8919         not the raw files.
8920
8921 2000-04-07  Zack Weinberg  <zack@wolery.cumb.org>
8922
8923         * cpplib.c (do_elif): Skip the rest of the line if we're
8924         not going to bother evaluating it.
8925         (skip_if_group): Clear pfile->only_seen_white.  Reorder loop
8926         to avoid pointless calls to the lexer.
8927
8928 Fri Apr  7 11:50:54 2000  Jim Wilson  <wilson@cygnus.com>
8929
8930         * config/ia64/ia64.c: Delete stdio.h and ctype.h includes.
8931
8932 2000-04-07  Jason Merrill  <jason@casey.cygnus.com>
8933
8934         * calls.c (expand_call): emit_queue if we're trying a sibcall.
8935
8936 2000-04-07  Jakub Jelinek  <jakub@redhat.com>
8937
8938         * config/sparc/t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove.
8939
8940 2000-04-06  Geoff Keating  <geoffk@cygnus.com>
8941
8942         * Makefile.in: Build crtbeginS and crtendS like crtbegin and
8943         crtend so they can be multilibbed.
8944         (STAGESTUFF): Remove s-crt and s-crtS.
8945
8946 2000-04-07  Richard Henderson  <rth@cygnus.com>
8947
8948         * config/alpha/alpha.c (alpha_emit_conditional_move): Fail
8949         if we discover we need a pseudo and no_new_pseudos is true.
8950         * config/alpha/alpha.md (ne:DI insn): New.
8951         (trunctfsf2, sne): Emit NE instead of non-canonical LTU.
8952
8953 2000-04-07  Richard Henderson  <rth@cygnus.com>
8954
8955         * rtl.def (COND_EXEC): New.
8956         * rtl.h (COND_EXEC_TEST, COND_EXEC_CODE): New.
8957         * tm.texi (MAX_CONDITIONAL_EXECUTE): Document.
8958
8959         * genconfig.c (have_cond_arith_flag): Remove.
8960         (have_cond_exec_flag): New.
8961         (walk_insn_part): Detect COND_EXEC, not arithmetic in IF_THEN_ELSE.
8962         (main): Print HAVE_conditional_execution.
8963
8964         * haifa-sched.c (haifa_classify_insn): Recognize COND_EXEC.
8965         (sched_analyze_insn, print_pattern): Likewise.
8966         * reload.c (find_equiv_reg): Likewise.
8967         * rtlanal.c (reg_referenced_p): Likewise.
8968         (note_stores, dead_or_set_regno_p): Likewise.
8969         (reg_overlap_mentioned_p): Rewrite to use a switch.
8970
8971         * ggc.h (struct rtx_def): Forward declare.
8972
8973         * print-rtl.c (debug_rtx_range): New.
8974         * rtl.h (debug_rtx_range): Declare.
8975
8976         * varray.h (VARRAY_ACTIVE_SIZE, VARRAY_POP_ALL): New.
8977
8978         * gcse.c (gcse_main): Don't rebuild the CFG here.
8979         (delete_null_pointer_checks): Likewise.
8980         * ssa.c (convert_to_ssa): Likewise.
8981         * toplev.c (rest_of_compilation): Do it here instead.  Combine
8982         sequential calls to TIMEVAR.  Consistently use `insns' instead of
8983         `get_insns()'.  Always split insns after reload when optimizing.
8984
8985         * basic-block.h (merge_blocks_nomove): Declare.
8986         (tidy_fallthru_edge): Declare.
8987         * flow.c (merge_blocks_nomove): Document as merging into previous
8988         blocks.  Remove cruft from between blocks; remove all edges out of A.
8989         (tidy_fallthru_edge): Export.
8990
8991 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
8992
8993         * ssa.c (compute_conservative_reg_partition): Declare with
8994         void arguments.
8995         * toplev.c (clean_dump_file): Remove previously-deleted function
8996         inadvertantly merged back in.
8997         * conflict.c (conflict_graph_add): Use a single call to
8998         htab_find_slot to look up and insert.
8999
9000 2000-04-06  Richard Henderson  <rth@cygnus.com>
9001
9002         * genrecog.c (*): Rename _last_insn to last_insn.
9003         (make_insn_sequence): Set the position of the peephole2 C test
9004         to be at the last insn.
9005
9006 2000-04-06  Richard Henderson  <rth@cygnus.com>
9007
9008         * flow.c (compute_flow_dominators): Free worklist.
9009
9010 2000-04-06  Michael Matz  <matzmich@cs.tu-berlin.de>
9011
9012         * flow.c (compute_flow_dominators): Process blocks FIFO not LIFO.
9013
9014 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
9015
9016         * rtl.h (INSN_P): New macro.
9017         (successor_phi_fn): New typedef.
9018         (for_each_successor_phi): New prototype.
9019         (in_ssa_form): New variable.
9020         (PHI_NODE_P): Likewise.
9021         * flow.c (calculate_global_regs_live): Add to new_live_at_end from
9022         phi nodes in successors.
9023         (mark_used_regs): Add PHI case.
9024         (set_phi_alternative_reg): New function.
9025         (life_analysis): Assert that dead code elimination is not selected
9026         when in SSA form.
9027         * toplev.c (to_ssa_time): New variable.
9028         (from_ssa_time): Likewise.
9029         (compile_file): Zero to_ssa_time and from_ssa_time.
9030         Print time to convert to and from SSA.
9031         (rest_of_compilation): Time convert_to_ssa and convert_from_ssa.
9032         (print_time): Compute percent fraction as integer.
9033         * ssa.c (PHI_NODE_P): Moved to rtl.h.
9034         (convert_to_ssa): Check if we're already in SSA.
9035         Don't eliminate dead code in life_analysis.
9036         Rerun flow and life analysis at bottom.
9037         (eliminate_phi): Use canonical regnos when adding nodes.
9038         (mark_reg_in_phi): New function.
9039         (mark_phi_and_copy_regs): Likewise.
9040         (convert_from_ssa): Rerun life analysis at top.
9041         Use coalesced partition.
9042         Check for removing a phi node at the end of the block.
9043         (compute_coalesced_reg_partition): New function.
9044         (coalesce_regs_in_copies): Likewise.
9045         (coalesce_reg_in_phi): Likewise.
9046         (coalesce_regs_in_sucessor_phi_nodes): Likewise.
9047         (for_each_successor_phi): Likewise.
9048         (rename_context): New struct.
9049         (rename_block): Use a rename_context with rename_insn_1.  When
9050         renaming sets of a subreg, emit a copy of the entire reg first.
9051         (rename_insn_1): Treat data as a rename_context *.  Save current
9052         insn in set_data.
9053         (rename_set_data): Add field set_insn.
9054         * Makefile.in (HASHTAB_H): Move up in file.
9055         (OBSTACK_H): New macro.
9056         (collect2.o): Use OBSTACK_H in dependencies.
9057         (sdbout.o): Likewise.
9058         (emit-rtl.o): Likewise.
9059         (simplify-rtx.o): Likewise.
9060         (fix-header.o): Likewise.
9061         (OBJS): Add conflict.o.
9062         (conflict.o): New rule.
9063         * basic-block.h: Include partition.h.
9064         (conflict_graph): New typedef.
9065         (conflict_graph_enum_fn): Likewise.
9066         (conflict_graph_new): New prototype.
9067         (conflict_graph_delete): Likewise.
9068         (conflict_graph_add): Likewise.
9069         (conflict_graph_conflict_p): Likewise.
9070         (conflict_graph_enum): Likewise.
9071         (conflict_graph_merge_regs): Likewise.
9072         (conflict_graph_print): Likewise.
9073         (conflict_graph_compute): Likewise.
9074         * conflict.c: New file.
9075
9076 2000-04-06  Jason Merrill  <jason@yorick.cygnus.com>
9077
9078         * tlink.c (read_repo_files): Don't look for .rpo info for
9079         linker flags.
9080
9081 Thu Apr  6 20:39:26 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9082
9083         * sh.h (STRUCT_VALUE, RETURN_IN_MEMORY): Define.
9084
9085 Thu Apr  6 19:34:08 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9086
9087         * config/sh/lib1funcs.asm (___udivsi3_i4):
9088         ( __SH4_SINGLE__ / __SH4_SINGLE_ONLY__ variant): value for fpscr
9089         only depends on FMOVD_WORKS.
9090
9091 Thu Apr  6 19:11:47 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9092
9093         * config/sh/lib1funcs.asm (___udivsi3_i4): When using fmovd,
9094         make double constant 8-byte aligned.
9095
9096 2000-04-06  Jakub Jelinek  <jakub@redhat.com>
9097
9098         * config/sparc/sparc.md (movtf_insn_sp32, movtf_insn_vis_sp32,
9099         movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_hq_vis_sp64,
9100         movtf_no_e_insn_sp64): Accept loading 0.0 into GENERAL_REGS.
9101         (movtf_insn_sp64, movtf_insn_vis_sp64): Likewise.
9102         Accept storing GENERAL_REGS into offsetable memory.
9103         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Don't allow
9104         building a TFmode constant other than 0.0L into GENERAL_REGS.
9105
9106 2000-04-06  Clinton Popetz  <cpopetz@cygnus.com>
9107
9108         * regrename.c (regrename_optimize): Handle no REG_ALLOC_ORDER.
9109
9110 2000-04-06  Zack Weinberg  <zack@wolery.cumb.org>
9111
9112         * cpphash.c (CPP_IS_MACRO_BUFFER, FORWARD, PEEKC): Delete.
9113         (macro_cleanup): No need to cast pbuf->macro.
9114         (collect_expansion): Use _cpp_get_define_token.  Goto done if
9115         it returns VSPACE.  Remove check for trailing space after
9116         CPP_COMMENT.
9117         (_cpp_create_definition): Don't diddle flags here.  Return
9118         directly on error.
9119         (unsafe_chars): Handle c1 being EOF.
9120         (push_macro_expansion): Use unsafe_chars for both accidental-paste
9121         checks.  Don't push the buffer till after we're done with
9122         them.
9123         * cpplex.c (PEEKBUF, GETBUF, FORWARDBUF): New.
9124         (PEEKN, FORWARD, GETC, PEEKC): Use them.
9125         (cpp_push_buffer): Don't set new->alimit.  Set new->mark
9126         appropriately.
9127         (_cpp_parse_assertion): Don't NUL terminate.
9128         (_cpp_lex_token): Fix -traditional macro handling.  Don't skip
9129         hspace before calling _cpp_parse_assertion.  Remove all sets
9130         of only_seen_white. Treat '\f' as hspace.  Don't do anything
9131         special with '\n' here.
9132         (maybe_macroexpand): Handle T_EMPTY hash entries without
9133         pushing a buffer at all.
9134         (cpp_get_token): Handle clearing only_seen_white here.  Handle
9135         incrementing the line number here.  Clear
9136         potential_control_macro as well as only_seen_white, if
9137         appropriate.
9138         (cpp_get_non_space_token): Don't eat CPP_POP tokens.
9139         (_cpp_get_define_token): New function, basically like
9140         _cpp_get_directive_token was but doesn't eat horizontal space.
9141         Don't do anything with only_seen_white here.
9142         (_cpp_get_directive_token): Just call _cpp_get_define_token
9143         repeatedly till it returns non-hspace.
9144
9145         * cpplib.c (PEEKN, FORWARD, GETC, PEEKC): Delete.
9146         (conditional_skip, skip_if_group): Return int.
9147         (DIRECTIVE_TABLE): Change origin of all conditional directives
9148         to "COND".
9149         (TRAD_DIRECT_P): New macro.
9150         (_cpp_handle_directive): Use _cpp_get_directive_token.  Issue
9151         an error for a bogus directive, unless -lang-asm.  Use
9152         TRAD_DIRECT_P. Loop calling handler functions till one returns
9153         zero.
9154         (get_macro_name): Don't diddle flags here.
9155         (do_define): Diddle flags here.  Use _cpp_get_directive_token.
9156         Create T_EMPTY nodes for #define macro /* nothing */.
9157         (do_undef): Don't copy the name.  Use _cpp_get_directive_token.
9158         Use hp->name when calling pass_thru_directive.
9159         (do_if, do_else, do_elif, do_ifdef, do_ifndef, conditional_skip):
9160         Return the result of conditional_skip and/or skip_if_group.
9161         Don't call _cpp_output_line_command.
9162         (consider_directive_while_skipping): Use _cpp_get_directive_token.
9163         Issue -Wtraditional warnings as appropriate.  Don't complain
9164         about unrecognized directives.  If we are to stop skipping,
9165         return the number of the directive that ended the skip.
9166         (skip_if_group): Use _cpp_get_directive_token.  Turn off macro
9167         expansion and line commands while skipping.  Return the result
9168         of consider_directive_while_skipping, if nonzero.
9169         (do_endif): Just set potential_control_macro here.
9170         (validate_else): Use _cpp_get_directive_token.
9171         (do_assert, do_unassert): Don't save pointers into the
9172         token_buffer across calls to the lexer.  Use
9173         _cpp_get_directive_token.
9174
9175         * cpplib.h (cpp_buffer): Remove alimit and colno.  Make mark a
9176         pointer, not an offset.  Replace 'data', which was a generic
9177         pointer, with 'macro', which points to a struct hashnode.
9178         (cpp_reader): Add 'potential_control_macro' pointer.
9179         * cpphash.h (T_UNUSED): Replace with T_EMPTY.
9180         (CPP_BUF_GET, CPP_FORWARD): Delete.
9181         (CPP_IN_COLUMN_1, ADJACENT_TO_MARK): New macros.
9182         (CPP_IS_MACRO_BUFFER, CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK,
9183         ACTIVE_MARK_P): Update.
9184         (_cpp_get_define_token): New internal function.
9185         * cppfiles.c (read_include_file): Don't set fp->alimit or fp->colno.
9186
9187 2000-04-05   Benjamin Kosnik  <bkoz@cygnus.com>
9188
9189         * configure.in: And here.
9190         * configure: Regenerate.
9191         * acconfig.h: Add ENABLE_STD_NAMESPACE to set flag_honor_std if
9192         --enable-libstdcxx-v3 is passed at configure time.
9193         * config.h.in: Regenerate.
9194
9195 2000-04-05  Mark Mitchell  <mark@codesourcery.com>
9196
9197         * final.c (final): Use xcalloc to allocate line_note_exists.
9198         * function.c (free_after_compilation): Free the temp_slots.
9199         (assign_stack_temp_for_type): Use xmalloc to allocate temp_slots.
9200         (combine_temp_slot): Free temp_slots when they get combined.
9201         (purge_addressof): Fix typo in comment.
9202         * stmt.c (mark_goto_fixup): Mark the fixup itself.
9203         (expand_fixup): Allocate the fixup with ggc_alloc_obj.
9204
9205         * ggc.h: Include varray.h.
9206         (ggc_pending_trees): Declare.
9207         (ggc_mark_tree_children): Remove declaration.
9208         (ggc_mark_tree): Just push unmarked trees on ggc_pending_trees.
9209         * ggc-common.c (ggc_pending_trees): New variable.
9210         (ggc_mark_roots): Call ggc_mark_trees.
9211         (ggc_mark_tree_children): Rename to ggc_mark_trees.  Process all
9212         the ggc_pending_trees.
9213         * Makefile.in (GGC_H): New variable.  Use it throughout in place
9214         of ggc.h.
9215
9216 Thu Apr  6 00:30:50 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9217
9218         * sh.h (FUNCTION_ARG_PARTIAL_NREGS): Accomodate an unsigned
9219         GET_MODE_SIZE.
9220
9221 Wed Apr  5 23:17:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9222
9223         * sh.c (sh_insn_length_adjustment): New function.
9224         * sh-protos.h (sh_insn_length_adjustment): Declare.
9225         * sh.h (ADJUST_INSN_LENGTH): Use it.
9226
9227 Wed Apr  5 12:35:18 2000  Hans-Peter Nilsson  <hp@axis.com>
9228
9229         * optabs.c (emit_libcall_block): Remove spurious REG_EQUAL notes
9230         from the insn where REG_RETVAL is added.
9231         (emit_no_conflict_block): Ditto.
9232
9233         * md.texi (Standard Names): Clarify when movX is needed.
9234
9235         * combine.c (simplify_comparison) [MINUS]: Do not replace
9236         all (op (minus A B) 0) with (op A B).
9237
9238 Wed Apr  5 18:03:31 2000  Toshiyasu Morita  (toshi.morita@sega.com)
9239                           J"orn Rennecke <amylaar@cygnus.co.uk>
9240
9241         * sh.md (block_lump_real_i4): Add missing clobber of T_REG
9242         (block_lump_real): Likewise.
9243
9244 2000-04-05  Chris Demetriou  <cgd@netbsd.org>
9245
9246         * mips.h (MASK_DEBUG_A, MASK_DEBUG_B, MASK_DEBUG_C): Zero the
9247         remaining non-zero debugging masks.
9248
9249 Wed Apr  5 09:44:07 2000  Jeffrey A Law  (law@cygnus.com)
9250
9251         * basic-block.h (verify_flow_info): Declare.
9252         (flow_loop_outside_edge_p): Declare.
9253         * flow.c (verify_flow_info): Remove declaration.
9254         (clear_log_links, flow_loop_outside_edge_p): Likewise.
9255
9256 Wed Apr  5 09:34:26 2000  Philippe De Muyter <phdm@macqel.be>
9257
9258         * m68k/m68k-protos.h (finalize_pic): Turn prototype off using `#if 0',
9259         not C++ comments.
9260
9261 2000-04-05  Jakub Jelinek  <jakub@redhat.com>
9262
9263         * config/sparc/sparc.md (snedi_zero+1, neg_snedi_zero+1,
9264         snedi_zero_trunc+1, seqdi_zero+1, neg_seqdi_zero+1,
9265         seqdi_zero_trunc+1): Allow splits only if registers are
9266         different.
9267
9268 2000-04-04  Ulrich Drepper  <drepper@cygnus.com>
9269
9270         * acconfig.h: Add HAVE_GAS_HIDDEN.
9271         * config.in: Regenerated.
9272         * configure.in: Add test for .hidden pseudo-op in gas.
9273         * configure: Regenerated.
9274         * crtstuff.c: Include auto-host.h.
9275         Emit additional .hidden pseudo-op for __dso_handle if the
9276         assembler knows about it.
9277
9278 2000-04-04  Philippe De Muyter  <phdm@macqel.be>
9279
9280         * cpphash.c (_cpp_free_definition): Test argnames, not nargs >= 0,
9281         before freeing argnames.
9282         * cpplib.c (do_ifndef): Cast return value of xstrdup.
9283
9284 2000-04-05  Michael Meissner  <meissner@redhat.com>
9285
9286         * config/rs6000/rs6000.c (print_operand): Patch from Jonathan
9287         Walton <jonboy@gordian.com> to make memory references with update
9288         work wtih -mregnames.
9289
9290 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9291
9292         * regrename.c (regno_first_use_in): Wrap prototype in PARAMS.
9293         (regrename_optimize): Rename variables `def_uses' and
9294         `ext_basic_blocks' to avoid conflicts with similarly named
9295         typedefs in traditional C.
9296
9297         * calls.c (initialize_argument_information): Fix typo in previous
9298         change.
9299
9300 2000-04-04  Richard Henderson  <rth@cygnus.com>
9301
9302         * regrename.c (consider_available): Test fixed_regs not
9303         PIC_OFFSET_TABLE_REGNUM.
9304
9305 2000-04-04  Geoff Keating  <geoffk@cygnus.com>
9306
9307         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbegin,
9308         crtend.
9309         (CRTSTUFF_T_CFLAGS_S): Delete definition.
9310         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Always use crtbegin.
9311         (ENDFILE_LINUX_SPEC): Always use crtend.
9312         * configure.in (powerpc-*-linux-gnulibc1): Don't define extra_parts.
9313         (powerpc-*-linux-gnu): Likewise.
9314         * configure: Regenerate.
9315
9316         * config/rs6000/eabi.h: Don't include sysv4.h.
9317         (MULTILIB_DEFAULTS): Don't define.
9318         * config/rs6000/eabiaix.h: Don't include eabi.h.
9319         * config/rs6000/eabile.h: Delete.
9320         * config/rs6000/eabilesim.h: Delete.
9321         * config/rs6000/eabisim.h: Don't include eabi.h.
9322         * config/rs6000/linux.h: Don't include sysv4.h.
9323         (JUMP_TABLES_IN_TEXT_SECTION): Don't redefine.
9324         (MULTILIB_DEFAULTS): Don't redefine.
9325         * config/rs6000/rtems.h: Don't include eabi.h.
9326         * config/rs6000/sol2.h: Don't include sysv4le.h.
9327         * config/rs6000/sysv4le.h: Don't include sysv4.h.
9328         * config/rs6000/t-ppc: Delete.
9329         * config/rs6000/t-ppcgas: Correct comment.
9330         * config/rs6000/t-ppcos: Correct comment.  Don't build
9331         multilibs for -fPIC, rather use -fPIC -mstrict-align
9332         as default.
9333         * config/rs6000/t-ppc: Delete.
9334         * config/rs6000/vxppc.h: Don't include sysv4.h.
9335         * config/rs6000/vxppcle.h: Delete.
9336         * configure.in: Use multiple header files for p2pc ELF targets
9337         powerpc-eabiaix, powerpc-eabisim, powerpc-rtems, powerpcle-eabi,
9338         powerpcle-eabisim, powerpc-elf, powerpcle-elf, powerpc-linux-gnu,
9339         powerpc-linux-gnulibc1, powerpc-sysv, powerpcle-sysv,
9340         powerpc-vxworks, powerpcle-vxworks.  Assume GAS functionality is
9341         always available for these platforms.
9342
9343 2000-04-04  Richard Henderson  <rth@cygnus.com>
9344
9345         * calls.c (try_to_integrate): Initialize reg_parm_stack_space.
9346
9347 2000-04-04  Stan Cox  <scox@cygnus.com>
9348
9349         * Makefile.in: Add rules for regrename.o
9350         * regrename.c: New file.
9351         * rtl.h (regrename_optimize): Add prototype.
9352         * toplev.c (rename_registers_dump, flag_rename_registers): New variables
9353         (compile_file, decode_d_option): Add support for -frename-registers.
9354         (rest_of_compilation): Call regrename_optimize.
9355         * config/ia64/ia64.h (HARD_REGNO_RENAME_OK, RENAME_EXTENDED_BLOCKS):
9356         New macros.
9357
9358 2000-04-04  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
9359
9360         * Makefile (gccbug): New target.
9361         (doc): Depend on it.
9362         * gcc.texi (Bugs): Link subnodes.
9363         (gccbug): New node.
9364         * gccbug.in (CATEGORIES): Remove gc, host, profiling, libgcc.
9365         Document severities, priorities, and classes in bug form.
9366
9367 2000-04-04  Zack Weinberg  <zack@wolery.cumb.org>
9368
9369         * cpplex.c (trigraph_map, speccase): Combine into single
9370         table, chartab.
9371         (NORMAL, NONTRI): New macros.
9372         (_cpp_read_and_prescan): Change to use unified table.  Use
9373         is_hspace to test for whitespace.
9374
9375         * dbxout.c (CONTIN): If it doesn't have to do anything, give it a
9376         definition that doesn't provoke the "empty body in an
9377         if-statement" warning.
9378
9379 2000-04-04  Clinton Popetz  <cpopetz@cygnus.com>
9380
9381         * builtins.c (expand_builtin_strlen): Force the source to
9382         be a memory address.
9383
9384 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9385
9386         * cpplib.c (D): Adjust to call CONCAT2 macro without whitespace.
9387
9388 Tue Apr  4 19:17:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
9389
9390         * calls.c (ECF_MALLOC, ECF_MAY_BE_ALLOCA, ECF_RETURNS_TWICE,
9391          ECF_LONGJMP, ECF_FORK_OR_EXEC):  New constants.
9392         (ECF_IS_CONST): Rename to ECF_CONST.
9393         (special_function_p): Make static, change interface.
9394         (flags_from_decl_or_type, try_to_integrate): Break out from ...
9395         (expand_call) ... here; convert number of variables to flags.
9396         (emit_library_call_vlue_1): Likewise.
9397         (setjmp_call_p): New function.
9398         (initialize_argument_information): Accepts flags as argument;
9399         return flags.
9400         (precompute_arguments): Likewise.
9401         * tree.h (special_function_p): Remove.
9402         (setjmp_call_p): Add prototype.
9403
9404 2000-04-04  Jakub Jelinek  <jakub@redhat.com>
9405
9406         * config/sparc/sparc.h (RTX_OK_FOR_OFFSET_P): Leave minor margin
9407         so that addresses are offsetable by up to 16 bytes.
9408         (GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+REG addresses for
9409         non-optimizing TARGET_ARCH32 in DF or DI modes because it is not
9410         offsetable.
9411
9412         * config/sparc/sparc.md (movdi_insn_sp64_novis): New pattern.
9413         (movdi_insn_sp64_vis): Renamed from movdi_insn_sp64.
9414         (movsf): Don't force any constant to memory if target is integer
9415         hard register.
9416         Move fp_zero_operand check below the const0_rtx check.
9417         (movtf): Likewise. Also allow fp_zero_operand for stores into
9418         memory.
9419         (movdf): Likewise. Also allow fp_zero_operand for stores into
9420         memory and into integer hard registers.
9421         (clear_df, clear_dfp, movdf_const_intreg_sp32,
9422         movdf_const_intreg_sp64): Remove.
9423         (movdf_insn_sp32, movdf_no_e_insn_sp32): Redo constraints and
9424         conditions.
9425         (movdf_no_e_insn_v9_sp32): New pattern.
9426         (movdf_insn_v9only): Remove.
9427         (movdf_insn_v9only_novis, movdf_insn_v9only_vis): New patterns.
9428         (movdf_insn_sp64): Remove.
9429         (movdf_insn_sp64_novis, movdf_insn_sp64_vis): New patterns.
9430         (movdf_no_e_insn_sp64): Allow storing 0.0 into memory.
9431         (following splits): Rewrite conditions. Add two new splits
9432         for storing 0.0 into memory and registers.
9433         (clear_tf, clear_tf+1, clear_tfp, clear_tfp+1): Remove.
9434         (movtf_insn_sp32): Redo constraints and conditions.
9435         (movtf_insn_vis_sp32): New pattern.
9436         (movtf_no_e_insn_sp32): Redo constraints and conditions.
9437         (movtf_insn_hq_sp64): Likewise.
9438         (movtf_insn_hq_vis_sp64): New pattern.
9439         (movtf_insn_sp64): Redo constraints and conditions.
9440         (movtf_insn_vis_sp64): New pattern.
9441         (movtf_no_e_insn_sp64): Redo constraints and conditions.
9442         (movtf_no_e_insn_sp64+1): New split for storing 0.0L into registers
9443         or memory.
9444         * config/sparc/sparc.c (sparc_override_options): Assume v9 if either
9445         -mvis or -m64 to take down the number of various reload patterns.
9446
9447 Tue Apr  4 00:41:53 2000  Jeffrey A Law  (law@cygnus.com)
9448
9449         * pa/pa-64.h: New file.
9450         * pa/pa64-regs.h: New file.
9451         * pa/pa64-start.h: New file.
9452         * pa/t-pa64: New file.
9453         * pa/xm-pa64hpux.h: New file.
9454
9455 2000-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9456
9457         * sparc.c (output_restore_regs): Prototype.
9458         (sparc_emit_float_lib_cmp): Constification.
9459
9460         * emit-rtl.c (const_int_htab_hash, const_int_htab_eq): Likewise.
9461
9462         * reload1.c (reload_cse_delete_noop_set, reload_cse_simplify):
9463         Prototype.
9464
9465         * simplify-rtx.c (entry_and_rtx_equal_p): Constification.
9466         (get_value_hash, hash_rtx): Likewise.
9467
9468         * ssa.c (compute_conservative_reg_partition): Prototype.
9469
9470         * tree.c (mark_hash_entry): Prototype.
9471
9472 2000-04-03  Zack Weinberg  <zack@wolery.cumb.org>
9473
9474         * bb-reorder.c (verify_insn_chain): #ifdef out unless ENABLE_CHECKING.
9475         * i386.h (FUNCTION_ARG_REGNO_P): Remove unnecessary test for N >= 0.
9476         * i386.md (call_value, call_value_pop): Remove unused variable 'addr'.
9477
9478         * gcc.c (C specs): Pass -fno-show-column to the preprocessor.
9479         * objc/lang-specs.h: Likewise.
9480
9481 2000-04-03  Neil Booth  <NeilB@earthling.net>
9482
9483         * cppexp.c: wrap long lines.  New macros CPP_ICE, SYNTAX_ERROR
9484         and SYNTAX_ERROR2. Replace `' in messages with ''.
9485         (op_to_str): Make re-entrant.
9486         (_cpp_parse_expr): Implement new error macros. Use | rather
9487         than || to logically or 2 boolean integers.  Simply expression
9488         checking we have a left operand iff needed.
9489
9490 2000-04-03  Nick Clifton  <nickc@cygnus.com>
9491
9492         * Makefile.in (diagnostic.o): Depend upon diagnostic.c
9493
9494 2000-04-03  Philip Blundell  <philb@gnu.org>
9495
9496         * config/arm/linux-elf.h (SUBTARGET_EXTRA_LINK_SPEC): Fix typos.
9497
9498 2000-04-03  Felix Lee  <flee@cygnus.com>
9499
9500         * fixinc/server.c (find_shell): New function.  Avoid $SHELL.
9501         (run_shell): Use it.
9502
9503 2000-04-03  Jonathan Larmour  <jlarmour@redhat.co.uk>
9504
9505         * Makefile.in (stmp-int-hdrs): Make include subdir here...
9506         (stmp-fixproto): ...rather than here.
9507
9508 Mon Apr  3 00:50:06 2000  Jason Eckhardt <jle@cygnus.com>
9509
9510         * pa.c (print_operand): Compute 'base' only inside the code paths
9511         that use it.
9512
9513 2000-04-03  Geoffrey Keating  <geoffk@cygnus.com>
9514
9515         * stor-layout.c (byte_from_pos): Use TRUNC_DIV_EXPR rather than
9516         CEIL_DIV_EXPR.
9517
9518 2000-04-03  Philipp Thomas  <pthomas@suse.de>
9519
9520         * i386.h (TARGET_SWITCHES): Remove bogus empty strings, fix typo.
9521
9522 Mon Apr  3 00:02:59 2000  Brad Lucier <lucier@math.purdue.edu>
9523
9524         * Makefile.in (alias.o): Depend on $(TREE_H).
9525
9526 2000-04-02  Zack Weinberg  <zack@wolery.cumb.org>
9527
9528         * cppinit.c (cpp_start_read): Turn off -Wtraditional if
9529         processing C++.
9530         * cpplib.c (_cpp_handle_directive): Improve warnings for
9531         traditional C and indented directives.
9532
9533         * enquire.c, gsyslimits.h, limity.h, config/convex/fixinc.convex,
9534         fixinc/fixinc.irix, fixinc/fixinc.sco, fixinc/fixinc.wrap,
9535         fixinc/inclhack.def: Indent the # of #include_next one space.
9536         * cp/rtti.c: Un-indent #if and #endif.
9537
9538         * cppexp.c (_cpp_parse_expr): If lex returns '#', it's a
9539         syntax error, but an error has already been printed.
9540         * cpplex.c (_cpp_parse_assertion): Give a more specific error
9541         message when called with nothing remaining on the line.
9542         (_cpp_lex_token): If _cpp_parse_assertion fails, return an
9543         OTHER token, not an ASSERTION.
9544         * cpplib.c (do_assert): When we create a 'base' node, clear
9545         its aschain pointer.
9546
9547 2000-04-02  Neil Booth <NeilB@earthling.net>
9548
9549         * cppexp.c:  New typedef op_t.  struct operation and struct
9550         token updated to use it.
9551         (op_to_str): New function.
9552         (_cpp_parse_expr): Error messages modified to use op_to_str.
9553
9554 2000-04-02  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9555
9556         * config/c4x/c4x.c (c4x_function_arg): Check for void_type_node
9557         before checking MUST_PASS_IN_STACK.
9558
9559 2000-04-02  Neil Booth <NeilB@earthling.net>
9560
9561         * cppexp.c:  New FINISHED dummy token.  Combine operator initial
9562         flags and initial priority into a single constant.  New
9563         EQUALITY macro.  New operator flag SHORT_CIRCUIT.
9564         (_parse_cpp_expr): Implement new constants.  Take left operand
9565         checks out of reduction loop.  Handle SHORT_CIRCUIT.  End of
9566         parse indicated by reducing FINISHED token.  Remove new lines
9567         from cpp_error messages.
9568
9569 2000-04-01  Mark Mitchell  <mark@codesourcery.com>
9570
9571         * emit-rtl.c (gen_rtx_CONST_INT): Create cached CONST_INTs on the
9572         permanent obstack.
9573
9574 2000-04-01  Zack Weinberg  <zack@wolery.cumb.org>
9575
9576         * cpplib.c: Include symcat.h.  Add 'origin' field to struct
9577         directive.  Add origin values to DIRECTIVE_TABLE.  Generate
9578         the strings and function names on the fly.  Take the #sccs
9579         entry out of the table if SCCS_DIRECTIVE is not defined.
9580         (_cpp_handle_directive): Decide if the # was at the beginning
9581         of the line here.  Issue -pedantic warnings for extended
9582         directives here.  Warn about K+R directives with the #
9583         indented, and C89/extended directives with the # not indented,
9584         here.
9585         (do_import, do_include_next, do_warning, do_ident, do_sccs,
9586         do_assert, do_unassert): Don't issue pedantic warning here.
9587
9588         * cpphash.h: Add CPP_WTRADITIONAL macro.
9589         * cpplib.h (struct cpp_options): Rename warn_stringify to
9590         warn_traditional; update comments.
9591         * cppinit.c (handle_option): Set warn_traditional not
9592         warn_stringify.
9593         * cpphash.c: Replace CPP_OPTION (pfile, warn_stringify) with
9594         CPP_WTRADITIONAL (pfile).
9595         * cpplex.c (_cpp_lex_token): Don't decide if directives should
9596         be ignored in -traditional mode here.
9597
9598         * cpplex.c: Copy ISTABLE macros from cppinit.c, and adapt them
9599         to initialize speccase[] and trigraph_map[].  Delete all
9600         references to pfile->input_speccase.  Always treat '?' as a
9601         special character.  Remove table-initialization code from
9602         _cpp_init_input_buffer.
9603
9604         * cpplib.h (struct cpp_reader): Remove input_speccase field.
9605         * cppinit.c (cpp_cleanup): Don't free input_speccase.
9606
9607 2000-04-01  Richard Henderson  <rth@cygnus.com>
9608
9609         * Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once.
9610         (mostlyclean): Likewise.
9611
9612         * toplev.c (rtl_dump, jump_opt_dump, etc): Remove.
9613         (struct dump_file_info, enum dump_file_index, dump_file): New.
9614         (open_dump_file): Take a dump_file_index not a suffix, and a decl
9615         not a string.  Clean out file if we havn't yet done so.  Do nothing
9616         if the dump isn't enabled.
9617         (close_dump_file): Do nothing if the dump isn't open.  Dump
9618         graph data if requested.
9619         (dump_rtl, clean_dump_file): Remove.
9620         (compile_file): Don't clean the dump files.  Only finalize .bp dump
9621         if flag_test_coverage or flag_branch_probabilities.  Only finalize
9622         .combine dump if optimizing.  Iterate over dump_file to finalize the
9623         graph dumps.
9624         (rest_of_compilation): Update for open_dump_file/close_dump_file.
9625         Convert all uses of dump_rtl.
9626         (decode_d_option): Iterate over dump_file to implement 'a' and to
9627         locate pass-specific dumps.
9628
9629 2000-04-01  Neil Booth <NeilB@earthling.net>
9630
9631         * cppexp.c: Redefine priority constants.
9632         (_cpp_parse_expr): Replace left and right priority scheme with
9633         single priority logic.  Move LOGICAL to same place as COMPARE.
9634         Remove bogus check for multiple unary +/- operators.
9635
9636 2000-04-01  Neil Booth <NeilB@earthling.net>
9637
9638         * cppexp.c: (_cpp_parse_expr): Numerical constants are pushed
9639         within the switch statement.  Binary operations break out of
9640         the switch naturally.  '(' tokens handled by forcing
9641         immediate shift.  ')' handled by forcing immediate reduce to
9642         the previous '('.  New error messages.
9643
9644 2000-03-31  Geoff Keating  <geoffk@cygnus.com>
9645
9646         * config/rs6000/rs6000.c (print_operand): Don't use %l for 'low
9647         part', it's already in use.  Use %K instead.  Add a return at the
9648         end of what is now %K.
9649         * config/rs6000/rs6000.md (elf_low): Use %K instead of %l.
9650
9651 Sat Apr  1 02:05:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
9652
9653         * builtins.c  (expand_builtin_apply):  Pass proper parameters to
9654         allocate_dynamic_stack_space.
9655         * calls.c (emit_call_1):  Do not adjust stack pointer for SIB,
9656         update stack_pointer_delta; do not update arg_size_so_far.
9657         (compute_argument_block_size): Use stack_delta instead of
9658         stack_pointer_pending and arg_size_so_far.
9659         (expand_call): Add sanity checking for stack_pointer_delta;
9660         save and restore stack_pointer_delta for SIB, use
9661         stack_pointer_delta for alignment; do not update arg_space_so_far.
9662         (emit_library_call_value): Use stack_pointer_delta for alignment.
9663         (store_one_arg): Do not update arg_space_so_far.
9664         * explow.c (adjust_stack, anti_adjust_stack): Update
9665         stack_pointer_delta.
9666         (allocate_dynamic_stack_space): Add sanity checking for
9667         stack_pointer_delta.
9668         * expr.c (init_expr, clear_pending_stack_adjust): Clear
9669         stack_pointer_delta.
9670         (emit_push_insn): Update stack_pointer_delta.
9671         * function.h (struct expr_status): Add x_stack_pointer_delta;
9672         remove x_arg_space_so_far.
9673         (arg_space_so_far): Remove.
9674         (stack_pointer_delta): New macro.
9675
9676 2000-03-31  Zack Weinberg  <zack@wolery.cumb.org>
9677
9678         * cpplib.h: Merge struct cpp_options into struct cpp_reader.
9679         Reorder struct cpp_options and struct cpp_reader for better
9680         packing.  Replace CPP_OPTIONS macro with CPP_OPTION which
9681         takes two args.  Change all 'char' flags to 'unsigned char'.
9682         Move show_column flag into struct cpp_options.  Don't
9683         prototype cpp_options_init.
9684         * cpphash.h, cpperror.c, cppexp.c, cppfiles.c, cpphash.c,
9685         cppinit.c, cpplex.c, cpplib.c:
9686         Replace CPP_OPTIONS (pfile)->whatever with
9687         CPP_OPTION (pfile, whatever), and likewise for
9688         opts = CPP_OPTIONS (pfile); ... opts->whatever;
9689
9690         * cppinit.c (merge_include_chains): Take a cpp_reader *.
9691         Extract CPP_OPTION (pfile, pending) and work with that
9692         directly.
9693         (cpp_options_init): Delete.
9694         (cpp_reader_init): Turn on on-by-default options here.
9695         Allocate the pending structure here.
9696         (cl_options, enum opt_code): Define these from the same table,
9697         kept in a large macro.  Add -fshow-column and -fno-show-column
9698         options.
9699
9700         * cpperror.c (v_message): If show_column is off, don't print
9701         the column number.
9702
9703         * cppmain.c: Update for new interface.
9704         * fix-header.c: Likewise.
9705
9706 2000-03-30  Geoff Keating  <geoffk@cygnus.com>
9707
9708         * config/rs6000/t-aix43 (AR_FLAGS_FOR_TARGET): Adjust for new
9709         definition.
9710         * Makefile.in (AR_FLAGS_FOR_TARGET): Is now the flags that
9711         are passed to any invocation of AR_FOR_TARGET.
9712         (AR_CREATE_FOR_TARGET): New macro.
9713         (AR_EXTRACT_FOR_TARGET): New macro.
9714         (ORDINARY_FLAGS_TO_PASS): Add AR_CREATE_FOR_TARGET,
9715         AR_EXTRACT_FOR_TARGET.
9716         (many places): Use AR_CREATE_FOR_TARGET, AR_EXTRACT_FOR_TARGET
9717         in place of `$(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET)' and
9718         `$(AR_FOR_TARGET) x'.  Pass AR_CREATE_FOR_TARGET and
9719         AR_EXTRACT_FOR_TARGET to sub-makes.
9720
9721 2000-03-31  Neil Booth <NeilB@earthling.net>
9722
9723         * cppexp.c: Delete SKIP_OPERAND.  Correct priority
9724         PAREN_INNER_PRIO.
9725         (_cpp_parse_expr): Check for multiple unary +/- operators.
9726         Correct priorities of ':' and '?'.  Treat ')' as having a
9727         value.  Ensure conditional expression is not void.
9728
9729 2000-03-31  Mark Mitchell  <mark@codesourcery.com>
9730
9731         * alias.c (canon_rtx): Make it global.
9732         (rtx_equal_for_memref_p): CONST_INT equality is now pointer
9733         equality.
9734         * cse.c (struct table_elt): Add canon_exp.
9735         (insert): Clear it.
9736         (invalidate): Canonicalize expressions only once.
9737         * rtl.h (canon_rtx): Declare.
9738
9739 2000-03-30  Mark Mitchell  <mark@codesourcery.com>
9740
9741         * Makefile.in (emit-rtl.o): Depend on HASHTAB_H.
9742         * alias.c (reg_known_value): Add comments.
9743         (init_alias_analysis): Likewise.
9744         * cse.c (exp_equiv_p): CONST_INTs are equal iff they have the same
9745         address.
9746         (cse_basic_block): Fix typo in comment.
9747         * emit-rtl.c: Include hashtab.h.
9748         (const_int_htab): New variable.
9749         (const_int_htab_hash): New function.
9750         (const_int_htab_eq): Likewise.
9751         (rtx_htab_mark_1): Likewise.
9752         (rtx_htab_mark): Likewise.
9753         (gen_rtx_CONST_INT): Cache all CONST_INTs.
9754         (unshare_all_rtx): Fix formatting.
9755         (init_emit_once): Initialize const_int_htab.
9756         * rtl.c (rtx_equal_p): CONST_INTs are equal iff they have the same
9757         address.
9758         * rtl.texi: Document the fact that all CONST_INTs with the same
9759         value are shared.
9760
9761 2000-03-30  Richard Henderson  <rth@cygnus.com>
9762
9763         * alpha.h (FUNCTION_BOUNDARY): Reduce to 128 bits.
9764
9765 2000-03-30  Zack Weinberg  <zack@wolery.cumb.org>
9766
9767         * configure.in: Comment out --enable-c-cpplib stanza.
9768         * configure: Regenerate.
9769
9770 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9771
9772         * expr.c (store_constructor): Properly compute displacement and
9773         alignment when offset is variable.
9774
9775         * expmed.c (store_bit_field, store_fixed_bit_field): Fix more
9776         cases of alignment in bytes.
9777
9778 Thu Mar 30 13:30:40 2000  Jeffrey A Law  (law@cygnus.com)
9779
9780         * c-parse.in (cast_expr): Move change from March 21 into c-parse.in
9781         since it is used to generate c-parse.y.
9782         * objc-parse.c, objc-parse.y: Regenerated.
9783
9784         * function.c (expand_function_end): Pass alignment argument to
9785         emit_block_move in bits, not bytes.
9786
9787 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9788
9789         * expr.c (move_by_pieces_ninsns): Fix one more missing align
9790         correction.
9791
9792         * expmed.c (store_fixed_bit_field): STRUCT_ALIGN is in bits.
9793
9794         * calls.c (expand_call): Pass bit alignment to mark_reg_pointer.
9795         * explow.c (memory_address, allocate_dynamic_stack_space): Likewise.
9796         * function.c (assign_parms): Likewise.
9797         * integrate.c (expand_inline_function): Likewise.
9798         * stmt.c (expand_decl): Likewise.
9799         (copy_rtx_and_substitute): Likewise.
9800         * expr.c (expand_expr, expand_expr_unaligned): Likewise.
9801         (clear_by_pieces): Fix error in last change.
9802         * emit-rtl.c (init_emit): Set known registers alignment in bits.
9803         * function.h (regno_pointer_align): Now unsigned.
9804         * config/arm/arm.c (alignable_memory_operand): REGNO_POINTER_ALIGN
9805         is in bits.
9806         * config/i386/i386.c (aligned_operand): Likewise.
9807         * config/sparc/sparc.c (mem_min_alignment): Likewise.
9808         * config/alpha/alpha.c (aligned_memory_operand): Likewise.
9809         (unaligned_memory_operand): Likewise.
9810         (alpha_expand_block_move, alpha_expand_block_clear): Likewise.
9811         Also make alignments and sizes unsigned and some whitespace cleanup.
9812         (alpha_va_start): Do nothing if VALIST's type is error_mark_node.
9813
9814         * builtins.c (get_pointer_alignment): Use host_integerp & tree_low_cst.
9815         (expand_builtin_apply): Pass alignment to emit_block_move in bits.
9816         (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
9817         (expand_builtin_memset): Likewise, but to clear_storage.
9818         * calls.c (save_fixed_argument_area): Likewise, to move_by_pieces.
9819         (restore_fixed_argument_area): Likewise.
9820         (store_unaligned_arguments_into_pseudos): Likewise, to store_bit_field.
9821         (load_register_parameters): Likewise, to emit_group_load.
9822         (expand_call): Likewise, to emit_group_store and emit_block_move.
9823         (emit_library_call_value_1): Likewise, to emit_block_move.
9824         (store_one_arg): Likewise, and to emit_push_insn.
9825         * expmed.c (extract_bit_field): Alignment is in bits, not bytes.
9826         (extract_fixed_bit_field, extract_split_bit_field): Likewise.
9827         * expr.c (move_by_pieces, move_by_pieces_ninsns): Likewise.
9828         (emit_block_move, emit_group_load, emit_group_store): Likewise.
9829         (clear_by_pieces, clear_storage, emit_push_insn): Likewise.
9830         (expand_assigment, store_expr, store_constructor_field): Likewise.
9831         (expand_expr_unaligned, do_jump, do_compare_and_jump): Likewise.
9832         (store_constructor, store_field, get_inner_reference): Likewise.
9833         Use host_integerp and tree_low_cst; sizes and positions HOST_WIDE_INT.
9834         (expand_expr, case COMPONENT_REF): Likewise.
9835         (copy_blkmode_from_regs): Use UNSIGNED_HOST_WIDE_INT for sizes
9836         and positions; reindent code.
9837         * expr.h (emit_cmp_insn, emit_cmp_and_jump_insns): Alignment unsigned.
9838         * function.c (purge_addressof_1): Pass bit align to store_bit_field.
9839         (assign_parms): Likewise to emit_group_store.
9840         * optabs.c (prepare_cmp_insn): Alignment is in bits.
9841         (emit_cmp_and_jump_insns, emit_cmp_insn): Likewise, and also unsigned.
9842         * stmt.c (expand_value_return): Pass align in bits to emit_group_load.
9843         (expand_return): Likewise to {extract,store}_bit_field.
9844         * stor-layout.c (get_mode_alignment): Minor cleanup.
9845         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Align is in bits.
9846         * config/sh/sh.h (MOVE_BY_PIECES_P): Likewise.
9847
9848 2000-03-29  Nick Clifton  <nickc@cygnus.com>
9849
9850         * config/arm/arm.h: Undo effects of previous delta:
9851         (ASM_SPEC): Do not define.
9852         (SUBTARGET_EXTRA_ASM_SPEC): Do not define.
9853
9854         * config/arm/linux-elf.h: (SUBTARGET_EXTRA_ASM_SPEC) Fix
9855         typo.
9856
9857 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
9858
9859         * cppinit.c (cpp_start_read): Call initialize_dependency_output
9860         only after reading in the primary source file.
9861
9862 2000-03-29  Geoff Keating  <geoffk@cygnus.com>
9863
9864         * c-common.c (c_common_nodes_and_builtins): The first parameter to
9865         __builtin_va_start and __builtin_va_copy is now either a 'va_list'
9866         or a reference to a va_list.
9867         * builtins.c (stabilize_va_list): Simplify now we don't have to
9868         work around C array address decay.
9869         * c-typeck.c (convert_for_assignment): Handle assignment to
9870         a reference parameter by taking the address of the RHS.
9871         * ginclude/stdarg.h (va_start): Don't take address of first parameter.
9872         (va_copy): Likewise.
9873         (__va_copy): Likewise.
9874         * ginclude/varargs.h (va_start): Likewise.
9875         (__va_copy): Likewise.
9876
9877 Wed Mar 29 15:44:53 2000  Jeffrey A Law  (law@cygnus.com)
9878
9879         * i386/djgpp.h: Remove extraneous "+".
9880
9881         * stmt.c (stmt_loop_nest_empty): Fix thinko in last change.
9882
9883         * calls.c (expand_call): Fix typo in last change.
9884
9885 2000-03-29  Jason Merrill  <jason@casey.cygnus.com>
9886
9887         * tree.c (unsave_expr_1): Don't mess with a TARGET_EXPR that hasn't
9888         been expanded.
9889
9890 Wed Mar 29 15:39:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9891
9892         * stor-layout.c (bit_from_pos, byte_from_pos): New functions.
9893         (pos_from_byte, pos_from_bit, normalize_offset): Likewise.
9894         (normalize_rli, rli_size_so_far, rli_size_unit_so_far): Use them.
9895         * tree.c (bit_position, byte_position): Likewise.
9896         * tree.h: Declare new functions.
9897
9898 2000-03-29  Nick Clifton  <nickc@cygnus.com>
9899
9900         * config/arm/arm.c: Minor formatting changes/
9901         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
9902         already defined.
9903         (ASM_SPEC): Define if not already defined.
9904
9905 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
9906
9907         * cppfiles.c (cpp_read_file): Don't pass zero-length string to
9908         _cpp_calc_hash.
9909
9910 2000-03-29  Jakub Jelinek  <jakub@redhat.com>
9911
9912         * dwarf2out.c (gen_enumeration_type_die): If enum has a negative
9913         value, don't output it as unsigned.
9914
9915 Wed Mar 29 10:53:49 2000  Jeffrey A Law  (law@cygnus.com)
9916
9917         * stmt.c (stmt_loop_nest_empty): Allow cfun->stmt to be NULL.
9918
9919 2000-03-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9920
9921         * c-common.c (c_common_nodes_and_builtins): Don't special case
9922         cplus_mode when declaring builtin bzero/bcmp, always avoid
9923         prototype arguments.
9924
9925 2000-03-29  Bruce Korb  <bkorb@gnu.org>
9926
9927         * fixinc/mkfixinc.sh: Initially set the variable "fixincludes"
9928         to a non-file
9929
9930 Wed Mar 29 15:08:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
9931
9932         Convert ACCUMULATE_OUTGOING_ARGS to an expression.
9933         * calls.c (PUSH_ARGS_REVERSED) Change to expression.
9934         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default value.
9935         (struct arg_data): Remove #ifdef ACCUMULATE_OUTGOING_ARGS.
9936         (save_fixed_argument_area, restore_fixed_argument_area):
9937         conditionize by #ifdef REG_PARM_STACK_SPACE only.
9938         (emit_call): Change #ifdefs on ACCUMULATE_OUTGOING_ARGS
9939         to conditions, handle RETURN_POPS_ARGS on ACCUMULATE_OUTGOING_ARGS.
9940         (precompute_register_parameters): Avoid #ifdefs on
9941         ACCUMULATE_OUTGOING_ARGS and PUSH_ARGS_REVERSED.
9942         (stire_one_args): Likewise.
9943         (expand_call): Likewise; conditionize PUSH_ROUNDING code by PUSH_ARGS.
9944         (emit_library_call_value_1): Likewise.
9945         (compute_argument_block_size): Align to STACK_BOUNDARY only for
9946         ACCUMULATE_OUTGOING_ARGS.
9947         * combine.c (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default
9948         value.
9949         (nonzero_bits): Conditionize PUSH_ROUNDING code by USE_PUSH.
9950         (use_crosses_set_p): Likewise.
9951         * all targets (ACCUMULATE_OUTGOING_ARGS define): Change to
9952         #define ACCUMULATE_OUTGOING_ARGS 1.
9953         * i386.c (ix86_compute_frame_size): Handle ACCUMULATE_OUTGOING_ARGS
9954         frames.
9955         * i386.h (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS): New
9956         constants.
9957         (TARGET_PUSH_ARGS, TARGET_ACCUMULATE_OUTGOING_ARGS): New macros.
9958         (TARGET_SWITCHES): Add push-args, no-push-args,
9959         accumulate-outgoing-args and no-accumulate-outgoing-args.
9960         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): New macro.
9961         * expr.c (ACCUMULATE_OUTGONG_ARGS, PUSH_ARGS): Provide default.
9962         (push_block): Avoid ifdefs on ACCUMULATE_OUTGONG_ARGS
9963         and PUSH_ROUNDING.
9964         (emit_push_insn): Likewise.
9965         * final.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
9966         (final_scan_insn): Avoid ifdefs on ACCUMULATE_OUTGOING_ARGS.
9967         * function.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
9968         (STACK_DYNAMIC_OFFSET): Define correctly for both
9969         ACCUMULATE_OUTGOING_ARGS and normal mode.
9970         * invoke.texi (-mpush_args, -maccumulate-outgoing-args): Document.
9971         * tm.texi (PUSH_ARGS): Document.
9972         (ACCUMULATE_OUTGOING_ARGS, PUSH_ROUNDING): Update documentation.
9973
9974 Wed Mar 29 11:51:13 MET DST 2000  Jan Hubicka  <jh@suse.cz>
9975
9976         * flags.h (flag_optimize_sibling_calls): Declare.
9977         * calls.c (expand_call): Fail sibcall when
9978         !flag_optimize_sibling_calls
9979         * invoke.texi (flag_optimize_sibling_calls): Document.
9980         * toplev.c (flag_optimize_sibling_calls): New global variable.
9981         (f_options): Add flag_optimize_sibling_calls.
9982         (rest_of_compilation): Conditionize
9983         optimize_sibling_and_tail_recursive_calls by
9984         flag_optimize_sibling_calls.
9985         (main): Set flag_optimize_sibling_calls for -O2.
9986         * stmt.c (expand_return): Conditionize tail recursion by
9987         flag_optimize_sibling_calls.
9988
9989 2000-03-29  Richard Henderson  <rth@cygnus.com>
9990
9991         * config/i386/att.h (LOCAL_LABEL_PREFIX): Define.
9992         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Use it.
9993
9994 2000-03-29  Nathan Sidwell  <nathan@codesourcery.com>
9995
9996         * except.c (add_eh_table_entry): Mark type_info's as referenced.
9997
9998 2000-03-29  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
9999
10000         * config/rs6000/aix41.h (CPP_SPEC): Define _ANSI_C_SOURCE if -ansi
10001         is given.
10002         * config/rs6000/aix43.h (CPP_SPEC): Likewise.
10003         * config/rs6000/rs6000.h (CPP_SPEC): Moved to...
10004         * config/rs6000/aix.h: then modified likewise.
10005
10006 2000-03-28  Richard Henderson  <rth@cygnus.com>
10007
10008         * rtl.h: Redistribute enum reg_note documentation.
10009         Kill trailing whitespace.
10010         * rtl.c (reg_note_name): Adjust to match enum reg_note tweeks.
10011         Kill trailing whitespace.
10012
10013 2000-03-28  Zack Weinberg  <zack@wolery.cumb.org>
10014
10015         * cppfiles.c (hash_IHASH): Just return i->hash.
10016         (cpp_included): Set dummy.hash using _cpp_calc_hash.  Use
10017         htab_find_with_hash.
10018         (cpp_read_file): Likewise.
10019         (find_include_file): Likewise.  Properly initialize
10020         ih->nshort.  Share ih->name and ih->nshort if possible.
10021         * cpphash.c (_cpp_calc_hash): New function.
10022         (hash_HASHNODE): Just return h->hash.
10023         (_cpp_lookup): Set dummy.hash using _cpp_calc_hash.  Use
10024         htab_find_with_hash.
10025         * cpphash.h: Prototype _cpp_calc_hash.
10026         * cppinit.c (initialize_builtins): Provide a valid hash
10027         to _cpp_make_hashnode, using _cpp_calc_hash.
10028
10029         * cpphash.c (collect_expansion): # is not a special character
10030         in object-like macros.  In -traditional mode, /**/ is not
10031         token paste at the beginning or end of the line.
10032         * cpplib.c (do_include, do_import, do_include_next): If
10033         parse_include fails, return immediately.
10034
10035 2000-03-28  Jason Merrill  <jason@casey.cygnus.com>
10036
10037         * config/arm/arm.md (return peepholes): Update to reflect the new
10038         call insn patterns.
10039         * config/arm/arm.c (arm_volatile_func): Also check
10040         current_function_nothrow.
10041         (output_return_instruction, output_func_prologue): Use it.
10042         (arm_output_epilogue, arm_expand_prologue): Likewise.
10043
10044 2000-03-27  Tom Tromey  <tromey@cygnus.com>
10045
10046         * gcc.c (handle_braces): In {x*...} case, break out of loop if
10047         switch is found.
10048
10049 Tue Mar 28 11:55:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10050
10051         * expr.c (store_constructor): SIZE now signed.
10052         For EXPR_SIZE, don't evaluate size; just needed if constant.
10053         * fold-const.c (fold): Fix a number of cases when folded tree is
10054         wrong type.
10055         * function.c (flush_addressof): Reenable.
10056         * tree.h (flush_addressof): Likewise.
10057         * toplev.c (independent_decode_option): Look at strings_processed.
10058         * config/alpha/alpha.h (MINIMUM_ATOMIC_ALIGNMENT): Cast to unsigned.
10059
10060 Tue Mar 28 08:29:46 2000  Jan Hubicka  <jh@suse.cz>
10061
10062         * sibcall.c (indentify_call_return_value): Find last call in the chain;
10063         Allow stack adjustment after function call.
10064
10065         * regmove.c (struct csa_memlist): Make mem field rtx *.
10066         (record_one_stack_ref): Accept rtx * instead of rtx as parameter.
10067         (try_apply_stack_adjustment): Replace whole MEM rtx.
10068         (combine_stack_adjustments_for_block): Update calls
10069         to record_one_stack_ref.
10070
10071 2000-03-28  Neil Booth  <NeilB@earthling.net>
10072
10073         * cpplex.c (_cpp_read_and_prescan): Mark end of input buffer with
10074         '\\' rather than a null character, so nulls are not special.  Fix
10075         "\\\n" handling in end-of-buffer conditions.  Use trigraph map to
10076         speed trigraph conversion.
10077         (_cpp_init_input_buffer): Initialize trigraph map.
10078
10079 2000-03-27  Alan Modra  <alan@linuxcare.com.au>
10080
10081         * config/i386/i386.c (output_387_binary_op): Correct intel
10082         mode assembly output, and add spaces after commas in AT&T
10083         output.  Correct Unixware assembler comment.  Document input
10084         constraints.  Comment fp operations.  Reduce profligate buffer
10085         size.  Remove extraneous abort.  Localize temp var.
10086         (SYSV386_COMPAT): Define.  Add !SYSV386_COMPAT code.
10087         (output_fix_trunc): Add spaces after commas in assembly output.
10088
10089 2000-03-27  Richard Henderson  <rth@cygnus.com>
10090
10091         * i386-protos.h (ix86_match_ccmode): Declare.
10092         * i386.c (ix86_match_ccmode): New.
10093         (ix86_expand_fp_compare): Update for pattern renames.
10094         (ix86_expand_strlensi_unroll_1): Likewise.
10095         * i386.h (EXTRA_CC_MODES): Add CCZ.
10096         (SELECT_CC_MODE): Use it for EQ/NE zero.
10097         * i386.md (cmpsi_ccz_1): New.
10098         (cmpqi_ccz_1): New.
10099         (*testsi_ccz_1): New.
10100         (testqi_ccz_1): New.
10101         (cmpsi_ccno_1): Rename from cmpsi_0.
10102         (testsi_ccno_1): Rename from testsi_1.
10103         (testqi_ccno_1): Rename from testqi_1.
10104         (*testqi_ext_ccz_0): Rename from testqi_ext_0.
10105         (testqi_ext_ccno_0): Rename from *testqi_ext_1.
10106         (*cmphi_0): Use ix86_match_ccmode.
10107         (*cmpqi_ext_2, *addsi_2, *addhi_2, *addqi_2): Likewise.
10108         (*subsi_2, *subhi_2, *subqi_2, *testhi_1): Likewise.
10109         (*testqi_ext_1, *testqi_ext_2, *testqi_ext_3): Likewise.
10110         (*andsi_2, *andhi_2, *andqi_2, *andqi_ext_0_cc): Likewise.
10111         (*iorsi_2, *iorhi_2, *iorqi_2): Likewise.
10112         (*xorsi_2, *xorhi_2, *xorqi_cc_1): Likewise.
10113         (*one_cmplsi2_2, *one_cmplhi2_2, *one_cmplqi2_2): Likewise.
10114         (*ashlsi3_cmpno, *ashlhi3_cmpno, *ashlqi3_cmpno): Likewise.
10115         (*ashrsi3_cmpno, *ashrhi3_cmpno, *ashrqi3_cmpno): Likewise.
10116         (*lshrsi3_cmpno, *lshrhi3_cmpno, *lshrqi3_cmpno): Likewise.
10117         (appropriate peepholes): Likewise.
10118         (*cmphi_1, *cmpqi_ccno_1, *cmpqi_1): Star out name.
10119         (*subsi_3, *subhi_3, *subqi_3): Remove.
10120         (*negdi2_1+1 splitter): Use CCZ for neg patterns.
10121         (*negsi2_cmp, *neghi2_cmp, *negqi2_cmp): Remove.
10122         (*negsi2_cmpz): Rename from *negsi2_cmpno, use CCZ.
10123         (*neghi2_cmpz, *negqi2_cmpz): Similarly.
10124         (x86_shift_adj_1): Use CCZ.
10125         (*dbra_ge+1, *dbra_ge+2, ffssi2, ffssi_1): Likewise.
10126
10127 2000-03-27  Stan Cox  <scox@cygnus.com>
10128
10129         * resource.h (mark_resource_type): New.
10130         * resource.c (find_dead_or_set_registers, mark_target_live_regs,
10131         find_free_register): Use mark_resource_type.
10132         (mark_set_resources): Change include_delayed_effects
10133         to mark_resource_type.
10134         * reorg.c (steal_delay_list_from_target, try_merge_delay_insns,
10135         redundant_insn, fill_simple_delay_slots, fill_slots_from_thread):
10136         Use mark_resource_type.
10137
10138 2000-03-27  Richard Henderson  <rth@cygnus.com>
10139
10140         * i386.md (call_pop_0, call_value_pop_0): New.
10141         (call_pop_1): Remove constraint from unused arg.  Support sibcalls.
10142         (call_value_pop_1): Likewise.
10143         (call_0, call_value_0): New.
10144         (call_1, call_value_1): Remove constraint from unused arg.
10145
10146 2000-03-27  Nick Clifton  <nickc@cygnus.com>
10147
10148         * invoke.texi (Spec Files): Document new spec % command created by
10149         Tom Tromey's recent patch.
10150
10151 2000-03-27  Jakub Jelinek  <jakub@redhat.com>
10152
10153         * libgcc2.h (MIN_UNITS_PER_WORD): Define to UNITS_PER_WORD
10154         if not defined.
10155
10156 Mon Mar 27 06:04:22 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10157
10158         * expr.c (expand_assignment): Fix typo in last change.
10159
10160         * libgcc2.h: Use MIN_UNITS_PER_WORD, not UNITS_PER_WORD.
10161
10162 Sun Mar 26 20:15:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10163
10164         * c-convert.c (convert): Return if output or input type is ERROR_MARK.
10165         * c-decl.c (duplicate_decls): Only look at DECL_BUILT_IN_NONANSI
10166         and DECL_INLINE if FUNCTION_DECL.
10167         (pushdecl, redeclaration_error_message): Likewise, for DECL_INLINE.
10168         (store_parm_decls): Check for type of PARM_DECL being ERROR_MARK.
10169         Use DECL_WEAK, not DECL_RESULT, to flag for already seen.
10170         (combine_parm_decls): Likewise.
10171         * ggc-common.c (gcc_mark_tree_children, case 'd'): Use DECL_RESULT_FLD.
10172         * print-tree.c (print_node): Likewise.
10173         Only test DECL_PACKED, DECL_INLINE, DECL_BIT_FIELD, and
10174         DECL_TRANSPARENT_UNION on proper decl types.
10175         Properly handly DECL_INCOMING_RTL and DECL_SAVED_INSNS.
10176         * stor-layout.c (layout_decl): Only check DECL_PACKED and
10177         DECL_BIT_FIELD of FIELD_DECL.
10178         * tree.h (DECL_RESULT_FLD): New macro.
10179
10180         * expr.c (expand_assignment): Add code to handle variable-sized
10181         BLKmode case.
10182
10183 2000-03-26  Richard Henderson  <rth@cygnus.com>
10184
10185         * calls.c (expand_call): Pass parms not original exp to
10186         optimize_tail_recursion.  Mind return value instead of looking
10187         for a barrier.
10188         * stmt.c (optimize_tail_recursion): Take parameter list, not entire
10189         call_expr.  Move checks for call_expr and current_function_decl ...
10190         (expand_return): ... here.
10191
10192 2000-03-26  Tom Tromey  <tromey@cygnus.com>
10193
10194         * gcc.c (handle_braces): Recognize `%{<S}' construct.
10195         (SWITCH_OK, SWITCH_FALSE, SWITCH_IGNORE, SWITCH_LIVE): New
10196         defines.
10197         (process_command): Use them.
10198         (check_live_switch): Likewise.
10199         (give_switch): Skip ignored switches.
10200
10201 2000-03-26  Jan Hubicka  <jh@suse.cz>
10202
10203         * jump.c (jump_optimize_1): Fix typo in elide optimizations
10204         for minimal jump pass test.
10205
10206 2000-03-26  Mark Mitchell  <mark@codesourcery.com>
10207
10208         * integrate.c (function_cannot_inline_p): Do inline functions that
10209         return `void'.
10210
10211 Sun Mar 26 11:37:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10212
10213         * stor-layout.c (layout_type, set_sizetype): early_type_list is
10214         now a list of TREE_LIST entries, not types.
10215         * tree.c (build_common_tree_nodes_2): Eliminate dupliate type sets.
10216
10217         * expmed.c (extract_bit_field): Ensure BITS_PER_WORD is signed in MAX.
10218         * config/arm/pe.c (arm_pe_return_in_memory): Use host_integerp and
10219         int_bit_position.
10220         * config/mips/mips.c (function_arg): Likewise; also remove cast
10221         and make variables unsigned or HOST_WIDE_INT and use tree_low_cst.
10222         (mips_function_value): Use int_byte_position and make HOST_WIDE_INT.
10223         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Offsets are unsigned.
10224         * config/mips/mips.h (BITS_PER_WORD, UNITS_PER_WORD): Cast to unsigned.
10225         (UNITS_PER_FPREG, INT_TYPE_SIZE, LONG_TYPE_SIZE): Likewise.
10226         (POINTER_SIZE, POINTER_BOUNDARY,PARM_BOUNDARY): Likewise.
10227         (GP_REG_P, FP_REG_P, MD_REG_P, ST_REG_P): Ensure subtraction signed.
10228         (struct mips_arg): arg_number, arg_words, fp_arg_words, and
10229         num_adjusts now unsigned.
10230         (FUNCTION_ARG_BOUNDARY): Remove unneeded cast.
10231         * config/sparc/sparc.c (struct function_arg_record_value_parms):
10232         NREGS now unsigned.
10233         (function_arg_record_value_1): STARTBITPOS arg now HOST_WIDE_INT
10234         as is BITPOS variable; use host_integerp and int_bit_position.
10235         (function_arg_record_value_2): Likewise.
10236         (function_arg_record_value_3): Arg BITPOS now HOST_WIDE_INT.
10237         Variable REGNO now unsigned.
10238         (function_arg_record_value): NREGS now unsigned.
10239
10240 2000-03-26  Bernd Schmidt  <bernds@cygnus.co.uk>
10241
10242         * jump.c (mark_all_labels): Handle CALL_PLACEHOLDERs.
10243
10244 Sat Mar 25 09:12:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10245
10246         * Rework fields used to describe positions of bitfields and
10247         modify sizes to be unsigned and use HOST_WIDE_INT.
10248         * alias.c (reg_known_value_size): Now unsigned.
10249         * c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position.
10250         (really_start_incremental_init): Use bitsize_zero_node.
10251         (push_init_level, pop_init_level, output_init_element): Likewise.
10252         Use bitsize_unit_node and bitsize_one_node.
10253         (output_pending_init_elements, process_init_element): Likewise.
10254         * combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned.
10255         (make_extraction): Position and length HOST_WIDE_INT and unsigned
10256         HOST_WIDE_INT, respectively.
10257         (get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT.
10258         (num_sign_bit_copies): Returns unsigned.
10259         BITWIDTH now unsigned; rework arithmetic.
10260         Remove recursive call from arg to MAX.
10261         (combine_instructions, init_reg_last_arrays): NREGS now unsigned.
10262         (setup_incoming_promotions, can_combine_p, try_combine, simplify_set):
10263         REGNO now unsigned.
10264         (set_nonzero_bit_and_sign_copies): NUM now unsigned.
10265         (find_split_point, expand_compound_operation, make_extraction): LEN
10266         now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT.
10267         (make_field_assignment): Likewise.
10268         (combine_simplify_rtx): Add cast.
10269         (expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic.
10270         (force_to_mode): WIDTH now unsigned; add cast.
10271         (if_then_else_cond): SIZE now unsigned.
10272         (nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned.
10273         (extended_count): Now returns unsigned.
10274         (simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT.
10275         Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned.
10276         (simplify_comparison): MODE_WIDTH now unsigned.
10277         (update_table_tick): REGNO and ENDREGNO now unsigned; new var R.
10278         (mark_used_regs_combine): Likewise; rework arithmetic.
10279         (record_value_for_reg): REGNO, ENDREGNO, and I now unsigned.
10280         (record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise.
10281         (record_promoted_value): REGNO now unsigned.
10282         (get_last_value_validate): REGNO, ENDREGNO, and J now unsigned.
10283         (get_last_value): REGNO now unsigned.
10284         (use_crosses_set_p): REGNO and ENDREGNO now unsigned.
10285         (reg_dead_regno, reg_dead_endregno): Now unsigned.
10286         (remove_death): Arg REGNO now unsigned.
10287         (move_deaths):  REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned.
10288         (reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO
10289         now unsigned.
10290         * convert.c (convert_to_integer): INPREC and OUTPREC now unsigned.
10291         * cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned.
10292         (struct cse_reg_info): REGNO now unsigned.
10293         (cached_regno): Now unsigned.
10294         (REGNO_QTY_VALID_P): Add cast.
10295         (make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned.
10296         (remove_invalid_regs): Likewise.
10297         (remove_invalid_subreg_refs): Likewise; arg WORD also unsigned
10298         as are variables END and I.
10299         (get_cse_reg_info, insert): Likewise.
10300         (mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned.
10301         (canon_hash): Likewise.
10302         (insert_regs, lookup_for_remove): REGNO now unsigned.
10303         (invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned.
10304         New variable RN.
10305         * dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0.
10306         * dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast.
10307         * emit-rtl.c (subreg_realpart_p): Add cast.
10308         (operand_subword): Arg I is now unsigned as is var PARTWORDS.
10309         (operand_subword_force): Arg I is now unsigned.
10310         * except.c (eh_regs): Variable I is now unsigned.
10311         * explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT.
10312         * expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT;
10313         length is unsigned HOST_WIDE_INT; likewise for internal variables.
10314         (store_split_bit_field, extract_fixed_bit_field): Likewise.
10315         (extract_split_bit_field, store_bit_field, extract_bit_field):
10316         Likewise.
10317         * expr.c (store_constructor_fields, store_constructor, store_field):
10318         Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT.
10319         (expand_assignment, expand_expr, expand_expr_unaligned): Likewise.
10320         (do_jump): Likewise.
10321         (move_by_pieces, move_by_pieces_ninsns, clear_by_pieces):
10322         MAX_SIZE is now unsigned.
10323         (emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned.
10324         (emit_group_store): Likewise.
10325         (emit_move_insn): I now unsigned.
10326         (store_constructor): Use host_integerp, tree_low_cst, and
10327         bitsize_unit_node.
10328         (get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT.
10329         Rework all calculations to use trees and new fields.
10330         * expr.h (promoted_input_arg): Regno now unsigned.
10331         (store_bit_field, extract_bit_field): Adjust types of pos and size.
10332         (mark_seen_cases): Arg is HOST_WIDE_INT.
10333         * flow.c (verify_wide_reg_1): REGNO now unsigned.
10334         * fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT;
10335         precisions and alignments are unsigned.
10336         (optimize_bit_field_compare, fold_truthop): Likewise.
10337         (int_const_binop): Adjust threshold for size_int_type_wide call.
10338         (fold_convert): Likewise.
10339         (size_int_type_wide): Make table larger and fix thinko that only
10340         had half of table used.
10341         (all_ones_mask_p, fold): Precisions are unsigned.
10342         * function.c (put_reg_info_stack): REGNO is unsigned.
10343         (instantiate_decl): Size is HOST_WIDE_INT.
10344         (instantiate_virtual_regs): I is unsigned.
10345         (assign_parms): REGNO, REGNOI, and REGNOR are unsigned.
10346         (promoted_input_arg): REGNO is unsigned.
10347         * function.h (struct function): x_max_parm_reg is now unsigned.
10348         * gcse.c (max_gcse_regno): Now unsigned.
10349         (struct null_pointer_info): min_reg and max_reg now unsigned.
10350         (lookup_set, next_set): REGNO arg now unsigned.
10351         (compute_hash_table): REGNO and I now unsigned.
10352         (handle_avail_expr): regnum_for_replacing now unsigned.
10353         (cprop_insn): REGNO now unsigned.
10354         (delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned.
10355         * ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case.
10356         * global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned.
10357         * hard-reg-set.h (reg_class_size): Now unsigned.
10358         * integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO.
10359         * jump.c (mark_modified_reg): I now unsigned; add cast.
10360         (rtx_equal_for_thread_p): Add cast.
10361         * loop.c (max_reg_before_loop): Now unsigned.
10362         (struct_movable): REGNO now unsigned.
10363         (try_copy_prop): REGNO arg unsigned.
10364         (regs_match_p): XN and YN now unsigned.
10365         (consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned.
10366         (strength_reduce): Likewise; NREGS also unsigned.
10367         (first_increment_giv, last_increment_giv unsigned): Now unsigned.
10368         * loop.h (struct iv_class): REGNO now unsigned.
10369         (max_reg_before_loop, first_increment_giv, last_increment_giv):
10370         Now unsigned.
10371         * machmode.h (mode_size, mode_unit_size): Now unsigned.
10372         (mode_for_size, smallest_mode_for_size): Pass size as unsigned.
10373         * optabs.c (expand_binop): I and NWORDS now unsigned.
10374         (expand_unop): I now unsigned.
10375         * print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do
10376         print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET.
10377         * real.c (significand_size): Now returns unsigned.
10378         * real.h (significand_size): Likewise.
10379         * regclass.c (reg_class_size): Now unsigned.
10380         (choose_hard_reg_mode): Both operands now unsigned.
10381         (record_reg_classes): REGNO and NR now unsigned.
10382         (reg_scan): NREGS now unsigned.
10383         (reg_scan_update): old_max_regno now unsigned.
10384         (reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned.
10385         * reload.c (find_valid_class): BEST_SIZE now unsigned.
10386         (find_dummy_reload): REGNO, NWORDS, and I now unsigned.
10387         (hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned.
10388         Likewise for variable R.
10389         (refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned,
10390         as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R.
10391         (find_equiv_reg): Add casts.
10392         (regno_clobbered_p): Arg REGNO now unsigned.
10393         * reload.h (struct reload): NREGS now unsigned.
10394         (refers_to_regno_for_reload_p): Regno args are unsigned.
10395         (regno_clobbered_p): Likewise.
10396         * reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned.
10397         (compute_use_by_pseudos): REGNO now unsigned.
10398         (find_reg): I and J now unsigned, new variable K, and change loop
10399         variables accordingly; THIS_NREGS now unsigned.
10400         (alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned.
10401         (spill_hard_reg): REGNO arg now unsigned; add casts.
10402         (forget_old_reloads_1): REGNO, NR, and I now unsigned.
10403         (mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned.
10404         (clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO,
10405         END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned.
10406         (reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned.
10407         (choose_reload_regs): MAX_GROUP_SIZE now unsigned.
10408         (emit_reload_insns): REGNO now unsigned.
10409         (reload_cse_move2add): Add cast.
10410         (move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO
10411         and rework loop.
10412         * resource.c (mark_referenced_resources, mark_set_resources): New
10413         variable R; REGNO and LAST_REGNO now unsigned.
10414         (mark_target_live_regs): J and REGNO now unsigned.
10415         * rtl.c (mode_size, mode_unit_size): Now unsigned.
10416         * rtl.h (union rtunion_def): New field rtuint.
10417         (XCUINT): New macro.
10418         (ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT.
10419         (operand_subword, operand_subword_force): Word number is unsigned.
10420         (choose_hard_reg_mode): Operands are unsigned.
10421         (refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned.
10422         (find_regno_note, find_regno_fusage, replace_regs): Likewise.
10423         (regno_use_in, combine_instructions, remove_death): Likewise.
10424         (reg_scan, reg_scan_update): Likewise.
10425         (extended_count): Return is unsigned.
10426         * rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I,
10427         INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO.
10428         (reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned.
10429         (reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned.
10430         (reg_reg_last_1): FIRS and LAST now unsigned.
10431         (dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned.
10432         (dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO
10433         now unsigned.
10434         (find_regno_note, regno_use_in): Arg REGNO now unsigned.
10435         (find_regno_fusage): Likewise; also var REGNOTE now unsigned.
10436         (find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned.
10437         (replace_regs): Arg NREGS now unsigned.
10438         * sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0.
10439         * simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned.
10440         (simplify_binary_operation): Likewise.
10441         (cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and
10442         THIS_LAST now unsigned.
10443         (cselib_record_set): Add cast.
10444         * ssa.c (ssa_max_reg_num): Now unsigned.
10445         (rename_block): REGNO now unsigned.
10446         * stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT;
10447         sizes now unsigned.
10448         (all_cases_count): Just return -1 not -2.
10449         COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT.
10450         Rework tests to use trees whenever possible.
10451         Use host_integerp and tree_low_cst.
10452         (mark_seen_cases): COUNT arg now HOST_WIDE_INT;
10453         Likewise variable NEXT_NODE_OFFSET; XLO now unsigned.
10454         (check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT.
10455         * stor-layout.c (mode_for_size): SIZE arg now unsigned.
10456         (smallest_mode_for_size): Likewise.
10457         (layout_decl): Simplify handing of a specified DECL_SIZE_UNIT.
10458         KNOWN_ALIGN is now an alignment, so simplify code.
10459         Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type.
10460         (start_record_layout): Renamed from new_record_layout_info.
10461         Update to new fields.
10462         (debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far):
10463         New functions.
10464         (place_union_field): Renamed from layout_union_field.
10465         Update to use new fields in rli.
10466         (place_field): Renamed from layout_field.
10467         Major rewrite to use new fields in rli; pass alignment to layout_decl.
10468         (finalize_record_size): Rework to use new fields in rli and handle
10469         union.
10470         (compute_record_mode): Rework to simplify and to use new DECL fields.
10471         (finalize_type_size): Make rounding more consistent.
10472         (finish_union_layout): Deleted.
10473         (layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either.
10474         (layout_type, case RECORD_TYPE): Call new function names.
10475         (initialize_sizetypes): Set TYPE_IS_SIZETYPE.
10476         (set_sizetype): Set TYPE_IS_SIZETYPE earlier.
10477         (get_best_mode): UNIT is now unsigned; remove casts.
10478         * tree.c (bit_position): Compute from new fields.
10479         (byte_position, int_byte_position): New functions.
10480         (print_type_hash_statistics): Cast to remove warning.
10481         (build_range_type): Use host_integerp and tree_low_cst to try to hash.
10482         (build_index_type): Likewise; make subtype of sizetype.
10483         (build_index_2_type): Pass sizetype to build_range_type.
10484         (build_common_tree_nodes): Use size_int and bitsize_int to
10485         initialize nodes; add bitsize_{zero,one,unit}_node.
10486         * tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK.
10487         (DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise.
10488         (DECL_PACKED, DECL_BIT_FIELD): Likewise.
10489         (DECL_FIELD_BITPOS): Deleted.
10490         (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields.
10491         (DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK.
10492         (DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise.
10493         (DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise.
10494         (DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise.
10495         (DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise.
10496         (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise.
10497         (DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK.
10498         (DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK.
10499         (DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise.
10500         (DECL_ALIGN): Adjust to new field in union.
10501         (DECL_OFFSET_ALIGN): New field.
10502         (DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK.
10503         (DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK.
10504         (union tree_decl): Add struct for both aligns.
10505         (enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}.
10506         (bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added.
10507         (struct record_layout_info): Rework fields to have offset
10508         alignment and byte and bit position.
10509         (start_record_layout, place_field): Renamed from old names.
10510         (rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls.
10511         (byte_position, int_byte_position): Likewise.
10512         (get_inner_reference): Change types of position and length.
10513         * unroll.c (unroll_loop): New variable R; use for some loops.
10514         MAX_LOCAL_REGNUM and MAXREGNUM now unsigned.
10515         (calculate_giv_inc): Arg REGNO now unsigned.
10516         (copy_loop_body): REGNO and SRC_REGNO now unsigned.
10517         * varasm.c (assemble_variable): Clean up handling of size using
10518         host_integerp and tree_low_cst.
10519         (decode_addr_const): Use byte, not bit, position.
10520         (output_constructor): bitpos and offsets are HOST_WIDE_INT;
10521         use tree_low_cst and int_bit_position.
10522         * objc/objc-act.c (build_ivar_list_initializer): Use byte_position.
10523
10524 Fri Mar 24 20:13:49 2000  Jason Eckhardt  <jle@cygnus.com>
10525
10526         * bb-reorder.c (REORDER_MOVED_BLOCK_END): Removed.
10527         (reorder_block_def): New members eff_head and eff_end.
10528         (REORDER_BLOCK_EFF_HEAD, REORDER_BLOCK_EFF_END): New macros.
10529         (verify_insn_chain): New function.
10530         (skip_insns_between_block): Add code to skip deleted insns.
10531         Check for note before using.
10532         (chain_reorder_blocks): Replace calls to skip_insns_between_block
10533         with references to REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END.
10534         Check for note before using.
10535         (make_reorder_chain): Use INTVAL rather than XINT to get REG_BR_PROB.
10536         (fixup_reorder_chain): Restructure, clean up, defect removal.
10537         (reorder_basic_blocks): Remove last_insn and references to it.
10538         Moved insn chain verification code into a new function (see above).
10539         Delete defective code that sets last insn.
10540         Initialize REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for
10541         all blocks.
10542
10543 2000-03-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10544
10545         * config/c4x/c4x.h (CPP_SPEC): Remove erroneous space.
10546
10547 2000-03-24  Richard Henderson  <rth@cygnus.com>
10548
10549         * tree.c (lang_safe_for_unsave): Remove.
10550         (unsafe_for_reeval): Transmute and rename from safe_for_unsave,
10551         allowing for two levels of unsafeness.  Remove lang hook.
10552         * tree.h: Update declarations.
10553         * calls.c (expand_call): Rename safe_for_reeval to try_tail_call.
10554         Create temporary VAR_DECLs to protect very unsafe_for_reeval trees.
10555         Always fail sibcalls when there are pending cleanups.
10556
10557 2000-03-24  Geoff Keating  <geoffk@cygnus.com>
10558
10559         * flow.c (propagate_block): When we delete an ADDR_VEC,
10560         also delete the BARRIER following it if there is one.
10561
10562 2000-03-24  Richard Henderson  <rth@cygnus.com>
10563
10564         * builtins.c (expand_builtin_bzero): Convert `length' argument
10565         to sizetype.
10566
10567 2000-03-24  Jakub Jelinek  <jakub@redhat.com>
10568
10569         * sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for
10570         comparison if regno's are equal.
10571         * calls.c (initialize_argument_informat): Add ecf_flags argument.
10572         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
10573         (expand_call): Update caller.
10574         Avoid making a sibling call if argument size of the callee is larger
10575         than argument size of the caller.
10576         Call hard_function_value with outgoing set if in sibcall pass.
10577         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
10578
10579         * final.c (permitted_reg_in_leaf_functions, only_leaf_regs_used):
10580         Change LEAF_REGISTERS from an array initializer to actual array
10581         identifier. Move static global variable into the function.
10582         (leaf_function_p): Allow SIBLING_CALL_P calls even outside of
10583         sequences for leaf functions.
10584         * global.c (global_alloc): Likewise.
10585         * tm.texi (LEAF_REGISTERS): Update documentation.
10586
10587         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Remove the ugly
10588         TARGET_FLAT leaf disabling hack.
10589         (LEAF_REGISTERS): Changed from an array initializer to actual array
10590         identifier to avoid duplication and remove the above hack.
10591         (FUNCTION_OK_FOR_SIBCALL): Define.
10592         * config/sparc/sparc.md (sibcall): New attr type. Use it almost
10593         always like call attribute.
10594         (eligible_for_sibcall_delay): New attribute.
10595         (sibcall): New delay type.
10596         (sibcall, sibcall_value, sibcall_epilogue): New expands.
10597         (sibcall_symbolic_sp32, sibcall_symbolic_sp64,
10598         sibcall_value_symbolic_sp32, sibcall_value_symbolic_sp64): New insns.
10599         * config/sparc/sparc.c (sparc_leaf_regs): New array.
10600         (eligible_for_sibcall_delay, output_restore_regs, output_sibcall):
10601         New functions.
10602         (output_function_epilogue): Move part of the code into
10603         output_restore_regs.
10604         (ultra_code_from_mask, ultrasparc_sched_reorder): Handle
10605         TYPE_SIBCALL.
10606         * sparc-protos.h (output_sibcall, eligible_for_sibcall_delay): New
10607         prototypes.
10608
10609         * config/sparc/sparc.h (REVERSIBLE_CC_MODE): Revert Jan, 25 change
10610         until infrastructure is finished.
10611
10612 Fri Mar 24 13:49:45 2000  Jeffrey A Law  (law@cygnus.com)
10613
10614         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns here.
10615         (save_parm_insns): Not here.
10616
10617 2000-03-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10618
10619         * builtins.c (expand_builtin_bzero): New function.
10620         (expand_builtin): Handle bzero.
10621
10622         * builtins.def: Add BUILT_IN_BZERO.
10623
10624         * c-common.c (c_common_nodes_and_builtins): Provide builtin
10625         prototype & function for bzero.
10626
10627 2000-03-23  Michael Meissner  <meissner@redhat.com>
10628
10629         * config/alpha/alpha.md (TF floating point insns): Undo 2000-03-21
10630         change adding TARGET_FP to the TF floating point insns, except for
10631         trunctfsf2, which generates direct calls to truncdfsf2.
10632
10633 2000-03-23  Geoff Keating  <geoffk@cygnus.com>
10634
10635         * config/rs6000/rs6000.h (ARG_POINTER_CFA_OFFSET): New definition,
10636         try to protect against middle-end changes that break binary
10637         compatibility.
10638         (DWARF_FRAME_REGISTERS): New definition, likewise for backend.
10639
10640 2000-03-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10641
10642         * config/c4x/c4x.md (load_immed_address):  Add DP reg clobber.
10643
10644 Thu Mar 23 17:10:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10645
10646         * calls.c (expand_call): If TARGET is passed by reference and
10647         is readonly, write a CLOBBER.
10648
10649 2000-03-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10650
10651         * builtins.c (expand_builtin): Handle bcmp.
10652
10653         * builtins.def: Add BUILT_IN_BCMP.
10654
10655         * c-common.c (c_common_nodes_and_builtins): Provide builtin
10656         prototype & function for bcmp.
10657
10658 Thu Mar 23 11:34:39 2000  Jim Wilson  <wilson@cygnus.com>
10659
10660         * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC): Move case 6...
10661         (rtx_needs_barrier, case UNSPEC_VOLATILE): to here.
10662         * config/ia64/ia64.md (pr_restore): Change UNSPEC to UNSPEC_VOLATILE.
10663
10664 Thu Mar 23 16:04:40 2000  Andrew Haley  <aph@cygnus.com>
10665
10666         * config/mips/mips.md (movdf_internal1a): Delete (set 'f', 'F')
10667         alternative when using -fp64 -gp32.
10668
10669 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
10670
10671         * config/rs6000/rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define.
10672         * config/alpha/alpha.h (DWARF_FRAME_RETURN_COLUMN): Define.
10673         * config/sparc/sparc.h (DWARF_FRAME_RETURN_COLUMN): Define.
10674
10675         * frame.h (frame_state): Revert last change.
10676         * frame.c (execute_cfa_insn): Just don't record the save of a CFA reg.
10677         * libgcc2.c (throw_helper): Revert last change.
10678
10679 2000-03-22  Richard Henderson  <rth@cygnus.com>
10680
10681         * stmt.c (expand_asm_operands): Don't promote the temporary.
10682
10683 2000-03-22  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
10684
10685         * builtin.c (get_pointer_alignment): Use DECL_P and TYPE_P macros.
10686         * c-common.c (decl_attributes,check_format_info,truthvalue_conversion,
10687           c_get_alias_set): Likewise.
10688         * c-decl.c (duplicate_decls): Likewise.
10689         * c-typeck.c (default_conversion,build_unary_op): Likewise.
10690         * calls.c (initialize_argument_information): Likewise.
10691         * dwarf2out.c (decl_class_context,add_abstract_origin_attribute):
10692         Likewise.
10693         * dwarfout.c (decl_class_context,output_type): Likewise.
10694         * expr.c (get_inner_reference): Likewise.
10695         * fold-const.c (simple_operand_p,fold): Likewise.
10696         * function.c (aggregate_value_p): Likewise.
10697         * stmt.c (expand_asm_operands): Likewise.
10698         * varasm.c (named_section): Likewise.
10699
10700 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
10701
10702         Implement dwarf2 exception handling for the ARM.
10703         * config/arm/arm.h (INCOMING_RETURN_ADDR_RTX): Define.
10704         (DWARF_FRAME_RETURN_COLUMN): Define.
10705         * config/arm/arm.c (emit_multi_reg_push): Return rtx.  Attach
10706         REG_FRAME_RELATED_EXPR note.
10707         (emit_sfm): Likewise.
10708         (arm_expand_prologue): Set RTX_FRAME_RELATED_P on everything.
10709         * dwarf2out.c (reg_save): Handle saving a register to itself.
10710         (dwarf2out_frame_debug_expr): Handle an intermediate cfa reg.
10711         * except.c (eh_regs): Don't use the static chain reg if it's
10712         callee-saved.
10713         * frame.h (frame_state): Add cfa_saved field.
10714         * frame.c (execute_cfa_insn): Set it.
10715         * libgcc2.c (throw_helper): Don't adjust sp if it's restored in
10716         the epilogue.
10717         * function.c (ARG_POINTER_CFA_OFFSET): Default to FIRST_PARM_OFFSET.
10718         Now takes a parm.
10719         (instantiate_virtual_regs): Adjust.
10720         * tm.texi: Adjust.
10721         * config/m68k/m68k.h (ARG_POINTER_CFA_OFFSET): Don't define.
10722         * config/ns32k/ns32k.h (ARG_POINTER_CFA_OFFSET): Don't define.
10723         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): Take a parm.
10724
10725         * dwarf2out.c (reg_number): Refer to FIRST_PSEUDO_REGISTER.
10726         (initial_return_save): Use DWARF_FRAME_REGNUM, not reg_number.
10727
10728 2000-03-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10729
10730         * builtins.def: New file.
10731
10732         * Makefile.in (TREE_H): Depend on builtins.def.
10733
10734         * builtins.c (built_in_names): Use builtins.def.
10735
10736         * tree.h (built_in_function): Likewise.
10737
10738 2000-03-22  Mark Mitchell  <mark@codesourcery.com>
10739
10740         * tree.c (size_in_bytes): Return size_zero_node, not
10741         integer_zero_node.
10742
10743 2000-03-22  Geoff Keating  <geoffk@cygnus.com>
10744
10745         * config/fp-bit.c (pack_d): Correct the case when a denormal
10746         is rounded up and stops being denormal.
10747
10748 2000-03-21  Richard Henderson  <rth@cygnus.com>
10749
10750         * config/alpha/alpha.c (function_arg): Check for void_type_node
10751         before using MUST_PASS_IN_STACK.
10752
10753 2000-03-21  Stephane Carrez  <stcarrez@worldnet.fr>
10754
10755         * regmove.c (combine_stack_adjustments_for_block): Check that
10756         the stack pointer is a valid memory address.
10757
10758 Wed Mar 22 11:44:50 MET 2000  Jan Hubicka  <jh@suse.cz>
10759
10760         * calls.c: re-install Mar 16 emit_library_call merge.
10761
10762 2000-03-21  Jakub Jelinek  <jakub@redhat.com>
10763
10764         * config/sparc/sparc.c (mem_min_alignment): If not optimizing,
10765         we cannot be sure that if reload_completed base register will
10766         be properly aligned.
10767
10768 2000-03-21  Richard Henderson  <rth@cygnus.com>
10769
10770         * flow.c (delete_block): Fix typo last change.
10771
10772 2000-03-21  Mark Mitchell  <mark@codesourcery.com>
10773
10774         * c-common.c (c_expand_expr_stmt): Use COMPLETE_TYPE_OR_VOID_P,
10775         not COMPLETE_TYPE_P, to check the type of the expression.
10776
10777 2000-03-21  Michael Meissner  <meissner@redhat.com>
10778
10779         * config/alpha/alpha.md (floating point insns): Add TARGET_FP to
10780         all floating point insns that just tested the macro
10781         TARGET_HAS_XFLOATING_LIBS.
10782         (movsf/movdf recognizers): Add separate insns if -mno-fp-regs is
10783         used to only use the gprs.
10784
10785 2000-03-21  Nathan Sidwell  <nathan@codesourcery.com>
10786
10787         * tree.h (COMPLETE_TYPE_P): New macro.
10788         (COMPLETE_OR_VOID_TYPE_P): New macro.
10789         (COMPLETE_OR_UNBOUND_ARRAY_TYPE_P): New macro.
10790         * stor-layout.c (layout_type, case VOID_TYPE): Don't set TYPE_SIZE.
10791         * c-aux-info.c (gen_type): Use them.
10792         * c-common.c (c_expand_expr_stmt): Likewise.
10793         * c-decl.c (poplevel, pushdecl, start_decl, finish_decl,
10794         grokdeclarator, grokparms, finish_struct, start_function,
10795         store_parm_decls, combine_parm_decls): Likewise.
10796         * c-parse.y (cast_expr): Likewise.
10797         * c-typeck.c (require_complete_type, c_sizeof, c_sizeof_nowarn,
10798         c_size_in_bytes, c_alignof, build_component_ref,
10799         build_indirect_ref, build_array_ref, convert_arguments,
10800         build_binary_op, pointer_diff, build_unary_op, digest_init: Likewise.
10801         * calls.c (initialize_argument_information): Likewise.
10802         * convert.c (convert_to_integer): Likewise.
10803         * dbxout.c (dbxout_typedefs, dbxout_type, dbxout_symbol): Likewise.
10804         * dwarfout.c (location_or_const_value_attribute,
10805         output_enumeration_type_die, output_structure_type_die,
10806         output_union_type_die, output_type): Likewise.
10807         * expr.c (safe_from_p, expand_expr): Likewise.
10808         * function.c (assign_parms): Likewise.
10809         * sdbout.c (sdbout_symbol, sdbout_one_type): Likewise.
10810         * tree.c (build_array_type, build_function_type,
10811         build_method_type, build_offset_type, build_complex_type): Likewise.
10812         * c-parse.c, c-parse.h: Regenerated.
10813
10814 2000-03-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10815
10816         * config/c4x/rtems.h: Include config/rtems.h.
10817
10818 Tue Mar 21 09:24:00 2000  Denis Chertykov  <denisc@overta.ru>
10819
10820         * config/avr/avr.c (encode_section_info): sets SYMBOL_REF_FLAG if
10821         decl is a FUNCTION_DECL
10822
10823 Mon Mar 20 19:53:53 2000  Jim Wilson  <wilson@cygnus.com>
10824
10825         * config/ia64/ia64.c (ia64_expand_prologue): Don't abort if leaf
10826         function uses output registers.  Don't save RP for leaf functions.
10827         Do save RP even if no epilogue.
10828         * config/ia64/ia64.h (FIXED_REGISTERS): Unmark in/out registers.
10829         (CALL_USED_REGISTERS): Unmark in registers.
10830         (REG_ALLOC_ORDER): Move out regs up, to near the top.  Move in regs up,
10831         to near the middle.
10832
10833 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
10834
10835         * config/rs6000/rs6000.md (bunordered): New expander.
10836         (bordered): New expander.
10837         (buneq): New expander.
10838         (bunge): New expander.
10839         (bungt): New expander.
10840         (bunle): New expander.
10841         (bunlt): New expander.
10842         (bltgt): New expander.
10843
10844         * config/rs6000/rs6000.c (ccr_bit): Handle unordered comparisons.
10845         (ccr_bit_negated_p): New function.
10846         (print_operand): For %C, generate appropriate cror for UNEQ,
10847         UNLT, UNGT, and LTGT.  For %T and %t, use ccr_bit_negated_p.
10848
10849 2000-03-20  Andreas Jaeger  <aj@suse.de>
10850
10851         * sdbout.c (sdbout_one_type): Add braces to avoid "ambigous else"
10852         warning.
10853
10854         * tree.h (safe_for_unsave): Prototype.
10855
10856 2000-03-20  Richard Henderson  <rth@cygnus.com>
10857
10858         * regmove.c (stack_memref_p): Fix typo, reorg for readability.
10859         (combine_stack_adjustments_for_block): Don't allow sp references
10860         in the side of a set we're not fixing up.
10861         * toplev.c (rest_of_compilation): Run combine_stack_adjustments
10862         after life_analysis.
10863
10864 2000-03-20  Richard Henderson  <rth@cygnus.com>
10865
10866         * calls.c (expand_call): Don't bother generating tail call
10867         sequences if there are pending cleanups.  Use
10868         expand_start_target_temps/expand_end_target_temps to elide
10869         cleanups created during sibcall expansion.
10870
10871 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
10872
10873         * configure.in: Set $IFS to a value if it doesn't already have one
10874         in the --enable-checking handling.
10875         * configure: Regenerate.
10876
10877 2000-03-20  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
10878
10879         * c-parse.in (SAVE_WARN_FLAGS): Use size_int.
10880         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
10881         Regenerated.
10882
10883 Mon Mar 20 11:43:15 MET 2000  Jan Hubicka  <jh@suse.cz>
10884
10885         * jump.c (delete_noop_moves): Remove code attempting to
10886         combine stack adjustments.
10887
10888 2000-03-19  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
10889
10890         * emit-rtl.c (push_to_full_sequence, end_full_sequence): New functions.
10891         * except.c (emit_cleanup_handler): Use them.
10892         (expand_end_all_catch): Likewise.
10893         * function.c (fixup_var_refs): Likewise.
10894         (expand_function_end): Clear catch_clauses_last.
10895         * rtl.h (push_to_full_sequence, end_full_sequence): Declare.
10896         * except.h (struct eh_status): New field x_catch_clauses_last.
10897         (catch_clauses_last): New define.
10898
10899         * Makefile.in (tree.o): Depend on HASHTAB_H.
10900         * tree.c: Include hashtab.h.
10901         (struct type_hash): Remove next field.
10902         (TYPE_HASH_SIZE): Remove.
10903         (TYPE_HASH_INITIAL_SIZE): New define.
10904         (type_hash_table): Change type to htab_t.
10905         (type_hash_eq, type_hash_hash, print_type_hash_statistics,
10906         mark_hash_entry): New functions.
10907         (init_obstacks): Allocate type hash.
10908         (type_hash_lookup): Use htab functions.
10909         (type_hash_add, mark_type_hash): Likewise.
10910         (dump_tree_statistics): Call print_type_hash_statistics.
10911
10912 2000-03-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10913
10914         * rs6000/t-aix41: New file.
10915
10916         * configure.in ({rs6000,powerpc}-ibm-aix4.[12]*): Use it.
10917
10918 Sun Mar 19 13:27:30 2000  Hans-Peter Nilsson  <hp@axis.com>
10919
10920         * tm.texi (Driver): Fix typos and tweak entry for
10921         INCLUDE_DEFAULTS.
10922         Move misplaced STRUCT_FORCE_BLK entry ...
10923         (Storage Layout): ... to here.
10924         (Run-time Target): Recommend having TARGET_MASK_... helper macros.
10925
10926 2000-03-19  Richard Henderson  <rth@cygnus.com>
10927
10928         * flow.c (delete_block): Delete the addr_vec along with the block.
10929         (flow_delete_insn): Decrement LABEL_NUSES when deleting insns that
10930         reference labels.
10931
10932         * fold-const.c (extract_muldiv): Apply type check for defined
10933         overflow to multiply as well as divide.
10934
10935         * stor-layout.c (layout_decl): Don't abort on any zero sized decl.
10936
10937 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
10938
10939         * emit-rtl.c (remove_unncessary_notes): Check that all
10940         NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes have an
10941         associated NOTE_BLOCK.
10942         * function.h (identify_blocks): Update comments.
10943         (reorder_blocks): Declare.
10944         * function.c (identify_blocks): Don't take paramters.
10945         (reorder_blocks): Don't take parameters.
10946         * loop.h (find_loop_tree_blocks): Remove.
10947         (unroll_block_trees): Likewise.
10948         * loop.c (loop_optimize): Don't call find_loop_tree_blocks.  Use
10949         reorder_blocks instead of unroll_block_trees.h
10950         * sibcall.c (optimize_sibling_and_tail_recursive_calls): Likewise.
10951         * stmt.c (find_loop_tree_blocks): Remove.
10952         (unroll_block_trees): Likewise.
10953         * toplev.c (rest_of_compilation): Don't call find_loop_tree_blocks
10954         in whole-function mode.
10955         * tree.h (reorder_blocks): Remove declaration.
10956
10957         * expr.c: Include intl.h.
10958         * Makefile.in (expr.o): Depend on intl.h.
10959
10960 2000-03-18  Richard Henderson  <rth@cygnus.com>
10961
10962         * expr.c (emit_move_insn_1): Clarify cannot_inline message.
10963
10964 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
10965
10966         * tree.h (tree_index): Remove enumerals for integer types.
10967         (integer_type_kind): New type.
10968         (integer_types): New variable.
10969         (char_type_node): Adjust.
10970         (signed_char_type_node): Likewise.
10971         (unsigned_char_type_node): Likewise.
10972         (short_integer_type_node): Likewise.
10973         (short_unsigned_type_node): Likewise.
10974         (integer_type_node): Likewise.
10975         (unsigned_type_node): Likewise.
10976         (long_integer_type_node): Likewise.
10977         (long_unsigned_type_node): Likewise.
10978         (long_long_integer_type_node): Likewise.
10979         (long_long_unsigned_type_node): Likewise.
10980         * tree.c (integer_types): New variable.
10981         (init_obstacks): Register it as a root.
10982
10983 Sat Mar 18 14:38:00 2000  Jason Eckhardt  <jle@cygnus.com>
10984
10985         * bb-reorder.c (reorder_basic_blocks): Update PREV_INSN as well as
10986         NEXT_INSN. Update last insn in chain.
10987
10988 2000-03-17  Jason Merrill  <jason@casey.cygnus.com>
10989
10990         * dwarf2out.c (dwarf2out_decl): Don't emit anything for types
10991         with TYPE_DECL_SUPPRESS_DEBUG set.
10992
10993 2000-03-18  Richard Henderson  <rth@cygnus.com>
10994
10995         * flow.c (make_edges): Use INTVAL to access REG_EH_REGION value.
10996
10997 2000-03-18  Richard Henderson  <rth@cygnus.com>
10998
10999         * i386.c (call_insn_operand): Always allow SYMBOL_REF,
11000         care for HALF_PIC_P.
11001         (expander_call_insn_operand): Remove.
11002         (ix86_expand_epilogue): New arg `emit_return' to control return insn.
11003         * i386.h (PREDICATE_CODES): Update.
11004         * i386.md (all call expanders): Remove predicates, remove special
11005         handling for half-pic.
11006         (*call_1, *call_value_1): Handle SIBLING_CALL_P insns.
11007         (*call_pop_pic2, *call_pic2, *call_value_pop_2, *call_value_2): Remove.
11008         (sibcall_epilogue): New.
11009
11010 2000-03-17  Richard Henderson  <rth@cygnus.com>
11011
11012         * rtlanal.c (single_set): Reject if the parallel has anything
11013         except SET or USE or CLOBBER.
11014
11015 2000-03-17  Jeff Law  <law@cygnus.com>
11016             Richard Henderson  <rth@cygnus.com>
11017
11018         * Makefile.in (OBJS): Add sibcall.o.
11019         (sibcall.o): New.
11020         * sibcall.c: New file.
11021         * calls.c (FUNCTION_OK_FOR_SIBCALL): Provide default.
11022         (ECF_IS_CONST, ECF_NOTHROW, ECF_SIBCALL): New.
11023         (emit_call_1): Replace `is_const' and `nothrow' with `ecf_flags'.
11024         Emit sibcall patterns when requested.  Update all callers.
11025         (expand_call): Generate CALL_PLACEHOLDER insns when tail call
11026         elimination seems feasable.
11027         * final.c (leaf_function_p): Sibling calls don't discount being
11028         a leaf function.
11029         * flow.c (HAVE_sibcall_epilogue): Provide default.
11030         (find_basic_blocks_1): Sibling calls don't throw.
11031         (make_edges): Make edge from sibling call to EXIT.
11032         (propagate_block): Don't remove sibcall_epilogue insns.
11033         * function.c (prologue, epilogue): Turn into varrays.  Update all uses.
11034         (sibcall_epilogue): New.
11035         (fixup_var_refs): Scan CALL_PLACEHOLDER sub-sequences.
11036         (identify_blocks_1): Likewise.  Break out from ...
11037         (identify_blocks): ... here.
11038         (reorder_blocks_1): Scan CALL_PLACEHOLDER.  Break out from ...
11039         (reorder_blocks): ... here.
11040         (init_function_for_compilation): Zap prologue/epilogue as varrays.
11041         (record_insns): Extend a varray instead of mallocing new memory.
11042         (contains): Read a varray not array of ints.
11043         (sibcall_epilogue_contains): New.
11044         (thread_prologue_and_epilogue_insns): Emit and record
11045         sibcall_epilogue patterns.
11046         (init_function_once): Allocate prologue/epilogue varrays.
11047         * genflags.c (gen_insn): Treat sibcall patterns as calls.
11048         * integrate.c (save_parm_insns): Recurse on CALL_PLACEHOLDER patterns.
11049         Broken out from ...
11050         (save_for_inline_nocopy): ... here.
11051         (copy_insn_list): Recurse on CALL_PLACEHOLDER patterns.
11052         Broken out from ...
11053         (expand_inline_function): ... here.
11054         (copy_rtx_and_substitute): Handle NOTE_INSN_DELETED_LABEL.
11055         (subst_constants): Handle 'n' formats.
11056         * jump.c (jump_optimize_minimal): New.
11057         (jump_optimize_1): New arg `minimal'; update callers.  Elide most
11058         optimizations if it's set.
11059         * rtl.c (copy_rtx): Do copy jump & call for insns.
11060         * rtl.h (struct rtx_def): Document use of jump and call for insns.
11061         (SIBLING_CALL_P): New.
11062         (sibcall_use_t): New.
11063         * toplev.c (rest_of_compilation): Do init_EXPR_INSN_LIST_cache earlier.
11064         Invoke optimize_sibling_and_tail_recursive_calls.
11065         * tree.c (lang_safe_for_unsave): New.
11066         (safe_for_unsave): New.
11067         * tree.h (lang_safe_for_unsave, safe_for_unsave): Declare.
11068
11069         * alpha.h (FUNCTION_OK_FOR_SIBCALL): New.
11070         * alpha.md (sibcall, sibcall_value, sibcall_epilogue): New.
11071         (*sibcall_osf_1, *sibcall_value_osf_1): New.
11072
11073 2000-03-17  Mark Mitchell  <mark@codesourcery.com>
11074
11075         * objc/objc-act.c (encode_method_prototype): Pass types, not
11076         PARM_DECLs, to int_size_in_bytes.
11077
11078 Fri Mar 17 11:51:34 2000  Jim Wilson  <wilson@cygnus.com>
11079
11080         * config/ia64/ia64.md (mix4right_3op): Swap %1 and %2 in template.
11081
11082         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
11083         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyrights again.
11084
11085 Fri Mar 17 08:09:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11086
11087         * Clean up usages of TREE_INT_CST_LOW.
11088         * c-parse.in (RESTORE_WARN_FLAGS): Use tree_low_cst.
11089         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
11090         Regenerated.
11091         * c-tree.h (min_precision): Move declaration to here.
11092         * c-typeck.c (build_binary_op): Use host_integerp and tree_low_cst.
11093         (build_unary_op, add_pending_init): Use bit_position.
11094         (pending_init_member, process_init_element): Likewise.
11095         (really_start_incremental_init, push_init_level, pop_init_level):
11096         Don't make copies of nodes or modify them in place, use consistent
11097         types when tracking positions, and use tree routines computations.
11098         (set_init_index, output_init_element): Likewise.
11099         (output_pending_init_elements, process_init_element): Likewise.
11100         * dbxout.c (dbxout_type_fields): Use bit_position, host_integerp,
11101         tree_low_cst and int_bit_position; also minor cleanup.
11102         (dbxout_type_method_1, dbxout_range_type, dbxout_type): Likewise.
11103         (print_cst_octal): Precision is unsigned.
11104         (dbxout_symbol): Ensure DECL_INITIAL is in-range and use tree_low_cst.
11105         * dwarf2out.c (ceiling): Input and output are unsigned HOST_WIDE_INT.
11106         (simple_type_align_in_bits): Result is unsigned int.
11107         Use tree_int_low_cst and host_integerp.
11108         (simple_type_size_in_bits): Result is unsigned HOST_WIDE_INT.
11109         (field_byte_offset): Result is HOST_WIDE_INT.
11110         Change types of internal variables so alignments are unsigned int,
11111         offsets are HOST_WIDE_INT and sizes are unsigned HOST_WIDE_INT.
11112         Use host_integerp, tree_low_cst, and int_bit_position.
11113         (add_bit_offset_attribute): Likewise.
11114         (add_data_member_location_attribute): Use tree_cst_low.
11115         (add_bound_info): Use host_integerp, integer_zerop, and integer_onep.
11116         (add_bit_size_attribute): Use tree_low_cst.
11117         (add_pure_or_virtual_attribute, gen_enumeration_type_die): Likewise.
11118         * dwarfout.c: Similar changes to dwarf2out.c.
11119         * expr.c (expand_expr, case ARRAY_REF): Remove redundant code.
11120         * genoutput.c (n_occurences): Return -1 for null string.
11121         (strip_whitespace): Accept null string and make into function.
11122         (scan_operands): Reflect above changes.
11123         * sdbout.c (plain_type_1): Use host_integerp and tree_low_cst.
11124         (sdbout_field_types, sdbout_one_type): Likewise; also use bit_position.
11125         * ssa.c (rename_registers): Add missing cast of arg to bzero.
11126         * tree.c (int_size_in_bytes): Check for too big to represent.
11127         (bit_position, int_bit_position, host_integerp, tree_low_cst): New fns.
11128         * tree.h (host_integerp, tree_low_cst, bit_position, int_bit_position):
11129         New declarations.
11130         (min_precision): Delete from here.
11131         * varasm.c (decode_addr_const): Use host_integerp, bit_position,
11132         and int_bit_position.
11133         * objc/objc-act.c (encode_method_prototype): Sizes are HOST_WIDE_INT.
11134         (encode_method_def): Likewise.
11135         (build_ivar_list_initializer): Use int_bit_position.
11136         (generate_shared_structures): Convert size.
11137         (encode_type, encode_complete_bitfield): Use integer_zerop.
11138         (encode_bitfield): Use tree_low_cst and int_bit_position.
11139
11140 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11141
11142         * config/c4x/c4x.h (CPP_SPEC): Fix typo.
11143
11144 2000-03-17  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
11145
11146         * call.c (special_function_p): It is only malloc if it returns
11147         Pmode.
11148
11149 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11150
11151         * config/c4x/c4x.h (ASM_SPEC, CPP_SPEC, LINK_SPEC): Support C33.
11152         (C33_FLAG, TARGET_C3X): Add macros.
11153         (TARGET_SWITCHES): Add -m33 option.
11154         * config/c4x/c4x.c (c4x_override_options): Test for TARGET_C33.
11155
11156 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11157
11158         * config/c4x/c4x.h (PARALLEL_INSN_FLAG): Add.
11159         (PARALLEL_PACK_FLAG): Delete.
11160         (TARGET_SWITCHES): Update.
11161         (TARGET_PARALLEL): Use PARALLEL_INSN_FLAG.
11162
11163 Thu Mar 16 18:52:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11164
11165         * fold-const.c (fold): Fix a few cases when the returned result
11166         is not of the same type as the input.
11167
11168 2000-03-16  Nick Clifton  <nickc@cygnus.com>
11169
11170         * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Fix compile time
11171         warning.
11172
11173 2000-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11174
11175         * libgcc2.h: Move prototypes above macros with the same name.
11176         Wrap some function prototypes in the conditional which indicates
11177         whether they are supported, i.e. "BITS_PER_UNIT == 8".
11178
11179 2000-03-16  Richard Henderson  <rth@cygnus.com>
11180
11181         * calls.c: Revert last two changes.
11182
11183 2000-03-16  Bernd Schmidt  <bernds@cygnus.co.uk>
11184
11185         * fp-bit.c (_unpack_d): If NO_DENORMALS is defined, anything that
11186         has exponent 0 is a zero.
11187
11188         * simplify-rtx.c (hash_rtx, case MEM/REG): Take into account that
11189         HASH may already be nonzero.  Add code/mode into hash value
11190         immediately after repeat label.
11191         (cselib_lookup): Don't leave the hash table in an inconsistent
11192         state before a hash lookup operation.
11193
11194 Thu Mar 16 17:03:10 MET 2000  Jan Hubicka  <jh@suse.cz>
11195
11196         * i386.md (all HI and QI mode non-move patterns):  Conditionize
11197         by TARGET_[HQ]IMODE_MATH.
11198         * i386.h (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
11199         x86_promote_qi_regs): Declare.
11200         (TARGET_HIMODE_MATH, TARGET_QIMODE_MATH, TARGET_PROMOTE_HI_REGS,
11201         TARGET_PROMOTE_QI_REGS): New macros.
11202         (PROMOTE_MODE): New macro.
11203         * i386.c (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
11204         x86_promote_qi_regs): New global variables.
11205
11206 Thu Mar 16 16:50:44 MET 2000  Jan Hubicka  <jh@suse.cz>
11207
11208         * calls.c (emit_library_call_value_1): Break out from ...; handle
11209         VOIDmode function calls too.
11210         (emit_library_call_value): ... here.
11211         (emit_library_call): Implement by calling emit_library_call_value_1.
11212
11213 Thu Mar 16 16:01:30 MET 2000  Jan Hubicka  <jh@suse.cz>
11214
11215         * calls.c (expand_call): Do sanity checking on arg_space_so_far.
11216         Update arg_space_so_far on stack adjustments.
11217         (emit_library_call, emit_library_call_value): Likewise; take into
11218         account arg_space_so_far and pending_stack_adjust when calculcating
11219         the boundary.
11220
11221 Thu Mar 16 09:02:19 2000  Jason Eckhardt  <jle@cygnus.com>
11222
11223         * flow.c: Move all basic block reordering code into its own file.
11224         (create_basic_block): Externalize.
11225         * bb-reorder.c: New file. Copy all basic block reordering code from
11226         flow.c to this file.
11227         (reorder_basic_blocks): Fix fencepost error in for-loop.
11228         (reorder_basic_blocks): Remove braces from single statement for-loops.
11229         * basic-block.h: Add declaration for create_basic_block.
11230         * Makefile.in: Add rules for bb-reorder.o.
11231
11232 2000-03-16  Neil Booth  <NeilB@earthling.net>
11233
11234         * cppinit.c (handle_option):  Implement #unassert directive
11235         as -A- command line option.
11236         (print_help):  Update.
11237         * cpptexi.c:  Update.
11238
11239 Thu Mar 16 02:14:16 2000  Hans-Peter Nilsson  <hp@bitrange.com>
11240
11241         * md.texi (Standard Names): Document `jump'.
11242
11243 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
11244
11245         * calls.c (emit_call_1): Nothrow functions can still have nonlocal
11246         gotos.
11247
11248 2000-03-15  Geoff Keating  <geoffk@cygnus.com>
11249
11250         Merge changes from newppc-branch onto trunk.
11251
11252         2000-03-15  Geoff Keating  <geoffk@cygnus.com>
11253
11254         * rs6000.c (toc_hash_table): Update for new hash table functions.
11255         (toc_hash_function): Likewise.
11256         (toc_hash_eq): Likewise.
11257         (toc_hash_mark_entry): Likewise.
11258         (toc_hash_mark_table): Likewise.
11259         (output_toc): Likewise.
11260         (rs6000_add_gc_roots): Likewise.
11261
11262         2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11263
11264         * t-aix43 (AR_FOR_TARGET): Deleted.  Moved `-X32_64'...
11265         (AR_FLAGS_FOR_TARGET): here.  New macro.
11266
11267         2000-03-05  Clinton Popetz  <cpopetz@cygnus.com>
11268
11269         * config/rs6000/rs6000.c (rs6000_fpmem_offset, rs6000_fpmem_size,
11270         fpmem_operand) Delete.
11271         (xer_operand) New.
11272         (rs6000_reg_names, alt_reg_names): Change fpmem to xer.
11273         (machine_function): Remove fpmem_size, fpmem_offset, save_toc_p.
11274         (rs6000_save_machine_status, rs6000_restore_machine_status,
11275         rs6000_init_expanders, rs6000_stack_info, debug_stack_info): Remove
11276         references to above variables.
11277         (gpc_reg_operand): Use XER_REGNO_P instead of FPMEM_REGNO_P.
11278         * config/rs6000/rs6000.h (REG_ALLOC_ORDER, REGISTER_NAMES,
11279         DEBUG_REGISTER_NAMES): Chagne fpmem to xer.
11280         (FPMEM_REGNO_P, FPMEM_REGNUM): Delete.
11281         (XER_REGNO_P, XER_REGNO): New.
11282         (rs6000_stack): Remove fpmem_p, fpmem_offset, fpmem_size.
11283         (PREDICATE_CODES): Change fpmem_operand to xer_operand.
11284         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Change FPMEM_REGNO_P to
11285         XER_REGNO_P.
11286         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
11287         REG_CLASS_FROM_LETTER, CLASS_MAX_NREGS): Change FPMEM_REGS to XER_REGS,         and remove FLOAT_OR_FPMEM_REGS.
11288         (CLASS_CANNOT_CHANGE_SIZE): Change to FLOAT_REGS.
11289
11290         2000-02-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11291
11292         * aix.h (FP_SAVE_INLINE, ASM_OUTPUT_INTERNAL_LABEL_PREFIX,
11293         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Move here...
11294         * rs6000.h: from here.
11295
11296         * rs6000-protos.h (rs6000_select_section): Provide prototype.
11297         (rs6000_select_rtx_section): Likewise.
11298         (rs6000_encode_section_info): Likewise.
11299         (sdata_section): Likewise.
11300         (sdata2_section): Likewise.
11301         (sbss_section): Likewise.
11302         * sysv4.h (rs6000_select_section): Delete prototype.
11303         (rs6000_select_rtx_section): Likewise.
11304         (rs6000_encode_section_info): Likewise.
11305         (sdata_section): Likewise.
11306         (sdata2_section): Likewise.
11307         (sbss_section): Likewise.
11308         (REG_SAVE_AREA): Delete definition duplicated in rs6000.h.
11309
11310         * sysv4.h: Delete various unnecessary #undef's and put a comment
11311         on the remaining ones.
11312         Change various comments according to coding standard.
11313
11314         2000-02-29  Clinton Popetz  <cpopetz@cygnus.com>
11315
11316         * config/rs6000/rs6000.h (MQ_REGNO, CR0_REGNO, CR1_REGNO, CR2_REGNO,
11317         CR3_REGNO, CR4_REGNO, MAX_CR_REGNO): Define.
11318         (CR0_REGNO_P) Remove.
11319         * config/rs6000/rs6000.c (gpc_reg_operand, and64_operand, and_operand,
11320         setup_incoming_varargs, mtcrf_operation, print_operand,
11321         rs6000_stack_info, rs6000_emit_prologue, rs6000_emit_epilogue):
11322         Use the above macros.
11323
11324         2000-02-24  Clinton Popetz  <cpopetz@cygnus.com>
11325
11326         * config/rs6000/rs6000.md: Added a new alternative for each
11327         pattern that had a 'x' alternative but no 'y' alternative.
11328         Added a new split for each of the above patterns.
11329
11330         2000-02-18  Geoff Keating  <geoffk@cygnus.com>
11331
11332         * aix41.h (ASM_CPU_SPEC): Delete.
11333         (CPP_CPU_SPEC): Delete.
11334
11335         * aix.h (RS6000_OUTPUT_BASENAME): Define.
11336         (ASM_OUTPUT_LABEL): Define.
11337         (ASM_GLOBALIZE_LABEL): Define.
11338         (STRIP_NAME_ENCODING): Define.
11339         * rs6000.h (RS6000_OUTPUT_BASENAME): Don't define.
11340         (STRIP_NAME_ENCODING): Don't define.
11341         (ASM_OUTPUT_LABEL): Don't define.
11342         (ASM_GLOBALIZE_LABEL): Don't define.
11343         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use assemble_name to output
11344         names, and ASM_OUTPUT_LABEL to output labels, rather than
11345         asm_fprintf.
11346         (ASM_OUTPUT_LABEL): Define.
11347         (ASM_OUTPUT_INT): Use assemble_name.
11348         (ASM_OUTPUT_DWARF_ADDR): Use assemble_name.
11349         (STRIP_NAME_ENCODING): Don't undefine first.
11350         (RS6000_OUTPUT_BASENAME): Make equivalent to assemble_name for
11351         ELF.
11352         (ASM_OUTPUT_LABELREF): Don't prepend underscores to labels
11353         specified with 'asm' even with -fleading-underscore.
11354         * rs6000.c (print_operand): Use assemble_name when !TARGET_AIX.
11355         (output_epilog): Likewise.
11356         (output_toc): Likewise.
11357         * tramp.asm: Handle -fleading-underscore correctly.
11358
11359         * rs6000.md (builtin_setjmp_receiver): Also run for -fPIC and
11360         -mminimal-toc.
11361         (nonlocal_goto_receiver): Delete.
11362         * rs6000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Delete.
11363
11364         * rs6000.h (ASM_OUTPUT_DEF): Don't define.
11365         (SET_ASM_OP): Define.
11366         * sysv4.h (ASM_OUTPUT_DEF): Don't undefine.
11367
11368         * rs6000.h (ASM_OUTPUT_ADDR_VEC_ELT): Don't define.
11369         (ASM_LONG): Define.
11370
11371         * rs6000.c (rs6000_dll_import_ref): Delete, not used.
11372         * rs6000-protos.h (rs6000_dll_import_ref): Delete.
11373
11374         * rs6000.h: Add 'u' to more constants.
11375
11376         2000-02-18  David Edelsohn  <edelsohn@gnu.org>
11377
11378         * rs6000.md (mfcr+shift): Delete PowerPC64 version.
11379
11380         2000-02-15  David Edelsohn  <edelsohn@gnu.org>
11381
11382         * rs6000.c (reg_or_u_cint_operand): New function.
11383         (logical_operand): Handle 64-bit hosts.
11384         (logical_u_operand): New function.
11385         (non_logical_cint_operand): Handle 64-bit hosts.
11386         (non_logical_u_cint_operand): New function.
11387         * rs6000.h (DATA_SECTION_ASM_OP): Add tab.
11388         (PREDICATE_CODES): Define new functions.
11389         * rs6000-protos.h: Declare new functions.
11390         * rs6000.md (iordi3, xordi3): Constant int must be unsigned 32-bits.
11391         (movdi_64): Bracket code intended for 64-bit hosts.  Create
11392         CONST_DOUBLE for 32-bit values.
11393         (scc insns): Generate DImode compares.
11394         (mfcr insns): Create DImode versions.
11395         (sge matchers): New patterns.
11396
11397         2000-02-15  Gabriel Paubert  <paubert@iram.es>
11398
11399         * rs6000.md: Correct instructions length attributes and
11400         constraints on unsigned compare instructions.
11401         (*ne0): Disable for PowerPC64.
11402
11403         2000-02-11  Geoff Keating  <geoffk@cygnus.com>
11404
11405         * rs6000.c (output_function_profiler): Use .long for a 32-bit
11406         quantity, fix profile1.C test failure under -fPIC.
11407
11408         * rs6000.c: Add 'u' to many constants to suppress warnings.
11409         (constant_pool_expr_1): Make static.
11410         (rs6000_emit_eh_toc_restore): Remove unused 'r2'.
11411         * rs6000.h: Add 'u' to many constants to suppress warnings.
11412
11413         * rs6000.c (rs6000_emit_load_toc_table): Use LCTOC..1 under AIX
11414         for the start of the TOC, instead of LCTOC..0.
11415         * aix.h (toc_section): Use LCTOC..1 under AIX for the start
11416         of the TOC.
11417         * rs6000.md (load_toc_aix_si): Use LCTOC..1.
11418         (load_toc_aix_di): Use LCTOC..1.
11419
11420         * rs6000.h (LEGITIMIZE_ADDRESS): Turn into a function.
11421         * rs6000.c (rs6000_legitimize_address): New function from
11422         LEGITIMIZE_ADDRESS.  Only use create_TOC_reference on
11423         symbols in the constant pool that really are TOC references.
11424         (print_operand_address): For ELF, write TOC offsets under
11425         -fPIC as subtractions in the insn.
11426         (output_toc): For ELF, define symbols in TOC as normal labels,
11427         to match RTL.
11428         (create_TOC_reference): Use gen_rtx_PLUS rather than gen_rtx.
11429         * rs6000-protos.h (rs6000_legitimize_address): Prototype.
11430         (create_TOC_reference): Prototype only when RTX_CODE is defined.
11431         * rs6000.md (movsi): Only use create_TOC_reference on
11432         symbols in the constant pool that really are TOC references.
11433
11434         * rs6000.h (MACHINE_DEPENDENT_REORG): Don't define.
11435         * rs6000.c (rs6000_reorg): Delete.
11436         * rs6000-protos.h (rs6000_reorg): Delete.
11437
11438         2000-02-09  Geoff Keating  <geoffk@cygnus.com>
11439
11440         * rs6000.h (INCOMING_RETURN_ADDR_RTX): New macro.
11441
11442         * aix.h (SETUP_FRAME_ADDRESSES): Define.
11443         * rs6000.c [TARGET_AIX] (insn_after_throw): New static variable.
11444         [TARGET_AIX] (rs6000_aix_emit_builtin_unwind_init): New function.
11445         [TARGET_AIX] (rs6000_emit_eh_toc_restore): New function.
11446         * rs6000-protos.h: Prototype rs6000_emit_eh_toc_restore,
11447         rs6000_aix_emit_builtin_unwind_init.
11448         * rs6000.md (eh_epilogue) [TARGET_AIX]: Call
11449         rs6000_emit_eh_toc_restore on AIX.
11450         (return_eh_si): Use r2.
11451         (return_eh_di): Use r2.
11452
11453         * aix43.h: Turn on HAS_INIT_SECTION and LD_INIT_SWITCH,
11454         since we're breaking binary compatibility anyway.
11455
11456         2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
11457
11458         * config/rs6000/rs6000-protos.h: (get_TOC_alias_set, uses_TOC,
11459         constant_pool_expr_p): Declare them.
11460         (constant_pool_expr_p): Declare it.
11461         * config/rs6000/rs6000.c (toc_label_name): Define.
11462         (rs6000_override_options): Set toc_label_name.
11463         (input_operand): Allow any TOC_RELATIVE_EXPR_P.
11464         (get_TOC_alias_set, constant_pool_expr_p, constant_pool_expr_1,
11465         uses_TOC): New functions.
11466         (print_operand): Delete old '*' case.
11467         (print_operand_address): Use LEGITIMATE_CONSTANT_POOL_ADDRESS_P,
11468         and strip off rtl for TOC before calling output_addr_const.
11469         (rs6000_emit_load_toc_table): Use toc_label_name.
11470         * config/rs6000/rs6000.h (TARGET_SWITCHES): Make msched-prolog
11471         the default.
11472         (LEGITIMATE_CONSTANT_POOL_BASE_P): Delete.
11473         (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): New macros.
11474         (LEGITIMATE_CONSTANT_POOL_ADDRESS_P): Use CONSTANT_POOL_EXPR_P.
11475         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Turn symbol_refs
11476         into explicit TOC_REGISTER offsets.
11477         (TOC_REGISTER): New macro.
11478         * config/rs6000/rs6000.md (movsi, movdi): Emit rtl under
11479         TARGET_TOC to reference TOC_REGISTER.
11480         (load_toc_v4_PIC_1b): Add 4 to offset for toc reload.
11481         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Call
11482         uses_TOC before emitting label references.
11483
11484         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
11485
11486         * rs6000.md (stack_tie): Fix warning.
11487
11488         * eabi-ctors.c: Use 'asm' names for the start/end variables,
11489         to handle -fleading-underscore.
11490         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use asm_fprintf and %U.
11491         (USER_LABEL_PREFIX): New macro.
11492         (ASM_OUTPUT_INTERNAL_LABEL_PREFIX): Use asm_fprintf and %L.
11493         (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U.
11494         * t-ppccomm (MULTILIB_MATCHES_SYSV): Note that call-sysv and
11495         call-linux can use the same multilibs.
11496         * t-ppcgas (MULTILIB_OPTIONS): Don't need to have separate call-sysv
11497         and call-linux multilibs.  Do multilib with -fleading-underscore.
11498         (MULTILIB_DIRNAMES): Follow MULTILIB_OPTIONS change.
11499         (MULTILIB_EXCEPTIONS): Remove call-linux exceptions.  Add restrictions
11500         to call-aix.
11501
11502         * sysv4.h (CPP_SYSV_SPEC): Define _SOFT_FLOAT for all those CPUs that
11503         have MASK_SOFT_FLOAT set.
11504         (CPP_FLOAT_DEFAULT_SPEC): New macro.
11505         (SUBTARGET_EXTRA_SPECS): Set `cpp_float_default' to the value of
11506         CPP_FLOAT_DEFAULT_SPEC.
11507
11508         * rs6000.c (ccr_bit): Add some consistency checks and a variable 'reg'.
11509         * rs6000.md: Whitespace change.
11510         * sysv4.h (LINK_TARGET_SPEC): Whitespace change.
11511         * sysv4le.h (LINK_TARGET_SPEC): Whitespace change.
11512
11513         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
11514
11515         * rs6000.md (eh_epilogue): New expander.
11516         (eh_reg_restore): New expand/split/insn combination.
11517         (return_eh_si): New insn.
11518         (return_eh_di): New insn.
11519
11520         * eabi-ci.asm: Put a label at the start of the .eh_frame section.
11521         * eabi-cn.asm: Put a zero at the end of the .eh_frame section.
11522         * eabi-ctors.c (__do_global_ctors): Register this object's
11523         frame.  Clean up.  Call atexit() after the constructors.
11524         (__do_global_dtors): Deregister this object's frame.  Clean up.
11525         Allow for recursive calls to exit().
11526         * rs6000.c (fixuplabelno): New variable.
11527         * sysv4.h (ASM_OUTPUT_INT): Don't do .fixup if not
11528         TARGET_RELOCATABLE, it slows down exec() under linux.
11529         (ASM_OUTPUT_DWARF_ADDR): Do .fixup if TARGET_RELOCATABLE.
11530
11531         * aix.h (ASM_OUTPUT_DWARF_ADDR_VAR): New macro.
11532         (ASM_OUTPUT_DWARF_DELTA_VAR): New macro.
11533         (ASM_OUTPUT_DWARF_DELTA2): New macro.
11534         (ASM_OUTPUT_DWARF_DELTA4): New macro.
11535         (ASM_OUTPUT_DWARF_ADDR_DELTA): New macro.
11536         (ASM_OUTPUT_DWARF_ADDR): New macro.
11537         (ASM_OUTPUT_DWARF_DATA4): New macro.
11538         (ASM_OUTPUT_DWARF_DATA2): New macro.
11539         (ASM_OUTPUT_DWARF_OFFSET4): New macro.
11540         (ASM_OUTPUT_DWARF_OFFSET): New macro.
11541         (UNALIGNED_INT_ASM_OP): New macro, fake definition.
11542
11543         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
11544
11545         * rs6000.c (rs6000_sr_alias_set): New variable.
11546         (rs6000_override_options): Initialise rs6000_sr_alias_set.
11547         (rs6000_emit_stack_tie): New function.
11548         (rs6000_emit_allocate_stack): Specify RTX_FRAME_RELATED_P
11549         in a way that dwarf2out can understand.
11550         (rs6000_frame_related): New function.
11551         (rs6000_emit_prologue): Use rs6000_sr_alias_set.  Specify
11552         RTX_FRAME_RELATED_P in a way that dwarf2out can understand.
11553         Use rs6000_emit_stack_tie when needed.
11554         (rs6000_emit_epilogue): Use rs6000_sr_alias_set.  Don't set
11555         RTX_FRAME_RELATED_P.  Use rs6000_emit_stack_tie when needed.
11556         * rs6000.md (stack_tie): New insn.
11557         (return_internal_si): Allow return value to be in the count
11558         register.
11559         (return_internal_di): Likewise.
11560
11561         * rs6000.c (output_mi_thunk): Remove unused variable `sp'.
11562
11563         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
11564
11565         * sysv4.h (LOCAL_LABEL_PREFIX): Define, for the use of dbxelf.h.
11566
11567         2000-01-31  Geoff Keating  <geoffk@cygnus.com>
11568
11569         * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): New macro.
11570
11571         * rs6000.md (stmw): Use the right POWER opcode.
11572         (lmw): Likewise.
11573
11574         2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11575
11576         * rs6000-protos.h: New file.
11577
11578         * rs6000.c: Include tm_p.h.  Fix compile time warnings.
11579
11580         * rs6000.h: Move prototypes to rs6000-protos.h.  Fix compile time
11581         warnings.
11582
11583         * sysv4.h: Likewise.
11584
11585         2000-01-28  Geoff Keating  <geoffk@cygnus.com>
11586
11587         * ../../configure.in: Delete powerpcle-*-winnt*
11588         and powerpcle-*-pe|powerpcle-*-cygwin*.
11589         * ../../configure: Regenerated.
11590         * cygwin.h: Delete.
11591         * rs6000.h (OBJECT_WINDOWS_NT): Delete.
11592         (TARGET_WINDOWS_NT): Delete.
11593         (ABI_NT): Delete.
11594         (CALL_NT_DLLIMPORT): Delete.
11595         Delete NT-specific code.
11596         * rs6000.md, rs6000.c, sysv4.h: Delete NT-specific code.
11597         * win-nt.h: Delete.
11598         * t-winnt: Delete.
11599         * nt-ci.asm: Delete.
11600         * nt-cn.asm: Delete.
11601         * ntstack.asm: Delete.
11602
11603         2000-01-27  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11604
11605         * rs6000.h (SELECT_RTX_SECTION): Move to aix.h.
11606         (ASM_FILE_START): Likewise.
11607         (ASM_DECLARE_FUNCTION_NAME): Likewise.
11608         (ASM_OUTPUT_LABELREF): Likewise.
11609         (ASM_OUTPUT_SKIP): Likewise.
11610         (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
11611         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
11612         (ASM_OUTPUT_CASE_LABEL): Likewise.
11613         (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
11614         (ASM_OUTPUT_ASCII): Likewise.
11615
11616         2000-01-27  Clinton Popetz  <cpopetz@cygnus.com>
11617
11618         * rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and
11619         reload_toc_labelno for non-prologue TOC reloads.  Also, don't
11620         increment rs6000_pic_labelno here.
11621         (rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table,
11622         and increment rs6000_pic_labelno here.
11623
11624         2000-01-24  Geoffrey Keating  <geoffk@cygnus.com>
11625
11626         * rs6000.md (fctiwz): Use (set (reg) (unspec:DI [(fix:SI ...)]))
11627         rather than (set (subreg:SI (reg)) (fix:SI ...)) so that register
11628         allocation knows (reg) is dead before the insn.
11629
11630         2000-01-21  Geoff Keating  <geoffk@cygnus.com>
11631
11632         * rs6000.md (movsi_to_cr): Correct typo in output template.
11633
11634         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
11635
11636         * rs6000.c (rs6000_pic_labelno): Always define.
11637         (rs6000_pic_func_labelno): Delete.
11638         (lmw_operation): Check for a zero base register,
11639         which doesn't mean what we want.
11640         (stmw_operation): New function.
11641         (print_operand): Define new 'l' modifier.
11642         (rs6000_stack_info): We must save all 64 bits of the registers
11643         if TARGET_POWERPC64.
11644         (rs6000_output_load_toc_table): Delete.
11645         (rs6000_emit_load_toc_table): New function.
11646         (rs6000_allocate_stack_space): Delete.
11647         (rs6000_emit_allocate_stack): New function.
11648         (rs6000_emit_prologue): New function.
11649         (output_prolog): Use rs6000_emit_prologue.
11650         (rs6000_emit_epilogue): Change a few variable names to be
11651         more accurate.  Restore all 64 bits of the registers if
11652         TARGET_POWERPC64.  Only restore the FP registers which were used
11653         if they are being saved/restored one-at-a-time.
11654         (output_mi_thunk): Delete inefficient code generation.
11655         (output_function_profiler): Don't use rs6000_output_load_toc_table.
11656         * rs6000.h: Declare rs6000_emit_load_toc_table,
11657         rs6000_allocate_stack_space, stmw_operation.  Don't declare
11658         rs6000_output_load_toc_table.
11659         * rs6000.md (elf_high): Allow register 0, but discourage it
11660         heavily.
11661         (elf_low): Support loading into register 0.
11662         (load_toc_aix_si): New pattern.
11663         (load_toc_aix_di): New pattern.
11664         (load_toc_v4_pic_si): New pattern.
11665         (load_toc_v4_pic_di): New pattern.
11666         (load_toc_v4_PIC_1): New pattern.
11667         (load_toc_v4_PIC_1b): New pattern.
11668         (load_toc_v4_PIC_2): New pattern.
11669         (builtin_setjmp_receiver): Use rs6000_emit_load_toc_table.
11670         (nonlocal_goto_receiver): Use rs6000_emit_load_toc_table.
11671         (prologue): New expander.
11672         (movesi_from_cr): New pattern.
11673         (stmw): New pattern.
11674         (save_fpregs_si): New pattern.
11675         (save_fpregs_di): New pattern.
11676
11677         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
11678
11679         * rs6000.md (movsi): Don't use force_reg when no_new_pseudos.
11680         (movdi): Likewise.
11681         (movhi): Likewise.
11682         (movqi): Likewise.
11683
11684         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
11685
11686         * rs6000.md (movsi_got): 'unspec 8' returns a SImode result,
11687         at present.
11688         (movsi_got_internal): Likewise.
11689         (movsi_got_internal+1): Likewise.
11690         (set_sp): 'unspec 7' does a SImode clobber.
11691
11692         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
11693
11694         * rs6000.md (floatsidf2): Don't use the fpmem "register", just
11695         allocate a stack temporary.
11696         (floatsidf2_internal): Likewise.
11697         (floatsidf2_internal+1): Likewise.  Don't do bizzare hacks
11698         with unspec.
11699         (floatunssidf2): Don't use the fpmem "register", just
11700         allocate a stack temporary.
11701         (floatunssidf2_internal): Likewise.
11702         (floatunssidf2_internal+1): Likewise.  Don't do bizzare hacks
11703         with unspec.
11704         (floatsidf2_loadaddr): Delete.
11705         (floatsidf2_store1): Delete.
11706         (floatsidf2_store2): Delete.
11707         (floatsidf2_load): Delete.
11708         (fix_truncdfsi2): Don't use the fpmem "register", just
11709         allocate a stack temporary.
11710         (fix_truncdfsi2_internal_si): Delete.
11711         (fix_truncdfsi2_internal_di): Delete.
11712         (fix_truncdfsi2_internal): New insn.
11713         (fix_truncdfsi2_internal+1): Don't use the fpmem "register".
11714         (fix_truncdfsi2_store): Delete.
11715         (fix_truncdfsi2_load): Delete.
11716         (fctiwz): Produce gen_fctiwz.
11717
11718         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
11719
11720         * eabi.h (INVOKE__main): Define.
11721         * rs6000.c (rs6000_stack_info): Don't handle call to NAME__MAIN
11722         specially.
11723         (rs6000_emit_prologue): Likewise.
11724         * rs6000.h (struct rs6000_stack): Don't keep track of whether
11725         this is the main program.
11726
11727         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
11728
11729         * rs6000.c (rs6000_va_arg): Delete some unused variables.
11730
11731         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
11732
11733         * rs6000.c (rs6000_va_arg): On AIX, padding for small arguments
11734         goes after the argument.
11735
11736         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
11737
11738         * rs6000.md: Document 'unspec' values used.
11739         (epilogue): New expander.
11740         (movesi_to_cr_one): New expander.
11741         (movesi_to_cr and following): New pattern.
11742         (lmw): New pattern.
11743         (return_internal_si): New pattern.
11744         (return_internal_di): New pattern.
11745         (return_and_restore_fpregs_si): New pattern.
11746         (return_and_restore_fpregs_di): New pattern.
11747         * rs6000.h: Declare new functions.
11748         * rs6000.c (rs6000_stack_info): Use current_function_is_leaf
11749         rather than rs6000_calls_p.
11750         (rs6000_makes_calls): Delete.
11751         (lmw_operation): New function.
11752         (mtcrf_operation): New function.
11753         (rs6000_emit_epilogue): New function.
11754         (output_epilog): Call rs6000_emit_epilogue and final if
11755         !TARGET_SCHED_PROLOG, instead of writing text unconditionally.
11756
11757         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
11758
11759         * aix43.h (SUBSUBTARGET_SWITCHES): Document switches.
11760         * aix41.h (SUBSUBTARGET_SWITCHES): Document switches.
11761         * aix.h (SUBTARGET_SWITCHES): Document switches.
11762         * rs6000.h: (TARGET_SWITCHES): Don't print options twice.  Make
11763         sched-prolog and sched-epilog the same.  Document all the
11764         switches.
11765         (TARGET_OPTIONS): No longer allow -mdebug-.
11766
11767         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
11768
11769         * rs6000.h (ASM_FILE_END): Move to aix.h.
11770         (EXTRA_SECTIONS): Move to aix.h.
11771         (READONLY_DATA_SECTION): Move to aix.h.
11772         (EXTRA_SECTION_FUNCTIONS): Move to aix.h.
11773         (SELECT_SECTION): Move to aix.h.
11774         (JUMP_TABLES_IN_TEXT_SECTION): Move to aix.h.
11775         (INT_REGNO_P): Use symbolic name for ARG_POINTER_REGNUM.
11776         (LINK_REGISTER_REGNUM): New definition.
11777         (RETURN_ADDR_RTX): Use symbolic name for LINK_REGISTER_REGNUM.
11778         (SLOW_UNALIGNED_ACCESS): Define in a way suitable for both
11779         AIX and SVR4.
11780         * sysv4.h: Delete the code between the inclusion of rs6000.h
11781         and svr4.h.
11782         (DWARF_DEBUGGING_INFO): Don't define, it's defined in elfos.h.
11783         (FP_ARG_MAX_REG): Move generic definition to rs6000.h.
11784         (RS6000_REG_SAVE): Move generic definition to rs6000.h.
11785         (RS6000_SAVE_AREA): Move generic definition to rs6000.h.
11786         * rs6000.md (floatsidf2_loadaddr): The first arg here is Pmode.
11787         (fix_truncdfsi2_internal): Rename to fix_truncdfsi2_internal_si.
11788         (fix_truncdfsi2_internal_di): New pattern.
11789         (fix_truncdfsi2_store): The second arg here is Pmode too.
11790         (fix_truncdfsi2_load): The second arg here is Pmode too.
11791         (tablejumpdi): Now that switch tables hold only SImode values,
11792         gcc needs to know how to add them to the pc which is DImode.
11793         * rs6000.c (rs6000_stack_info): Use symbolic name for
11794         LINK_REGISTER_REGNUM.
11795         (output_mi_thunk) [!TARGET_ELF]: Don't define sp, it's not used.
11796         (output_toc): Delete unused variables s1 and s2.
11797         (output_ascii): Use fputs not fprintf on a variable string.
11798
11799         2000-01-07  David Edelsohn  <edelsohn@gnu.org>
11800
11801         * rs6000.c (processor_target_table): Add power3 as alias for 630.
11802         * aix43.h: Revert Aug 2 change.
11803         (HAS_INIT_SECTION): Define, not visible yet.
11804         (LD_INIT_SWITCH): Define, not visible yet.
11805         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
11806
11807         2000-01-04  Joel Sherrill (joel@OARcorp.com>
11808
11809         * config/rs6000/rtems.h: Include config/rtems.h.
11810
11811         2000-01-04  David Edelsohn  <edelsohn@gnu.org>
11812
11813         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
11814         (SLOW_UNALIGNED_ACCESS): Define.
11815         (CASE_VECTOR_MODE): Always use 32-bit offsets.
11816         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
11817         (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
11818         (toc_section): Likewise and .toc pseudo-op.
11819         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
11820         64-bit mode.
11821         (TEXT_SECTION_ASM_OP): Likewise.
11822         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
11823         32-bit offsets.
11824
11825         1999-12-17  Jakub Jelinek  <jakub@redhat.com>
11826
11827         * config/rs6000/rs6000.h (TARGET_POWERPC64): Make sure
11828         UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
11829         compiling libgcc2.
11830
11831         2000-01-06  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
11832
11833         * rs6000.h: Move more stuff from here...
11834         * aix.h: to here.
11835         * sysv4.h: Cleanup accordingly.
11836         * netware.h: Likewise
11837
11838         2000-01-05  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
11839
11840         * rs6000.h: Continue cleanup.
11841         * aix.h: Likewise.
11842         * lynx.h: Likewise.
11843         * netware.h: Likewise.
11844         * sol2.h: Likewise.
11845         * sysv4.h: Likewise.
11846         * win-nt.h: Likewise.
11847
11848         * rs6000.h (TARGET_SWITCHES): Add descriptions.
11849         (TARGET_OPTIONS): Likewise.
11850
11851         * sysv4.h (SUBTARGET_SWITCHES): Add descriptions.
11852         (SUBTARGET_OPTIONS): Likewise.
11853
11854         * rs6000.md: Fix compile time warnings.
11855
11856         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
11857
11858         vxworks patches from the Cygnus tree originally by
11859         Michael Meissner <meissner@cygnus.com> and Vladimir Makarov
11860         <vmakarov@cygnus.com>.
11861         * sysv4.h (SUBTARGET_SWITCHES): Add vxworks.
11862         (ENDFILE_SPEC): Likewise.
11863         (LIB_VXWORKS_SPEC): New macro.
11864         (STARTFILE_VXWORKS_SPEC): New macro.
11865         (ENDFILE_VXWORKS_SPEC): New macro.
11866         (LINK_START_VXWORKS_SPEC): New macro.
11867         (LINK_OS_VXWORKS_SPEC): New macro.
11868         (CPP_OS_VXWORKS_SPEC): New macro.
11869         (SUBTARGET_EXTRA_SPECS): Add all the vxworks specs.
11870         * vxppc.h: Rewrite to use proper configuration method.
11871         * vxppcle.h: New file.
11872         * ../../configure.in: Add powerpcle-wrs-vxworks*.
11873         * ../../configure: Rebuilt.
11874
11875         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
11876
11877         Lots of changes to rs6000.h, sysv4.h, aix.h,
11878         aix31.h, aix3newas.h, aix41.h, aix43.h, beos.h,
11879         with the aim that rs6000.h is the first header
11880         included and the others override it.
11881         * aix.h: New file.
11882
11883         * x-aix41-gld: Remove.
11884         * x-aix43: Remove.
11885         * x-aix41: Remove target-specific switches, and don't specify
11886         -Wl,-bbigtoc as we don't need it any more.
11887         * ../../configure.in: Use x-aix41 for ppc AIX 4.1 and above.
11888         Use t-aix43 for AIX 4.3 and above.
11889         * ../../configure: Regenerated.
11890
11891         * rs6000.h (TARGET_SWITCHES): Add some initial prolog-scheduling
11892         options, that don't do anything yet.
11893         (MASK_SCHED_PROLOG): New macro.
11894         (MASK_SCHED_EPILOG): New macro.
11895         (TARGET_SCHED_PROLOG): New macro.
11896         (TARGET_SCHED_EPILOG): New macro.
11897
11898         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
11899
11900         * rs6000.c: Correct comment, the `minimal' TOCs are actually
11901         one per translation unit, not one per function.
11902         (output_toc): Also do duplicate constant elimination
11903         for per-translation-unit TOCs.
11904
11905         * rs6000.md (nonlocal_goto_receiver): Put it back as before.  Add
11906         a comment explaining _exactly_ when this pattern gets used.
11907         (builtin_setjmp_receiver): New pattern for better clarity.
11908         (init_v4_pic): Move it into a section dealing with TOC registers.
11909
11910         1999-12-30  Geoff Keating  <geoffk@cygnus.com>
11911
11912         * rs6000.c (toc_hash_table): New variable.
11913         (rs6000_hash_constant): New function.
11914         (toc_hash_function): New function.
11915         (toc_hash_eq): New function.
11916         (toc_hash_mark_entry): New function.
11917         (toc_hash_mark_table): New function.
11918         (output_toc): Don't output duplicate TOC entries in
11919         a single file.
11920         (rs6000_add_gc_roots): Add the hash table as a GC root.
11921         * t-aix43: Move AR_FOR_TARGET and CLIB here from x-aix43,
11922         where they clearly shouldn't be.  This may need to be fixed
11923         later when there is a GNU ar for AIX.
11924         * x-aix43: Don't define CLIB or AR_FOR_TARGET.
11925         Don't define BOOT_LDFLAGS as it is now not necessary.
11926
11927         1999-12-29  Geoff Keating  <geoffk@cygnus.com>
11928
11929         * rs6000.c (rs6000_build_va_list): Use 'char *' rather than 'void *'
11930         for va_list on AIX.  Use unsigned_char_type_node rather than
11931         constructing our own version on svr4.
11932
11933         1999-12-17  Geoff Keating  <geoffk@cygnus.com>
11934
11935         * tramp.asm (__trampoline_size): Delete CYGNUS LOCAL comment,
11936         since patently it's not.
11937
11938         1999-12-08  Geoff Keating  <geoffk@cygnus.com>
11939
11940         * config/rs6000/rs6000.md (nonlocal_goto_receiver): Turn into
11941         define_expand/define_insn pair, and handle restore of the
11942         SVR4 -fpic register.
11943
11944 Wed Mar 15 15:43:38 2000  Jeffrey A Law  (law@cygnus.com)
11945
11946         * acconfig.h (HAVE_GAS_WEAK): New define.
11947         * configure.in (assembler weak support): Check for .weak support.
11948         * config.in, configure: Rebuilt.
11949         * pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Only define if
11950         HAVE_GAS_WEAK is defined.
11951
11952 2000-03-15  Nick Clifton  <nickc@cygnus.com>
11953
11954         * config/arm/arm.c (arm_output_epilogue): Do not pass %c to
11955         asm_fprintf().
11956
11957 2000-03-15  Zack Weinberg  <zack@wolery.cumb.org>
11958
11959         * cppfiles.c (open_include_file): New function.
11960         (find_include_file, cpp_read_file): Use it.
11961
11962 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
11963
11964         * cpphash.c (dump_hash_helper): Take the slot, not the element.
11965
11966 Wed Mar 15 14:28:54 2000  Jason Eckhardt  <jle@cygnus.com>
11967
11968         * flow.c (verify_flow_info): Check for unconditional return.
11969
11970 Wed Mar 15 11:34:27 2000  Jim Wilson  <wilson@cygnus.com>
11971
11972         * config/ia64/ia64.md (restore_stack_nonlocal): New.
11973         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Delete padding nop.
11974         (__ia64_restore_stack_nonlocal): New.
11975         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __restore_stack_nonlocal.
11976
11977 2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11978
11979         * cpphash.c (collect_formal_parameters): Do not complain about
11980         parameter names that just start with `__VA_ARGS__'.
11981
11982 Wed Mar 15 13:26:58 MET 2000  Jan Hubicka  <jh@suse.cz>
11983
11984         * i386.md (movhi_1): Promote movw imm, reg to movl imm, reg and
11985         movw reg, reg to movzwl reg, reg on PARTIAL_REGISTER_STALL machines.
11986         * i386.c (pentiumpro_cost): Set mul cost to 4.
11987         (x86_use_movx): Set for PPro.
11988
11989 Wed Mar 15 13:07:05 MET 2000  Jan Hubicka  <jh@suse.cz>
11990
11991         * i386.md (ix86_compute_frame_size): stack_alignment_needed is
11992         STACK_BOUNDARY for empty frames now.
11993
11994 2000-03-14  Mark Mitchell  <mark@codesourcery.com>
11995
11996         * stor-layout.c (layout_union): Remove.
11997         (layout_union_field): New function, split out from layout_union.
11998         (finish_union_layout): Likewise.
11999         (layout_field): Handle unions by calling layout_union_field.
12000         (finish_record_layout): Handle unions.
12001         (layout_type): Combine RECORD_TYPE, UNION_TYPE, and
12002         QUAL_UNION_TYPE handling.
12003
12004 Wed Feb 23 13:00:06 CET 2000  Jan Hubicka  <jh@suse.cz>
12005
12006         * flow.c (fixup_reorder_chain): Avoid double labels in the basic block;
12007         end of basic block is jump_insn, not barrier; use create_basic_block
12008         instead of creating basic block by hand.
12009
12010 2000-03-14  Jason Eckhardt  <jle@cygnus.com>
12011
12012         * flow.c (reorder_basic_blocks): Account for barriers when writing
12013         over NEXT_INSN (last_bb->end).
12014         (verify_flow_info): Add check for missing barriers.
12015
12016 2000-03-14  Greg McGary  <gkm@gnu.org>
12017
12018         * c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED.
12019         * c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED.
12020         * c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__,
12021         __ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__,
12022         __unbounded, __unbounded__): New keywords.
12023         * c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens.
12024         * c-parse.y, c-parse.c, c-parse.h: Regenerate.
12025         * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
12026
12027 2000-03-14  Bernd Schmidt  <bernds@cygnus.co.uk>
12028
12029         * cselib.h: New file.
12030         * alias.c: Include "cselib.h".
12031         (fixed_scalar_and_varying_struct_p): Accept the addresses of the
12032         MEMs as two new arguments.
12033         (get_addr): New static function.
12034         (find_base_term): Handle VALUEs.
12035         (memrefs_conflict_p): Likewise.
12036         (true_dependence): Call get_addr on the addresses.
12037         Call fixed_scalar_and_varying_struct_p with addresses that have been
12038         passed through get_addr and canon_rtx.
12039         (write_dependence_p): Move DIFFERENT_ALIAS_SETS_P test for consistency
12040         with true_dependence.
12041         Call get_addr on the addresses; don't call canon_rtx on the MEMs.
12042         * loop.c: Include "cselib.h".
12043         (load_mems): Process extended basic block that enters the loop with
12044         cselib.  Use that information to change initialization of the shadow
12045         register so that a constant equivalence is seen by later passes.
12046         * reload1.c: Include "cselib.h".
12047         (reload_cse_invalidate_regno): Delete function.
12048         (reload_cse_mem_conflict_p): Likewise.
12049         (reload_cse_invalidate_mem): Likewise.
12050         (reload_cse_invalidate_rtx): Likewise.
12051         (reload_cse_regno_equal_p): Likewise.
12052         (reload_cse_check_clobber): Likewise.
12053         (reload_cse_record_set): Likewise.
12054         (reg_values): Delete static variable.
12055         (invalidate_regno_rtx): Likewise.
12056         (reload_cse_delete_noop_set): New static function.
12057         (reload_cse_simplify): New static function, broken out of
12058         reload_cse_regs_1.
12059         (reload_cse_noop_set_p): Delete unused argument INSN.
12060         Just call rtx_equal_for_cselib_p on set source and destination.
12061         (reload_cse_regs_1): Break out some code into reload_cse_simplify and
12062         reload_cse_delete_noop_set.  Delete code to keep track of values; use
12063         cselib functions instead.  Delete code to push/pop obstacks.
12064         (reload_cse_simplify_set): Use cselib to find equivalent values.
12065         Delete code to push/pop obstacks.
12066         (reload_cse_simplify_operands): Likewise.
12067         * rtl.def (VALUE): New rtx code.
12068         * rtl.h (union rtunion_def): New elt rt_cselib.
12069         (X0CSELIB, CSELIB_VAL_PTR): New macros.
12070         * simplify_rtx.c: Include "ggc.h", "obstack.h", "cselib.h".
12071         (new_elt_list, new_elt_loc_list, unchain_one_value, clear_table,
12072         unchain_one_elt_list, unchain_one_elt_loc_list, check_useless_values,
12073         discard_useless_locs, discard_useless_values, entry_and_rtx_equal_p,
12074         hash_rtx, new_cselib_val, add_mem_for_addr, get_value_hash,
12075         cselib_lookup_mem, cselib_subst_to_values, cselib_invalidate_regno,
12076         cselib_mem_conflict_p, cselib_invalidate_mem, cselib_invalidate_rtx,
12077         cselib_record_set, cselib_record_sets): New static functions.
12078         (cselib_lookup, cselib_update_varray_sizes, cselib_init,
12079         cselib_finish, cselib_process_insn, rtx_equal_for_cselib_p,
12080         references_value_p): New functions.
12081         (MAX_USELESS_VALUES, REG_VALUES): New macros.
12082         (table, cselib_current_insn, next_unknown_value, cselib_nregs,
12083         n_useless_values, reg_values, callmem, cselib_obstack,
12084         cselib_startobj, empty_vals, empty_elt_lists, empty_elt_loc_lists):
12085         New static variables.
12086         * varray.h (union varray_data_tag): New elt te.
12087         (VARRAY_ELT_LIST_INIT, VARRAY_ELT_LIST): New macros.
12088         * Makefile.in (reload1.o, loop.o, simplify-rtx.o, alias.o): Update
12089         dependencies.
12090
12091 2000-03-14  Nick Clifton  <nickc@cygnus.com>
12092
12093         * gcc.c (do_spec_1): Catch the case where %* is used in a
12094         substitution pattern, but it has not been initialised.
12095         Issue a meaningful error message if an unrecognised operator
12096         is encountered in a spec string.
12097
12098 2000-03-14  Richard Earnshaw <rearnsha@arm.com>
12099
12100         * function.c (prepare_function_start): Correctly initialize
12101         cfun->stack_alignment_needed.
12102
12103 2000-03-14  Zack Weinberg  <zack@wolery.cumb.org>
12104
12105         * cppfiles.c (find_include_file): Don't assume nshort is a
12106         substring of name.
12107
12108 Tue Mar 14 08:42:21 2000  Jeffrey A Law  (law@cygnus.com)
12109
12110         * configure.in (hppa configurations): Add pa32-regs.h to the
12111         list of tm files as appropriate.
12112         * configure: Rebuilt.
12113         * pa.c (compute_frame_size): Remove explicit knowledge about FP
12114         register numbering.
12115         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
12116         (fmpyaddoperands, fmpysuboperands): Likewise.
12117         * pa.h: Remove various definitions which depend on knowing
12118         how registers are numbered.
12119         * pa32-regs.h: New file with PA32 register numbering specific
12120         definitions.
12121
12122 2000-03-14  Richard Henderson  <rth@cygnus.com>
12123
12124         * regmove.c (combine_stack_adjustments): New.
12125         (stack_memref_p, single_set_for_csa): New.
12126         (free_csa_memlist, record_one_stack_memref): New.
12127         (try_apply_stack_adjustment): New.
12128         (combine_stack_adjustments_for_block): New.
12129         * rtl.h (combine_stack_adjustments): Declare.
12130         * toplev.c (rest_of_compilation): Call it.
12131
12132         * i386.md: Revert 2000-01-16 change.
12133
12134 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
12135
12136         * gccbug.in: Add web category, gcc specific classes.
12137
12138 2000-03-14  Nathan Sidwell  <nathan@codesourcery.com>
12139
12140         * stor-layout.c (finalize_record_size): Fix typo.
12141
12142 2000-03-14  Stan Shebs  <shebs@apple.com>
12143
12144         * c-typeck.c (c_alignof): Error on incomplete types.
12145         * extend.texi (Alignment): Document this.
12146
12147 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
12148
12149         * cppfiles.c: Include mkdeps.h.
12150         (find_include_file, read_include_file): Remove _cpp_ prefix
12151         from name, make static.
12152         (_cpp_execute_include): New function, broken out of
12153         do_include.
12154
12155         * cpplib.c: Don't include mkdeps.h.
12156         (struct directive): Remove type field. Reorder entries.  The
12157         function takes only one argument.
12158         (struct if_stack): Make type field an int.
12159         (directive_table): Rename to dtable.  Generate it, the
12160         prototypes of the directive handlers, and the enum for the
12161         directive numbers, from a template macro.
12162         (do_ifndef, do_include_next, do_import): New functions.
12163         (do_define, do_include, do_endif, do_ifdef, do_if, do_else,
12164         do_undef, do_line, do_elif, do_error, do_pragma, do_warning,
12165         do_ident, do_assert, do_unassert, do_sccs): Take only one
12166         argument.
12167         (do_sccs): Define always, but alter behavior based on
12168         SCCS_DIRECTIVE.
12169         (_cpp_handle_directive, consider_directive_while_skipping):
12170         Restructure for new directive table layout.
12171
12172         (pass_thru_directive): Take a directive number, not a pointer
12173         to a struct directive.
12174         (parse_include): New function, broken out of do_include.
12175         (do_include, do_import, do_include_next): Use parse_include
12176         and _cpp_execute_include.
12177         (do_elif, do_else): Test for T_ELSE specifically when checking
12178         for #elif/#else after #else.
12179         (parse_ifdef): New function, broken out of do_ifdef.
12180         (validate_else): Expect a name arg without a leading #.
12181         (if_directive_name): Delete.
12182         (cpp_define, cpp_assert, cpp_undef, cpp_unassert): Call
12183         directive handlers with only one argument.
12184
12185         * cpphash.h: Update prototypes.
12186         (enum node_type): Remove entries for directives.
12187         * Makefile.in: Update dependencies.
12188
12189         * cpphash.c (dump_hash_helper): Only dump nodes of type
12190         T_MACRO.  Emit a newline after each definition.
12191
12192 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
12193
12194         * gccbug.in: New file.
12195         * configure.in (all_outputs): Add gccbug.
12196         * Makefile.in (install-common): Install gccbug.
12197         (GCCBUG_INSTALL_NAME): New variable.
12198         * configure: Rebuilt.
12199
12200 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
12201
12202         * function.c (put_var_into_stack): Use type_for_mode to calculate
12203         part_type.  Use MEM_SET_IN_STRUCT_P.
12204         * expr.c (store_field): Handle CONCAT.
12205         (store_constructor): Use fields_length.
12206         * tree.c (fields_length): New fn.
12207         * tree.h: Declare it.
12208
12209 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
12210
12211         * Makefile.in (LIBCPP_OBJS): Add cpplex.o.
12212         (cpplex.o): New target.
12213         * po/POTFILES.in: Add cpplex.c.
12214
12215         * cpplex.c (_cpp_grow_token_buffer, null_cleanup,
12216         cpp_push_buffer, cpp_pop_buffer, cpp_scan_buffer,
12217         cpp_expand_to_buffer, cpp_buf_line_and_col, cpp_file_buffer,
12218         skip_block_comment, skip_line_comment, skip_comment,
12219         copy_comment, _cpp_skip_hspace, _cpp_skip_rest_of_line,
12220         _cpp_parse_name, skip_string, parse_string,
12221         _cpp_parse_assertion, cpp_get_token, cpp_get_non_space_token,
12222         _cpp_get_directive_token, find_position,
12223         _cpp_read_and_prescan, _cpp_init_input_buffer): Move here.
12224         (maybe_macroexpand, _cpp_lex_token): New functions.
12225
12226         * cpplib.c (SKIP_WHITE_SPACE, eval_if_expr, parse_set_mark,
12227         parse_goto_mark): Delete.
12228         (_cpp_handle_eof): New function.
12229         (_cpp_handle_directive): Rename from handle_directive.
12230         (_cpp_output_line_command): Rename from output_line_command.
12231         (do_if, do_elif): Call _cpp_parse_expr directly.
12232         * cppfiles.c (_cpp_read_include_file): Don't call
12233         init_input_buffer here.
12234         * cpphash.c (quote_string): Move here, rename _cpp_quote_string.
12235         * cppexp.c (_cpp_parse_expr): Diddle parsing_if_directive
12236         here; pop the token_buffer and skip the rest of the line here.
12237         * cppinit.c (cpp_start_read): Call _cpp_init_input_buffer
12238         here.
12239
12240         * cpphash.h (CPP_RESERVE, CPP_IS_MACRO_BUFFER, ACTIVE_MARK_P):
12241         Define here.
12242         (CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, CPP_SET_MARK,
12243         CPP_GOTO_MARK): New macros.
12244         (_cpp_quote_string, _cpp_parse_name, _cpp_skip_rest_of_line,
12245         _cpp_skip_hspace, _cpp_parse_assertion, _cpp_lex_token,
12246         _cpp_read_and_prescan, _cpp_init_input_buffer,
12247         _cpp_grow_token_buffer, _cpp_get_directive_token,
12248         _cpp_handle_directive, _cpp_handle_eof,
12249         _cpp_output_line_command): Prototype them here.
12250         * cpplib.h (enum cpp_token): Add CPP_MACRO.
12251         (CPP_RESERVE, get_directive_token, cpp_grow_buffer,
12252         quote_string, output_line_command): Remove.
12253
12254 2000-03-13  Bernd Schmidt  <bernds@cygnus.co.uk>
12255
12256         * stmt.c (expand_end_case): RANGE may be signed, and when checking
12257         whether it is too large we must also verify that it isn't negative.
12258
12259 2000-03-13  Jakub Jelinek  <jakub@redhat.com>
12260
12261         * config/sparc/sparc.md: Remove all traces of TARGET_LIVE_G0.
12262         (movsi_zero_liveg0): Remove.
12263         (movsf_insn_novis_liveg0): Remove.
12264         (negsi2): Remove.
12265         (negsi2_not_liveg0): Rename to negsi2.
12266         (one_cmplsi2): Remove.
12267         (one_cmplsi2_not_liveg0): Rename to one_cmplsi2.
12268         (one_cmplsi2_liveg0): Remove.
12269         * config/sparc/sparc.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE,
12270         MASK_LIVE_G0, MASK_BROKEN_SAVERESTORE): Remove.
12271         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_LIVE_G0 if.
12272         (PREDICATE_CODES): Remove zero_operand.
12273         * config/sparc/sparc.c: Remove all traces of TARGET_LIVE_G0 and
12274         TARGET_BROKEN_SAVERESTORE.
12275         (zero_operand): Remove.
12276         * config/sparc/splet.h (SUBTARGET_SWITCHES): Remove -mlive-g0,
12277         -mno-live-g0, -mbroken-saverestore and -mno-broken-saverestore
12278         options.
12279         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
12280         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
12281         TARGET_BROKEN_SAVERESTORE): Remove.
12282         * config/sparc/linux.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
12283         Remove.
12284         * config/sparc/linux64.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
12285         Remove.
12286         * config/sparc/sol2.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
12287         Remove.
12288
12289         * config/sparc/sparc.md (return_df_no_fpu): New pattern.
12290
12291 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
12292
12293         * cpplib.c (do_pragma_implementation): Fix off-by-one error
12294         truncating a string.  Don't assume tokens are nul terminated.
12295         Problem noted by Andreas Jaeger <aj@suse.de>
12296
12297 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
12298
12299         * dwarf2out.c (add_name_and_src_coords_attributes): Only add
12300         DW_AT_MIPS_linkage_name for TREE_PUBLIC decls.
12301         (ASM_OUTPUT_DWARF_ADDR_CONST): Don't output trailing newline.
12302
12303 2000-03-13  Richard Earnshaw <rearnsha@arm.com>
12304
12305         * stor-layout.c (new_record_layout_info): Fix typo inside ifdef
12306         STRUCTURE_SIZE_BOUNDARY.
12307
12308 2000-03-13  Mark Mitchell  <mark@codesourcery.com>
12309
12310         * tree.h (record_layout_info_s): New structure.
12311         (record_layout_info): New type.
12312         (new_record_layout_info): New function.
12313         (layout_field): Likewise.
12314         (finish_record_layout): Likewise.
12315         * stor-layout.c (layout_record): Remove.
12316         (new_record_layout_info): New function.
12317         (layout_field): New function, broken out from layout_record.
12318         (finalize_record_size): Likewise.
12319         (compute_record_mode): Likewise.
12320         (finalize_type_size): New function, broken out from layout_type.
12321         (finish_record_layout): Likewise.
12322         (layout_type): Use them.
12323
12324 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
12325
12326         * cpphash.c: Don't include version.h.
12327         (special_symbol) [case T_VERSION]: Look for the string in
12328         hp->value.cpval; don't use version_string.
12329         * cppinit.c (initialize_builtins): Set hp->value.cpval for
12330         __VERSION__ to version_string.
12331         * Makefile.in (cpphash.o): Update deps.
12332
12333 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
12334
12335         Convert cpplib to use libiberty/hashtab.c.
12336
12337         * cpplib.h (struct cpp_reader): Make hashtab and
12338         all_include_files of type 'struct htab *'.  Delete HASHSIZE
12339         and ALL_INCLUDE_HASHSIZE macros.
12340
12341         * cpphash.h: Update prototypes.
12342         (struct hashnode): Remove next, prev, and bucket_hdr members.
12343         Make length a size_t.  Add hash member.
12344         (struct ihash): Remove next member.  Add hash member.  Make
12345         name a flexible array member.
12346
12347         * cppfiles.c: Include hashtab.h.
12348         (include_hash): Delete.
12349         (IHASHSIZE): New macro.
12350         (hash_IHASH, eq_IHASH, _cpp_init_include_hash): New functions.
12351         (cpp_included): Do the hash lookup here.
12352         (_cpp_find_include_file): Rewrite.
12353         (cpp_read_file): Put the "fake" hash entry into the hash
12354         table.  Honor the control_macro, if it turns out we've seen
12355         the file before.  Don't push the buffer here.
12356         (_cpp_read_include_file): Push the buffer here.
12357         (OMODES): New macro.  Use it whenever we call open(2).
12358
12359         * cpphash.c: Include hashtab.h.
12360         (hash_HASHNODE, eq_HASHNODE, del_HASHNODE, dump_hash_helper,
12361         _cpp_init_macro_hash, _cpp_dump_macro_hash, _cpp_make_hashnode,
12362         _cpp_lookup_slot): New functions.
12363         (HASHSIZE): new macro.
12364         (hashf, _cpp_install, _cpp_delete_macro): Delete.
12365         (_cpp_lookup): Use hashtab.h routines.
12366
12367         * cppinit.c: Include hashtab.h.
12368         (cpp_reader_init): Call _cpp_init_macro_hash and
12369         _cpp_init_include_hash.  Don't allocate hashtab directly.
12370         (cpp_cleanup): Just call htab_delete on pfile->hashtab and
12371         pfile->all_include_files.
12372         (initialize_builtins): Use _cpp_make_hashnode and
12373         htab_find_slot to add hash entries.
12374         (cpp_finish): Just call _cpp_dump_macro_hash.
12375         * cpplib.c: Include hashtab.h.
12376         (do_define): Use _cpp_lookup_slot and _cpp_make_hashnode to
12377         create hash entries.
12378         (do_pragma_poison, do_assert): Likewise.
12379         (do_include): Don't push the buffer here.  Don't increment
12380         system_include_depth unless _cpp_read_include_file succeeds.
12381         (do_undef, do_unassert): Use _cpp_lookup_slot and htab_clear_slot
12382         or htab_remove_elt.
12383         (do_pragma_implementation): Use alloca to create copy.
12384
12385         * Makefile.in: Update dependencies.
12386
12387 2000-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12388
12389         * cppinit.c (cl_directive_handler): More K&R fixing.
12390
12391 Sat Mar 11 23:54:26 2000  Jim Wilson  <wilson@cygnus.com>
12392
12393         * config/ia64/ia64.c (ia64_compute_frame_size): Align size to
12394         STACK_BOUNDARY.
12395         * config/ia64/ia64.h (REGISTER_MOVE_COST): Add missing parentheses.
12396
12397 2000-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12398
12399         * cppinit.c (no_arg, no_ass, no_dir, no_fil, no_mac, no_pth):
12400         Change from char[] to macros.
12401
12402 2000-03-12  Neil Booth  <NeilB@earthling.net>
12403
12404         * cppinit.c (cpp_start_read): Update indirect function
12405         call to K&R C.
12406
12407 Sat Mar 11 16:18:12 2000  Jim Wilson  <wilson@cygnus.com>
12408
12409         * config/ia64/ia64.h (ADDITIONAL_REGISTER_NAMES): Fix typo in loc79
12410         entry.
12411
12412         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
12413         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyright messages.
12414
12415 2000-03-11  Neil Booth  <NeilB@earthling.net>
12416
12417         * cppinit.c (struct pending option): Replace undef with a
12418         pointer to a directive handling routine.
12419         (struct cpp_pending): Replace separate assert_ and define_
12420         lists with one directive_ list.
12421         (new_pending_define): Rename new_pending_directive. Extra
12422         argument is the directive's handling routine.
12423         (handle_option): Update to use new_pending_directive.
12424
12425 2000-03-11  Neil Booth  <NeilB@earthling.net>
12426
12427         * cppfiles.c (file_cleanup, _cpp_find_include_file,
12428         remap_filename, _cpp_read_include_file, actual_directory,
12429         hack_vms_include_specification): Replace bcopy(), index() etc
12430         calls.  Add casts to some allocations.  Make some variables
12431         pointers to const [unsigned] char.
12432         * cpphash.c (_cpp_install, macro_cleanup, collect_expansion,
12433         collect_formal_parameters): Similarly.
12434         * cppinit.c (struct pending_option, append_include_chain,
12435         cpp_options_init, cpp_reader_init, initialize_standard_includes,
12436         cpp_start_read, new_pending_define, handle_option): Similarly.
12437         * cpplib.c (cpp_define, copy_comment, do_define, do_include,
12438         do_undef, do_error, do_warning, do_pragma, do_pragma_once,
12439         do_pragma_implementation, detect_if_not_defined,
12440         do_ifdef, skip_if_group, cpp_get_token, parse_string,
12441         do_assert, do_unassert): Similarly.
12442         * cpplib.h (cpp_buffer, cpp_options): Update types.  Update
12443         function prototypes.
12444         * mkdeps.c (deps_add_target, deps_add_dep): cast allocations.
12445
12446 2000-03-10  Richard Henderson  <rth@cygnus.com>
12447
12448         * builtins.c (expand_builtin_strlen): Revert last change.
12449         Use emit_insn_before if we're at the beginning of a sequence.
12450
12451 2000-03-10  Jason Merrill  <jason@casey.cygnus.com>
12452
12453         * builtins.c (expand_builtin_strlen): Make sure that we have something
12454         at the beginning of the sequence.
12455
12456         * toplev.c (rest_of_compilation): Also set TREE_NOTHROW for
12457         deferred inlines.
12458
12459         * invoke.texi (C++ Dialect Options): Document -fno-enforce-eh-specs.
12460
12461 2000-03-10  Richard Henderson  <rth@cygnus.com>
12462
12463         * except.c (can_throw): Use INTVAL on a CONST_INT.
12464         (reachable_handlers): Likewise.
12465         * flow.c (count_basic_blocks, find_basic_blocks_1): Likewise.
12466
12467 2000-03-10  Andreas Jaeger  <aj@suse.de>
12468
12469         * config/mips/linux.h: Undefine MD_EXEC_PREFIX and
12470         MD_STARTFILE_PREFIX since those are not needed on linux.
12471         (ASM_FILE_START): New, from mips/gnu.h.
12472
12473 2000-03-09  Richard Henderson  <rth@cygnus.com>
12474             Alex Samuel  <samuel@codesourcery.com> and others
12475
12476         * Makefile.in (ssa.o): New rule.
12477         (OBJS): Add ssa.o.
12478         (STAGESTUFF): Add *.ssa and *.ussa.
12479         (mostlyclean): Delete *.ssa, *.ussa, */*.ssa, */*.ussa.
12480         * rtl.def (PHI): New RTL expression.
12481         * rtl.h (clear_log_links): New declaration.
12482         (convert_to_ssa): Likewise.
12483         (convert_from_ssa): Likewise.
12484         * flow.c (split_edge): If the entry node falls through to the
12485         split edge's source block, split the entry edge.
12486         (clear_log_links): New function.
12487         * toplev.c (ssa_dump): New variable.
12488         (flag_ssa): Likewise.
12489         (f_options): Add "ssa".
12490         (compile_file): Create SSA dump files.
12491         (rest_of_compilation): Go to and from SSA if enabled.
12492         (decide_d_option): Handle -de for SSA dump files.
12493         * ssa.c: New file.
12494
12495 Thu Mar  9 20:01:38 2000  Jim Wilson  <wilson@cygnus.com>
12496
12497         * expr.c (expand_assignment): For a CALL_EXPR, special case PARM_DECL
12498         same as VAR_DECL.
12499
12500 2000-03-09  Benjamin Kosnik  <bkoz@cygnus.com>
12501
12502         * config/alpha/linux.h (WCHAR_TYPE): Make consistent.
12503
12504 Thu Mar  9 18:10:02 2000  Jeffrey A Law  (law@cygnus.com)
12505
12506         * config/pa/pa-hpux10.h (LIB_SPEC): Correct typo in !p case.
12507         (MD_STARTFILE_PREFIX_1): New macro.
12508
12509 2000-03-09  Robert Lipe  <robertl@sco.com>
12510
12511         * config/ia64/ia64.c: Include system.h.
12512
12513 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
12514
12515         * except.c (nothrow_function_p): If -fno-exceptions, just return.
12516         (init_eh_nesting_info): Likewise.
12517
12518         * tree.h (struct tree_common): Rename raises_flag to nothrow_flag.
12519         (TREE_NOTHROW): Rename from TREE_RAISES.
12520         * toplev.c (rest_of_compilation): Set it.
12521         * print-tree.c (print_node): Adjust.
12522         * tree.c (stabilize_reference, build, build1): Don't set TREE_RAISES.
12523         (stabilize_reference_1, get_unwidened, get_narrower): Likewise.
12524         * calls.c (emit_call_1): Add 'nothrow' parm.  Add
12525         REG_EH_REGION note as appropriate.
12526         (libfunc_nothrow): New fn.
12527         (emit_library_call, emit_library_call_value): Use it.
12528         (expand_call): Check TREE_NOTHROW.
12529
12530         * varasm.c (make_decl_rtl): Skip initial '*' when setting
12531         DECL_ASSEMBLER_NAME.
12532
12533 2000-03-09  Andreas Jaeger  <aj@suse.de>
12534
12535         * mips/linux.h (NO_IMPLICIT_EXTERN_C): Define.
12536         (TARGET_MEM_FUNCTIONS): Define.
12537
12538 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
12539
12540         * i386.c (ix86_valid_type_attribute_p): Use compare_tree_int.
12541
12542         * except.c (can_throw): See through a SEQUENCE.
12543         (nothrow_function_p): New fn.
12544         * except.h: Declare it.
12545         * function.c (current_function_nothrow): New var.
12546         (prepare_function_start): Initialize it.
12547         * output.h: Declare it.
12548         * toplev.c (rest_of_compilation): Set it.
12549         * dwarf2out.c (dwarf2out_begin_prologue): Use it.
12550
12551 2000-03-09  Zack Weinberg  <zack@wolery.cumb.org>
12552
12553         * cpphash.c (collect_formal_parameters): strncmp returns 0 for
12554         match.  (cpp_compare_defs): Count the nul separator when
12555         advancing over argument names.
12556
12557 2000-03-09  Bernd Schmidt  <bernds@cygnus.co.uk>
12558
12559         * recog.c (preprocess_constraints): Matching constraints affect
12560         same alternative/different operand, not same operand/different
12561         alternative.
12562
12563         * reload1.c (eliminate_regs_in_insn): Handle additions of eliminable
12564         register and a constant specially.
12565
12566 2000-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12567
12568         * libgcc2.h: New file.
12569         * libgcc2.c: Move macros, typedefs and prototypes to libgcc2.h.
12570
12571 Wed Mar  8 16:19:42 2000  Jim Wilson  <wilson@cygnus.com>
12572
12573         * configure.in (ia64*-*-elf*, ia64*-*-linux*): New.
12574         * configure: Regenerate.
12575         * config/ia64: New.
12576
12577 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
12578
12579         * Makefile.in (LIBCPP_DEPS): New macro.
12580         (cpplib.o, cpphash.o, cpperror.o, cppexp.o, cppfiles.o): Use
12581         it to declare deps.
12582         * cpperror.c: Include cpphash.h.
12583         * cppexp.c: Include cpphash.h.  Remove MULTIBYTE_CHARS
12584         dingleberry.
12585         (lex): Don't use CPP_WARN_UNDEF.
12586         (_cpp_parse_expr): Return an int, the truth value.
12587         * cppfiles.c: Include cpphash.h.
12588         (_cpp_merge_include_chains): Move to cppinit.c and make static.
12589         * cppinit.c (include_defaults_array): Disentangle.
12590         (cpp_cleanup): Don't free the if stack here.
12591         (cpp_finish): Pop off all buffers, not just one.
12592         * cpplib.c (eval_if_expr): Return int.
12593         (do_xifdef): Rename do_ifdef.
12594         (handle_directive): Don't use CPP_PREPROCESSED.
12595         (cpp_get_token): Don't use CPP_C89.
12596         * fix-header.c: Don't use CPP_OPTIONS.
12597
12598         * cpplib.h: Move U_CHAR, enum node_type, struct
12599         file_name_list, struct ihash, is_idchar, is_idstart,
12600         is_numchar, is_numstart, is_hspace, is_space, CPP_BUF_PEEK,
12601         CPP_BUF_GET, CPP_FORWARD, CPP_PUTS, CPP_PUTS_Q, CPP_PUTC,
12602         CPP_PUTC_Q, CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q,
12603         CPP_BUMP_BUFFER_LINE, CPP_BUMP_LINE, CPP_PREV_BUFFER,
12604         CPP_PRINT_DEPS, CPP_TRADITIONAL, CPP_PEDANTIC, and prototypes
12605         of _cpp_simplify_pathname, _cpp_find_include_file,
12606         _cpp_read_include_file, and _cpp_parse_expr to cpphash.h.
12607         Move struct if_stack to cpplib.c.  Move struct cpp_pending to
12608         cppinit.c.
12609         Change all uses of U_CHAR to be unsigned char instead.
12610         Delete CPP_WARN_UNDEF, CPP_C89, and CPP_PREPROCESSED.
12611
12612 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
12613
12614         * dwarf2out.c (dw_fde_struct): Add 'nothrow'.
12615         (dwarf2out_begin_prologue): Set it.
12616         (output_call_frame_info): Don't emit EH unwind info for leaves.
12617
12618         * flow.c (count_basic_blocks, find_basic_blocks_1): A rethrow
12619         can occur outside of an EH region.
12620         * except.c: Correct comments about rethrow behavior.
12621         (rethrow_symbol_map): Do nothing if !flag_new_exceptions.
12622
12623 2000-03-08  Andrew MacLeod  <amacleod@cygnus.com>
12624
12625         * flow.c (make_edges): Always call make_eh_edge for calls.
12626
12627 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
12628
12629         * cpplib.h (parse_underflow_t, CPP_NULL_BUFFER): Delete.
12630         (struct cpp_buffer): Remove fname and underflow fields.
12631         (struct cpp_reader): Remove get_token field.
12632         (struct include_hash): Rename to struct ihash.  Add typedef to
12633         IHASH.
12634         (struct if_stack): Remove fname field.
12635         (IF_STACK_FRAME): Rename to IF_STACK.
12636
12637         * cpperror.c (print_containing_files): Trust that there are no
12638         macro buffers below the top file buffer.
12639         * cppfiles.c: Replace all references to 'struct include_hash'
12640         with 'IHASH'.  Rename initialize_input_buffer to
12641         init_input_buffer.  Don't set or reference cpp_buffer->fname,
12642         use buffer->ihash->name instead.
12643         * cpphash.c (special_symbol): Use cpp_file_buffer.  Use NULL
12644         not CPP_NULL_BUFFER.
12645         * cppinit.c: Use NULL not CPP_NULL_BUFFER, IF_STACK not
12646         IF_STACK_FRAME, IHASH not struct include_hash.
12647         * cpplib.c: Rename eval_if_expression to eval_if_expr.  Remove
12648         null_underflow.  Use IF_STACK not IF_STACK_FRAME, IHASH not
12649         struct include_hash, NULL not CPP_NULL_BUFFER.  Remove all
12650         references to cpp_buffer->fname (delete entirely, or use
12651         ->ihash->name instead) and IF_STACK->fname.
12652         (cpp_push_buffer): Don't set new->underflow.
12653         (do_include): Use cpp_file_buffer.
12654
12655         * cpphash.c (collect_formal_parameters): Remove duplicate
12656         increment of argslen.  Pedwarn in C99 mode if __VA_ARGS__ is
12657         used as a macro argument name.  Don't append "..." to namebuf
12658         for varargs macros.  After we're done scanning, go through
12659         namebuf and make it NUL separated, not comma separated.
12660         (_cpp_compare_defs): Remove register tag from variables.
12661         Expect defn->argnames to be NUL separated.
12662         (_cpp_dump_definition): Expect defn->argnames to be NUL
12663         separated and in forward order.
12664         * cpphash.h: Update documentation of argnames field.
12665
12666 2000-03-08  Richard Henderson  <rth@cygnus.com>
12667
12668         * builtins.c (expand_builtin_strlen): Be prepared for strlensi
12669         to fail.  Don't pre-expand the source operand.
12670
12671         * i386.md (strlensi): Initialize eoschar and align before use.
12672
12673 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
12674
12675         * expr.c (expand_expr, case ARRAY_REF): Still check for missing
12676         CONSTRUCTOR element.
12677
12678 2000-03-08  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
12679
12680         * mips.c (mips_expand_prologue): If the last
12681         named argument is the vararg marker "va_list", treat it as
12682         an unnamed argument.
12683
12684 2000-03-08  Clinton Popetz  <cpopetz@cygnus.com>
12685
12686         * dbxout.c (dbxout_parms): When correcting for promoted
12687         big-endian parameters, use the mode of the DECL_RTL rather
12688         than UNITS_PER_WORD.
12689
12690 2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
12691
12692         * c-common.h (make_fname_decl): Declare.
12693         * c-common.c (make_fname_decl): Define.
12694         (declare_hidden_char_array): Remove.
12695         (declare_function_name): Use make_fname_decl.
12696         * c-decl.c (c_make_fname_decl): New function.
12697         (init_decl_processing): Set make_fname_decl.
12698
12699 Tue Mar  7 23:50:31 2000  Jeffrey A Law  (law@cygnus.com)
12700
12701         * cccp.c (handle_directive): Initialize backslash_newlines_p.
12702
12703 2000-03-07  Philipp Thomas  <pthomas@suse.de>
12704
12705         * po/POTFILES.in: Remove cppalloc.c from file list.
12706
12707 2000-03-07  Steve Chamberlain  <sac@pobox.com>
12708
12709         * pj.c (pj_expand_prologue): current_function->args_info is
12710         now current_function_args_info.
12711
12712         * pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX,
12713         LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL,
12714         ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define.
12715
12716 2000-03-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12717
12718         * config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is
12719         output as hexadecimal rather than the default octal.
12720
12721 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
12722
12723         * cpphash.c (special_symbol): Fix thinko in previous commit.
12724
12725 2000-03-07  Neil Booth  <NeilB@earthling.net>
12726
12727         * cppexp.c (struct operation, left_shift, right_shift,
12728         cpp_parse_expr): Change some "char"s to "U_CHAR"s, and some
12729         "int"s to "unsigned int"s.
12730         * cpplib.c (detect_if_not_defined, do_assert, do_unassert):
12731         Similarly.
12732         * cpplib.h: Update for above.
12733         * mkdeps.c (deps_init, deps_calc_target): Cast pointers
12734         returned from allocations.
12735
12736         * cppinit.c (opt_comp, parse_options): New functions.
12737         (handle_option): Use parse_option to parse a single command
12738         line option, that possibly takes an argument.
12739         (cpp_handle_options): Sort the array of command line options on
12740         first invocation (non-ASCII hosts only).
12741         (print_help): Update.
12742
12743 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
12744
12745         * mkdeps.c (munge): Fix off-by-one bug and inconsistencies in
12746         backslash counting loops.  Problem noted by Matt Kraai <kraai@ghs.com>.
12747
12748         * cppfiles.c (_cpp_find_include_file): Make sure ih->name is
12749         initialized.
12750         * cppinit.c (cpp_cleanup): Free imp->nshort also.
12751
12752         * cpperror.c (cpp_print_containing_files,
12753         cpp_print_file_and_line, v_cpp_message): Rename to
12754         print_containing_files, print_file_and_line, and v_message.
12755         * cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename
12756         to _cpp_parse_expr, parse_escape, and lex.
12757         (parse_charconst): Remove broken multibyte support.
12758         * cppfiles.c (include_hash): Make static.
12759         (cpp_included): New function.
12760         (merge_include_chains, find_include_file, finclude,
12761         simplify_pathname): Rename to _cpp_merge_include_chains,
12762         _cpp_find_include_file, _cpp_read_include_file, and
12763         _cpp_simplify_pathname.
12764         * cpphash.c (cpp_lookup, free_definition, delete_macro,
12765         cpp_install, create_definition, macroexpand, compare_defs,
12766         dump_definition): Rename to _cpp_lookup, _cpp_free_definition,
12767         _cpp_delete_macro, _cpp_install, _cpp_create_definition,
12768         _cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition.
12769         * cppinit.c (cpp_handle_option): Rename to handle_option, make
12770         static.
12771         * cpplib.c: Remove extern prototype of cpp_parse_expr.
12772
12773         * cpphash.h: Update prototypes.
12774         * cpplib.h: Likewise.  Prototype _cpp_parse_expr here.
12775
12776 2000-03-07  Andrew Haley  <aph@cygnus.com>
12777
12778         * config/mips/mips.h (PTRDIFF_TYPE): Revert broken change;
12779         PTRDIFF_TYPE should be based solely on Pmode.
12780         (SIZE_TYPE): ditto.
12781
12782 2000-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12783
12784         * rtl.h (rtunion_def): Constify member `rtstr'.
12785         (emit_line_note_after, emit_line_note, emit_line_note_force,
12786         emit_note, decode_asm_operands): Constify.
12787
12788         * cse.c (canon_hash): Likewise.
12789
12790         * dbxout.c (dbxout_block): Likewise.
12791
12792         * diagnostic.c (file_and_line_for_asm, v_error_for_asm,
12793         v_warning_for_asm): Likewise.
12794
12795         * dwarfout.c (function_start_label): Likewise.
12796
12797         * emit-rtl.c (emit_line_note_after, emit_line_note, emit_note,
12798         emit_line_note_force): Likewise.
12799
12800         * final.c (last_filename, asm_insn_count, final_scan_insn,
12801         output_source_line): Likewise.
12802
12803         * function.h (struct emit_status): Likewise.
12804
12805         * gcse.c (hash_expr_1): Likewise.
12806
12807         * genattr.c (gen_attr, main): Likewise.
12808
12809         * genattrtab.c (struct function_unit, current_alternative_string,
12810         write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq,
12811         attr_numeral, check_attr_test, check_attr_value,
12812         convert_set_attr_alternative, convert_set_attr,
12813         compute_alternative_mask, simplify_by_exploding, gen_attr,
12814         gen_unit): Likewise.
12815
12816         * genflags.c (gen_insn): Likewise.
12817
12818         * gengenrtl.c (type_from_format): Likewise.
12819
12820         * genopinit.c (gen_insn): Likewise.
12821
12822         * genoutput.c (n_occurrences, process_template, process_template):
12823         Likewise.
12824
12825         * ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
12826         Likewise.
12827
12828         * ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
12829         Likewise.
12830
12831         * ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable,
12832         ggc_set_mark, ggc_get_size): Likewise.
12833
12834         * objc/objc-act.c (build_module_descriptor, finish_objc): Likewise.
12835
12836         * optabs.c (init_one_libfunc): Likewise.
12837
12838         * output.h (assemble_start_function): Likewise.
12839
12840         * recog.c (decode_asm_operands): Likewise.
12841
12842         * toplev.c (rest_of_compilation): Likewise.
12843
12844         * tree.h (emit_line_note_after, emit_line_note,
12845         emit_line_note_force): Likewise.
12846
12847         * varasm.c (asm_output_bss, asm_output_aligned_bss,
12848         asm_emit_uninitialised, assemble_start_function,
12849         assemble_variable, const_hash, compare_constant_1,
12850         find_pool_constant, mark_constant_pool, assemble_alias): Likewise.
12851
12852         * xcoffout.h (DBX_FINISH_SYMBOL): Likewise.
12853
12854         * alpha/alpha.md (call_vms, call_value_vms): Likewise.
12855
12856         * arm/aof.h (ASM_OUTPUT_ASCII): Likewise.
12857
12858         * arm/aout.h (ASM_OUTPUT_ASCII): Likewise.
12859
12860         * arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p,
12861         arm_dllimport_name_p): Likewise.
12862
12863         * arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op):
12864         Likewise.
12865
12866         * arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise.
12867
12868         * arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12869
12870         * arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p,
12871         arm_mark_dllexport, arm_mark_dllimport,
12872         arm_pe_encode_section_info): Likewise.
12873
12874         * arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS,
12875         ASM_FINISH_DECLARE_OBJECT): Likewise.
12876
12877         * arm/thumb.c (thumb_function_prologue): Likewise.
12878
12879         * arm/thumb.h (ASM_OUTPUT_ASCII): Likewise.
12880
12881         * avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12882
12883         * clipper/clix.h (ASM_OUTPUT_ASCII): Likewise.
12884
12885         * fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise.
12886
12887         * i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise.
12888
12889         * i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12890
12891         * i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING,
12892         ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise.
12893
12894         * i386/i386-protos.h (asm_output_function_prefix): Likewise.
12895
12896         * i386/i386.c (asm_output_function_prefix): Likewise.
12897
12898         * i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise.
12899
12900         * i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12901
12902         * i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise.
12903
12904         * i386/sco5.h (ASM_FINISH_DECLARE_OBJECT,
12905         ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII,
12906         ASM_OUTPUT_SECTION_NAME): Likewise.
12907
12908         * i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise.
12909
12910         * i860/paragon.h (ASM_OUTPUT_ASCII): Likewise.
12911
12912         * i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise.
12913
12914         * m32r/m32r.c (m32r_encode_section_info): Likewise.
12915
12916         * mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12917
12918         * mcore/mcore.c (mcore_encode_section_info): Likewise.
12919
12920         * mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12921
12922         * mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12923
12924         * mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12925
12926         * mips/mips.h (ASM_OUTPUT_IDENT): Likewise.
12927
12928         * mips/mips.md (movdi, movsi): Likewise.
12929
12930         * mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12931
12932         * netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12933
12934         * openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12935
12936         * ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
12937         ASM_OUTPUT_ASCII): Likewise.
12938
12939         * rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog,
12940         output_mi_thunk, output_toc): Likewise.
12941
12942         * rs6000/rs6000.md (movsi): Likewise.
12943
12944         * rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise.
12945
12946         * tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise.
12947
12948         * v850/v850.c (print_operand, print_operand_address,
12949         v850_encode_data_area): Likewise.
12950
12951 2000-03-07  Clinton Popetz  <cpopetz@cygnus.com>
12952
12953         * config/mips/mips.md (zero_extendsidi2): Always force operand
12954         one to memory for mips16.
12955
12956 Mon Mar  6 15:22:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12957
12958         * tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts.
12959         (struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT.
12960         (attribute_hash_list, type_hash_canon): hashcode is now unsigned.
12961         (type_hash_lookup, type_hash_add, type_hash_list): Likewise.
12962         (min_precision): Result is unsigned.
12963         (add_double, neg_double, mul_double): Low word is unsigned.
12964         (lshift_double, rshift_double, lrotate_double): Likewise.
12965         (rrotate_double, div_and_round_double): Likewise.
12966         (tree_floor_log2, compare_tree_int): New functions.
12967         (preserve_rtl_expr_temps): New declaration.
12968         * c-common.c (declare_hidden_char_array): Use compare_tree_int.
12969         (decl_attributes): Use tree_log2 to find alignment.
12970         Check for TREE_INT_CST_HIGH for format args.
12971         (min_precision): Now unsigned.
12972         Use tree_floor_log2.
12973         (truthvalue_conversion): Delete long-disabled code.
12974         * c-decl.c (finish_struct): Clean up tests on field width.
12975         (finish_function): Use compare_tree_int.
12976         * c-pragma.c (handle_pragma_token): Use tree_log2 for alignment.
12977         * c-typeck.c (comptypes): Use tree_int_cst_equal.
12978         (default_conversion, digest_init): Use compare_tree_int.
12979         (build_binary_op): Use integer_all_onesp and compare_tree_int.
12980         Fix type errors in forming masks.
12981         * calls.c (initialize_argument_information): Use compare_tree_int.
12982         * dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
12983         * except.c (expand_eh_region_start_tree): Use compare_tree_int.
12984         * expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop.
12985         (store_field): Use compare_tree_int.
12986         (expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT.
12987         (expand_expr, case ARRAY_REF): Use compare_tree_int.
12988         (do_jump, case BIT_AND_EXPR): Use tree_floor_log2.
12989         (do_store_flag): Use compare_tree_int.
12990         * fold-const.c (encode, decode): Low part is always unsigned.
12991         (force_fit_type, add_double, neg_double, mul_double): Likewise.
12992         (lshift_double, rshift_double, lrotate_double): Likewise.
12993         (rrotate_double, div_and_round_double, int_const_binop): Likewise.
12994         (fold_convert): Use compare_tree_int.
12995         (operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal.
12996         (invert_truthvalue, case INTEGER_CST): Likewise.
12997         (fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW.
12998         * mkdeps.c (deps_dummy_targets): Make I unsigned.
12999         * rtl.h (add_double, neg_double, mul_double): Low words are unsigned.
13000         (lshift_double, rshift_double, lrotate_double, rrotate_double):
13001         Likewise.
13002         * stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree.
13003         (expand_end_case): Use compare_tree_int.
13004         (estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
13005         * stor-layout.c (mode_for_size_tree): Use compare_tree_int.
13006         (layout_decl): Likewise.
13007         (layout_record, layout_union): Make sizes unsigned.
13008         (layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype.
13009         (layout_type, case QUAL_UNION_TYPE): Use compare_tree_int.
13010         * tree.c (struct type_hash): hashcode is unsigned.
13011         (build_type_attribute_variant, type_hash_list): Likewise.
13012         (type_hash_lookup, type_hash_add, type_hash_canon): Likewise.
13013         (attribute_hash_list, build_array_type, build_method_type): Likewise.
13014         (build_complex_type): Likewise.
13015         (real_value_from_int_cst): Remove unneeded casts.
13016         (integer_all_onesp): Add casts.
13017         (tree_floor_log2, compare_tree_int): New functions.
13018         (build_index_type): Use tree_int_cst_sgn.
13019         * varasm.c (assemble_variable): Use compare_tree_int.
13020
13021 2000-03-06  Jason Merrill  <jason@casey.cygnus.com>
13022
13023         * cpphash.c (collect_expansion): Also catch ## at start of macro.
13024
13025         * varasm.c (make_decl_rtl): Don't add a number to members of
13026         local classes.
13027         (make_function_rtl): Likewise.
13028
13029 2000-03-06  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13030
13031         * gcse.c (compute_can_copy): Adjust if/else blocks from rth's
13032         patch from 2000-01-28.
13033
13034 2000-03-06  Clinton Popetz  <cpopetz@cygnus.com>
13035
13036         * config/sh/sh.c: (barrier_align): Handle a delay slot that is
13037         filled with an insn from the jump target.
13038
13039 2000-03-07  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13040
13041         * config/c4x/c4x-protos.h (c4x_global_name): Constify char *.
13042         (c4x_external_ref): Likewise.
13043         * config/c4x/c4x.c (struct name_list): Likewise.
13044
13045 1999-12-16  Ben Collins  <bcollins@debian.org>
13046
13047         * Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth
13048         argument to genmultilib.
13049         * genmultilib: accept new MULTILIB_EXCLUSIONS option and output
13050         the contents into the multilib.h header.
13051         * gcc.c: Declare multilib_exclusions for the specs file.
13052         (set_multilib_dir): Use it.
13053         (print_multilib_info): Likewise.
13054         * t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option
13055         to pass to genmultilib.
13056
13057 2000-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13058
13059         * builtins.c (built_in_class_names, built_in_names): Constify a
13060         char*.
13061
13062         * gmon-sol2.c (monstartup, moncontrol): Cast ptrs to long, not
13063         int.
13064         (_mcleanup): Ensure value matches format specifier in sprintf.
13065
13066         * cpphash.c (special_symbol): Don't needlessly cast away
13067         const-ness.
13068
13069         * cppinit.c (base_name): Delete unused prototype.
13070
13071         * mkdeps.c (deps_init): Make definition K&R safe.
13072
13073         * tree.h (built_in_class_names, built_in_names): Constify a
13074         char*.
13075
13076 2000-03-06  Jakub Jelinek  <jakub@redhat.com>
13077
13078         * config/sparc/sparc.c (eligible_for_epilogue_delay): Accept
13079         floating point instructions for epilogue delay.
13080
13081         * config/sparc/sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs
13082         to gas if it supports .register pseudo.
13083
13084         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to
13085         LONG_DOUBLE_TYPE_SIZE if not defined.
13086         Use MAX_LONG_DOUBLE_TYPE_SIZE instead of
13087         LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses.
13088         * real.c: Likewise.
13089         * gengenrtl.c: Likewise.
13090         * print-rtl.c: Likewise.
13091         * rtl.c: Likewise.
13092         * config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set
13093         MASK_LONG_DOUBLE_128.
13094         * config/sparc/sol2.h (TARGET_DEFAULT): Likewise.
13095         * config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise.
13096         * config/sparc/linux64 (TARGET_DEFAULT): Likewise.
13097         (SUBTARGET_SWITCHES): Define.
13098         (CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling
13099         with -mlong-double-128.
13100         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
13101         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
13102         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
13103         (CC1_SPEC): Include -mlong-double-{64,128} as needed.
13104         * config/sparc/linux.h (SUBTARGET_SWITCHES): Define.
13105         (CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling
13106         with -mlong-double-128.
13107         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
13108         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
13109         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
13110         * config/sparc/sparc.h (MASK_LONG_DOUBLE_128,
13111         TARGET_LONG_DOUBLE_128): Define.
13112         * config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove.
13113         * config/sparc/sparc.c (sparc_override_options): Disallow 64bit
13114         long double on TARGET_ARCH64.
13115
13116 2000-03-06  Mark Mitchell  <mark@codesourcery.com>
13117
13118         * function.c (free_temps_for_rtl_expr): Don't free slots
13119         that have been pushed into a higher level.
13120
13121         Revert this patch:
13122         2000-03-05  Mark Mitchell  <mark@codesourcery.com>
13123
13124 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
13125
13126         * basic-block.h (ALLOCA_REG_SET): Remove.
13127         (INITIALIZE_REG_SET): New macro.
13128         * flow.c (update_life_info): Use it.
13129         (calculate_global_regs_live): Likewise.
13130         (propagate_block): Likewise.
13131         * global.c (build_insn_chain): Likewise.
13132         * haifa-sched.c (schedule_region): Likewise.
13133
13134 2000-03-05  Stephane Carrez  <stcarrez@worldnet.fr>
13135
13136         * dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer.
13137         (ASM_OUTPUT_DWARF_ADDR_CONST): Use UNALIGNED_WORD_ASM_OP.
13138         (DWARF_ARANGES_PAD_SIZE): New define.
13139         (output_aranges): Use it to pad the address range header.
13140         (DWARF_ROUND): Fix for non power of 2 rounding.
13141
13142 2000-03-05  Jason Merrill  <jason@casey.cygnus.com>
13143
13144         * mkdeps.c (deps_calc_target): Remove incorrect 'const'.
13145
13146 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
13147
13148         * tree.def (RTL_EXPR): Update documentation.
13149         * tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro.
13150         * expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE.
13151         * function.c (preserve_rtl_expr_temp): New function.
13152         (preserve_rtl_expr_temps): Likewise.
13153         (preserve_rtl_expr_result): Use it.
13154
13155         Revert this patch:
13156         2000-03-04  Mark Mitchell  <mark@codesourcery.com>
13157
13158 2000-03-04  Thomas Schuster <Thomas.Schuster@gmx.net>
13159
13160         * regmove.c (copy_src_to_dest)  Do not create src->dest move
13161         for unchanging destination.
13162
13163 2000-03-04  Mark Mitchell  <mark@codesourcery.com>
13164
13165         * function.h (struct sequence_stack): Remove rtl_expr.
13166         (struct emit_staus): Likewise.
13167         (seq_rtl_expr): Remove.
13168         * tree.h (free_temps_for_rtl_expr): Don't declare.
13169         (start_sequence_for_rtl_expr): Likewise.
13170         * rtl.h (preserve_rtl_expr_result): Likewise.
13171         * emit-rtl.c (start_sequence): Don't set sequence_rtl_expr.
13172         (start_sequence_for_rtl_expr): Remove.
13173         (push_topmost_sequence): Don't save sequence_rtl_expr.
13174         (pop_topmost_sequence): Remove comment about not restoring it.
13175         (end_sequence): Don't set seq_rtl_expr.
13176         (init_emit): Don't initialize it.
13177         (mark_sequence_stack): Don't mark it.
13178         (mark_emit_status): Likewise.
13179         * except.c (protect_with_terminate): Use
13180         start_sequence_for_rtl_expr, not start_sequence.
13181         * expr.c (expand_expr, case RTL_EXPR): Don't call
13182         preserve_rtl_expr_result or free_temps_for_rtl_expr.
13183         * function.c (assign_stack_temp_for_type): Don't set rtl_expr.
13184         (preserve_rtl_expr_result): Remove.
13185         (free_temps_for_rtl_expr): Likewise.
13186         (pop_temp_slots): Likewise.
13187         (mark_temp_slot): Don't mark the rtl_expr.
13188         * stmt.c (expand_start_stmt_expr): Use start_sequence, not
13189         start_sequence_for_rtl_expr.
13190
13191 2000-03-04  Zack Weinberg  <zack@wolery.cumb.org>
13192
13193         * mkdeps.c, mkdeps.h: New files.
13194         * po/POTFILES.in: Add them.
13195         * Makefile.in (LIBCPP_OBJS): Add mkdeps.o.
13196         (cpplib.o, cppinit.o): Depend on mkdeps.h.
13197         (mkdeps.o): New target.
13198
13199         * cppfiles.c: Delete deps_output.
13200         * cppinit.c: Include mkdeps.h.  Delete known_suffixes,
13201         OBJECT_SUFFIX, and base_name.
13202         (cpp_cleanup): Use deps_free.  Free ihash->name when clearing
13203         the include hash.
13204         (initialize_dependency_output): Use deps_init,
13205         deps_add_target, deps_calc_target, and deps_add_dep.  Remove
13206         all the unnecessary string bashing.
13207         (cpp_finish): Use deps_write.  Remove an unnecessary nesting
13208         level.
13209         * cpplib.c (do_include): Use deps_add_dep.
13210         * cpplib.h (struct cpp_reader): Replace deps_buffer,
13211         deps_allocated_size, deps_size, deps_column members with
13212         single pointer to a struct deps.  Delete prototype of
13213         deps_output.
13214
13215         * cppinit.c: Fix thinko in previous patch.
13216
13217 Sat Mar  4 11:32:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13218
13219         * machmode.h (mode_for_size, smallest_mode_for_size): SIZE now signed.
13220         * stor-layout.c (mode_for_size, smallest_mode_for_size): Likewise.
13221         (mode_for_size_tree): New function.
13222         (layout_decl, layout_type): Call it and clean up BLKmode checks.
13223         * tree.h (mode_for_size_tree): New declaration.
13224
13225         * toplev.c (debug_ignore_block): Mark arg BLOCK as possibly unused.
13226
13227 2000-03-04  Jason Merrill  <jason@casey.cygnus.com>
13228
13229         * stmt.c (is_body_block): Move...
13230         * dwarfout.c, dwarf2out.c: ...from here.
13231         * tree.h: Declare it.
13232         * emit-rtl.c (remove_unncessary_notes): Don't remove the body block.
13233         * final.c (final_start_function): Do call remove_unnecessary_notes
13234         when scheduling.
13235
13236 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
13237
13238         * config/vax/xm-vms.h: Define OBJECT_SUFFIX and EXECUTABLE_SUFFIX.
13239
13240         * cpplib.h (_dollar_ok): New macro.
13241         (is_idchar, is_idstart): Use it.
13242         (IStable): Rename to _cpp_IStable.  Declare it const if
13243         gcc >=2.7 or C99.  Delete all references to FAKE_CONST.
13244         (is_idchar, is_idstart, is_numchar, is_numstart, is_hspace,
13245         is_space): Update for renamed IStable.
13246
13247         * cppinit.c: Delete all references to FAKE_CONST and CAT
13248         macros. Define init_IStable as empty macro if gcc >=2.7 or
13249         C99. Change TABLE() to ISTABLE and hardcode name of table.
13250         (cpp_start_read): Don't change the IStable based on
13251         dollars_in_ident.
13252
13253         * cpphash.c (unsafe_chars): Add pfile argument.  All callers
13254         changed.  Handle '$' for char1 correctly.
13255         * cpplib.c (cpp_get_token): Use is_numchar when parsing numbers.
13256
13257         * cppexp.c (tokentab2): Make const.
13258         (cpp_lex): Make toktab const.
13259         * cppinit.c (include_defaults_array): Make const.
13260         (initialize_standard_includes): Make default_include const.
13261
13262 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
13263
13264         * dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning.
13265         (dwarf2out_decl): Functions can now have DECL_IGNORED_P.
13266         (gen_decl_die): Likewise.
13267         * dwarfout.c (dwarfout_file_scope_decl): Likewise.
13268         (output_decl): Likewise.
13269
13270         * varasm.c (make_function_rtl): If we change the name used in the
13271         rtl, update DECL_ASSEMBLER_NAME accordingly.
13272         (make_decl_rtl): Likewise.
13273
13274         * toplev.c (rest_of_compilation): Tweak formatting.
13275
13276         * toplev.c (rest_of_compilation): find_loop_tree_blocks before
13277         remove_unnecessary_notes.
13278         (debug_ignore_block): New fn.
13279         * toplev.h: Declare it.
13280         * emit-rtl.c (remove_unncessary_notes): Call it.
13281         * dwarf2out.c (dwarf2out_ignore_block): New fn.
13282         * dwarf2out.h: Declare it.
13283         * final.c (final_start_function): Don't call remove_unnecessary_notes
13284         if we did insn scheduling.
13285
13286 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
13287
13288         * cppinit.c (cpp_handle_option): Set opts->pedantic directly.
13289         * cpplib.h: Delete SET_CPP_PEDANTIC.
13290
13291 Fri Mar  3 14:56:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13292
13293         * expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if
13294         result is a RECORD_TYPE.
13295
13296 2000-03-03  Jonathan Larmour  <jlarmour@cygnus.co.uk>
13297
13298         * mips/elf.h (CTOR_LISTS_DEFINED_EXTERNALLY): Added.
13299
13300 2000-03-03  Richard Henderson  <rth@cygnus.com>
13301
13302         * alpha.c (alpha_emit_set_const_1): Re-order cases to prefer
13303         addition over compliments over shifts.
13304
13305 Fri Mar  3 12:49:28 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13306
13307         * reload1.c (reload_combine_note_use): Handle return register USEs.
13308         REG case: Handle multi-hard-register hard regs.
13309
13310 Fri Mar  3 07:38:34 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13311
13312         * md.texi: Document use of '*' in insn pattern name.
13313
13314 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
13315
13316         * calls.c (special_function_p): operator new may not be malloc-like.
13317
13318         * gcse.c (dump_hash_table): Really fix error in last change.
13319
13320 2000-03-02  Denis Chertykov  <denisc@overta.ru>
13321
13322         * avr.c (print_operand): Use print_operand_address instead of
13323         output_addr_const.
13324         * avr/libgcc.S: Cleanup code.
13325
13326 2000-03-02  Richard Henderson  <rth@cygnus.com>
13327
13328         * alpha.c (alpha_emit_set_const_1): Also try c + small constant.
13329
13330 2000-03-02  Mark Mitchell  <mark@codesourcery.com>
13331
13332         * tree.h (TYPE_ALIGN_UNIT): New macro.
13333
13334 2000-03-02  Clinton Popetz  <cpopetz@cygnus.com>
13335
13336         * i386.c: (constant_call_address_operand): Reject CONST_INT.
13337
13338 2000-03-02  Jason Merrill  <jason@casey.cygnus.com>
13339
13340         * cpplib.h (CPP_PEDANTIC): Only true if system_header_p is not set
13341         for the buffer.
13342         (SET_CPP_PEDANTIC): New macro.
13343         * cpplib.c (do_include): Don't bother checking system_header_p.
13344         (do_warning, do_ident, do_assert, do_unassert): Likewise.
13345         * cppinit.c (cpp_handle_option): Use SET_CPP_PEDANTIC.
13346
13347         * function.h (struct expr_status): Add x_arg_space_so_far.
13348         (arg_space_so_far): New macro.
13349         * expr.c (init_expr): Initialize it.
13350         * calls.c (emit_call_1): Reset it.
13351         (compute_argument_block_size, expand_call): Use it.
13352         (expand_call, store_one_arg): Increment it.
13353
13354 Thu Mar  2 17:27:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13355
13356         * varasm.c (output_constant): Strip off a CONVERT_EXPR to
13357         a UNION_TYPE.
13358
13359 2000-03-02  Zack Weinberg  <zack@wolery.cumb.org>
13360
13361         * cppfiles.c (cpp_read_file): New function.
13362
13363         * cpphash.c (collect_expansion): Make sure to reset last_token
13364         to NORM when we hit a string.  Handle trailing whitespace
13365         properly when the expansion is empty.
13366         (create_definition): Disable line commands while parsing the
13367         directive line.
13368         (dump_definition): If pfile->lineno == 0, output a line
13369         command ahead of the dump, and add a trailing newline.
13370
13371         * cppinit.c (append_include_chain): Add fifth argument, which
13372         indicates whether or not system headers are C++ aware.
13373         (initialize_standard_includes): New function,
13374         broken out of read_and_prescan.  Pass 'cxx_aware' value from
13375         the include_defaults_array on to append_include_chain.
13376         (dump_special_to_buffer): Const-ify char array.
13377         (builtin_array): Don't dump __BASE_FILE__.
13378         (cpp_start_read): Use cpp_read_file.  Reorder code for
13379         clarity.  Don't output line commands here for -D/-A/-U
13380         switches.  Don't call deps_output for files included with
13381         -include or -imacros.
13382
13383         * cpplib.c (do_define): Don't pay any attention to the second
13384         argument.
13385         (cpp_expand_to_buffer): Disable line commands while scanning.
13386         (output_line_command): Work in the file buffer.
13387         * cpplib.h: Remove no_record_file flag from struct cpp_reader.
13388         Fix formatting of comments.  Prototype cpp_read_file.
13389
13390 Thu Mar  2 13:29:46 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13391
13392         * c-common.c (c_common_nodes_and_builtins): Make sizetype_endlink
13393         reference the language-equivalent of sizetype.
13394         * c-typeck.c (comptypes): Treat sizetype like its language equivalent.
13395         * fold-const.c (size_binop, size_diffop): Put back checks.
13396         * gcse.c (dump_hash_table): Fix minor error in last change.
13397         * stor-layout.c (set_sizetype): Set TYPE_DOMAIN of sizetype.
13398         Clear TYPE_{NEXT,MAIN}_VARIANT and TYPE_{POINTER,REFERENCE}_to of
13399         all sizetypes.
13400
13401 Thu Mar  2 12:48:45 MET 2000  Jan Hubicka  <jh@suse.cz>
13402
13403         * calls.c (expand_call)  Do not attempt to combine stack adjustments
13404         with inhibit_defer_pop set.
13405
13406 2000-03-01  Mark Mitchell  <mark@codesourcery.com>
13407
13408         * stor-layout.c (layout_decl): Allow front-ends to explicitly set
13409         the DECL_SIZE for a FIELD_DECL.
13410
13411 2000-03-01  Bruce Korb  <bkorb@gnu.org>
13412
13413         * fixinc/inclhack.tpl: remove unused symlinks
13414         * fixinc/README: GCC Maintainer info
13415         * fixinc/inclhack.sh: regen
13416         * fixinc/fixincl.sh: regen
13417
13418 2000-03-01  Zack Weinberg  <zack@wolery.cumb.org>
13419
13420         * cpphash.c (collect_expansion): Trim trailing white space
13421         from macro definitions, but don't go past the last insertion
13422         point.
13423
13424 Wed Mar  1 12:14:31 MET 2000  Jan Hubicka  <jh@suse.cz>
13425
13426         * i386.md (mulqi3): New pattern.
13427
13428 2000-02-29  Zack Weinberg  <zack@wolery.cumb.org>
13429
13430         * cpplib.h (CPP_ASSERTION, CPP_STRINGIZE, CPP_TOKPASTE): New
13431         token types.
13432         (struct cpp_reader): Add parsing_if_directive and
13433         parsing_define_directive flags.
13434         (struct cpp_options): Remove output_conditionals flag.
13435         (check_macro_name): Delete prototype.
13436
13437         * cpphash.h (struct macrodef): Delete.
13438         (struct reflist): Separate from struct definition.
13439         (struct definition): Remove unused fields.  Add column number.
13440         (create_definition): Returns a DEFINITION *.  Takes a
13441         cpp_reader * and an int.
13442
13443         * cpphash.c (SKIP_WHITE_SPACE): Delete.
13444         (PEEKC): Copy defn from cpplib.c.
13445         (rest_extension, REST_EXTENSION_LENGTH): Delete.
13446         (struct arg): New.
13447         (struct arglist): Simplify.
13448         (collect_expansion): Rewrite.  Get tokens by calling
13449         cpp_get_token.  Add more error checking.
13450         (collect_formal_parameters): New function, broken out of
13451         create_definition and reworked to use get_directive_token.
13452         (create_definition): All real work is now in collect_expansion
13453         and collect_formal_parameters.  do_define handles finding the
13454         macro name.  Return a DEFINITION, not a MACRODEF.
13455         (macroexpand): Replace bcopy with memcpy throughout.  Replace
13456         character-at-a-time copy loop with memcpy and pointer increments.
13457         (compare-defs): d1->argnames / d2->argnames might be null.
13458
13459         * cpplib.c (copy_rest_of_line): Delete function.
13460         (skip_rest_of_line): Do all the work ourselves.
13461         (skip_string): New function.
13462         (parse_string): Use skip_string.
13463         (get_macro_name): New function.
13464         (check_macro_name): Delete.
13465         (copy_comment): Use CPP_RESERVE and CPP_PUTC_Q.
13466         (cpp_skip_hspace): Use CPP_BUMP_LINE.
13467         (handle_directive): ICE if we're called on a macro buffer.
13468         (do_define): Determine macro name and type (funlike/objlike)
13469         here.  Expunge all uses of MACRODEF.
13470         (cpp_push_buffer): Set line_base to NULL.
13471         (do_undef, read_line_number): Don't worry about getting a POP token.
13472         (eval_if_expression): Set/reset parsing_if_directive around
13473         cpp_parse_expr. Don't clear only_seen_white.
13474         (skip_if_group): Remove output_conditionals logic.  Use
13475         skip_rest_of_line.
13476         (cpp_get_token): Return ASSERTION, STRINGIZE, and TOKPASTE
13477         tokens under appropriate conditions.
13478         (cpp_unassert): Call do_unassert not do_assert.  Oops.
13479
13480         * cppexp.c (parse_defined): New function, break out of
13481         cpp_lex.
13482         (cpp_lex): We now get CPP_ASSERTION tokens and can check them
13483         ourselves, with cpp_defined.
13484         * cppinit.c (cpp_handle_option, print_help): Delete -ifoutput.
13485
13486         * gcc.dg/20000209-2.c: Turn off -pedantic-errors.
13487         * gcc.dg/strpaste-2.c: New.
13488
13489 2000-02-29  Mark Mitchell  <mark@codesourcery.com>
13490
13491         * fold-const.c (size_binop): Don't asert inputs are the same and
13492         have TYPE_IS_SIZETYPE set.
13493         (size_diffop): Likewise.
13494
13495 2000-02-29  Jason Merrill  <jason@casey.cygnus.com>
13496
13497         * dwarfout.c (output_block): Output abstract blocks even if they
13498         don't have TREE_ASM_WRITTEN set.
13499
13500         * calls.c (emit_library_call): Check for null REG.
13501
13502 2000-03-01  Martin von Loewis  <loewis@informatik.hu-berlin.de>
13503
13504         * c-decl.c (current_function_decl): Move to toplev.c.
13505         (init_decl_processing): Don't add current_function_decl as a ggc
13506         root here.
13507         * dbxout.c (dbxout_symbol): Change return type to int.
13508         (dbxout_symbol_location, dbxout_syms): Likewise.
13509         (dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without
13510         any locals. Use current_function_func_begin_label if set.
13511         * dbxout.h (dbxout_symbol, dbxout_syms): Change return type.
13512         * dwarf2out.c (dwarf2out_begin_prologue): Set
13513         current_function_func_begin_label.
13514         * final.c (final_start_function): Reset it.
13515         * toplev.c (current_function_decl): Define it here.
13516         (current_function_func_begin_label): New variable.
13517         (main): Add both as ggc roots.
13518         * tree.h (current_function_func_begin_label): Declare.
13519
13520 Tue Feb 29 14:07:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13521
13522         * gcse.c: Cleanups throughout: mostly white-space, but also
13523         some minor rearrangement of code.
13524
13525 Tue Feb 29 10:45:59 2000  Jeffrey A Law  (law@cygnus.com)
13526
13527         * calls.c (emit_library_call): Do not abort if FUNCTION_ARG
13528         returns a PARALLEL.  Use emit_group_load and use_group_regs
13529         as needed.
13530         (emit_library_call_value): Similarly.
13531
13532         * pa/t-pa: Use quadlib.c instead of quadlib.asm.
13533         * pa/quadlib.asm: Remove.
13534         * pa/quadlib.c: New file.
13535
13536         * configure.in (hpux10, hpux11, PA32 mode): Use i128 float format.
13537         * configure: Rebuilt.
13538
13539 2000-02-29  Philip Blundell  <pb@futuretv.com>
13540
13541         * config/arm/conix-elf.h: New file.
13542         * configure.in (arm*-*-conix*): New configuration.
13543         * configure: Regenerate.
13544
13545 2000-02-28  Jason Merrill  <jason@casey.cygnus.com>
13546
13547         * dwarf2out.c (gen_block_die): Output abstract blocks even if they
13548         don't have TREE_ASM_WRITTEN set.
13549
13550 Mon Feb 28 21:07:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13551
13552         * Eliminate DECL_FIELD_SIZE.
13553         * builtins.c (built_in_class_names, built_in_names): New variables.
13554         * c-decl.c (finish_struct): Set specified size in DECL_SIZE.
13555         * expr.c (expand_expr, case COMPONENT_REF): Get field size from
13556         DECL_SIZE, not DECL_FIELD_SIZE.
13557         * print-tree.c (print_node): Remove code that prints extra blank
13558         lines in some cases.
13559         Properly handle inline and builtin function cases.
13560         * stor-layout.c (layout_decl): Get specified size from DEC_SIZE.
13561         * tree.h (built_in_class_named, built_in_names): New declarations.
13562         (union tree_decl): Rename internal unions to u1 and u2 and change
13563         some of their components.
13564         Add new field built_in_class.
13565         (DECL_ALIGN, DECL_INCOMING_RTL, DECL_SAVED_INSNS, DECL_FRAME_SIZE):
13566         Reflect above changes.
13567         (DECL_FUNCTION_CODE, DECL_BUILT_IN_CLASS): Likewise.
13568         (DECL_SET_FUNCTION_CODE, DECL_FIELD_SIZE): Deleted.
13569         * objc/objc-act.c (objc_copy_list): Use DECL_SIZE, not DECL_FIELD_SIZE.
13570         (encode_field_decl): Likewise; also remove obsolete test for bitfield.
13571
13572 2000-02-28  Dmitri Makarov  <dim@windriver.com>
13573
13574         * extend.texi: Document ARM's support for long/short calls.
13575
13576         * invoke.texi: Document ARM's -mlong-calls command line switch.
13577
13578         * config/arm/arm-protos.h (arm_is_longcall_p): Add prototype.
13579         (arm_encode_call_attribute): Add prototype.
13580         (arm_set_default_type_attribute): Add prototype.
13581         (arm_strip_name_encoding): Add prototype.
13582
13583         * config/arm/arm.c (arm_init_cumulative_args): replace
13584         initialisation og 'long_calls' field with initialisation of
13585         'call_cookie' field.
13586         (enum arm_pragma_enum): New enum.
13587         (arm_pragma_long_calls): New static variable.
13588         (arm_process_pragma): Also process "#pragma long_calls_off".
13589         (arm_valid_type_attribute_p): Accept short_call attribute.
13590         (arm_comp_type_attributes): Check long/short call attributes.
13591         (arm_encode_call_attribute):  New function:  Encode long_call
13592         or short_call attribute in function name.
13593         (arm_set_default_type_attributes): New function: Assign
13594         default attributes to newly defined type.
13595         (current_file_function_operand): New function: Return true if
13596         the symbol is a function which has already been compiled.
13597         (arm_is_longcall_p): New function: Return true if the
13598         indicated function should be called via a long call.
13599         (arm_get_strip_length): New function.  Returns number of
13600         prefix characters to be stripped from a function's name.
13601         (arm_strip_name_encoding): New function.  Strip prefix characters
13602         from a function's name.
13603
13604         * config/arm/arm.h (CUMULATIVE_ARGS): Replace 'long_call' field
13605         with 'call_cookie'.
13606         (SHORT_CALL_FAG_CHAR): Define.
13607         (LONG_CALL_FAG_CHAR): Define.
13608         (ENCODED_SHORT_CALL_ATTR_P): Define.
13609         (ENCODED_LONG_CALL_ATTR_P): Define.
13610         (ARM_NAME_ENCODING_LENGTHS): Define.
13611         (STRIP_NAME_ENCODING): Define.
13612         (ASM_OUTPUT_LABELREF): Define, and use to strip name encoding.
13613         (ARM_ENCODE_CALL_TYPE): Define.
13614         (ENCODE_SECTION): Invoke ARM_ENCODE_CALL_TYPE.
13615         (ARM_DECLARE_FUNCTION_SIZE): Define.
13616         (SET_DEFAULT_TYPE_ATTRIBUTES): Define.
13617
13618         * config/arm/arm.md (call): Call arm_is_longcall_p to decide
13619         if a long call is needed.
13620         (call_value): Ditto.
13621         (call_symbol): Ditto.
13622
13623         * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Add invocation of
13624         ARM_DECLARE_FUNCTION_SIZE.
13625
13626         * config/arm/pe.h (ARM_PE_FLAG_CHAR): Define.
13627         (SUBTARGET_NAME_ENCODING_LENGTHS): Define.
13628         (ARM_STRIP_NAME_ENCODING): Undefine.
13629         (STRIP_NAME_ENCODING): Undefine.
13630         (ASM_OUTPUT_LABELREF): Use arm_strip_name_encoding.
13631         (ASM_DECLARE_FUNCTION_NAME): Ditto.
13632         (ASM_OUTPUT_COMMON): Ditto.
13633         (ASM_DECLARE_OBJECT_NAME): Ditto.
13634
13635         * config/arm/pe.c (arm_dllexport_name_p): Check for
13636         ARM_PE_FLAG_CHAR.
13637         (arm_dllimport_name_p): Ditto.
13638         (arm_mark_dllexport): Use ARM_PE_FLAG_CHAR.
13639         (arm_mark_dllimport): Ditto.
13640
13641 Mon Feb 28 22:11:12 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13642
13643         * sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Define.
13644
13645 2000-02-28  Mark Mitchell  <mark@codesourcery.com>
13646
13647         * xcoffout.c (xcoffout_begin_function): Fix typo in previous change.
13648
13649 2000-02-28  Zack Weinberg  <zack@wolery.cumb.org>
13650
13651         * tm.texi: Document new target switch, NO_BUILTIN_WCHAR_TYPE.
13652         * cppinit.c (builtin_array): Define __WCHAR_TYPE__ only if
13653         NO_BUILTIN_WCHAR_TYPE is not defined.
13654         (CPP_WCHAR_TYPE): Delete.
13655         * cccp.c (main): Don't change wchar_type if cplusplus.
13656         (special_symbol, initialize_builtins): Honor NO_BUILTIN_WCHAR_TYPE.
13657
13658 2000-02-28  Nick Clifton  <nickc@cygnus.com>
13659
13660         * config/arm/arm-wince-pe.h (SIZE_TYPE): Define to "unsigned long".
13661
13662 Mon Feb 28 14:21:15 2000  Catherine Moore  <clm@cygnus.com>
13663
13664         * config/pa/som.h (MAKE_DECL_ONE_ONLY): Define.
13665         (ASM_WEAKEN_LABEL): Define.
13666
13667 Mon Feb 28 13:07:19 MET 2000  Jan Hubicka  <jh@suse.cz>
13668
13669         * expr.c (store_constructor): Do not emit USE.
13670         * rtl.h (stupid_life_analysis): Remove.
13671
13672 Mon Feb 28 07:03:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13673
13674         * function.c (number_blocks): Reset next_block_index based on
13675         what debugging format is used, not what is defined.
13676
13677         * lcm.c: Minor reformatting throughout.
13678         (reg_dies, reg_becomes_live): Properly handle multiple hard regs.
13679
13680         * toplev.c (rest_of_compilation): Account for time in
13681         optimize_mode_switching.
13682
13683         * jump.c (jump_optimize_1): Don't call delete_barrier_successors
13684         if only marking labels.
13685
13686 Mon Feb 28 12:53:57 MET 2000  Jan Hubicka  <jh@suse.cz>
13687
13688         * calls.c (expand_call): Attempt to combine stack adjustments with
13689         pending stack adjustments.
13690
13691 Mon Feb 28 11:34:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13692
13693         * loop.c (reg_in_basic_block_p): Don't abort when falling through
13694         to the end of the function.
13695
13696 2000-02-27  Mark Mitchell  <mark@codesourcery.com>
13697
13698         * emit-rtl.c (remove_unncessary_notes): Remove notes for empty
13699         blocks.
13700         * final.c (next_block_index): Remove.
13701         (max_block_depth): Likewise.
13702         (pending_blocks): Likewise.
13703         (init_final): Don't initialize them.
13704         (final_start_function): Don't set next_block_index.  Set up
13705         BLOCK_NUMBER.
13706         (final_scan_insn): Use BLOCK_NUMBER, not next_block_index.
13707         * function.h (number_blocks): New function.
13708         * function.c (get_block_vector): New function.
13709         (identify_blocks): Use it.
13710         (reorder_blocks): Set NOTE_BLOCK.
13711         (number_blocks): New function.
13712         * tree.def (BLOCK): Add documentation for TREE_ASM_WRITTEN flag.
13713         * tree.h (BLOCK_NUMBER): New macro.
13714         (tree_block): Add block_num field.
13715         * dbxout.c (next_block_number): Remove.
13716         (dbxout_init): Don't set it.
13717         (dbxout_block): Only output blocks that have TREE_ASM_WRITTEN
13718         set.  Use BLOCK_NUMBER, rather than next_block_num, to determine
13719         block numbers.
13720         * toplev.c (rest_of_compilation): Always call
13721         find_loop_tree_blocks.  Fix indentation.
13722         * dwarf2out.c (next_block_number): Remove.
13723         (gen_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
13724         to determine block numbers.
13725         (gen_inlined_subroutine_die): Likewise.
13726         (gen_block_die): Only output blocks that have TREE_ASM_WRITTEN set.
13727         (decls_for_scope): Don't increment next_block_number.
13728         * dwarfout.c (next_block_number): Remove.
13729         (output_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
13730         to determine block numbers.
13731         (output_inlined_subroutine_die): Likewise.
13732         (output_block): Only output blocks that have TREE_ASM_WRITTEN set.
13733         (output_decls_for_scope): Don't increment next_block_number.
13734         * sdbout.c (next_block_number): Remove.
13735         (sdbout_block): Use BLOCK_NUMBER.
13736         (sdbout_begin_block): Simplify.
13737         * xcoffout.c (next_block_number): Remove.
13738         (xcoffout_block): Use BLOCK_NUMBER, not next_block_number.
13739         (xcoffout_begin_block): Don't set next_block_number.
13740         (xcoffout_begin_function): Likewise. Use BLOCK_NUMBER, not
13741         next_block_number.
13742
13743 Sun Feb 27 16:40:33 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13744
13745         * builtins.c (c_strlen): Use size_diffop and return ssizetype value.
13746         (expand_builtin_strcpy): Pass correct type to size_binop.
13747         (expand_builtin_strcmp): Likewise.
13748         Clean up conditional structure.
13749         * c-decl.c (init_decl_processing): Don't call set_sizetype twice.
13750         (complete_array_type): Don't use size_binop for MAXINDEX.
13751         * c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT.
13752         (c_sizeof_nowarn, c_size_in_bytes): Likewise.
13753         (c_alignof): Use size_one_node.
13754         (build_unary_op): Pass arg of proper type to size_binop.
13755         (really_start_incremental_init, push_init_level): Use sizetype for
13756         constructor{,_bit,_unfilled}_index.
13757         (pop_init_label, output_init_element): Likewise.
13758         (output_pending_init_elements, process_init_element): Likewise.
13759         * calls.c (compute_argument_block_size): Field VAR is ssizetype.
13760         * expr.c (store_expr): Use size_int.
13761         (store_constructor): Use proper types for size_binop args.
13762         (get_inner_reference, expand_expr, case ARRAY_REF): Likewise.
13763         (expand_expr_unaligned): Likewise.
13764         (string_contant): Return object of sizetype.
13765         * expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types.
13766         (ARGS_SIZE_RTX): Call ARGS_SIZE_TREE.
13767         (ARGS_SIZE_TREE): Pass proper types to size_binop.
13768         * fold-const.c (int_const_binop): Refine when size_int is called.
13769         (fold_convert): Likewise.
13770         (size_int_wide): Rework to take KIND as arg, only take low order
13771         bits, handle new sizetype_tab datatype, and chain entries in
13772         size_table.
13773         (size_int_type_wide): New function.
13774         (size_binop): Validate types of arguments.
13775         (ssize_binop): Deleted.
13776         (size_diffop): New function.
13777         (extract_muldiv): Only fold division into multiplication for sizetypes.
13778         * function.c (assign_parms): Use size_diffop and make sure
13779         VAR field is of ssizetype; also pass proper type to size_binop.
13780         (locate_and_pad_parm, pad_to_arg_alignment): Likewise.
13781         (round_down): Deleted from here.
13782         * store-layout.c (sizetype_tab): Now an array.
13783         (sizetype_set, early_root_list): New variables.
13784         (variable_size): Use size_one_node.
13785         (round_up): Pass proper type to size_binop.
13786         (round_down): Moved to here and corrected as above.
13787         (layout_record): Pass proper arg types to size_binop.
13788         (layout_type): Likewise.
13789         If sizetype_set is zero, record the type just laid out.
13790         (make_unsigned_type): Don't call set_sizetype;
13791         (make_signed_type): Likewise; also, call fixup_signed_type.
13792         (initialize_sizetypes): New function.
13793         (set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and
13794         set name of bitsizetype to "bit_size_type".
13795         Fix up type of sizes of all types made before call.
13796         * tm.texi (ROUND_TYPE_SIZE_UNIT): New macro.
13797         * tree.c (fix_sizetype): Deleted.
13798         (build_common_tree_nodes): Call initialize_sizetypes.
13799         (build_common_tree_nodes_2): Don't call fix_sizetype.
13800         * tree.h (TYPE_IS_SIZETYPE): New macro.
13801         (initialize_sizetype): New declaration.
13802         (enum size_type_kind): New type.
13803         (struct sizetype_tab): Deleted.
13804         (sizetype_tab): Now array; adjust sizetype macros.
13805         (size_diffop, size_int_type_wide): New functions.
13806         (size_int_wide): Change number of args and type; access macros changed.
13807         (ssize_int, sbitsize_int): New macros.
13808         * config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int.
13809         (ROUND_TYPE_SIZE_UNIT): New macro.
13810
13811 2000-02-27  Zack Weinberg  <zack@wolery.cumb.org>
13812
13813         * c-lex.c (putback_buffer): Make 'buffer' an unsigned char *.
13814
13815 Sun Feb 27 07:44:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13816
13817         * gcov-io.h (__fetch_long, __store_long, __read_long, __write_long):
13818         Mark as possibly unused.
13819
13820         * cse.c (cse_insn): Delete dead code involving tablejump.
13821         Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE.
13822
13823         * Makefile.in (libcpp.a): Start by deleting it.
13824
13825 2000-02-27  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13826
13827         * cpplib.h (enum file_change_code): Added rename_file.
13828         * cpplib.c (do_line): If a filename is given, set file_change to
13829         rename_file.
13830         (output_line_command): If file_change is rename_file, always
13831         output a # directive with the file name.
13832
13833         * cpplib.c (do_pragma): Accept #pragma without consecutive token.
13834
13835 2000-02-26  Mark Mitchell  <mark@codesourcery.com>
13836
13837         * integrate.c (copy_decl_for_inlining): Preserve TREE_ADDRESSABLE
13838         when copying a PARM_DECL or RESULT_DECL.
13839
13840 2000-02-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13841
13842         * fix-header.c (recognized_function): Also fix prototypes for
13843         functions taking "void".
13844
13845 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
13846
13847         * reload1.c (do_output_reload): Check reg_reloaded_valid before
13848         looking at reg_reloaded_contents.
13849
13850 2000-02-26  Zack Weinberg  <zack@wolery.cumb.org>
13851
13852         * Makefile.in (STMP_FIXINC): New toggle.
13853         (LIBGCC2_DEPS): Delete all references.
13854         (stmp-headers): Delete target.  All references either deleted
13855         or changed to stmp-int-headers.
13856         (all.cross): Don't depend on stmp-headers or STMP_FIXPROTO.
13857         (LIBCPP_OBJS): Take out cppalloc.o.
13858         (cppalloc.o): Delete target.
13859         (stmp-int-hdrs): Depend on $(STMP_FIXINC).
13860         (gen-protos, fix-header): Link with libiberty.a.
13861         * build-make: Don't change FIXINCLUDES.  Override STMP_FIXINC
13862         to empty.
13863
13864         * configure.in: Remove refs to strerror.
13865         * acconfig.h: Take out NEED_DECLARATION_STRERROR.
13866         * system.h: Take out strerror stanza.
13867
13868         * cpperror.c (my_strerror): Delete function.
13869         (cpp_error_from_errno, cpp_notice_from_errno): Use xstrerror.
13870         * cppmain.c (main): Call xmalloc_set_program_name first thing.
13871         * cppalloc.c: Delete file.
13872         * gen-protos.c: Don't provide xrealloc.
13873
13874         * fixinc/fixincl.c, fixinc/fixlib.c, fixinc/procopen.c: Use
13875         xstrerror throughout.
13876
13877 2000-02-26  Bruce Korb  <bkorb@gnu.org>
13878
13879         * fixinc/inclhack.def (undefine_null): the bypass pattern needs to
13880         match for DOS headers, too.
13881         * fixinc/inclhack.sh,fixincl.x: Regenerate.
13882
13883 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
13884
13885         * config/elfos.h (ASM_OUTPUT_LABELREF): Don't define.  The default
13886         is right for most ELF targets.
13887         * config/ns32k/ns32k.h (ASM_OUTPUT_LABELREF): Don't define.
13888         Let the default file use %U properly.
13889         * config/sh/elf.h (ASM_OUTPUT_LABELREF): Don't define.  Use the
13890         default.
13891
13892         * config/fp-bit.c (pack_d): Properly handle rounding of denormal
13893         numbers.
13894
13895 Sat Feb 26 09:39:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13896
13897         * toplev.c (documented_lang_options): Correct spelling error.
13898         (decode_d_option, decode_f_option, main): Likewise.
13899
13900         * toplev.c (print_time): Avoid SIGFPE when all_time is zero.
13901
13902         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Use .set at
13903         to tell assembler it is permitted to expand large constants.
13904
13905 2000-02-25  Mumit Khan  <khan@xraylith.wisc.edu>
13906
13907         * protoize.c: (AUX_INFO_SUFFIX): New macro.
13908         (aux_info_suffix): Use.
13909         (SAVE_SUFFIX): New macro.
13910         (save_suffix): Use.
13911         (munge_compile_parms): Fix typo in NUL. DJGPP supports /dev/null.
13912         (gen_aux_info_file): Use aux_info_suffix instead of ".X".
13913         (edit_file): Handle 8.3 restriction for DOS/DJGPP filenames.
13914
13915         * invoke.texi (Running Protoize): Update documentation.
13916
13917 2000-02-25 Mark Elbrecht <snowball3@bigfoot.com>
13918
13919         * i386/djgpp.h (CPP_PREDEFINES): Remove Unix defines.
13920
13921 2000-02-25  John Wehle  (john@feith.com)
13922
13923         * rtlanal.c (find_last_value): Allow NULL_RTX for valid_to.
13924
13925 2000-02-25  Anthony Green  <green@cygnus.com>
13926
13927         * toplev.c (rest_of_compilation): Rebuild jump labels if
13928         combine_instructions has created a new direct jump.
13929         * combine.c (try_combine): Add new_direct_jump_p argument.  Set it
13930         when appropriate.
13931         (combine_instructions): Call try_combine with new argument.
13932         Return non-null value when new direct jump instruction is created.
13933         * rtl.h: combine_instructions returns an int.
13934
13935 Fri Feb 25 19:49:08 2000  Jeffrey A Law  (law@cygnus.com)
13936
13937         * cse.c (cse_insn): Replace the PATTERN of the insn with an new
13938         jump when changing a computed jump into a jump to a known
13939         target.
13940
13941 Fri Feb 25 19:22:44 2000  Graham Stott <grahams@rcp.co.uk>
13942
13943         * resource.c (mark_referenced_resources): Changed use SET_DEST (...)
13944         to XEXP (..., 0) on RTL nodes which are not SET or CLOBBER.
13945
13946         * i386.md (define_expand "clrstrsi"): Fix typo.
13947
13948 Fri Feb 25 18:49:39 2000  "K. Richard Pixley" <rich@microunity.com>
13949
13950         * rtl.texi: Fix typo.
13951
13952 Fri Feb 25 20:02:35 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13953
13954         * sh.c (calc_live_regs): Multiply value assigned to *COUNT_PTR by
13955         UNITS_PER_WORD.  Change caller initial_elimination_offset.
13956         (rounded_frame_size): Take into account that argument pushed has
13957         changed.  Fix TARGET_ALIGN_DOUBLE problem.
13958
13959 2000-02-25  Geoff Keating  <geoffk@cygnus.com>
13960
13961         * haifa-sched.c (schedule_block): Explain the real reason
13962         we delete REG_SAVE_NOTEs on the first insn of a block.
13963         Don't delete REG_SAVE_NOTES for NOTE_INSN_SETJMP.
13964
13965 2000-02-24  Mark Mitchell  <mark@codesourcery.com>
13966
13967         * input.h (push_srcloc): New function.
13968         (pop_srcloc): Likewise.
13969         * toplev.c (push_srcloc): Define it.
13970         (pop_srcloc): Likewise.
13971
13972 2000-02-24  Richard Henderson  <rth@cygnus.com>
13973
13974         * flow.c (life_analysis): When collecting reg info, clear
13975         regs_ever_live.
13976
13977 Thu Feb 24 22:06:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13978
13979         Fix bug exposed by reload.c no longer rounding the frame
13980         size to BIGGEST_ALIGNMENT:
13981         * sh.c (rounded_frame_size): New function.
13982         (sh_expand_prologue, sh_expand_epilogue): Use it.
13983         (initial_elimination_offset): Likewise.
13984
13985 Thu Feb 24 20:04:11 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13986
13987         Fix breakage from 6th Feb thread_prologue_and_epilogue_insns change:
13988         * sh-protos.h (sh_need_epilogue): Declare.
13989         * sh.c (sh_need_epilogue_known): New static variable.
13990         (sh_need_epilogue): New function.
13991         (function_epilogue): Clear need_epilogue_known.
13992         * sh.md (return): Split into expander / insn pattern.
13993         Make the expander conditional on ! sh_need_epilogue ().
13994
13995 2000-02-24  Nathan Sidwell  <nathan@codesourcery.com>
13996
13997         * machmode.h (get_mode_alignment): Declare.
13998         (GET_MODE_ALIGNMENT): Call it.
13999         * stor-layout.c (get_mode_alignment): New function. Make
14000         sure alignment is always power of 2.
14001
14002 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
14003
14004         * i386.h: Remove useless definition of "I386" and misleading
14005         comment above it.
14006
14007 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
14008
14009         * tree.h (TREE_SET_PERMANENT): New macro.  Document conditions
14010         under which TREE_PERMANENT will be set.
14011         * tree.c (make_node, copy_node, make_tree_vec, tree_cons,
14012         build1): Use TREE_SET_PERMANENT.
14013         * print-tree.c (print_node): Don't report value of
14014         TREE_PERMANENT if ggc_p is true.
14015
14016         * c-common.c (c_get_alias_set): Don't use TREE_PERMANENT to
14017         decide whether to give a type a new alias set.
14018         * objc/objc-act.c (build_objc_string_object): Never copy the string.
14019         * tree.c (make_node): Set DECL_IN_SYSTEM_HEADER irrespective
14020         of value of 'obstack'.
14021
14022
14023 2000-02-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14024
14025         * config/c4x/c4x.c (c4x_process_after_reload): Split all insns.
14026
14027 2000-02-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14028
14029         * cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING.
14030         * cpplib.c (cpp_get_token): Produce them.
14031         * cppexp.c (cpp_lex): Handle them.
14032
14033 2000-02-23  Nick Clifton  <nickc@cygnus.com>
14034
14035         * config/arm/arm.c (arm_comp_type_attributes): Simply and
14036         comment tests on type attributes.
14037
14038 Wed Feb 23 16:42:21 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14039
14040         * final.c (shorten_branches): Make value passed to LOOP_ALIGN
14041         conform to documentation.
14042         * sh.h (LOOP_ALIGN): If aligning loops, call sh_loop_align
14043         to check for special cases.
14044         * sh-protos.h (sh_loop_align): Declare.
14045         * sh.c (sh_loop_align): Define.
14046
14047 2000-02-22  Andrew Haley  <aph@cygnus.com>
14048
14049         * config/mips/mips.h (GAS_ASM_SPEC): Pass -mgp32/-mgp64 to gas.
14050         (SIZE_TYPE): Is 32 bits when using -mgp32.
14051         (PTRDIFF_TYPE): Ditto.
14052
14053 Wed Feb 23 07:26:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14054
14055         * diagnostic.c (init_output_buffer): Handle case of null PREFIX.
14056
14057 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
14058
14059         * config/i386/i386.h: If IN_TARGET_LIBS is defined, make
14060         BIGGEST_FIELD_ALIGNMENT a constant.
14061
14062 2000-02-21  Jason Merrill  <jason@casey.cygnus.com>
14063
14064         * dwarf2out.c (output_line_info): Put the marker for the end of
14065         the line number info at the actual end.
14066         (gen_struct_or_union_type_die): Use decl_function_context
14067         to check for local classes.
14068         * dwarfout.c (output_type): Likewise.
14069
14070 Tue Feb 22 01:38:57 2000  Jeffrey A Law  (law@cygnus.com)
14071
14072         * pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference
14073         for arguments with a mode, but no type.
14074         (FUNCTION_ARG_CALLEE_COPIES): Similarly.
14075         * t-pa (LIB2FUNCS_EXTRA): Add quadlib.asm.
14076         * pa/long_double.h: New file.
14077         * configure.in (hpux10, hpux11 configurations): hpux10 and hpux11
14078         both have 128bit wide long doubles.
14079         * configure: Rebuilt.
14080
14081 2000-02-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14082
14083         * defaults.h (ASM_OUTPUT_ASCII): Constify a char*.
14084
14085         * flow.c (get_common_dest, chain_reorder_blocks, make_reorder_chain,
14086         fixup_reorder_chain, skip_insns_between_block): Add static prototypes.
14087         (life_analysis): Wrap variable `i' with macro ELIMINABLE_REGS.
14088
14089         * haifa-sched.c (rank_for_schedule): Don't cast away const-ness.
14090
14091         * integrate.c (compare_blocks, find_block): Likewise.
14092
14093         * rtl.c (fatal_with_file_and_line): Add ATTRIBUTE_PRINTF_2.
14094
14095         * rtl.h (set_file_and_line_for_stmt): Constify a char*.
14096
14097         * stmt.c (stmt_status, set_file_and_line_for_stmt,
14098         expand_asm_operands): Likewise.
14099
14100 Mon Feb 21 17:06:27 2000  Jason Eckhardt  <jle@cygnus.com>
14101
14102         * predict.c (estimate_probability): Added the pointer heuristic to
14103         the collection of static branch predictors.
14104
14105 2000-02-21  Catherine Moore  <clm@cygnus.com>
14106
14107         * config/mips/mips.h (ASM_SPEC): Add -mfix700.
14108         * invoke.texi (-mfix7000): Document.
14109
14110 2000-02-21  Gabriel Dos Reis  <gdr@codesourcery.com>
14111
14112         * diagnostic.c (init_output_buffer): Make it possible to output at
14113         least 32 characters if we're given a too long prefix.
14114
14115 2000-02-20  Mark Mitchell  <mark@codesourcery.com>
14116
14117         * varasm.c (initializer_constant_valid_p): Call
14118         lang_expand_constant to simplify the constant.
14119
14120 2000-02-20  Bruce Korb  <bkorb@gnu.org>
14121
14122         * fixinc/inclhack.def(stdio_va_list):
14123         typedef needs to be disabled.
14124         * fixinc/inclhack.sh: regen
14125         * fixinc/fixincl.x: regen
14126
14127 2000-02-20  Geoff Keating  <geoffk@cygnus.com>
14128
14129         * print-rtl.c (print_rtx): Don't print addresses when
14130         flag_dump_unnumbered.
14131
14132 2000-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14133
14134         * sparc.c (sparc_output_scratch_registers): Mark parameter with
14135         ATTRIBUTE_UNUSED.
14136         (sparc_va_arg, sparc_flat_output_function_prologue,
14137         sparc_flat_output_function_epilogue): Cast value to unsigned in
14138         comparison.
14139         (sparc_emit_float_lib_cmp): Remove unused variable `cmp'.
14140
14141         * sparc.md: Add default case in switch.
14142
14143 2000-02-19  Richard Henderson  <rth@cygnus.com>
14144
14145         * c-typeck.c (add_pending_init): Don't abort for multiple
14146         fields at the same offset.
14147         (pending_init_member): Test the correct member.
14148
14149 2000-02-19  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
14150
14151         * except.c (start_dynamic_handler) : Use TYPE_MODE (integer_type_node)
14152         instead of SImode.
14153         (start_catch_handler) : Same.
14154
14155 2000-02-19  Brad Lucier  (lucier@math.purdue.edu)
14156
14157         * Makefile.in: Have flow.o depend on $(EXPR_H)
14158
14159 Sat Feb 19 18:43:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14160
14161         * c-common.c (decl_attributes): Set DECL_SIZE_UNIT.
14162         * c-decl.c (duplicate_decls, finish_enum): Likewise.
14163         (finish_decl): Remove -Wlarger-than code from here.
14164         * flags.h (id_clash_len): Now int.
14165         (larger_than_size): Now HOST_WIDE_INT.
14166         * fold-const.c (size_int_wide): No more HIGH parm; NUMBER is signed.
14167         Clean up checking to see if in table.
14168         (make_bit_field_ref): Remove extra parm to bitsize_int.
14169         * ggc-common.c (ggc_mark_tree_children): Mark DECL_SIZE_UNIT.
14170         * print-tree.c (print_node): Print DECL_SIZE_UNIT and TYPE_SIZE_UNIT.
14171         * stmt.c (expand_decl): Use DECL_SIZE_UNIT for stack checking size
14172         and for computing size of decl.
14173         * stor-layout.c (layout_decl): Set DECL_SIZE_UNIT.
14174         Move -Wlarger-than code to here.
14175         (layout_record): Remove extra arg to bitsize_int.
14176         Set TYPE_BINFO_SIZE_UNIT.
14177         (layout_union): Remove extra arg to bitsize_int.
14178         Use proper type for size of QUAL_UNION.
14179         (layout_type): Remove extra arg to bitsize_int.
14180         * toplev.c (id_clash_len): Now int.
14181         (larger_than_size): Now HOST_WIDE_INT.
14182         (decode_W_option): Clean up id-clash and larger-than- cases.
14183         * tree.c (get_identifier, maybe_get_identifier): Remove unneeded casts.
14184         (expr_align, case FUNCTION_DECL): DECL_ALIGN is not defined.
14185         * tree.h (BINFO_SIZE_UNIT, TYPE_BINFO_SIZE_UNIT, DECL_SIZE_UNIT): New.
14186         (struct tree_decl): New field size_unit.
14187         (size_int_wide): No HIGH operand; NUMBER is now signed.
14188         (size_int_2): Deleted.
14189         (size_int, bitsize_int): Don't use it and rework args.
14190         * varasm.c (assemble_variable, output_constructor): Use DECL_SIZE_UNIT.
14191
14192 Fri Feb 18 20:01:58 2000  Jeffrey A Law  (law@cygnus.com)
14193
14194         * pa/quadlib.asm (_U_QFgt, _U_Qfge): Fix flags for _U_Qfcmp call.
14195
14196 2000-02-18  Geoff Keating  <geoffk@cygnus.com>
14197
14198         * invoke.texi (Warning Options): Add an explanation of why
14199         you might want the -Wfloat-equal flag.
14200
14201 Fri Feb 18 20:08:57 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14202
14203         * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned.
14204         * cppinit.c (new_pending_define): Add cast to avoid warning.
14205         * expmed.c (extract_bit_field): Likewise.
14206         * flow.c (enum reorder_skip_type): New type.
14207         (skip_insns_between_blcok): New it.
14208         Rework to avoid warning about possibly undefined variable.
14209         * function.c (assign_parms): Make thisparm_boundary unsigned.
14210         * genrecog.c (write_switch): Cast XWINT result to int.
14211         * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING.
14212         * mips-tfile.c (init_file): Make two versions of FDR intializer:
14213         one for MIPS and one for Alpha.
14214         (get_tag, copy_object): Add casts to avoid warnings.
14215         * optabs.c (init_one_libfunc): Cast NAME to (char *).
14216         * reload.c (find_reloads): Make TYPE enum reload_type.
14217         * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L".
14218         * unroll.c (unroll_loop): Initialize UNROLL_NUMBER.
14219         * varasm.c (compare_constant_1): Add cast to avoid warning.
14220         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC
14221         to (char *).
14222         (alpha_expand_unaligned_load, alpha_expand_unaligned_store):
14223         Cast switch operand of size to int.
14224         (alpha_expand_epilogue): Always initialize fp_offset and sa_reg.
14225         * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort
14226         in unhandled case.
14227
14228 2000-02-18  Nick Clifton  <nickc@cygnus.com>
14229
14230         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate
14231         anything for an alignment of zero.
14232
14233         * config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not generate
14234         anything for an alignment of zero.
14235
14236 2000-02-18  Martin von Loewis  <loewis@informatik.hu-berlin.de>
14237
14238         * gcc.texi (Bug Reporting): Refer to bugs.html.
14239         (Bug Lists): Likewise.
14240         * system.h (GCCBUGURL): New preprocessor define.
14241         * rtl.c (fancy_abort): Use it.
14242         * gcc.c (main): Likewise.
14243
14244 2000-02-18  Richard Henderson  <rth@cygnus.com>
14245
14246         * flow.c (INSN_VOLATILE, SET_INSN_VOLATILE, uid_volatile): Remove.
14247         (life_analysis_1): Subsume into ...
14248         (life_analysis): ... here.  Force PROP_REG_INFO off after reload.
14249         Use update_life_info for the relaxation.
14250         (update_life_info): Update REG_BASIC_BLOCK for registers live on
14251         entry and regs_live_at_setjmp.
14252         (set_noop_p): Simplify.
14253         (notice_stack_pointer_modification_1): Renamed from s/_1//.
14254         (record_volatile_insns): Split into ...
14255         (delete_noop_moves): ... here,
14256         (notice_stack_pointer_modification): ... here,
14257         (insn_dead_p): ... and here.
14258         (propagate_block): Don't query INSN_VOLATILE.
14259         (mark_used_regs): Mind !PROP_REG_INFO.
14260         * toplev.c (rest_of_compilation): Call mark_constant_function here,
14261         not in life_analysis.
14262
14263 Fri Feb 18 01:29:22 EST 2000  John Wehle  (john@feith.com)
14264
14265         * loop.c (canonicalize_condition): New function,
14266         broken out of get_condition.
14267         (get_condition): Use it.
14268         * expr.h (canonicalize_condition): Prototype it.
14269
14270         * tree.h (tree_int_cst_msb): Declare.
14271         * tree.c (tree_int_cst_msb): New function.
14272
14273 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
14274
14275         * stmt.c (set_file_and_line_for_stmt): Don't crash if cfun->stmt
14276         isn't set.
14277
14278         * invoke.texi (-fmessage-length=n): Document.
14279
14280 2000-02-17  Jason Merrill  <jason@casey.cygnus.com>
14281
14282         * bitmap.c (bitmap_operation): Don't leak bitmap elements.
14283
14284 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
14285
14286         * function.c (thread_prologue_and_epilogue_insns): Put a line note
14287         after the prologue.
14288
14289 2000-02-17  Nick Clifton  <nickc@cygnus.com>
14290
14291         * config/arm/thumb.c: Replace includes of system headers with
14292         #include "system.h".
14293
14294 2000-02-16  Richard Henderson  <rth@cygnus.com>
14295
14296         * configure.in (alpha-linux*, alpha-netbsd) [extra_parts]:
14297         Add crtbeginS.o and crtendS.o.
14298         * alpha/elf.h (STARTFILE_SPEC): Use crtbeginS.o.
14299         (ENDFILE_SPEC): Use crtendS.o.
14300         * alpha/t-crtbe (crtbeginS.o, crtendS.o): New targets.
14301
14302         * alpha/crtbegin.asm (__do_frame_takedown): Merge into ...
14303         (__do_global_dtors_aux): ... here.  Call __cxa_finalize if
14304         shared and present.
14305         (__dso_handle): New variable.
14306         * alpha/crtend.asm (__do_global_ctors_aux): Remove runtime
14307         bias to __CTOR_END__.
14308
14309 2000-02-16  Richard Henderson  <rth@cygnus.com>
14310
14311         * Makefile.in (s-crtS, crtbeginS, crtendS): Prefix usage with $(T).
14312
14313 Wed Feb 16 21:40:04 2000  Hans-Peter Nilsson  <hp@bitrange.com>
14314
14315         * longlong.h (__clz_tab): Declare as static to match definition.
14316
14317 2000-02-16 Mark Elbrecht <snowball3@bigfoot.com>
14318
14319         * i386/xm-djgpp.h (LIBSTDCXX): Delete. Moved to config/i386/djgpp.h.
14320         (XREF_FILE_NAME): Define.
14321
14322         * i386/djgpp.h (DATA_SECTION_ASM_OP): Define.
14323         (EH_FRAME_SECTION_ASM_OP): Define.
14324         (IDENT_ASM_OP): Define.
14325         (TEXT_SECTION_ASM_OP): Define.
14326         (CPP_SPEC): Define.
14327         (CTORS_SECTION_ASM_OP): Define.
14328         (CTOR_SECTION_FUNCTION): Use it.
14329         (DTORS_SECTION_ASM_OP): Define.
14330         (DTOR_SECTION_FUNCTION): Use it.
14331
14332 2000-02-16  Zack Weinberg  <zack@wolery.cumb.org>
14333
14334         * reg-stack.c (emit_swap_insn): Do not put a new insn before a
14335         NOTE_BASIC_BLOCK.
14336
14337         * flow.c (dump_regset, debug_regset, dump_bb, debug_bb,
14338         debug_bb_n): New functions.
14339         (dump_flow_info, print_rtl_with_bb): Use dump_regset.
14340         * basic-block.h: Prototype new functions.
14341
14342 Wed Feb 16 21:07:53 2000  Denis Chertykov  <denisc@overta.ru>
14343
14344         * configure.in: Add support for avr target.
14345         * configure: Rebuilt.
14346
14347         * invoke.texi: Add AVR invocation docs.
14348         * install.texi: Add information about AVR.
14349         * md.texi: Add AVR constraint letters description.
14350         * extend.texi: Add description for AVR specific attributes.
14351
14352 2000-02-16  Jason Merrill  <jason@casey.cygnus.com>
14353
14354         * fixinc/fixinc.svr4: Wrap byteorder.h with extern "C".
14355
14356 2000-02-16  Nick Clifton  <nickc@cygnus.com>
14357
14358         * emit-rtl.c (emit_insn): Move RTL check into make_insn_raw.
14359         (make_insn_raw): Move RTL check here.
14360
14361 2000-02-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14362
14363         * version.c: Include gansidecl.h and version.h.
14364
14365         * version.h: Wrap entire file in macro __GCC_VERSION_H__.
14366
14367         * configure.in (gcc_version): When setting, narrow search to
14368         lines containing `version_string'.
14369
14370         * Makefile.in (mainversion): Likewise.
14371         (GCC_H): New variable.
14372         (gcc.h): Delete target.
14373         (gcc.o, gccspec.o, cppspec.o): Depend on $(GCC_H), not gcc.h.
14374         (version.o): Depend on version.h.
14375         (dbxout.o): Don't depend on gcc.h.
14376
14377 Wed Feb 16 15:04:49 2000  Hans-Peter Nilsson  <hp@bitrange.com>
14378                           Michael Meissner  <meissner@cygnus.com>
14379
14380         * md.texi (Simple Constraints): Add item about whitespace.
14381         * genoutput.c (strip_whitespace): New.
14382         (scan_operands) [MATCH_OPERAND, MATCH_SCRATCH]: Call
14383         strip_whitespace for constraints.
14384         Test pointer using NULL, not 0.
14385
14386 2000-02-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14387
14388         * cpplib.c (do_line): Pedwarn for #line > 32767.
14389
14390         * c-lex.c (readescape): Warn about '\x', but do not reject it.
14391
14392 2000-02-15  Jonathan Larmour  <jlarmour@redhat.co.uk>
14393
14394         * gcc.c (default_compilers): Add new __GNUC_PATCHLEVEL__ define
14395         to default cpp spec.
14396         (do_spec_1): Add support for %v3 spec used by __GNUC_PATCHLEVEL__.
14397         * cpp.texi: Document __GNUC_PATCHLEVEL__.
14398         * cpp.1: Likewise.
14399
14400         * objc/lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to
14401         default spec.
14402
14403 2000-02-15  Denis Chertykov  <denisc@overta.ru>
14404
14405         * configure.in: Add support for avr target.
14406
14407 Wed Feb 16 03:21:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14408
14409         * sh.h (OVERRIDE_OPTIONS): Don't set sh_addr_diff_vec_mode.
14410         (sh_addr_diff_vec_mode): Don't declare.
14411         * sh.c (sh_addr_diff_vec_mode): Delete.
14412
14413 Wed Feb 16 01:27:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14414
14415         * sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn.
14416
14417 Wed Feb 16 00:58:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14418
14419         * sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name.
14420         (smulsi3_highpart_i): Name.
14421         (udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes.
14422         (divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise.
14423         (smulsi3_highpart, umulsi3_highpart): Likewise.
14424
14425         (mulsidi3_i, umulsidi3_i): Make rtl describe operation
14426         correctly independent of endianness.
14427         (mulsidi3, umulsidi3): Now define_insn.  Hide details that
14428         confuse the optimizers.
14429         (mulsidi3+1, umulsidi3+1): New define_split.
14430
14431 Tue Feb 15 23:22:26 2000  Andrew Haley  <aph@cygnus.com>
14432
14433         * config/sh/sh.md: Guard insn splits against illegal registers.
14434         * config/sh/sh.h: Correct comment about macros.
14435
14436 Tue Feb 15 22:30:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14437                           Andrew MacLeod  <amacleod@cygnus.com>
14438
14439         * Makefile.in (lcm.o): Depend on insn-attr.h.
14440         * basic-block.h (optimize_mode_switching): Declare.
14441         * lcm.c (tm_p.h, insn-attr.h): #include.
14442         (seginfo, bb_info): New structs.
14443         (antic, transp, comp, delete, insert) : New file-scope static variables.
14444         (new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions.
14445         (reg_becomes_live, optimize_mode_switching): Likewise.
14446         * tm.texi: Add description of mode switching macros.
14447         * toplev.c (rest_of_compilation): Call optimize_mode_switching.
14448
14449         * sh-protos.h (remove_dead_before_cse): Remove prototype.
14450         (fldi_ok, fpscr_set_from_mem): New prototypes.
14451         * sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set.
14452         (CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS):
14453         Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
14454         (sh_flag_remove_dead_before_cse): Remove declaration.
14455         (NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros.
14456         (MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise.
14457         (MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
14458         * sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
14459         (barrier_align): Allow for JUMP_INSNS containing a parallel.
14460         (machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set.
14461         (fldi_ok): New function.
14462         (get_fpscr_rtx): Add fpscr_rtx as GC root.
14463         (emit_sf_insn): Only generate fpu switches when optimize < 1.
14464         (emit_df_insn): Likewise.
14465         (expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete.
14466         (sh_flag_remove_dead_before_cse): Delete.
14467         (get_free_reg, fpscr_set_from_mem): New functions.
14468         * sh.md (movdf, movsf): Remove no_new_pseudos code.
14469         (return): Remove emit_fpscr_use / remove_dead_before_cse calls.
14470
14471 2000-02-15  Loren Rittle  <ljrittle@acm.org>
14472
14473         * ginclude/stddef.h: Correct usage of _BSD_RUNE_T_ for FreeBSD.
14474
14475 2000-02-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14476
14477         * Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o,
14478         cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h.
14479
14480         * cccp.c: Include version.h and/or don't declare `version_string'.
14481         * collect2.c: Likewise.
14482         * alpha.c: Likewise.
14483         * arm/aof.h: Likewise.
14484         * arm/coff.h: Likewise.
14485         * arm/elf.h: Likewise.
14486         * arm/pe.h: Likewise.
14487         * arm/tcoff.h: Likewise.
14488         * arm/telf.h: Likewise.
14489         * arm/tpe.h: Likewise.
14490         * arm/vxarm.h: Likewise.
14491         * convex/convex.c: Likewise.
14492         * i386/dgux.c: Likewise.
14493         * i386/sun386.h: Likewise.
14494         * m88k/m88k.c: Likewise.
14495         * mcore/mcore-pe.h: Likewise.
14496         * mips/mips.h: Likewise.
14497         * romp/romp.h: Likewise.
14498         * sh/sh.c: Likewise.
14499         * cpphash.c: Likewise.
14500         * cppinit.c: Likewise.
14501         * dwarf2out.c: Likewise.
14502         * dwarfout.c: Likewise.
14503         * gcc.c: Likewise.
14504         * gcc.h: Likewise.
14505         * mips-tfile.c: Likewise.
14506         * protoize.c: Likewise.
14507         * toplev.c: Likewise.
14508         * tree.h: Likewise.
14509
14510         * version.c (version_string): Constify a char*.
14511
14512         * version.h: New file.
14513
14514 2000-02-14  Nick Clifton  <nickc@cygnus.com>
14515
14516         * configure.in: Add mcore-elf and mcore-pe targets.
14517         * configure: Regenerate.
14518
14519         * NEWS: Add note that MCore port has been contributed.
14520
14521         * invoke.texi: Document command line switches for MCore port.
14522         * install.texi: Add MCore to list of supported targets.
14523
14524 2000-02-14  Geoff Keating  <geoffk@cygnus.com>
14525
14526         * collect2.c (main) [COLLECT_EXPORT_LIST]: If we have frames,
14527         then we will need to import the frame handling functions.
14528         (scan_prog_file) [COLLECT_EXPORT_LIST]: We will also need
14529         to import the frames themselves.
14530
14531 Mon Feb 14 13:31:01 2000  Stan Cox  <scox@cygnus.com>
14532                           Jason Eckhardt  <jle@cygnus.com>
14533
14534         * basic_block.h: Added prototype for reorder_basic_blocks.
14535         * toplev.c: Changes to add -freorder-blocks and graph dump after
14536         block reordering is done.
14537         * flow.c (reorder_block_def): New structure for use during block
14538         reordering.
14539         (REORDER_BLOCK_*): New macros to access members of above structure.
14540         (skip_insns_between_block, get_common_dest, chain_reorder_blocks,
14541         make_reorder_chain, fixup_reorder_chain, reorder_basic_blocks): New
14542         functions for block reordering.
14543
14544 Mon Feb 14 11:24:44 2000  Hans-Peter Nilsson  <hp@bitrange.com>
14545
14546         * gcc.texi (Passes): Fix typo.
14547         * md.texi (Standard Names): Ditto.
14548         * tm.texi (Storage Layout): Ditto.
14549
14550 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
14551
14552         * cpplib.c (do_define): Only free the old definition if it
14553         actually had one.
14554
14555 2000-02-13   Neil Booth  <NeilB@earthling.net>
14556
14557         * cppfiles.c (read_and_prescan): When emitting deferred
14558         newlines, test speccase[] again instead of checking each
14559         possible whitespace character in turn.  When we encounter \r,
14560         look behind for \n first, then ahead.
14561
14562 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
14563
14564         * cse.c (cse_altered): New internal flag.
14565         (cse_insn): Set it if we changed an insn.
14566         (cse_main): Clear cse_altered before each basic block.
14567         Only garbage collect if cse_altered is true afterward.
14568
14569 Sun Feb 13 14:12:28 2000  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14570
14571         * sparc/sol2.h (LIB_SPEC): Link -ldl if profiling.
14572
14573 Sun Feb 13 13:21:55 2000  Jeffrey A Law  (law@cygnus.com)
14574
14575         * combine.c (simplify_comparison): Fix typo.
14576
14577 Sun Feb 13 12:57:52 2000  Neil Booth <NeilB@earthling.net>
14578
14579         * prefix.c (concat, lookup_key): Use xmalloc and xrealloc
14580         consistently.
14581
14582 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14583
14584         * flow.c (flow_loop_tree_node_add): Use better algorithm by passing
14585         previously inserted node instead of root node.  Caller changed.
14586
14587 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14588
14589         * basic-block.h (FLOW_LOOP_FIRST_BLOCK, FLOW_LOOP_LAST_BLOCK): Delete.
14590
14591 2000-02-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14592
14593         * crtstuff.c (__do_global_ctors_aux, __reg_frame_ctor,
14594         __dereg_frame_dtor): Add prototype argument.
14595
14596         * gthr-dce.h (__gthread_active_p, __gthread_once): Likewise.
14597
14598         * gthr-posix.h (__gthread_active_p, __gthread_once): Likewise.
14599
14600         * gthr-solaris.h (__gthread_active_p, __gthread_once): Likewise.
14601
14602         * gthr-vxworks.h (__gthread_once): Likewise.
14603
14604         * gthr-win32.h (__gthread_active_p, __gthread_once): Likewise.
14605
14606 Sat Feb 12 01:44:26 MET 2000  Jan Hubicka  <jh@suse.cz>
14607
14608         * i386.c (ix86_emit_restore_regs_using_mov): Break out from ...
14609         (ix86_expand_epilogue): ... here. Use mov instead of add to restore
14610         stack pointer in functions w/o saved registers, output LEAVE more often
14611         on TARGET_USE_LEAVE machines.
14612
14613 2000-02-07  Dmitri Makarov  <dim@wrs.com> & Bernd Schmidt <bernds@redhat.com>
14614
14615         * config/arm/arm.c (arm_init_cumulative_args); New function:
14616         Initlaise the CUMULATIE_ARGS strcuture for a function
14617         defintion.
14618         (arm_function_arg): New function: Determine where to place a
14619         function's argument.  Also handles deciding the function's
14620         call cookie.
14621         (current_file_function_operand): New function: Return true if
14622         the symbol is a function which has already been compiled.
14623         (arm_is_long_call_p): New function: Return true if the
14624         indicated function should be called via a long call.
14625         (arm_valid_type_attribute_p): New function: Return true if the
14626         attribute is a valid, arm specific, attribute.
14627         (arm_comp_type_attribute): New function: Return true if the
14628         two types have compatable, arm specific, attributes.
14629
14630         * config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a
14631         structure.
14632         (FUNCTION_ARG): Redefine to call arm_function_arg.
14633         (FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct
14634         structure field.
14635         (INIT_CUMULATIVE_ARGS): Redefine to call
14636         arm_init_cumulative_args.
14637         (FUNCTION_ARG_ADVANCE): Redefine to use correct structure
14638         field.
14639         (SETUP_INCOMING_VARARGS): Redefine to use correct structure
14640         field.
14641         (ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled
14642         functions.
14643         (ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION.
14644         (VALID_MACHINE_TYPE_ATTRIBUTE): Define.
14645         (COMP_TYPE_ATTRIBUTES): Define.
14646
14647         * config/arm/arm.md (call): Call arm_is_long_call_p to decide
14648         if a long call is needed.
14649         (call_value): Call arm_is_long_call_p to decide if a long call
14650         is needed.
14651         (call_symbol): Call arm_is_long_call_p to decide if a long call
14652         is needed.
14653
14654         * config/arm/arm-protos.h: Add prototype for arm_is_long_call_p.
14655
14656 2000-02-11  Denis Chertykov  <denisc@overta.ru>
14657
14658         * README.AVR: New file with information about the avr ports.
14659         * config/avr: New directory with avr port files.
14660
14661 2000-02-11  Andreas Jaeger  <aj@suse.de>
14662
14663         * fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@.
14664
14665 2000-02-11  Zack Weinberg  <zack@wolery.cumb.org>
14666
14667         * cpphash.c: Fix formatting, update commentary.
14668         (dump_definition): Take three separate arguments instead of a
14669         MACRODEF structure argument.
14670         * cpphash.h: Update prototype of dump_definition.
14671         * cppinit.c (cpp_finish): Update call of dump_definition.
14672
14673         * cpplib.c (do_define): Always create new hash entry with
14674         T_MACRO type.  Remove redundant check for redefinition of
14675         poisoned identifier.  Update call of dump_definition.
14676         (do_undef): Don't call check_macro_name.  Rename sym_length to
14677         len.
14678         (do_error, do_warning): Don't use copy_rest_of_line or
14679         SKIP_WHITE_SPACE.
14680         (do_warning): Don't use pedwarn for the actual warning,
14681         only the notice about its not being in the standard.  (Fixes
14682         bug with #warning in system headers.)
14683         (do_ident): Stricter argument checking - accept only a single
14684         string after #ident.  Also, macro-expand the line.
14685         (do_xifdef): Use cpp_defined.  De-obfuscate.
14686
14687         (do_pragma): Split out specific pragma handling to separate
14688         functions.  Use get_directive_token.  Update commentary.  Do
14689         not pass on #pragma once or #pragma poison to the front end.
14690         (do_pragma_once, do_pragma_implementation, do_pragma_poison,
14691         do_pragma_default): New.
14692
14693 Feb 11 12:30:53 2000  Jeffrey A Law  (law@cygnus.com)
14694
14695         * jump.c (jump_optimize_1): The first operand in a relational
14696         can be a CONST_INT.
14697         * optabs.c (emit_conditional_move): Handle relationals which
14698         have a known true/false result.
14699
14700 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
14701
14702         * function.c (thread_prologue_and_epilogue_insns): Don't insert
14703         a RETURN insn into a block which already ends with a jump.
14704
14705 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
14706
14707         * haifa-sched.c (BUF_LEN): Increase a lot.
14708
14709 2000-02-11  Nick Clifton  <nickc@cygnus.com>
14710
14711         * configure.in: Add tm_p_file specification for thumb targets.
14712         * configure: Regenerate.
14713
14714         * config/arm/thumb-protos.h: New file: Prototypes for exported
14715         functions defined in thumb.c.
14716
14717 2000-02-11  Robert Lipe  <robertl@sco.com>
14718
14719         * Makefile.in (bootstrap-lean): Remove additional files.
14720         (bootstrap2-lean): Likewise.
14721         (VOL_FILES): List of files for above.
14722
14723 2000-02-11  Nathan Sidwell  <nathan@acm.org>
14724
14725         * cpphash.c (special_symbol): Remove spurious argument to
14726         cpp_lookup.
14727
14728 2000-02-11  Joel Sherrill (joel@OARcorp.com>
14729
14730         * configure.in: (i*86-*-rtems*): Swapped elf and coff
14731         stanzas.
14732         * configure: Rebuilt.
14733
14734 2000-02-11  Rodney Brown  <RodneyBrown@pmsc.com>
14735
14736         * pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef.
14737
14738 Fri Feb 11 02:59:05 2000  Jeffrey A Law  (law@cygnus.com)
14739
14740         * pa.c, pa.h: Remove trigraph sequences within comments.
14741
14742 Fri Feb 11 02:51:56 2000  Pavel Roskin <pavel_roskin@geocities.com>
14743
14744         * invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics.
14745
14746 Fri Feb 11 02:48:30 2000  Brad Lucier  (lucier@math.purdue.edu)
14747
14748         * sbitmap.h: Make SBITMAP_ELT_BITS unsigned.
14749
14750 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14751
14752         * config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE.
14753
14754 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14755
14756         * config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label.
14757         (ASM_OUTPUT_EXTERNAL): Use c4x_external_ref.
14758         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
14759         (ASM_FILE_END): Use c4x_file_end.
14760         * config/c4x/c4x.c (c4x_global_label): New function.
14761         (c4x_external_ref, c4x_file_end): Likewise.
14762
14763         * config/c4x/c4x-protos.h (c4x_global_label): Add prototype.
14764         (c4x_external_ref, c4x_end_file): Likewise.
14765
14766 2000-02-10  Zack Weinberg  <zack@wolery.cumb.org>
14767
14768         * cppexp.c: Don't include cpphash.h.
14769         (parse_charconst, cpp_lex): Use cpp_defined.
14770         (cpp_lex): Use get_directive_token throughout.  Remove
14771         unnecessary cases from switch.  Move assertion-handling code
14772         down to OTHER case.
14773         (cpp_parse_expr): If we see '+' or '-', check the context to
14774         determine if they are unary or binary operators.  Streamline
14775         the jumps a bit.  Do not call skip_rest_of_line.
14776
14777         * cpplib.c: Make skip_rest_of_line and cpp_skip_hspace
14778         static.  Export get_directive_token.  Update commentary.
14779         (cpp_defined): New function.
14780         (do_define): Remove reference to T_PCSTRING.  Call
14781         free_definition to release memory for old definition, when
14782         redefining a macro.
14783         (eval_if_expression): Set only_seen_white to 0 before calling
14784         cpp_parse_expr.  Call skip_rest_of_line after it returns.
14785         (cpp_read_check_assertion): Don't preserve a pointer into the
14786         token buffer across a call to cpp_get_token.
14787
14788         * Makefile.in (cppexp.o): Don't depend on cpphash.h.
14789         * cppfiles.c (redundant_include_p): Use cpp_defined.
14790         * cpphash.c (free_definition): New function.
14791         (delete_macro): Use it.  Update commentary.
14792         * cpphash.h: Typedef HASHNODE here.  Prototype cpp_lookup and
14793         free_definition.
14794         * cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING
14795         from enum node_type.  Prototype cpp_defined and get_directive_token.
14796         Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace.
14797
14798         * fix-header.c (check_macro_names): Use cpp_defined.
14799         (read_scan_file): Set inhibit_warnings and inhibit_errors in
14800         the options structure.
14801
14802 2000-02-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
14803
14804         * c-pragma.c (maximum_field_alignment): Remove duplicate declaration.
14805
14806 2000-02-10  Jason Merrill  <jason@casey.cygnus.com>
14807
14808         * dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin)
14809         rather than die->die_tag.
14810
14811 Thu Feb 10 16:26:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14812
14813         * combine.c (make_extraction, force_to_mode): Avoid warning on
14814         mixed-signedness conditionals.
14815         (make_field_assignment, nonzero_bits): Likewise.
14816         * expmed.c (store_fixed_bit_field): ALIGN arg now unsigned.
14817         (store_split_bit_field, extract_split_bit_field): Likewise.
14818         (extract_fixed_bit_field, store_bit_field,
14819         * expr.c: Change alignment to be unsigned everywhere.
14820         (move_by_pieces, store_constructor_field, store_constructor):
14821         Alignment parm is unsigned.
14822         (emit_block_move, emit_group_load, emit_group_store): Likewise.
14823         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
14824         (do_compare_rtx_and_jump): Likewise.
14825         (move_by_pieces_ninsns, clear_by_pieces): Likewise.
14826         Compare align with GET_MODE_ALIGNMENT.
14827         (expand_expr_unaligned): Pointer to alignment is pointer to unsigned.
14828         (get_inner_reference): Likewise.
14829         (copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts.
14830         (expand_assignment): Local vars for alignment now unsigned.
14831         (store_constructor, store_field, expand_expr, do_jump): Likewise.
14832         (do_compare_and_jump): Likewise.
14833         (store_field): Call new function expr_align.
14834         * expr.h (emit_block_move, emit_group_load, emit_group_store):
14835         Alignment arg now unsigned.
14836         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
14837         (do_compare_rtx_and_jump, store_bit_field): Likewise.
14838         (extract_bit_field): Likewise.
14839         * fold-const.c (add_double): Add cast to eliminate signedness warning.
14840         * machmode.h (GET_MODE_ALIGNMENT): Result is unsigned.
14841         (get_best_mode): Alignment arg is unsigned.
14842         * rtl.h (move_by_pieces): Likewise.
14843         * store-layout.c (maximum_field_alignment, set_alignment):
14844         Now unsigned.
14845         (layout_decl): Alignment arg is now unsigned.
14846         Remove unneeded casts.
14847         (layout_record, layout_union, layout_type): Remove unneeded casts.
14848         Local alignment variables now unsigned.
14849         (get_best_mode): Alignment arg now unsigned.
14850         * tree.c (expr_align): New function.
14851         * tree.h (expr_align): Likewise.
14852         (maximum_field_alignment, set_alignment): Now unsigned.
14853         (get_inner_reference): Alignment argument is now pointer to unsigned.
14854         * varasm.c (assemble_variable): Add cast to eliminate warning.
14855
14856 Thu Feb 10 12:56:47 2000  Jim Wilson  <wilson@cygnus.com>
14857
14858         * expmed.c (store_bit_field): If op0 and fieldmode are the same size,
14859         then store directly into op0.
14860
14861         * calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for
14862         the CALL_INSN, and emit the note immediately after it.
14863
14864 2000-02-10  Nick Clifton  <nickc@cygnus.com>
14865
14866         * config/arm/thumb.md (epilogue): Include a (return) in the
14867         generated insn, and emit it using emit_jump_insn not
14868         emit_insn.
14869
14870 Thu Feb 10 18:28:59 MET 2000  Jan Hubicka  <jh@suse.cz>
14871
14872         * function.c (assign_temp): Change zero-sized arrays to size 1.
14873         * integrate.c (expand_inline_function): Do not update
14874         stack_alignment_needed
14875         * i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY,
14876         add some sanity checking, remove optimization for function with
14877         zero frame size.
14878
14879 2000-02-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14880
14881         * flow.c (mark_regs_live_at_end): Delete unused variables.
14882
14883         * ggc-page.c (ggc_page_print_statistics): bzero -> memset.
14884
14885         * integrate.c (copy_rtx_and_substitute): Wrap variable `alignment'
14886         in macro FRAME_GROWS_DOWNWARD.
14887
14888         * stmt.c (expand_end_bindings): Delete unused variable.
14889
14890         * unroll.c (iteration_info): Mark parameter `loop' with
14891         ATTRIBUTE_UNUSED.
14892
14893 2000-02-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14894
14895         * fixinc/server.c (load_data): Return NULL if the marker line is
14896         not found.
14897         (run_shell): If load_data returns NULL, retry the command once, in
14898         a new shell.
14899
14900         * configure: Rebuilt.
14901
14902 2000-02-09  Bruce Korb  <bkorb@gnu.org>
14903
14904         * gcc/fixincludes:  ** DELETED **
14905         * gcc/fixcpp:  ** DELETED **
14906         * gcc/fixinc-nt.sed:  ** DELETED **
14907         * gcc/just-fixinc:  ** DELETED **
14908         * gcc/Makefile.in:  Removed out-dated commentary
14909         * gcc/configure.in: Removed fast-fixincludes disablement.
14910         * MAINTAINERS(Ian Taylor) moved to "Write after approval" group.
14911
14912 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
14913         * function.c (thread_prologue_and_epilogue_insns): Uncomment
14914         last change.
14915
14916 2000-02-09  Richard Henderson  <rth@cygnus.com>
14917
14918         * jump.c (delete_insn): Don't delete user labels at -O0.
14919
14920 2000-02-09  Robert Lipe  <robertl@sco.com>
14921
14922         * Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS.
14923         Don't link with HOST_LIBS.
14924
14925 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
14926
14927         * configure.in: Correct --help text for --with-dwarf2.
14928         Put tm-dwarf2.h after other tm files, if it's requested.
14929         * configure: Regenerate.
14930         * config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before
14931         defining it.
14932
14933 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
14934
14935         * cpplib.h: Provide HASHNODE typedef and forward decl of
14936         struct hashnode only.  Kill cpp_hashnode typedef.  MACRODEF,
14937         DEFINITION, struct hashnode, struct macrodef, struct
14938         definition, scan_decls prototype, default defn of
14939         INCLUDE_LEN_FUDGE moved elsewhere.
14940
14941         * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct
14942         definition, and struct hashnode moved here. Remove the unused
14943         'predefined' field from struct definition.  Replace the 'args'
14944         union with its sole member.  All users updated (cpphash.c).
14945         Delete HASHSTEP and MAKE_POS macros, and hashf prototype.  Add
14946         multiple include guard.
14947
14948         * cpphash.c (hashf): Make static; use better algorithm; drop
14949         HASHSIZE parameter; return an unsigned int.
14950         (cpp_lookup): Drop HASH parameter.  PFILE parameter is
14951         used. Calculate HASHSIZE modulus here.
14952         (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus
14953         here.
14954         (create_definition): Drop PREDEFINITION parameter.
14955         * cpplib.c (do_define): Don't calculate a hash value here.
14956         Don't pass (keyword == NULL) to create_definition.
14957
14958         * scan.h: Prototype scan_decls here.
14959         * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here.
14960         * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All
14961         callers of cpp_lookup and cpp_install updated.
14962
14963         * cpphash.c (macarg): Hoist all the flag diddling out of the
14964         function...
14965         (macroexpand): ... and out of the loop that calls macarg.
14966         Skip over the initial paren before macro arguments with
14967         cpp_get_non_space_token; point may be some distance before
14968         that paren.  Abort if it's not there.
14969
14970         * cpplib.c (parse_clear_mark): Delete function.
14971         (parse_set_mark, parse_goto_mark): Make static.
14972         (ACTIVE_MARK_P): New macro.
14973         (skip_block_comment, skip_line_comment): Do not bump the line
14974         if ACTIVE_MARK_P is true.
14975         (cpp_pop_buffer): The buffer to be popped may not have an
14976         active mark.
14977         (cpp_get_token): When looking for the initial paren before
14978         macro arguments, only set a mark in a file buffer, Always
14979         return to that mark before proceeding to call macroexpand or
14980         return a NAME token.
14981
14982         * cpplib.h: Remove prototypes of parse_set_mark,
14983         parse_clear_mark, parse_goto_mark.
14984         (struct cpp_options): Rename 'put_out_comments' to
14985         'discard_comments' and invert its sense.
14986         * cppinit.c, cpphash.c, cpplib.c: All users of
14987         put_out_comments changed to use discard_comments, with
14988         opposite sense.
14989
14990 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
14991
14992         * function.c (thread_prologue_and_epilogue_insns): Don't delete
14993         the edge from a block that both jumps and falls through to the
14994         fallthru block.
14995
14996 2000-02-09  Scott Bambrough  <scottb@netwinder.org>
14997
14998         * config/arm/arm.md (movsi): In PIC mode, make sure that a
14999         constant source address is legitimate.
15000
15001 2000-02-09  Philip Blundell  <pb@futuretv.com>
15002
15003         * config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF
15004         correctly.
15005
15006         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when
15007         generating PIC.
15008         (LEGITIMATE_PIC_OPERAND): Disallow references to labels.
15009
15010 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
15011
15012         * cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer
15013         ends with a newline and a NUL.  Don't be so clever manipulating
15014         strings.
15015
15016 Wed Feb  9 14:18:08 MET 2000  Jan Hubicka  <jh@suse.cz>
15017
15018         * reload1.c (reload) Align stack frame to cfun->stack_alignment_needed,
15019         not to BIGGEST_ALIGNMENT.
15020
15021 2000-02-08  Geoff Keating  <geoffk@cygnus.com>
15022
15023         * dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant.
15024         * dwarf2out.c (dwarf_cfi_name): Print name of new constant.
15025         (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed.
15026         (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended.
15027         * frame.c (execute_cfa_insn): Handle
15028         DW_CFA_GNU_negative_offset_extended.
15029
15030 2000-02-08  Richard Henderson  <rth@cygnus.com>
15031
15032         * flow.c (tidy_fallthru_edges): Split out from ...
15033         (delete_unreachable_blocks): ... here.
15034         (find_basic_blocks): Use it.
15035
15036 Tue Feb  8 15:51:50 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15037
15038         * stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY.
15039
15040 2000-02-08  Zack Weinberg  <zack@wolery.cumb.org>
15041
15042         * Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a.
15043         (gen_protos.o): Don't depend on cpplib.h or cpphash.h.
15044         (fix-header.o): Don't depend on cpphash.h.
15045
15046         * scan.c (hashstr): New function.
15047         * scan.h: Prototype it.
15048         * fix-header.c: Don't include cpphash.h.  Use hashstr.
15049         * gen-protos.c: Don't include cpphash.h or cpplib.h.  Use
15050         hashstr.  Report hash table statistics.  Add private
15051         definition of xrealloc.
15052
15053 2000-02-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15054
15055         * i386.h (TARGET_SWITCHES): Fix typo in option name.
15056
15057 2000-02-08  Clinton Popetz  <cpopetz@cygnus.com>
15058
15059         * function.c (thread_prologue_and_epilogue_insns): Don't replace
15060         jumps with returns unless they are jumps to the fallthru block.
15061
15062 Tue Feb  8 07:53:55 2000  Jan Hubicka  <jh@suse.cz>
15063
15064         * i386.md (addqi3_cc): Fix contraints.
15065
15066 Tue Feb  8 01:39:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15067
15068         * function.c (emit_return_into_block): Wrap in #ifdef HAVE_return.
15069
15070 2000-02-07  Mark Mitchell  <mark@codesourcery.com>
15071
15072         * cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a
15073         carriage return after a macro name.
15074
15075 2000-02-07  Fred Fish  <fnf@be.com>
15076
15077         * i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing
15078         so the gcc2_compiled symbol doesn't confuse BeOS debuggers.
15079
15080 2000-02-07  Zack Weinberg  <zack@wolery.cumb.org>
15081
15082         * cppfiles.c (deps_output): Count spacers in deps_column.
15083
15084 2000-02-07  Neil Booth  <NeilB@earthling.net>
15085
15086         * cppinit.c (initialize_dependency_output): If there is no
15087         suffix, don't try to look for known suffixes.  Use strrchr.
15088         (cpp_start_read): Remove duplicate initialization.
15089
15090 Mon Feb  7 18:36:41 MET 2000  Jan Hubicka  <jh@suse.cz>
15091
15092         * calls.c (compute_argument_block_size): New argument
15093         preferred_stack_boundary.
15094         (expand_call): update cfun->preferred_stack_boundary, update call of
15095         compute_argument_block_size
15096         (emit_library_call): Increate cfun->preferred_stack_boundary
15097         to PREFERRED_STACK_BOUNDARY
15098         (emit_library_call_value): Likewise.
15099         * explow.c (allocate_dynamic_stack_spave): Likewise.
15100         * function.c (prepare_function_start): Set
15101         cfun->preferred_stack_boundary
15102         * function.h (struct function): Add preferred_stack_boundary field.
15103         * integrate.c (expand_inline_function): Update
15104         cfun->preferred_stack_boundary and cfun->stack_alignment_needed.
15105         (copy_rtx_and_substitute): Align frame to stack_alignment_needed only.
15106         * i386.c (compute_frame_size): Use cfun->preferred_stack_boundary.
15107
15108 2000-02-06  Zack Weinberg  <zack@wolery.cumb.org>
15109
15110         * cpplib.c (my_strerror, cpp_error, cpp_error_with_line,
15111         cpp_error_from_errno, cpp_warning, cpp_warning_with_line,
15112         cpp_pedwarn, cpp_pedwarn_with_line,
15113         cpp_pedwarn_with_file_and_line): Move to cpperror.c.
15114         (cpp_print_file_and_line, v_cpp_error, v_cpp_warning,
15115         v_cpp_error_with_line, v_cpp_warning_with_line,
15116         cpp_message_from_errno, cpp_perror_with_name): Delete.
15117
15118         * cpperror.c (cpp_print_containing_files): Take starting
15119         buffer as argument.
15120         (cpp_file_line_for_message): Rename to cpp_print_file_and_line.
15121         (v_cpp_message): Now called directly by all entry points.
15122         Remove -1 case.
15123         (cpp_pfatal_with_name, cpp_message): Delete.
15124         (cpp_notice_from_errno, cpp_ice): New functions.
15125         (cpp_notice): Is now for reporting error conditions, just
15126         without an associated file.
15127         (cpp_error, cpp_error_with_line): Don't do anything if
15128         opts->inhibit_errors is on.
15129         (cpp_pedwarn_with_file_and_line): Take column argument also.
15130
15131         * cpplib.h: Update prototypes of exported functions.
15132         (struct cpp_options): Add inhibit_errors.
15133
15134         * cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for
15135         non-error messages.  Include intl.h.
15136
15137         * cppinit.c, cppmain.c: Likewise.  Also, use
15138         cpp_notice_from_errno instead of cpp_perror_with_name or
15139         cpp_pfatal_with_name, and cpp_notice instead of cpp_message.
15140
15141         * cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to
15142         report internal errors.
15143
15144         * cpplib.c (do_define): Switch bcopy to memcpy.
15145         Give cpp_pedwarn_with_file_and_line a dummy column argument.
15146
15147         * cpplib.c (copy_rest_of_line): Revert previous change: don't
15148         bail out early if we hit a line comment.
15149
15150 2000-02-06  Richard Henderson  <rth@cygnus.com>
15151
15152         * flow.c (flow_delete_insn, make_edge, remove_edge): Export.
15153         * basic-block.h: Declare them.
15154         * emit-rtl.h (active_insn_p): New.
15155         (next_active_insn, prev_active_insn): Use it.
15156         * rtl.h: Declare it.
15157         * function.c (emit_return_into_block): New.
15158         (thread_prologue_and_epilogue_insns): Insert return insns instead
15159         of epilogues when possible.
15160         * jump.c (jump_optimize_1): Remove code to insert a return insn
15161         on the fallthru to the exit block.
15162
15163         * i386.c (ix86_can_use_return_insn_p): Fail for large poped args
15164         and for non-empty stack frames.
15165         * i386.md (return): Expand to return-pop as needed.
15166
15167 2000-02-06  Richard Henderson  <rth@cygnus.com>
15168
15169         * simplify-rtx.c (simplify_relational_operation): Canonicalize
15170         constant to op1 for testing.
15171
15172 2000-02-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15173
15174         * config/c4x/c4x.md (*ldi_on_overflow): New pattern.
15175         (fixuns_truncqfqi2): Use it.
15176
15177 2000-02-06  Richard Henderson  <rth@cygnus.com>
15178
15179         * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack
15180         as a TYPE_LEA insn.
15181
15182         * i386.md (widening and peepholes): Mask the constant instead of
15183         using gen_lowpart.
15184
15185 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
15186
15187         * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump
15188         input pointer before possibly branching off to the backslash
15189         code.
15190         * cpphash.c (macroexpand): Correctly delete \r escapes when
15191         stringifying parameters.
15192         * cpplib.c (copy_rest_of_line): Go directly to skip_block_comment
15193         if we can; bail out early if we hit a line comment.
15194         (handle_directive): Treat '# 123' in an .S file just like
15195         '# <punctuation>'.  Discard the shifted '#' if we hit '#\n'.
15196         Return 1 for '# not_a_directive'.
15197         (get_directive_token): Pop macro buffers here, so that
15198         cpp_get_token can't sneakily move past a newline.
15199         Add sanity checks.
15200         (cpp_get_token): goto randomchar if handle_directive returns 0.
15201
15202         * cppalloc.c: Update copyright.
15203         * cpplib.c: Merge all the static function prototypes into one
15204         block.
15205         * cpplib.h: Remove #if 0 block.
15206
15207         * cpperror.c: Remove #ifdef EMACS block.
15208         * cppmain.c: Likewise.
15209         * cpphash.c: Remove #if 0 blocks.
15210         * cppinit.c: Remove #if 0 blocks, and the -lint option.
15211         * cpplib.c: Remove #if 0 blocks and code referencing
15212         pcp_inside_if or for_lint.  Remove duplicate error message.
15213         Fix error messages for #else after #else or #elif.  Reformat.
15214         Remove archaic TODO list.
15215         * cpplib.h: Remove pcp_inside_if and for_lint flags.
15216
15217 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
15218
15219         * i386/osf1elf.h: Add missing backslash to multiline string.
15220
15221 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15222
15223         * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg.
15224
15225 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15226
15227         * Makefile.in (c-common.o): Depend on $(EXPR_H).
15228
15229         * c-common.c: Include expr.h.
15230
15231         * c-pragma.c (mark_align_stack): Add prototype.
15232
15233         * caller-save.c (add_stored_regs): Likewise.
15234
15235         * combine.c (record_promoted_value): Likewise.
15236
15237         * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro):
15238         Likewise.
15239
15240         * cppinit.c (new_pending_define): Likewise.
15241
15242         * cpplib.c (skip_block_comment, skip_line_comment): Likewise.
15243
15244         * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists,
15245         AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
15246         AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p,
15247         class_scope_p): Likewise.
15248
15249         * dwarf2out.h (dwarf2out_set_demangle_name_func,
15250         dwarf2out_add_library_unit_info): Likewise.
15251
15252         * ggc.h (ggc_page_print_statistics): Likewise.
15253
15254         * haifa-sched.c (propagate_deps): Likewise.
15255
15256         * reg-stack.c (next_flags_user, record_label_references): Likewise.
15257
15258         * rtl.h (set_stack_check_libfunc): Likewise.
15259
15260         * toplev.h (set_fatal_function): Likewise.
15261
15262         * toplev.c (set_fatal_function): Delete prototype.
15263
15264         * diagnostic.c: Deconstify functions returning malloc'ed ptrs.
15265
15266 2000-02-05  Geoff Keating  <geoffk@cygnus.com>
15267
15268         * ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX.
15269         (FUNC_END): Likewise.
15270
15271 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15272
15273         * caller-save.c: Include tm_p.h.
15274
15275 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15276
15277         * Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2).
15278
15279 2000-02-04  Neil Booth  <NeilB@earthling.net>
15280
15281         * cccp.c (main): Check 'dir' for a NULL pointer before passing
15282         it to strcmp.
15283
15284 2000-02-04  Zack Weinberg  <zack@wolery.cumb.org>
15285
15286         * recog.h: Remove NO_MD_PROTOTYPES ifdefs.
15287         * genflags.c: Use the max_operand_1 logic from genemit.c to
15288         calculate how many arguments gen_insn prototypes have.  Remove
15289         NO_MD_PROTOTYPES ifdefs from the generated file.
15290         * genoutput.c: Don't define NO_MD_PROTOTYPES in the generated
15291         file.  Cast gen_insn initializers to insn_gen_fn.
15292         * config/alpha/vms.h: Don't define NO_MD_PROTOTYPES.
15293         * gcc.texi: Remove documentation of NO_MD_PROTOTYPES.
15294
15295 2000-02-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15296
15297         * fixinc/Makefile.in (HDR): Add machname.h.
15298         (clean): Likewise.
15299
15300 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15301
15302         * config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ...
15303         (c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto.
15304         (c4x_cpu_version): Ditto.
15305         * config/c4x/c4x-protos.h: ... here.
15306
15307 2000-02-04  Jason Merrill  <jason@casey.cygnus.com>
15308
15309         * dwarf2out.c (add_abstract_origin_attribute): Don't call
15310         gen_abstract_function on our context if we're a nested function.
15311
15312 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15313
15314         * config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite.
15315         * config/c4x/libgcc.S (ufix_truncqfhi2n): Fix.
15316
15317 2000-02-04  Bruce Korb  <bkorb@gnu.org>
15318
15319         * fixinc/genfixes(machname.h):
15320         Move the functionality from gen-machine.h into this file.
15321         UNdef MN_NAME_PAT if there are no names to change.
15322         Also, be a little kinder when AutoGen is not present.
15323
15324         * fixinc/Makefile.in(machname.h):
15325         Change the generation rule to use genfixes.
15326
15327         * fixinc/fixfixes.c(machine_name):
15328         machine_name_fix's functionality now dependent upon whether
15329         MN_NAME_PAT is defined.
15330
15331         * fixinc/fixtests.c(machine_name):
15332         ditto.
15333
15334         * fixinc/fixlib.c(mn_get_regexps): conditional on definition
15335         of MN_NAME_PAT.
15336
15337         * fixinc/fixlib.h(mn_get_regexps):
15338         ditto
15339
15340         * fixinc/gen-machine.h: DELETED
15341
15342 2000-02-04  Jan Hubicka  <jh@suse.cz>
15343             Richard Henderson  <rth@cygnus.com>
15344
15345         * i386.c (SAVE_REGS_FIRST): Remove.
15346         (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode.
15347         (ix86_compute_frame_size): Likewise.
15348         (ix86_expand_prologue): Likewise.  Use pro_epilogue_adjust_stack.
15349         (ix86_emit_restore_regs): Remove.
15350         (ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack
15351         when a frame pointer is in use.
15352         (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode.  Use mov
15353         instead of pop to restore a register when profitable; emit leave
15354         when profitable.
15355         (ix86_attr_length_default): Handle pro_epilogue_adjust_stack
15356         as a TYPE_LEA insn.
15357         (ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU.
15358         * i386.md (prologue_allocate_stack): Remove.
15359         (epilogue_deallocate_stack): Remove.
15360         (pro_epilogue_adjust_stack): New.
15361
15362 2000-02-04  Richard Henderson  <rth@cygnus.com>
15363
15364         * function.c (diddle_return_value): Rework to use a callback function.
15365         Use current_function_return_rtx if it's been set up.
15366         (do_clobber_return_reg, clobber_return_register): New.
15367         (do_use_return_reg, use_return_register): New.
15368         (expand_function_end): Use them.
15369         * stmt.c (expand_null_return): Likewise.
15370         * function.h: Declare them.
15371         * flow.c (mark_regs_live_at_end): Use diddle_return_value.
15372         (mark_reg): Change arguments as appropriate for callback.
15373         * integrate.c (expand_inline_function): Revert 19 Jan change.
15374
15375 Fri Feb  4 20:25:42 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15376
15377         * tm.texi (Values in Registers): Fix typo: "fo" "for".
15378         (Misc): Say the scheduler, not the Haifa scheduler.
15379
15380 2000-02-04  Clinton Popetz  <cpopetz@cygnus.com>
15381
15382         * jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs
15383         when in_mem is set.  Update all callers.
15384
15385 2000-02-04  Richard Henderson  <rth@cygnus.com>
15386
15387         * i386/openbsd.h (INT_ASM_OP): Define.
15388
15389 Fri Feb  4 10:51:30 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15390
15391         * tm.texi: Fix various typos.
15392
15393 Thu Feb  3 17:17:32 2000  Steve Ellcey <sje@cup.hp.com>
15394
15395         * config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case.
15396         (MD_STARTFILE_PREFIX_1): New macro.
15397
15398 Thu Feb  3 15:08:13 MET 2000  Jan Hubicka  <jh@suse.cz>
15399
15400         * i386.md (movstrsi, clrstrsi): Support variable sized copies, align
15401         destination when needed.
15402         (strmovsi, strsetsi): New expander.
15403         (strmovsi_1, strsetsi_1): New pattern.
15404         * i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP,
15405         TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros.
15406         (TARGET_SWITCHES) Add align-stringops and inline-all-stringops.
15407         * invoke.texi (align-stringops, inline-all-stringops): Document.
15408
15409 Wed Feb  2 23:04:47 2000   Krister Walfridsson <cato@df.lth.se>
15410
15411         * i386/netbsd.h (INT_ASM_OP): Define.
15412
15413 2000-02-02  Zack Weinberg  <zack@wolery.cumb.org>
15414
15415         * cpplib.h (cpp_reader): Add new flag, no_directives.
15416         * cpphash.c (macarg): Set it.
15417         * cpplib.c (handle_directive): If no_directives is on and we
15418         find a directive, issue an error and discard the line.
15419
15420 Wed Feb  2 13:07:10 2000  Jim Wilson  <wilson@cygnus.com>
15421
15422         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for
15423         FP constants.  Add ! TARGET_FPU check for FP constants.
15424
15425 2000-02-02  Clinton Popetz  <cpopetz@cygnus.com>
15426
15427         * flow.c (find_basic_blocks): Don't kill label_value_list
15428         here.
15429         (cleanup_cfg): Kill it here.
15430
15431 Wed Feb  2 08:12:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15432
15433         * expr.c (store_field): Ensure ALIGN is no stricter than the
15434         alignment of EXP.
15435
15436 2000-02-02  Richard Henderson  <rth@cygnus.com>
15437
15438         * jump.c (delete_insn): Partially revert 19 Jan change;
15439         don't convert unused code labels to notes at -O0.
15440
15441 2000-02-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15442
15443         * toplev.c (rest_of_compilation): Run rebuild_jump_labels after
15444         split_all_insns to recreate REG_LABEL notes for flow2 pass.
15445
15446 2000-02-01  Richard Henderson  <rth@cygnus.com>
15447
15448         * i386.c (general_no_elim_operand): New.
15449         (nonmemory_no_elim_operand): New.
15450         (ix86_expand_move): Copy eliminable operands before a push.
15451         * i386-protos.h: Declare new functions.
15452         * i386.h (CAN_ELIMINATE): Simplify.
15453         (PREDICATE_CODES): Update.
15454         * i386.md (push insns): Don't allow eliminable register operands.
15455
15456 2000-02-01  Richard Henderson  <rth@cygnus.com>
15457
15458         * flow.c (mark_regs_live_at_end): Follow expand_function_end and
15459         replace BLKmode with DECL_RTL's mode.
15460
15461 2000-02-01  Zack Weinberg  <zack@wolery.cumb.org>
15462
15463         * frame.c (find_fde): Convert for loop to do-while so compiler
15464         sees it's always executed at least once.
15465         * libgcc2.c (BBINBUFSIZE): Kill.
15466         (__bb_init_prg): Use fgets.
15467         (__bb_exit_trace_func): Don't paste strings.
15468         * unroll.c (unroll_loop): Initialize unroll_type, not
15469         unroll_number, and tweak logic to match.
15470
15471         * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in
15472         all failure paths.
15473         (ix86_flags_dependant): Likewise.  Disentangle control flow.
15474         (ix86_sched_reorder): Break guts out to
15475         ix86_sched_reorder_pentium and ix86_sched_reorder_ppro.
15476         (ix86_sched_reorder_ppro): Initialize pair2 and insnp before
15477         any possible use.
15478
15479         * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't
15480         use string concatenation.  Don't save and restore esi.
15481
15482         * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def.
15483         (machname.h): Remove script to separate file.  Use two-step
15484         sequence so target is not created if script fails.
15485         * fixinc/gen-machname.h: New file.  Handle case where no non-reserved
15486         identifiers are defined.
15487         * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is
15488         an empty string, machine_name doesn't need to do anything at
15489         all.
15490         (is_cxx_header): Add more cases to regexp.
15491         * fixinc/fixlib.h: Update prototype.
15492         * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of
15493         mn_get_regexps.
15494         * fixinc/fixincl.c: Define NO_BOGOSITY.
15495
15496         * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out.
15497         (hp_sysfile): Add missing comma.
15498         (math_exception): Put the wrapper ifdefs at the beginning and
15499         the end of the file.
15500         * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate.
15501
15502 2000-02-01  Richard Henderson  <rth@cygnus.com>
15503
15504         * sparc.c (fp_zero_operand): Turn into a normal predicate.
15505         Use CONST0_RTX.  Update all callers.
15506         * sparc.h, sparc-protos.h: Update accordingly.
15507         * sparc.md (fp mov insns): Use fp_zero_operand directly
15508         where applicable.
15509
15510 Wed Feb  2 02:59:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15511
15512         * tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS
15513         example.
15514
15515 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15516
15517         * Makefile.in (specs.ready): New target.
15518         (fixinc.sh): Depend on `specs.ready' instead of `specs'.
15519
15520 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15521
15522         * fixinc.irix: Use unique filenames for writing into /tmp,
15523         * fixinc.ptx: Likewise.
15524         * fixinc.sco: Likewise.
15525         * fixinc.svr4: Likewise.
15526         * fixinc.winnt: Likewise.
15527
15528 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15529
15530         * tsystem.h: New file.
15531
15532         * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o,
15533         s-crtS): Depend on tsystem.h.
15534
15535         * crtstuff.c: Include tsystem.h.
15536         * frame.c: Likewise.
15537         * libgcc2.c: Likewise.
15538
15539 Tue Feb  1 19:53:27 CET 2000  Jan Hubicka  <jh@suse.cz>
15540
15541         * builtins.c (expand_builtin_memset): Expand for variable sized
15542         lengths too.
15543
15544 2000-02-01  David Billinghurst <David.Billinghurst@riotinto.com.au>
15545
15546         * config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based
15547         on ABI.
15548
15549 Tue Feb  1 00:57:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15550
15551         * dwarfout.c (SHORT_TYPE_SIZE): Correct default.
15552
15553         * tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE.
15554
15555 2000-01-31  Chandra Chavva <cchavva@cygnus.com>
15556
15557         * combine.c (try_combine) [HAVE_cc0]: Trying to check the missed
15558         case 3->2 combining (combining with splitting) in which 2 is CC0
15559         setter/user and 3 is user. The rest of cases 2->1 and 3->2 are
15560         checked at the begining of the function with the aid of calling
15561         function 'can_combine_p'.
15562
15563 2000-01-31  Dave Brolley  <brolley@redhat.com>
15564
15565         * cccp.c (struct argdata): Redeclare 'newlines' field as 'int'.
15566
15567 2000-01-31  Jason Merrill  <jason@casey.cygnus.com>
15568
15569         * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the
15570         new label.
15571
15572 2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15573
15574         * gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros.
15575
15576         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit):
15577         PROTO -> PARAMS.
15578
15579 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
15580
15581         * i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h,
15582         i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h,
15583         i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h,
15584         i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h,
15585         i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h,
15586         i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
15587         i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h,
15588         i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h,
15589         i386/vxi386.h, i386/win-nt.h, i386/win32.h:
15590         Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES.
15591
15592         * i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h:
15593         Add %(cpp_cpu) to CPP_SPEC.
15594
15595         * i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h:
15596         Add %(cc1_cpu) to CC1_SPEC.
15597
15598 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
15599
15600         * c-decl.c (c_decode_option): Accept optional numeric argument to
15601         -Wformat and set warn_format.
15602         * c-common.c: Don't emit warning about non-constant printf format
15603         string unless warn_format > 1.
15604
15605 2000-01-30  Richard Henderson  <rth@cygnus.com>
15606
15607         * alpha.md (return_internal): Allow after reload only.
15608
15609 2000-01-30  Richard Henderson  <rth@cygnus.com>
15610
15611         * i386.c (ix86_compute_frame_size): Omit padding1 if the
15612         local frame size is zero.
15613
15614 2000-01-30  Richard Henderson  <rth@cygnus.com>
15615
15616         * alpha.c (alpha_expand_epilogue): Don't emit the return insn.
15617         * alpha.h (EPILOGUE_USES): New.  Mark $26 live.
15618         * alpha.md (return): Turn into an expander.
15619         (return_internal): Don't use $26.
15620         (epilogue): Emit the return insn.
15621
15622 2000-01-30  Richard Henderson  <rth@cygnus.com>
15623
15624         * alpha.md (negtf2, abstf2): Fix word order thinko.
15625         (extendsftf2): New.
15626         (trunctfsf2): Avoid intermediate rounding errors.
15627
15628 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
15629
15630         * cppfiles.c (find_position): Drop 'colp' argument, return the
15631         new line base.
15632         (read_and_prescan): Adjust to match.  Don't ever manipulate
15633         line or line_base except via find_position.
15634
15635 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
15636
15637         * c-parse.in: Apply Ulrich's changes from c-parse.y.
15638         * c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c:
15639         Regenerate.
15640
15641 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
15642
15643         * cpperror.c (cpp_file_line_for_message): If 'line' is zero,
15644         just print "<command line>".  If 'filename' is null or an
15645         empty string, print "<stdin>" for the filename.
15646         * cpplib.c (do_define): Don't print the 'location of the
15647         previous definition' message if we're still parsing the
15648         command line.
15649         (cpp_pedwarn_with_file_and_line): Always call
15650         cpp_file_line_for_message.
15651
15652 2000-01-29  Mark Mitchell  <mark@codesourcery.com>
15653
15654         * flow.c (mark_regs_live_at_end): Fix typo.
15655
15656 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
15657
15658         * c-common.c: Adjust variable names, comments, help strings to c99.
15659         * c-lex.c: Likewise.
15660         * c-parse.y: Likewise.
15661         * c-tree.h: Likewise.
15662         * cccp.c: Likewise.
15663         * cpplib.h: Likewise.
15664         * c-decl.c: Likewise.  Recognize options with names "*99" as well.
15665         * cppinit.c: Likewise.
15666
15667 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15668
15669         * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries.
15670         * c4x.c: Define the optab rtx values.
15671         (c4x_add_gc_roots): Add the ggc roots for these optab rtx values.
15672         (c4x_emit_libcall): Use new optab rtx values.
15673         (c4x_emit_libcall3): Likewise.
15674         (c4x_emit_libcall_mulhi): Likewise.
15675         * c4x-protos.h: Add prototypes for optab rtx values and change
15676         prototypes for above c4x_emit_libcall functions.
15677
15678 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15679
15680         * c4x.c (c4x_output_ascii): Restrict line length of output when TI
15681         syntax is used.
15682         (c4x_function_prologue): Use regnames intead of float_reg_names when
15683         TI syntax is used.
15684         (c4x_function_epilogue): Likewise.
15685         (c4x_print_operand): Likewise.
15686         * c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine.
15687         * c4x.md (set_high): Disable for TARGET_TI.
15688
15689 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15690
15691         * c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading
15692         of framepointer + constant to ADDR_REGS class.
15693         * c4x.md (addqi3, addqi3_noclobber_reload): Update.
15694         * c4x.c (std_or_reg_operand): New function.
15695         * c4x-protos.h (std_or_reg_operand): Prototype it.
15696
15697 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15698
15699         * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same
15700                 object names as libgcc2.c.
15701         * libgcc.S: Use newly defined names.
15702
15703 Fri Jan  7 19:48:04 CET 2000  Jan Hubicka  <jh@suse.cz>
15704         * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New
15705         function.
15706         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare.
15707         * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro.
15708         (FLOW_LOOP_LAST_BLOCK): Likewise.
15709
15710 2000-01-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15711
15712         * basic-block.h (struct loop): New fields 'first' and 'last'.
15713         * flow.c (flow_loops_find): Compute loop->first and loop->last.
15714         (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG
15715         and loop->last to check for NOTE_INSN_LOOP_END.
15716
15717 Fri Jan 28 10:57:58 2000  Jason Eckhardt  <jle@cygnus.com>
15718
15719         * predict.c (estimate_probability): Use the new FIRST and LAST fields
15720         of the loop descriptor rather than HEADER and LATCH. Also added
15721         missing break statements as well making some coding style modifications
15722         as suggested by Michael Hayes.
15723
15724 2000-01-28  Richard Henderson  <rth@cygnus.com>
15725
15726         * flow.c (find_basic_blocks): Remove do_cleanup argument.
15727         Break out that code ...
15728         (cleanup_cfg): ... here.
15729         (commit_one_edge_insertion): Detect a return instruction being
15730         emitted to an edge.  Emit a barrier following; clear fallthru.
15731         (commit_edge_insertions): Verify CFG consistency.
15732         * function.c (expand_function_start): Kill unused variable.
15733         (expand_function_end): Likewise.
15734         (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge
15735         to insert the epilogue.
15736
15737         * gcse.c (gcse_main): Adjust for find_basic_blocks change.
15738         (delete_null_pointer_checks): Likewise.
15739         * output.h: Likewise.
15740         * reg-stack.c (reg_to_stack): Likewise.
15741         * toplev.c (rest_of_compilation): Likewise.  Run
15742         thread_prologue_and_epilogue_insns after rebuilding the CFG.
15743
15744 2000-01-28  Richard Henderson  <rth@cygnus.com>
15745
15746         * Makefile.in (flow.o): Revert 24 Jan change.
15747         * flow.c (mark_regs_live_at_end): Likewise.  Force BLKmode
15748         FUNCTION_VALUE result to DECL_RESULT's mode.
15749
15750         * haifa-sched.c (schedule_insns): Don't recompute reg info
15751         after reload.
15752
15753 2000-01-28  Zack Weinberg  <zack@wolery.cumb.org>
15754
15755         * configure.in: Make --enable-cpplib the default.
15756         * configure: Regenerate.
15757         * gcc.dg/990119-1.c: No longer expected to fail.
15758
15759 2000-01-28  Bernd Schmidt  <bernds@cygnus.co.uk>
15760
15761         * jump.c (jump_optimize_1): Delete an optimization that is also done
15762         by merge_blocks in flow.
15763
15764 2000-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15765
15766         * diagnostic.c (build_message_string, output_printf,
15767         line_wrapper_printf): Add ATTRIBUTE_PRINTF_*.
15768         (build_location_prefix): Fix non-literal format string.
15769
15770 2000-01-27  Richard Henderson  <rth@cygnus.com>
15771
15772         * alpha.md (trunctfsf2): New.
15773
15774 2000-01-27  Andrew Hobson  <ahobson@eng.mindspring.net>
15775
15776         * configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH.
15777
15778 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
15779
15780         * cppinit.c (cpp_handle_option): Recognize C++ comments under
15781         -std=gnu89.
15782         * cpplib.c (skip_block_comment, skip_line_comment): Split code
15783         out of...
15784         (skip_comment) ... here.  Permit C++ comments in system
15785         headers always.  Warn about C++ comments in user code under
15786         -std=gnu89 -pedantic.
15787         (copy_comment): Use skip_comment.
15788         (cpp_skip_hspace, cpp_get_token): skip_comment can no longer
15789         return EOF.
15790         (consider_directive_while_skipping, do_else, do_endif): Call
15791         validate_else unconditionally.
15792         (validate_else): Check CPP_PEDANTIC here.  Accept non-comment
15793         text after the conditional in a system header.
15794         * cpplib.h (struct cpp_buffer): Add flag
15795         warned_cplusplus_comments.
15796
15797 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
15798
15799         * emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too.
15800         Use unshare_all_rtl_1.
15801         (unshare_all_rtl_again): New function.
15802         (unshare_all_rtl_1): New function split out of unshare_all_rtl.
15803
15804         * function.c (purge_addressof_1): Use unshare_all_rtl_again
15805         rather than resetting the 'used' flags ourself.
15806
15807         * toplev.c (rest_of_compilation): Add current_function_decl
15808         to the unshare_all_rtl call.
15809         * tree.h: Prototype unshare_all_rtl.
15810         * rtl.h: Prototype unshare_all_rtl_again here.
15811
15812 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
15813
15814         * genoutput.c (output_prologue): Include ggc.h in generated
15815         files.
15816         * Makefile.in (insn-output.o): Depends on ggc.h.
15817
15818 2000-01-27  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
15819             Hans-Peter Nilsson  <hp@bitrange.com>
15820
15821         * ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete.
15822         Remove redundant include of xm-ns32k.h.
15823         * ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions.
15824         Remove redundant include of xm-ns32k.h.
15825         * ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine.
15826         Remove redundant include of xm-ns32k.h.
15827         * ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions.
15828
15829         * ns32k/ns32k.h: Update comment on multiply-add instructions.
15830         (TARGET_SWITCHES): Add documentation strings.
15831         (DWARF_FRAME_REGNUM): Override default definition.
15832         (REG_CLASS_CONTENTS): Add comments.
15833         (SUBSET_P): Format to reduce line length.
15834         (SMALL_REGISTER_CLASSES): Make a run time option.
15835         (GO_IF_NONINDEXED_ADDRESS): Reformat.
15836         (GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before
15837         dereferencing it.  Braces to avoid "ambiguous else" were misplaced.
15838         (regclass_map): fix typo in comment.
15839         * ns32k/ns32k.c: Add spaces before parentheses for consistant style.
15840         Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...).
15841         (trace, reg_or_mem_operand): Delete, unused function.
15842         (calc_address_cost): Small offsets are cheaper than large ones.
15843         (expand_block_move): Generate more efficient code when bytes is a
15844         known at compile time.
15845         * ns32k/ns32k.md: Alternate constraints for multiply-add instructions.
15846         (udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand
15847         instead of reg_or_mem_operand.
15848
15849         * ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs,
15850         not general_operand.  Similarly use "=rm" or stricter, not "=g".
15851         For input operands, use stricter constraints than "g" if not
15852         general_operand.  Similarly use stricter predicate than
15853         "general_operand" when stricter constraints than "g" are present,
15854         except for matching constraints.
15855         (movstrsi): Use "memory_operand" for operands 0 and 1.
15856         (truncsiqi2, truncsihi2, trunchiqi2): Remove.
15857         (udivmoddisi4_internal): Use nonimmediate_operand for operand 0,
15858         not reg_or_mem_operand.
15859         (udivmoddisi4): Ditto.
15860         Use nonimmediate_operand for operand 1, not reg_or_mem_operand.
15861         Use nonimmediate_operand for operand 3, not register_operand.
15862         (udivmoddiqi4_internal): Use register_operand for operand 1, not
15863         reg_or_mem_operand.
15864
15865 2000-01-27  Fred Fish  <fnf@be.com>
15866
15867         * gthr-posix.h: Fix typo; compatibily -> compatibility.
15868         * gthr-single.h: Likewise.
15869         * gthr-solaris.h: Likewise.
15870         * gthr-vxworks.h: Likewise.
15871         * gthr-win32.h: Likewise.
15872         * gthr.h: Likewise.
15873
15874 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
15875
15876         * cppinit.c: Add " (cpplib)" to end of string printed by
15877         -v / --version.
15878
15879 2000-01-27  Richard Henderson  <rth@cygnus.com>
15880
15881         * alpha.c (alpha_emit_conditional_move): Use VOIDmode when
15882         testing for a signed comparison.
15883         (alpha_emit_floatuns): New.
15884         * alpha-protos.h: Declare it.
15885         * alpha.md (floatunsdisf2, floatunsdidf2): New.
15886         (extendsfdf2): Tidy.
15887
15888 2000-01-27  Jakub Jelinek  <jakub@redhat.com>
15889
15890         * config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but
15891         no -g option specifying debugging format, default to -gstabs+.
15892
15893 Wed Jan 26 22:19:14 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
15894
15895         * calls.c (special_function_p): New argument fork_or_exec.
15896         (expand_call): When profile_arc_flag is set and the function
15897         is in the fork_or_exec group, call __bb_fork_func first.
15898         * libgcc2.c, _bb module (__bb_fork_func): New function.
15899         (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock
15900         output file.
15901         * config/svr4.h (TARGET_HAS_F_SETLKW): Define.
15902         * tree.h (special_function_p): Update prototype.
15903
15904 2000-01-26  Richard Henderson  <rth@cygnus.com>
15905
15906         * alpha.c (alpha_split_tfmode_pair): New.
15907         * alpha-protos.h: Declare it.
15908         * alpha.md (abstf2, negtf2): New.
15909         (movtf insn): Add input G constraint.
15910         (movtf splitter): Use alpha_split_tfmode_pair.
15911
15912 2000-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15913
15914         * i386/cygwin.h: PROTO -> PARAMS.
15915
15916 2000-01-26  Jakub Jelinek  <jakub@redhat.com>
15917
15918         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle
15919         TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons
15920         using _Qp_cmp/_Q_cmp and testing the return value.
15921         (print_operand): Call reverse_condition_maybe_unordered if
15922         we are handling CCFPmode or CCFPEmode.
15923         Handle ORDERED, UN* and LTGT comparisons.
15924         * config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32
15925         if not TARGET_HARD_QUAD.
15926         (seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble,
15927         bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt):
15928         Call sparc_emit_float_lib_cmp even on TARGET_ARCH32.
15929         Adjust gen_b* calls so that they reflect return comparison of
15930         sparc_emit_float_lib_cmp.
15931
15932 2000-01-26  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
15933
15934         * config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume
15935         incoming operands array is large enough for one more operand.
15936         (alpha_emit_xfloating_arith): Likewise.
15937
15938 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
15939
15940         * fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a
15941         file with one line and no trailing newline.
15942         Patch by Kaveh Ghazi <ghazi@caip.rutgers.edu>.
15943         * fixinc/fixtests.c (machine_name_test): Fix fencepost error
15944         checking if the match is on the line.
15945         * fixinc/gnu-regex.c: Provide regerror not __regerror.
15946
15947 2000-01-25  Richard Henderson  <rth@cygnus.com>
15948
15949         * sparc.c (output_cbranch): Fix accidental squashing of the
15950         fp branch pre-delay nop.
15951
15952 2000-01-25  Richard Henderson  <rth@cygnus.com>
15953
15954         * tree.def (UNNE_EXPR): Remove.
15955         * c-typeck.c (build_binary_op): Don't handle it.
15956         * expr.c (expand_expr, do_jump, do_store_flag): Likewise.
15957
15958         * rtl.def (UNNE): Remove.
15959         (LTGT): Add.
15960         * jump.c (reverse_condition): Update accordingly.
15961         (swap_condition): Likewise.
15962         (comparison_dominates_p): Handle unordered comparisons.
15963         (reverse_condition_maybe_unordered): New.
15964         * rtl.h (reverse_condition_maybe_unordered): Declare.
15965
15966         * sparc.c (select_cc_mode): Update for UNNE/LTGT.
15967         (output_cbranch): Use reverse_condition_maybe_unordered and LTGT.
15968         * sparc.h (REVERSIBLE_CC_MODE): Always true.  Update docs.
15969         * sparc.md (bltgt): New.
15970
15971 2000-01-25  Nick Clifton  <nickc@redhat.com>
15972
15973         * emit-rtl.c (emit_insn): Only check machine class insns for
15974         improper emission of a RETURN.
15975
15976 2000-01-25  Richard Henderson  <rth@cygnus.com>
15977
15978         * Makefile.in (flow.o): Depend on $(EXPR_H).
15979         * flow.c (mark_regs_live_at_end): Use hard_function_value, i.e.
15980         duplicate the structure of diddle_return_value for keeping regs live.
15981
15982 2000-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15983
15984         * loop.c (current_loop_info): Delete.
15985         (consec_sets_invariant_p): Add loop argument, update callers.
15986         (get_condition_for_loop): Likewise.
15987         (count_nonfixed_reads, update_giv_derive): Likewise.
15988         (simplify_giv_expr, general_induction_var): Likewise.
15989         (consec_sets_giv, recombine_givs): Likewise.
15990         (move_movables): Delete loop_start and loop_end arguments,
15991         add loop argument, and update callers.
15992         (find_mem_givs, check_final_value): Likewise.
15993         (record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise.
15994         (loop_invariant_p): Rename from invariant_p, add loop argument, and
15995         update callers.
15996         (basic_induction_var): Add loop argument, delete loop_level argument,
15997         and update callers.
15998         * unroll.c (iteration_info): Delete loop_start and loop_end arguments,
15999         add loop argument, and update callers.
16000         (find_splittable_regs, find_splittable_givs): Likewise.
16001         (reg_dead_after_loop, loop_find_equiv_value): Likewise.
16002         (final_biv_value, final_giv_value, back_branch_in_range_p): Likewise.
16003         (biv_total_increment): Delete loop_start and loop_end arguments;
16004         update callers.
16005         (precondition_loop_p): Delete loop_start and loop_info arguments;
16006         update callers.
16007         * loop.h (get_condition_for_loop): Add loop argument.
16008         (biv_total_increment): Delete loop_start and loop_end arguments.
16009         (precondition_loop_p): Delete loop_start and loop_info arguments;
16010         add loop argument.
16011         (final_biv_value): Delete loop_start and loop_end arguments;
16012         add loop argument.
16013         (final_giv_value, back_branch_in_range_p): Likewise.
16014
16015 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
16016
16017         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16.
16018
16019 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
16020
16021         * Makefile.in (c-gperf.h) : Change the "See" pointer to
16022         point to the new "generated_files" doc.
16023
16024 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
16025
16026         * config/fp-bit.c (_unord_f2): Fix typo.
16027
16028 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
16029
16030         * c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c,
16031         c-typeck.c, objc/objc-act.c: Remove all references to obstack
16032         functions obsoleted by GC, such as push_obstacks_nochange,
16033         end_temporary_allocation, savealloc, saveable_tree_cons, etc.
16034         and code which existed only to decide whether or not to call
16035         them.  Remove now-unused NESTED argument from start_function;
16036         all callers changed.  Do not change behavior based on ggc_p.
16037         The use of the ixp_obstack in c-iterate.c and the util_obstack
16038         in objc/objc-act.c remain; these are not obsoleted by garbage
16039         collection.
16040         * c-tree.h: Update prototype for start_function.
16041
16042         * c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild.
16043
16044 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
16045
16046         * config/mips/mips.md (zero_extendsidi2_internal): Disable for
16047         mips16.
16048
16049 2000-01-25  Richard Henderson  <rth@cygnus.com>
16050
16051         * sparc-protos.h (select_cc_mode): Declare.
16052         * sparc.c (select_cc_mode): New.  Handle unordered compares.
16053         (output_cbranch): Always reverse via code change.  Handle
16054         unordered compares.  Factor tests and string updates.
16055         * sparc.h (SELECT_CC_MODE): Split out to select_cc_mode.
16056         (REVERSIBLE_CC_MODE): Also exclude CCFPmode.
16057         * sparc.md (bunordered, bordered): New.
16058         (bungt, bunlt, buneq, bunge, bunle): New.
16059
16060 2000-01-25  Richard Henderson  <rth@cygnus.com>
16061
16062         * dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root.
16063         * ggc-common.c (ggc_add_rtx_varray_root): New.
16064         (ggc_mark_rtx_varray): New.
16065         (ggc_mark_rtx_varray_ptr): New.  Shift all ggc_mark_foo_ptr
16066         functions down below ggc_mark_foo.
16067         * ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare.
16068
16069 2000-01-25  Richard Henderson  <rth@cygnus.com>
16070
16071         * alpha.c (secondary_reload_class): Don't allocate a secondary
16072         for integral mode memories into FLOAT_REGS.  Rearrange the more
16073         complicated memory expression inward.
16074
16075 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
16076
16077         * inclhack.def: Fixes to play nicer with FreeBSD, and
16078         corrections to comments.
16079         (cxx_unready): Add select expression.
16080         (irix_sockaddr): Add bypass expression.
16081         (machine_ansi_h_va_list): New fix.
16082         (stdio_va_list): No need to edit _BSD_VA_LIST_.
16083         Split out addition of "#include <stdarg.h>" to...
16084         (stdio_stdarg_h): ... here.
16085         (systypes_for_aix): Rename to systypes_stdlib_size_t.  Apply
16086         to stdlib.h also.  Do not munge _BSD_SIZE_T_.
16087         (sysz_stdlib_for_sun): Delete duplicate fix for unprotected
16088         size_t.
16089         (ultrix_ifdef): Tighten up select expression.
16090
16091         * fixincl.tpl: Exorcise 'exesel'.  Rewrite calculations of
16092         re_ct and max_mach to avoid use of shell.  Make printed names
16093         match names in inclhack.def.  Use static copyright date.
16094         Don't count c_test and test expressions as requiring regex_t
16095         slots.  Add some commentary.
16096         * inclhack.tpl: Do not include the 'This script contains N
16097         fixup scripts' line if PROGRAM is defined.  Use static
16098         copyright date.
16099
16100 2000-01-24  Jason Merrill  <jason@casey.cygnus.com>
16101
16102         * dwarf2out.c: include "varray.h", not dyn-string.h.
16103         (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose.
16104         (addr_const_to_string, addr_to_string): Lose.
16105         (ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c.
16106         (struct dw_val_struct): val_addr is now an rtx.
16107         (add_AT_addr, AT_addr, free_AT, output_aranges): Adjust.
16108         (used_rtx_varray): New varray.
16109         (dwarf2out_init): Initialize it.
16110         (save_rtx): New fn.
16111         (mem_loc_descriptor, add_const_value_attribute): Call it instead of
16112         addr_to_string.
16113         * arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h,
16114         sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST.
16115         * Makefile.in (dwarf2out.o): Update dependencies.
16116
16117 2000-01-24  Richard Henderson  <rth@cygnus.com>
16118
16119         * i386.c (i386_dwarf_output_addr_const): New.
16120         * i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New.
16121
16122         * dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR
16123         if defined.
16124         * dwarfout.c (output_mem_loc_descriptor): Likewise.
16125         * i386.c (i386_simplify_dwarf_addr): New.
16126         * i386.h (ASM_SIMPLIFY_DWARF_ADDR): New.
16127
16128 Mon Jan 24 16:56:10 2000  Jim Wilson  <wilson@cygnus.com>
16129
16130         * dwarf2out.c (gen_struct_or_union_type_die): Set complete if
16131         TYPE_STUB_DECL is NULL.
16132
16133 2000-01-24  Richard Henderson  <rth@cygnus.com>
16134
16135         * builtins.c (expand_tree_builtin): Move ...
16136         * c-common.c (expand_tree_builtin): ... here.
16137
16138 2000-01-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16139
16140         * loop.h (LOOP_INFO): New accessor macro.
16141         * basic-block.h (struct loop): Rename field `info' to `aux'.
16142         * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop).
16143         (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise.
16144         * unroll.c (loop_iterations, unroll_loop): Likewise.
16145
16146 2000-01-24  Christopher Faylor <cgf@cygnus.com>
16147
16148         * config/i386/t-cygwin: Accomodate new winsup directory layout
16149         when searching for include files.
16150
16151 2000-01-24  Richard Henderson  <rth@cygnus.com>
16152
16153         * rtl.def: Add unordered fp comparisions.
16154         * tree.def: Likewise.
16155         * tree.h: Add ISO C 9x unordered fp comparision builtins.
16156
16157         * builtins.c (expand_tree_builtin): New function.
16158         * c-typeck.c (build_function_call): Use it.
16159         (build_binary_op): Support unordered compares.
16160         * c-common.c (c_common_nodes_and_builtins): Add unordered compares.
16161
16162         * combine.c (known_cond): Handle reverse_condition returning UNKNOWN.
16163         (reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed.
16164         * cse.c (fold_rtx): Check FLOAT_MODE_P before reversing.
16165         (record_jump_equiv): Handle reverse_condition returning UNKNOWN.
16166         * jump.c (reverse_condition): Don't abort for UNLE etc, but
16167         return UNKNOWN.
16168         (swap_condition): Handle unordered compares.
16169         (thread_jumps): Check can_reverse before reversing.
16170         * loop.c (get_condition): Likewise.  Allow UNORERED/ORDERED to be
16171         reversed for FP.
16172
16173         * optabs.c (can_compare_p): New argument CODE.  Verify branch or
16174         setcc is present before acking for cmp_optab.  Update all callers.
16175         (prepare_float_lib_cmp, init_optabs): Handle UNORDERED.
16176         * expmed.c (do_cmp_and_jump): Update for can_compare_p.
16177         * expr.c (expand_expr): Likewise.  Support unordered compares.
16178         (do_jump, do_store_flag): Likewise.
16179         * expr.h (enum libfunc_index): Add unordered compares.
16180
16181         * Makefile.in (FPBIT_FUNCS): Add _unord_sf.
16182         (DPBIT_FUNCS): Add _unord_df.
16183         * config/fp-bit.c (_unord_f2): New.
16184         * fp-test.c (main): Try unordered compare builtins.
16185
16186         * alpha-protos.h (alpha_fp_comparison_operator): Declare.
16187         * alpha.c (alpha_comparison_operator): Check mode properly.
16188         (alpha_swapped_comparison_operator): Likewise.
16189         (signed_comparison_operator): Likewise.
16190         (alpha_fp_comparison_operator): New.
16191         (alpha_emit_conditional_branch): Handle unordered compares.
16192         * alpha.h (PREDICATE_CODES): Update.
16193         * alpha.md (fp compares): Use alpha_fp_comparison_operator.
16194         (bunordered, bordered): New.
16195
16196 2000-01-24  Richard Henderson  <rth@cygnus.com>
16197
16198         * alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation.
16199         * alpha.md (movtf): New expander, insn, and splitter.
16200
16201 Mon Jan 24 19:49:47 MET 2000  Jan Hubicka  <jh@suse.cz>
16202
16203         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
16204         dead registers.
16205
16206 Mon Jan 24 17:37:31 MET 2000  Jan Hubicka  <jh@suse.cz>
16207
16208         * i386.h (FIRST_PSEUDO_REGISTER): Set to 21.
16209         (FIXED_REGISTERS, CALL_USED_REGISTERS,
16210          REG_ALLOC_ORDER): Add frame pointer
16211         (FRAME_POINTER_REGNUM): Set to 20
16212         (HARD_FRAME_POINTER_REGNUM): New macro.
16213         (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER
16214         to HARD_FRAME_POINTER.
16215         (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM
16216         (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise.
16217         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
16218         (HI_REGISTER_NAMES): Add "frame".
16219         (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination.
16220         (debug_reg): Handle FRAME_POINTER_REGNUM.
16221         (reg_class): Add arg pointer and frame pointer to NON_Q_REGS,
16222         GENERAL_REGS and INDEX_REGS.
16223         * i386.c (SAVED_REGS_FIRST): new macro.
16224         (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx
16225         (ix86_decompose_address, memory_address_length): Likewise.
16226         (regclass_map): Add frame pointer.
16227         (call_insn_operand): Handle frame_pointer_rtx.
16228         (reg_no_sp_operand): Likewise.
16229         (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx.
16230         (print_operand, legitimize_pic_address): Fix formating.
16231         (ix86_compute_frame_size): Make static, update prototype, new
16232         parameters padding1, padding2, use ix86_nsaved_regs, use
16233         stack_alignment_needed.
16234         (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM
16235         to HARD_FRAME_POINTER_REGNUM conversions.
16236         (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues.
16237         (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues.
16238         (print_reg): Abort on FRAME_POINTER_REGNUM
16239
16240 Mon Jan 24 16:50:08 MET 2000  Jan Hubicka  <jh@suse.cz>
16241
16242         * i386.h (PREDICATE_CODES): Add aligned_operand.
16243         * i386.c (aligned_operand): New function.
16244         (ix86_aligned_p): Kill.
16245         * i386.md (movhi_1): Emit mov for aligned operands.
16246         (promoting peep2s): Use aligned_operand.
16247
16248 2000-01-23  Zack Weinberg  <zack@wolery.cumb.org>
16249
16250         * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular
16251         expression to allow underscores in macro names.
16252         (fix_char_macro_defines): Increment scanning pointer.
16253
16254 2000-01-23  Richard Henderson  <rth@cygnus.com>
16255
16256         * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define.
16257         * alpha/osf5.h: New file.
16258         * configure.in (alpha-*-osf5): Add it to tm_file.
16259
16260         * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target.
16261
16262         * alpha-protos.h (alpha_emit_xfloating_arith): Declare.
16263         (alpha_emit_xfloating_cvt, function_arg): Declare.
16264         * alpha.c (alpha_emit_conditional_branch): Call
16265         alpha_emit_xfloating_compare for TFmode compares.
16266         (alpha_lookup_xfloating_lib_func): New.
16267         (alpha_compute_xfloating_mode_arg): New.
16268         (alpha_emit_xfloating_libcall): New.
16269         (alpha_emit_xfloating_arith): New.
16270         (alpha_emit_xfloating_compare): New.
16271         (alpha_emit_xfloating_cvt): New.
16272         (print_operand): Add default abort case.
16273         (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE.
16274         * alpha.h (TARGET_HAS_XFLOATING_LIBS): New.
16275         (BIGGEST_ALIGNMENT): Increase to 128 bits.
16276         (RETURN_IN_MEMORY): True for TF/TCmode.
16277         (ALPHA_ARG_SIZE): TF/TCmode is passed indirect.
16278         (FUNCTION_ARG): Move to function_arg.
16279         (FUNCTION_ARG_PASS_BY_REFERENCE): New.
16280         (ASM_OUTPUT_LONG_DOUBLE): New.
16281         (ASM_OUTPUT_DOUBLE): Always output bits.
16282         * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New.
16283         (fix_trunctfdi2, floatditf2, floatunsditf2): New.
16284         (extenddftf2, trunctfdf2): New.
16285
16286 2000-01-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
16287
16288         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved...
16289         * config/sparc/sol2.h: ... here.
16290
16291 2000-01-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16292
16293         * basic-block.h (struct loops): New field `levels'.
16294         * flow.c (flow_loops_level_compute): Traverse all outer loops.
16295         (flow_loop_level_compute): Initialise level to 1.
16296         (flow_loops_find): Set loops->levels.
16297         (flow_loops_dump): Print loops->levels.
16298
16299 2000-01-23  Richard Henderson  <rth@cygnus.com>
16300
16301         * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS.
16302         (throw_helper): Iterate over DWARF_FRAME_REGISTERS.
16303
16304 2000-01-23  Richard Henderson  <rth@cygnus.com>
16305
16306         * i386.c (dbx_register_map, svr4_dbx_register_map): New.
16307         * i386.h (DBX_REGISTER_NUMBER): Use them.
16308         * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise.
16309         * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise.
16310         * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise.
16311         * i386/sequent.h: Kill incorrect comment.
16312
16313 2000-01-23  Mark Mitchell  <mark@codesourcery.com>
16314
16315         * ggc-page.c (struct page_entry): Make `context_depth' an
16316         `unsigned short'.
16317         (struct globals): Likewise.
16318
16319 2000-01-23  Clinton Popetz  <cpopetz@cygnus.com>
16320
16321         * loop.c (check_dbra_loop): When checking a loop for
16322         reversability, check the source of any stores to ensure
16323         they don't depend on an initial value.
16324
16325 2000-01-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16326
16327         * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine.
16328
16329 2000-01-22  Zack Weinberg  <zack@wolery.cumb.org>
16330
16331         * fixinc/fixincl.c: Move declarations of 'pz_fname' and
16332         'pz_scan' into scope of entire function.  Only affects
16333         compiles with -DDEBUG.
16334
16335 2000-01-22  Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>
16336
16337         * config/elfos.h (UNIQUE_SECTION): Restore uninitialised data
16338         section naming to that prior to 2000-01-07 patch.
16339         * config/mips/elf.h (UNIQUE_SECTION): Ditto.
16340         * config/mips/elf64.h (UNIQUE_SECTION): Ditto.
16341         * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto.
16342         * config/i386/interix.c (UNIQUE_SECTION): Ditto.
16343         * config/i386/winnt.c (UNIQUE_SECTION): Ditto.
16344
16345 2000-01-22  Bernd Schmidt  <bernds@cygnus.co.uk>
16346
16347         * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a
16348         constant.
16349
16350 2000-01-21  Jim Wilson  <wilson@cygnus.com>
16351
16352         * fixinc/inclhack.tpl: Test for directory before trying to cd into it.
16353         * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate.
16354
16355 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
16356
16357         * cpphash.c (change_newlines): Delete function.
16358         (struct argdata): Delete 'newlines' and 'use_count' fields.
16359         (macroexpand): Remove code referencing those fields.
16360
16361 2000-01-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16362
16363         * loop.c (loops_info): New variable.
16364         (loop_optimize): Allocate loops->array and free it on exit.
16365         Allocate memory for loops_info and assign to each loop,
16366         replacing alloca.
16367         (find_and_verify_loops): Do not allocate loops->array.
16368
16369 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
16370
16371         * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'.
16372
16373 2000-01-21  Jakub Jelinek  <jakub@redhat.com>
16374
16375         * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new
16376         pseudos if expanded after first flow.
16377         (movdi_pic_label_ref): Likewise.
16378
16379 2000-01-20  Richard Henderson  <rth@cygnus.com>
16380
16381         * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0.
16382
16383 2000-01-20  Zack Weinberg  <zack@wolery.cumb.org>
16384
16385         * Makefile.in (fixinc.sh): Depend on specs.
16386         * fixinc/Makefile.in: Add rule to create machname.h.
16387         (fixlib.o): Depend on machname.h.
16388         * fixinc/fixtests.c (machine_name): New test.
16389         * fixinc/fixfixes.c (machine_name): New fix.
16390         * fixinc/fixlib.c (mn_get_regexps): New helper function for
16391         the machine_name test and fix.
16392         * fixinc/fixlib.h: Prototype it.
16393         * fixinc/inclhack.def (machine_name): Use the C test and fix.
16394         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild.
16395
16396         * gcc.c (do_spec_1) [case P]: Take care not to create
16397         identifiers with three leading or trailing underscores.
16398
16399         * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC.
16400         (fixincl): Don't specify libraries twice on link line.
16401         (gnu-regex.o): Remove special rule.
16402         * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was
16403         defined by config.h.  Do not define _REGEX_RE_COMP.
16404         (regcomp): Allocate and initialize a fastmap.
16405         * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP.
16406
16407 2000-01-20  Brad Lucier  <lucier@math.purdue.edu>
16408
16409         * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h.
16410
16411 2000-01-19  Richard Henderson  <rth@cygnus.com>
16412
16413         * flow.c (propagate_block): Replace FIRST, LAST and BNUM
16414         arguments with BB.  Update all callers.  Tidy line wrapping.
16415
16416 2000-01-19  Clinton Popetz  <cpopetz@cygnus.com>
16417
16418         * emit-rtl.c (try_split): Return last_insn if we split the
16419         last_insn.
16420
16421 Thu Jan 20 01:01:23 MET 2000  Jan Hubicka  <jh@suse.cz>
16422
16423         * i386-protos.h (ix86_compute_frame_size): Remove prototype.
16424         (ix86_initial_elimination_offset): Declare.
16425         * i386.c (ix86_nsaved_regs): Break out from ...
16426         (ix86_can_use_return_insn_p): ... here.
16427         (ix86_emit_save_regs): Break out from ...
16428         (ix86_expand_prologue): ... here.
16429         (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break
16430         out from ...
16431         (ix86_expand_epilogue): ... here.
16432         (ix86_compute_frame_size): Make static, add prototype.
16433         (ix86_initial_elimination_offset): Break out from ...
16434         * i386.h (INITIAL_ELIMINATION_OFFSET): ... here.
16435
16436 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16437
16438         * recog.h (OUT_FCN): Delete.
16439
16440         * vax.md: Call `get_insn_template' instead of OUT_FCN.
16441
16442 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16443
16444         * cppalloc.c: PROTO -> PARAMS.
16445         * cpperror.c: Likewise.
16446         * cppfiles.c: Likewise.
16447         * cpplib.c: Likewise.
16448         * cpplib.h: Likewise.
16449
16450         * config/arm/arm-protos.h: PROTO -> PARAMS.
16451         * config/arm/arm.c: Likewise.
16452         * config/c4x/c4x.c: Likewise.
16453         * config/fr30/fr30-protos.h: Likewise.
16454         * config/nextstep.c: Likewise.
16455         * config/pa/pa.c: Likewise.
16456         * config/pj/pj.c: Likewise.
16457         * config/rs6000/rs6000.c: Likewise.
16458         * config/v850/v850-protos.h: Likewise.
16459         * config/v850/v850.c: Likewise.
16460
16461 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16462
16463         * i370-protos.h: New file.
16464
16465         * i370.c: Include tm_p.h.  Fix compile time warnings.
16466
16467         * i370.h: Move prototypes to i370-protos.h.  Fix compile time
16468         warnings.
16469
16470         * i370.md: Likewise.
16471
16472 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16473
16474         * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS.
16475         (target_isinf, target_isnan, eisnan): Mark parameter with
16476         ATTRIBUTE_UNUSED.
16477         (eiisinf): Wrap in INFINITY.
16478         (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY.
16479         (ibmtoe): Remove unused variable `rndsav'.
16480
16481 Wed Jan 19 20:23:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
16482
16483         * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis.
16484         (GO_IF_LEGITIMATE_ADDRESS): Added missing tab.
16485
16486 2000-01-19  Zack Weinberg  <zack@wolery.cumb.org>
16487
16488         * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o.
16489         * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes.
16490         (fix_char_macro_defines, fix_char_macro_uses): New functions.
16491
16492         * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp.
16493         Recognize Emacs mode markers also.
16494         * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of
16495         C++ comments in C++ headers.  Call is_cxx_header only if
16496         necessary.
16497
16498         * fixinc/inclhack.def (avoid_bool): Add select for the problem and
16499         bypass for ncurses.
16500         (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with...
16501         (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes):
16502         ... these, which use the new C fixes.
16503         (math_exception): Escape literal '+' in bypass expression.
16504
16505         * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh:
16506         Regenerate.
16507
16508 2000-01-19  Geoff Keating  <geoffk@cygnus.com>
16509
16510         * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs
16511         inside the MEM.
16512
16513 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16514
16515         * loop.c (loop_optimize): Allocate loop_info structure for each loop
16516         prior to calling scan_loop.
16517
16518 Wed Jan 19 19:54:38 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
16519
16520         * sh.c (find_barrier, gen_block_redirect): Fix indentation.
16521         (split_branches, calc_live_regs): Likewise.
16522
16523 Wed Jan 19 19:12:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
16524
16525         * sh.md (fpu_single, fp_mode): New attributes.
16526
16527 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16528
16529         * loop.c (current_loop_info): Renamed from loop_info_data
16530         and changed to a pointer.
16531         (loop_optimize): Allocate loop_info structure for each loop
16532         and initialise to zero.
16533         (scan_loop): Set current_loop_info.
16534
16535         * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set
16536         on iteration_var.
16537
16538 2000-01-19  Richard Henderson  <rth@cygnus.com>
16539
16540         * stupid.c: Die die die.
16541         * Makefile.in (OBJS): Remove stupid.o.
16542         (stupid.o): Likewise.
16543
16544         * except.c (emit_eh_context): Don't emit USEs for stupid.
16545         * explow.c (probe_stack_range): Likewise.
16546         * flags.h (obey_regdecls): Remove.
16547         * flow.c (find_basic_blocks): Don't run try_merge_blocks
16548         when not optimizing.
16549         (life_analysis): Limit data collection when not optimizing.
16550         (mark_regs_live_at_end): Always mark the return value registers.
16551         (mark_used_regs): Remove dummy RETURN case.
16552         (print_rtl_with_bb): Don't consult obey_regdecls.
16553         * function.c (use_variable, use_variable_after): Remove.
16554         (assign_parms): Consult optimize not obey_regdecls.
16555         (expand_function_start): Don't emit USEs for stupid.
16556         (expand_function_end): Likewise.
16557         * global.c (build_insn_chain): Export.
16558         * integrate.c (expand_inline_function): Kill return-value USE
16559         handling code.
16560         * jump.c (jump_optimize_1): Do simple jump optimizations and
16561         dead code elimination.
16562         (calculate_can_reach_end): Remove check_deleted argument.
16563         (delete_insn): Patch out insns even when not optimizing.
16564         * local-alloc.c (block_alloc): Don't do tying when not optimizing.
16565         * rtl.h (use_variable, use_variable_after): Remove declarations.
16566         (build_insn_chain): Declare.
16567         * stmt.c (expand_value_return): Don't emit USEs for stupid.
16568         (expand_end_bindings): Likewise.
16569         (expand_decl): Likewise.  Consult optimize not obey_regdecls.
16570         * toplev.c (obey_regdecls): Remove.
16571         (rest_of_compilation): Don't set it.  Kill stupid in favour of
16572         flow1, local-alloc, and reload.
16573         (main): Don't set obey_regdecls.
16574
16575         * config/nextstep.c (handle_pragma): Likewise.
16576
16577         * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid.
16578
16579         * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid.
16580
16581 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16582
16583         * alpha-protos.h: PROTO -> PARAMS.
16584         * alpha.c: Likewise.
16585         * elf.h: Likewise.
16586         * h8300.c: Likewise.
16587         * i386-protos.h: Likewise.
16588         * i386.c: Likewise.
16589         * m32r-protos.h: Likewise.
16590         * m32r.c: Likewise.
16591         * mips.c: Likewise.
16592         * mips.md: Likewise.
16593         * gmon-sol2.c: Likewise.
16594         * sparc.c: Likewise.
16595
16596 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16597
16598         * ns32k-protos.h: New file.
16599
16600         * ns32k.c: Fix compile time warnings.
16601
16602         * ns32k.h: Move prototypes to ns32k-protos.h.  Fix compile time
16603         warnings.
16604
16605         * ns32k.md: Likewise.
16606
16607 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16608
16609         * vax-protos.h: New file.
16610
16611         * vax.c: Fix compile time warnings.
16612
16613         * vax.h: Move prototypes to vax-protos.h.  Fix compile time
16614         warnings.
16615
16616         * vax.md: Likewise.
16617
16618         * vaxv.md: Likewise.
16619
16620 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16621
16622         * romp-protos.h: New file.
16623
16624         * romp.c: Fix compile time warnings.
16625
16626         * romp.h: Move prototypes to romp-protos.h.  Fix compile time
16627         warnings.
16628
16629         * romp.md: Likewise.
16630
16631 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16632
16633         * we32k-protos.h: New file.
16634
16635         * we32k.c: Fix compile time warnings.
16636
16637         * we32k.h: Move prototypes to we32k-protos.h.  Fix compile time
16638         warnings.
16639
16640 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16641
16642         * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
16643
16644         * except.c (eh_regs): Likewise.
16645
16646         * final.c (output_operand): Likewise.
16647
16648         * fold-const.c (target_isinf, target_isnan): Likewise.
16649
16650 Tue Jan 18 16:19:55 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
16651
16652         * i386.h (BIGGEST_ALIGNMENT): Set to 128.
16653         (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32)
16654
16655         * i386.md (memstr): Do not use rep stosb for counts divisible by 4
16656         when optimize_size.
16657         (clrstrsi): Rewrite.
16658         (strsethi, strsetqi): New expanders.
16659         (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns.
16660         (cmpstrsi): Emit compare insn before cmpstrsi_1
16661         (cmpstrsi_nz): use flags, set type to str, prefix_length to 1.
16662         (strlensi_1): Likewise.
16663         (cmpstrsi_1): Likewise; do not output compare.
16664         (strlen expander): Do not unroll when optimizing for size.
16665         (*subsi3_carry): Rename to subsi3_carry
16666         (addqi3_cc): New pattern.
16667         * i386.h (processor_costs): Add move_ratio field.
16668         (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE
16669         * i386.c (*_cost): Set move_ratio.
16670         (x86_unroll_strlen): Enable for Athlon, PPro and K6 too.
16671         (x86_expand_strlensi_1): Rewrite the main loop.
16672
16673 2000-01-17  Richard Henderson  <rth@cygnus.com>
16674
16675         * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode.
16676         * cse.c (find_comparison_args, fold_rtx): Likewise.
16677         * integrate.c (subst_constants): Likewise.
16678         * loop.c (get_condition): Likewise.
16679
16680         * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs.
16681
16682         * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF.
16683
16684 2000-01-18  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
16685
16686         * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST.
16687         (RESTORE_WARN_FLAGS): Unpack it.
16688         Change semantic type of extension to ttype.
16689         * c-common.c (split_specs_attrs): Expect an INTEGER_CST.
16690         * c-parse.y, c-parse.c, objc/objc-parse.y,
16691         objc/objc-parse.c: Regenerate.
16692
16693 2000-01-17  Zack Weinberg  <zack@wolery.cumb.org>
16694
16695         * fixinc/fixlib.c: Add copyright notice.
16696         (compile_re): New function.
16697         * fixinc/fixlib.h: Prototype compile_re.
16698
16699         * fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c:
16700         Use compile_re to compile regular expressions.
16701
16702         * fixinc/fixincl.c (egrep_test): Don't bother asking regexec
16703         where the pattern matched.
16704
16705         * fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy,
16706         use 'replace'.
16707         (ultrix_ansi_compat): Likewise.
16708         (interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test,
16709         add egrep test.
16710         (interactv_add2, interactv_add3): Delete.
16711         (x11_sprintf): Don't use filename glob.
16712         * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh:
16713         Regenerate.
16714
16715 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16716
16717         * print-rtl.c: PROTO -> PARAMS.
16718         * real.c: Likewise.
16719         * reg-stack.c: Likewise.
16720         * resource.c: Likewise.
16721         * sdbout.h: Likewise.
16722         * simplify-rtx.c: Likewise.
16723         * stor-layout.c: Likewise.
16724         * stupid.c: Likewise.
16725         * xcoffout.c: Likewise.
16726         * xcoffout.h: Likewise.
16727
16728 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16729
16730         * toplev.c: PROTO -> PARAMS.
16731         * toplev.h: Likewise.
16732         * tree.c: Likewise.
16733         * tree.h: Likewise.
16734         * unroll.c: Likewise.
16735         * varasm.c: Likewise.
16736         * varray.c: Likewise.
16737         * varray.h: Likewise.
16738
16739 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16740
16741         * reload.c: PROTO -> PARAMS.
16742         * reload.h: Likewise.
16743         * reload1.c: Likewise.
16744         * reorg.c: Likewise.
16745         * resource.h: Likewise.
16746         * rtl.c: Likewise.
16747         * rtl.h: Likewise.
16748         * rtlanal.c: Likewise.
16749         * sbitmap.h: Likewise.
16750         * sdbout.c: Likewise.
16751         * stack.h: Likewise.
16752         * stmt.c: Likewise.
16753         * system.h: Likewise.
16754
16755 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16756
16757         * machmode.h: PROTO -> PARAMS.
16758         * mbchar.h: Likewise.
16759         * mips-tdump.c: Likewise.
16760         * mips-tfile.c: Likewise.
16761         * optabs.c: Likewise.
16762         * output.h: Likewise.
16763         * prefix.c: Likewise.
16764         * profile.c: Likewise.
16765         * protoize.c: Likewise.
16766         * real.h: Likewise.
16767         * recog.c: Likewise.
16768         * recog.h: Likewise.
16769         * regclass.c: Likewise.
16770         * regmove.c: Likewise.
16771         * regs.h: Likewise.
16772
16773 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16774
16775         * ggc-common.c: PROTO -> PARAMS.
16776         * ggc-page.c: Likewise.
16777         * ggc-simple.c: Likewise.
16778         * ggc.h: Likewise.
16779         * global.c: Likewise.
16780         * graph.c: Likewise.
16781         * gthr-win32.h: Likewise.
16782         * haifa-sched.c: Likewise.
16783         * halfpic.h: Likewise.
16784         * integrate.c: Likewise.
16785         * integrate.h: Likewise.
16786         * jump.c: Likewise.
16787         * lcm.c: Likewise.
16788         * local-alloc.c: Likewise.
16789         * loop.c: Likewise.
16790         * loop.h: Likewise.
16791
16792 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16793
16794         * genattr.c: PROTO -> PARAMS.
16795         * genattrtab.c: Likewise.
16796         * gencheck.c: Likewise.
16797         * gencodes.c: Likewise.
16798         * genconfig.c: Likewise.
16799         * genemit.c: Likewise.
16800         * genextract.c: Likewise.
16801         * genflags.c: Likewise.
16802         * gengenrtl.c: Likewise.
16803         * genopinit.c: Likewise.
16804         * genoutput.c: Likewise.
16805         * genpeep.c: Likewise.
16806         * genrecog.c: Likewise.
16807
16808 2000-01-16  Mark Mitchell  <mark@codesourcery.com>
16809
16810         * tree.h (BINFO_VPTR_FIELD): Augment documentation.
16811
16812 2000-01-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
16813
16814         * aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro.
16815         * configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP.
16816         * ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO.
16817         * configure, config.in: Rebuilt.
16818
16819 2000-01-16  Zack Weinberg  <zack@wolery.cumb.org>
16820
16821         * config/i386/i386.md: Add peephole to merge successive stack
16822         adjusts.
16823
16824 Sat Jan 15 15:41:14 EST 2000  John Wehle  (john@feith.com)
16825
16826         * gcse.c (insert_insn_end_bb): Use emit_block_insn_before
16827         instead of emit_insn_before.  Also handle NOTE_INSN_BASIC_BLOCK
16828         when walking backwards to find all the parameter loads when
16829         the basic block ends in a call.
16830
16831 2000-01-15  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16832
16833         * loop.c (this_loop_info): Delete.
16834         (uid_loop): Add in place of uid_loop_num.  All uses updated.
16835         (loop_number_exit_count): Delete and replace with entry in loop
16836         structure.  All uses updated.
16837         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
16838         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
16839         (loop_outer_loop): Likewise.
16840         (loop_invalid, loop_number_exit_labels): Likewise.
16841         (loop_used_count_register): Delete and replace with entry in
16842         loop_info structure.
16843         (find_and_verify_loops): Add loops argument.
16844         (verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start,
16845         loop_end, etc. arguments with loop structure pointer.  All callers
16846         changed.
16847         (loop_reg_used_before_p, scan_loop, strength_reduce): Likewise.
16848         (check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise.
16849         (load_mems_and_recount_loop_regs_set, load_mems): Likewise.
16850         (insert_bct): Likewise.
16851         (basic_induction_var): New argument level.
16852         * loop.h (struct loop_info): Delete fields num, loops_enclosed,
16853         vtop, and cont.  Add used_count_register.
16854         (uid_loop): Delete declaration.
16855         (loop_number_exit_count): Likewise.
16856         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
16857         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
16858         (loop_outer_loop, loop_used_count_register): Likewise.
16859         (loop_invalid, loop_number_exit_labels): Likewise.
16860         (unroll_loop): Replace loop_start and loop_end arguments
16861         with loop structure pointer.
16862         (loop_precondition_p, loop_iterations): Likewise.
16863         Include basic-block.h.
16864         * unroll.c: (unroll_loop): Replace loop_start and loop_end arguments
16865         with loop structure pointer.
16866         (loop_precondition_p, loop_iterations): Likewise.
16867         * basic-block.h (struct loop): New entries vtop, cont,
16868         cont_dominator, start, end, top, scan_start, exit_labels,
16869         exit_count.
16870         * Makefile.in (LOOP_H): Add basic-block.h to dependencies.
16871
16872 2000-01-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
16873
16874         * defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT.
16875
16876 2000-01-14  Nathan Sidwell  <sidwell@codesourcery.com>
16877
16878         * config.in: Rebuilt for 2000-01-13 change to acconfig.h.
16879
16880 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16881
16882         * pdp11-protos.h: New file.
16883
16884         * pdp11.c: Include tm_p.h.  Add static prototypes.  Fix compile
16885         time warnings.
16886
16887         * pdp11.h: Move prototypes to pdp11-protos.h.  Fix compile time
16888         warnings.
16889
16890         * pdp11.md: Likewise.
16891
16892         * 2bsd.h: Likewise.
16893
16894 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16895
16896         * mn10300-protos.h: New file.
16897
16898         * mn10300.c: Include tm_p.h.  Add static prototypes.  Fix compile
16899         time warnings.
16900
16901         * mn10300.h: Move prototypes to mn10300-protos.h.  Fix compile time
16902         warnings.
16903
16904         * mn10300.md: Likewise.
16905
16906 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16907
16908         * mn10200-protos.h: New file.
16909
16910         * mn10200.c: Include tm_p.h.  Add static prototypes.  Fix compile
16911         time warnings.
16912
16913         * mn10200.h: Move prototypes to mn10200-protos.h.  Fix compile time
16914         warnings.
16915
16916         * mn10200.md: Likewise.
16917
16918 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16919
16920         * h8300-protos.h: New file.
16921
16922         * h8300.c: Include tm_p.h.  Add static prototypes.  Fix compile
16923         time warnings.
16924
16925         * h8300.h: Move prototypes to h8300-protos.h.  Fix compile time
16926         warnings.
16927
16928         * h8300.md: Likewise.
16929
16930 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16931
16932         * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED.
16933         (asm_emit_uninitialised): Likewise.
16934
16935 2000-01-13  Gavin Romig-Koch  <gavin@cygnus.com>
16936
16937         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New.
16938         * config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE.
16939
16940 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
16941
16942         * config/mips/mips.c (override_options): Don't turn on extra
16943         alignment for mips16.
16944
16945 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
16946
16947         * config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit
16948         eabi, and make sure queued POSTINCREMENT rtl is emitted at
16949         the right point.
16950
16951 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
16952
16953         * builtins.c (PAD_VARARGS_DOWN): Define.
16954         (std_expand_builtin_va_arg): Use the above macro.
16955         * config/mips/mips.h (PAD_VARARGS_DOWN): Define.
16956         * tm.texi (Register Arguments): Document the above macro.
16957
16958 2000-01-14  Nick Clifton  <nickc@cygnus.com>
16959
16960         * emit-rtl.c (emit_insn): If checking is enabled, make sure
16961         that this function has not been used to emit a jump
16962         instruction.
16963
16964         * jump.c (return_jump_1): Cope with being passed a null rtx.
16965
16966 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16967
16968         * eh-common.h: PROTO -> PARAMS.
16969         * emit-rtl.c: Likewise.
16970         * errors.c: Likewise.
16971         * errors.h: Likewise.
16972         * except.c: Likewise.
16973         * except.h: Likewise.
16974         * explow.c: Likewise.
16975         * expmed.c: Likewise.
16976         * expr.c: Likewise.
16977         * expr.h: Likewise.
16978         * final.c: Likewise.
16979         * fix-header.c: Likewise.
16980         * flow.c: Likewise.
16981         * fold-const.c: Likewise.
16982         * function.c: Likewise.
16983         * function.h: Likewise.
16984         * gcc.c: Likewise.
16985         * gcov-io.h: Likewise.
16986         * gcov.c: Likewise.
16987         * gcse.c: Likewise.
16988
16989 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16990
16991         * sh-protos.h: New file.
16992
16993         * sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h.
16994         Add static prototypes.  Fix compile time warnings.
16995
16996         * sh.h: Move prototypes to sh-protos.h.  Fix compile time warnings.
16997         * sh.md: Likewise.
16998         * elf.h: Likewise.
16999
17000 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17001
17002         * arc-protos.h: New file.
17003
17004         * arc.c: Include tm_p.h.  Add static prototypes.  Fix compile
17005         time warnings.
17006
17007         * arc.h: Move prototypes to arc-protos.h.  Fix compile time
17008         warnings.
17009
17010         * arc.md: Likewise.
17011
17012 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17013
17014         * dsp16xx-protos.h: New file.
17015
17016         * dsp16xx.c: Include tm_p.h.  Add static prototypes.  Fix compile
17017         time warnings.
17018
17019         * dsp16xx.h: Move prototypes to dsp16xx-protos.h.  Fix compile time
17020         warnings.
17021
17022         * dsp16xx.md: Likewise.
17023
17024 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17025
17026         * convex-protos.h: New file.
17027
17028         * convex.c: Include tm_p.h.  Add static prototypes.  Fix compile
17029         time warnings.
17030
17031         * convex.h: Move prototypes to convex-protos.h.  Fix compile time
17032         warnings.
17033
17034 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17035
17036         * elxsi-protos.h: New file.
17037
17038         * elxsi.c: Include tm_p.h.  Add static prototypes.  Fix compile
17039         time warnings.
17040
17041         * elxsi.h: Move prototypes to elxsi-protos.h.  Fix compile time
17042         warnings.
17043
17044         * elxsi.md: Likewise.
17045
17046 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
17047
17048         * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant
17049         case for moving from HI/LO/HI_LO_REG.  This makes the behavior
17050         match the comment for MIPS16.
17051
17052 Fri Jan 14 00:28:06 2000  Jeffrey A Law  (law@cygnus.com)
17053
17054         * flow.c (split_edge): Do not call set_block_for_insn if we
17055         do not have a basic_block_for_insn structure.
17056
17057         * fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain
17058         and destination functions are 32bit aligned within the trampoline.
17059         (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes.
17060         (TRAMPOLINE_ALIGNMENT): Define.
17061
17062         * cse.c (cse_insn): When changing (set (pc) (reg)) to
17063         (set (pc) (label_ref)), verify the change creates a valid insn.
17064
17065         * fr30.c (call_operand): Tighten and rework to match rules for
17066         call RTL expressions.
17067         * fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs.
17068         * fr30.md (call patterns): Improve constraints.
17069
17070 Thu Jan 13 23:44:03 2000  Richard Henderson  <rth@cygnus.com>
17071
17072         * fr30.c (fr30_expand_epilogue): Revert last change.
17073         Use emit_jump_insn for the return insn.
17074
17075 Thu Jan 13 14:46:03 2000  Jason Eckhardt  <jle@cygnus.com>
17076                           Stan Cox  <scox@cygnus.com>
17077
17078         * predict.c: New file. Preliminary infrastructure work for static
17079         branch prediction and basic block reordering.
17080         * basic-block.h: Add prototype for estimate_probability.
17081         * Makefile.in: Add rules for predict.o.
17082
17083 2000-01-13  Jason Merrill  <jason@yorick.cygnus.com>
17084
17085         * fixincludes (va_list): Use __not_va_list__ for the dummy.
17086         * fixinc/*: Likewise.
17087
17088 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17089
17090         * cccp.c: PROTO -> PARAMS.
17091         * cexp.y: Likewise.
17092         * collect2.c: Likewise.
17093         * combine.c: Likewise.
17094         * convert.h: Likewise.
17095         * cse.c: Likewise.
17096         * dbxout.c: Likewise.
17097         * dbxout.h: Likewise.
17098         * diagnostic.c: Likewise.
17099         * doprint.c: Likewise.
17100         * dwarf2out.c: Likewise.
17101         * dwarf2out.h: Likewise.
17102         * dwarfout.c: Likewise.
17103         * dwarfout.h: Likewise.
17104         * dyn-string.h: Likewise.
17105
17106 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17107
17108         * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in
17109         macro conditionals guarding use.
17110
17111         * dwarf2out.c: Include "tm_p.h".
17112
17113         * function.c (locate_and_pad_parm): Mark parameter with
17114         ATTRIBUTE_UNUSED.
17115         (expand_function_end): Likewise for variable `context'.
17116
17117         * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return.
17118
17119 2000-01-13  Nick Clifton  <nickc@cygnus.com>
17120
17121         * config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed
17122         register to prevent compile time warnings.
17123
17124 2000-01-13  Zack Weinberg  <zack@wolery.cumb.org>
17125
17126         * longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv'
17127         to avoid -Wtraditional warning.
17128
17129 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17130
17131         * 1750a-protos.h: New file.
17132
17133         * 1750a.c: Include tm_p.h.  Add static prototypes.  Fix compile
17134         time warnings.
17135
17136         * 1750a.h: Move prototypes to 1750a-protos.h.  Fix compile time
17137         warnings.
17138
17139         * 1750a.md: Likewise.
17140
17141 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17142
17143         * a29k-protos.h: New file.
17144
17145         * a29k.c: Include tm_p.h.  Add static prototypes.  Fix compile
17146         time warnings.
17147
17148         * a29k.h: Move prototypes to a29k-protos.h.  Fix compile time
17149         warnings.
17150
17151 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17152
17153         * clipper-protos.h: New file.
17154
17155         * clipper.c: Include tm_p.h.  Add static prototypes.  Fix compile
17156         time warnings.
17157
17158         * clipper.h: Move prototypes to clipper-protos.h.  Fix compile time
17159         warnings.
17160
17161 Thu Jan 13 16:03:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
17162
17163         * reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS.
17164
17165 2000-01-13  Nathan Sidwell  <sidwell@codesourcery.com>
17166
17167         * configure.in (--enable-new-gxx-abi): New option.
17168         * acconfig.h (ENABLE_NEW_GXX_ABI): New define.
17169         * Makefile.in (GXX_ABI_FLAG): New variable.
17170         * configure: Regenerate.
17171
17172 2000-01-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17173
17174         * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK.
17175         * tm.texi (FORCE_STRUCT_BLK): Document.
17176         * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro.
17177
17178 Wed Jan 12 23:12:47 2000  Hans-Peter Nilsson  <hp@axis.com>
17179
17180         * config/ns32k/ns32k.md: Revert Jan 9 change.
17181
17182         * genrecog.c (maybe_both_true_2): Do not compare a predicate-test
17183         to a mode-test, if the predicate is address_operand.
17184
17185 Wed Jan 12 22:34:00 2000  Jeffrey A Law  (law@cygnus.com)
17186
17187         * combine.c (if_then_else_cond): Be careful about what kinds
17188         of RTL expressions are passed to operand_subword.
17189
17190         * flow.c (split_edge): If we have to insert a new jump, make
17191         sure to associate it with a basic block.
17192
17193         * flow.c (commit_one_edge_insertion): A block with one successor
17194         can end in a JUMP_INSN that is not a simplejump.
17195
17196 2000-01-12  Robert Lipe  <robertl@sco.com>
17197
17198         * i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor".
17199         (BUILD_VA_LIST_TYPE): Define.
17200         (EH_FRAME_SECTION_ASM_OP): Explictly define to better interact
17201         with crtstuff.c.
17202
17203 2000-01-12  Jason Merrill  <jason@casey.cygnus.com>
17204
17205         * cccp.c (do_pragma): Add cast to (char *).
17206
17207 2000-01-12  Richard Henderson  <rth@cygnus.com>
17208             Fred Fish  <fnf@be.com>
17209             Jason Merrill  <jason@cygnus.com>
17210
17211         * configure.in (i?86-*-beos{pe,elf,}*): Recognize.
17212         * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files.
17213         * i386/beos-elf.h, i386/beos-pe.h: New files.
17214
17215         * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New.
17216         * cross-make (SYSTEM_HEADER_DIR): Define using
17217         CROSS_SYSTEM_HEADER_DIR.
17218
17219         * gcc.c (LIBRARY_PATH_ENV): Provide default.
17220         (process_command): Use it.
17221         (main): Likewise.  Kill trailing = from env vars.
17222         (build_search_list): Put it back.
17223         * collect2.c (main): Use LIBRARY_PATH_ENV.
17224
17225         * configure.in (GCC_NEED_DECLARATIONS): Add environ.
17226         * toplev.c: Use NEED_DECLARATION_ENVIRON.
17227
17228         * tm.texi (Frame Layout): Document SMALL_STACK.
17229         * c-common.c (c_common_nodes_and_builtins): Check it.
17230
17231         * system.h: Undef alloca after including glibc's <stdlib.h>,
17232         if USE_C_ALLOCA is defined.
17233
17234         * gcc.c (set_input): New fn.
17235         (main): After all input files are compiled, reset the input file
17236         info to the first.
17237
17238         * aclocal.m4 (rindex, index): If already defined, don't attempt
17239         to redefine.
17240
17241         * ginclude/varargs.h: (__va_list__): Define ifndef.
17242         * ginclude/stdarg.h: Likewise.
17243
17244         * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int
17245         instead of unsigned char.
17246
17247         * hash.h (true, false, boolean): Undef before enum.
17248
17249         * expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be
17250         proper type of "HOST_WIDE_INT *", rather than their natural type of
17251         "unsigned HOST_WIDE_INT *".
17252
17253 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17254
17255         * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets.
17256
17257         * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED.
17258
17259         * regclass.c (choose_hard_reg_mode): Likewise.
17260
17261         * reload.c (find_valid_class, strict_memory_address_p): Likewise.
17262
17263         * reorg.c (optimize_skip): Wrap prototype in macro conditionals.
17264
17265 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17266
17267         * c-common.c: PROTO -> PARAMS.
17268         * c-common.h: Likewise.
17269         * c-decl.c: Likewise.
17270         * c-iterate.c: Likewise.
17271         * c-lang.c: Likewise.
17272         * c-lex.c: Likewise.
17273         * c-lex.h: Likewise.
17274         * c-parse.in: Likewise.
17275         * c-pragma.c: Likewise.
17276         * c-pragma.h: Likewise.
17277         * c-tree.h: Likewise.
17278         * c-typeck.c: Likewise.
17279         * objc/objc-act.c: Likewise.
17280         * objc/objc-act.h: Likewise.
17281
17282 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17283
17284         * m88k-protos.h: New file.
17285
17286         * m88k.c: Include tm_p.h.  Add static prototypes.  Fix compile
17287         time warnings.
17288
17289         * m88k.h: Move prototypes to m88k-protos.h.  Fix compile time warnings.
17290
17291         * m88k.md: Likewise.
17292
17293         * tekXD88.h: Likewise.
17294
17295 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17296
17297         * m68k-protos.h: New file.
17298
17299         * m68k.c: Include tm_p.h.  Add static prototypes.  Fix compile
17300         time warnings.
17301
17302         * m68k.h: Move prototypes to m68k-protos.h.  Fix compile time warnings.
17303
17304         * mot3300.h: Likewise.
17305
17306 2000-01-12  Richard Earnshaw <rearnsha@arm.com>
17307
17308         * haifa-sched.c (split_edges): Pass edgeset_size as second arg to
17309         extract_bitlst.
17310         (extract_bitlist): Declare bitlen.
17311
17312 2000-01-12  Zack Weinberg  <zack@wolery.cumb.org
17313
17314         * cccp.c: Accept and ignore -lang-fortran.
17315
17316         * c-typeck.c (build_c_cast): Issue -Wcast-qual warnings if the
17317         qualifiers don't match at any level of pointerness.
17318
17319 2000-01-12  Robert Lipe  <robertl@sco.com>
17320
17321         * i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT.
17322
17323 2000-01-12  Bernd Schmidt  <bernds@cygnus.co.uk>
17324
17325         * reload1.c (reload_reg_unavailable): New static variable.
17326         (reload_reg_free_p): Test it.
17327         (reload_reg_free_for_value_p): Test it instead of
17328         reload_reg_used.
17329         (choose_reload_regs_init): Compute it.
17330
17331 Wed Jan 12 03:24:41 2000  Toshiyasu Morita (toshi.morita@sega.com)
17332
17333         * reorg.c (fill_slots_from_thread): Check modified_in_p
17334         before replacing.
17335
17336 Wed Jan 12 03:20:31 2000  John Marshall <john_w_marshall@palm.com>
17337
17338         * gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format
17339         these nodes even if INTERNALS is not set.
17340
17341 Wed Jan 12 09:39:22 2000  Nick Burrett  <nick.burrett@btinternet.com>
17342
17343         * gcse.c (delete_null_pointer_checks_1): Cope when
17344         get_condition cannot determine the condition.
17345
17346 2000-01-12  Gabriel Dos Reis  <gdr@codesourcery.com>
17347
17348         * toplev.h (set_message_length): Declare.
17349
17350         * diagnostic.c (obstack_chunk_alloc): Define macro.
17351         (obstack_chunk_free): Likewise.
17352         (struct output_buffer): New data structure.
17353         (vmessage): Remove.
17354         (output_maximum_width): New variable.
17355         (doing_line_wrapping, set_message_length, init_output_buffer,
17356         get_output_prefix, output_space_left, emit_output_prefix,
17357         output_newline, output_append, output_puts, dump_output,
17358         vbuild_message_string, build_message_string, build_location_prefix,
17359         voutput_notice, output_printf, line_wrapper_printf,
17360         vline_wrapper_message_with_location):  New functions. Implement
17361         automatic line wrapping.
17362         (v_message_with_decl): Make it handle automatic line wrapping.
17363         (v_error_with_file_and_line): Likewise.
17364         (v_warning_with_file_and_line): Likewise.
17365         (announce_function): Likewise.
17366         (default_print_error_function): Likewise.
17367
17368 2000-01-11 16:24 -0800  Zack Weinberg  <zack@wolery.cumb.org>
17369
17370         * cpplib.h (struct cpp_options): Change lang_asm to char.
17371         Add lang_fortran.
17372         * cppinit.c (builtin_array): Take out __STDC_VERSION__, it's
17373         done in cpp_handle_option now.
17374         (initialize_builtins): Take out special case code used only by
17375         __STDC_VERSION__.
17376         (cpp_handle_option): Turn off trigraphs and trigraph warnings
17377         if -traditional.  Recognize -lang-fortran and set
17378         lang_fortran, also turn off cplusplus_comments.
17379         (print_help): Document -lang-fortran.
17380         * cpplib.c (handle_directive): Ignore `# 123 "file"' if
17381         lang_asm. Ignore all directives other than `# 123 "file"' if
17382         CPP_PREPROCESSED.
17383         (cpp_get_token): If -traditional, don't recognize directives
17384         unless the # is in column 1.
17385         (parse_string): If lang_fortran or lang_asm, silently
17386         terminate strings ('' or "") at end of line.
17387         Remove unnecessary braces.
17388
17389 2000-01-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17390             Richard Henderson  <rth@cygnus.com>
17391
17392         * resource.c (mark_referenced_resources): Mark a set strict_low_part
17393         as used.
17394         * config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set
17395         strict_low_part when possible.
17396
17397 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17398
17399         * alias.c: PROTO -> PARAMS.
17400         * basic-block.h: Likewise.
17401         * bitmap.c: Likewise.
17402         * bitmap.h: Likewise.
17403         * builtins.c: Likewise.
17404         * c-aux-info.c: Likewise.
17405         * caller-save.c: Likewise.
17406         * calls.c: Likewise.
17407
17408 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17409
17410         * Makefile.in (toplev.o): Depend on regs.h.
17411
17412         * output.h (tdesc_section): Prototype.
17413
17414         * regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED.
17415
17416         * sdbout.c: Include "tm_p.h".
17417
17418         * toplev.c: Include "regs.h".
17419
17420 Tue Jan 11 11:37:58 2000  Mike Stump  <mrs@wrs.com>
17421
17422         * unroll.c (unroll_loop): Add EH support.
17423
17424 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17425
17426         * pa-protos.h: New file.
17427
17428         * pa.c: Include recog.h and tm_p.h.
17429         (compute_zdepwi_operands, compute_movstrsi_length,
17430         remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d,
17431         find_addr_reg, import_milli): Add static prototypes.
17432         (pa_cpu_string, pa_arch_string): Constify a char*.
17433         (legitimize_pic_address): Pass argument `mode' to pic_label_operand.
17434         (read_only_operand): Add argument `mode'.
17435         (singlemove_string, output_move_double, output_fp_move_double,
17436         output_block_move, output_and, output_ior, output_ascii,
17437         remove_useless_addtr_insns, milli_names, output_mul_insn,
17438         output_div_insn, output_mod_insn, output_arg_descriptor,
17439         output_cbranch, output_bb, output_bvb, output_dbra, ,
17440         output_millicode_call, output_call, hppa_encode_label,
17441         output_parallel_movb, output_parallel_addb): Constify a char*.
17442         (hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED.
17443         (output_parallel_addb): Remove extra arg to `constrain_operands'
17444
17445         * pa.h:  Move all prototypes to pa-protos.h.
17446         (pa_cpu_string, pa_arch_string): Constify a char*.
17447         (LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument.
17448
17449         * pa.md: Call `function_label_operand' with mode argument.
17450         Likewise for `read_only_operand'.
17451         Fix nesting of parens in call to `symbolic_operand'.
17452
17453 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17454
17455         * i860-protos.h: New file.
17456
17457         * i860.c: Include tm_p.h.  Add static prototypes.  Fix compile
17458         time warnings.
17459
17460         * i860.h: Move prototypes to i860-protos.h.  Fix compile time warnings.
17461
17462         * i860.md: Likewise.
17463
17464 Tue Jan 11 18:59:35 MET 2000  Jan Hubicka <jh@suse.cz>
17465
17466         * i386.md (movstrsi expander): Rewrite.
17467         (movstrsi_1 insn): Deleted.
17468         (strmovhi, strmovqi expander): New expanders.
17469         (movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns.
17470         * i386.c (x86_single_stringop): New global variable.
17471         * i386.h (x86_single_stringop): Declare.
17472         (TARGET_SINGLE_STRINGOP): New macro.
17473
17474 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
17475
17476         * config/mips/mips.c (mips_va_arg): For EABI, emit the queued
17477         integer vararg POSTINCREMENT before the destination of the jump
17478         for the hard fp case.
17479         (function_arg_pass_by_reference): Pass a copy of CUM to
17480         FUNCTION_ARG.
17481
17482         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check
17483         for CONSTANT_ADDRESS_P above while loop for subreg.
17484
17485 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
17486
17487         * flow.c (propagate_block): When a prologue/epilogue insn
17488         is marked dead, unconditionally clear libcall_is_dead and
17489         insn_is_dead, and only dump rtl if warnings aren't being
17490         suppressed.
17491
17492 Tue Jan 11 16:26:47 MET 2000  Jan Hubicka <jh@suse.cz>
17493
17494         * i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD.
17495         * i386.md (FIRST_PSEUDO_REGISTER): Set to 20.
17496         (FIXED_REGISTERS): Set dirflag as fixed.
17497         (CALL_USED_REGISTERS): Set dirflag as used.
17498         (REG_ALLOC_ORDER): Set dirflag as last one.
17499         (DIRFLAG_REG): New macro.
17500         (MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility.
17501         (HI_REGISTER_NAMES): Add dirflag.
17502         (DEBUF_PRINT_REG): Handle dirflag.
17503         * i386.md (type attribute): New cld and str types.
17504         (length_opcode attribute): Set cld and str to 1.
17505         (memory attribute): Set str to unknown - it is not clear from the
17506         patterns.
17507         (pent_np function unit): Prefixed string operations takes 12 cycles
17508         minimally; cld takes 2 cycles.
17509         (ppro_uops attribute): Str is "many" and cld is "few".
17510         (ppro_p0 unit): Handle cld here.
17511         (k6_alux unit): Handle cld and str types.
17512         (k6_load unit): It is ocupied by str opcodes.
17513         (k6_store unit): It is ocupied by str opcodes.
17514         (athlon_decode): Str is vector decoded.
17515         (athlon_ieu): Handle str and cld.
17516         (cld pattern): New.
17517         (movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction
17518         (movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1,
17519         cmpstrsi_nz_1 insn): Do not output cld instruction
17520
17521 Tue Jan 11 06:14:39 2000  David Starner <dstarner98@aasaa.ofe.org>
17522
17523         * gcc.texi (G++ and GCC): Add Java and Chill.
17524         (Bug Critera): Don't list languages.
17525
17526         * gcc.texi (Incompatibilities): No longer claim most C compilers
17527         are K&R.
17528
17529         * gcc.texi (G++ and GCC): Update other front-ends list.
17530
17531 Tue Jan 11 05:49:01 2000  Jeffrey A Law  (law@cygnus.com)
17532
17533         * i386.c (ix86_expand_setcc): Fix typo.
17534         (ix86_expand_movcc): Similarly.
17535
17536         * Band-aid until haifa's bitset implementation is nuked.
17537         * haifa-sched.c (extract_bitlst): New parameter for size of the
17538         bitset in bits.  All callers changed.  Avoid looking at undefined
17539         bits in the bitset.
17540         (edgeset_bitsize): New variable.
17541         (schedule_region): Initialize edgeset_bitsize.
17542
17543 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17544
17545         * Makefile.in (optabs.o): Depend on real.h
17546         (resource.o): Depend on insn-attr.h
17547
17548         * builtins.c (result_vector): Wrap prototype in macro conditions
17549         governing definition and use.
17550
17551         * c-common.c: Include tm_p.h.
17552
17553         * c-lex.c: Likewise.
17554
17555         * elfos.h: Constify a char*.
17556
17557         * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length.
17558         (get_attr_length, shorten_branches, profile_after_prologue): Mark
17559         parameter with ATTRIBUTE_UNUSED.
17560
17561         * fold-const.c (exact_real_inverse): Wrap variable `i' in
17562         CHECK_FLOAT_VALUE.
17563
17564         * haifa-sched.c (schedule_insns): Mark parameter with
17565         ATTRIBUTE_UNUSED.
17566
17567         * optabs.c: Include real.h.
17568
17569         * real.h (ereal_atof): Add prototype arguments.
17570
17571         * resource.c: Include insn-attr.h.
17572
17573         * sdbout.c (sdbout_queue_anonymous_type,
17574         sdbout_dequeue_anonymous_types): Wrap in macro
17575         SDB_ALLOW_FORWARD_REFERENCES.
17576         (sdbout_init, sdbout_start_new_source_file): Mark parameter with
17577         ATTRIBUTE_UNUSED.
17578
17579         * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return.
17580
17581         * stupid.c: Include tm_p.h.
17582
17583         * tree.c (real_value_from_int_cst): Mark parameter with
17584         ATTRIBUTE_UNUSED.
17585
17586 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17587
17588         * i960-protos.h: New file.
17589
17590         * i960.c: Include tm_p.h.  Add static prototypes.  Fix compile
17591         time warnings.
17592
17593         * i960.h: Move prototypes to i960-protos.h.  Fix compile time warnings.
17594
17595 2000-01-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17596
17597         * combine.c (expand_field_assignment): Do not discard SUBREGs
17598         while computing nonzero_bits.
17599
17600 2000-01-09  Nick Clifton  <nickc@cygnus.com>
17601
17602         * config/arm/arm.c: Fix compile time warnings about signed vs
17603         unsigned constants.
17604         * config/arm/arm.h: Fix compile time warnings about signed vs
17605         unsigned constants.
17606
17607 2000-01-09  Philip Blundell  <philb@gnu.org>
17608
17609         * config/arm/arm.c (output_return_instruction): Use `ldr' rather
17610         than `ldm' with only one register.
17611         * config/arm/arm.md (push_multi): Use `str' rather than `stm' with
17612         only one register.
17613
17614         * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is
17615         clobbered.
17616
17617 Sun Jan  9 17:50:23 2000  Hans-Peter Nilsson  <hp@axis.com>
17618
17619         * config/ns32k/ns32k.md (load or push effective address): Operand 1
17620         must have SImode.
17621
17622 2000-01-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17623
17624         * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around
17625         assignment used as truth value.
17626
17627         * function.c (assign_temp): Mark parameter `dont_promote' with
17628         ATTRIBUTE_UNUSED.  Wrap variable `unsignedp' with macro
17629         PROMOTE_FOR_CALL_ONLY.
17630
17631         * genrecog.c (write_subroutine): Mark variable `operands' with
17632         ATTRIBUTE_UNUSED.
17633
17634         * optabs.c (prepare_cmp_insn): Mark parameter `align' with
17635         ATTRIBUTE_UNUSED.
17636
17637         * sdbout.c (sdbout_init): Likewise for parameter `asm_file'.
17638         (sdbout_begin_block, sdbout_end_block): Likewise for `file'.
17639
17640         * toplev.c (note_deferral_of_defined_inline_function): Likewise
17641         for `decl'.
17642
17643 2000-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17644
17645         * config/c4x.h: Tidy up comments.
17646         * config/c4x.c: Likewise.
17647
17648 Sun Jan  9 01:02:55 EST 2000  John Wehle  (john@feith.com)
17649
17650         * fold-const.c (lshift_double, rshift_double): Handle
17651         shifting by 2 * HOST_BITS_PER_WIDE_INT correctly.
17652
17653 2000-01-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17654
17655         * toplev.c (rest_of_compilation): Initialize cse_not_expected as
17656         in prepare_function_start().
17657
17658 Sat Jan  8 12:12:46 2000  Nick Clifton  <nickc@cygnus.com>
17659
17660         * config/v850/v850.c (expand_epilogue): Interrupt functions no
17661         longer allocate extra stack for function calls.
17662
17663 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17664
17665         * config/c4x/c4x.md (*subqf3_set): Fix typo.
17666
17667 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17668
17669         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0.
17670
17671 2000-01-07  David Edelsohn  <edelsohn@gnu.org>
17672
17673         * rs6000.c (processor_target_table): Add power3 as alias for 630.
17674         * aix43.h: Revert Aug 2 change.
17675         (HAS_INIT_SECTION): Define, not visible yet.
17676         (LD_INIT_SWITCH): Define, not visible yet.
17677         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
17678
17679         * glimits.h (__LONG_MAX__): Recognize 64-bit AIX too.
17680
17681         * collect2.c (main): Expand ld2 size further.
17682         (export_object_lst): Cast assignment to avoid warning.
17683         (main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support.
17684         (scan_prog_file, COFF): Do not collect initialization or
17685         finalization functions generated for entire shared object if
17686         init/fini support present.
17687
17688 2000-01-07  Nick Clifton  <nickc@cygnus.com>
17689
17690         * config/elfos.h: Tidy up formatting of marcos.  Make sure
17691         that .section directives are always prefixed by a tab.
17692
17693         * config/svr4.h: Add #include "elfos.h" and remove duplicate
17694         definitions.
17695
17696 2000-01-07  Matt Austern  <austern@sgi.com>
17697
17698         * fold-const.c (real_hex_to_f): Remove duplicate declaration of
17699         expon.
17700
17701 Fri Jan  7 01:55:34 2000  Jeffrey A Law  (law@cygnus.com)
17702
17703         * Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of
17704         crtstuff.c.
17705         (crtbegin.o, s-crtS): Likewise.
17706
17707 2000-01-06  Richard Henderson  <rth@cygnus.com>
17708
17709         * alpha.md (adddi_2+1): Limit offset such that it will be
17710         loadable with a single ldah+lda pair.
17711         (adddi_2+2): Explicitly fail split if we can't make it work.
17712
17713 2000-01-06  Mumit Khan  <khan@xraylith.wisc.edu>
17714
17715         * protoize.c: Conditionally include unistd.h.
17716         (IS_SAME_PATH_CHAR): New macro.
17717         (IS_SAME_PATH): New macro.
17718         (CPLUS_FILE_SUFFIX): New macro.
17719         (cplus_suffix): New static variable.
17720         (is_abspath): New static function.
17721         (in_system_include_dir): Handle DOS style pathnames.
17722         (file_could_be_converted): Likewise.
17723         (file_normally_convertible): Likewise.
17724         (directory_specified_p): Likewise.
17725         (file_excluded_p): Likewise.
17726         (abspath): Likewise.
17727         (shortpath): Likewise.
17728         (referenced_file_is_newer): Likewise.
17729         (save_def_or_dec): Likewise.
17730         (do_processing): Likewise.
17731         (main): Likewise.
17732         (edit_file): Likewise. Use rename instead of link.
17733         (rename_c_file): Likewise. Don't rename syscalls file.
17734         (munge_compile_params): Define null device for DOS based systems.
17735         (process_aux_info_file): Use binary mode if appliable.
17736         (edit_file): Likewise.
17737         * invoke.texi (Running Protoize): Document C++ suffixes used.
17738
17739         * cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and
17740         IS_DIR_SEPARATOR macros.
17741         * collect2.c: Likewise.
17742         * cppinit.c: Likewise.
17743         * dwarf2out.c: Likewise.
17744         * gcc.c: Likewise.
17745         * gcov.c: Likewise.
17746         * prefix.c: Likewise.
17747         * rtl.c: Likewise.
17748         * toplev.c: Likewise.
17749         * system.h: And move to here.
17750
17751         * prefix.c (update_path): Fix typo in variable name.
17752
17753 2000-01-06  Richard Henderson  <rth@cygnus.com>
17754
17755         * flow.c (mark_set_1): Use loop_depth+1 as reference weight.
17756         (find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise.
17757         (count_reg_sets_1, count_reg_references): Likewise.
17758         (flow_loops_level_compute): Start counting actual loop depth at 1.
17759         (flow_loops_find): Likewise.
17760         * local-alloc.c (update_equiv_regs): Likewise.
17761         * regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change.
17762
17763 2000-01-06  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
17764
17765         * defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to
17766         FIRST_PSEUDO_REGISTER
17767         * dwarf2out.c: Don't include frame.h
17768         * dwarfout.c: Likewise
17769         * Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on
17770         frame.h
17771
17772 Thu Jan  6 13:44:59 CET 2000  Jan Hubicka  <jh@suse.cz>
17773
17774         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
17775         dead registers.
17776
17777         * i386.c (movsf splitter): Fix typo in my last checkin.
17778
17779 2000-01-05  Nick Clifton  <nickc@cygnus.com>
17780
17781         * varasm.c (IN_NAMED_SECTION): Allow targets to provide their
17782         own definition of this macro.
17783         (asm_emit_uninitialised): Invoke UNIQUE_SECTION if either
17784         flag_data_sections or UNIQUE_SECTION_P are true.
17785
17786         * tm.texi (UNIQUE_SECTION): Document that it can be called for
17787         unitialised data decls.
17788
17789         * config/i386/winnt.c (i386_pe_unique_section): Cope with
17790         being called for uninitialised data.
17791
17792         * config/i386/interix.c (i386_pe_unique_section): Cope with
17793         being called for uninitialised data.
17794
17795         * config/mips/elf.h (UNIQUE_SECTION): Cope with being called
17796         for uninitialised data.
17797
17798         * config/mips/elf64.h (UNIQUE_SECTION): Cope with being called
17799         for uninitialised data.
17800
17801         * config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called
17802         for uninitialised data.
17803
17804         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Define.
17805         (UNIQUE_SECTION_P): Always generate a unique section if
17806         flag_data_sections is true.
17807         (UNIQUE_SECTION): Also generate unique sections for
17808         uninitialised data.
17809         (ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section().
17810         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use
17811         named_section().
17812
17813 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17814
17815         * config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF,
17816         SI, or DI.
17817
17818 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17819
17820         * config/c4x/c4x.md (udivqi3, divqi3): Delete.
17821         (umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise.
17822         (*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New.
17823         (*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise.
17824         (*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise.
17825
17826         * c4x.h (INIT_TARGET_OPTABS): Define to init libcalls.
17827
17828 2000-01-05 11:25 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
17829
17830         * c-decl.c (finish_enum): Simplify code to determine minimum and
17831         maximum values of the enum, and calculate the type.  Remove check
17832         for FUNCTION_DECLs in the values list, which cannot happen.  Replace
17833         the DECL_INITIAL of each enumeration constant with a copy converted
17834         to the enumeration type.  When updating variant types, don't bother
17835         updating the type itself.
17836
17837         * c-typeck.c (build_binary_op): Simplify conditional expressions
17838         when weeding out spurious signed-unsigned warnings.  Add new
17839         spurious warning category: if the unsigned quantity is an enum
17840         and its maximum value fits in signed_type(result_type).  Update
17841         commentary.
17842         (build_conditional_expr): Warn here if one alternative is signed
17843         and the other is unsigned.
17844
17845 2000-01-05  Nick Clifton  <nickc@cygnus.com>
17846
17847         * config/fr30/fr30.h: Remove extraneous comments.
17848
17849 2000-01-05  Bernd Schmidt  <bernds@cygnus.co.uk>
17850
17851         * reload1.c (choose_reload_regs): When disabling a reload, also
17852         set reload_spill_index to -1.
17853
17854 2000-01-04  Joel Sherrill (joel@OARcorp.com>
17855
17856         * configure.in (m68*-*-rtemscoff*): New target, formal name for
17857         old m68*-*-rtems*.
17858         (m68*-*-rtemself*): New target.
17859         (mips64orion-*-rtems*): Remove duplicate definition of tm_file.
17860         (sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*.
17861         (sparc*-*-rtemself*): New target.
17862         (sparc*-*-rtems*): Now elf not a.out.
17863         * config/i386/rtems.h: Include config/rtems.h.
17864         * config/i386/rtemself.h: Include config/rtems.h.
17865         * config/i960/rtems.h: Include config/rtems.h.
17866         * config/m68k/rtems.h: Include config/rtems.h.
17867         * config/m68k/rtemself.h: Include config/rtems.h.
17868         * config/mips/rtems64.h: Include config/rtems.h.
17869         * config/pa/rtems.h: Include config/rtems.h.
17870         * config/rs6000/rtems.h: Include config/rtems.h.
17871         * config/sh/rtems.h: Include config/rtems.h.
17872         * config/sh/rtemself.h: Include config/rtems.h.
17873         * config/sparc/rtems.h: Include config/rtems.h.
17874         * config/sparc/rtemself.h: Include config/rtems.h
17875
17876 Tue Jan  4 23:59:26 2000  Denis Chertykov <denisc@overta.ru>
17877
17878         * final.c (shorten_branches): Correctly compute length of
17879         asms without operands.
17880
17881 Tue Jan  4 22:55:41 2000  Steve Chamberlain <sac@pobox.com>
17882
17883         * configure.in: Add pj target.
17884         * configure: Regenerate.
17885         * config/pj: New directory.
17886         * config/pj/lib1funcs.S: New file.
17887         * config/pj/linux.h: New file.
17888         * config/pj/pj.c: New file.
17889         * config/pj/pj.md: New file.
17890         * config/pj/pjl.h: New file.
17891         * config/pj/t-pj: New file.
17892         * config/pj/xm-pj.h: New file
17893
17894 Tue Jan  4 22:30:16 2000  Jeffrey A Law  (law@cygnus.com)
17895
17896         * toplev.c (rest_of_compilation): Run shorten-branches before
17897         reg-stack for now.
17898
17899 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17900
17901         * config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behaviour of
17902         macros so that they're consistent with their names.
17903         * config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise.
17904         * config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise.
17905
17906 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17907
17908         * config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never
17909         modified inadvertently.
17910
17911 2000-01-04  Joel Sherrill <joel@OARcorp.com>
17912
17913         * configure.in (v850*-*-rtems*): New target.
17914         * configure: Regenerate.
17915         * config/v850/rtems.h: New file.
17916
17917 2000-01-04  Mumit Khan  <khan@xraylith.wisc.edu>
17918
17919         * gthr-win32.h (__gthread_active_p): Support Mingw MT runtime.
17920         (__gthread_key_create): Likewise.
17921         (__gthread_key_dtor):  Likewise.
17922         (__gthread_once): Fix logic.
17923         (__gthread_key_delete): Cast away constness.
17924
17925         * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option.
17926         * invoke.texi: Document.
17927         * i386/mingw32.h (CPP_SPEC): Use.
17928         (LIBGCC_SPEC): Likewise.
17929         * i386/crtdll.h (LIBGCC_SPEC): Likewise.
17930
17931 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
17932
17933         * rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine.
17934         (HANDLE_PRAGMA_PACK): Undefine.
17935         (SLOW_UNALIGNED_ACCESS): Define.
17936
17937 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
17938
17939         * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
17940         to default definition.
17941         (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment.
17942         (store_fixed_bit_field): Call macro with word_mode and alignment.
17943         (extract_bit_field): Call macro with relevant mode and alignment.
17944         * expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
17945         to default definition.
17946         (move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode
17947         and alignment.
17948         (move_by_pieces_ninsns): Likewise.
17949         (clear_by_pieces): Likewise.
17950         (emit_push_insn): Likewise.
17951         (store_field): Call macro with relevant mode and alignment.
17952         (expand_expr): Likewise.
17953         (expand_expr_unaligned): Likewise.
17954
17955         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
17956         (SLOW_UNALIGNED_ACCESS): Define.
17957         (CASE_VECTOR_MODE): Always use 32-bit offsets.
17958         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
17959         (EXTRA_SECTION_FUNCTIONS): Indent .csect pseudo-op.
17960         (toc_section): Likewise and .toc pseudo-op.
17961         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
17962         64-bit mode.
17963         (TEXT_SECTION_ASM_OP): Likewise.
17964         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
17965         32-bit offsets.
17966
17967         * a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters.
17968         * alpha.h (SLOW_UNALIGNED_ACCESS): Likewise.
17969         * arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise.
17970         * gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise.
17971         * fr30.h (SLOW_UNALIGNED_ACCESS): Likewise.
17972
17973 Tue Jan  4 11:44:13 2000  Jeffrey A Law  (law@cygnus.com)
17974
17975         * regclass.c: Revert my Jan 4 change to loop cost computation.
17976
17977 Tue Jan  4 19:22:39 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
17978
17979         * regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing
17980         compilation.
17981
17982 2000-01-04  Stan Cox  <scox@cygnus.com>
17983
17984         * haifa-sched.c (build_control_flow): Change unreachable simple
17985         loop test to check if current block has only one predecessor.
17986         (find_rgns): Initialize degree.  Use dest as degree index, not src.
17987
17988 2000-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17989
17990         * builtins.c (expand_builtin_strlen): Initialize variable `icode'.
17991
17992         * calls.c (expand_call): Likewise for
17993         `old_stack_arg_under_construction'.
17994
17995         * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'.
17996
17997         * function.c (pad_to_arg_alignment): Likewise for `save_var' and
17998         `save_constant'.
17999
18000         * gcc.c (execute): Likewise for `ut' and `st'.
18001
18002         * genattrtab.c (attr_rtx): Likewise for `rt_val'.
18003
18004         * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'.
18005
18006         * jump.c (jump_optimize_1): Likewise for `temp2'.
18007
18008         * local-alloc.c (block_alloc): Likewise for `r1'.
18009
18010         * loop.c (recombine_givs): Likewise for `life_start' and `life_end'.
18011
18012         * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'.
18013         (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'.
18014
18015         * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node'
18016         and `set2'.
18017
18018         * reload.c (find_reloads): Likewise for `goal_alternative_number'
18019         and `goal_earlyclobber'.
18020
18021         * scan-decls.c (scan_decls): Likewise for `prev_id_end'.
18022
18023         * sdbout.c (sdbout_one_type): Likewise for `member_scl'.
18024
18025         * stupid.c (stupid_life_analysis): Likewise for `chain'.
18026
18027         * unroll.c (copy_loop_body): Likewise for `copy'.
18028
18029         * varasm.c (output_constructor): Likewise for `byte'.
18030
18031 Tue Jan  4 15:34:34 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
18032
18033         * i386.c (ix86_expand_move): Allow pushes of memory, offload to memory
18034         all FP constants for constant->reg moves.
18035         (ix86_split_to_parts): Try to convert memory address into immediate
18036         when available in the constant pool.
18037         * i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg
18038         moves.
18039         (LEGITIMATE_CONSTANT_P): Return 1.
18040         * i386.md (pushsf): New splitter to convert constant pool memory
18041         reference to immediate.
18042         (mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before
18043         reload.
18044
18045 2000-01-04  Bernd Schmidt  <bernds@cygnus.co.uk>
18046
18047         * i386.md (ashlsi3_cmpno): Don't accept variables shifts.
18048         (ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno,
18049         ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise.
18050         (rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno,
18051         rotrhi3_cmpno, rotrqi3_cmpno): Likewise.
18052
18053 2000-01-04  Martin von Löwis  <loewis@informatik.hu-berlin.de>
18054
18055         * ginclude/stdbool.h:  Support compilation as C++.
18056
18057 Tue Jan  4 01:35:13 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
18058
18059         * fold-const.c (make_range): Don't try to reverse an unbounded range.
18060
18061 Tue Jan  4 00:18:46 2000  Jeffrey A Law  (law@cygnus.com)
18062
18063         * regclass.c (regclass): Properly compute loop_cost.  Adjust
18064         comments.
18065
18066         * regclass.c: Fix minor whitespace problems.
18067
18068 2000-01-03  Anthony Green  <green@cygnus.com>
18069
18070         * config/i386/i386.md (builtin_setjmp_receiver): New pattern.
18071         Restore the pic register if required.
18072
18073 2000-01-03  Ulrich Drepper  <drepper@cygnus.com>
18074
18075         * c-common.c (format_char_info): Update comment.
18076         (check_format_info): Recognize 'z' modifier in the same way 'Z'
18077         was recognized.  Emit warning for formats new in ISO C99 only
18078         if flag_isoc9x is not set.
18079
18080 Mon Jan  3 12:59:54 2000  Mark P. Mitchell  <mark@codesourcery.com>
18081
18082         * config/mips/iris6gld.h: Fix typo in -mabi=n32 specs.
18083
18084 Mon Jan  3 15:33:37 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
18085
18086         * combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to
18087         SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND.
18088         (make_compound_operation): Choose cheaper alternative between
18089         ZERO_EXTEND and SIGN_EXTEND when sign bit is not set.
18090
18091         * regclass.c (op_costs): Remove global variable.
18092         (record_reg_classes): New parameter "op_costs" and "reg_pref".
18093         (record_operand_costs): Break out from ...
18094         (scan_one_insn): ... here.
18095         (dump_regclass): Make dumps nicer.
18096         (regclass): Dump preferrences choosed and changes done during passes.
18097
18098 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
18099
18100         * config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC.
18101
18102 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
18103
18104         * config/sparc/sparc.c (gen_df_reg): New function.
18105         * config/sparc/sparc-protos.h (gen_df_reg): Add prototype.
18106         * config/sparc/sparc.md (movtf_no_e_insn_sp64+1,
18107         movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1,
18108         movtf_cc_reg_sp64+1): Use it.
18109
18110 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
18111
18112         * integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on
18113         copied LABEL_DECLs.
18114
18115 Mon Jan  3 02:54:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
18116
18117         * config/i386/i386.c (ix86_expand_unary_operator): Function
18118         definition made void.
18119         (ix86_expand_binary_operator): Update outdated preceding comment.
18120         * config/i386/i386-protos.h (ix86_expand_unary_operator): Update
18121         prototype.
18122
18123         * config/i386/i386.c (override_options): Fix option-name typo.
18124
18125 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
18126
18127         * system.h (CEIL): Define.
18128         * builtins.c (CEIL): Remove.
18129         * expmed.c (CEIL): Likewise.
18130         * expr.c (CEIL): Likewise.
18131         * stor-layout.c (CEIL): Likewise.
18132
18133 2000-01-02  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
18134
18135         * expr.c (store_constructor_field): Fix typo introduced with last
18136         gcc2 merge.
18137
18138 2000-01-01  Mark Mitchell  <mark@codesourcery.com>
18139
18140         * tree.h (BINFO_N_BASETYPES): New macro.
18141
18142 2000-01-01  Bernd Schmidt  <bernds@cygnus.co.uk>
18143
18144         * expmed.c (emit_store_flag): Prevent losing a pending stack
18145         adjust the same way we prevent losing queued increments.
18146
18147 See ChangeLog.2 for earlier changes.