OSDN Git Service

* gcc.c (execute): If a subprocess gets a fatal signal, report
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
2
3         * gcc.c (execute): If a subprocess gets a fatal signal, report
4         strsignal() of the signal number, and ask for a bug report.
5         Do not do this for SIGPIPE if there's already been an error.
6
7         * tradcpp.c: Don't include signal.h.  Don't catch SIGPIPE.
8         Delete pipe_closed.
9
10 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
11
12         * final.c (profile_function): Do not emit profile counters in
13         the data section, if NO_PROFILE_COUNTERS is defined.
14         * tm.texi: Document NO_PROFILE_COUNTERS.  Update doc for
15         FUNCTION_PROFILER.
16
17         * config/i386/linux.h (NO_PROFILE_COUNTERS): Define.
18         (FUNCTION_PROFILER): Just emit a call to mcount.
19
20 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
21
22         * tradcpp.c (main): Rename 'perror' label to 'sys_error'.
23
24         * cppexp.c, cpphash.c, cpphash.h, cppinit.c, cpplex.c,
25         cpplib.c, cpplib.h: Eradicate all traces of code dependent on
26         traditional, lang_chill, or lang_fortran.
27
28         * cppfiles.c: #undef strcmp to suppress warning about macros
29         used without arguments.
30         (_cpp_execute_include): Use f, not fname, in "No include path"
31         error.
32         (_cpp_pop_file_buffer): New function.
33         * cpplib.c: Don't include <sys/mman.h>.
34         (cpp_push_buffer): Set line_base and lineno in new buffer.
35         (cpp_pop_buffer): Use _cpp_pop_file_buffer.
36
37         * cpplex.c: Move all prototypes and structure declarations to the
38         top of the file.  Properly parenthesise some macro arguments.
39         (cpp_scan_line): New function.
40         (special_symbol [case T_INCLUDE_DEPTH]): Use pfile->include_depth,
41         don't need to walk up the stack counting.
42
43 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
44
45         * c-common.c (combine_strings): Emit a pedantic warning when a
46         string length is greater than the minimum ANSI C is required
47         to support.
48
49 Wed Jul 12 13:24:30 2000  Jeffrey A Law  (law@cygnus.com)
50
51         * pa/xm-pa64.h (NO_SYS_SIGLIST): Kill.
52         * d30v/xm-d30v.h (NO_SYS_SIGLIST): Kill.
53
54 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
55
56         * c-decl.c (define_label): Warn about identifier conflicts with
57         labels in traditional C.
58
59         * c-parse.in (unop +): Warn about the unary plus operator for
60         traditional C.
61
62         * c-typeck.c (store_init_value): Warn about automatic aggregate
63         initialization for traditional C.
64
65         * invoke.texi (-Wtraditional): Document new warnings.
66
67 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
68
69         * Makefile.in (c-errors.o): Fix thinko in dependency.
70
71 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
72
73         * gcc.c (C specs [!USE_CPPLIB]): Invoke tradcpp if any of
74         -traditional, -ftraditional, or -traditional-cpp was given.
75         Do not pass -traditional to the preprocessor.
76         (.S spec): Likewise.  Don't bother defining __ASSEMBLER__, the
77         preprocessor does it automatically.
78         * objc/lang-specs.h: Likewise.  Don't bother defining __OBJC__.
79
80         * ch/lang-specs.h: Always use tradcpp.  Do not pass
81         -traditional, -trigraphs, or -pedantic to the preprocessor.
82         * f/lang-specs.h (.F spec): Likewise.  Don't bother defining
83         _LANGUAGE_FORTRAN.
84
85 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
86
87         * cppexp.c (LOGICAL): Delete macro.
88         (_cpp_parse_expr): Do not use UNARY for unary +.  Implement ||
89         and && directly.
90
91         * cpphash.c (HASHSIZE): Increase to 4096.
92         (struct hashdummy): Add hash field.
93         (eq_HASHNODE): Compare unreduced hashes, then lengths, then
94         the string values using memcmp.
95         (cpp_lookup): Set dummy.hash.
96
97 Wed Jul 12 13:15:16 2000  Marc Espie <espie@openbsd.org>
98
99         * configure.in (m88k-openbsd): Express configuration using new fragment
100         style.
101         * configure: Rebuilt.
102         * m88k/aout-dbx.h: New.
103         * m88k/openbsd.h: New.
104         * m88k/xm-openbsd.h: New.
105
106 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
107
108         * expr.c (expand_expr): Return const0_rtx, not error_mark_node.
109
110 2000-07-12  Richard Henderson  <rth@cygnus.com>
111
112         * reload.c (push_secondary_reload): Make sure to add the new
113         reload at the end, after acquiring secondary memory.
114
115 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
116
117         * cpplex.c (is_macro_disabled): Use CPP_WTRADITIONAL.
118
119         * c-decl.c (set_current_function_name_declared, anon_aggr_type_p,
120         lang_expand_stmt): Mark parameters with ATTRIBUTE_UNUSED.
121
122         * c-parse.in (stmt): Delete unused variables.
123
124         * convert.c (convert_to_vector): Likewise.
125
126         * gensupport.c (process_rtx): Declare attr as `rtvec' not `rtx'.
127
128         * tree.c (finish_vector_type): Prototype.
129
130 2000-07-12  Bruce Korb  <bkorb@gnu.org>
131
132         * fixinc/fixfixes.c: use xmalloc
133         * fixinc/fixincl.c(initialize): set program name for xmalloc
134         * fixinc/fixlib.c(must_malloc): obsolete
135         (is_cxx_header): no longer used - disabled
136         (skip_quote): inserted and disabled for future use
137         * fixinc/fixlib.h: reflects above
138         * fixinc/fixtests.c: removed dinkleberries
139
140 2000-07-12  Neil Booth  <NeilB@earthling.net>
141
142         * cpphash.h: (TOKEN_SPELL) Pulled from cpplex.c.
143         * cpplex.c (TOKEN_SPELL) Move to cpphash.h.
144
145         * cpphash.c: (struct macro_info, alloc_macro, free_macro,
146         struct toklist_dummy): New.
147         (cpp_free_definition): Free macros with free_macro.
148         (count_params): Don't save paramter spellings.  Save macro
149         information in a struct macro_info.
150         (parse_define): Don't allocate a token list.
151         (save_expansion): Allocate the macro's token list, and
152         save parameter spellings if necessary.  Use TOKEN_SPELL.
153         (cpp_create_definition): Make list const.
154
155 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
156
157         * c-typeck.c (pedwarn_c99): Move to
158         * c-errors.c: ... Here.
159         * toplev.h (verror, vwarning, vpedwarn): Remove prototypes.
160         * diagnostic.c (verror, vwarning, vpedwarn): Make static.
161         * Makefile.in (C_AND_OBJC_OBJS): Include c-errors.o
162         (c-errors.o): List dependency.
163
164 2000-07-12  Mark Mitchell  <mark@codesourcery.com>
165
166         * c-parse.c: Remove.
167         * c-parse.h: Likewise.
168         * c-parse.y: Likewise.
169         * objc/objc-parse.c: Likewise.
170         * objc/objc-pasre.y: Likewise.
171
172 2000-07-11  Rodney Brown  <RodneyBrown@pmsc.com>
173
174         * gcc.texi: Fix minor typos
175         * extend.texi: Fix minor typos
176
177 2000-07-11  Marc Espie <espie@openbsd.org>
178
179         * collect2.c (main): Recognize .lo as object files.
180
181 2000-07-11  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
182
183         * pa.c (hppa_encode_label): Store labels in gc memory when ggc_p is
184         true.
185
186         * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Extend test to detect systems
187         with MAP_ANONYMOUS and MAP_ANON.
188         * configure, config.in: Rebuilt.
189
190 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
191
192         * diagnostic.c (save_output_state): Remove.
193         (restore_output_state): Likewise.
194         (clear_text_info): New function.
195         (clear_diagnostic_info): Likewise.
196         (output_text_length, is_starting_newline, output_prefix,
197         line_wrap_cutoff, ideal_line_wrap_cutoff, prefix_was_emitted_for,
198         prefixing_policy, output_buffer_ptr_to_format_args): New macros
199         (set_real_maximum_length, output_set_maximum_length,
200         output_set_prefix, output_get_prefix, output_set_maximum_length,
201         output_destroy_prefix, init_output_buffer,
202         reshape_diagnostic_buffer, output_space_left, output_emit_prefix,
203         output_add_newline, output_add_character, output_add_space,
204         output_append_r, output_append, wrap_text, output_format,
205         output_do_printf, output_printf, output_do_verbatim,
206         output_verbatim, verbatim): Use them.
207         (output_clear): Split into cleat_text_info and
208         clear_diagnostic_info.
209         (struct output_state): Move to...
210
211         * diagnostic.h: ...Here
212         (struct output_buffer): Adjust.
213
214 2000-07-11  Zack Weinberg  <zack@wolery.cumb.org>
215
216         * cpplex.c (parse_name): No longer inline (premature optimization).
217         (do_pop_context): Fold into pop_context.
218         (pop_context): Returns int.
219         (lex_next): Hoist test for end of directive into pop_context.
220         (push_macro_context): Returns int; takes just reader and token.
221         Hoist test for excessive nesting to caller.
222         (push_arg_context): Returns void; takes just reader and token.
223         Do not call stringify_arg or get_raw_token.
224         (get_raw_token): Convert tail recursion through push_arg_context
225         to a loop at this level.  Call stringify_arg here if appropriate.
226         (maybe_paste_with_next): Convert tail recursion to a while loop.
227         Hoist test of paste_level to caller.
228
229         (stringify_arg): Push arg context at beginning.
230         (cpp_get_token): Split out core into _cpp_get_token.  Call
231         process_directive here.  Throw away CPP_PLACEMARKER tokens.
232         (_cpp_get_token): Convert tail recursion through
233         push_macro_context to a loop at this level.
234         (_cpp_glue_header_name, is_macro_disabled, stringify_arg,
235         _cpp_get_raw_token): Use _cpp_get_token.
236         (_cpp_skip_rest_of_line): Drop the context stack directly; do
237         not call pop_context.
238         (_cpp_run_directive): Call lex_next directly.
239
240         * cpphash.h: Prototype _cpp_get_token.
241         * cppexp.c (lex): Use it.
242         * cpphash.c (parse_define): Use it.
243         * cpplib.c (get_define_node, do_undef, parse_include,
244         read_line_number, do_line, do_ident, do_pragma, do_pragma_gcc,
245         do_pragma_implementation, do_pragma_poison, do_pragma_dependency,
246         parse_ifdef, validate_else): Use it.
247         (cpp_push_buffer): Tweak error message; abort if anyone tries
248         to push a buffer while macro expansions are stacked.
249
250 2000-07-11  Donn Terry  <donnte@microsoft.com>
251
252         * cpplex.c (free_macro_args, save_token): Cast arg of free
253         and/or xrealloc to PTR.
254         (_cpp_init_input_buffer): Clear all fields of the base context.
255
256 Tue Jul 11 15:28:21 CDT 2000  Clinton Popetz  <cpopetz@cygnus.com>
257
258         * gensupport.c (process_rtx): Make rtl checking stop
259         complaining about the define_insn while it is being
260         converted from a define_insn_and_split.
261
262 Tue Jul 11 16:26:17 2000  Clinton Popetz  <cpopetz@cygnus.com>
263
264         * config/mips/mips.c (simple_memory_operand): Access the
265         INTVAL of the address, not it's containing MEM.
266
267 2000-07-11  Bruce Korb  <bkorb@gnu.org>
268
269         * fixinc/fixtests.c(double_slash): obsolete
270         (else_endif_label): likewise
271         * fixinc/inclhack.def(irix_multiline_cmnt): obsolete
272         (libc1_ifdefd_memx): correct initial comment
273         and omit the #if/#endif pair from the memxxx declarations
274         * fixinc/fixincl.x: regen
275
276 2000-07-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
277
278         * cpplex.c (T, I, S, C, N): Avoid non-constant initializers.
279
280 2000-07-11  Neil Booth  <NeilB@earthling.net>
281
282         * cpp.texi: Update.
283
284 2000-07-11  Neil Booth  <NeilB@earthling.net>
285
286         * cppinit.c: (cpp_reader_init): Allow digraphs by default.
287         (handle_option): Set digraphs according to standard.
288         Merge OPT_lang_c89 handler with OPT_std_c89.
289
290         * cpplex.c: (lex_line, can_paste): Honour digraphs in
291         accordance with the digraphs flag.
292
293         * cpplib.h: (struct cpp_options): New option digraphs.
294
295 2000-07-10  Hans-Peter Nilsson  <hp@axis.com>
296             Bruce Korb  <bkorb@gnu.org>
297
298         * fixinc/inclhack.def (libc1_ifdefd_memx): New fix.
299         * fixinc/fixincl.x: Regenerate.
300         * fixinc/tests/base/testing.h: Add testcase.
301
302 2000-07-10  Richard Henderson  <rth@cygnus.com>
303
304         * config/ia64/ia64.c (got_symbolic_operand): New.
305         (symbolic_operand, move_operand): Revert 0701 change.
306         * config/ia64/ia64.h (PREDICATE_CODES): Update.
307         * config/ia64/ia64-protos.h (got_symbolic_operand): Declare.
308         * config/ia64/ia64.md (movdi): Revert 0701 wrt symbolic_operand;
309         split the offset into a 14-bit low part instead of a 13-bit low part.
310         (load_fptr): Mark the mem as unchanging.
311         (load_symptr): Use got_symbolic_operand.
312
313 2000-07-10  Nick Clifton  <nickc@cygnus.com>
314
315         * libgcc2.c (next_stack_level): Cast result of computation to
316         (void **) so that the assignment does not generate a warning.
317
318 2000-07-10  Chandrakala Chavva  <cchavva@redhat.com>
319
320         * flags.h : Add new variable flag_single_precision_constant.
321         * toplev.c (display_help) : Add -fsingle-precision-constant option.
322         (flag_single_precision_constant): New.
323         * c-lex.c (yylex): Convert floating point constant to single
324         precision constant.
325         * invoke.texi : Add documentation for this new option.
326
327 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
328
329         * diagnostic.c (output_octal): Second parameter is unsigned.
330         (output_long_octal): Likewise.
331         (output_hexadecimal): Likewise.
332         (output_long_hexadecimal): Likewise.
333         (output_format): Adjust arguments extraction. Tweak.
334         (output_verbatim, verbatim): End variable argument list.
335         (report_diagnostic): Improve documentation.
336
337 2000-07-10  Benjamin Chelf  <chelf@codesourcery.com>
338
339         * c-common.h (build_stmt): Declare.
340         (build_continue_stmt): Likewise.
341         (build_break_stmt): Likewise.
342         (build_return_stmt): Likewise.
343
344         * c-decl.c (do_case): Rewrite to do what previously done in
345         c-parse.in.
346
347         * c-semantics.c (build_stmt): Define.
348         (build_return_stmt): Likewise.
349         (build_break_stmt): Likewise.
350         (build_continue_stmt): Likewise.
351         (build_case_label): Likewise.
352
353         * c-parse.in (BREAK): Change to build tree, then generate RTL.
354         (CONTINUE): Likewise.
355         (RETURN): Likewise.
356         (CASE): Likewise.
357         (DEFAULT): Likewise.
358
359         * c-parse.y: Regenerate.
360         * c-pasre.c: Likewise.
361
362 2000-07-09  Jason Merrill  <jason@redhat.com>
363
364         * expr.c (expand_expr): Bail earlier if we get an error_mark_node.
365
366         * tree.h (STRIP_NOPS): Check for error_mark_node.
367         (STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Likewise.
368         (dwarf2out_*): Remove duplicate declarations.
369
370         * c-decl.c (duplicate_decls): Copy DECL_ABSTRACT_ORIGIN from
371         DECL_ABSTRACT_ORIGIN, not DECL_ORIGIN.
372
373 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
374
375         * diagnostic.c (wrap_text): New function.
376         (maybe_wrap_text): Likewise.
377         (output_add_string): Use it.
378         (output_format): Likewise.
379         (count_error): Use verbatim instead of notice.
380         (report_error_function): Likewise. Don't use plain fprintf.
381         (finish_diagnostic): New function.
382         (output_do_verbatim): Tweak.  Commonalize functionalities in
383         output_verbatim and verbatim.
384         (output_verbatim): Adjust.
385         (verbatim): Likewise.
386         (report_diagnostic): Define.
387
388         * diagnostic.h (report_diagnostic): Prototype.
389
390 2000-07-09  Zack Weinberg  <zack@wolery.cumb.org>
391
392         * cppexp.c (_cpp_parse_expr): Don't use unary plus.
393
394 2000-07-09  Neil Booth  <NeilB@earthling.net>
395
396         * cpphash.h: ISvspace, is_vspace, is_nvspace: New.
397         IShspace, ISspace: Update.
398
399         * cppinit.c: ISTABLE: Update.
400         V: New.
401
402         * cpplex.c (IS_HSPACE, S_NEWLINE): Remove.
403         (IS_DIRECTIVE): Rename KNOWN_DIRECTIVE.
404         (skip_block_comment, skip_line_comment, parse_string,
405         lex_line): Use is_vspace rather than IS_NEWLINE.
406         (skip_whitespace, lex_line): Clean up to use is_nvspace.
407         (lex_line): Use KNOWN_DIRECTIVE.  Any kind of directive
408         gets a BOL flag.
409         (lex_next): Unconditionally stop if within a directive.
410         Treat directives within macro invocations as directives
411         (after parse_args emits error), not as the argument.
412
413 2000-07-09  Gabriel Dos Reis  <gdr@codesourcery.com>
414
415         * diagnostic.c (diagnostic_args): New macro.
416         (diagnostic_msg): Likewise.
417         (output_formatted_integer): Likewise.
418         (output_state): New data type.
419         (digit_buffer): Make global.
420         (output_add_integer): Rename to output_decimal. Squeeze
421         digit_buffer.
422         (output_long_decimal, output_unsigned_decimal,
423         output_long_unsigned_decimal, output_octal, output_long_octal,
424         output_hexadecimal, output_long_hexadecimal): New functions.
425         (output_append_r): New function.
426         (output_append): Tweak.
427         (output_flush_on): Rename to output_to_stream.
428         (output_format): Change prototype.  Improve documentation. Handle
429         more format specifiers.
430         (build_location_prefix): Rename to context_as_prefix.
431         (output_notice): Rename to output_do_printf.
432         (output_printf): Tweak.
433         (line_wrapper_printf): Likewise.
434         (vline_wrapper_message_with_location): Adjust call to renamed
435         functions.
436         (v_message_with_decl): Likewise.
437         (default_print_error_function): Likewise.
438         (save_output_state): New function.
439         (restore_output_state): Likewise.
440         (output_do_verbatim): Likewise.
441         (output_verbatim): Define.
442         (verbatim): Likewise.
443
444         * diagnostic.h (printer_fn): Change return type from void to int.
445         Improve documentation.
446         (output_add_integer): Rename to output_decimal.
447         (output_flush_on, output_format): Don't export.
448         (output_verbatim, verbatim): Declare.
449
450 2000-07-08  Toon Moene  <toon@moene.indiv.nluug.nl>
451
452         * fold-const.c (extract_muldiv) case PLUS_EXPR, MINUS_EXPR:
453         Check whether c divides op1 exactly if operation is not
454         multiplication.
455
456 2000-07-08  Richard Henderson  <rth@cygnus.com>
457
458         * final.c (final): Do not abort when reg-stack introduces
459         a new insn.
460
461 2000-07-08  Zack Weinberg  <zack@wolery.cumb.org>
462
463         * cpplib.h (struct cpp_name): Now struct cpp_string.
464         (CPP_INT, CPP_FLOAT, CPP_NUMBER, CPP_COMMENT,
465         CPP_HEADER_NAME): Change to type S.
466         (struct cpp_token): Rename 'name' field to 'str'.  Add 'node'
467         field, a cpp_hashnode *.  All references to val.name updated
468         to use val.str or val.node as appropriate.
469         (struct cpp_reader): Add spec_nodes field.
470         (cpp_idcmp): Now cpp_ideq; takes a token * and a char *.
471
472         * cpphash.h (struct spec_nodes): New.
473         (enum spell_type): Reorder.  Only SPELL_STRING tokens use
474         val.str.  All references to 'spelling > SPELL_NONE' updated to
475         match.
476
477         (CPP_IN_SYSTEM_HEADER): Check pfile->buffer and
478         pfile->buffer->inc are not NULL before dereferencing them.
479
480         * cpplex.c (parse_name): Take a pointer to the current token,
481         plus current position and limit as args; return the new
482         position; don't copy the text of a name into the string
483         buffer, instead call cpp_lookup and store the node pointer.
484         If extending a token, copy out the text of the old into a
485         scratch buffer, append the new, look that up and store the new
486         node pointer.  Inline.
487         (maybe_paste_with_next): If the result of paste is a NAME,
488         then look up the pasted text and store its node pointer.
489         (lex_line): Adjust for new parse_name interface.
490         Check for L"str", L'str' using spec_nodes->n_L.
491         (spell_token): SPELL_IDENT tokens have their spelling in
492         val.node->name.  Handle SPELL_STRING tokens that don't have
493         string delimiters.
494         (_cpp_expand_name_space,
495         (can_paste): Check for L ## "str" using spec_nodes->n_L.
496         (cpp_get_token, special_symbol): No need to call cpp_lookup.
497         (cpp_idcmp): Now cpp_ideq; take a token * and a const char *;
498         return 1=equal 0=not, not a tristate.
499
500         * cpphash.c (var_args_str): Delete.
501         (find_param): Compare node fields directly.
502         (is__va_args__): Use CPP_PEDANTIC.  Just compare
503         token->val.node with spec_nodes->n__VA_ARGS__.
504         (dump_funlike_macro): Don't use var_args_str.
505
506         * cpplib.c (_cpp_check_directive): Just walk through
507         spec_nodes->dirs comparing pointers.
508         (get_define_node, do_pragma_poison, detect_if_not_defined,
509         parse_ifdef): The identifier has already been looked up.
510         (do_ifdef, do_ifndef): parse_ifdef won't return a poisoned
511         node.
512         (do_if): Only call detect_if_not_defined at beginning of file.
513         (_cpp_parse_assertion): Only copy string pointers for
514         SPELL_STRING tokens.
515         (pragma_dispatch): Take a node pointer and examine its name
516         field.
517         (_cpp_init_stacks): Also initialize the spec_nodes structure.
518
519         * cppinit.c (cpp_reader_init): Call _cpp_init_stacks after
520         _cpp_init_macros.
521         (cpp_cleanup): Free pfile->spec_nodes.  Call _cpp_cleanup_* in
522         reverse order from the corresponding _cpp_init_* routines.
523
524         * cppexp.c (parse_number, parse_charconst, parse_defined,
525         lex): Check val.node->type instead of calling cpp_defined.
526         Use spec_nodes entries where appropriate.
527
528         * fix-header.c, scan-decls.c: Update for interface changes.
529
530 2000-07-08  Geoffrey Keating  <geoffk@cygnus.com>
531
532         * config/rs6000/rs6000.c (rs6000_emit_move): Fix conditions for
533         emitting aux_truncdfsf2.
534
535 2000-07-03  Donn Terry  (donnte@microsoft.com)
536
537         * cppinit.c (print_help): split overlong line into ISO C89
538         maximum chunks.
539
540 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
541
542         * cppexp.c: Update all code for new lexer interface.
543         (op_t, operator codes, struct token, tokentab2, op_to_str): Remove.
544         (struct suffix, vsuf_1, vsuf_2, vsuf_3, op_to_prio): New.
545         * cpplex.c (token_names): Trim leading CPP_ from names; make
546         the strings unsigned.
547         (_cpp_spell_operator): New.
548         (is_macro_disabled): Disable all macros if rescanning
549         preprocessed text.
550         (_cpp_get_directive_token): Remove.
551
552         * cppinit.c: Don't set no_macro_expand.
553         * cpplib.c (read_line_number, do_line): Check only for EOF,
554         not VSPACE.
555         * cpphash.h: Update prototypes.
556         * cpplib.h (CPP_VSPACE): Remove.
557         (struct cpp_reader): Remove no_macro_expand.
558
559 2000-07-08  Neil Booth  <NeilB@earthling.net>
560
561         * cpphash.c (is__va_args__): New function.
562         (count_params): Fix line reported in error messages.  Use
563         is__va_args__.  Don't return ')' on error.  Flag GNU style
564         rest args macro definitions.
565         (parse_define): Check macro name is not __VA_ARGS__.
566         (save_expansion): Check identifier in non-varargs-macro is
567         not __VA_ARGS__.  Don't flag GNU_VARARGS.
568         * cpplex.c (parse_args): Accept no argument iff GNU_REST_ARGS.
569         (maybe_paste_with_next): Use per-macro GNU_REST_ARGS rather
570          than per-token GNU_VARARGS.
571         * cpplib.h (GNU_VARARGS): Remove.
572         (GNU_REST_ARGS): New.
573
574 Sat Jul  8 01:38:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
575
576         * i386.md (call_pop, call, call_value_pop): Do not set
577         current_function_uses_pic_offset_table for calls to static
578         functions or indirect calls.
579
580 2000-07-07  Jim Wilson  <wilson@cygnus.com>
581
582         * config/ia64/ia64.c (rws_access_reg): New local write_count.  If
583         is_predicate_reg, then take max write_count of register pair.
584
585 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
586
587         * tradcpp.c (main): Rename label `include' to `add_include' to
588         avoid conflicts with variable `include' in traditional C.
589
590 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
591
592         * integrate.c (copy_insn_list): Remove REG_LABEL notes.
593
594 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
595
596         * sibcall.c (uses_addressof): Add INMEM argument, check for
597         current_function_internal_arg_pointer outside of MEM rtxs in addition
598         to ADDRESSOFs.
599         (sequence_uses_addressof): Update caller.
600
601 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
602
603         * tradcpp.c (initialize_builtins): Honor NO_BUILTIN_SIZE_TYPE
604         and friends.
605
606 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
607
608         * system.h (UNION_INIT_ZERO): New macro for initializing union
609         members in structs.
610
611         * cpplex.c (placemarker_token, eof_token): Use UNION_INIT_ZERO.
612
613 2000-07-07  Neil Booth  <NeilB@earthling.net>
614
615         * cpp.texi: Update.
616
617 Fri Jul  7 07:47:35 2000  Jeffrey A Law  (law@cygnus.com)
618
619         * final.c (final): Detect out of bounds array access to
620         the insn_lengths array.
621
622 2000-07-07  Kazu Hirata  <kazu@hxi.com>
623
624         * fold-const.c (fold): Fix a comment typo.
625
626 2000-07-07  Neil Booth  <NeilB@earthling.net>
627
628         * cpp.texi: Update to new lexer.
629
630 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
631
632         * tradcpp.c: New file.
633         * tradcif.y: New file.
634         * tradcif.c: New generated file.
635
636         * Makefile.in: Add rules to build tradcpp.o, tradcif.o,
637         $(srcdir)/tradcif.c.  Add tradcpp to STAGESTUFF and
638         dependencies of C.  Install tradcpp from install-common, in
639         $(libsubdir).
640
641 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
642
643         * cppinit.c: Include cppdefault.h.  Refer to
644         cpp_GCC_INCLUDE_DIR and cpp_GCC_INCLUDE_DIR_len, not directly
645         to GCC_INCLUDE_DIR and its length.
646         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
647         USER_LABEL_PREFIX, REGISTER_PREFIX, struct default_include,
648         STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT):  Move to
649         cppdefault.h.
650         (include_defaults_array): Move to cppdefault.c.
651
652         * cppdefault.h: New file.
653         * cppdefault.c: New file.
654
655         * Makefile.in (LIBCPP_OBJS): Add cppdefault.o.
656         (cppinit.o): Don't apply $(PREPROCESSOR_DEFINES) to this file.
657         (cppdefault.o): New rule; apply $(PREPROCESSOR_DEFINES) to
658         this file.
659
660 Thu Jul  6 18:30:36 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
661
662         * reload.c (push_reload): When seeing if can reuse a register,
663         check extra registers against widest of INMODE and OUTMODE.
664
665 2000-07-06  Neil Booth  <NeilB@earthling.net>
666
667         * cpplib.c: (_cpp_parse_assertion):  Perform hash lookups
668         based on full length of predicate.
669
670 2000-07-06  Hans-Peter Nilsson  <hp@axis.com>
671
672         * timevar.c: [HAVE_SYS_RESOURCE_H]: Include <sys/resource.h>.
673         [NEED_DECLARATION_GETRUSAGE]: Declare getrusage.
674
675 2000-07-05  Kazu Hirata  <kazu@hxi.com>
676
677         * h8300-proto.h: Fix formatting.
678         * h8300.c: Likewise.
679         * h8300.h: Likewise.
680
681 2000-07-05  Jim Wilson  <wilson@cygnus.com>
682
683         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): If FR_REGNO_P, disallow
684         CCmode.
685
686 2000-07-05  Rodney Brown  <RodneyBrown@pmsc.com>
687
688         * invoke.texi: Fix minor typos
689         * md.texi: Fix minor typos
690
691 2000-07-05  Zack Weinberg  <zack@wolery.cumb.org>
692
693         * cpplib.c (_cpp_parse_assertion): Fix buffer overrun.
694
695 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
696
697         * cpplex.c: Don't include sys/mman.h.
698         (cpp_push_buffer, cpp_pop_buffer): Moved to cpplib.c.
699
700         * cpplib.c: Include sys/mman.h and obstack.h.
701         (cpp_push_buffer): Moved from cpplex.c; allocate buffers on an
702         obstack.
703         (cpp_pop_buffer): Moved from cpplex.c; free buffers from an obstack.
704         (_cpp_unwind_if_stack): Now static, unwind_if_stack.  Don't
705         bother freeing if stack entries (they will be freed with their buffer).
706         (do_endif): Free if stack entries from the buffer obstack.
707         (push_conditional): Allocate if stack entries from the buffer obstack.
708
709         (find_answer): Rename to _cpp_find_answer.
710         (do_assert, do_unassert): Update.
711
712         * cpphash.h: Update prototypes.
713         (xobnew): New convenience macro.
714         * cpplib.h (struct cpp_reader): Add hash_ob and buffer_ob fields.
715         Update comments.
716         (struct cpp_hashnode): Remove disabled field.
717
718         * cppinit.c: Don't include hashtab.h or splay-tree.h.
719         (report_missing_guard): Moved to cppfiles.c.
720         (cpp_reader_init): Call cpp_init_stacks, cpp_init_macros,
721         cpp_init_includes.
722         (cpp_cleanup): Call cpp_cleanup_stacks, cpp_cleanup_macros,
723         cpp_cleanup_includes.  Don't destroy hashtab or
724         all_include_files here.
725         (cpp_finish): Use _cpp_report_missing_guards.
726
727         * cppfiles.c (report_missing_guard): Moved from cppinit.c.
728         (_cpp_init_include_table): Rename _cpp_init_includes.
729         (_cpp_cleanup_includes, _cpp_report_missing_guards): New.
730
731         * cppexp.c (parse_assertion): Update for new name of
732         find_answer.
733
734         * Makefile.in (cpplib.o, cpphash.o, cppinit.o): Update deps.
735
736 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
737
738         * cpplib.c (do_ident): s/VSPACE/EOF/
739
740 2000-07-05  Neil Booth  <NeilB@earthling.net>
741
742         * cpplex.c: Fix trigraph replacement within strings.
743
744 2000-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
745
746         * rs6000/aix.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier.
747
748         * xcoffout.c (assign_type_number): Constify.
749         (xcoffout_source_file): Add static prototype.  Don't needlessly
750         cast away const-ness.
751
752 2000-07-04  Jason Merrill  <jason@redhat.com>
753
754         * frame.h (frame_state): Move base_offset to end.
755
756 Mon Jul  3 21:31:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
757
758         * calls.c (emit_library_call_value_1): Revert previous change.
759
760 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
761
762         * fix-header.c (struct partial_proto): Remove unnecessary fields.
763         (recognized_extern, recognized_function, read_scan_file):
764         Update for new scheme.
765         (check_protection): It's still a multiple include guard even
766         if it doesn't always trigger.
767         * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
768         new scheme.
769         * scan.h: Declare struct cpp_token.  Update prototypes.
770
771 2000-07-03  Neil Booth  <neilb@earthling.net>
772             Zack Weinberg  <zack@wolery.cumb.org>
773
774         Complete overhaul of the lexer and macro expander.
775
776         * cpphash.c (object_defn, funct_defn, push_macro_expansion,
777         arg, arglist, argdata, reflist, collect_objlike_expansion,
778         collect_funlike_expansion, collect_params,
779         warn_trad_stringify, trad_stringify, duplicate_arg_p, add_pat,
780         unsafe_chars, macarg, compare_defs, special_symbol,
781         scan_arguments, stringify, funlike_macroexpand,
782         _cpp_quote_string, monthnames): Delete.
783         (cpp_lookup, _cpp_free_definition, dump_funlike_macro,
784         _cpp_create_definition, _cpp_dump_definition,
785         dump_hash_helper): Adjust.
786         (find_param, count_params, parse_define, var_args_str,
787         check_macro_redefinition, save_expansion): New.
788
789         * cpplex.c (skip_block_comment, skip_line_comment, parse_name,
790         parse_string, output_line_command, trigraph_replace,
791         lex_line, cpp_push_buffer, cpp_pop_buffer, cpp_output_tokens,
792         cpp_scan_buffer_nooutput, cpp_scan_buffer, cpp_free_toklist,
793         cpp_idcmp, _cpp_get_directive_token, _cpp_init_input_buffer,
794         _cpp_skip_rest_of_line): Modify.
795
796         (maybe_macroexpand, skip_comment, copy_comment, skip_string,
797         find_position, null_warning, bump_column, expand_name_space,
798         pedantic_whitespace, _cpp_output_list, _cpp_slice_toklist,
799         _cpp_squeeze_toklist, _cpp_scan_until, _cpp_skip_hspace,
800         _cpp_parse_name, _cpp_lex_token, cpp_get_non_space_token,
801         _cpp_prescan): Delete.
802
803         (dump_param_spelling, process_directive, lex_next,
804         is_macro_disabled, stringify_arg, expand_context_stack,
805         output_token, make_string_token, alloc_number_token,
806         special_symbol, duplicate_token, maybe_paste_with_next,
807         can_paste, prevent_macro_expansion, restore_macro_expansion,
808         get_temp_token, release_temp_tokens, quote_string,
809         token_names, token_spellings, _cpp_expand_name_space,
810         _cpp_glue_header_name, _cpp_reserve_name_space,
811         digraph_spellings, trigraph_ok, skip_whitespace, save_comment,
812         placemarker_token, eof_token, cpp_context, macro_args,
813         get_raw_token, parse_arg, parse_args, save_token,
814         push_arg_context, push_macro_context, pop_context,
815         do_pop_context, free_macro_args, _cpp_get_line,
816         _cpp_run_directive): New.
817
818         * cpplib.c (validate_else, parse_include, push_conditional,
819         pass_thru_directive, read_line_number, parse_ifdef,
820         detect_if_not_defined, _cpp_check_directive, do_define,
821         do_undef, do_include, do_import, do_include_next, do_error,
822         do_warning, do_ident, do_pragma, pragma_dispatch, gcc_pragmas,
823         top_pragmas, do_pragma_gcc, do_pragma_implementation,
824         do_pragma_poison, do_pragma_system_header,
825         do_pragma_dependency, do_sccs, do_ifdef, do_ifndef, do_else,
826         dl_elif, do_endif, _cpp_unwind_if_stack, do_assert,
827         do_unassert, cpp_define, cpp_undef, cpp_assert, cpp_unassert,
828         cpp_defined): Update for new scheme.
829         (strtoul_for_line, get_define_node, dump_macro_name,
830         _cpp_check_linemarker, _cpp_parse_assertion): New.
831         (_cpp_handle_directive, do_pragma_default): Delete.
832
833         * cpphash.h (struct predicate): Now struct answer.
834         (enum spell_type, struct token_spelling, struct directive,
835         directive_handler): New.
836         Update prototypes.  Remove unused macros.
837         * cpplib.h: Update prototypes.  Remove unused macros,
838         structure definitions, and fields.
839
840         * cpperror.c (print_containing_files, v_message): Adjust.
841         * cppexp.c (parse_assertion, lex, parse_escape,
842         _cpp_parse_expr): Adjust.
843         * cppfiles.c (open_include_file, _cpp_execute_include,
844         _cpp_compare_file_date, cpp_read_file, read_include_file):
845         Adjust.
846         * cppinit.c (dump_special_to_buffer): Delete.
847         (append_include_chain, merge_include_chains, cpp_reader_init,
848         cpp_cleanup, initialize_builtins, builtin_array, cpp_start_read,
849         cpp_finish, handle_option, print_help): Adjust.
850         * cppmain.c (main): Adjust.
851
852 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
853
854         * cppspec.c (lang_specific_driver): Use double quotes in error
855         message.
856
857 Mon Jul  3 16:53:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
858
859         * calls.c (emit_library_call_value_1): Use valreg instead
860         of hard_libcall_value.
861
862 2000-07-03  Geoff Keating  <geoffk@cygnus.com>
863
864         * config/rs6000/rs6000.c (rs6000_emit_move): New function.
865         * config/rs6000/rs6000-proto.h: Prototype rs6000_emit_move.
866         * config/rs6000/rs6000.md (movsi): Use rs6000_emit_move.
867         (movhi): Likewise.
868         (movqi): Likewise.
869         (movdf): Likewise.
870         (movsf): Likewise.
871         (movdi): Likewise.
872         (movti): Likewise.
873
874         * expmed.c (expand_mult_highpart): Use op1 instead of wide_op1 when
875         mode instead of wider_mode is being used.
876
877 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
878
879         * config/i386/i386.md (movstrictqi_xor): Use 'q' constraint instead
880         of 'r'. Use q_regs_operand.
881         (andsi_1+2): Use q_regs_operand.
882
883 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
884
885         * builtins.c (get_memory_rtx): Always put into alias set 0.
886
887 2000-07-03  Nick Clifton  <nickc@cygnus.com>
888
889         * config/arm/arm.md: Fix post increment and pre increment
890         peepholes so that they do not generate UNPREDICATBLE opcodes.
891         (ie ones where the increment clobbers the source/destination).
892
893 2000-07-01  Marek Michalkiewicz  <marekm@linux.org.pl>
894
895         * config/avr/avr.c (out_adj_frame_ptr): Make "frame pointer
896         change too big for -mtiny-stack" a warning, if larger than 63.
897         (out_set_stack_ptr): Change the logic so -mno-interrupts is
898         always safe to use on possible future devices.
899         (function_prologue): Write SPH before SPL, for consistency.
900         If interrupt_func_p true, we know we have enabled interrupts.
901         (avr_num_arg_regs): New function.  Round up to even number of
902         bytes if no -mpack-args or if calling a libgcc function.
903         (function_arg, function_arg_advance): Use it.
904         (output_movsisf, ashlsi3_out, ashrsi3_out, lshrsi3_out):
905         Output "movw" if available.
906         (out_tsthi, out_tstsi, ashlqi3_out, lshrqi3_out): Change uses
907         of TEST_HARD_REG_CLASS macro to test_hard_reg_class function.
908         (asm_output_section_name): Add blanks for consistent output.
909         (encode_section_info): Set TREE_READONLY for progmem data to
910         avoid gas warnings about changed section attributes.
911         (avr_hard_regno_mode_ok): Force non-QImode data to start in
912         even numbered registers on devices with "movw".
913         * config/avr/avr.h (MASK_*): Define bits for target_flags.
914         (TARGET_SWITCHES): Mark help strings for translation.
915         Add new -mpack-args and -menhanced switches.
916         (TARGET_OPTIONS): Mark help strings for translation.
917         (progmem_section): Add section attributes.
918         * config/avr/avr.md (*movhi, call_insn, call_value_insn):
919         Output "movw" if available.
920         (mulqi3, mulqihi3, umulqihi3, mulhi3, *tablejump_enh):
921         New patterns.
922         * config/avr/libgcc.S (_mulqi3, _divqi3): Update to the new
923         call convention (arguments aligned on even registers).
924         (_cleanup, _exit): Make weak symbols libc can override.
925
926 2000-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
927
928         * fp-bit.h: New file.
929
930         * fp-bit.c: Move common code, prototypes, etc into fp-bit.h.
931         Comment #endif statements.
932         (__thenan_sf, __thenan_df): Add missing braces around initializer.
933
934 Mon Jul  3 00:32:47 2000  Jeffrey A Law  (law@cygnus.com)
935
936         * gcse.c (compute_pre_data): Compute ae_kill using other local
937         properties instead of calling compute_ae_kill.
938
939         * alias.c (init_alias_analysis): Do not call
940         prologue_epilogue_contains until after reload has completed.
941
942 2000-07-02  Benjamin Chelf  <chelf@codesourcery.com>
943
944         * c-common.h (genrtl_begin_compound_stmt): Remove declaration.
945         (genrtl_finish_compound_stmt): Likewise.
946         (genrtl_compound_stmt): Change to return void.
947
948         * c-semantics.c (genrtl_begin_compound_stmt): Remove function and
949         move code from here to ...
950         (genrtl_compound_stmt): ... here.
951         (genrtl_finish_compound_stmt): Remove.
952         (expand_stmt): Add comment.
953
954 2000-07-02  Zack Weinberg  <zack@wolery.cumb.org>
955
956         * c-typeck.c (build_indirect_ref): Use COMPLETE_OR_VOID_TYPE_P
957         and VOID_TYPE_P.
958
959 2000-07-02  Jakub Jelinek  <jakub@redhat.com>
960
961         * cpplib.h (struct cpp_reader): New field include_depth.
962         (struct cpp_printer): Rename last_bsd to last_id.
963         * cppfiles.c (read_include_file): Bump include_depth.
964         * cpplex.c (cpp_pop_buffer): Decrement include_depth.
965         (output_line_command): Output correct #line if a header
966         is including itself and is not protected against multiple inclusion.
967         Use include_depth instead of buffer_stack_depth, last_id instead of
968         last_bsd.
969         * cppinit.c (cpp_start_read): Initialize last_id instead of
970         last_bsd.
971
972 2000-07-01  Benjamin Chelf  <chelf@codesourcery.com>
973
974         * Makefile.in (C_AND_OBJC_OBJS): Added c-semantics.o.
975         (c-semantics.o): New target.
976
977         * c-common.h (TREE_LANG_FLAG_?): Added documentation.
978         (genrtl_do_pushlevel): Moved from cp/cp-tree.h.
979         (genrtl_clear_out_block): Likewise.
980         (genrtl_goto_stmt): Likewise.
981         (genrtl_expr_stmt): Likewise.
982         (genrtl_decl_stmt): Likewise.
983         (genrtl_if_stmt): Likewise.
984         (genrtl_while_stmt): Likewise.
985         (genrtl_do_stmt): Likewise.
986         (genrtl_return_stmt): Likewise.
987         (genrtl_for_stmt): Likewise.
988         (genrtl_break_stmt): Likewise.
989         (genrtl_continue_stmt): Likewise.
990         (genrtl_scope_stmt): Likewise.
991         (genrtl_switch_stmt): Likewise.
992         (genrtl_case_label): Likewise.
993         (genrtl_begin_compound_stmt): Likewise.
994         (gerntl_finish_compound_stmt): Likewise.
995         (genrtl_compound_stmt): Likewise.
996         (genrtl_asm_stmt): Likewise.
997         (genrtl_decl_cleanup): Likewise.
998         (DECL_ANON_UNION_ELEMS): Likewise.
999         (emit_local_var): Likewise.
1000         (make_rtl_for_local_static): Likewise.
1001         (expand_cond): Likewise.
1002         (expand_stmt): Likewise.
1003         (c_expand_return): Likewise.
1004         (c_expand_start_case): Likewise.
1005         (do_case): Likewise.
1006         (COMPOUND_STMT_NO_SCOPE): Likewise.
1007         (c_expand_asm_operands): Likewise.
1008         (NEW_FOR_SCOPE_P): New macro.
1009         (expand_expr_stmt_fn): New type.
1010
1011         (set_current_function_name_declared): Likewise.
1012         (current_function_name_declared): Likewise.
1013         (lang_expand_stmt): Likewise.
1014         (stmts_are_full_exprs_p): Likewise.
1015         (anon_aggr_type_p): Likewise.
1016         (lang_expand_expr_stmt): Likewise.
1017         (build_case_label): Likewise.
1018
1019         * c-decl.c (lang_expand_expr_stmt): Initialize.
1020         (stmts_are_full_exprs_p): Define.
1021         (current_function_name_declared): Likewise.
1022         (do_case): Likewise.
1023         (lang_expand_stmt): Likewise.
1024         (set_current_function_name_declared): Likewise.
1025         (anon_aggr_type_p): Likewise.
1026
1027         * c-semantics.c: New file.
1028         (expand_cond): Moved from cp/semantics.c.
1029         (genrtl_do_pushlevel): Likewise.
1030         (genrtl_clear_out_block): Likewise.
1031         (genrtl_goto_stmt): Likewise.
1032         (genrtl_expr_stmt): Likewise.
1033         (genrtl_decl_stmt): Likewise.
1034         (genrtl_if_stmt): Likewise.
1035         (genrtl_while_stmt): Likewise.
1036         (genrtl_do_stmt): Likewise.
1037         (genrtl_return_stmt): Likewise.
1038         (genrtl_for_stmt): Likewise.
1039         (genrtl_break_stmt): Likewise.
1040         (genrtl_continue_stmt): Likewise.
1041         (genrtl_scope_stmt): Likewise.
1042         (genrtl_switch_stmt): Likewise.
1043         (genrtl_case_label): Likewise.
1044         (genrtl_begin_compound_stmt): Likewise.
1045         (genrtl_finish_compound_stmt): Likewise.
1046         (genrtl_compound_stmt): Likewise.
1047         (genrtl_asm_stmt): Likewise.
1048         (genrtl_decl_cleanup): Likewise.
1049         (make_rtl_for_local_static): Moved from cp/decl.c.
1050         (emit_local_var): Likewise.
1051         (expand_stmt): Define.
1052
1053         * c-tree.h: (c_expand_asm_operands): Moved to c-common.h.
1054         (c_expand_return): Likewise.
1055         (c_expand_start_case): Likewise.
1056
1057 2000-07-01  Richard Henderson  <rth@cygnus.com>
1058
1059         * config/ia64/ia64.c (symbolic_operand): Reject CONST expressions
1060         with the low 13 bits set.
1061         (move_operand): Check for CONST|SYMBOL_REF|LABEL_REF directly.
1062         * config/ia64/ia64.md (movdi): Likewise.  Expand a CONST with one
1063         of the low 13 bits into a CONST plus an adddi3.
1064         (load_symptr): Set RTX_UNCHANGING_P.
1065
1066 2000-06-30  Mark Mitchell  <mark@codesourcery.com>
1067
1068         * Makefile.in (c-common.o): Don't depend on c-tree.h or c-lex.h.
1069         * c-common.c (ridpointers): Declare.
1070         * c-common.h (enum rid): Declare.
1071         (NORID): Likewise.
1072         (ridpointers): Likewise.
1073         * c-lex.c (ridpointers): Don't declare.
1074         (init_lex): Initialize ridpointers.
1075         * c-lex.h (enum rid): Don't declare.
1076         (NORID): Likewise.
1077         (RID_FIRST_MODIFIER): Likewise.
1078         (ridpointers): Likewise.
1079
1080 2000-06-30  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1081
1082         * pa/som.h (ASM_WEAKEN_LABEL): Export weak data symbols so that they
1083         have global scope.
1084
1085 2000-06-30  Martin von Loewis  <loewis@informatik.hu-berlin.de>
1086
1087         * invoke.texi (-Wreturn-type): In C++, a missing return type is
1088         always an error.
1089
1090 2000-06-30  Catherine Moore  <clm@cygnus.com>
1091
1092         * c-common.c (decl_attributes):  Differentiate between
1093         types and type decls for alignment.
1094
1095 2000-06-30  Nathan Sidwell  <nathan@codesourcery.com>
1096
1097         * cpp.texi: Document #pragma GCC dependency
1098         * cppfiles.c (open_include_file): Set date to unknown.
1099         (_cpp_compare_file_date): New function.
1100         (read_include_file): Set file date.
1101         * cpphash.h (struct include_file): Add date member.
1102         (_cpp_compare_file_date): Prototype.
1103         * cpplib.c (parse_include): Add trail parameter. Adjust.
1104         (do_include): Adjust parse_include call.
1105         (do_import): Likewise.
1106         (do_include_next): Likewise.
1107         (gcc_pragmas): Add dependency pragma.
1108         (do_pragma_dependancy): New pragma.
1109
1110 2000-06-29  Jason Merrill  <jason@redhat.com>
1111
1112         * dwarf2out.c (output_loc_operands): Don't abort on codes that have
1113         no operands.
1114
1115 2000-06-29  Jim Wilson  <wilson@cygnus.com>
1116
1117         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Return NO_REGS for
1118         a volatile mem and FR_REGS.
1119
1120 2000-06-29  Mark Mitchell  <mark@codesourcery.com>
1121
1122         * c-common.c: Include c-common.h, not c-lex.h or c-tree.h.
1123         * c-common.h (flag_const_strings): Declare.
1124         (warn_format): Likewise.
1125         (flag_traditional): Likewise.
1126         (flag_isoc99): Likewise.
1127         (warn_parentheses): Likewise.
1128         (warn_conversion): Likewise.
1129         (C_TYPE_OBJECT_P): Likewise.
1130         (C_TYPE_INCOMPLETE_P): Likewise.
1131         (C_TYPE_FUNCTION_P): Likewise.
1132         (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
1133         (C_EXP_ORIGINAL_CODE): Likewise.
1134         (build_unary_op): Likewise.
1135         (build_binary_op): Likewise.
1136         (lvalue_p): Likewise.
1137         (default_conversion): Likewise.
1138         (common_type): Likewise.
1139         * c-tree.h (C_TYPE_OBJECT_P): Remove.
1140         (C_TYPE_INCOMPLETE_P): Likewise.
1141         (C_TYPE_FUNCTION_P): Likewise.
1142         (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
1143         (C_EXP_ORIGINAL_CODE): Likewise.
1144         (common_type): Likewise.
1145         (default_conversion): Likewise.
1146         (build_binary_op): Likewise.
1147         (build_unary_op): Likewise.
1148         (lvalue_p): Likewise.
1149         (flag_const_strings): Likewise.
1150         (warn_format): Likewise.
1151         (warn_conversion): Likewise.
1152         (flag_traditional): Likewise.
1153         (flag_isoc99): Likewise.
1154         (warn_parentheses): Likewise.
1155
1156 2000-06-29  James E. Wilson  <wilson@cygnus.com>
1157
1158         * config/ia64/linux.h (LINK_SPEC): Change so.1 to so.2.
1159
1160         * config/ia64/ia64.h (MODES_TIEABLE_P): Only tie if mode class is the
1161         same.  Only tie XFmode with XFmode.
1162
1163 2000-06-29  Zack Weinberg  <zack@wolery.cumb.org>
1164
1165         * c-decl.c, timevar.c, tlink.c: Include intl.h.
1166         * Makefile.in: Update deps.
1167
1168 2000-06-29  Andrew Haley  <aph@cygnus.com>
1169
1170         * toplev.c (main): On an IA-64, make flag_unwind_tables defauit
1171         to true.
1172
1173 2000-06-29  Andrew Haley  <aph@cygnus.com>
1174
1175         * config/ia64/linux.h (JMP_BUF_SIZE): Size is in Pmode units, not
1176         bytes: remove the multiply by 8.
1177
1178 2000-06-29  Philipp Thomas  <pthomas@suse.de>
1179
1180         * rtl.c : Revert NLS changes.
1181         * gcc.c : Fix bug in display_help introced by my last changes.
1182
1183 Wed Jun 28 21:09:33 2000   Raja R Harinath <harinath@cs.umn.edu>
1184
1185         * dbxout.c (dbxout_symbol, case RESULT_DECL, VAR_DECL): Use
1186         DECL_CONTEXT, not DECL_FIELD_CONTEXT.
1187
1188 2000-06-29  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1189
1190         * flow.c (flow_depth_first_order_compute): Fix algorithm.
1191
1192 2000-06-28  Philipp Thomas  <pthomas@suse.de>
1193
1194         * c-decl.c : Mark strings for translation.
1195         (parmlist_tags_warning): Use distinct messages instead
1196         of conditional expressions.
1197         * diagnostic.c (v_message_with_decl): Mark string for translation.
1198         * gcc.c: Mark messages for translation.
1199         (display_help): Combine messages into one string where necessary.
1200         * mips-tfile: Add intl.h. Mark messages for translation.
1201         * rtl.c (fatal_with_file_and_line): Modify function for NLS. Mark
1202         messages for translation.
1203         * timevar.c: Mark messages for translation.
1204         * tlink.c: Likewise.
1205         * toplev.c: Likewise.
1206
1207 Wed Jun 28 15:39:26 2000  Donn Terry (donnte@microsoft.com)
1208
1209         * i386-interix.h (STRIP_NAME_ENCODING): Declare _new_name properly.
1210
1211         * alpha/alpha-interix.h: Delete redundant -Asystem(interix),
1212         use -isystem instead of -idirafter.
1213         * i386/i386-interix.h: Likewise.
1214
1215 2000-06-28  Jason Merrill  <jason@redhat.com>
1216
1217         * dwarf2out.c (output_loc_operands): Don't support >1 byte output
1218         unless DWARF2_DEBUGGING_INFO is defined.
1219         (ASM_OUTPUT_DWARF_*): Wrap normal output defs with #ifndefs.
1220
1221 2000-06-28  Richard Henderson  <rth@cygnus.com>
1222
1223         * config/alpha/alpha.c (summarize_insn): Ignore SCRATCH.
1224
1225 2000-06-28  Jakub Jelinek  <jakub@redhat.com>
1226
1227         * cpplex.c (output_line_command): Output correct #line if a header
1228         is including itself and is not protected against multiple inclusion.
1229
1230 2000-06-28  Zack Weinberg  <zack@wolery.cumb.org>
1231
1232         * cppfiles.c (open_include_file): If open(2) returns EMFILE or
1233         ENFILE, close all cached file descriptors and try again.
1234         (_cpp_execute_include): Keep a count of the number of times
1235         each header is included.
1236         (close_cached_fd): New function.
1237         * cpphash.h (struct include_file): Rename before to
1238         include_count; all users updated.  Make include_count and sysp
1239         unsigned short.
1240         * cppinit.c (cpp_finish): If -H, report headers that could use
1241         reinclude guards.
1242         (report_missing_guard): New function.
1243
1244 Wed Jun 28 14:46:58 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1245
1246         * i386.md (prologue_set_got): Set length_immediate field.
1247         (testqi_ccno_1):  Add missing '@' character.
1248
1249 2000-06-27  Jason Merrill  <jason@redhat.com>
1250
1251         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Use
1252         DWARF_FRAME_REGNUM.
1253
1254 2000-06-27  Andrew Macleod <amacleod@cygnus.com>
1255
1256         * dwarf2out.c (ASM_OUTPUT_DWARF_DATA2): Provide default when no
1257         unsigned macros available.
1258
1259 2000-06-27  Richard Henderson  <rth@cygnus.com>
1260
1261         * config/ia64/ia64.c (emit_insn_group_barriers): Special case
1262         epilogue_deallocate_stack.
1263
1264         * config/ia64/ia64.c (ia64_print_operand) [case D]: Emit
1265         completers for UNORDERED and ORDERED as well.
1266         * config/ia64/ia64.md (bunordered, bordered): New.
1267         (sunordered, sordered): New.
1268
1269 Tue Jun 27 12:14:12 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1270
1271         * genattrtab.c (write_attr_value): Do not abort for CONST_INT operands.
1272         * i386.c (ix86_attr_length_default): Kill.
1273         (ix86_attr_length_immediate_default, ix86_attr_length_address_default):
1274         New.
1275         * i386-protos.h (ix86_attr_length_default): Kill
1276         (ix86_attr_length_immediate_default, ix86_attr_length_address_default):
1277         Add prototype
1278         * i386.md (attribute type): Add "test".
1279         (attribute length_prefix): Kill.
1280         (attribute length_opcode): Kill.
1281         (attribute i387, mode, length_immediate, length_address, prefix_data16,
1282         prefix_rep, prefix_0f, modrm): New.
1283         (attribute length): Compute using the new attributes.
1284         (attribute pent_prefix): New.
1285         (attribute pent_pair): Compute using pent_prefix.
1286         (all insn patterns): Set mode,modrm and immediate_length attributes where
1287         needed.
1288         (cmpsi patterns): Compute sizes propertly for test instruction.
1289         (movsi, movhi patterns): Compute sizes propertly for eax shortcuts.
1290         (movstricthi_xor, movstrictqi_xor): New patterns.
1291         (andsi/andhi): Use splitters to generate xor instructions.
1292         (xorqi_ext_1): New pattern.
1293         (movstricthi->movstricthi_xor peep2): New.
1294
1295 Tue Jun 27 12:03:03 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1296
1297         * i386.md (addqi_low_1): Remove.
1298
1299 2000-06-27  Philipp Thomas  <pthomas@suse.de>
1300
1301         * 1750a.h: Mark help strings for options/switches for translation.
1302         * a29k.h: Likewise.
1303         * alpha.h: Likewise.
1304         * arm.h: Likewise.
1305         * pe.h: Likewise.
1306         * riscix.h: Likewise.
1307         * c4x.h: Likewise.
1308         * clipper.h: Likewise.
1309         * convex.h: Likewise.
1310         * elxsi.h: Likewise.
1311         * fr30.h: Likewise.
1312         * fx80.h: Likewise.
1313         * h8300.h: Likewise.
1314         * i370.h: Likewise.
1315         * cygwin.h: Likewise.
1316         * dgux.h: Likewise.
1317         * djgpp.h: Likewise.
1318         * i386.h: Likewise.
1319         * osf1elf.h: Likewise.
1320         * osfrose.h: Likewise.
1321         * sco5.h: Likewise.
1322         * win32.h: Likewise.
1323         * i860.h: Likewise.
1324         * paragon.h: Likewise.
1325         * i960.h: Likewise.
1326         * ia64.h: Likewise.
1327         * m32r.h: Likewise.
1328         * mcore.h: Likewise.
1329         * mips.h: Likewise.
1330         * mn10300.h: Likewise.
1331         * ns32k.h: Likewise.
1332         * pdp11.h: Likewise.
1333         * pj.h: Likewise.
1334         * aix.h: Likewise.
1335         * aix41.h: Likewise.
1336         * aix43.h: Likewise.
1337         * beos.h: Likewise.
1338         * rs6000.h: Likewise.
1339         * sysv4.h: Likewise.
1340         * linux.h: Likewise.
1341         * linux64.h: Likewise.
1342         * sp64-elf.h: Likewise.
1343         * sparc.h: Likewise.
1344         * splet.h: Likewise.
1345         * v850.h: Likewise.
1346         * convex.h (TARGET_SWITCHES): Provide descriptions and mark them
1347         for translation.
1348         * sp86x-aout.h: Remove bogus first definition of SUBTARGET_SWITCHES.
1349         Properly document option and mark for translation.
1350         * sp86x-elf.h: Likewise.
1351
1352 2000-06-27  Bernd Schmidt  <bernds@cygnus.co.uk>
1353
1354         Add MMX and SSE registers to i386 machine description.
1355         * i386-protos.h (ix86_constant_alignment, ix86_data_alignment,
1356         ix86_local_alignment): Declare.
1357
1358         * i386.h (TARGET_MMX, TARGET_SSE): New.
1359         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS,
1360         REG_ALLOC_ORDER, HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
1361         REG_CLASS_NAMES, REG_CLASS_CONTENTS,REG_CLASS_FROM_LETTER,
1362         enum reg_class, HI_REGISTER_NAMES): Added MMX/SSE registers.
1363         (FIRST_SSE_REG, LAST_SSE_REG, SSE_REGNO_P): New.
1364         (FIRST_MMX_REG, LAST_MMX_REG, MMX_REGNO_P, MMX_REG_P): New macros.
1365         (RETURN_IN_MEMORY): Handle MMX/SSE.
1366         (REG_PARM_STACK_SPACE): Added so the first three TImode parameters
1367         also get stack space.
1368         (MUST_PASS_IN_STACK): Added TImode to the default definition.
1369         (CUMULATIVE_ARGS): Added sse_nregs, sse_regno and sse_words.
1370         (MMX_REGISTER_NAMES): New.
1371         (ALIGN_MODE_128): New macro.
1372         (CONSTANT_ALIGNMENT): Code moved out-of-line; just call the function.
1373         (DATA_ALIGNMENT): Likewise.
1374         (LOCAL_ALIGNMENT): Likewise.
1375         (CONDITIONAL_REGISTER_USAGE): Make MMX/SSE regs fixed if not
1376         TARGET_MMX/TARGET_SSE.
1377         (VALID_SSE_REG_MODE, VALID_MMX_REG_MODE): New macros.
1378         (REG_CLASS_FROM_LETTER): 'y' for MMX regs.
1379         (SECONDARY_MEMORY_NEEDED): Be conservative about copying between
1380         SSE/MMX regs and something else.
1381         (CLASS_MAX_NREGS): 1 for SSE and MMX regs.
1382         (REGISTER_MOVE_COST): 10 if trying to move between MMX and SSE regs,
1383         3 if moving between MMX regs and something else.
1384
1385         * i386.c (reg_class): Add SSE_REGS, MMX_REGS.
1386         (regclass_map): Add MMX/SSE registers.
1387         (print_operand): Add code to print XMMWORD as appropriate.
1388         (ix86_split_movdi): Abort for MMX regs.
1389         (init_cumulative_args): Also allow SSE_REGS
1390         (function_arg_advance, function_arg): Likewise
1391         (print_reg): Support 'm'.  Add case for TImode.
1392         (override_options): TARGET_SSE implies TARGET_MMX.
1393         (ix86_constant_alignment, ix86_data_alignment, ix86_local_alignment):
1394         New functions.
1395
1396         * config/i386/unix.h (VALUE_REGNO): VECTOR_MODE values go to
1397         FIRST_SSE_REG.
1398         * config/i386/ptx4-i.h (RETURN_IN_MEMORY): Return MMX values in
1399         memory.
1400         * config/i386/sysv4.h (RETURN_IN_MEMORY): Likewise.
1401         * config/i386/i386elf.h (RETURN_IN_MEMORY): Likewise.
1402
1403 2000-06-26  Geoff Keating  <geoffk@cygnus.com>
1404
1405         * ssa.c (struct rename_set_data): Change the name of field
1406         'set_dest' to 'old_reg'.  Add comments.
1407         (struct rename_context): Change the name of 'set_data' to
1408         'new_renames'.  Add new field 'done_renames'.
1409         (create_delayed_rename): New function.
1410         (apply_delayed_renames): New function.
1411         (rename_insn_1): Use the new functions.  Handle CLOBBERS.  Handle
1412         SUBREGs and similar by emitting a move.
1413         (new_registers_for_updates): Delete, functionality moved to
1414         apply_delayed_renames.
1415         (rename_block): Handle moves emitted by rename_insn_1 by putting
1416         them into a SEQUENCE with the original insn.  Add sanity checks
1417         and comments.
1418         (rename_equivalent_regs_in_insn): Don't handle SUBREGs specially.
1419         (rename_equivalent_regs): Expand SEQUENCEs out to individual insns.
1420
1421 2000-06-26  Andrew Macleod <amacleod@cygnus.com>
1422             Jason Merrill <jason@redhat.com>
1423
1424         * dwarf2.h (enum dwarf_call_frame_info): Add
1425         DW_CFA_def_cfa_expression.
1426         * dwarf2out.c (union dw_cfi_oprnd_struct): Add a pointer to a
1427         dw_loc_descr_struct entry.
1428         (struct cfa_loc): New structure to track a CFA location.
1429         (lookup_cfa): Take a cfa_loc parameter instead of a reg and an offset.
1430         (lookup_cfa_1): Take a cfa_loc parameter instead of a reg and an
1431         offset, plus handle DW_CFA_def_cfa_expression.
1432         (def_cfa_1): Use to be dwarf2out_def_cfa, only now it uses a
1433         cfa_loc record.
1434         (dwarf2out_def_cfa): Entry point maintained for compatability.
1435         (dwarf_cfi_name): Add DW_CFA_def_cfa_expression.
1436         (cfa_reg, cfa_offset): Replace with cfa_loc record 'cfa'.
1437         (cfa_store_reg, cfa_store_offset): Replace with cfa_loc 'cfa_store'.
1438         (initial_return_save, dwarf2out_stack_adjust): Use cfa.reg, not
1439         cfa_reg.
1440         (dwarf2out_frame_debug_expr): Use new cfa_loc records. Recognize rtl
1441         sequences for the new DW_CFA_def_cfa_expression record.
1442         (dwarf2out_frame_debug): Use new variables/fields.A
1443         (output_cfi): Handle DW_CFA_def_cfa_expression.
1444         (output_cfa_loc): New function to generate a CFI record for
1445         DW_CFA_def_cfa_expression.
1446         (get_cfa_from_loc_descr): New function to get a cfa_loc record from
1447         a dw_loc_descr sequeunce.
1448         (build_loc_descr): Build a dw_loc_descr from a cfa_loc record.
1449         (dwarf_stack_op_name, new_loc_descr, add_loc_descr, size_of_loc_descr,
1450         size_of_locs, output_loc_operands, output_loc_sequence): Move into
1451         unwind info section.
1452         * frame.h (frame_state): Add base_offset and indirect fields.
1453         * frame-dwarf2.c (decode_stack_op): New function to interpret a
1454         dw_loc_descr operation.
1455         (execute_cfa_insn): Add support for DW_CFA_def_cfa_expression.
1456         (struct frame_state): Add base offset and indirect fields.
1457         * libgcc2.c (next_stack_level): Support indirect loading for CFA.
1458
1459 2000-06-26  Joseph S. Myers  <jsm28@cam.ac.uk>
1460
1461         * c-decl.c (grokdeclarator): Don't warn about `long long' in C99.
1462         Make warnings about implicit int be pedwarns in C99.  Don't warn
1463         about duplicate type qualifiers in C99.
1464         (start_function): Make warning about implict int return type be a
1465         pedwarn in C99.
1466         * c-lex.c (yylex): Don't warn about `long long' in C99.
1467         * c-typeck.c (c_expand_return): In C99, always pedwarn about
1468         `return' with no value in function returning non-void.
1469
1470 2000-06-26  Richard Henderson  <rth@cygnus.com>
1471
1472         * c-typeck.c (pedwarn_c99): New.
1473         * diagnostic.c (verror, vwarning, vpedwarn): Export.
1474         * toplev.h: Prototype them.
1475
1476 2000-06-26  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1477
1478         * c-typeck.c (digest_init): Return error_mark_node node when
1479         TREE_TYPE (init)  == error_mark_node.
1480
1481 2000-06-26  Philipp Thomas  <pthomas@suse.de>
1482
1483         * aclocal.m4 (AM_WITH_NLS): Don't set MSGFMT or GMSGFMT to no,
1484         test for msgfmt without path instead.
1485         * configure: Rebuilt.
1486
1487 2000-06-25 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
1488
1489         * gengenrtl.c (special_rtx): Fix typo in comment.
1490
1491 2000-06-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1492
1493         * mklibgcc.in (LIB2FUNCS): Add missing space.
1494
1495 2000-06-24  Bernd Schmidt  <bernds@cygnus.co.uk>
1496
1497         * tree.h (enum tree_index): Add vector type nodes.
1498         Add accessor macros for them.
1499         (TYPE_REPRESENATION_TYPE): New macro.
1500         * tree.c (build_common_tree_nodes_2): Build these nodes.
1501         (finish_vector_type): New function.
1502         * c-common.c (type_for_mode): Handle vector modes.
1503         * tm.texi (VECTOR_MODE_SUPPORTED_P): Document.
1504
1505         * dbxout.c (dbxout_type): Handle VECTOR_TYPEs.
1506         * dwarf.h (enum dwarf_fundamental_type): Add 128 bit integers.
1507         * dwarf2out.c (lookup_type_die): Handle VECTOR_TYPEs.
1508         (gen_type_die): Likewise.
1509         * dwarfout.c (dwarf_fund_type_name): Handle 128 bit integers.
1510         (fundamental_type_code): Likewise.
1511         (type_is_fundamental): VECTOR_TYPEs aren't.
1512         (output_type): Handle VECTOR_TYPEs.
1513
1514 2000-06-25  Kazu Hirata  <kazu@hxi.com>
1515
1516         * config/arm.c: Fix a comment typo.
1517         * config/arm.h: Likewise.
1518
1519 2000-06-25  Philipp Thomas  <pthomas@suse.de>
1520
1521         * aclocal.m4 (AM_WITH_NLS): Set create_catalogs=no if no catalog
1522         compiler found.
1523         AM_GNU_GETTEXT: Don't set CATALOGS if create_catalogs=no.
1524         * configure: Rebuilt.
1525
1526 2000-06-25  John David Anglin  <dave.anglin@nrc.ca>
1527
1528         * config/vax/vax.h (TARGET_SWITCHES): Provide descriptions.
1529
1530 2000-06-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1531
1532         * mklibgcc.in: Prefer LIB1ASMFUNCS over LIB2FUNCS when generating
1533         libgcc.a.
1534
1535 2000-06-24  Marc Espie <espie@cvs.openbsd.org>
1536
1537         * collect2.c (resolve_lib_name): Move '/' check out of loop.
1538
1539 2000-06-24  Dirk Duellmann  <Dirk.Duellmann@cern.ch>
1540
1541         * ginclude/stddef.h (NULL): define for non-gnu C++ parsers as 0.
1542
1543 2000-06-24  Jakub Jelinek  <jakub@redhat.com>
1544
1545         * stmt.c (expand_decl_cleanup): Emit a dummy insn after
1546         last_unconditional_cleanup.
1547
1548 2000-06-24  Bernd Schmidt  <bernds@cygnus.co.uk>
1549
1550         * tree.def (VECTOR_TYPE): New node type.
1551         * tree.h: Adjust some comments to reflect addition of vector types.
1552         (TYPE_VECTOR_SUBPARTS): New macro.
1553         * stor-layout.c (layout_type): Handle VECTOR_TYPE.
1554         * c-convert.c (convert): Likewise.
1555         * convert.c (convert_to_integer): Handle vector modes.
1556         (convert_to_vector): New function.
1557         * convert.h (convert_to_vector): Declare.
1558         * expr.c (convert_move): Handle vector modes.
1559         * expmed.c (extract_bit_field): Don't abort for vector modes.
1560
1561 2000-06-24  Marek Michalkiewicz  <marekm@linux.org.pl>
1562
1563         * config/avr/avr-protos.h (avr_hard_regno_mode_ok): New prototype.
1564         * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr):
1565         New functions, common code moved from function_{prologue,epilogue}
1566         and extended to support the -mtiny-stack option.
1567         (function_prologue, function_epilogue): Use them.
1568         Use lo8/hi8 consistently for asm output readability.
1569         (avr_hard_regno_mode_ok): New function.
1570         * config/avr/avr.h (TARGET_SWITCHES): Fix typo.  Add -mtiny-stack.
1571         (UNITS_PER_WORD): Define as 4 (not 1) when compiling libgcc2.c.
1572         (HARD_REGNO_MODE_OK): Call the avr_hard_regno_mode_ok function.
1573         * config/avr/avr.md (*mov_sp_r): Add support for -mtiny-stack.
1574         Write SPH before SPL.
1575         (*movqi): No need to disable interrupts for just one "out"
1576         in alternative 5.  Change length attribute from 4 to 1.
1577         * config/avr/libgcc.S (__prologue_saves__, __epilogue_restores__):
1578         Write SPH before SPL.
1579
1580 2000-06-24  Bernd Schmidt  <bernds@cygnus.co.uk>
1581
1582         * rtl.texi (Vector Operations): New node.
1583         (Arithmetic): Add ss_plus, us_plus, ss_minus, us_minus.
1584         (Conversions): Add ss_truncate, us_truncate.
1585         * rtl.def (VEC_MERGE, VEC_SELECT, VEC_CONCAT, VEC_REORDER,
1586         VEC_CONST, VEC_DUPLICATE, SS_PLUS, SS_MINUS, SS_TRUNCATE,
1587         US_TRUNCATE): New rtx codes.
1588         * machmode.def: Add vector modes.
1589         * machmode.h (enum mode_class): Add MODE_VECTOR_INT and
1590         MODE_VECTOR_FLOAT.
1591         (INTEGER_MODE_P): Check for MODE_VECTOR_INT.
1592         (FLOAT_MODE_P): Check for MODE_VECTOR_FLOAT.
1593         (VECTOR_MODE_P): New.
1594
1595 2000-06-24  Nathan Sidwell  <nathan@codesourcery.com>
1596
1597         * cpp.texi: Clarify #pragma GCC namespace.
1598
1599 2000-06-24  Philipp Thomas  <pthomas@suse.de>
1600
1601         * aclocal.m4(AM_GNU_GETTEXT): If LINGUAS isn't set, build
1602         all catalogs specified in ALL_LINGUAS.
1603         * configure: Rebuilt.
1604
1605 2000-06-23  Jakub Jelinek  <jakub@redhat.com>
1606
1607         * config/sparc/sparc.md (reload_outdi+1): Handle
1608         HOST_BITS_PER_WIDE_INT == 64 case correctly.
1609         (adddi3_insn_sp32+1, adddi3_insn_sp32+2, andsi3+2): Likewise.
1610
1611 2000-06-23  Geoffrey Keating  <geoffk@cygnus.com>
1612
1613         * alias.c (fixed_scalar_and_varying_struct_p): Don't examine
1614         struct vs. scalar-ness when -fno-strict-aliasing.
1615
1616 2000-06-23  Nathan Sidwell  <nathan@codesourcery.com>
1617
1618         * cpplib.c (struct pragma_entry): New structure.
1619         (pragma_dispatch): Pragma dispatcher.
1620         (top_pragmas, gcc_pragmas): New static variables.
1621         (do_pragma): Use pragma_dispatch.
1622         (do_pragma_gcc): New pragma handler.
1623         * cpp.texi: Update.
1624
1625 2000-06-23  Jakub Jelinek  <jakub@redhat.com>
1626
1627         * calls.c (compute_argument_addresses): Force stack slots into
1628         alias set 0.
1629         * expr.c (emit_push_insn): Force pushes into alias set 0.
1630
1631 2000-06-23  Richard Henderson  <rth@cygnus.com>
1632
1633         * config/ia64/ia64.md (pred_rel_mutex): Only take one register.
1634         * config/ia64/ia64.c (emit_predicate_relation_info): Adjust to match.
1635
1636 2000-06-22  Jason Merrill  <jason@redhat.com>
1637
1638         * toplev.c (compile_file): Always call timevar_print.
1639         * Makefile.in (calls.o): Depend on TIMEVAR_H.
1640
1641 2000-06-22  Nathan Sidwell  <nathan@codesourcery.com>
1642
1643         * varasm.c (constant_descriptor): Make contents unsigned char.
1644         (mark_const_hash_entry): Adjust.
1645         (const_hash): Just hash the code of unknown nodes.
1646         (compare_constant_1): Adjust for unsigned char.
1647         Use language specific expander on unknown nodes.
1648         (record_constant_1): Likewise.
1649
1650 2000-06-21  Zack Weinberg  <zack@wolery.cumb.org>
1651
1652         * cppfiles.c (cpp_make_system_header): New function.
1653         * cpplib.h: Prototype it.
1654         * cpplib.c (do_line, do_pragma_system_header): Use it.
1655         * fix-header.c (read_scan_file): Use it.
1656
1657         * fix-header.c (check_macro_names): Cast second arg of
1658         cpp_defined to const unsigned char *.
1659         (read_scan_file): Make getchar_call const unsigned char.
1660
1661 2000-06-21  Zack Weinberg  <zack@wolery.cumb.org>
1662
1663         * cppfiles.c: Include splay-tree.h, not hashtab.h.
1664         (redundant_include_p, make_IHASH, hash_IHASH, eq_IHASH): Delete.
1665         (destroy_include_file_node): New.
1666         (_cpp_init_include_hash): Rename _cpp_init_include_table.
1667         Create a splay tree, not a hash table.
1668         (open_include_file): Look up the path in the include table,
1669         do the multiple include optimization here, etc.
1670         (cpp_included): Walk the path.
1671         (find_include_file): Just walk the path calling
1672         open_include_file, or call it directly for an absolute path.
1673         (_cpp_fake_ihash): Rename _cpp_fake_include and update for new
1674         scheme.
1675         (read_include_file): Update for new scheme.  Don't close the
1676         file unless reading fails.
1677         (_cpp_execute_include, cpp_read_file): Tweak for new scheme.
1678
1679         * cpphash.h (struct ihash, NEVER_REINCLUDE): Delete.
1680         (struct include_file): New.
1681         (NEVER_REREAD, DO_NOT_REREAD, CPP_IN_SYSTEM_HEADER): New
1682         macros.
1683         (CPP_PEDANTIC, CPP_WTRADITIONAL): Update.
1684         Update prototypes.
1685
1686         * cppinit.c: Include splay-tree.h.
1687         (cpp_reader_init, cpp_cleanup): Update.
1688
1689         * cpplib.h (struct cpp_buffer): Change ihash field to
1690         'struct include_file *inc'.  Remove system_header_p.
1691         (struct cpp_reader): Change all_include_files to a
1692         struct splay_tree_s *.
1693
1694         * cpplex.c: Update all references to cpp_buffer->ihash and/or
1695         cpp_buffer->system_header_p.
1696         (cpp_pop_buffer): Close file here, only if DO_NOT_REREAD.
1697
1698         * Makefile.in (SPLAY_TREE_H): New macro.
1699         (cppfiles.o, cppinit.o): Update dependencies.
1700
1701 Wed Jun 21 11:05:48 2000  Martin Buchholz <martin@xemacs.org>
1702
1703         * invoke.texi (g++): "g++" is not a script anymore.
1704
1705 2000-06-20  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1706
1707         * function.c (round_down): Delete obsolete prototype.
1708
1709         * pa.h (CPP_SPEC): Add whitespace after -D__STDC_EXT__.
1710
1711 2000-06-20  Zack Weinberg  <zack@wolery.cumb.org>
1712
1713         * configure.in: Use 'test a = b' not 'test a == b'.
1714         * configure: Regen.
1715
1716         * Makefile.in (fix-header): Link with $(LIBS) not $(HOST_LIBS).
1717
1718         * Makefile.in: Remove all references to HOST_INTLLIBS.
1719
1720         * cpplex.c (parse_name): Don't warn about $ in identifiers if
1721         skipping.
1722
1723 2000-06-20  Philipp Thomas  <pthomas@suse.de>
1724
1725         * config/pa/pa.h(TARGET_SWITCHES): Require binutils 2.10 or later
1726         for PA 2.0.
1727
1728 Mon Jun 19 23:26:40 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1729
1730         * Take REG_INC notes into account.
1731
1732 2000-06-19  Zack Weinberg  <zack@wolery.cumb.org>
1733
1734         * c-parse.in (undeclared_variable_notice): Moved to c-typeck.c.
1735         (primary: IDENTIFIER): Just call build_external_ref.
1736         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
1737         Regenerate.
1738         * c-lex.c (lastiddecl): Remove.
1739         (yylex): Replace all instances of lastiddecl with local
1740         variables.
1741
1742         * c-typeck.c (build_external_ref): New function.  Treat decls
1743         with C_DECL_ANTICIPATED mostly the same as nonexistent decls.
1744         Look up the decl from the id here.  Call lookup_objc_ivar.
1745         * c-lang.c (lookup_objc_ivar): Stub.
1746         * objc/objc-act.c (lookup_objc_ivar): New function.
1747
1748         * c-tree.h: Prototype lookup_objc_ivar and build_external_ref.
1749         * c-lex.h: Don't declare lastiddecl.
1750
1751 2000-06-19  Benjamin Chelf  <chelf@codesourcery.com>
1752
1753         * c-common.h (IF_COND): Added documentation.
1754         (THEN_CLAUSE): Likewise.
1755         (ELSE_CLAUSE): Likewise.
1756         (WHILE_COND): Likewise.
1757         (WHILE_BODY): Likewise.
1758         (DO_COND): Likewise.
1759         (DO_BODY): Likewise.
1760         (RETURN_EXPR): Likewise.
1761         (EXPR_STMT_EXPR): Likewise.
1762         (FOR_INIT_STMT): Likewise.
1763         (FOR_COND): Likewise.
1764         (FOR_EXPR): Likewise.
1765         (FOR_BODY): Likewise.
1766         (SWITCH_COND): Likewise.
1767         (SWITCH_BODY): Likewise.
1768         (CASE_LOW): Likewise.
1769         (CASE_HIGH): Likewise.
1770         (GOTO_DESTINATION): Likewise.
1771         (COMPOUND_BODY): Likewise.
1772         (ASM_CV_QUAL): Likewise.
1773         (ASM_STRING): Likewise.
1774         (ASM_OUTPUTS): Likewise.
1775         (ASM_INPUTS): Likewise.
1776         (ASM_CLOBBERS): Likewise.
1777         (DECL_STMT_DECL): Likewise.
1778         (STMT_EXPR_STMT): Likewise.
1779         (LABEL_STMT_LABEL): Likewise.
1780
1781         * c-common.def: Added documenetion for SRCLOC, EXPR_STMT,
1782         COMPOUND_STMT, DECL_STMT, IF_STMT, FOR_STMT, WHILE_STMT, DO_STMT,
1783         RETURN_STMT, BREAK_STMT, CONTINUE_STMT, SWITCH_STMT, GOTO_STMT,
1784         LABEL_STMT, ASM_STMT, SCOPE_STMT, CASE_LABEL, STMT_EXPR.
1785
1786 2000-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1787
1788         * configure.in (--enable-checking): Update --help doc to reflect
1789         new defaults.  Ensure $ac_save_IFS is set before $IFS is changed.
1790
1791 Sun Jun 18 21:42:15 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1792
1793         * gcse.c (insert_insn_end_bb): Always put after NOTE_INSN_BASIC_BLOCK.
1794
1795         * function.c (put_var_into_stack): Don't reference DECL_ fields
1796         if input is a SAVE_EXPR.
1797         Use set_mem_attributes in COMPLEX case.
1798
1799 2000-06-18  Richard Henderson  <rth@cygnus.com>
1800
1801         * config/ia64/ia64-protos.h (process_for_unwind_directive): Declare.
1802         (ia64_file_start): Declare.
1803         * config/ia64/ia64.h (ADDL_REGNO_P): Don't compare unsigned against 0.
1804         (GR_REGNO_P): Likewise.
1805         * config/ia64/ia64.c: Many prototypes.
1806         (ia64_reg_numbers): Constify.
1807         (ia64_input_reg_names, ia64_local_reg_names): Likewise.
1808         (ia64_section_threshold): Make unsigned.
1809         (ia64_print_operand): Constify.
1810         (fix_range): Constify.
1811         (ia64_init_builtins): Don't compare signed vs unsigned.
1812         (ia64_expand_builtin): Likewise.
1813
1814         * config/ia64/ia64.h (EXTRA_CONSTRAINT): New.
1815         (CONSTRAINT_OK_FOR_Q): New.
1816         * config/ia64/ia64.md (movdi_internal): Use Q for fp<->mem.
1817         (movsf_internal, movdf_internal): Likewise.
1818         (cmovdi_internal): Rewrite so that constraints and predicates match;
1819         simplify splitters.
1820         (cmovsi_internal): Likewise.
1821
1822         * config/ia64/ia64.h (ASM_SPEC): Add -x for gas.
1823         (ASM_FILE_START): New.
1824         * config/ia64/ia64.c (ia64_file_start): New.
1825         (rtx_needs_barrier): Handle pred.rel.mutex.
1826         (emit_predicate_relation_info): New.
1827         * config/ia64/ia64.md (pred_rel_mutex): New.
1828         * config/ia64/linux.h (ASM_SPEC): Define.
1829         * config/ia64/sysv4.h (ASM_FILE_START): Define.
1830
1831         * config/ia64/ia64.c (ia64_encode_section_info): Fix thinko
1832         filtering global register variables.
1833
1834 2000-06-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1835
1836         * c-common.c (add_c_tree_codes): Fix definition for traditional C.
1837
1838 2000-06-17  Michael Meissner  <meissner@redhat.com>
1839
1840         * gcc.c (do_spec_1, '%v3' case): Do not abort if patch level is
1841         not present and there is a field after a '-'.
1842
1843 2000-06-17  Bruce Korb  <bkorb@gnu.org>
1844
1845         * fixinc/check.tpl:  finish the implementation of multiple tests
1846         for a single fix
1847         * fixinc/inclhack.def(ctrl_quotes_def): add a second test
1848         (io_quotes_def): add a second test
1849         (various): reorder `files' so that "limits.h" is never first
1850         * fixinc/tests/base/*: update the testing output
1851
1852 Sat Jun 17 10:33:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1853
1854         * gcc.texi: Remove reference to stupid.c.
1855
1856 2000-06-16  Benjamin Chelf  <chelf@codesourcery.com>
1857
1858         * c-common.c (c_tree_code_type): New array.
1859         (c_tree_code_length): Likewise.
1860         (c_tree_code_name): Likewise.
1861         (add_c_tree_codes): New function.
1862
1863         * c-common.h (add_c_tree_codes): Declare.
1864         (enum c_tree_code): New enum.
1865
1866         * c-lex.c (init_parse): Added call to add_c_tree_codes.
1867
1868 2000-06-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1869
1870         * fixinc/inclhack.def (ctrl_quotes_def, io_quotes_def): Modify
1871         select pattern to also match macro defs with only one argument.
1872
1873 Thu Jun 15 18:56:12 2000  Jeffrey A Law  (law@cygnus.com)
1874
1875         * i386.md: Create new [right,left] rotate and right shift
1876         patterns to optimize shift by 1 bit for certain ia32 processors.
1877         Update patterns which perform left shifts to optimize shift by
1878         1 bit for certain ia32 processors.
1879         * i386.c (const_int_1_operand): New predicate.
1880         * i386.h (PREDICATE_CODES): Handle const_int_1_operand.
1881         * i386-protos.h (const_int_1_operand): Prototype.
1882
1883 Wed Jun 14 23:46:26 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1884
1885         * mips.c (machine_dependent_reorg): Fix braces for nested if.
1886
1887 2000-06-14  Geoff Keating  <geoffk@cygnus.com>
1888
1889         * rs6000.c (toc_hash_eq): Use CODE_LABEL_NUMBER to compare
1890         LABEL_REFs.
1891
1892 2000-06-14  Richard Henderson  <rth@cygnus.com>
1893
1894         * conflict.c (conflict_graph_compute): Don't look for REG_INC.
1895
1896         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Don't emit
1897         auto-inc code.
1898
1899         * print-rtl.c (print_rtx): Emit space before mem alias set.
1900
1901 2000-06-14  David Edelsohn  <edelsohn@gnu.org>
1902
1903         * rs6000.c (expand_block_move): Fix typo in earlier change.
1904         (print_operand): Remove unused variables neg and op.
1905         (toc_hash_mark_entry): Fix prototype.
1906
1907 2000-06-14  Benjamin Chelf  <chelf@codesourcery.com>
1908
1909         * c-common.h (IF_COND): Moved here from cp/cp-tree.h.
1910         (THEN_CLAUSE): Likewise.
1911         (ELSE_CLAUSE): Likewise.
1912         (WHILE_COND): Likewise.
1913         (WHILE_BODY): Likewise.
1914         (DO_COND): Likewise.
1915         (DO_BODY): Likewise.
1916         (RETURN_EXPR): Likewise.
1917         (EXPR_STMT_EXPR): Likewise.
1918         (FOR_INIT_STMT): Likewise.
1919         (FOR_COND): Likewise.
1920         (FOR_EXPR): Likewise.
1921         (FOR_BODY): Likewise.
1922         (SWITCH_COND): Likewise.
1923         (SWITCH_BODY): Likewise.
1924         (CASE_LOW): Likewise.
1925         (CASE_HIGH): Likewise.
1926         (GOTO_DESTINATION): Likewise.
1927         (COMPOUND_BODY): Likewise.
1928         (ASM_CV_QUAL): Likewise.
1929         (ASM_STRING): Likewise.
1930         (ASM_OUTPUTS): Likewise.
1931         (ASM_INPUTS): Likewise.
1932         (ASM_CLOBBERS): Likewise.
1933         (DECL_STMT_DECL): Likewise.
1934         (STMT_EXPR_STMT): Likewise.
1935         (LABEL_STMT_LABEL): Likewise.
1936         (SCOPE_BEGIN_P): Likewise.
1937         (SCOPE_END_P): Likewise.
1938         (SCOPE_STMT_BLOCK): Likewise.
1939         (SCOPE_NULLIFIED_P): Likewise.
1940         (SCOPE_NO_CLEANUPS_P): Likewise.
1941         (SCOPE_PARTIAL_P): Likewise.
1942         (ASM_VOLATILE_P): Likewise.
1943         (STMT_LINENO): Likewise.
1944         (STMT_LINENO_FOR_FN_P): Likewise.
1945
1946         * c-common.def: New file. Added SRCLOC, SIZEOF_EXPR, ARROW_EXPR,
1947         ALIGNOF_EXPR, EXPR_STMT, COMPOUND_STMT, DECL_STMT, IF_STMT,
1948         FOR_STMT, WHILE_STMT, DO_STMT, RETURN_STMT, BREAK_STMT,
1949         CONTINUE_STMT, SWITCH_STMT, GOTO_STMT, LABEL_STMT, ASM_STMT,
1950         SCOPE_STMT, CASE_LABEL, STMT_EXPR.
1951
1952         * gencheck.c (tree_codes[]): Added '#include "c-common.def"'.
1953
1954 2000-06-14  David O'Brien  <obrien@FreeBSD.org>
1955
1956         * gcc.c (main): Quiet compiler warnings.  argv is assumed to be
1957         writable in parts of the GCC code.
1958
1959         * config/elfos.h (ASM_GENERATE_INTERNAL_LABEL): Make printf
1960         specification match cast.
1961
1962 Wed Jun 14 09:25:57 2000  Jeffrey A Law  (law@cygnus.com)
1963
1964         * configure.in: Revert AC_TYPE_GETGROUPS patch from June 13.
1965         * configure, config.in: Rebuilt.
1966         * sys-protos.h: Similarly.
1967
1968 Wed Jun 14 03:39:58 EDT 2000  John Wehle  (john@feith.com)
1969
1970         * ifcvt.c (EDGE_COMPLEX): Move definition ...
1971         * basic-block.h (EDGE_COMPLEX): ... here.
1972
1973         * loop.c (check_dbra_loop): Specify the register when
1974         generating REG_NONNEG notes and don't generate duplicates.
1975
1976 2000-06-13  Jakub Jelinek  <jakub@redhat.com>
1977
1978         * tree.h (TYPE_USER_ALIGN, DECL_USER_ALIGN): Define.
1979         (struct tree_type, struct tree_decl): Add user_align member.
1980         * stor-layout.c (layout_decl): Set DECL_USER_ALIGN.
1981         (place_union_field): If BIGGEST_FIELD_ALIGNMENT is defined
1982         and DECL_USER_ALIGN 0, cap alignment to this value.
1983         (place_field): Likewise.
1984         (finalize_type_size): Set TYPE_USER_ALIGN.
1985         (layout_type): Likewise.
1986         (initialize_sizetypes): Likewise.
1987         * c-common.c (decl_attributes): Set TYPE_USER_ALIGN resp.
1988         DECL_USER_ALIGN to 1.
1989         * c-decl.c (duplicate_decls): Set DECL_USER_ALIGN.
1990         (xfer_tag): Set TYPE_USER_ALIGN.
1991         (finish_struct): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN.
1992         (finish_enum): Likewise.
1993         * stmt.c (expand_decl): Set DECL_USER_ALIGN.
1994         (expand_anon_union_decl): Likewise.
1995         * tree.c (make_node): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN.
1996         (build_index_type): Set TYPE_USER_ALIGN.
1997         (build_range_type): Likewise.
1998         (build_common_tree_nodes_2): Likewise.
1999         * tm.texi (BIGGEST_FIELD_ALIGNMENT): Document the changed meaning.
2000
2001 2000-06-13  Andreas Jaeger  <aj@suse.de>
2002
2003         * configure.in: Use --enable-checking=misc,tree,gc by default if
2004         no --enable-checking option is given and for
2005         --enable-checking=yes.
2006         * configure: Rebuilt.
2007
2008 2000-06-13  Richard Henderson  <rth@cygnus.com>
2009
2010         * libgcc2.c (ia64_throw_helper): Use __builtin_return_address.
2011         (__throw): Don't pass the address of a label.
2012
2013         * config/ia64/ia64.c (ia64_compute_frame_size): Use
2014         current_function_is_leaf.
2015         (ia64_expand_prologue): Likewise.  Modify return_address_pointer_rtx
2016         instead of reg_names[RETURN_ADDRESS_REGNUM].
2017         (ia64_init_machine_status): Reset return_address_pointer_rtx.
2018         * config/ia64/ia64.h (RETURN_ADDRESS_POINTER_REGNUM): Rename
2019         from RETURN_ADDRESS_REGNUM.  Update all uses.
2020         (RETURN_ADDR_RTX): Use return_address_pointer_rtx; return
2021         zero instead of null on failure.
2022         (ELIMINABLE_REGS): Add ra->b0 elimination.
2023         (CAN_ELIMINATE): Update accordingly.
2024         (INITIAL_ELIMINATION_OFFSET): Likewise.
2025         (REGISTER_NAMES): Use an illegal assembler name for
2026         RETURN_ADDRESS_POINTER_REGNUM.
2027
2028 2000-06-13  Richard Henderson  <rth@cygnus.com>
2029
2030         * config/ia64/ia64.h (enum reg_class): Remove FR_INT_REGS, FR_FP_REGS,
2031         GR_AND_FR_INT_REGS, GR_AND_FR_FP_REGS.
2032         (REG_CLASS_NAMES): Likewise.
2033         (REG_CLASS_CONTENTS): Likewise.
2034         (FR_FP_REGNO_P, FR_INT_REGNO_P): Remove.
2035         (HARD_REGNO_MODE_OK): Remove references to them.
2036         (REGNO_REG_CLASS): Likewise.
2037         (REG_CLASS_FROM_LETTER): Likewise.
2038         (CLASS_MAX_NREGS): Likewise.
2039         (REGISTER_MOVE_COST): Likewise.
2040         * config/ia64/ia64.c (ia64_secondary_reload_class): Likewise.
2041         * config/ia64/ia64.md (*): Replace "e" constraints with "f".
2042         (movqi_internal): Special case moves from zero.
2043         (movhi_internal, movsi_internal): Likewise.
2044         (movdi_internal): Likewise.  Fill out "f" constraints.
2045         (movsf_internal): Fill out "r" constraints.
2046         (movdf_internal): Likewise.
2047
2048 2000-06-13  Richard Henderson  <rth@cygnus.com>
2049
2050         * flow.c (insn_dead_p): Keep sets to PIC_OFFSET_TABLE_REGNUM
2051         alive before reload.
2052
2053         * haifa-sched.c (struct deps): Add in_post_call_group_p.
2054         (add_dependence): Handle notes between SCHED_GROUP_P insns.
2055         (remove_dependence): Always define.
2056         (set_sched_group_p): New.
2057         (sched_analyze_2): Use it.
2058         (sched_analyze_insn): Don't special-case naked uses.  Look for
2059         and extend in_post_call_group_p.
2060         (sched_analyze): Clear stale SCHED_GROUP_P.  Set in_post_call_group_p.
2061         (init_deps): Clear in_post_call_group_p.
2062
2063 2000-06-13  Richard Henderson  <rth@cygnus.com>
2064
2065         * combine.c (subst): Use CLASS_CANNOT_CHANGE_MODE and
2066         CLASS_CANNOT_CHANGE_MODE_P instead of CLASS_CANNOT_CHANGE_SIZE
2067         and hard-coded tests.
2068         (simplify_set): Likewise.
2069         (gen_lowpart_for_combine): Likewise.
2070         * emit-rtl.c (gen_lowpart_common): Likewise.
2071         * global.c (find_reg): Likewise.
2072         * local-alloc.c (find_free_reg): Likewise.
2073         * recog.c (register_operand): Likewise.
2074         * regclass.c (init_reg_sets_1): Likewise.
2075         (record_operand_costs, regclass): Likewise.
2076         * reload.c (push_reload): Likewise.
2077         * reload1.c (choose_reload_regs): Likewise.
2078         * flow.c (mark_used_regs): Conditionally set REG_CHANGES_MODE.
2079         * local-alloc.c (struct qty): Rename changes_size to changes_mode.
2080         Update all references.
2081         * regs.h (struct reg_info_def): Likewise.
2082         (REG_CHANGES_MODE): Rename from REG_CHANGES_SIZE.
2083         * tm.texi (CLASS_CANNOT_CHANGE_MODE): Document.
2084         (CLASS_CANNOT_CHANGE_MODE_P): Likewise.
2085
2086         * config/alpha/alpha.h (CLASS_CANNOT_CHANGE_MODE): Rename.
2087         (CLASS_CANNOT_CHANGE_MODE_P): New.
2088         * config/mips/mips.h: Likewise.
2089         * config/pa/pa32-regs.h: Likewise.
2090         * config/pa/pa64-regs.h: Likewise.
2091         * config/rs6000/rs6000.h: Likewise.
2092         * config/sh/sh.h: Likewise.
2093         * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE): New.
2094         (CLASS_CANNOT_CHANGE_MODE_P): New.
2095         * config/avr/avr.h (CLASS_CANNOT_CHANGE_SIZE): Remove dead code.
2096         * config/d30v/d30v.h: Likewise.
2097
2098 2000-06-13  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2099
2100         * configure.in: Add AC_TYPE_GETGROUPS test.
2101         * sys-protos.h: Use GETGROUPS_T * for second arg of getgroups.
2102         * configure: Rebuilt.
2103         * config.in: Rebuilt.
2104
2105 2000-06-13  Richard Henderson  <rth@cygnus.com>
2106
2107         * explow.c (set_mem_attributes): Do nothing for NULL type.
2108
2109 Tue Jun 13 14:45:10 2000  Jeffrey A Law  (law@cygnus.com)
2110
2111         * config/m68k/openbsd.h (ASM_SPEC): pass down options to assembler
2112         correctly.
2113
2114 2000-06-13  James E. Wilson  <wilson@cygnus.com>
2115
2116         * config/ia64/ia64.md (movxf_internal): Add missing "e" to ldf/stf.
2117
2118 Tue Jun 13 14:05:35 2000  Jeffrey A Law  (law@cygnus.com)
2119
2120         * Makefile.in (gensupport.o): Remove bogus $(HOST_PREFIX) reference.
2121
2122 2000-06-13  Philipp Thomas  <pthomas@suse.de>
2123
2124         * configure.in(ALL_LINGUAS): Changed en_UK to en_GB.
2125         * configure: Rebuilt.
2126
2127 2000-06-07  David O'Brien  <obrien@FreeBSD.org>
2128
2129         * configure.in:  Adjust FreeBSD bits to match changes to config.guess.
2130         We now default to ELF for the i386, and a.out is the special case.
2131         * configure:  Rebuilt.
2132
2133 Tue Jun 13 10:05:30 2000  Hans-Peter Nilsson  <hp@axis.com>
2134
2135         * final.c (final_scan_insn): Delete notes between cc0 setter and
2136         user when restarting from setter.
2137
2138 2000-06-13  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2139
2140         * vax.h (INDEX_TERM_P): Define evaluation order of &&'s in || and
2141         cast to squelch signed/unsigned warnings.
2142
2143 2000-06-13  Zack Weinberg  <zack@wolery.cumb.org>
2144
2145         * cpplib.c (handle_directive): Print non-NUL-terminated string
2146         with %.*s.
2147
2148 2000-06-12  Michael Meissner  <meissner@redhat.com>
2149
2150         * ifcvt.c (dead_or_predicable): Don't do conditional execution
2151         path if the machine needs extra support to do conditional
2152         execution.
2153
2154 Mon Jun 12 17:04:17 2000  Jeffrey A Law  (law@cygnus.com)
2155
2156         * print-rtl.c (print_rtx, case MEM): Use HOST_WIDE_INT_PRINT_DEC
2157         to print the alias set.
2158         * print-tree.c (print_node, DECL_* nodes and case 't'): Similarly.
2159
2160 2000-06-12  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2161
2162         * config/float-vax.h: Add GFLOAT defines.
2163
2164 Mon Jun  12  9:44:00 2000  Mark Klein  <mklein@dis.com>
2165
2166         * configure.in: Update tm dependencies for MPE.
2167         * configure: Rebuilt.
2168
2169 2000-06-12  H.J. Lu  <hjl@gnu.org>
2170
2171         * gengenrtl.c (obstack_alloc_rtx): Correct the allocated size.
2172
2173 2000-06-12  David Edelsohn  <edelsohn@gnu.org>
2174
2175         * aix41.h (SUBTARGET_SWITCHES): Delete threads.
2176         (CPP_SPEC): Change mthreads to pthread.
2177         (LIB_SPEC): Likewise.
2178         (STARTFILE_SPEC): Likewise.
2179         * aix43.h (SUBTARGET_SWITCHES): Delete threads.
2180         (CPP_SPEC): Change mthreads to pthread.
2181         (LIB_SPEC): Likewise.
2182         (STARTFILE_SPEC): Likewise.
2183         * rs6000-protos.h (reg_or_arith_cint_operand): New.
2184         * rs6000.c (reg_or_arith_cint_operand): New.
2185         (num_insns_constant_wide): Decorate unsigned constant.
2186         * rs6000.h (PREDICATE_CODES): Add reg_or_arith_cint_operand.
2187         * rs6000.md (addsi3): Use new predicate.
2188         (subsi3, adddi3, subdi3): Likewise.
2189
2190 2000-06-12  Mark Mitchell  <mark@codesourcery.com>
2191
2192         * c-common.c (lang_get_alias_set): Fix typo.
2193
2194 2000-06-12  Richard Earnshaw <rearnsha@arm.com>
2195
2196         * flow.c (mark_used_regs): Revert last change.
2197         (life_analysis): Remove PROP_AUTOINC if running after reload.
2198         (propagate_one_insn): PROP_AUTOINC is always off after reload.
2199
2200 2000-06-11  Richard Earnshaw <rearnsha@arm.com>
2201
2202         * flow.c (mark_used_regs): Don't call find_auto_inc after reload
2203         has run.
2204
2205 2000-06-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2206
2207         * bb-reorder.c (build_scope_forest): Initialize variable
2208         `curr_scope'.
2209
2210         * calls.c (expand_call): Likewise for variables
2211         `save_pending_stack_adjust' and `save_stack_pointer_delta'.
2212
2213         * i386.c (function_arg_advance, function_arg): Cast to avoid
2214         signed/unsigned warnings.
2215
2216         * i386.h (MEMORY_MOVE_COST): Likewise.
2217
2218         * ifcvt.c (cond_exec_process_if_block): Initialize variables
2219         `else_start' and `else_end'.
2220
2221         * libgcc2.h (__eh_alloc, __eh_free): Prototype.
2222
2223         * regrename.c (rr_replace_reg): Initialize variable `dest_subregno'.
2224
2225 2000-06-10  Mark Mitchell  <mark@codesourcery.com>
2226
2227         * Makefile.in (libintl.a): Depend on intl.all.
2228
2229 2000-06-09  H.J. Lu  (hjl@gnu.org)
2230
2231         * Makefile.in (c-parse.o): Also depend on output.h.
2232
2233 2000-06-09  Rodney Brown  <RodneyBrown@mynd.com>
2234
2235         * mcore-protos.h: discards const warning removal.
2236         * mcore.c: discards const warning removal.
2237
2238 2000-06-09  Kazu Hirata  <kazu@hxi.com>
2239
2240         * config/h8300/lib1funcs.asm: Declare the machine architecture at
2241         the beginning of the file.
2242
2243 2000-06-09  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2244
2245         * real.h:  Add prototype for ldexp.
2246
2247 2000-06-09  Zack Weinberg  <zack@wolery.cumb.org>
2248
2249         * ggc-none.c, ggc-simple.c, ggc-page.c (ggc_alloc_obj): Rename
2250         it ggc_alloc, drop second argument, never clear returned memory.
2251         * ggc-common.c (ggc_alloc_string): Use ggc_alloc.
2252         (ggc_alloc_cleared): New.
2253         * ggc.h: Prototype ggc_alloc and ggc_alloc_cleared, not
2254         ggc_alloc_obj.  Remove ggc_alloc macro.
2255         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Use ggc_alloc.
2256
2257         * rtl.c (rtvec_alloc): Clear the vector always.
2258         (rtx_alloc): Clear the first word always.  Remove dirty
2259         obstack tricks (this routine is no longer a bottleneck).
2260         * tree.c (make_node): Clear the new node always.
2261         (make_tree_vec): Likewise.
2262         (tree_cons): Clear the common structure always.
2263         (build1): Likewise; also, clear TREE_COMPLEXITY.
2264         * gengenrtl.c: Use puts wherever possible.  Remove extra
2265         newlines.
2266         (gendef): Clear the first word of an RTX in the generator
2267         function, irrespective of ggc_p.  Initialize '0' slots to
2268         NULL.
2269         (genlegend): Don't generate obstack_alloc_rtx routine, just a
2270         thin wrapper macro around obstack_alloc.
2271
2272         * stmt.c (expand_fixup): Use ggc_alloc.
2273         * c-typeck.c (add_pending_init): Use ggc_alloc.
2274         * emit-rtl.c (init_emit_once): Clear CONST_DOUBLE_CHAIN(tem).
2275         * varasm.c (immed_double_const): Set CONST_DOUBLE_MEM(r) to
2276         const0_rtx when it is created.
2277         (immed_real_const_1): Set CONST_DOUBLE_CHAIN(r) to NULL_RTX if
2278         we are not in a function.
2279
2280         * tree.c (tree_class_check_failed): Make second arg an int.
2281         * tree.h: Update prototype.
2282
2283 2000-06-09  Geoff Keating  <geoffk@cygnus.com>
2284
2285         * tree.h (VOID_TYPE_P): Don't look at the TYPE_MAIN_VARIANT
2286         of an error_mark_node.
2287
2288 Fri Jun  9 20:35:13 2000  Denis Chertykov  <denisc@overta.ru>
2289
2290         * config/avr/avr.c (asm_output_section_name): bugfix.
2291
2292 2000-06-09  Jason Merrill  <jason@casey.soma.redhat.com>
2293
2294         * timevar.def: Add TV_EXPAND.
2295         * timevar.c (timevar_print): Update timing information.
2296         * calls.c (try_to_integrate): Push to TV_INTEGRATION for inlining.
2297
2298         * stmt.c (expand_return): Check for error_mark_node.
2299
2300 2000-06-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2301
2302         * configure.in: Also avoid wrapping auto-build.h with IN_GCC.
2303
2304         * scan-types.sh (VALUE) Wrap use with double quotes to protect
2305         variable against filename expansion when it contains "char *".
2306
2307         * system.h (SSIZE_MAX): Delete backup definition.
2308
2309         * cppfiles.c (read_include_file): Use INTTYPE_MAXIMUM(ssize_t)
2310         instead of SSIZE_MAX.
2311
2312 2000-06-09  Jakub Jelinek  <jakub@redhat.com>
2313
2314         * configure.in: Check whether gas supports -relax.
2315         * configure, config.in: Rebuilt.
2316         * config/sparc/sparc.h (ASM_RELAX_SPEC): Define.
2317         (EXTRA_SPECS): Add asm_relax.
2318         (ASM_SPEC): Add %(asm_relax).
2319         (TARGET_SWITCHES): Add -mrelax and -mno-relax.
2320         * config/sparc/linux64.h (LINK_ARCH_SPEC): Rename to LINK_SPEC.
2321         (LINK_SPEC): Pass -relax to linker unless -mno-relax or -r.
2322         (ASM_SPEC): Add %(asm_relax).
2323         * config/sparc/linux.h (LINK_SPEC, ASM_SPEC): Likewise.
2324         * config/sparc/sparc.c (output_sibcall): If HAVE_AS_RELAX_OPTION,
2325         never use sethi/jmpl for leaf tail calls.  Use or with rs2 %g0
2326         instead of mov, so that gas can further optimize it.
2327
2328 2000-06-08  James E. Wilson  <wilson@bletchleypark.cygnus.com>
2329
2330         * dwarf2out.c (size_of_die, case dw_val_class_const): Use
2331         size_of_sleb128.
2332         (value_format, case dw_val_class_const): Use sdata format.
2333         (output_die): Call output_sleb128.
2334
2335 2000-06-08  James E. Wilson  <wilson@cygnus.com>
2336
2337         * dwarf2out.c (ASM_OUTPUT_DWARF_DATA8): Add new macro that uses
2338         UNALIGNED_DOUBLE_INT_ASM_OP.  Rename old macro to
2339         ASM_OUTPUT_DWARF_CONST_DOUBLE.
2340         (output_die, case dw_val_class_unsigned_const): Correct call to
2341         ASM_OUTPUT_DWARF_DATA8.
2342         (output_die, case dw_val_class_long_long): Use
2343         ASM_OUTPUT_DWARF_CONST_DOUBLE.
2344         * tree.c (host_integerp): Accept unsigned HOST_WIDE_INT values when
2345         pos is zero.
2346
2347         * config/ia64/ia64-protos.h (ia64_output_end_prologue): Add.
2348         (output_function_prologue): Fix mispelling.
2349         (output_function_prologue, output_function_epilogue): Reorder to
2350         match ia64.c definition order.
2351         * config/ia64/ia64.c (ia64_expand_prologue): Add comment.
2352         (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on stack restore insns.
2353         Use r3 instead of r2 for large stack restores.
2354         (ia64_output_end_prologue): New function.
2355         (process_set): Emit ".restore sp" for epilogue stack restores.
2356         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE): Define.
2357
2358 2000-06-08  Jakub Jelinek  <jakub@redhat.com>
2359
2360         * dbxout.c (dbxout_type_fields): Don't segfault on fields with
2361         incomplete types.
2362
2363 2000-06-08  Nathan Sidwell  <nathan@codesourcery.com>
2364
2365         * frame.c (end_fde_sort): Remove extraneous erratic array test.
2366
2367 2000-06-08  Denis Perchine <dyp@perchine.com>
2368
2369         * frame.c (start_fde_sort): Don't malloc (0).
2370
2371 2000-06-07  Zack Weinberg  <zack@wolery.cumb.org>
2372
2373         * c-decl.c (pushdecl): Do not call COMPLETE_TYPE_P on
2374         error_mark_node.
2375         * print-tree.c (print_node): The transparent_union_flag means
2376         different things for unions and arrays.  Do not inspect it
2377         with TYPE_TRANSPARENT_UNION.
2378
2379 2000-06-06  Jakub Jelinek  <jakub@redhat.com>
2380
2381         * cpplib.c (do_ifdef, do_ifndef): Don't segfault if parse_ifdef
2382         returned NULL.
2383
2384 Wed Jun  7 20:34:33 2000  Denis Chertykov  <denisc@overta.ru>
2385
2386         * config/avr/avr.c (asm_output_section_name): output section
2387         attributes.
2388         * config/avr/libgcc.S (.text.libgcc): declare section attributes.
2389
2390 2000-06-06  James E. Wilson  <wilson@cygnus.com>
2391
2392         * frame.h (struct unwind_info_ptr): Collapse version, flags, and length
2393         fields into header field.
2394         (IA64_UNW_HDR_LENGTH, IA64_UNW_HDR_FLAGS, IA64_UNW_HDR_VERSION): New
2395         macros to access length, flags, and version info from header field.
2396         * config/ia64/crtbegin.asm (__do_frame_setup_aux): Delete here.
2397         * config/ia64/crtend.asm (__do_frame_setup_aux): Add here.
2398         (__do_global_ctors_aux): Fix caller.
2399         * config/ia64/frame-ia64.c (get_unwind_record): Change parameter
2400         prologue_flag to header.  Pass to read_P_record.
2401         (read_P_record): New argument header.  Implement P4 format.
2402         Multiply P7_T_SIZE by 16.
2403         (execute_one_ia64_descriptor): New static local region_header.  Pass to
2404         get_unwind_record.  Copy r to region_header if r is a header record.
2405         (print_all_records): Likewise.
2406         (__build_ia64_frame_state): Use IA64_UNW_HDR_LENGTH.
2407         (__get_personality, __get_except_table): Likewise.
2408         * config/ia64/ia64.c (process_set): Do not divide offsets by 4.
2409
2410 2000-06-06  Philipp Thomas  <pthomas@suse.de>
2411
2412         * configure.in (AC_C_INLINE): Added.
2413         * aclocal.m4 (AM_WITH_NLS): Enable --with-included-gettext by default.
2414         * configure: Regenerate.
2415
2416 2000-06-06  Mark Mitchell  <mark@codesourcery.com>
2417
2418         * c-common.h (c_language_kind): New type.
2419         (c_language): New variab.e
2420         * c-common.c (lang_get_alias_set): Don't put structures in
2421         non-zero alias sets in C++.
2422         * c-decl.c (c_language): Define it.
2423         * c-lex.c (doing_objc_thang): Remove.
2424         * c-tree.h (doing_objc_thang): Make it a macro.
2425         * objc/objc-act.c (lang_decode_option): Set c_language, not
2426         doing_objc_thang.
2427
2428 2000-06-06  Gabriel Dos Reis  <gdr@codesourcery.com>
2429
2430         * diagnostic.c (output_maximum_width): Remove.
2431         (doing_line_wrapping): Tweak.
2432         (diagnostic_buffer): New object.
2433         (global_output_buffer): New object.
2434         (output_destroy_prefix): New function.
2435         (default_initialize_buffer): Likewise.
2436         (reshape_diagnostic_buffer): Likewise.
2437         (initialize_diagnostics): Likewise.
2438         (output_clear): Tweak.
2439         (line_wrapper_printf): Adjust call to init_output_buffer.
2440         (vline_wrapper_message_with_location): Likewise.  Use
2441         output_destroy_prefix.
2442         (v_message_with_decl): Likewise.
2443
2444         * diagnostic.h (struct output_buffer): Constify prefix.
2445         (init_output_buffer, output_get_prefix): Constify.
2446         (diagnostic_message_length_per_line): Likewise.
2447         (reshape_diagnostic_buffer): Declare.
2448         (default_initialize_buffer): Declare.
2449         (initialize_diagnostics): Declare.
2450         (diagnostic_buffer): Declare new obbject.
2451
2452         * toplev.c: #include diagnostic.h
2453         (display_help): Document diagnostic formatting options.
2454         (decode_f_option): Handle diagnostic formatting options.
2455         (main): Setup initialization for diagnostic messages outputter.
2456
2457         * toplev.h (set_message_length): Remove.
2458
2459         * Makefile.in (toplev.o): Depends upon diagnostic.h
2460
2461         * invoke.texi : Document diagnostics formatting options.
2462
2463 Tue Jun  6 19:25:32 2000  Philippe De Muyter  <phdm@macqel.be>
2464
2465         * configure.in (Make the links): Typo fix : the file that must be
2466         included without #ifdef IN_GCC is `auto-host.h', not `auto-config.h'.
2467         * configure: File rebuilt.
2468
2469 2000-06-06  Nathan Sidwell  <nathan@codesourcery.com>
2470
2471         * eh-common.h (EH_ALLOC_SIZE, EH_ALLOC_ALIGN): New #defines.
2472         (eh_context): Add alloc_mask and alloc_buffer emergency fallback
2473         space.
2474         * libgcc2.c (__eh_alloc): Moved from cp/exception.cc. Fallback on
2475         emergency eh_context buffer, if malloc fails.
2476         (__eh_free): Moved from cp/exception.cc. Release to emergency
2477         eh_context buffer, if appropriate.
2478
2479 2000-06-06  Jason Merrill  <jason@casey.soma.redhat.com>
2480
2481         * expr.c (store_expr): Fix typo.
2482
2483 2000-06-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2484
2485         * m68k.c (legitimize_pic_address): Move prototype ...
2486
2487         * m68k-protos.h (legitimize_pic_address): ... here.
2488
2489         * m68k.md (legitimize_pic_address): Delete prototypes.
2490         (untyped_call): Invoke GEN_CALL(), not gen_call().
2491
2492         * nextstep.c: Include system.h and toplev.h.
2493         (get_directive_line): Don't prototype.
2494         (handle_pragma): Mark parameters with ATTRIBUTE_UNUSED and constify.
2495
2496         * nextstep.h (handle_pragma): Prototype.
2497         (SECTION_FUNCTION): Prototype FUNCTION().  Move prototype of
2498         objc_section_init ...
2499         (EXTRA_SECTION_FUNCTIONS): ... here.
2500
2501 Tue Jun  6 08:17:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2502
2503         * sdbout.c (struct sdb_file): NAME now const.
2504         (sdbout_init): input_file_name now const.
2505         (sdbout_start_new_source_file): FILENAME now const.
2506         * sdbout.c (sdbout_init, sdbout_start_new_source_file): Reflect above.
2507
2508 2000-06-06  Gabriel Dos Reis  <gdr@codesourcery.com>
2509
2510         * c-typeck.c (build_conditional_expr): Handle complex data types.
2511
2512 2000-06-05  Jason Merrill  <jason@casey.soma.redhat.com>
2513
2514         * explow.c (maybe_set_unchanging): New function, broken out from...
2515         (set_mem_attributes): Here.
2516         * expr.h: Declare it.
2517         * stmt.c (expand_decl): Call it.
2518
2519 2000-06-05  Richard Henderson  <rth@cygnus.com>
2520
2521         * reload1.c (choose_reload_regs): Mind CLASS_CANNOT_CHANGE_SIZE
2522         while looking for a register to inherit from.
2523
2524 2000-06-05  Jason Merrill  <jason@casey.soma.redhat.com>
2525
2526         * Makefile.in (libgcc.ready): Lose.
2527         (libgcc.mk): Just use mv, not move-if-change.
2528         (LIBGCC_DEPS): New macro.
2529         (libgcc.a): Use it.
2530         (stmp-multilib): Likewise.
2531         * mklibgcc.in (stmp-dirs): New target.  Make everything depend on
2532         it rather than the directories themselves.
2533         (LIB2ADD): Depend on the list file rather than 'force'.
2534
2535         * fold-const.c (fold, case COND_EXPR): Elide conversion between
2536         cv-qualified versions of types.
2537
2538 Mon Jun  5 14:06:18 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2539
2540         * config/sparc/sparc.c (short_branch): Correct error in range
2541         computation.
2542
2543 2000-06-05  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2544
2545         * fixinc/inclhack.def: New include hacks for ultrix.
2546         * (nested_ultrix): Replaced by ultrix_nested_svc.
2547         * (ultrix_atof_param): test_text string added.
2548         * (ultrix_ifdef): Modified select string.
2549
2550 2000-06-05  Zack Weinberg  <zack@wolery.cumb.org>
2551
2552         * objc/objc-act.c (generate_method_descriptors): Register
2553         objc_method_prototype_template as a GC root.
2554         (comp_method_with_proto): Register function_type as a GC root.
2555         (comp_proto_with_proto): Replace function_type1 and
2556         function_type2 with a two-element array; register it as a GC root.
2557
2558         (generate_protocols, build_protocol_initializer,
2559         generate_protocol_list, build_category_initializer,
2560         build_shared_structure_initializer): Do not cache cast_type
2561         and/or cast_type2.
2562
2563 2000-06-05  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2564
2565         * function.c (assign_parms): Add missing argument to set_mem_attributes
2566         call.
2567
2568 2000-06-05  Nathan Sidwell  <nathan@codesourcery.com>
2569
2570         * tree.h (VOID_TYPE_P): New macro.
2571         (COMPLETE_OR_VOID_TYPE_P): Use VOID_TYPE_P.
2572         * c-decl.c (grokdeclarator): Use VOID_TYPE_P.
2573         (get_parm_info): Likewise.
2574         (store_parm_decls): Likewise.
2575         (combine_parm_decls): Likewise.
2576         (finish_function): Likewise.
2577         * c-typeck.c (build_function_call): Likewise.
2578         (build_binary_op): Likewise.
2579         (build_conditional_expr): Likewise.
2580         (internal_build_compound_expr): Likewise.
2581         (convert_for_assignment): Likewise.
2582         * stmt.c (expend_expr_stmt): Likewise.
2583         (warn_if_unused_value): Likewise.
2584         (expand_return): Likewise.
2585         * c-parse.in (primary): Likewise.
2586         * c-parse.y, c-parse.c, c-parse.h: Regenerate.
2587         * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
2588
2589 Mon Jun  5 06:46:28 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2590
2591         * alias.c (get_alias_set): If compnent is addressable, use alias
2592         set of component.
2593         * c-decl.c (init_decl_processing): Don't call record_component_aliases.
2594         (grokdeclarator): Likewise.
2595         * c-typeck.c (common_type): Likewise.
2596
2597 2000-06-04  Alex Samuel  <samuel@codesourcery.com>
2598
2599         * Makefile.in (OBJS): Remove dyn_string.o
2600         (dyn-string.o): Delete rule.
2601         * dyn-string.c: Delete file
2602         * dyn-string.h: Likewise.
2603
2604 2000-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2605
2606         * Makefile.in (intl.*): Honor non-zero exit codes in the intl
2607         subdir.
2608
2609 2000-06-03  Geoff Keating  <geoffk@cygnus.com>
2610
2611         * alias.c (record_component_aliases): Don't inspect
2612         DECL_NONADDRESSABLE_P of non-FIELD_DECL components of structures.
2613
2614 Sat Jun  3 19:05:30 2000  Michael Meissner  <meissner@redhat.com>
2615
2616         * ifcvt.c (process_insns): If IFCVT_MODIFY_INSN is defined, call
2617         it with the pattern to do machine dependent work.
2618         (cond_exec_process_if_block): If IFCVT_MODIFY_TESTS is defined,
2619         use it to modify the true/false tests used in conditional
2620         execution.  If IFCVT_MODIFY_FINAL and IFCVT_MODIFY_CANCEL are
2621         defined, invoke them if the conversion to conditional execution
2622         was successful or not.
2623
2624         * tm.texi (IFCVT_MODIFY_TESTS): Document.
2625         (IFCVT_MODIFY_INSN): Ditto.
2626         (IFCVT_MODIFY_FINAL): Ditto.
2627         (IFCVT_MODIFY_CANCEL): Ditto.
2628
2629 Sat Jun  3 15:26:13 2000  Matt Kraai <kraai@alumni.carnegiemellon.edu>
2630
2631         * toplev.c (main): Fix misspellings of possibility and language.
2632
2633 2000-06-03  Richard Henderson  <rth@cygnus.com>
2634
2635         * alias.c (record_alias_subset): Initialize has_zero_child in the
2636         superset.
2637
2638 2000-06-03  Richard Earnshaw (rearnsha@arm.com)
2639
2640         * arm.md (untyped_call): Use GEN_CALL macro.
2641
2642 2000-06-02  Pekka Nikander  <pnr@teldanex.tcm.hut.fi>
2643
2644         * Makefile.in: Use $(MAKE) not "make"
2645
2646 Fri Jun  2 19:31:03 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2647
2648         * alias.c (struct alias_set_entry): New field has_zero_child.
2649         (mem_in_disjoint_alias_sets_p): Return 0 if set in either ase.
2650         (get_alias_set): If language-dependent routine set TYPE_ALIAS_SET,
2651         do nothing.
2652         Call record_component_aliases for aggregate types.
2653         (record_alias_subset): Set has_zero_child.
2654         (record_component_aliases, case ARRAY_TYPE): Do nothing if
2655         TYPE_NONALIASES_COMPONENT.
2656         (record_component_aliases, case RECORD_TYPE): Test
2657         DECL_NONADDRESSABLE_P.
2658         * c-decl.c (grokdeclarator): Set DECL_NONADDRESSABLE_P instead
2659         of TREE_ADDRESSABLE.
2660         * calls.c (initialize_argument_information): Only test
2661         TYPE_TRANSPARENT_UNION for UNION_TYPE.
2662         * function.c (assign_parms): Likewise.
2663         * integrate.c (function_cannot_inline_p): Likewise.
2664         * stor-layout.c (finish_record_layout): Don't call
2665         record_component_aliases.
2666         * tree.h (struct tree_int_cst): Use struct tree_common.
2667         (struct tree_real_cst, struct tree_string): Likewise.
2668         (struct tree_complex, struct tree_identifier): Likewise.
2669         (struct tree_list, struct tree_vec, struct tree_exp): Likewise.
2670         (struct tree_block, struct tree_type, struct tree_decl): Likewise.
2671         (TYPE_TRANSPARENT_UNION): Use UNION_TYPE_CHECK.
2672         (TYPE_NONALIASES_COMPONENT): New macro.
2673         (TYPE_AMBIENT_BOUNDEDNESS): Use FUNCTION_TYPE_CHECK.
2674         (DECL_NONADDRESSABLE_P): New macro.
2675         (struct tree_decl): Reorder bits for clarity of how many left;
2676         add non_adressable.
2677
2678 2000-06-02  Jason Merrill  <jason@casey.soma.redhat.com>
2679
2680         * Makefile.in (libgcc.a): Also depend on $(LIB2ADD).
2681         * mklibgcc.in (force): New target.
2682         Make LIB2ADD stuff depend on it.
2683
2684 2000-06-02  Richard Henderson  <rth@cygnus.com>
2685
2686         * alias.c (lang_get_alias_set): Remove.
2687         (get_alias_set): Call it directly, not indirectly.
2688         * c-common.c (lang_get_alias_set): Rename from c_get_alias_set.
2689         * c-common.h (c_get_alias_set): Don't declare.
2690         * c-decl.c (init_decl_processing): Don't set lang_get_alias_set.
2691         * expr.h (lang_get_alias_set): Declare as function, not pointer.
2692
2693 2000-06-02  Bruce Korb  <bkorb@gnu.org>
2694
2695         * fixinc/server.c(sig_handler):  resume closing server on SIGPIPE
2696         (server_setup):  define the server's master pid
2697         (close_server):  actually do the deed IFF we are the server's master
2698
2699 2000-06-02  Jakub Jelinek  <jakub@redhat.com>
2700
2701         * c-common.c (c_get_alias_set): Check whether signed_type did not
2702         return its argument before calling get_alias_set on the result.
2703
2704 2000-06-02  Andrew MacLeod  <amacleod@cygnus.com>
2705
2706         * expr.c (emit_group_load): Fix typo, GET_MODE not GET_CODE.
2707
2708 Fri Jun  2 00:22:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2709
2710         * sh.h (CPP_SPEC): Add -D__NOMACSAVE__ for -mnomacsave.
2711         (CONDITIONAL_REGISTER_USAGE): Mac registers are call used
2712         for TARGET_NOMACSAVE.
2713         (NOMACSAVE_BIT): Define.
2714         (TARGET_NOMACSAVE): Define.
2715         (TARGET_SWITCHES): Add "nomacsave".
2716
2717 2000-06-02  Toshiyasu Morita  <toshi.morita@sega.com>
2718
2719         * sh.md (untyped_call): Remove excess parameters
2720
2721 2000-06-01  Loren J. Rittle  <ljrittle@acm.org>
2722
2723         * fixinc/inclhack.def (osf_namespace_a): Relax expression to
2724         match that used before the conversion to c_fix style.
2725         * fixinc/fixincl.x: regenerate
2726
2727 2000-06-01  Stan Cox  <scox@cygnus.com>
2728
2729         * varray.h (VARRAY_PUSH_GENERIC_PTR, VARRAY_PUSH_CHAR_PTR): Fix
2730         macro argument typo.
2731
2732 2000-06-01  Zack Weinberg  <zack@wolery.cumb.org>
2733
2734         * cpplex.c (maybe_macroexpand): Use CPP_WTRADITIONAL.  Improve
2735         error message.
2736         * cpplib.c (parse_include): Remove support for VAX-C
2737         "#include starlet" misfeature.
2738
2739 2000-05-31 Laurynas Biveinis <lauras@softhome.net>
2740
2741         * cppfiles.c: conditionally define O_BINARY.
2742         (open_include_file): pass O_BINARY to open().
2743
2744 2000-06-01  Richard Henderson  <rth@cygnus.com>
2745
2746         * i960.c (i960_br_predict_opcode): Remove.
2747         (i960_print_operand) [+]: Emit branch prediction hints.
2748         (i960_function_arg): Return early for VOIDmode.
2749         (i960_round_align): Return early for incomplete types.
2750         * i960.h (PRINT_OPERAND_PUNCT_VALID_P): New.
2751         * i960.md (all conditional branches): Add "%+".
2752
2753 Thu Jun  1 12:24:21 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2754
2755         * alias.c (get_alias_set): Don't call language-specific routine more
2756         than is needed and clean up code a bit.
2757         * c-common.c (c_get_alias_set): All references whose type
2758         is char get alias set 0, but character types need not.
2759         * varasm.c (make_function_rtl): Don't call set_mem_attributes.
2760         (make_decl_rtl): Don't call it for FUNCTION_DECL.
2761
2762 2000-06-01  Bruce Korb  <bkorb@gnu.org>
2763
2764         * fixinc/tests/base/...: new base result files
2765
2766 Thu Jun  1 09:37:35 2000  Clinton Popetz  <cpopetz@cygnus.com>
2767
2768         * config/i386/i386.c (ix86_use_fcomi_compare): Make global.
2769         * config/i386/i386-protos.h (ix86_use_fcomi_compare): Declare.
2770         * config/i386/i386.md (*fp_jcc_3, *fp_jcc_4): Disable if we
2771         will use FCOMI.
2772
2773 2000-06-01  Richard Henderson  <rth@cygnus.com>
2774
2775         * Makefile.in (c-decl.o): Depend on $(EXPR_H), not expr.h.
2776
2777         * c-decl.c (init_decl_processing): Set lang_get_alias_set first thing.
2778
2779 2000-05-31  Richard Henderson  <rth@cygnus.com>
2780
2781         * config/ia64/ia64.c (sdata_symbolic_operand): Consider small
2782         CONSTANT_POOL_ADDRESS_P addresses for .sdata.
2783         * config/ia64/sysv4.h (SELECT_RTX_SECTION): New.
2784
2785 2000-05-31  Richard Henderson  <rth@cygnus.com>
2786
2787         * config/ia64/ia64-protos.h (ia64_expand_prediction): Remove.
2788         * config/ia64/ia64.c (ia64_expand_prediction): Move code ...
2789         (ia64_print_operand) [+]: ... here.  Use current_output_insn.
2790         * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): New.
2791         * config/ia64/ia64.md (all branch/call patterns): Use %+.
2792
2793 2000-05-31  Richard Henderson  <rth@cygnus.com>
2794
2795         * ifcvt.c (cond_exec_process_insns): Don't ever ignore clobbers.
2796
2797 2000-05-31  Richard Henderson  <rth@cygnus.com>
2798
2799         * ifcvt.c (merge_if_block): Be prepared for JOIN to have no
2800         remaining edges.
2801         (find_if_block): Allow THEN with no outgoing edges.
2802         * flow.c (merge_blocks_nomove): Remove a barrier not following
2803         a jump as well.
2804
2805 2000-05-31  Richard Henderson  <rth@cygnus.com>
2806
2807         * flow.c (propagate_block): Move initialization of mem_set_list ...
2808         (init_propagate_block_info): ... here.  Also track blocks with
2809         no successors; don't scan insns if ! PROP_SCAN_DEAD_CODE.
2810
2811 2000-05-31  Richard Henderson  <rth@cygnus.com>
2812
2813         * jump.c (jump_optimize_1): Revert 05-18 change.
2814
2815 2000-05-31  Mark Mitchell  <mark@codesourcery.com>
2816
2817         * invoke.texi: Remove documentation for -fguiding-decls.
2818
2819 2000-05-31  Richard Henderson  <rth@cygnus.com>
2820
2821         * configure.in: Fix typo last change.
2822
2823 2000-05-31  Philipp Thomas  <pthomas@suse.de>
2824
2825         * configure.in (enable-nls): Enable if build == host, i.e. when
2826         not building a canadian cross compiler.
2827         (enable-maintainer-mode): Added for use with i18n.
2828         * aclocal.m4 (AM_GNU_GETTEXT): Only build catalogs that are a
2829         cross section of ALL_LINGUAS and LINGUAS.
2830         * configure: Rebuild.
2831
2832 2000-05-31  Bruce Korb  <bkorb@gnu.org>
2833
2834         * fixinc/check.tpl: rework to use test result tree
2835         * fixinc/Makefile.in: change invocation of check script
2836         * fixinc/check.diff: No longer needed
2837         * fixinc/fixincl.x: regenerate
2838         * fixinc/inclhack.def:  add new tests
2839         * fixinc/tests/base/arch/i960/archI960.h:  New test result
2840         * fixinc/tests/base/curses.h: modified test result
2841         * fixinc/tests/base/stdio.h: ditto
2842         * fixinc/tests/base/time.h: ditto
2843         * fixinc/tests/base/sys/asm.h: ditto
2844         * fixinc/tests/base/sys/stat.h: ditto
2845         * fixinc/tests/base/sys/wait.h: ditto
2846
2847 Wed May 31 13:17:20 2000  Philippe De Muyter  <phdm@macqel.be>
2848
2849         * except.c (clear_function_eh_region): Do not free NULL.
2850
2851 Wed May 31 08:07:52 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2852
2853         * Makefile.in (c-decl.o): Depend on rtl.h and expr.h.
2854         * alias.c (struct alias_entry): alias_set is HOST_WIDE_INT.
2855         (REG_BASE_VALUE): Remove unneeded cast to unsigned.
2856         (get_alias_set_entry): ALIAS_SET arg is HOST_WIDE_INT.
2857         (find_base_decl): New function, from c_find_base_decl in c-common.c.
2858         (new_alias_set): Moved from tree.c; return is HOST_WIDE_INT.
2859         (get_alias_set): Likewise.
2860         Major rework to do more things and allow language-specific code
2861         to just handle special-cases.
2862         (record_alias_subset): Args are HOST_WIDE_INT.
2863         (record_component_alias): Local vars are HOST_WIDE_INT.
2864         Don't handle COMPLEX_EXPR.
2865         (get_varargs_alias_set): Moved from builtins.c.
2866         (get_frame_alias_set): New function.
2867         * builtins.c (expand_builtin_return_address): Use frame alias set.
2868         (expand_builtin_setjmp, expand_builtin_longjmp): Use alias set
2869         for setjmp buffer.
2870         (get_memory_rtx): Rework to use set_mem_attributes.
2871         (get_varargs_alias_set): Deleted from here.
2872         * c-common.c (c_apply_type_quals_to_decl): Alias sets now HOST_WIDE_INT.
2873         (c_find_base_decl): Deleted from here.
2874         (c_get_alias_set): Remove many cases and rework to just handle
2875         C-specific cases.
2876         * c-common.h (c_get_alias_set): Returns HOST_WIDE_INT.
2877         * c-decl.c (rtl.h, expr.h): Now included.
2878         (init_decl_processing): Call record_component_aliases on array types.
2879         (grokdeclarator): Likewise.
2880         Set TREE_ADDRESSABLE for all fields that are not bitfields.
2881         * c-typeck.c (common_type): Call record_component_aliases for array.
2882         * caller-save.c (setup_save_areas): Rework register loop for unsigned.
2883         Set all save areas to the frame alias set.
2884         * calls.c (initialie_argument_information): Call set_mem_attributes.
2885         (compute_argument_addresses, expand_call): Likewise.
2886         * explow.c (set_mem_attributes): New function.
2887         (stabilize): Use MEM_COPY_ATTRIBUTES and force_reg.
2888         * expr.c (struct move_by_pieces): Remove {to,from}_{struct,readonly}.
2889         LEN and OFFSET now HOST_WIDE_INT.
2890         (clear_by_pieces): Similar changes.
2891         (move_by_pieces): LEN now HOST_WIDE_INT; don't set deleted fields.
2892         (move_by_pieces_ninsns): Now returns unsigned HOST_WIDE_INT.
2893         (move_by_pieces_1): Don't use deleted fields, use MEM_COPY_ATTRIBUTES.
2894         (clear_by_pieces_1): Likewise.
2895         (emit_push_insn): Call set_mem_attributes.
2896         (expand_expr, case INDIRECT_REF): Likewise.
2897         (expand_expr, case VAR_DECL): Call change_address.
2898         * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE): Use host_integerp and
2899         tree_low_cst.
2900         (get_varargs_alias_set, get_frame_alias_set): New decls.
2901         (record_base_value, record_alias_subset, lang_get_alias_set): Likewise.
2902         (new_alias_set, set_mem_attributes): Likewse.
2903         * function.c (struct temp_slot): ALIAS_SET is HOST_WIDE_INT.
2904         (assign_stack_temp_for_type): Likewise.
2905         Can split slot even if alias set since can copy.
2906         Set MEM_ALIAS_SET and MEM_SET_IN_STRUCT_P.
2907         (assign_temp): Use host_integerp and tree_low_cst.
2908         (put_var_into_stack): Properly handle SAVE_EXPR.
2909         (put_addressof_into_stack): Likewise.
2910         (assign_parms): Call set_mem_attributes.
2911         Delete #if 0 code.
2912         (fix_lexical_address): Put reference to chain into frame alias set.
2913         (expand_function_start): Call set_mem_attributes.
2914         * integrate.c (expand_inline_function): Likewise.
2915         * recog.c (adj_offsettable_operand): Use MEM_COPY_ATTRIBUTES.
2916         * regmove.c (try_apply_stack_adjustment): Likewise.
2917         * reload.c (push_reload, make_memloc): Likewise.
2918         * reload1.c (alter_reg): Make alias sets for spilled pseudos.
2919         * rtl.def (MEM): Update comment.
2920         * rtl.h (MEM_ALIAS_SET): Now uses XCWINT.
2921         (move_by_pieces): Change length to HOST_WIDE_INT.
2922         (record_base_value, record_alias_subset): Delete from here.
2923         * stmt.c (expand_decl): Call set_mem_attributes.
2924         * stor-layout.c (finish_record_layout): Call record_component_aliases.i
2925         * toplev.c (compile_file): Call init_alias_once earlier.
2926         * tree.c (lang_get_alias_set, get_alias_set, new_alias_set): Deleted
2927         from here: now in alias.c.
2928         * tree.h (struct tree_type): alias_set is HOST_WIDE_INT.
2929         (struct tree_decl): Likewise.
2930         (get_alias_set, new_alias_set, lang_get_alias_set): Deleted from here.
2931         * varasm.c (make_function_rtl, make_decl_rtl): Call set_mem_attributes.
2932         (output_constant_def, force_const_mem): Likewise.
2933
2934         * flow.c (propagate_block): If block has no successors, stores to
2935         frame are dead if not used.
2936
2937 2000-05-31  Nathan Sidwell  <nathan@codesourcery.com>
2938
2939         * stmt (expand_end_case): Reorder conversion sequence for jump
2940         table to avoid extra truncations.
2941
2942 Wed May 31 01:31:42 2000  Jeffrey A Law  (law@cygnus.com)
2943
2944         * ifcvt.c (cond_exec_process_if_block): Do nothing if the last insn
2945         in the block is more than just a simple conditional branch.
2946         (noce_process_if_block): Similarly.
2947
2948 Tue May 30 22:25:57 2000  Alexandre Oliva  <aoliva@cygnus.com>
2949
2950         * optabs.c (prepare_float_lib_cmp): Protect *px and *py from
2951         queue.
2952
2953 2000-05-30  Michael Meissner  <meissner@redhat.com>
2954
2955         * dwarf2out.c (dwarf2out_frame_debug_expr): Ignore HIGH
2956         instructions.  Treat LO_SUM operations as loading the full integer
2957         constant.
2958
2959 2000-05-30  Richard Henderson  <rth@cygnus.com>
2960
2961         * combine.c (get_pos_from_mask): Test exact_log2 result as signed.
2962
2963 2000-05-30  Richard Henderson  <rth@cygnus.com>
2964
2965         * bb-reorder.c (emit_jump_to_block_after): Protect use of HAVE_return.
2966
2967 2000-05-30  Bruce Korb  <bkorb@gnu.org>
2968
2969         * fixinc/tests/*:  Added expected result files for fixinc's make check
2970         * fixinc/fixfixes(char_macro_*_fix): Restore original algorithm
2971
2972 2000-05-30  Richard Henderson  <rth@cygnus.com>
2973
2974         * config/alpha/alpha.md (*setne_internal): Use match_operator
2975         instead of working down from insn.
2976
2977 2000-05-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2978
2979         * invoke.texi (-Wtraditional): Update WRT function macros.
2980
2981 Tue May 30 09:57:32 2000  Philippe De Muyter  <phdm@macqel.be>
2982
2983         * except.c (free_exception_table): Do not free NULL.
2984
2985 2000-05-29  Zack Weinberg  <zack@wolery.cumb.org>
2986
2987         * cpplib.c (do_if): Don't save and restore only_seen_white here.
2988         * cppexp.c (_cpp_parse_expr): Save and restore only_seen_white
2989         and skipping here.
2990
2991 2000-05-29  Richard Earnshaw (rearnsha@arm.com)
2992
2993         * flow.c (mark_used_reg): If a register is unconditionally live,
2994         remove any conditional death information.
2995
2996 2000-05-29  Richard Henderson  <rth@cygnus.com>
2997
2998         * final.c (current_output_insn): New.
2999         (final_scan_insn): Set it.
3000         * output.h: Declare it.
3001
3002 2000-05-29  Richard Henderson  <rth@cygnus.com>
3003
3004         * stor-layout.c (finalize_record_size): Fix typo.
3005
3006         * jump.c (redirect_jump): Don't emit NOTE_INSN_FUNCTION_END
3007         if nlabel is null.
3008
3009 2000-05-29  Zack Weinberg  <zack@wolery.cumb.org>
3010
3011         * cpplib.h (cpp_reader): Remove if_stack.  Change
3012         potential_control_macro to a cpp_hashnode *.  Add skipping flag.
3013         * cpphash.h (struct ihash): Change control_macro to a
3014         cpp_hashnode * and shorten name to cmacro.
3015         Add NEVER_REINCLUDE constant.
3016
3017         * cppfiles.c (redundant_include_p): Drop cpp_reader argument.
3018         Examine the cmacro node directly, no need to call cpp_defined.
3019         (_cpp_execute_include, read_include_file): Set cmacro to
3020         NEVER_REINCLUDE, not U"".
3021         * cpplex.c (cpp_push_buffer): Don't set new->if_stack.
3022         (cpp_get_token): If pfile->skipping is true, discard text and
3023         keep scanning until we hit a directive; don't expand macros.
3024
3025         * cpplib.c (struct if_stack): Remove if_succeeded, add
3026         was_skipping. Change control_macro to a cpp_hashnode * and
3027         shorten name to cmacro.  Remove typedef IF_STACK.
3028         (parse_ifdef), detect_if_not_defined): Return a cpp_hashnode *.
3029         (conditional_skip, skip_if_group,
3030         consider_directive_while_skipping): Delete.
3031         (push_conditional): New.
3032         (_cpp_handle_directive): Don't process directives other than
3033         conditionals if we are skipping.
3034
3035         (do_ifdef, do_ifndef, do_if, do_else, do_elif, do_endif):
3036         Update to new scheme.
3037         (validate_else): Skip rest of line here, unconditionally.
3038         (_cpp_unwind_if_stack): The stack is per-buffer.  Force
3039         pfile->skipping off.
3040
3041         (all): Remove `scare quotes' from error messages.
3042
3043 2000-05-29  Richard Henderson  <rth@cygnus.com>
3044
3045         * function.c (emit_return_into_block): New line_note arg; emit it.
3046         (thread_prologue_and_epilogue_insns): Attempt to locate a line note
3047         for the close brace to accompany HAVE_return.  Move all line notes
3048         following the epilogue to before the NOTE_INSN_EPILOGUE_BEG.
3049
3050 2000-05-29  Richard Henderson  <rth@cygnus.com>
3051
3052         * longlong.h [__alpha] (count_leading_zeros): New.
3053         (count_trailing_zeros): New.
3054         (COUNT_LEADING_ZEROS_0): New.
3055
3056         * config/alpha/alpha.c (alpha_zero_comparison_operator): New.
3057         (alpha_split_conditional_move): New.
3058         * config/alpha/alpha-protos.h: Prototype them.
3059         * config/alpha/alpha.h (PREDICATE_CODES): Update.
3060         (CPP_CPU_DEFAULT_SPEC): Fix typo for EV67.
3061         * config/alpha/alpha.md: Update ffs cix commentary.
3062         (*ze_and_ne): New.
3063         (*nabssf2, *nabsdf2): New.
3064         (*mov[qhsd]icc_internal): Use add_operand.
3065         (if_then_else constant splitters): New.
3066         (*cmp_sadd_di, *cmp_sadd_si, *cmp_sadd_sidi): New.
3067         (*cmp_ssub_di, *cmp_ssub_si, *cmp_ssub_sidi): New.
3068
3069 2000-05-29  Richard Henderson  <rth@cygnus.com>
3070
3071         * combine.c (force_to_mode) [MINUS]: Convert subtraction from
3072         a constant to NEG or NOT when conditions allow.
3073
3074         * combine.c (combine_simplify_rtx): Don't create an if_then_else
3075         unless both args are general_operand.  Don't canonicalize plus
3076         to ior unless it helps.
3077
3078         * toplev.c (rest_of_compilation): Set no_new_pseudos after flow1;
3079         instead track register_life_up_to_date.  Toggle no_new_pseudos
3080         around if_convert.
3081
3082 2000-05-28  Geoff Keating  <geoffk@cygnus.com>
3083
3084         * config/rs6000/rs6000.c (output_cbranch): Escape '%' characters
3085         so output_operand doesn't see them.
3086
3087 Sun May 28 18:37:07 2000  Clinton Popetz  <cpopetz@cygnus.com>
3088
3089         * lcm.c (make_preds_opaque): Fix comment.
3090         (optimize_mode_switching): Use NORMAL_MODE instead of
3091         MODE_USES_IN_EXIT_BLOCK.  Change leftover instance of
3092         FP_MODE_NONE to no_mode.  Rename MODE_AT_ENTRY to NORMAL_MODE.
3093         Handle insertions before an existing NOTE_INSN_BASIC_BLOCK.
3094         * tm.texi (OPTIMIZE_MODE_SWITCHING): Refer to NORMAL_MODE.
3095         (MODE_USES_IN_EXIT_BLOCK): Delete.
3096         (MODE_AT_ENTRY) Rename to NORMAL_MODE.
3097         * sh.h (MODE_USES_IN_EXIT_BLOCK): Delete.
3098         (MODE_AT_ENTRY): Rename to NORMAL_MODE.
3099         (MODE_NEEDED): Don't look for USE.
3100         (EPILOGUE_USES): Define.
3101
3102 Sun May 28 23:26:59 2000  Philippe De Muyter <phdm@macqel.be>
3103
3104         * mklibgcc.in (all): Variable initialised to `libgcc'.
3105
3106 2000-05-28  Gabriel Dos Reis  <gdr@codesourcery.com>
3107
3108         * toplev.h (skip_leading_substring): New macro.
3109         * toplev.c (decode_f_option): Use skip_leading_substring instead
3110         of strncmp.
3111         (decode_W_option): Likewise.
3112
3113 2000-05-28  Nick Clifton  <nickc@cygnus.com>
3114
3115         * tm.texi (CONDITIONAL_REGISTER_USAGE): Document that it can
3116         modify reg_names.
3117
3118 2000-05-28  Richard Henderson  <rth@cygnus.com>
3119
3120         * regclass.c (record_operand_costs): Protect reg_changes_size
3121         with CLASS_CANNOT_CHANGE_SIZE.
3122
3123         * loop.c (instrument_loop_bct): Set JUMP_LABEL on the new insn.
3124
3125 2000-05-28  Richard Henderson  <rth@cygnus.com>
3126
3127         * function.c (diddle_return_value): A pcc-style struct return
3128         returns a pointer.
3129
3130 2000-05-27  Zack Weinberg  <zack@wolery.cumb.org>
3131
3132         * cppfiles.c: Read files in, using mmap if possible, then
3133         prescan them separately.
3134         (read_file, read_with_read): New functions.
3135         * cpplex.c: Don't define UCHAR_MAX.
3136         (_cpp_read_and_prescan): Rename to _cpp_prescan.  Don't read
3137         the file here.
3138
3139         * cppinit.c (handle_option): Automatically define __cplusplus,
3140         __OBJC__, __ASEEMBLER__, _LANGUAGE_FORTRAN here when we see
3141         the respective -lang switch.
3142
3143         * cpphash.h (enum node_type, struct hashnode, _cpp_lookup
3144         prototype): Move to...
3145         * cpplib.h: ... here.  Rename struct hashnode to struct
3146         cpp_hashnode and give it a typedef.  Rename _cpp_lookup to
3147         cpp_lookup.  Add 'fe_value' slot, a union tree_node *.
3148
3149 2000-05-27  Geoffrey Keating  <geoffk@cygnus.com>
3150
3151         * config/rs6000/rs6000.md (movsi): Constify 'name'.
3152
3153         * regclass.c [CLASS_CANNOT_CHANGE_SIZE]
3154         (class_can_change_size): New variable.
3155         (reg_changes_size): New variable.
3156         (init_reg_sets_1): Initialise class_can_change_size.
3157         (record_operand_costs): Remove subreg_changes_size.
3158         Don't pass it around.  Instead update reg_changes_size.
3159         (regclass): Initialise and free reg_changes_size.  If a register
3160         changes size, don't preference it to a class that contains
3161         registers that can't change size.
3162         (record_reg_classes): Don't look at subreg_changes_size.
3163
3164 2000-05-27  Richard Henderson  <rth@cygnus.com>
3165
3166         * print-rtl.c (reg_names): Remove const.
3167         * regclass.c (reg_names): Likewise.
3168         * regs.h (reg_names): Likewise.
3169         * hard-reg-set.h (reg_names): Likewise.
3170
3171 2000-05-27  Richard Henderson  <rth@cygnus.com>
3172
3173         * config/rs6000/rs6000.md (untyped_call): Use GEN_CALL.
3174
3175 2000-05-27  Richard Henderson  <rth@cygnus.com>
3176
3177         * config/alpha/alpha.c (alpha_does_function_need_gp): Test
3178         TARGET_PROFILING_NEEDS_GP in the if, instead of with an ifdef.
3179         (alpha_expand_prologue): Emit prologue_mcount if needed.
3180         * config/alpha/alpha.h (TARGET_PROFILING_NEEDS_GP): Default to 0.
3181         * config/alpha/alpha.md (prologue_mcount): New.
3182         * config/alpha/linux.h (FUNCTION_PROFILER): Remove.
3183         (TARGET_PROFILING_NEEDS_GP): Undef before redefining.
3184         * config/alpha/netbsd.h: Likewise.
3185
3186 2000-05-27  Richard Henderson  <rth@cygnus.com>
3187
3188         * config/alpha/elf.h (SELECT_SECTION): Mirror Kenner's May 19
3189         change to config/elfos.h.
3190
3191 2000-05-27  Richard Henderson  <rth@cygnus.com>
3192
3193         * Makefile.in (resource.o): Depend on except.h.
3194         * except.h (output_exception_table_data): Prototype.
3195         * genconfig.c (gen_peephole2): Prototype.
3196         * genemit.c (main): Include ggc.h.
3197         * genoutput.c: Revert parts of last change: include errors.h
3198         (main): Set progname.
3199         * recog.c: Include hard-reg-set.h before recog.h.
3200         * resource.c: Include except.h.
3201
3202         * config/alpha/alpha-protos.h (alpha_arg_info_reg_val): Protect
3203         with RTX_CODE.
3204         (alpha_write_linkage): Protect with BUFSIZ.
3205         (alpha_need_linkage): Update prototype.
3206         * config/alpha/alpha.c (function_arg): Move VMS code here.
3207         (alpha_links_base): Remove.
3208         (alpha_links): New.
3209         (mark_alpha_links_node, mark_alpha_links): New.
3210         (alpha_write_one_linkage): New.
3211         (alpha_need_linkage): Use a splay tree.  Build the linkage symbol.
3212         (alpha_write_linkage): Use splay_tree_foreach.
3213         * config/alpha/alpha.md (call_vms): Use alpha_need_linkage
3214         to get the linkage symbol.
3215         (call_value_vms): Likewise.
3216         * config/alpha/elf.h (output_file_directive): Remove decl.
3217         (ctors_section, dtors_section): Prototype.
3218         (sbss_section, sdata_section): Prototype.
3219         * config/alpha/vms.h (FUNCTION_ARG): Remove.
3220         (readonly_section, link_section, literals_section): Prototype.
3221         (ctors_section, dtors_section): Prototype.
3222         (vms_valid_decl_attribute_p): Remove decl.
3223         (alpha_arg_type, alpha_arg_info_reg_val): Likewise.
3224
3225 2000-05-27  Geoff Keating  <geoffk@cygnus.com>
3226
3227         * reload.c (get_secondary_mem): Don't widen floating-point modes.
3228
3229         * combine.c (subst): Honour CLASS_CANNOT_CHANGE_SIZE when
3230         substituting the REG in a (subreg:X (reg:Y ...)).
3231
3232 2000-05-28  Neil Booth  <NeilB@earthling.net>
3233
3234         * cpplex.c (_cpp_lex_line): Merge vertical space.  Flag
3235         first token of a line BOL.  Update EOF code for this.
3236         Remove illegal directive check - it appears in the (not
3237         yet committed) caller.
3238         * cpplib.h (BOL): New flag.
3239
3240 2000-05-28  Neil Booth  <NeilB@earthling.net>
3241
3242         * cpplex.c (_cpp_init_toklist): No comment space to initialise.
3243         (_cpp_free_toklist): No comment space to free.
3244         (expand_comment_space): Remove.
3245         (save_comment_space): Place the comment in the current token and
3246         not in a separate comment space.
3247         (_cpp_lex_line): Save comments during plain code and #define
3248         directives only.
3249         * cpplib.h (struct _cpp_toklist): Remove comment space.
3250
3251 2000-05-28  Neil Booth  <NeilB@earthling.net>
3252
3253         * cppexp.c (parse_assertion): Supply extra argument to
3254         _cpp_init_toklist.
3255         * cpplib.c (do_assert, do_unassert): Similarly.
3256         * cpphash.h (_cpp_init_toklist) Update.
3257         (_cpp_expand_token_space): New.
3258         (DUMMY_TOKEN, NO_DUMMY_TOKEN): New.
3259         * cpplex.c (_cpp_init_toklist): New argument.
3260         (parse_string2): New argument multiline_ok.
3261         (spell_token): Take a const cpp_token *.
3262         (INIT_NAME): Replace with INIT_TOKEN_NAME.  Update tokens_used.
3263         (SPELL_ macros): Replace with enum.
3264         (expand_token_space): Replace with _cpp_expand_token_space.
3265         Take COUNT argument.
3266         (IS_DIRECTIVE): Update.
3267         (_cpp_lex_line): Update token structure before parsing number.
3268         Don't assume start at beginning of token list.
3269         (save_comment): Use INIT_TOKEN_NAME.
3270
3271 2000-05-27  Zack Weinberg  <zack@wolery.cumb.org>
3272
3273         * configure.in (stage1_warn_cflags): Add -Wstrict-prototypes
3274         -Wmissing-prototypes.
3275         * configure: Regenerate.
3276         * gcc.texi: Remove explanation of MD_CALL_PROTOTYPES.
3277
3278         * builtins.c, calls.c: Change all instances of gen_call_* or
3279         gen_sibcall_* to GEN_CALL_* and GEN_SIBCALL_*.
3280         * calls.c (struct_value_size_rtx): Separate definition from
3281         initialization to avoid unused variable warning.
3282
3283         * genflags.c (gen_macro): New function.
3284         (gen_proto): Call it for gen_call_* and gen_sibcall_*.
3285         (gen_nonproto): Delete.
3286         (gen_insn): Put all insns on the same obstack.
3287         (main): Generate prototypes for everything unconditionally.
3288
3289         * configure.in: Add AC_CHECK_TYPE(ssize_t).  Remove commented
3290         out check for wchar_t.
3291         * acconfig.h: Add template for ssize_t.  Remove @TOP@.
3292         * system.h: Add infrastructure for defining missing
3293         TYPE_MAX/TYPE_MIN macros.  Use it to provide fallback
3294         definitions of UCHAR_MAX and SSIZE_MAX.
3295         * configure: Regenerate.
3296         * config.in: Regenerate.
3297
3298         * Makefile.in (libgcc2.ready): Rename to libgcc.ready.
3299         Depend on $(LANGUAGES) as well as $(GCC_PATCHES) and fixed
3300         headers.
3301         (clean): No need to delete libgcc1.a, libgcc1-asm.a,
3302         libgcc2.a, or libgcc1.null.
3303
3304 2000-05-27  Richard Henderson  <rth@cygnus.com>
3305
3306         * Makefile.in (recog.o): Don't depend on resource.h.
3307         * recog.c: Don't include resource.h.
3308         (recog_last_allowed_insn): Remove.
3309         (recog_next_insn): Remove.
3310         (struct peep2_insn_data): New.
3311         (peep2_insn_data, peep2_current): New.
3312         (peep2_next_insn): New.
3313         (peep2_regno_dead_p, peep2_reg_dead_p): New.
3314         (peep2_find_free_register): New.
3315         (peephole2_optimize): Track life information by insn as we go.
3316         * recog.h: Update declarations.
3317         * resource.c (find_free_register, reg_dead_p): Remove.
3318         * resource.h: Remove their declarations.
3319         * toplev.c: Include hard-reg-set.h before recog.h.
3320
3321         * genconfig.c (max_insns_per_peep2): New.
3322         (gen_peephole2): New.
3323         (main): Call it.
3324         * genemit.c (output_peephole2_scratches): Generate calls to
3325         peep2_find_free_register; adjust surrounding code.
3326         (main): Have insn-emit.c include hard-reg-set.h before recog.h.
3327         * genrecog.c (change_state): Don't track last_insn.
3328         (write_action): Write into *_pmatch_len before accepting.
3329         (write_tree): Adjust peephole2_insns and subroutines to match.
3330
3331         * config/i386/i386.md (all peepholes): Use peep2_regno_dead_p.
3332
3333         * config/alpha/alpha.c (hard_fp_register_operand): Mind the mode.
3334         (hard_int_register_operand): New.
3335         * config/alpha/alpha-protos.h: Declare it.
3336         * config/alpha/alpha.h (PREDICATE_CODES): Update.
3337         * config/alpha/alpha.md (peep2 patterns): Use hard_int_register_operand
3338         as needed; use peep2_reg_dead_p instead of dead_or_set_p.
3339
3340 2000-05-27  Richard Henderson  <rth@cygnus.com>
3341
3342         * function.c (thread_prologue_epilogue_insns): Don't move the
3343         line note at the head of the chain.  Only force a lineno note
3344         before the end of block 0.
3345
3346 2000-05-27  Richard Henderson  <rth@cygnus.com>
3347
3348         * gensupport.c (collect_insn_data): Record the maximum number
3349         of alternatives, not the last seen.
3350
3351         * genoutput.c: Don't include errors.h.
3352         (struct data): Add lineno member.
3353         (have_error): New.
3354         (scan_operands): Use message_with_line instead of error.
3355         (validate_insn_alternatives): Likewise.
3356         (gen_insn): Accept and store the pattern's line number.
3357         (gen_peephole, gen_expand, gen_split): Likewise.
3358         (main): Don't set progname.  Pass line_no to gen_foo.
3359
3360 2000-05-27  Richard Henderson  <rth@cygnus.com>
3361
3362         * config/d30v/d30v.c (d30v_print_operand): Handle ':'.
3363         * config/d30v/d30v.h (PRINT_OPERAND_PUNCT_VALID_P): Accept ':'.
3364         * config/d30v/d30v.md (attr predicable): New.
3365         (all insn patterns): Mark non-predicable patterns; use %: on the rest.
3366         (andsi3*): Unify into one pattern.
3367         (iorsi3*, xorsi3*): Likewise.
3368         (peephole2 patterns): Use peep2_reg_dead_p; verify not a
3369         conditional return.
3370         (old cond_exec patterns): Remove.
3371         (define_cond_exec): New.
3372
3373 Sat May 27 11:01:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3374
3375         * tree.h (TREE_CODE_LENGTH): New macro.
3376         * c-common.c (c_find_base_decl): Use it.
3377         * expr.c (safe_from_p): Likewise.
3378         * print-tree.c (print_node): Likewise.
3379         * tree.c (make_node, copy_node, get_identifier): Likewie.
3380         (first_rtl_op, contains_placeholder_p, substitute_in_expr): Likewise.
3381         (build, build_nt, build_parse_node, simple_cst_equal): Likewise.
3382         * fold-const.c (make_range): Likewise.
3383         (fold): Likewise; also use first_rtl_op.
3384         * c-iterate.c (collect_iterators): Use first_rtl_op.
3385         * calls.c (calls_function_1): Likewise; also rename TYPE to CLASS.
3386         Use IS_EXPR_CODE_CLASS.
3387         (preexpand_calls): Likewise.
3388         * ggc-common.c (ggc_mark_trees): Rework to use first_rtl_op
3389         and TREE_CODE_LENGTH.
3390         * stmt.c (warn_if_unused_value): If no operands, no unused value.
3391
3392 2000-05-26  Geoffrey Keating  <geoffk@cygnus.com>
3393
3394         * config/rs6000/rs6000.md (movsi_internal1): Use '%a1' rather
3395         than '%1(%*)'.
3396         (movdi_internal64): Likewise.
3397
3398         * config/rs6000/rs6000.md: Correct order of operands for DImode
3399         boolean patterns.
3400
3401         * config/rs6000/rs6000.c (boolean_or_operator): New function.
3402         * config/rs6000/rs6000-protos.h (boolean_or_operator): Prototype it.
3403         * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_or_operator.
3404         * config/rs6000/rs6000.md: Use boolean_or_operator instead of
3405         boolean_operator for the boolean patterns without NOTs.
3406
3407         * config/rs6000/rs6000.c (reg_or_logical_cint_operand): Rename
3408         from reg_or_u_cint_operand.  Change comment and behaviour.
3409         (logical_operand): Clean up, add assertion.
3410         (non_logical_cint_operand): Also check for
3411         reg_or_logical_cint_operand.
3412         * config/rs6000/rs6000.h (PREDICATE_CODES): Update.
3413         * config/rs6000/rs6000.md (iorsi3): Use reg_or_logical_cint_operand
3414         in the expander.
3415         (xorsi3): Likewise.
3416         (iordi3): Likewise.
3417         (xordi3): Likewise.
3418
3419 2000-05-26  Mark Mitchell  <mark@codesourcery.com>
3420
3421         * tree.h (struct record_layout_info): Rename to (struct
3422         record_layout_info_s).
3423         * stor-layout.c (start_record_layout): Replace
3424         `record_layout_info' with `record_layout_info_s'.
3425
3426 2000-05-26  Richard Earnshaw  <rearnsha@arm.com>
3427
3428         * flow.c (find_label_refs): New function.
3429         (find_basic_blocks_1): Call it for each alternative of a call
3430         placeholder.
3431
3432 2000-05-26  Richard Earnshaw  <rearnsha@arm.com>
3433
3434         * ifcvt.c (cond_exec_get_condition): Set test_if to the SET_SRC
3435         of get_pc.
3436
3437 2000-05-25  Richard Henderson  <rth@cygnus.com>
3438
3439         * config/alpha/alpha.c (alpha_comparison_operator): Don't be
3440         so strict about DImode.
3441         (alpha_swapped_comparison_operator): Likewise.
3442         * config/alpha/alpha.md (*setne_internal): Name it.  Allow
3443         any integer output mode.
3444         (*setcc_internal): Likewise.
3445         (*setcc_swapped_internal): Likewise.
3446         (*movdicc_internal, *movdicc_lbc, *movdicc_lbs): Name them.
3447         (*mov[qhs]icc_internal): New.
3448         (*mov[qhs]icc_lbc, *mov[qhs]icc_lbs): New.
3449
3450 2000-05-25  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
3451
3452         * vax.h (CPP_SPEC): Define __GFLOAT and GFLOAT when -mg is specified.
3453
3454 2000-05-25  Richard Henderson  <rth@cygnus.com>
3455
3456         * bb-reorder.c (reorder_block_def): Reorder elements for size.
3457         Remove add_jump; add next; replace flags with visited.
3458         (rbd_init): Remove.
3459         (REORDER_BLOCK_HEAD, REORDER_BLOCK_VISITED): Remove.
3460         (REORDER_BLOCK_FLAGS, REORDER_BLOCK_INDEX): Remove.
3461         (REORDER_BLOCK_ADD_JUMP, REORDER_BLOCK_EFF_HEAD): Remove.
3462         (REORDER_BLOCK_EFF_END, REORDER_BLOCK_SCOPE): Remove.
3463         (RBI): New.
3464         (reorder_index, reorder_last_visited): Remove.
3465         (skip_insns_after_block): Rewrite to use a switch.
3466         (get_common_dest): Remove.
3467         (chain_reorder_blocks): Remove.
3468         (record_effective_endpoints): Split out from reorder_basic_blocks.
3469         (make_reorder_chain): Likewise.  Loop until all blocks are placed.
3470         (make_reorder_chain_1): Renamed from old make_reorder_chain.
3471         Only construct the reorder chain, do not move insns.  Try harder
3472         to tail recurse.
3473         (label_for_bb, emit_jump_to_block_after): New.
3474         (fixup_reorder_chain): Use them.  Do bulk block movement.  Examine
3475         and adjust the jump insns appropriately.  Fixup basic_block_info.
3476         (verify_insn_chain): Always define.
3477         (relate_bbs_with_scopes): Call xmalloc, not xcalloc.  Fix thinko
3478         in allocation size.
3479         (make_new_scope): Don't write zeros to calloc'd space.
3480         (build_scope_forest): Rely on xrealloc to DTRT.
3481         (reorder_basic_blocks): Don't build loop nest.  Don't fail if
3482         profile_arc_flag.  Streamline EH test.
3483
3484         * flow.c (redirect_edge_succ, redirect_edge_pred): New.
3485         * basic-block.h: Declare them.
3486
3487 2000-05-25  Alexandre Oliva  <aoliva@cygnus.com>
3488
3489         * emit-rtl.c (reset_used_decls): New function.
3490         (unshare_all_rtl_again): Call it.
3491
3492 2000-05-25  Zack Weinberg  <zack@wolery.cumb.org>
3493
3494         * cpplex.c (maybe_macroexpand): Warn about function-like
3495         macros used in non-function context, if -Wtraditional.
3496
3497 2000-05-25  Mark Mitchell  <mark@codesourcery.com>
3498
3499         * recog.c (peephole2_optimize): Use INSN_P.
3500
3501 2000-05-25  Richard Henderson  <rth@cygnus.com>
3502
3503         * ifcvt.c (seq_contains_jump): New.
3504         (noce_try_store_flag_constants): Use it to fail conversion.
3505         (noce_try_store_flag_inc, noce_try_store_flag_mask): Likewise.
3506
3507 2000-05-25  Mark Mitchell  <mark@codesourcery.com>
3508
3509         * except.h (can_throw): Declare it.
3510         * except.c (can_throw): Give it external linkage.
3511         * resource.c (find_dead_or_set_registers): Use can_throw.
3512
3513 2000-05-25  Richard Henderson  <rth@cygnus.com>
3514
3515         * flow.c (mark_set_1): Don't record conditionally dead memory.
3516
3517 2000-05-25  Jan Hubicka  <jh@suse.cz>
3518
3519         * combine.c (try_combine): Use any_condjump_p, any_uncondjump_p
3520         and pc_set at the place of simplejump_p and condjump_p.
3521         * cse.c (record_jump_equiv): Likewise.
3522         * emit-rtl.c (emit): Likewise.
3523         * explow.c (find_next_ref): Likewise.
3524         * flow.c (tidy_fallthru_edge): Likewise.
3525         (init_propagate_block_info): Likewise.
3526         * gcse.c (delete_null_pointer_checks): Likewise.
3527         * ifcvt.c (cond_exec_get_condition, noce_get_condition,
3528         dead_or_predicable): Likewise.
3529         * integrate.c (copy_insn_list): Likewise.
3530         * loop.c (scan_loop, verify_dominator, find_and_verify_loops,
3531         for_each_insn_in_loop, check_dbra_loop, get_condition,
3532         insert_bct, load_mems): Likewise.
3533         * resource.c (find_dead_or_set_registers): Likewise.
3534         * sibcalls.c (simplejump_p): Likewise.
3535         * unroll.c (copy_loop_body, reg_dead_after_loop): Likewise.
3536
3537 2000-05-25  David Edelsohn  <edelsohn@gnu.org>
3538
3539         * rs6000.c (expand_block_move): Add 64-bit PowerPC doubleword move
3540         to STRING case.  Use doubleword STRING move for TARGET_POWERPC64
3541         when unaligned.
3542         * rs6000.h (CONST_OK_FOR_LETTER_P, 'J'): unsigned HOST_WIDE_INT.
3543         (RETURN_ADDR_RTX): Use COUNT and FRAME, not count and frame.
3544         (LEGITIMIZE_RELOAD_ADDRESS): unsigned HOST_WIDE_INT high.
3545         * rs6000.md: Name various internal patterns.
3546
3547 2000-05-25  Jan Hubicka  <jh@suse.cz>
3548
3549         * jump.c (invert_exp_1): Remove first argument, use pc_set
3550         to get the expression.
3551         (redirect_exp): Make static; redirect only the pc_set expression,
3552         remove first argument.
3553         (invert_exp): Remove first argument, make static.
3554         (jump_optimize): Use any_condjump_p, any_uncondjump_p and
3555         any_onlyjump at most places where we originaly did condjump_p
3556         and simplejump_p.
3557         (jump_back_p, follow_jumps, thread_jumps): Likewise.
3558         (delete_barrier_succesors): Use pc_set.
3559         (invert_jump_1, invert_jump, redirect_jump_1, redirect_jump): Update
3560         calls of invert_exp and redirect_exp.
3561         * rtl.h (redirect_exp, invert_exp): Remove.
3562         * unroll.c (copy_loop_body): Use invert_jump and redirect_jump.
3563
3564 2000-05-25  Richard Henderson  <rth@cygnus.com>
3565
3566         * stmt.c (expand_end_bindings): Fix thinko last change.
3567
3568 2000-05-25  Andrew MacLeod  <amacleod@cygnus.com>
3569             Andrew Haley  <aph@cygnus.com>
3570
3571         * except.c  (func_eh_entry): Add emitted field.
3572         (new_eh_region_entry): Set emitted field to 0;
3573         (output_exception_table_entry): Only emit previously un-emitted data,
3574         and send it to the eh_data section.
3575         (output_exception_table): Break out common parts. Output
3576         exception table for entire compilation unit to eh_data section.
3577         (output_exception_table_data): Common parts of output_exception_table.
3578         Send output to eh_data section.
3579         (output_function_exception_table): Output exception table data for
3580         a single function to eh_data section.
3581         (free_exception_table): New external to free the table.
3582         * except.h (free_exception_table): Add prototype.
3583         (output_function_exception_table): Add prototype.
3584         * final.c (final_end_function): Output function exception table
3585         for IA64_UNWIND_INFO.
3586         (final_scan_insn): Emit any unwind directives for an insn.
3587
3588         * frame-dwarf2.c: New file containing all DWARF 2 specific code
3589         from frame.c.
3590         * frame.c: Remove all DWARF 2 specific code.
3591         * config/ia64/frame-ia64.c: New file.
3592         (gthread_stuff): Make all gthread available with
3593         IA64_UNWIND_INFO.
3594         (dwarf_fde): Define an IA64 struct for dwarf_fde.
3595         (__register_frame_info, __register_frame): Move to common area of file.
3596         (__register_frame_info_table, __register_frame_table): Move to common i
3597         area.
3598         (__deregister_frame_info, __deregister_frame): Move to common area.
3599         (__frame_init, find_fde): New versions for IA64_UNWIND_INFO.
3600         (read_uleb128): New version for ia64.
3601         (get_unwind_record): Read the next IA-64 unwind record.
3602         (read_R_record): Read a region header record.
3603         (process_a_b_reg_code): X record helper.
3604         (read_X_record): Read an X format record.
3605         (read_B_record): Read a B format record.
3606         (P3_record_types): List of record types matching the P3 format.
3607         (P7_record_types): List of record types matching the P7 format.
3608         (P8_record_types): List of record types matching the P8 format.
3609         (read_P_record): Read a P format record.
3610         (init_ia64_reg_loc): Set default fields for a register.
3611         (init_ia64_unwind_frame): Set defaults for all register records.
3612         (execute_one_ia64_descriptor): Execute one descriptor record.
3613         (rse_address_add): Calculate the position of a local reg in memory.
3614         (normalize_reg_loc): Turn a location descriptor into a memory address.
3615         (maybe_normalize_reg_loc): Only normalize a descriptor if it falls
3616         within a specified PC offset range.
3617         (get_real_reg_value): Given a register location, retrieve its value.
3618         (set_real_reg_value): Change the value of a register location.
3619         (copy_reg_value): Copy reg values, if needed.
3620         (copy_saved_reg_state): Copy all registers that need to be copied.
3621         (process_state_between): Normalize all frame register records that
3622         fall within the specified PC range.
3623         (frame_translate): Take a processed frame description, and turn
3624         everything into addresses.
3625         (build_ia64_frame_state ): Find and create frame state record for a PC.
3626         (get_personality): Get the personality routine for a given frame.
3627         (get_except_table): Get the exception table for a given frame.
3628         (record_name): Unwind record names for debugging.
3629         (print_record): Print and unwind record.
3630         (print_all_records): Print an entire unwind image.
3631         (__ia64_backtrace): Print a backtrace.
3632         (ia64_backtrace_helper): New function.
3633         (__register_frame_info_aux): New function.
3634         * config/ia64/crtend.asm (__do_frame_setup_aux): New function.
3635
3636         * frame.h (enum unw_record_type): New unwind record types.
3637         (struct unw_p_record, unw_b_record, unw_x_record) : New unwind records.
3638         (struct unw_r_record, unwind_record): New unwind record structs.
3639         (struct unwind_info_ptr): Unwind information layout.
3640         (IA64_UNW_LOC_TYPE_*): Macros for different types for location
3641         descriptors.
3642         (struct ia64_reg_loc): Register location description.
3643         (struct ia64_frame_state): Location of all registers in a frame.
3644         (struct object): Add pc_base and fde_end for IA64_UNWIND_INFO.
3645         * libgcc2.c (__ia64_personality_v1): Personality routine.
3646         (__calc_caller_bsp): Calculate the bsp register for the caller's
3647         frame.
3648         (ia64_throw_helper): Figure out who to return to and set up the
3649         registers.
3650         (__throw): Throw routine.
3651
3652         * output.h (assemble_eh_align, assemble_eh_label): New functions
3653         to generate EH info where we want it.
3654         (assemble_eh_integer): New function.
3655         * toplev.c (compile_file): Output module level exception table for
3656         non-ia64 targets.
3657         (main): Set exceptions_via_longjump and flag_new_exceptions based
3658         on IA64_UNWIND_INFO too.
3659
3660         * varasm.c (assemble_eh_label): Generate a label via
3661         ASM_OUTPUT_EH_LABEL if it has been specified.
3662         (assemble_eh_align): Generate an alignment directive via
3663         ASM_OUTPUT_EH_ALIGN if it has been specified.
3664         (assemble_eh_label): Generate an integer value via
3665         ASM_OUTPUT_EH_type if they have been specified.
3666         * config/ia64/ia64.c (rtx_needs_barrier): Add flushrs.
3667         (ia64_init_builtins): Add __builtin_ia64_bsp
3668         and __builtin_ia64_flushrs.
3669         (ia64_expand_builtin): Add IA64_BUILTIN_BSP and
3670         IA64_BUILTIN_FLUSHRS.
3671         * config/ia64/ia64.h (ia64_builtins): Add IA64_BUILTIN_BSP and
3672         IA64_BUILTIN_FLUSHRS.
3673
3674         * config/ia64/ia64.md (flushrs): New insn to flush the register
3675         stack.  Add to unspec list.
3676
3677         * config/ia64/crtbegin.asm (frame_object): Change size.
3678         (__do_frame_setup_aux): New function.
3679         * config/ia64/crtend.asm: call __do_frame_setup_aux.
3680         * config/ia64/t-ia64 (LIB2ADDEH): Add.
3681         * Makefile.in (LIB2ADDEH): Add.
3682         (LIB2ADD): Use LIB2ADDEH.
3683
3684 2000-05-24  Richard Henderson  <rth@cygnus.com>
3685
3686         * recog.c (offsettable_address_p): If mode size is zero, assume
3687         BIGGEST_ALIGNMENT.
3688
3689 2000-05-24  J. David Anglin  <dave@hiauly.hia.nrc.ca>
3690
3691         * configure.in: Check for -Wno-long-long option support and improve
3692         handling of warning CFLAGS for stages 1 and 2.
3693         * Makefile.in (WARN_CFLAGS): Move definition to configure.in.
3694         * configure: Regenerate.
3695
3696 Wed May 24 19:37:53 2000  Jeffrey A Law  (law@cygnus.com)
3697
3698         * gcc.texi: Remove contributor list.  Instead include contrib.texi.
3699         * contrib.texi: New file.
3700
3701 Thu May 25 02:27:22 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3702
3703         * loop.c (basic_induction_var): Avoid double recording of an increment.
3704
3705 Thu May 25 02:19:27 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3706
3707         * Back out this patch:
3708         Tue Dec  7 19:22:06 1999  Richard Henderson  <rth@cygnus.com>
3709           * loop.h (struct induction): Add multi_insn_incr.
3710           * loop.c (basic_induction_var): New multi_insn_incr argument.
3711           Set it if we search back through previous insns for the biv.
3712           (record_biv): New multi_insn_incr argument; fill in struct induction.
3713           (strength_reduce): Discard an iv with multiple bivs, any of
3714           which require multiple insns to increment.
3715
3716         * loop.c (check_insn_for_bivs): Remove bits copied from above patch.
3717
3718 Thu May 25 02:09:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3719
3720         * rtl.h (loc_mentioned_in_p): Declare.
3721         * reload.c (loc_mentioned_in_p): Moved from here...
3722         * rtlanal.c (loc_mentioned_in_p): to here.  No longer static.
3723         Fix loop increment for 'E' handling.
3724         * loop.c (strength_reduce): When doing biv->giv conversion,
3725         take multi-insn biv increments into account.
3726
3727 2000-05-24  Jason Merrill  <jason@casey.soma.redhat.com>
3728
3729         * stmt.c (expand_end_bindings): Look through NOTEs to find a
3730         BARRIER.
3731
3732 2000-05-24  Mark Mitchell  <mark@codesourcery.com>
3733
3734         * calls.c (expand_call): Handle cleanups in tail-recursion
3735         arguments analagously to cleanups in sibling calls.
3736
3737 2000-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3738
3739         * simplify-rtx.c: Rename macro SIGN_EXTEND to HWI_SIGN_EXTEND.
3740         All callers changed.
3741
3742 2000-05-24  Alexandre Oliva  <aoliva@cygnus.com>
3743
3744         * expr.c (expand_assignment, store_expr, expand_expr,
3745         expand_expr_unaligned): Set in_check_memory_usage while emitting
3746         chkr_check_addr libcall.
3747
3748 2000-05-24  Nick Clifton  <nickc@cygnus.com>
3749
3750         * fold-const.c (extract_muldiv): When constructing a
3751         multiplier/divisor, do not expect const_binop to correctly
3752         determine if overflow has occured, so check explicitly.
3753
3754 2000-05-24  Alexandre Oliva  <aoliva@cygnus.com>
3755
3756         * c-decl.c (build_enumerator): Don't modify the value's type,
3757         convert it.
3758
3759 2000-05-24  Andreas Jaeger  <aj@suse.de>
3760
3761         * mips.h (LINKER_ENDIAN_SPEC): Pass -EL to linker by default.
3762
3763 2000-05-24  Eric Christopher <echristo@cygnus.com>
3764
3765         * configure.in: Redefine inhibit_libc conditions.
3766         * libgcc2.c: Remove inhibit_libc conditional define.
3767         * configure: Regenerate.
3768
3769 2000-05-24  Phil Edwards  <pme@sourceware.cygnus.com>
3770
3771         * configure.in:  For --enable-languages=LIST, check for empty LIST.
3772         * configure:  Regenerate.
3773
3774 2000-05-24  Lars Brinkhoff  <lars@nocrew.org>
3775
3776         * pdp11.h (STACK_BOUNDARY): Define.
3777
3778 2000-05-24  Jakub Jelinek  <jakub@redhat.com>
3779
3780         * ifcvt.c (if_convert): Update life info globally.
3781
3782 2000-05-24  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
3783
3784         * emit-rtl.c (unshare_all_decls): New function.
3785         (unshare_all_rtl): Call it.
3786
3787 2000-05-23  Nick Clifton  <nickc@cygnus.com>
3788
3789         * configure.in: Treat 'strongarm' as if it were 'arm' when
3790         determining cpu type.
3791
3792         * configure: Regenerate.
3793
3794         * config/arm/arm.c: Change 'char *' to 'const char *' for cases
3795         where constant strings are involved.
3796
3797         * config/arm/arm.h (arm_condition_codes): Change type to 'const
3798         char *'.
3799
3800         * config/arm/arm-protos.h: Change 'char *' to 'const char *' for
3801         cases where constant strings are involved.
3802
3803 Tue May 23 15:08:31 2000  Clinton Popetz  <cpopetz@cygnus.com>
3804
3805         * config/sh/sh.c (gen_far_branch, split_branches): Update
3806         to reflect new prototypes for redirect_jump and invert_jump.
3807         (sh_insn_length_adjustment): Get rid of const warnings.
3808
3809 2000-05-23  Kazu Hirata  <kazu@hxi.com>
3810
3811         * invoke.texi (Options for Debugging Your Program or GCC): Update
3812         the names of dump files.
3813
3814 Tue May 23 13:58:52 2000  Philippe De Muyter  <phdm@macqel.be>
3815
3816         * configure.in (NO_MINUS_C_MINUS_O): Fix thinko in previous fix.
3817         * configure: Regenerated.
3818
3819 2000-05-23  Zack Weinberg  <zack@wolery.cumb.org>
3820
3821         * simplify-rtx.c (SIGN_EXTEND): New macro.
3822         (simplify_unary_operation, simplify_binary_operation,
3823         simplify_relational_operation): Use SIGN_EXTEND.  Make low
3824         halves of (low, high) pairs unsigned if they weren't already.
3825         (simplify_ternary_operation): Cast INTVAL to unsigned before
3826         comparing to a MODE_BITSIZE.
3827
3828 2000-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3829
3830         * aclocal.m4 (gcc_AC_CHECK_DECL, gcc_AC_CHECK_DECLS): New macros
3831         rewritten from the internals of gcc_AC_NEED_DECLARATION{S}.
3832
3833         * configure.in (gcc_AC_CHECK_DECLS): Call this instead of
3834         gcc_AC_NEED_DECLARATIONS.
3835
3836         * dwarfout.c: Don't prototype time().
3837
3838         * gcc.c: Check HAVE_DECL_* instead of NEED_DECLARATION_*.
3839
3840         * system.h: Likewise.
3841
3842         * toplev.c: Likewise.
3843
3844 2000-05-23  Zack Weinberg  <zack@wolery.cumb.org>
3845
3846         * c-decl.c (pushdecl): Invert sense of test for non-global types.
3847
3848 Tue May 23 18:11:42 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3849
3850         * reload1.c (reload_cse_move2add): Honor TRULY_NOOP_TRUNCATION.
3851
3852 2000-05-23  Jonathan Larmour  <jlarmour@redhat.co.uk>
3853
3854         * config/mips/elf64.h (CTOR_LISTS_DEFINED_EXTERNALLY): Define
3855
3856 Tue May 23 06:50:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3857
3858         * config/alpha/alpha.c: Remove #ifdef HAIFA since now only scheduler.
3859         (alpha_start_function): Never write ..ng label if VMS or NT.
3860         (alpha_align_insns): Remove GP_IN_USE arg.
3861         Alignment now unsigned.
3862         (alpha_reorg): Don't pass GP_IN_USE arg to alpha_align_insns.
3863         * config/alpha/alpha.md (prologue_ldgp): Split into one define_expand
3864         and two define_insn's.
3865
3866 2000-05-22  Richard Henderson  <rth@cygnus.com>
3867
3868         * combine.c (simplify_comparison): Use trunc_int_for_mode.
3869
3870 2000-05-22  Richard Henderson  <rth@cygnus.com>
3871
3872         * stor-layout.c (place_field): Change rli->size to rli->offset.
3873
3874 2000-05-22  Richard Henderson  <rth@cygnus.com>
3875
3876         * function.c (thread_prologue_and_epilogue_insns): Make sure
3877         existing line number notes appear after the prologue.
3878
3879 Mon May 22 21:49:00 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3880
3881         * config/alpha/alpha.c (alpha_fnname): New static variable.
3882         (print_operand, case '~'): New case.
3883         (alpha_expand_prologue): Emit prologue_ldgp insn if needed.
3884         (alpha_start_function): Set alpha_fnname.
3885         Write "ng" label if no ldgp; don't write ldgp insn.
3886         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): New case '~'.
3887         * config/alpha/alpha.md (prologue_ldgp): New define_insn.
3888
3889 Mon May 22 11:30:48 2000  Clinton Popetz  <cpopetz@cygnus.com>
3890
3891         * jump.c (jump_optimize_1): Don't increment LABEL_NUSES
3892         on deleted labels.
3893
3894 2000-05-22  Zack Weinberg  <zack@wolery.cumb.org>
3895
3896         * varasm.c (eh_frame_section): Revert change to argument list.
3897
3898 Mon May 22 13:14:03 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3899
3900         * optabs.c (can_extend_p): Allow unsignedp to have any nonzero value.
3901         (gen_extend_insn, can_fix_p, can_float_p): Likewise.
3902
3903         * final.c (final_scan_insn, case NOTE_INSN_FUNCTION_BEG): Remove
3904         dangling "else" that causes "break" to be conditional.
3905         Also remove unneeded code at start.
3906
3907 Mon May 22 17:31:35 2000  Philippe De Muyter  <phdm@macqel.be>
3908
3909         * m68k/m68k.h (STORE_FLAG_VALUE): Macro set to (-1), not -1.
3910         * fx80/fx80.h, i370/i370.h, m88k/m88k.h (STORE_FLAG_VALUE): Ditto.
3911         * gmicro/gmicro.h, we32k/we32k.h (STORE_FLAG_VALUE): Ditto.
3912
3913 2000-05-22  Jakub Jelinek  <jakub@redhat.com>
3914
3915         * config/sparc/sparc.md (movdf_insn_v9only_vis): fzero has
3916         just one argument.
3917
3918 Mon May 22 06:57:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3919
3920         * alias.c (record_component_aliases): New function.
3921         * tree.h: Clean up some declarations and comments.
3922         (record_component_aliases): New declaration.
3923         * tree.c (get_alias_set): If type and has alias set, use it.
3924
3925 2000-05-22  Richard Henderson  <rth@cygnus.com>
3926
3927         * simplify-rtx.c (simplify_ternary_operation): Try to simplify
3928         IF_THEN_ELSE to a setcc form.
3929         * jump.c (can_reverse_comparison_p): Be prepared for insn null.
3930
3931 2000-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3932
3933         * fixinc/inclhack.def (sun_malloc): Handle `calloc'.
3934         (sun_malloc, sysz_stdtypes_for_sun): Add test_text.
3935
3936 Sun May 21 16:42:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3937
3938         * combine.c (try_combine): Handle i3_subst_into_i2 case when I2 is
3939         not a PARALLEL.
3940
3941 2000-05-20  Alexandre Oliva  <aoliva@cygnus.com>
3942
3943         * config/mn10300/mn10300.md (movdi, movdf): 64-bit clean-up.
3944         * config/mn10300/mn10300.c (print_operand): Likewise.
3945
3946         * final.c (split_double): Right shift of negative values is not
3947         portable.
3948
3949         * ifcvt.c (if_convert): Scan and kill dead code.
3950
3951         * emit-rtl.c (unshare_all_rtl): Store the copied rtx.
3952
3953 2000-05-20  Zack Weinberg  <zack@wolery.cumb.org>
3954
3955         * diagnostic.c: Eliminate implicit int.
3956         * except.c, gcc.c: Add static prototypes.
3957         * final.c (final_end_function): Mark file arg ATTRIBUTE_UNUSED.
3958         * gensupport.c (process_rtx): Use XVEC to initialize vector
3959         slot of 'split'.
3960
3961         * print-rtl.c: If DEBUG_REGISTER_NAMES, define static
3962         debug_reg_names instead of static reg_names.  If not, define
3963         global reg_names.
3964         * regclass.c: Don't define global reg_names unless
3965         DEBUG_REGISTER_NAMES is defined.
3966
3967         * reload1.c (order_regs_for_reload): Remove unused variable.
3968         * varasm.c: Include output.h after defaults.h.  Define
3969         eh_frame_section as function of no args, not of unspecified args.
3970
3971         * gcc.c: Constify argbuf; arguments to store_arg,
3972         process_command, main; elements of struct command and struct
3973         switchstr; local variables in execute, process_command, main.
3974
3975 2000-05-20  Bruce Korb  <bkorb@gnu.org>
3976
3977         * fixinc/inclhack.def:  many applications of c_fix=format + tests
3978         * fixinc/check.diff:  regenerated
3979         * fixinc/fixincl.x:  regenerated
3980
3981 Sat May 20 09:30:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3982
3983         * alias.c: Clarify some comments.
3984         (record_base_value): REGNO is unsigned.
3985         * rtl.h (record_base_value): Likewise.
3986
3987         * alias.c (aliases_everything_p): Don't special-case QImode here.
3988         * c-common.c (c_get_alias_set): Do it here.
3989         Handle BIT_FIELD_REF by getting alias info for arg.
3990         Use POINTER_TYPE_P.
3991
3992 2000-05-20  Alexandre Oliva  <aoliva@cygnus.com>
3993
3994         * mklibgcc.in: Restore rule to create ${dir}.
3995
3996 Sat May 20 08:45:41 2000  H.J. Lu  <hjl@gnu.org>
3997
3998         * Makefile.in (libgcc.mk): Depend on xgcc$(exeext) for
3999         GCC_FOR_TARGET used by MULTILIBS.
4000         * mklibgcc.in: Make sure each .o file depends on the
4001         directory it will be in.
4002         Make the multilib directory depends libgcc.
4003
4004 Sat May 20 08:29:28 2000  H.J. Lu  <hjl@gnu.org>
4005
4006         * Makefile.in (bootstrap): Unset LANG_LIB2FUNCS for stage 1.
4007
4008 Sat May 20 07:27:35 2000  Alexandre Oliva  <aoliva@cygnus.com>
4009
4010         * fold-const.c (make_range): Handle degenerated intervals.
4011         Fixes c-torture/execute/991221-1.c
4012
4013 Fri May 19 18:16:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4014
4015         * cse.c (cse_basic_block): Only call find_reg_note if REG_NOTES not 0.
4016         * reload.c (find_equiv_reg): Likewise.
4017         * alias.c (init_alias_analysis): Likewise.
4018         Only call prologue_epilogue_contains on insns.
4019         * basic-block.h (REG_SET_TO_HARD_REG_SET): Call new function.
4020         * bb-reorder.c (hard-reg-set.h): Include earlier.
4021         * haifa-sched.c (hard-reg-set.h): Likewise.
4022         * ifcvt.c (hard-reg-set.h): Likewise.
4023         * local-alloc.c (hard-reg-set.h): Likewise.
4024         * loop.c (hard-reg-set.h): Likewise.
4025         * predict.c (hard-reg-set.h): Likewise.
4026         * regrename.c (hard-reg-set.h): Likewise.
4027         * flow.c (hard-reg-set.h): Likewise.
4028         (reg_set_to_hard_reg_set): New function.
4029         * bitmap.c (regs.h, basic-block.h): No longer include.
4030         (bitmap.h): Now include.
4031         * conflict.c (hard-reg-set.h): Include.
4032         * profile.c (hard-reg-set.h): Likewise.
4033         * print-rtl.c (hard-reg-set.h): Likewise.
4034         * sbitmap.c (hard-reg-set.h): Likewise.
4035         * toplev.c (hard-reg-set.h): Likewise.
4036         * unroll.c (hard-reg-set.h, basic-block.h): Likewise.
4037         * hard-reg-set.h (reg_names): Now constant.
4038         * regs.h (reg_names): Likewise.
4039         * regclass.c (reg_names): Likewise.
4040         * loop.h (basic-block.h): No longer include.
4041         (bitmap.h): Now include.
4042         * reload1.c (order_regs_for_reload): Avoid loop over reg sets.
4043         * Makefile.in (LOOP_H, sbitmap.o, profile.o): Reflect above changes.
4044         (toplev.o, print-rtl.o, conflict.o, unroll.o, bitmap.o): Likewise.
4045
4046 2000-05-19  Jan Hubicka  <jh@suse.cz>
4047             Richard Henderson  <rth@cygnus.com>
4048
4049         * basic-block.h (struct edge_def): New field "count".
4050         (struct basic_block_def): Likewise.
4051         * flow.c (entry_exit_blocks): Add count fileds.
4052         (split_edge): Keep count information up-to-date.
4053         (dump_edge_info, dump_flow_info): Dump count fields.
4054
4055         * final.c (count_instrumented_edges): Rename to edge from arc.
4056         (end_final): Update users.
4057         * profile.c: Include expr.h, basic-block.h.
4058         (struct adj_list, ARC_TARGET, ARC_SOURCE, ARC_COUNT): Kill.
4059         (struct bb_info, label_to_bb, label_to_bb_size, bb_graph): Kill.
4060         (ignore_next_note, return_label_execution_count): Kill.
4061         (bbg_file_name, da_file_name): Kill.
4062         (edge_info, bb_info): New structures.
4063         (EDGE_INFO, BB_INFO, GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): New macros.
4064         (count_instrumented_edges, total_num_edges): Rename to edge from arc.
4065         (total_num_edges_instrumented): Likewise.
4066         (init_arc, expand_spanning_tree): Kill.
4067         (fill_spanning_tree, tablejump_entry_p): Kill.
4068         (instrument_edges):  Rewrite from instrument_arcs to use
4069         commit_edge_insertions infrastructure.
4070         (compute_branch_probabilities): Remove arguments; rewrite for
4071         CFG infrastructure; use rtl_dump_file directly.
4072         (branch_prob, find_spanning_tree): Likewise.
4073         (union_groups, find_group): New.
4074         (init_branch_prob): Make bbg_file_name and da_file_name local.
4075         (end_branch_prob): Use rtl_dump_file directly.
4076         (init_edge_profiler): Rename to edge from arc.
4077         (output_arc_profiler): Kill.
4078         (gen_edge_profiler): New.
4079         (output_func_start_profiler): Turn off profiling.  Make the
4080         constructor static when we can.
4081         * rtl.h (branch_prob, end_branch_prob): Update prototypes.
4082
4083         * toplev.c (DFI_flow): Remove.
4084         (DFI_cfg, DFI_life): New.
4085         (dump_file): Update accordingly.
4086         (compile_file): Call end_branch_prob if profile_arc_flag too.
4087         (rest_of_compilation): Move flow1 cfg creation to DFI_cfg.  Do edge
4088         profiling after the CFG is built.  Move flow1 life analysis to
4089         DFI_life.  Always estimate remaining probabilities.
4090
4091 2000-05-19  Richard Henderson  <rth@cygnus.com>
4092
4093         * ifcvt.c (find_if_case_2): Don't allow THEN to be EXIT.
4094
4095         * flow.c (make_edges): The sibling call edge to exit is abnormal.
4096
4097 2000-05-19  Richard Henderson  <rth@cygnus.com>
4098
4099         * jump.c (redirect_jump): Add delete_unused argument.  Don't
4100         remove labels and code following when LABEL_NUSES goes to zero.
4101         (invert_jump): Likewise.
4102         (jump_optimize_1): Fix redirect/invert arguments.
4103         (do_cross_jump, thread_jumps): Likewise.
4104         * flow.c (split_edge): Likewise.
4105         * reorg.c (optimize_skip): Likewise.
4106         (reorg_redirect_jump, relax_delay_slots, dbr_schedule): Likewise.
4107         * profile.c (instrument_arcs): Likewise.
4108         * loop.c (find_and_verify_loops): Likewise.  Fix indentation.
4109         * rtl.h: Update prototypes.
4110
4111 Fri May 19 12:05:13 2000  Clinton Popetz  <cpopetz@cygnus.com>
4112
4113         * ssa.c (convert_from_ssa): Tell life_analysis we need death
4114         notes.
4115         (make_regs_equivalent_over_bad_edges): Only look at abnormal
4116         critical edges.
4117
4118 2000-05-19  Zack Weinberg  <zack@wolery.cumb.org>
4119
4120         * cpphash.c (funlike_macroexpand): Make sure not to walk p1
4121         past l1 when deleting whitespace and markers.
4122
4123         * cpplex.c (_cpp_scan_until): Clear AUX field of tokens.
4124         * cpplib.c (do_unassert): Put the list to compare against on
4125         the stack.
4126
4127 2000-05-19  Bruce Korb  <bkorb@gnu.org>
4128
4129         * fixinc/README:  cleaned up old documentation
4130         * fixinc/check.diff: regenerated & verified on OSR5 on ix86
4131         * fixinc/check.tpl: compute the list of needed directories
4132         emit "#if defined(name)" because of conflict
4133         omit machine name differences from output differences
4134         * fixinc/inclhack.def( m88k_multi_incl ):  Use `wrap' function
4135         (machine_name): change test text to use `sed' markers
4136         * fixinc/fixincl.x: regen
4137
4138 Fri May 19 06:49:35 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4139
4140         * config/elfos.h (SELECT_SECTION): Don't access DECL_INITIAL of
4141         a CONSTRUCTOR.
4142
4143 2000-05-18  Chris Demetriou  <cgd@sibyte.com>
4144
4145         * gcc.texi (MULTILIB_EXCEPTIONS): Correct example and update
4146         it to match the current practice.
4147
4148 2000-05-18  Mark Mitchell  <mark@codesourcery.com>
4149
4150         * Makefile.in (STAGESTUFF): Fix typo in spelling of s-under.
4151
4152 2000-05-18  Richard Henderson  <rth@cygnus.com>
4153
4154         * rtlanal.c (insn_dependant_p, insn_dependant_p_1): New.
4155         * rtl.h (insn_dependant_p): Declare it.
4156         * loop.c (strength_reduce): Use it.
4157
4158 2000-05-18  Alexandre Oliva  <aoliva@cygnus.com>
4159
4160         * config/mn10300/mn10300.c (expand_prologue, expand_epilogue):
4161         16-bit and 64-bit clean-up.
4162
4163 2000-05-18 Mark Elbrecht <snowball3@bigfoot.com>
4164
4165         * configure.in (*-pc-msdosdjgpp): Set float_format to none.
4166         * configure: Rebuilt.
4167
4168 2000-05-18  Zack Weinberg  <zack@wolery.cumb.org>
4169
4170         * genopinit.c: Use $ for escape sequences in optab patterns.
4171         Remove backslashes from optab patterns.  Change $A, $B, $C to
4172         expand to (int) whatever instead of just whatever; remove
4173         explicit (int) from all optab patterns.
4174
4175         * gensupport.c (xmalloc, xrealloc, xstrdup): Provide.
4176         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c,
4177         genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
4178         genrecog.c: Remove private copies of xmalloc, xrealloc, and
4179         xstrdup.
4180
4181 2000-05-18  Richard Henderson  <rth@cygnus.com>
4182
4183         * jump.c (jump_optimize_1): Base minimum insn count during
4184         find_cross_jump on BRANCH_COST.
4185
4186 2000-05-18  Jakub Jelinek  <jakub@redhat.com>
4187
4188         * print-rtl.c (print_rtx): Only print note line number as string
4189         if between NOTE_INSN_BIAS and NOTE_INSN_MAX.
4190         * final.c (final_scan_insn): Do nothing for note line number 0.
4191
4192 2000-05-18  Jakub Jelinek  <jakub@redhat.com>
4193
4194         * gcc-common.c (ggc_mark_rtx_children): Mark NOTE_EXPECTED_VALUE
4195         from NOTE_INSN_EXPECTED_VALUE notes and NOTE_SOURCE_FILE from
4196         NOTE_INSN_DELETED_LABEL.
4197
4198 2000-05-18  Nick Clifton  <nickc@cygnus.com>
4199
4200         * config/arm/unknown-elf.h (UNIQUE_SECTION): Place constant,
4201         uninitialised data in .rodata not .bss, and do not interpret an
4202         error in the initialisation value as meaning that the variable
4203         should be placed in the .bss section.
4204
4205 Thu May 18 12:10:18 2000  Philippe De Muyter  <phdm@macqel.be>
4206
4207         * configure.in (NO_MINUS_C_MINUS_O): Test `$ac_cv_prog_cc_${ac_cc}_c_o',
4208         not `$ac_cv_prog_cc_cc_c_o'.
4209         * configure: Regenerated.
4210
4211 2000-05-18  Chris Demetriou  <cgd@sibyte.com>
4212             Richard Henderson  <rth@cygnus.com>
4213
4214         * c-common.h (enum c_tree_index): Add g77 type entries.
4215         (g77_integer_type_node, g77_uinteger_type_node): New.
4216         (g77_longint_type_node, g77_ulongint_type_node): New.
4217         * c-decl.c (init_decl_processing): Initialize them.
4218
4219 2000-05-18  Richard Henderson  <rth@cygnus.com>
4220
4221         * config/h8300/h8300.md (subs patterns): Use %G to negate.
4222
4223         * config/h8300/h8300.c (ok_for_bclr): Take a HOST_WIDE_INT.
4224         (small_power_of_two): Likewise; use exact_log2.
4225         (adds_subs_operand, one_insn_adds_subs_operand): Remove.
4226         (output_adds_subs): Remove.
4227         (two_insn_adds_subs_operand): New.
4228         (split_adds_subs): New.
4229         * config/h8300/h8300-protos.h: Update.
4230         * config/h8300/h8300.h (CONST_OK_FOR_J): Cast to uns HOST_WIDE_INT.
4231         (CONST_OK_FOR_L): Match strict adds operands.
4232         (CONST_OK_FOR_N): Match struct subs operands.
4233         * config/h8300/h8300.md (adds_subs insns): Remove.
4234         (addhi patterns): Output adds/subs directly.
4235         (addsi_h8300h): Likewise.
4236         (addhi/addsi splitters): New.  Decompose two_insn_adds_subs_operand.
4237
4238 2000-05-18  Zack Weinberg  <zack@wolery.cumb.org>
4239
4240         * cppexp.c (parse_assertion): New.
4241         (lex): Call it for CPP_HASH.  Remove CPP_ASSERTION case.
4242         (_cpp_parse_expr): Remove case '#'.  Don't set
4243         parsing_if_directive.
4244         * cpphash.c (collect_objlike_expansion,
4245         collect_funlike_expansion, collect_params,
4246         _cpp_create_definition): The list no longer has a trailing
4247         VSPACE token.
4248         * cpphash.h (enum node_type): Add T_ASSERTION.
4249         (struct hashnode): Remove aschain, add pred.
4250         (struct predicate): New.
4251         Update prototypes.
4252
4253         * cpplex.c (expand_token_space): Handle both offset and
4254         nonoffset lists.
4255         (init_token_list, _cpp_free_token_list, _cpp_parse_assertion): Delete.
4256         (_cpp_init_toklist, _cpp_clear_toklist, _cpp_free_toklist,
4257         _cpp_slice_toklist, _cpp_squeeze_toklist, _cpp_equiv_tokens,
4258         _cpp_equiv_toklists): New.
4259         (_cpp_scan_line): Rename to _cpp_scan_until; add ability to
4260         stop at any single-character token, not just newline.
4261         (_cpp_lex_token): Remove special cases for #define and #if.
4262         (cpp_get_token): Expect # as a separate token type.  Remove
4263         DIRECTIVE case.
4264         (_cpp_get_directive_token): Remove DIRECTIVE case.
4265         (_cpp_lex_line, _cpp_lex_file, _cpp_init_input_buffer): Update.
4266
4267         * cpplib.c (_cpp_check_directive): Set dirno and
4268         SYNTAX_INCLUDE bit of flags, not dir_handler and dir_flags.
4269         (_cpp_handle_directive): Run # <number> through the same logic
4270         as normal directives.
4271         (do_define): Don't set parsing_define_directive.  Use
4272         _cpp_scan_until.  The list does not have a VSPACE at the end.
4273         (do_if): Save, clear, and restore only_seen_white around
4274         _cpp_parse_expr.
4275         (skip_if_group): s/CPP_DIRECTIVE/CPP_HASH/
4276         (do_assert, do_unassert): Rewrite.
4277
4278         * cpplib.h (TTYPE_TABLE): Remove CPP_ASSERTION.
4279         (LIST_OFFSET): New flag.
4280         (struct cpp_toklist): Replace dir_handler and dir_flags with
4281         dirno and flags.
4282         (struct cpp_reader): Remove parsing_if_directive and
4283         parsing_define_directive.
4284
4285 2000-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4286
4287         * fixinc/inclhack.def (broken_cabs): Update fix to handle comments
4288         following the cabs decl which terminate on the following line.
4289         Add the corresponding test_text case.
4290
4291 2000-05-18  Neil Booth  <NeilB@earthling.net>
4292
4293         * cppinit.c (cpp_reader_init): Initialise col_adjust and
4294         default tab stop size.
4295         (no_num, OPT_ftabstop): New.
4296         (handle_option): Handle "ftabstop=" command-line option.
4297         (print_help): Document it.
4298         * cpplex.c (COLUMN): Remove.
4299         (handle_newline): Reset col_adjust.
4300         (skip_whitespace): Update col_adjust as tabs encountered.
4301         (_cpp_lex_line): Update to use col_adjust.  Call
4302         skip_whitespace for all whitespace.
4303         * cpplib.h (struct cpp_options): New member tabstop.
4304         (struct cpp_reader): New member col_adjust.
4305         (CPP_BUF_COL): Update.
4306         (CPP_BUF_COLUMN): New.
4307         * cpp.texi: Document "-ftabstop=" command line option.
4308
4309 Wed May 17 18:19:41 2000  Philippe De Muyter  <phdm@macqel.be>
4310
4311         * configure.in (NO_MINUS_C_MINUS_O): Macro made availabe for AC_OUTPUT
4312         files.
4313         * configure: Rebuilt.
4314
4315 Wed May 17 18:06:12 2000  John David Anglin <dave@hiauly1.hia.nrc.ca>
4316
4317         * mklibgcc.in Add missing -DL$name when compiling modules in libgcc1.c.
4318
4319         * tree.c (build_common_tree_nodes): Do not build TI nodes unless
4320         HOST_BITS_PER_WIDE_INT is >= 64.
4321
4322 2000-05-17  Richard Henderson  <rth@cygnus.com>
4323
4324         * jump.c (jump_optimize_1): Remove inactive but real insns
4325         in jump-to-next-insn optimization.
4326
4327 2000-05-17  Richard Henderson  <rth@cygnus.com>
4328
4329         * toplev.c (rest_of_compilation): Don't call optimize_mode_switching
4330         unless OPTIMIZE_MODE_SWITCHING.  Conditionally set no_new_pseudos.
4331         Don't call recompute_reg_usage if no_new_pseudos is true.
4332         * lcm.c (optimize_mode_switching): Move ifdefs outside function.
4333         Return true if we did work; update global life information.
4334         * basic-block.h (optimize_mode_switching): Update decl.
4335
4336 2000-05-17  Neil Booth  <neilb@earthling.net>
4337
4338         * cpplex.c (expand_name_space): Don't use ptrdiff_t.
4339
4340 2000-05-17  Zack Weinberg  <zack@wolery.cumb.org>
4341
4342         * cpplib.c: New feature, #pragma system_header.
4343         * cpp.texi: Document special treatment of system headers, and
4344         the various mechanisms to get a header that special treatment.
4345
4346 2000-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4347
4348         * system.h (offsetof): Define at the very end, to ensure we prefer
4349         the platform's definition if available.
4350
4351 2000-05-16  Bruce Korb  <bkorb@gnu.org>
4352
4353         * fixinc/fixincl.c: improve the debug displays, ignore SIGPIPE
4354         * fixinc/server.c: likewise
4355         * fixinc/fixfixes.c( char_macro_def_fix ): fix regex
4356         + #ifdef debugging code + use #def constant for
4357         sub-pattern count
4358         * fixinc/inclhack.def( hpux11_fabsf ): Keep HP-UX 11 from stomping
4359         on C++ math namespace
4360
4361 2000-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4362
4363         * fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix):
4364         Don't check the return value of sprintf.  Use asprintf to avoid
4365         buffer overflows.
4366
4367 Wed May 17 17:27:44 2000  Andrew Cagney  <cagney@b1.cygnus.com>
4368
4369         * flags.h (warn_unused_function, warn_unused_label,
4370         warn_unused_parameter, warn_unused_variable, warn_unused_value):
4371         Replace ``warn_unused''.
4372         (set_Wunused): Add declaration.
4373         * toplev.c (set_Wunused): New function.
4374         (warn_unused_function, warn_unused_label, warn_unused_parameter,
4375         warn_unused_variable, warn_unused_value): New variables.
4376         (W_options): Add -Wunused-function, -Wunused-function,
4377         -Wunused-label, -Wunused-parameter, -Wunused-variable and
4378         -Wunused-value.  Delete -Wunused.  Handled in decode_W_option.
4379
4380         * toplev.c (decode_W_option): Update -Wunused flags by calling
4381         set_Wunused.
4382         * c-decl.c (c_decode_option): Ditto for -Wall.
4383
4384         * stmt.c (expand_expr_stmt, expand_expr_stmt,
4385         warn_about_unused_variables): Replace warn_unused with more
4386         explicit warn_unused_value et.al.
4387         * function.c (expand_function_end): Ditto.
4388         * c-typeck.c (internal_build_compound_expr,
4389         internal_build_compound_expr): Ditto.
4390         * c-decl.c (poplevel, pop_label_level): Ditto.
4391         * toplev.c (check_global_declarations): Replace warn_unused with
4392         check for either warn_unused_function or warn_unused_variable.
4393
4394         * gcc.1, invoke.texi (Warning Options): Document
4395         -Wunused-function, -Wunused-function, -Wunused-label,
4396         -Wunused-parameter, -Wunused-variable and -Wunused-value options.
4397
4398 Wed May 17 10:28:12 2000  Philippe De Muyter  <phdm@macqel.be>
4399
4400         * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Find libgcc1.c in
4401         $(srcdir), not in the current directory.
4402
4403 2000-05-16  Richard Henderson  <rth@cygnus.com>
4404
4405         * config/ia64/crtbegin.asm (__dso_handle): Mark hidden if the
4406         assembler supports it.
4407         (.fini, .init): Use a gp-relative indirect call.
4408         (__do_global_dtors_aux): Preserve the gp; rebundle.
4409         (__do_frame_setup): Likewise.
4410         * config/ia64/crtend.asm (.IA_64.unwind): Don't terminate with -1.
4411         (.init): Use a gp-relative indirect call.
4412         (__do_global_ctors_aux): Preserve the gp.
4413
4414 2000-05-16  Richard Henderson  <rth@cygnus.com>
4415
4416         * flow.c (commit_one_edge_insertion): Be prepared for a return
4417         insn to be inserted on the edge with a normal jump.
4418         * jump.c (jump_optimize_1): Don't look to create return isns.
4419
4420         * flow.c (flow_delete_insn): Don't adjust reference count of notes.
4421         * jump.c (jump_optimize_1): Likewise.
4422         (returnjump_p): Verify the argument is a JUMP_INSN.
4423         * rtl.def (NOTE): Add 5th element for NOTE_INSN_DELETED_LABEL.
4424
4425 2000-05-16  Nick Clifton  <nickc@cygnus.com>
4426
4427         * config/m32r/m32r.c (small_insn_p): Use INSN_P() to replace
4428         GET_RTX_CLASS (GET_CODE ()) == 'i'.
4429         (large_insn_p): Ditto.
4430         (m32r_is_insn): New function: Return true if the insn contains
4431         an executable instruction.
4432         (m32r_adjust_insn): Use m32r_is_insn.
4433         (m32r_sched_reorder): Use m32r_is_insn.
4434         (m32r_sched_variable_issue): Use m32r_is_insn.
4435
4436 2000-05-16  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4437
4438         * rs6000/rs6000.c (rs6000_select_section): Treat CONSTRUCTOR like
4439         VAR_DECL.
4440
4441         * rs6000/sysv4.h (ASM_OUTPUT_DWARF_ADDR): Delete unused variable.
4442
4443         * rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Define __unix and __linux
4444         according to given options.
4445
4446 Tue May 16 12:17:31 2000  Jeffrey A Law  (law@cygnus.com)
4447
4448         * mn10200.h (PREFERRED_RELOAD_CLASS): Do not prefer DATA_REGS
4449         if X has VOIDmode either.
4450         (LIMIT_RELOAD_CLASS): Similarly.
4451
4452         * mn10200.md (indirect_jump, tablejump): Use "register_operand",
4453         not "general_operand" to match the processor's capabilities.
4454
4455 2000-05-16  Bruce Korb  <bkorb@gnu.org>
4456
4457         * fixinc/README:  corrected return address
4458         * fixinc/check.diff:  regenerate, now that test works
4459         * fixinc/fixfixes.c(format_fix,format_write): reformatted
4460         (char_macro_def_fix,char_macro_use_fix): corrected and
4461         rewrote to use regex to parse the text
4462         * fixinc/inclhack.def: more testing
4463         * fixinc/fixincl.x:  regenerated
4464
4465         * fixinc/inclhack.def: added several "test_text" attributes
4466         changed several fixes to use `c_fix = format'
4467         re-alphabetized the fixes
4468
4469         * fixinc/check.diff: regenerate
4470         * fixinc/fixincl.x: regenerate
4471         * fixinc/check.tpl: added `sparc' and `netinet' to the list
4472         of created dirs
4473
4474
4475 2000-05-16  Alexandre Oliva  <aoliva@cygnus.com>
4476
4477         * config/mn10300/mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove.
4478
4479 2000-05-15  Richard Henderson  <rth@cygnus.com>
4480
4481         * toplev.c (rest_of_compilation): Run full jump pass before
4482         find_basic_blocks of flow2.
4483
4484 2000-05-15  Richard Henderson  <rth@cygnus.com>
4485
4486         * jump.c: Fix typos and clarify commentary from last change.
4487         (any_condjump_p): Verify SET_SRC is an IF_THEN_ELSE.
4488         (safe_to_remove_jump_p): Remove.
4489         (condjump_label): Use pc_set.
4490
4491 2000-05-15  Richard Henderson  <rth@cygnus.com>
4492
4493         * ifcvt.c (cond_exec_process_insns): Drop USE and CLOBBER insns
4494         that get in the way after reload.
4495         (cond_exec_process_if_block): Skip a label heading THEN block.
4496
4497 2000-05-15  Richard Henderson  <rth@cygnus.com>
4498
4499         * varasm.c (output_constant_pool): Abort instead of converting
4500         (improperly) deleted labels to zero.
4501
4502 2000-05-16  Neil Booth  <NeilB@earthling.net>
4503
4504         * cpplex.c (parse_string2): Update comment.
4505         (cpp_lex_line): No special assertion treatment for '('.
4506         * cpplib.c (DIRECTIVE_TABLE): Remove SYNTAX_ASSERT.
4507         * cpplib.h (SYNTAX_ASSERT): Remove.
4508
4509 Mon May 15 21:45:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4510
4511         * jump.c (condjump_p):  Mark as depreached.
4512         (any_condump_p): New.
4513         (any_uncondump_p): New.
4514         (pc_set): New.
4515         (safe_to_remove_jump_p): New.
4516         * rtl.h (any_condump_p, any_uncondjump_p, pc_set
4517         safe_to_remove_jump_p): Declare.
4518
4519 Mon May 15 21:07:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4520
4521         * calls.c: Re-install both patches reverted by last patch.
4522         (struct arg_data): New field tail_call_reg.
4523         (initialize_argument_information): Initialize tail_call_reg
4524         (load_register_parameters): New argument flags, use
4525         tail_call_reg when emiting tail call sequence.
4526         (expand_call): Update call of load_register_parameters;
4527         copy unadjusted_args_size to adjusted_args_size.
4528
4529 Mon May 15 19:01:42 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4530
4531         * loop.c (scan_loop, strength_reduce, loop_optimize): Change unroll_p
4532         and bct_p parameters to flags.
4533         * loop.h (LOOP_UNROLL, LOOP_BCT): New constants.
4534         * rtl.h (loop_optimize): Update prototype.
4535         * toplev.c (rest_of_compilation): Update call of loop_optimize.
4536
4537 2000-05-15  Jakub Jelinek  <jakub@redhat.com>
4538
4539         * calls.c (expand_call): Move expand_start_target_temps call after
4540         start_sequence().
4541
4542 2000-05-15  Neil Booth  <NeilB@earthling.net>
4543
4544         * cpphash.c (trad_stringify, warn_trad_stringify,
4545         collect_params): Make some pointers pointers to const.
4546         * cpplex.c (auto_expand_name_space) Guaranteed to always
4547         expand by at least one character.
4548         (SPELL_CHAR, SPELL_NONE): Temporarily reverse order.
4549         (struct token_spelling): Use const U_CHAR * rather than PTR.
4550         (expand_name_space): Fix up token pointers if name space
4551         is moved when expanding.
4552         (INIT_NAME, cpp_scan_line, parse_name, parse_number,
4553         parse_string2, save_comment, spell_token, cpp_output_list):
4554         Update so the routines handle tokens with a direct pointer to
4555         their text, rather than an offset into the token's list's namebuf.
4556         (_cpp_lex_line): Rearrange for clarity.
4557
4558         * cpplib.c (_cpp_check_directive): Similarly.
4559         (do_define): Make SYM a pointer to const.
4560         * cpplib.h (struct cpp_name): Replace offset with direct pointer.
4561         (CPP_INT, CPP_FLOAT): Spelling type should be SPELL_IDENT.
4562         (TOK_OFFSET): Delete.
4563         (TOK_NAME): Update.
4564
4565 2000-05-14  Geoffrey Keating  <geoffk@cygnus.com>
4566
4567         * config/rs6000/rs6000.h (RETURN_ADDRESS_OFFSET): Correct for
4568         64-bit ABI.
4569
4570         * config/rs6000/rs6000.c (logical_operand): Rewrite to take MODE
4571         into account.
4572         (logical_u_operand): Delete.
4573         (non_logical_cint_operand): Rewrite to take MODE into account.
4574         (non_logical_u_cint_operand): Delete.
4575         (boolean_operator): New function.
4576         (print_operand): Add new %q operand.
4577         * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_operator,
4578         remove logical_u_operand and non_logical_u_cint_operand,
4579         update logical_operand and non_logical_cint_operand.
4580         * config/rs6000/rs6000.md: Rewrite the patterns for performing
4581         logical operations to use %q.
4582
4583         * config/rs6000/rs6000.md (movsi): Don't modify RTL in-place.
4584         (movdi): Make similar to movsi.
4585         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): There
4586         is no such thing as a DImode CONST_DOUBLE.
4587         * config/rs6000/rs6000.c (output_toc): Likewise.
4588
4589         * config/rs6000/rs6000.c (output_cbranch): Don't output prediction
4590         codes when old mnemonics are in use.  Print register names
4591         for cc registers when requested.
4592
4593         * optabs.c (expand_float): Don't allow mode widening that causes
4594         double rounding.
4595
4596         * invoke.texi (RS/6000 and PowerPC Options): Update -m64/-m32
4597         flags to their current names -maix64 and -maix32.
4598
4599 2000-05-14  Bruce Korb  <bkorb@gnu.org>
4600
4601         * fixinc/fixfixes.c(wrap_fix): new fix - inserts text before
4602         and/or after current text of file
4603         * fixinc/fixlib.c(must_malloc):
4604         * fixinc/fixlib.h(must_malloc): + reformatting
4605         * fixinc/inclhack.def: replace the "1i" and "$a" sed commands
4606         with usages of ``c_fix = wrap;''
4607         Add several tests and use the ``c_fix = format'' fixer more.
4608         * fixinc/fixincl.x: regen
4609         * fixinc/check.diff: regen
4610         * fixinc/check.tpl: emit the associated header with the missing
4611         test message
4612
4613 Sun May 14 17:58:59 2000  Hans-Peter Nilsson  <hp@axis.com>
4614
4615         * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Do not use unset
4616         variables $src and $dst.
4617
4618 2000-05-13  Gabriel Dos Reis <gdr@codesourcery.com>
4619
4620         * diagnostic.h (DIAGNOSTICS_SHOW_PREFIX_ONCE): New macro.
4621         (DIAGNOSTICS_SHOW_PREFIX_NEVER): Likewise.
4622         (DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE): Likewise.
4623         (struct output_buffer: emitted_prefix_p, prefixing_rule): New
4624         fields.
4625         (set_message_prefixing_rule): Declare.
4626
4627         * diagnostic.c: (current_prefixing_rule): New variable.
4628         (set_message_prefixing_rule): Define.
4629         (output_set_prefix): Adjust buffer->emitted_prefix_p.
4630         (init_output_buffer): Adjust Initialization.
4631         (output_emit_prefix): Rewrite.  Take prefixing rules into account.
4632
4633 Sat May 13 11:05:47 2000  Philippe De Muyter  <phdm@macqel.be>
4634
4635         * ifcvt.c (if_convert): Do not free NULL.
4636
4637 2000-05-12  Nick Clifton  <nickc@cygnus.com>
4638
4639         * config/fr30/fr30.c (fr30_move_double): New function:  Emit code
4640         to move a double word value.
4641         (di_operand): New function: Return true if the operand is suitbale
4642         for a double word move operation.
4643         (nonimmediate_di_operand): New function: Return true if the
4644         operand is a DImode register or MEM.
4645
4646         * config/fr30/fr30.h (PREDICATE_CODES): Add di_operand and
4647         nonimmediate_di_operand.
4648
4649         * config/fr30/fr30-protos.h Add fr30_move_double, di_operand, and
4650         nonimmediate_di_operand.
4651
4652         * config/fr30/fr30.md (movdi): New pattern.  Required because
4653         other patterns generate DImode results.
4654         (movdi_insn): New pattern.
4655
4656 2000-05-12  Richard Henderson  <rth@cygnus.com>
4657
4658         * config/alpha/alpha.c (struct shadow_summary): Define
4659         bitfields as type unsigned int.
4660
4661 Sat May 13 00:09:59 2000  Denis Chertykov  <denisc@overta.ru>
4662
4663         * config/avr/t-avr: Added definition of FLOAT while generates
4664         fp-bit.c
4665
4666         * config/avr/avr.md: `NEXT_INSN (insn)' substituted to `insn' in
4667         peepholes for tst+jump = sbrs/sbrc optimization.
4668
4669 Fry May 12 20:03:00 CEST 2000  Jan Hubicka  <jh@suse.cz>
4670
4671         * expr.c (emit_push_insn): Do not adjust stack pointer when
4672         preallocating.
4673
4674 Fri May 12 19:03:58 2000  Philippe De Muyter  <phdm@macqel.be>
4675
4676         * ggc-simple.c (offsetof): Macro fallback definition moved from here ..
4677         * system.h (offsetof): ... to here.
4678
4679 2000-05-12  Richard Henderson  <rth@cygnus.com>
4680
4681         * Makefile.in (final.o): Depend on BASIC_BLOCK_H.
4682         * final.c (final_end_function): Use app_disable.  Rearrange note
4683         handling into a switch.  Emit deleted labels.
4684         (output_asm_label): Generate label strings for deleted labels.
4685         * flow.c (tail_recursion_label_list): New.
4686         (find_basic_blocks_1): Set label_value_list directly.  Collect list
4687         of tail recursion labels from call_placeholders.  Don't add deleted
4688         labels to the label value list.
4689         (cleanup_cfg): Use free_EXPR_LIST_list.
4690         (flow_delete_insn_chain): Turn non-removable labels into notes.
4691         (flow_delete_block): Don't disable deleting the block because of
4692         a non-removable label.
4693         (tail_recursion_label_p): New.
4694         (merge_blocks_move_predecessor_nojumps): Don't disable the merge
4695         because of a label.
4696         (merge_blocks_move_successor_nojumps): Likewise.  Also move a
4697         jump table.
4698         (merge_blocks): Disable a merge because of tail recursion labels.
4699         * ifcvt.c (merge_if_block): Don't disable a merge because of a label.
4700         Use a more accurate measure of not merging the join block.
4701         (find_if_block): Don't disable conversion because of a label.
4702         (find_if_case_1, find_if_case_2): Likewise.
4703         * jump.c (duplicate_loop_exit_test): Preserve the kind of list
4704         element when copying.
4705         (squeeze_notes): Also leave EH notes.
4706         (mark_jump_label): Ignore deleted labels.  Use an INSN_LIST for
4707         REG_LABEL notes.
4708         (delete_insn): Preserve LABEL_NAME in NOTE_SOURCE_FILE when
4709         deleting a label.
4710         * print-rtl.c (print_rtx): Print NOTE_SOURCE_FILE for
4711         NOTE_INSN_DELETED_LABEL.  Print `[# deleted]' for a label_ref
4712         referring to a deleted label.  Convert tail handling to a switch.
4713         * rtl.def (CODE_LABEL): Rearrange elements to be compatible with NOTE
4714         for NOTE_INSN_DELETED_LABEL.
4715         (NOTE): Fix commentary.
4716         * rtl.h (REG_LABEL): Update commentary wrt INSN_LIST.
4717         (REG_CC_SETTER, REG_CC_USER, REG_LIBCALL): Likewise.
4718         (CODE_LABEL_NUMBER, LABEL_NAME): Update index.
4719         (LABEL_NUSES, LABEL_REFS): Likewise.
4720         * unroll.c (copy_loop_body): Don't copy NOTE_INSN_DELETED_LABEL.
4721
4722 2000-05-12  Bruce Korb  <bkorb@gnu.org>
4723
4724         * fixinc/fixfixes.c(format_write): buglet & relaxed rules
4725         * fixinc/check.diff: updated
4726         * fixinc/inclhack.def: corrected & added some test_text-s
4727         * fixinc/genfixes: removed unneeded options to autogen invocation
4728         * fixinc/fixincl.tpl: Specified the output file
4729         * fixinc/fixfixes.c: visual appearance
4730         * fixinc/fixincl.x: regenerate
4731
4732 2000-05-12  Zack Weinberg <zack@wolery.cumb.org>
4733
4734         * fixinc/fixfixes.c (IO_use_fix, IO_defn_fix, CTRL_use_fix,
4735         CTRL_defn_fix): Delete.
4736         (fix_char_macro_defines, fix_char_macro_uses): Rename to
4737         char_macro_def_fix and char_macro_use_fix, respectively.  Put
4738         them into the FIXUP_TABLE.  Get the string to search for from
4739         a c_fix_arg.
4740
4741         (format_write): New function.
4742         (format_fix): Use it.
4743
4744         (FIX_PROC_HEAD): Constify text parameter.
4745         (machine_name_fix): Constify all char *s.
4746         * fixtests.c (skip_quote): Remove double static.
4747
4748         * inclhack.def (io_def_quotes, io_use_quotes, ctrl_def_quotes,
4749         ctrl_use_quotes): Update for new scheme.
4750         * fixincl.x: Regenerate.
4751
4752 2000-05-12  Alexandre Oliva  <aoliva@cygnus.com>
4753
4754         * config/mn10300/mn10300.h (PREFERRED_DEBUGGING_TYPE): Redefine as
4755         DWARF2_DEBUG.
4756         (DWARF2_ASM_LINE_DEBUG_INFO): Define.
4757         (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
4758
4759 2000-05-11  Robert Lipe <robertlipe@usa.net>
4760
4761         * fixinc/inclhack.def (hpux8_bogus_inlines): Delete bypass for SCO.
4762         * fixincl.x: Regenerate.
4763
4764 2000-05-11  Richard Henderson  <rth@cygnus.com>
4765
4766         * calls.c: Revert both 05-09 patches.
4767
4768 2000-05-11  Alexandre Oliva  <aoliva@cygnus.com>
4769
4770         * config/mn10300/mn10300.c (print_operand): Print FP constants in
4771         hexadecimal.
4772         * config/mn10300/mn10300.md (movsf, movdf): Use the `F' constraint
4773         for FP values.
4774
4775         * mklibgcc.in (EQ): Define it to an equal sign in the Makefile,
4776         and replace any occurrences of `=' in multilib dirs with `$(EQ)'.
4777
4778 2000-05-11  Jason Merrill  <jason@casey.cygnus.com>
4779
4780         * fixinc/fixincl.c (run_compiles): Don't crash on null pz_machine.
4781
4782 2000-05-11  Zack Weinberg  <zack@wolery.cumb.org>
4783
4784         * fixinc/fixfixes.c, fixinc/fixtests.c: Update commentary.
4785
4786 Thu May 11 22:28:05 2000  Denis Chertykov  <denisc@overta.ru>
4787
4788         * config/avr/avr-protos.c (jump_over_one_insn_p): New declaration.
4789         * config/avr/avr.c (jump_over_one_insn_p): New function.
4790         * config/avr/avr.md: New peepholes added. Output test and
4791         conditional jump to "sbrc" or "sbrs" command.
4792
4793 2000-05-11  Mark Elbrecht  <snowball3@bigfoot.com>
4794
4795         * cppmain.c (main): Use IS_DIR_SEPARATOR.
4796
4797 2000-05-11  Jakub Jelinek  <jakub@redhat.com>
4798
4799         * except.c (find_exception_handler_labels_1): New function.
4800         (find_exception_handler_labels): Split into two functions, dive
4801         into CALL_PLACEHOLDERs when looking for exception handler labels.
4802
4803 2000-05-11 Stan Cox <scox@cygnus.com>
4804
4805         * regrename.c (replace_reg_in_block): Improve REG_DEAD handling.
4806         * timevar.def (TV_RENAME_REGISTERS): Move before TV_SCHED2.
4807         * toplev.c (rest_of_compilation): Call regrename_optimize before sched2.
4808
4809 2000-05-11  Bruce Korb  <bkorb@gnu.org>
4810
4811         * fixinc/fixfixes.c (double_slash_fix):  obsolete
4812         (else_endif_label_fix): obsolete
4813         (format_fix):  new, unused as yet
4814         (main): obsolete
4815         * fixinc/fixlib.h: added fix description struct for use by format_fix
4816         * fixinc/fixincl.c: removed the struct & test for SIGIOT befure using
4817         * fixinc/Makefile.in:  compile fixfixes.c and fixtests.c as separate
4818         modules.  Removed the vestiges of the script version.
4819         Added support for "make check".
4820         * fixinc/check.diff: base diff file (needs work!!)
4821         * fixinc/check.tpl: quiet the fixup output
4822         * fixinc/fixtests.c (main): obsolete
4823         * fixinc/fixincl.sh:  don't bother copying fixincl to ..
4824         * fixinc/fixincl.tpl:  provide for arguments to c_fix routines
4825
4826 Thu May 11 11:57:02 MET DST 2000  Jan Hubicka <jh@suse.cz>
4827
4828         * toplev.c (rest_of_compilation): Remove dead code after
4829         combine.
4830
4831 2000-05-11  Zack Weinberg  <zack@wolery.cumb.org>
4832
4833         * cpphash.c (collect_funlike_expansion): Make "# is not
4834         followed by a macro argument name" a pedwarn, not an error.
4835         Preserve the # in the output.  Suppress the warning if lang_asm.
4836
4837 Thu May 11 01:19:31 2000  Jeffrey A Law  (law@cygnus.com)
4838
4839         * configure.in (hppa*64*-*-hpux11*): New target for PA64 support.
4840         * configure: Rebuilt.
4841
4842 2000-05-10 Laurynas Biveinis <lauras@softhome.net>
4843
4844         * i386/xm-djgpp.h (XREF_FILE_NAME): Add mising brace.
4845
4846 2000-05-10  Kazu Hirata  <kazu@hxi.com>
4847
4848         * combine.c (try_combine): Fix a typo.
4849
4850 Wed May 10 21:31:44 2000  Jim Wilson  <wilson@cygnus.com>
4851
4852         * config/ia64/ia64.md (insv): Add comment.
4853
4854 2000-05-10  Richard Henderson  <rth@cygnus.com>
4855
4856         * Makefile.in (libgcc.a, stmp-multilib): Depend on FPBIT and DPBIT.
4857         * mklibgcc.in: Rewrite to not use functions.  Don't shortcut
4858         dependancies on FPBIT and DPBIT.
4859
4860 2000-05-10  Nick Clifton  <nickc@redhat.com>
4861
4862         * flow.c (find_auto_inc): Do not bias REG_N_REFS by loop_depth
4863         when optimising for size.
4864         (mark_used_regs:) Ditto.
4865         (try_pre_increment_1): Ditto.
4866
4867 2000-05-10  Zack Weinberg  <zack@wolery.cumb.org>
4868
4869         * cppexp.c (lex): Use %.*s to print non-NUL-terminated string.
4870         Make error message friendlier.
4871
4872         * cpphash.h (struct hashnode): Use struct hack for name
4873         member.
4874         * cpphash.c (struct hashdummy): New.
4875         (eq_HASHNODE): Second argument is a hashdummy, not a HASHNODE.
4876         (make_HASHNODE): No need to set ->name pointer.  Correct
4877         setting of p.
4878         (cpp_lookup): Make 'dummy' a struct hashdummy.  Tidy up a bit.
4879
4880 2000-05-10  Richard Henderson  <rth@cygnus.com>
4881
4882         * flow.c (find_basic_blocks_1): Remove any spare bb_note
4883         after completion.
4884
4885 2000-05-10  Bruce Korb  <bkorb@gnu.org>
4886
4887         * fixinc/gnu-regex.c:  reg_syntax_t re_syntax_options must be static
4888
4889 2000-05-10  Eric Schweitz  <schweitz@nortelnetworks.com>
4890
4891         * dwarfout.c (dwarfout_finish): Call retry_incomplete_types
4892         after we enter .debug.
4893
4894 2000-05-10  Jason Merrill  <jason@casey.cygnus.com>
4895
4896         * dwarf2out.c (gen_subprogram_die): Fixup die_parent for the
4897         abstract instance of a nested inline function.
4898
4899         * stor-layout.c (finish_record_layout): finalize_type_size
4900         before laying out the pending_statics.
4901
4902 Wed 10 May 09:36:47 2000  Neil Booth  <NeilB@earthling.net>
4903
4904         * cpplex.c (spell_token): New function.
4905         (spell_string, spell_comment, spell_name): fold into
4906         spell_token.
4907         (I, S): Add macros.
4908         (E, H): Remove macros.
4909         (save_comment): Save comment opening characters too.
4910         (_cpp_lex_file): Update to use spell_token.  Tidy up comment
4911         handling.
4912         * cpplib.h (I, S): Add macros.
4913         (E, H): Remove macros.
4914         (TTYPE_TABLE): Update entries for new speller.
4915         (SYNTAX_ASSERT): Remove.
4916
4917 Wed 10 May 09:08:30 2000  Neil Booth  <NeilB@earthling.net>
4918
4919         * cpplex.c (_cpp_lex_line): Maintain PREV_WHITESPACE flag
4920         when removing escaped newlines.  Reverse sense of test for
4921         escaped newline.
4922
4923 2000-05-09  Richard Henderson  <rth@cygnus.com>
4924
4925         * flow.c (find_basic_blocks_1): Do not delete the first
4926         bb_note we run across.
4927         (create_basic_block): Use reorder_insns to move an existing
4928         bb_note to the correct place.
4929
4930 2000-05-09  Richard Henderson  <rth@cygnus.com>
4931
4932         * calls.c (expand_call): Increment currently_expanding_call
4933         before calling optimize_tail_recursion.
4934
4935 Tue May  9 18:54:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4936
4937         * reload1.c (reload_combine): Fix errors in last change.
4938
4939 2000-05-09  Zack Weinberg  <zack@wolery.cumb.org>
4940
4941         * gcc.c (used_arg): Skip over a semicolon at the end of the
4942         split-up loop; don't break out of it.
4943
4944         * Makefile.in (WARN_CFLAGS): Add -Wwrite-strings.
4945         (tree.o): Depend on output.h.
4946
4947         * c-decl.c (pending_invalid_xref_file,
4948         current_function_prototype_file): Constify.
4949         (pushdecl): Constify a local char *.
4950         (define_label): Constify filename parameter.
4951         * c-lex.c (init_parse): Constify parameter and return value.
4952         * c-typeck.c (c_expand_asm_operands): Constify filename parameter.
4953         * c-tree.h: Update prototypes.
4954         * c-parse.in: Constify filename member of %union, and if_stmt_file.
4955         * c-parse.y, c-parse.c, c-parse.h, objc/objc-parse.y,
4956         objc/objc-parse.c: Regenerate.
4957
4958         * dwarfout.c (dwarfout_init): Constify main_input_filename parameter.
4959         * dwarfout.h: Update prototypes.
4960         * expr.c (expand_expr): Constify a local char *.
4961         * flags.h: Constify main_input_filename.
4962         * function.c (expand_function_end): Constify filename parameter.
4963         * genrecog.c (make_insn_sequence): Use a character array for
4964         c_test_pos.
4965         (main): Remove unused variables.
4966         * input.h: Constify input_filename, main_input_filename, and
4967         file_stack.name.  Update prototypes.
4968         * output.h: Declare first_global_object_name and
4969         weak_global_object_name here, as const char *.
4970         * stmt.c (expand_asm_operands): Constify filename parameter.
4971         * toplev.c (compile_file, push_srcloc, debug_start_source_file):
4972         Constify filename parameter.
4973         (input_filename, main_input_filename): Constify.
4974         * toplev.h: Update prototypes.
4975         * tree.c: Include output.h.  Don't declare
4976         first_global_object_name or weak_global_object_name.  Clean up string
4977         bashing in get_file_function_name_long.
4978         * tree.h (struct tree_decl): Constify filename member.
4979         (input_filename): Constify.
4980         Update prototypes.
4981         * varasm.c (first_global_object_name, weak_global_object_name):
4982         Constify.
4983         (assemble_start_function, assemble_variable): Clean up string bashing.
4984
4985         * gcc.c: Constify all spec-related strings initialized,
4986         transitively, from string constants.  Constify all strings
4987         and string variables related to multilibs.
4988         (set_spec, read_specs): Cast argument to free to PTR.
4989         (used_arg): Do not modify multilib_matches.  Use strncmp plus
4990         length comparison to compare multilib switches.
4991         * genmultilib: Constify everything declared in multilib.h.
4992
4993 Tue May  9 22:28:03 2000  Denis Chertykov  <denisc@overta.ru>
4994
4995         * flow.c (flow_delete_insn): Use INSN_DELETED_P for marking insn
4996         as deleted.
4997
4998 Tue May  9 20:52:43 2000  Denis Chertykov  <denisc@overta.ru>
4999
5000         * config/avr/avr-protos.h (extra_constraint): change a type of
5001         second argument from char to int to avoid warnings.
5002         (asm_output_byte): Likewise.
5003
5004         * config/avr/avr.c (MAX_LD_OFFSET) New macro.
5005         (initial_elimination_offset): Handle elimination from
5006         FRAME_POINTER_REGNUM to STACK_POINTER_REGNUM.
5007         (legitimate_address_p): Use MAX_LD_OFFSET.
5008         (legitimize_address): Likewise.
5009         (out_movqi_r_mr): Likewise.
5010         (out_movhi_r_mr): Likewise, use `fatal_insn' instead of `fatal'.
5011         (out_movsi_r_mr): Use MAX_LD_OFFSET.
5012         (out_movsi_mr_r): Likewise.
5013         (out_movqi_mr_r): Likewise.
5014         (out_movhi_mr_r): Likewise.
5015         (notice_update_cc): Correct CC for the ashrqi3 with the shift
5016         count as CONST_INT != 6.
5017         (ashlqi3_out): Coding style modifications. Run `fatal_insn' if
5018         shift count is a CONSTANT_P, but not a CONST_INT.
5019         (ashlhi3_out): Coding style modifications.
5020         (ashlsi3_out): Likewise.
5021         (ashrhi3_out): Likewise.
5022         (ashrsi3_out): Likewise.
5023         (lshrhi3_out): Likewise.
5024         (lshrsi3_out): Likewise.
5025         (ashrqi3_out): Generate shift for any known constant count without
5026         scratch register. Run `fatal_insn' if shift count is a CONSTANT_P,
5027         but not a CONST_INT.
5028         (lshrqi3_out): Coding style modifications. Run `fatal_insn' if
5029         shift count is a CONSTANT_P, but not a CONST_INT.
5030         (extra_constraint): change a type of
5031         second argument from char to int to avoid warnings.
5032         (asm_output_byte): Likewise.
5033         (asm_file_end): Output size generated commands count as a hex
5034         number too.
5035
5036         * config/avr/avr.h (RETURN_ADDR_RTX): New macro.
5037
5038         * config/avr/avr.md (addhi3): Fragment commented by &&0 is
5039         removed.
5040         (ashlqi3): Values of "length" attribute changed. Shift count
5041         uses constraints 'n' instead of 'i'.
5042         (ashrqi3): Likewise. Values of "cc" attribute changed. Generate
5043         shifts without clobber register.
5044         (lshrqi3): Shift count uses constraints 'n' instead of 'i'.
5045         (call_insn): Correct test for which_alternative == 1 (was 0).
5046         (call_value_insn): Likewise.
5047
5048         * config/avr/t-avr: Remove definition of FLOAT while generates
5049         fp-bit.c
5050
5051 2000-05-09  Bruce Korb  <bkorb@gnu.org>
5052
5053         * fixinc/check.tpl:  Template for checking fixes
5054         * fixinc/inclhack.def:  Added 'test_text' for many fixes
5055         disable hpux8_bogus_inlines on SCO
5056         * fixinc/fixinc.sco:  Oh, yes, we don't need this any more.
5057
5058 Tue May  9 16:30:27 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5059
5060         * calls.c (expand_call): Reorganize somewhat in order
5061         to avoid unnecesary recalculation inside loop and make
5062         tail call failure code cleaner.
5063
5064 Tue May  9 06:30:20 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5065
5066         * alias.c (nonlocal_reference_p): Minor reformatting.
5067         * reload.c (find_equiv_reg): Simplify logic for
5068         CALL_INSN_FUNCTION_USAGE since can't have SUBREG or pseudos and
5069         some some reformatting.
5070         * reload1.c (reload_combine): Don't assume everything in
5071         CALL_INSN_FUNCTION_USAGE is a REG and clean up code a bit.
5072
5073 2000-05-08  Richard Henderson  <rth@cygnus.com>
5074
5075         * final.c (current_insn_predicate): New.
5076         (final_scan_insn): Set it.
5077         * output.h (current_insn_predicate): Declare.
5078
5079         * ifcvt.c (cond_exec_process_insns): New argument prob_val.
5080         Attach it to call insns.
5081         (cond_exec_process_if_block): Track probability for true and
5082         false branches.
5083         (dead_or_predicable): Likewise.
5084
5085         * predict.c (PROB_NEVER, PROB_VERY_UNLIKELY): New.
5086         (PROB_UNLIKELY, PROB_EVEN, PROB_LIKELY): New.
5087         (PROB_VERY_LIKELY, PROB_ALWAYS): New.
5088         (estimate_probability, expected_value_to_br_prob): Use them.
5089
5090         * config/ia64/ia64-protos.h (ia64_expand_prediction): Declare.
5091         * config/ia64/ia64.c (ia64_print_operand_address): Handle 'j'.
5092         (ia64_expand_prediction): New.
5093         (emit_insn_group_barriers): Don't look at notes.  Emit barriers
5094         as needed after calls.
5095         (ia64_epilogue_uses): Mark b0 used.
5096         * config/ia64/ia64.md (beq_true, beq_false): Remove.
5097         (bne_true, bne_false): Remove.
5098         (eq_return, eq_not_return, ne_return, ne_not_return): Remove.
5099         (br_true, br_false): New.  Use predicate_operator and
5100         ia64_expand_prediction.
5101         (return_true, return_false): Likewise.
5102         (call_internal): Use ia64_expand_prediction.  Don't emit stop bit.
5103         (call_internal1, call_value_internal): Likewise.
5104         (call_value_internal1, call_multiple_values_internal1): Likewise.
5105
5106         * config/ia64/ia64.c (ia64_direct_return): Require frame size zero.
5107
5108         * config/ia64/ia64.md (extendsfdf2): Split only after reload.
5109
5110 2000-05-08  Richard Henderson  <rth@cygnus.com>
5111
5112         * rtlanal.c (may_trap_p): Consider old-style and volatile
5113         asms to trap.
5114
5115 Mon May  8 17:16:48 2000  Jim Wilson  <wilson@cygnus.com>
5116
5117         * config/ia64/ia64.h (RETURN_ADDR_RTX): Use COUNT not count.
5118
5119 2000-05-08  Richard Henderson  <rth@cygnus.com>
5120
5121         * config/ia64/ia64.h (predicate_operator): Declare.
5122
5123         * config/ia64/ia64.md (extendsfdf2): Split the nop case out
5124         of existance.
5125
5126         * gensupport.c (process_rtx): Copy and post-process each member
5127         of the define_insn rtvec individually.
5128
5129 Mon  8 May 22:17:35 2000  Neil Booth  <NeilB@earthling.net>
5130
5131         * cpplex.c (spell_token): New function.
5132         (TOKEN_LEN): Add 1 for whitespace.
5133         (_cpp_lex_file): Update to use spell_token.
5134         * cpplib.h (E): Remove.
5135         (TTYPE_TABLE): Update CPP_VSPACE entry.
5136
5137 2000-05-08  Richard Henderson  <rth@cygnus.com>
5138
5139         * flow.c (init_propagate_block_info): Watch out for conditional
5140         branch to next instruction, and thus one outgoing edge.
5141
5142         * config/ia64/ia64.c (ia64_encode_section_info): Exit early
5143         for global register variables; don't special case __[CD]TOR_LIST__;
5144         mind ggc_p for string allocation.
5145
5146 2000-05-08  Nick Clifton  <nickc@cygnus.com>
5147
5148         * config/i386/i386.h (ELIMINABLE_REGS): Fix comment.
5149
5150 2000-05-08  Bruce Korb  <bkorb@gnu.org>
5151
5152         * fixinc/mkfixinc.sh:  fixinc.sco is no longer used
5153         i?86-*-msdosdjgpp* no longer uses fixincludes
5154         * fixinc/genfixes:  inclhack.sh and fixincl.sh are no longer generated
5155         * fixinc/inclhack.sh:  deleted
5156         * fixinc/hackshell.tpl:  deleted
5157         * fixinc/inclhack.tpl:  deleted
5158         * fixinc/Makefile.in:  Remove dependencies on above
5159         * fixinc/fixincl.sh:  "DO NOT EDIT" text modified
5160
5161 2000-05-08  Andreas Jaeger  <aj@suse.de>
5162
5163         * config/mips/linux.h: Remove undefines which disabled .ctor/.dtor
5164         support.
5165
5166 2000-05-07  Zack Weinberg  <zack@wolery.cumb.org>
5167
5168         * Makefile.in (LOOSE_CFLAGS): Add /g modifiers to both sed
5169         substitutions.
5170
5171 Sun  7 May 08:43:53 2000  Neil Booth  <NeilB@earthling.net>
5172
5173         * cpplex.c: Move new lexer definitions and prototypes
5174         to top.  Conditional include these and the code if
5175         NEW_LEXER is defined.  Rename functions whose names
5176         clash if this code included.
5177
5178 Sun May  7 00:54:57 EDT 2000  John Wehle  (john@feith.com)
5179
5180         * rtl.def (COND_EXEC): Clarify.
5181
5182         * i386.md (extendsidi2): Clobber (reg:CC 17) in the
5183         same fashion as zero_extendsidi2.
5184
5185 2000-05-06  Richard Henderson  <rth@cygnus.com>
5186
5187         * config/ia64/ia64.c (predicate_operator): New.
5188         (ia64_print_operand): Handle 'J'.
5189         (rtx_needs_barrier): Handle COND_EXEC.
5190         * config/ia64/ia64.h (BRANCH_COST): Define.
5191         (PREDICATE_CODES): Update.
5192         * config/ia64/ia64.md: Docuement used unspec values.
5193         (attr predicable): New.
5194         (movxf, movxf_internal): New.
5195         (extendsfdf2): Don't comment out nop.
5196         (floatdidf2): Remove.
5197         (truncxfsf2, truncxfdf2, floatdixf2): New.
5198         (abssi2, absdi2): Put the neg in the "true" slot.
5199         (conditional branch instructions): Mark not predicable.
5200         (cmov*_internal): Use predicate_operator.  Split to cond_exec.
5201         (abs*_internal): Likewise.
5202         (alloc, set_bsp): Mark not predicable.
5203         (barrier, insn_group_barrier, flush_cache): Likewise.
5204         (define_cond_exec): New.
5205
5206 2000-05-06  Richard Henderson  <rth@cygnus.com>
5207
5208         * c-decl.c: Include "tm_p.h".
5209
5210         * config/ia64/ia64-protos.h: Rearrange decls to reduce ifdef madness.
5211         (fetchadd_operand, ia64_expand_fetch_and_op): Declare.
5212         (ia64_expand_op_and_fetch): Declare.
5213         * config/ia64/ia64.c: Include "toplev.h".  Kill trailing whitespace.
5214         (setjmp_operand): Constify variables for XSTR.
5215         (ia64_encode_section_info): Likewise.
5216         (ia64_print_operand): Use %d for exact_log2; cast 32-bit printed
5217         values to int.
5218         (ia64_asm_output_external): Constify name.
5219         (process_set): Use HOST_WIDE_INT_PRINT_DEC for frame size.
5220         (process_for_unwind_directive): Provide switch default.
5221         (ia64_expand_compare_and_swap): Remove unused variables.
5222         (ia64_expand_builtin): Likewise.
5223         * config/ia64/ia64.h (ASM_OUTPUT_BYTE): Mask and cast value to int
5224         for printing.
5225
5226         * config/ia64/ia64.c (sdata_symbolic_operand): Mark unused args.
5227         (symbolic_operand, function_operand, setjmp_operand): Likewise.
5228         (shift_count_operand, shift_32bit_count_operand): Likewise.
5229         (shladd_operand, fetchadd_operand, ia64_function_prologue): Likewise.
5230         (ia64_function_epilogue, ia64_setup_incoming_varargs): Likewise.
5231         (ia64_function_arg_partial_nregs, ia64_function_value): Likewise.
5232         (ia64_print_operand_address, ia64_secondary_reload_class): Likewise.
5233         (ia64_expand_builtin): Likewise.
5234         (call_multiple_values_operation): Make dest_regno unsigned.
5235
5236 2000-05-06  Richard Henderson  <rth@cygnus.com>
5237
5238         * rtl.def (DEFINE_COND_EXEC): New.
5239         * md.texi: Document it.
5240
5241         * gensupport.c (input_file): Remove.
5242         (struct queue_elem): Add lineno.
5243         (rtx_ready_queue): Remove.
5244         (errors): New.
5245         (predicable_default): New.
5246         (predicable_true, predicable_false): New.
5247         (define_attr_queue, define_attr_tail): New.
5248         (define_insn_queue, define_insn_tail): New.
5249         (define_cond_exec_queue, define_cond_exec_tail): New.
5250         (other_queue, other_tail): New.
5251         (queue_pattern): New.
5252         (process_rtx): Add patterns to the appropriate queues.
5253         (is_predicable, identify_predicable_attribute): New.
5254         (n_alternatives, collect_insn_data): New.
5255         (alter_predicate_for_insn, alter_test_for_insn): New.
5256         (shift_output_template, alter_output_for_insn): New.
5257         (process_one_cond_exec, process_define_cond_exec): New.
5258         (init_md_reader): Read the entire file.  Process define_cond_exec.
5259         (read_md_rtx): Return elements from the queues.
5260
5261 2000-05-06  Richard Henderson  <rth@cygnus.com>
5262
5263         * flow.c (mark_set_1): Don't update conditional life info
5264         if the register is not_dead.
5265
5266 2000-05-06  Zack Weinberg  <zack@wolery.cumb.org>
5267
5268         * Makefile.in (STAGESTUFF): Add genrtl.c and genrtl.h.
5269         (mostlyclean): Also delete fixincl, fixinc.sh, and
5270         specs.ready, and make clean in the fixinc subdir.
5271
5272 2000-05-06  Richard Henderson  <rth@cygnus.com>
5273
5274         * Makefile.in (gensupport.o): Compile for the host.
5275         (host-prefix gensuuprt.o): Remove.
5276         (genflags.o): Depend on gensupport.h and OBSTACK_H.
5277         (genattrtab.o): Likewise.
5278         (gencodes.o): Depend on gensupport.h.
5279         (genemit.o, genopinit.o, genrecog.o, genextract.o): Likewise.
5280         (genpeep.o, genattr.o, genoutput.o): Likewise.
5281
5282         * gensupport.c (obstack, rtl_obstack): New.
5283         (init_md_reader): Initialize rtl_obstack.
5284         * gensupport.h (rtl_obstack): Declare.
5285         (message_with_line): Declare.
5286
5287         * genattr.c: Remove all traces of obstack manipulation.
5288         * gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise.
5289         * genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise.
5290
5291         * genattrtab.c (obstack, rtl_obstack): Remove.
5292         (main): Don't init rtl_obstack.
5293         * genflags.c: Likewise.
5294
5295         * genrecog.c (message_with_line): Move ...
5296         * gensupport.c: ... here.
5297
5298 2000-05-06  Richard Henderson  <rth@cygnus.com>
5299
5300         * c-typeck.c (build_c_cast): Remove dead code.
5301
5302 2000-05-06  Richard Henderson  <rth@cygnus.com>
5303
5304         * flow.c (split_edge): Don't allocate global_live_at_start for
5305         the new block unless the old blocks had them as well.
5306
5307         * flow.c (mark_set_1): Respect not_dead when updating reg_live.
5308
5309         * ifcvt.c (noce_process_if_block): Don't use an insn_b from
5310         test_bb if a or b uses x.
5311
5312 2000-05-06  Zack Weinberg  <zack@wolery.cumb.org>
5313
5314         * cpphash.h: Remove conditional #define of __extension__.
5315         * rtl.h: Add __extension__ to RTL_CHECK1, RTL_CHECK2,
5316         RTL_CHECKC1, RTL_CHECKC2, and RTVEC_ELT macros
5317         (ENABLE_RTL_CHECKING only).
5318         * tree.h: Add __extension__ to TREE_CHECK, TREE_CLASS_CHECK,
5319         CST_OR_CONSTRUCTOR_CHECK, and EXPR_CHECK macros
5320         (ENABLE_TREE_CHECKING only).
5321         * varray.h: Add __extension__ to VARRAY_CHECK macro
5322         (ENABLE_CHECKING only).
5323
5324 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
5325
5326         Use new tail-calling mechanism on ARM.
5327         * arm.md (sibcall, sibcall_value): New expands.
5328         (sibcall_insn, sibcall_value_insn, sibcall_epilogue): New insns.
5329         (tailcalling peepholes): Delete.
5330         (push_multi): Simplify.
5331         * arm.c (lr_save_eliminated): Delete definition.
5332         (pattern_really_clobbers_lr, function_really_clobbers_lr): Delete.
5333         (output_return_instruction): Remove checks on lr_save_eliminated.
5334         (output_arm_prologue): Remove old tail-calling code.
5335         (arm_output_epilogue): New parameter, really_return.  All callers
5336         changed.  Handle tail-calling epilogues.
5337         * arm.h (lr_save_eliminated): Delete declaration.
5338         (frame_pointer_needed): Delete declaration.
5339         * arm-protos.h (arm_output_epilogue): Adjust prototype.
5340
5341         * arm.md (is_thumb): Examine symbol thumb_code, not expression
5342         TARGET_ARM.
5343         * arm.c (thumb_code): Define it.
5344         (arm_override_options): Set it.
5345         * arm.h (thumb_code): Declare it.
5346
5347 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
5348
5349         * arm-protos.h (arm_dllexport_name_p, arm_dllimport_name_p): Constify.
5350
5351 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
5352
5353         * arm.c (arm_gen_load_multiple, arm_gen_store_mulitple): Don't add
5354         bogus clobber to insns.
5355         (load_multiple_operation, store_mulitple_operation): Don't check
5356         for it.
5357         * arm.md (ldmsi_postinc, stmsi_postinc): Adjust accordingly.
5358
5359         * arm.md (and_scc, ior_scc): Add missing mode.
5360
5361         * arm.md (call_value_symbol): Remove predicate from op2.
5362
5363         * arm.h (SPECIAL_MODE_PREDICATES): Define.
5364
5365 Sat May  6 06:25:56 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5366
5367         * expr.c (get_subtarget): New function.
5368         (force_operand, expand_expr, do_store_flag): Use it.
5369
5370         * toplev.c (compile_file): Don't take strlen of NAME if null.
5371
5372 2000-05-06  David Edelsohn  <edelsohn@gnu.org>
5373
5374         * xcoffout.c (xcoff_current_include_file,
5375         xcoff_current_function_file, xcoff_lastfile): Constify char *.
5376         (xcoffout_source_file, xcoffout_source_line): Make filename 'const
5377         char *'.
5378         (xcoffout_declare_function): Make name 'const char *'.
5379         (xcoffout_end_epilogue): Make fname 'const char *'
5380         * xcoffout.h (xcoff_current_include_file, xcoff_lastfile,
5381         xcoffout_declare_function, xcoffout_source_line): Match above.
5382
5383         * aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -mpowerpc64 without
5384         -maix64 is error.
5385         * rs6000.c (print_operand): Fix lossage typo.
5386         (output_cbranch): Remove "cr" decoration for now.
5387         * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Make alias 'const char *'.
5388
5389 Sat May  6 06:55:32 2000  Denis Chertykov  <denisc@overta.ru>
5390
5391         * config/avr/avr.c (out_shift_with_cnt): Bugfix for shift by
5392         constant count.
5393
5394 2000-05-05  Bruce Korb  <bkorb@gnu.org>
5395
5396         * fixinc/genfixes: Improve the matching for make target names
5397
5398 2000-05-05  Catherine Moore  <clm@cygnus.com>
5399
5400         * c-common.c (decl_attributes):  For TYPE_DECLs attach the
5401         attribute to the decl.
5402         * c-decl.c (pushdecl): Propagate the USED attribute to the
5403         type copy.
5404
5405 2000-05-05  Richard Henderson  <rth@cygnus.com>
5406
5407         * rtlanal.c (reg_overlap_mentioned_p): Treat parallels in the
5408         same way emit_group_load does.
5409
5410 2000-05-05 Mark Elbrecht <snowball3@bigfoot.com>
5411
5412         * gcc.c (set_input) [HAVE_DOS_STYLE_FILE_SYSTEM]: Skip drive name.
5413
5414         * toplev.c (output_file_directive): Use IS_DIR_SEPARATOR.
5415         (main): Likewise.
5416
5417 2000-05-05 Rodney Brown <RodneyBrown@mynd.com>
5418
5419         * pa.h (FUNCTION_ARG_ADVANCE): Warning removal.
5420
5421 Fri May  5 10:29:21 2000  Marc Espie <espie@cvs.openbsd.org>
5422
5423         * config/openbsd.h (LINK_SPEC): pass correct flags to ld
5424         to support -shared, on platforms with dynamic libraries.
5425
5426 Fri May  5 10:27:06 2000  Philippe De Muyter  <phdm@macqel.be>
5427
5428         * system.h (S_ISBLK): Provide fallback definition.
5429
5430 2000-05-05  Geoff Berry  <geoffb@bops.com>
5431
5432         * extend.texi (Extended Asm): Document inability to give asm
5433         statements access to condition codes.
5434
5435 2000-05-05  Marek Michalkiewicz  <marekm@linux.org.pl>
5436
5437         * varasm.c (asm_emit_uninitialised): Use 0, not NULL
5438         as arg 2 of UNIQUE_SECTION.
5439
5440 Fri May  5 10:11:41 2000  Jeffrey A Law  (law@cygnus.com)
5441
5442         * predict.c: Remove May 4 change.
5443         * bb-reorder.c (make_reorder_chain): Do not perform block movement
5444         if we have predicted the branch at 50-50 probability.
5445
5446 2000-05-05  Richard Henderson  <rth@cygnus.com>
5447
5448         * flow.c (init_propagate_block_info): Fix merge error
5449         in HAVE_conditional_execution code.
5450
5451 Fri May  5 07:43:50 2000  Denis Chertykov  <denisc@overta.ru>
5452
5453         * config/avr/avr.c (out_shift_with_cnt): Genetare a more optimal
5454         shift cycle for unknown shift count. Also generates dec + brpl.
5455         (ashlqi3_out): Don't generate dec + brpl which now generates by
5456         `out_shift_with_cnt'.
5457         (ashlhi3_out): Likewise.
5458         (ashlsi3_out): Likewise.
5459         (ashrqi3_out): Likewise.
5460         (ashrhi3_out): Likewise.
5461         (ashrsi3_out): Likewise.
5462         (lshrqi3_out): Likewise.
5463         (lshrhi3_out): Likewise.
5464         (lshrsi3_out): Likewise.
5465
5466 2000-05-04 Mark Elbrecht <snowball3@bigfoot.com>
5467
5468         * gcc.c (free_split_directories): Correct typo in explanation
5469         of make_relative_prefix.
5470
5471 2000-05-04  Geoff Keating  <geoffk@cygnus.com>
5472
5473         * config/rs6000/rs6000.h (PREDICATE_CODES): Add floating-point
5474         comparison codes to branch_comparison_operator.
5475
5476 2000-05-04  Richard Henderson  <rth@cygnus.com>
5477
5478         * ifcvt.c (noce_process_if_block): Always reset X in the A == B case.
5479
5480 2000-05-04  Richard Henderson  <rth@cygnus.com>
5481
5482         * Makefile.in (FPBIT_FUNCS): Remove _df_to_usi.
5483         (DPBIT_FUNCS): Remove _sf_to_usi.
5484         (stmp-multilib): Pass LIB1ASMSRC to libgcc.mk.
5485
5486         * ifcvt.c (noce_process_if_block): Fail if A or B modified
5487         between condition and jump.
5488
5489         * libgcc2.c (near eh_context_specific): Comment #endif string.
5490         * longlong.h: Don't use strings with embedded newlines.
5491
5492 2000-05-04  Geoff Keating  <geoffk@cygnus.com>
5493
5494         * config/rs6000/rs6000-protos.h: Add output_cbranch.
5495         * config/rs6000/rs6000.c (ccr_bit_negated_p): Delete.
5496         (print_operand): Delete %t and %T codes.
5497         (output_cbranch): New function.  Support branch prediction.
5498         * config/rs6000/rs6000.md: Use output_cbranch for
5499         conditional branches and returns.
5500
5501 2000-05-04  Jason Merrill  <jason@casey.cygnus.com>
5502
5503         * simplify-rtx.c (simplify_ternary_operation): Cast to unsigned.
5504         * stor-layout.c (place_field): Likewise.
5505         * integrate.h (struct inline_remap): Make regno_pointer_align unsigned.
5506         * expr.c (store_expr): Make align unsigned.
5507         * explow.c (plus_constant_wide): Make low words unsigned.
5508         * expmed.c (choose_multiplier): Likewise.
5509         * fold-const.c (fold):  Likewise.
5510         * tree.h (build_int_2): Likewise.
5511         * tree.c (build_int_2_wide, tree_int_cst_msb): Likewise.
5512         * emit-rtl.c (gen_reg_rtx): Add cast to unsigned char*.
5513         (init_emit): Change cast to unsigned char*.
5514         * varasm.c (compare_constant_1): Add cast to char*.
5515         * gcse.c (delete_null_pointer_checks): Change cast to unsigned int*.
5516         * reload1.c (reload): Likewise.
5517
5518         * rtl.h (MEM_SET_IN_STRUCT_P): Use do { } while (0).
5519
5520 Thu May  4 14:37:23 2000  Jeffrey A Law  (law@cygnus.com)
5521
5522         * predict.c (estimate_probability): If no prediction was found, then
5523         predict the successor that is the next physical block (if such a
5524         successor exists).
5525
5526 2000-05-04  Richard Henderson  <rth@cygnus.com>
5527
5528         * config/alpha/t-alpha (LIB2FUNCS_EXTRA): Use qrrnd.asm in place.
5529
5530 2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5531
5532         * system.h: Don't wrap <sys/types.h> with HAVE_SYS_TYPES_H.
5533
5534 2000-05-04  Mumit Khan  <khan@xraylith.wisc.edu>
5535
5536         * i386/cygwin.h (CPP_PREDEFINES): Don't define __STDC__. Move
5537         attribute macros from here ...
5538         (CPP_SPEC): to here.
5539         * i386/mingw32.h (CPP_PREDEFINES): Likewise.
5540         (CPP_SPEC): Likewise.
5541         * i386/crtdll.h (CPP_PREDEFINES): Delete attribute macros.
5542
5543         * Makefile.in ($(HOST_PREFIX_1)gensupport.o): Add build rule.
5544         (libgcc.a): Pass LIB1ASMSRC to libgcc.mk.
5545
5546 2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5547
5548         * bb-reorder.c (get_next_bb_note, get_prev_bb_note): Prototype.
5549
5550         * diagnostic (vbuild_message_string, build_message_string,
5551         build_location_prefix, output_get_prefix, init_output_buffer,
5552         output_notice, vline_wrapper_message_with_location,
5553         v_message_with_decl, default_print_error_function): De-constify.
5554         (set_real_maximum_length): Prototype.
5555
5556         * diagnostic.h (struct output_buffer, init_output_buffer,
5557         output_get_prefix, output_set_prefix): De-constify.
5558
5559         * function.c (init_function_start): Constify.
5560
5561         * gensupport.c (remove_constraints, process_rtx): Prototype.
5562
5563         * gthr-posix.h: Indent uses of #pragma.
5564
5565         * objc/objc-act.c (ggc_mark_imp_list, ggc_mark_hash_table):
5566         Prototype.
5567
5568         * predict.c (find_expected_value): Delete prototype.
5569         (expected_value_to_br_prob): Initialize variable `ev_reg'.
5570
5571         * sbitmap.h (debug_sbitmap): Prototype.
5572
5573         * ssa.c (compute_coalesced_reg_partition): Prototype.
5574
5575         * stor-layout.c (debug_rli): Prototype.
5576
5577         * tree.h (round_down): Prototype.
5578         (init_function_start): Constify.
5579
5580 2000-05-04  Zack Weinberg  <zack@wolery.cumb.org>
5581
5582         * cpphash.h: #define __extension__ away if GCC_VERSION < 2095
5583         (overly conservative).  Change extern inline wrappers to
5584         static inline, define them always, use PARAMS properly.
5585         * cpplex.c (_cpp_get_directive_token): Don't issue pedantic
5586         whitespace warnings for \f and \v at the beginning of a line.
5587
5588 Thu May  4 10:03:50 2000  Jeffrey A Law  (law@cygnus.com)
5589
5590         * haifa-sched.c (schedule_insns): Free the flow edge list when it
5591         is no longer needed
5592
5593 2000-05-04  Bruce Korb  <bkorb@gnu.org>
5594
5595         * fixincl/inclhack.def: added broken_cabs -
5596         Remove `extern double cabs' declarations from math.h
5597         * fixincl/inclhack.sh: regen
5598         * fixincl/fixincl.x: regen
5599         * fixincl/fixincl.c: Remove BOGOSITY code
5600         * fixincl/mkfixinc.sh: Remove code for installing "shell" version
5601
5602 Thu May  4 09:45:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5603
5604         * rtl.h (MEM_COPY_ATTRIBUTES): Also copy RTX_UNCHANGING_P and
5605         MEM_ALIAS_SET.
5606         * alias.c (canon_rtx): Don't copy RTX_UNCHANGING_P or MEM_ALIAS_SET
5607         when calling MEM_COPY_ATTRIBUTES.
5608         * emit-rtl.c (operand_subword, change_address): Likewise.
5609         * explow.c (stabilize): Likewise.
5610         * expr.c (protect_from_queue, emit_move_insn_1): Likewise.
5611         * integrate.c (copy_rtx_and_substitute): Likewise.
5612         * combine.c (combine_simplify_rtx): Don't copy RTX_UNCHANGING_P
5613         when calling MEM_COPY_ATTRIBUTES.
5614         (make_extraction, simplify_shift_const, gen_lowpart_for_combine):
5615         Likewise.
5616         * cse.c (gen_lowpart_if_possible): Likewise.
5617         * function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
5618         * optabs.c (gen_move_insn): Likewise.
5619         * recog.c (validate_replace_rtx_1): Likewise.
5620         * simplify-rtx.c (add_mem_for_addr): Likewise.
5621         * stmt.c (expand_anon_union_decl): Likewise.
5622         * config/arm/arm.md: Likewise.
5623         * config/h8300/h7300.c (fix_bit_operand): Likewise.
5624         * config/m88k/m88k.c (legitimize_address, block_move_loop): Likewise.
5625         (block_move_no_loop, block_move_sequence): Likewise.
5626         * config/rs6000/rs6000.c (expand_block_move_mem): Likewise.
5627         * config/alpha/alpha.c (get_aligned_mem): Likewise.
5628         Clear MEM_ALIAS_SET.
5629         * final.c (alter_subreg): Don't copy MEM_ALIAS_SET when calling
5630         MEM_COPY_ATTRIBUTES.
5631
5632 2000-05-03  Robert Lipe <robertlipe@usa.net>
5633
5634         * configure.in (i[34567]86-*-isc*) [tmake_file]: Add t-i386bare
5635         to suppress libgcc1.
5636         (i[34567]86-*-sco3.2v5*) Likewise.
5637         (i[34567]86-*-sco3.2v4*) Likewise.
5638         (i[34567]86-*-sco) Likewise.
5639         (i[34567]86-*-solaris2) Likewise.
5640         (i[34567]86-*-sysv5*) Likewise.
5641         (i[34567]86-*-sysv4*) Likewise.
5642         (i[34567]86-*-udk*) Likewise.
5643         (i[34567]86-*-sysv*) Likewise.
5644
5645 2000-05-03  Zack Weinberg  <zack@wolery.cumb.org>
5646
5647         * cpphash.h (U): New define, to correct type of string constants.
5648         (ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr): New wrapper
5649         routines, to do casts when passing unsigned strings to libc.
5650         * cppexp.c, cppfiles.c, cpphash.c, cppinit.c, cpplib.c: Use them.
5651
5652         * cppfiles.c (_cpp_execute_include): Make filename an U_CHAR *.
5653         * cpphash.c (_cpp_quote_string): Make string an U_CHAR *.
5654         * cppinit.c (dump_special_to_buffer): Make macro name an U_CHAR *.
5655         * cpplex.c (parse_ifdef, parse_include, validate_else): Make
5656         second argument an U_CHAR *.
5657
5658         * cppinit.c (builtin_array): Make name and value U_CHAR *, add
5659         length field, clean up initializer.
5660         (ISTABLE): Add __extension__ to designated-
5661         initializers version.
5662         * cpplex.c (CHARTAB): Likewise.
5663
5664         * mbchar.c: Add dummy external declaration to the !MULTIBYTE_CHARS
5665         case so the file won't be empty.
5666
5667 Wed May  3 21:01:46 2000  Jason Eckhardt  <jle@cygnus.com>
5668
5669         * bb-reorder.c (struct reorder_block_def): Member succ removed.
5670         (REORDER_BLOCK_SUCC): Removed.
5671         (enum reorder_skip_type): Removed.
5672         (skip_insns_between_block): Renamed to skip_insns_after_block.
5673         Removed second argument. Removed dead code and cleaned up.
5674         (make_reorder_chain): Removed use of REORDER_BLOCK_SUCC.
5675         (reorder_basic_blocks): Remove use of REORDER_SKIP_AFTER. Removed
5676         second parameter to skip_insns_after_block.
5677
5678 Wed May  3 13:29:54 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5679
5680         * tree.c (staticp, case LABEL_DECL): New case.
5681
5682 2000-05-03  Richard Henderson  <rth@cygnus.com>
5683
5684         * Makefile.in (start.encap): Do not depend on LIBGCC1.
5685
5686         * mklibgcc1.in: Fix typo last change.
5687
5688 2000-05-03  Jason Merrill  <jason@casey.cygnus.com>
5689
5690         * Makefile.in (WARN_CFLAGS): Add -pedantic -Wno-long-long.
5691         (LOOSE_CFLAGS): New: CFLAGS without -pedantic and -Wtraditional.
5692         (GCC_CFLAGS): Use it.
5693         (LANG_FLAGS_TO_PASS): New: SUBDIR_FLAGS_TO_PASS with LOOSE_CFLAGS.
5694         * cp/Make-lang.in, java/Make-lang.in, f/Make-lang.in, ch/Make-lang.in,
5695         objc/Make-lang.in: Use it.
5696
5697 2000-05-03  Jason R Thorpe  <thorpej@zembu.com>
5698
5699         * config/i386/i386.md (lshrqi2_cmpno): Use q not r in constraint.
5700
5701 2000-05-03  Richard Henderson  <rth@cygnus.com>
5702
5703         * mklibgcc.in: Restrict OLDCC=GCC test to native.  Equate
5704         LIBGCC1 empty with libgcc1.null.
5705
5706 Wed May  3 12:55:46 2000  Jim Wilson  <wilson@cygnus.com>
5707
5708         * fold-const.c (extract_muldiv, case MAX_EXPR): Don't allow signedness
5709         change.
5710
5711 2000-05-03  Greg McGary  <gkm@gnu.org>
5712
5713         * tree.h (tree_common): Add bounded_flag member.  Remove
5714         inaccurate comment about number of remaining bits.
5715         (BOUNDED_INDIRECT_TYPE_P, BOUNDED_POINTER_TYPE_P,
5716         BOUNDED_REFERENCE_TYPE_P, MAYBE_BOUNDED_INDIRECT_TYPE_P,
5717         MAYBE_BOUNDED_POINTER_TYPE_P, MAYBE_BOUNDED_REFERENCE_TYPE_P,
5718         TREE_BOUNDED, TYPE_MAIN_VARIANTS_PHYSICALLY_EQUAL_P,
5719         TYPE_MAIN_PHYSICAL_VARIANT, TYPE_BOUNDED): New macros.
5720         (TYPE_QUAL_BOUNDED): New constant.
5721         (TYPE_QUALS): Handle bounded qualifier.
5722         (TREE_EXPR_QUALS, TREE_FUNC_QUALS): New macros.
5723         (TYPE_BOUNDED_VALUE, TYPE_BOUNDED_BASE, TYPE_BOUNDED_EXTENT,
5724         TYPE_BOUNDED_SUBTYPE, TYPE_UNBOUNDED_VARIANT, TYPE_POINTER_DEPTH,
5725         TYPE_AMBIENT_BOUNDEDNESS): New macros.
5726         (MAX_POINTER_DEPTH, VA_LIST_POINTER_DEPTH): New constants.
5727         (tree_type): Add pointer_depth member.  Remove
5728         inaccurate comment about number of remaining bits.
5729         (DECL_POINTER_DEPTH): Add macro.
5730         (tree_decl): Add pointer_depth member.
5731
5732 Wed May  3 22:52:53 2000  Denis Chertykov  <denisc@overta.ru>
5733
5734         * config/avr/avr-protos.h (test_hard_reg_class): Declared.
5735         * config/avr/avr.c (ashrhi3_out): optimized shift by 15.
5736         (lshrhi3_out): Likewise.
5737         (ashrsi3_out): bugfix in shift by 8.
5738         (test_hard_reg_class): New function.
5739         * config/avr/avr.md: Bugfix inside conditions in peepholes.
5740         (ashlhi3): removed define_expand of this pattern.
5741         (*ashlhi3_insn): renamed to ashlhi3.
5742         (ashlsi3): removed define_expand of this pattern.
5743         (*ashlsi3_insn): renamed to ashlsi3.
5744         (ashrqi3): removed define_expand of this pattern.
5745         (*ashrqi3_insn): renamed to ashrqi3.
5746         (ashrhi3): removed define_expand of this pattern.
5747         (*ashrhi3_insn): renamed to ashrhi3.
5748         (ashrsi3): removed define_expand of this pattern.
5749         (*ashrsi3_insn): renamed to ashrsi3.
5750         (lshrhi3): removed define_expand of this pattern.
5751         (*lshrhi3_insn): renamed to lshrhi3.
5752         (lshrsi3): removed define_expand of this pattern.
5753         (*lshrsi3_insn): renamed to lshrsi3.
5754
5755 2000-05-03  Rodney Brown  <RodneyBrown@pmsc.com>
5756
5757         * config/mcore/mcore.c: Replacing inclusion of "stdio,h" with
5758         inclusion of "system.h".
5759
5760 Wed May  3 11:43:53 2000  Jim Wilson  <wilson@cygnus.com>
5761
5762         * config/ia64/ia64.c (ia64_encode_section_info): Add check for
5763         TREE_ASM_WRITTEN.
5764
5765 2000-05-03  David Mosberger  <davidm@hpl.hp.com>
5766
5767         * config/ia64/ia64.c (ia64_override_options): Force -mconstant-gp
5768         if -mauto-pic is on.
5769         (ia64_epilogue_uses): Mark "gp" (r1) as used by the epilogue if
5770         -mconstant-gp is in effect and function-descriptors are being used
5771         to make indirect calls.
5772         * config/ia64/ia64.h (MASK_CONST_GP): New macro.
5773         (MASK_AUTO_PIC): Ditto.
5774         (TARGET_CONST_GP): Ditto.
5775         (TARGET_AUTO_PIC): Ditto.
5776         (TARGET_SWITCHES): Add -mconstant-gp and -mauto-pic options.
5777         (ASM_OUTPUT_DOUBLE_INT): Don't generate @fptr() if -mauto-pic or
5778         -mno-pic is in effect.
5779         (ASM_OUTPUT_XDATA_DOUBLE_INT): Ditto.
5780         * config/ia64/ia64.md (movdi): Use gen_load_gprel64() if
5781         -mauto-pic is in effect.
5782         (gprel64_offset): New pattern.
5783         (load_gprel64): Ditto.
5784         (call): Handle -mauto-pic like -mno-pic (don't use fptr).  If
5785         -mconstant-gp is in effect, no need to preserve gp around direct
5786         calls.
5787         (call_value): Ditto.
5788         * config/ia64/linux.h (PROFILE_BEFORE_PROLOGUE): Define.
5789         (FUNCTION_PROFILER): Define.
5790         * config/ia64/sysv4.h (ASM_OUTPUT_CONSTRUCTOR): Don't generate
5791         @fptr() directive when -mno-pic or -mauto-pic is in effect.
5792         (ASM_OUTPUT_DESTRUCTOR): Ditto.
5793
5794 2000-05-03  Richard Henderson  <rth@cygnus.com>
5795
5796         * Makefile.in (STAGESTUFF): Add libgcc libgcc.mk.
5797         (libgcc1.null, libgcc1.cross, libgcc1.a): Remove targets.
5798         (libgcc1-asm.a, libgcc1.S, libgcc2.a): Remove targets.
5799         (mklibgcc, libgcc.mk): New targets.
5800         (libgcc.a): Use libgcc.mk.
5801         (stmp-multilib): Likewise.
5802         (stmp-multilib-sub): Remove.
5803         (mostlyclean): Don't delete libgcc2 temp files.
5804         * configure.in (AC_PROG_CC_C_O): Add.
5805         (NO_MINUS_C_MINUS_O): Substitute it.
5806         (all_outputs): Add mklibgcc.
5807         * mklibgcc.in: New file.
5808
5809 2000-05-03  Jason Merrill  <jason@casey.cygnus.com>
5810
5811         * cppexp.c (op_t): Make an int.
5812
5813         * rtlanal.c (dead_or_set_regno_p): Remove unused variable.
5814
5815         * varasm.c (initializer_constant_valid_p): Fix parenthesis.
5816
5817         * gensupport.c (process_rtx): Fix macros used.
5818
5819 2000-05-03  Richard Henderson  <rth@cygnus.com>
5820
5821         * flow.c (propagate_one_insn): Also don't PROP_REG_INFO for
5822         call-clobbered registers of a call.
5823
5824 Wed May  3 12:40:53 2000  Clinton Popetz  <cpopetz@cygnus.com>
5825
5826         * gensupport.c: New file.
5827         * gensupport.h: New file.
5828         * Makefile.in (HOST_RTL): Depend on gensupport.
5829         (gensupport.o) New rule.
5830         * genattr.c: Use gensupport for reading .md files.
5831         * genattrtab.c: Ditto.
5832         * gencodes.c: Ditto.
5833         * genconfig.c: Ditto.
5834         * genemit.c: Ditto.
5835         * genextract.c: Ditto.
5836         * genflags.c: Ditto.
5837         * genopinit.c: Ditto.
5838         * genoutput.c: Ditto.
5839         * genpeep.c: Ditto.
5840         * genrecog.c: Ditto.
5841         * rtl.def (define_insn_and_split): New DEF_RTL_EXPR.
5842         * md.texi (Insn Splitting): Document define_insn_and_split.
5843
5844 Tue May  2 00:20:30 2000  Jason Eckhardt  <jle@cygnus.com>
5845
5846         * flow.c (verify_flow_info): Added two more sanity checks. The
5847         first checks that the blocks are numbered consecutively. The second
5848         checks that n_basic_blocks is actually equal to the number of
5849         basic blocks in the insn chain.
5850
5851 2000-05-03  Zack Weinberg  <zack@wolery.cumb.org>
5852
5853         * cpplib.h: Add accessor macros for token lists.
5854         * cpplib.c, cpphash.c, cpplex.c: Use them.
5855
5856 Wed May  3 09:29:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5857
5858         * expr.c (expand_expr, case COMPONENT_REF): Don't check for checking
5859         memory usage if not in a function.
5860         * varasm.c (initializer_constant_valid_p, case ADDR_EXPR): Only
5861         return address if static.
5862
5863 Wed May  3 13:14:49 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5864
5865         * ifcvt.c (noce_try_cmove_arith):  Use may_trap_p to thest
5866         whether address may trap.
5867
5868 Tue May  2 23:38:37 2000  Jason Eckhardt  <jle@cygnus.com>
5869
5870         * bb-reorder (chain_reorder_blocks): Changed code to test for
5871         EDGE_FALLTHRU rather than making erroneous assumption that the
5872         first outgoing edge is the fall-through edge.
5873
5874 Tue May  2 18:20:31 2000  Donald Lindsay  <dlindsay@hound.cygnus.com>
5875
5876         * config/mips/mips.c (mips_build_va_list,mips_va_start,mips_va_arg): new
5877         ABI for varargs, across all MIPS. This is incompatible because the
5878         va_list (__builtin_va_list) structure is different, so a compilation
5879         unit passing a va_list and a compilation unit being passed one, should
5880         both be compiled with the same ABI. (The old structure had two
5881         pointers, now it has three.)
5882
5883 Tue May  2 19:18:43 2000  Jason Eckhardt  <jle@cygnus.com>
5884
5885         * bb-reorder.c (struct reorder_block_def): Remove members end,
5886         block_begin, and block_end.
5887         (REORDER_BLOCK_OLD_END): Delete.
5888         (REORDER_BLOCK_BEGIN): Delete.
5889         (REORDER_BLOCK_END): Delete.
5890         (chain_reorder_blocks): Remove dead code.
5891
5892 Tue May  2 17:06:53 2000  Jason Eckhardt  <jle@cygnus.com>
5893
5894         * bb-reorder.c (remove_scope_notes): Check for both types of scope
5895         notes as the end of a basic block before deleting.
5896
5897 2000-05-02  Mumit Khan  <khan@xraylith.wisc.edu>
5898
5899         * final.c (final_start_function): Fix spelling of "necessary".
5900
5901 2000-05-02  Jason Merrill  <jason@casey.cygnus.com>
5902
5903         * toplev.c (debug_ignore_block): Return int.
5904         * dwarf2out.c (dwarf2out_ignore_block): Likewise.
5905         * toplev.h, dwarf2out.h: Adjust.
5906         * emit-rtl.c (remove_unnecessary_notes): Test return value.
5907
5908         * emit-rtl.c (remove_unnecessary_notes): Fix spelling of "necessary".
5909         * toplev.c, final.c, rtl.h: Adjust.
5910
5911 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
5912
5913         * aclocal.m4 (gcc_AC_CHECK_PROG_VER): New macro.
5914         * configure.in: Look for makeinfo in the unified tree, then
5915         for a system makeinfo which is sufficiently new.
5916         * Makefile.in: If configure says makeinfo is too old, don't
5917         build or install Info documentation.
5918
5919 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
5920
5921         * cpphash.c (collect_params): Fix off-by-one error.
5922         (dump_hash_helper): Dump all four macro nodetypes.
5923
5924 2000-05-02  Jakub Jelinek  <jakub@redhat.com>
5925
5926         * cpphash.c (trad_stringify): Adjust p after stringification as
5927         well.
5928
5929 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
5930
5931         * cpplib.h (CPP_POP, parse_cleanup_t): Delete.
5932         (cpp_buffer): Remove cleanup, seen_eof, manual_pop members.
5933
5934         * cppfiles.c (file_cleanup): Delete.
5935         * cpphash.c (macro_cleanup): Delete.
5936         (collect_objlike_expansion, collect_funlike_expansion,
5937         macarg, scan_arguments): Remove CPP_POP case.
5938
5939         * cpplex.c (null_cleanup): Delete.
5940         (cpp_pop_buffer): Do the work that was done in the cleanups
5941         here.  Call _cpp_unwind_if_stack from here.
5942         (_cpp_expand_to_buffer, cpp_scan_buffer_nooutput,
5943         cpp_scan_buffer): Run until we see CPP_EOF and the top of
5944         stack is the buffer _below_ the one we stacked.
5945         (cpp_get_token): Always pop an exhausted buffer.  Return
5946         CPP_EOF unless it's a macro buffer.  Don't call _cpp_handle_eof.
5947         * cpplib.c (skip_if_group): Don't call cpp_get_token to
5948         increment the line number.
5949         (_cpp_handle_eof): Rename to _cpp_unwind_if_stack.
5950
5951         * fix-header.c (read_scan_file) [parsing getchar()]: Run until
5952         we see CPP_EOF and the top of stack is the buffer _below_ the
5953         one we stacked.
5954         * scan-decls.c: Likewise.
5955
5956 2000-05-02  Andrew Haley  <aph@cygnus.com>
5957
5958         * config/ia64/ia64.c (ia64_encode_section_info): Handle the case
5959         where this function is called for the second time on a decl that
5960         has had its section info changed in such a way as to move it out
5961         of small data/bss.
5962         * config/ia64/ia64.h (REDO_SECTION_INFO_P): New definition.
5963
5964 2000-05-01  Richard Henderson  <rth@cygnus.com>
5965
5966         * ifcvt.c (dead_or_predicable): Set merge_bb->end to the insn before
5967         the sequence we're moving, not to merge_bb->head.
5968
5969 2000-05-01  Richard Henderson  <rth@cygnus.com>
5970
5971         * configure.in (alpha*-*-linux-gnulibc1*) [tmake_file]: Remove
5972         reference to alpha/t-linux.
5973         (alpha*-*-linux-gnu*): Likewise.
5974         * configure: Rebuild.
5975
5976         * calls.c (expand_call): Don't emit reg notes for a sibcall.
5977
5978         * flow.c (calculate_global_regs_live): Skip for_each_successor_phi
5979         if not in SSA form.
5980
5981         * ifcvt.c (if_convert): Only verify_flow_info if ENABLE_CHECKING.
5982
5983 2000-05-01  Jason Merrill  <jason@casey.cygnus.com>
5984
5985         * integrate.c (copy_decl_for_inlining): Copy TREE_READONLY and
5986         TREE_THIS_VOLATILE.
5987
5988 2000-05-01  Richard Henderson  <rth@cygnus.com>
5989
5990         * ifcvt.c (noce_emit_cmove): Conditionally compile call to
5991         emit_conditional_move.
5992
5993 2000-05-01  Jakub Jelinek  <jakub@redhat.com>
5994
5995         * config/ia64/linux.h (LINK_SPEC): Use /lib/ld-linux-ia64.so.1
5996         as the dynamic linker.
5997
5998 2000-05-01  Zack Weinberg  <zack@wolery.cumb.org>
5999
6000         * cppfiles.c (open_include_file): Open file in blocking mode.
6001         (read_include_file): Don't fcntl(fd, F_SETFL, 0) anymore.
6002         Only exclude block devices and directories.
6003
6004         * cpphash.c (_cpp_make_hashnode): Rename make_HASHNODE, now
6005         static.  Allocate the hashnode and its string in the same
6006         block of memory.
6007         (del_HASHNODE): Don't free h->name.
6008         (_cpp_lookup): If there is no entry for this string, create
6009         one, of type T_VOID.
6010         (_cpp_lookup_slot): Delete.
6011         * cpphash.h: Update prototypes.
6012
6013         * cpplex.c (maybe_macroexpand): Check for hp->type == T_VOID,
6014         not hp == NULL.
6015         * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert,
6016         do_unassert, cpp_defined): Use _cpp_lookup.  Don't create a
6017         node here, just fill in the value field properly.  "Delete"
6018         entries by setting the value field to T_VOID.  Check for
6019         hp->type == T_VOID, not hp == NULL.
6020
6021         * Makefile.in (cpplib.o): Don't depend on $(HASHTAB_H).
6022         * cpperror.c, cppexp.c, cpplex.c, cpplib.c:  Don't include
6023         hashtab.h.
6024
6025 2000-05-01  Alexandre Oliva  <aoliva@cygnus.com>
6026
6027         * config/mn10300/mn10300.c (print_operand_address): Do not add
6028         zero to SP.
6029
6030         * config/mn10300/mn10300.c (expand_epilogue): If SP is to be
6031         adjusted by less than 256 bytes, use ret regardless of having any
6032         callee-saved register to restore.
6033
6034 2000-05-01 Laurynas Biveinis <lauras@softhome.net>
6035
6036         * tm.texi (TARGET_HAS_F_SETFLKW): Fix typo.
6037
6038 2000-05-01 Mark Elbrecht <snowball3@bigfoot.com>
6039
6040         * config/i386/djgpp.h (INT_ASM_OP): Define.
6041         (CPP_PREDEFINES): Rename MSDOS to __MSDOS__.
6042         (ASM_WEAKEN_LABEL): Define.
6043         (MASK_BNU210): Define.
6044         (SUBTARGET_SWITCHES): Define.
6045         (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Define.
6046         (MAKE_DECL_ONE_ONLY): Define.
6047         (UNIQUE_SECTION_P, UNIQUE_SECTION): Define.
6048
6049 2000-05-01  Mumit Khan  <khan@xraylith.wisc.edu>
6050
6051         * i386/cygwin.h (INT_ASM_OP): Define.
6052
6053 Mon May  1 18:20:06 2000  Denis Chertykov  <denisc@overta.ru>
6054
6055         * config/avr/avr.c (address_cost): renamed to avr_address_cost.
6056         * config/avr/avr.h (ADDRESS_COST): use avr_address_cost.
6057
6058 Mon May  1 17:50:44 2000  Denis Chertykov  <denisc@overta.ru>
6059
6060         * config/avr/avr.c (asm_file_start): output 0 as r0 and 1 as r1 in
6061         __tmp_reg__ and __zero_reg__ initialization.
6062
6063 2000-04-30  Richard Henderson  <rth@cygnus.com>
6064
6065         * flow.c (propagate_one_insn): Mark sets even when the insn is dead.
6066
6067         * ifcvt.c (noce_process_if_block): Fail the conversion if X is
6068         referenced bewteen the condition and the jump.  Don't delete
6069         anything but the jump.
6070
6071 Sun Apr 30 22:48:24 2000  Jason Eckhardt  <jle@cygnus.com>
6072
6073         * bb-reorder.c (scope_def): New struct.
6074         (scope_forest_info): New struct.
6075         (struct reorder_block_def): New member "scope".
6076         (REORDER_BLOCK_SCOPE): New macro.
6077         (relate_bbs_with_scopes): New function and prototype.
6078         (make_new_scope): Likewise.
6079         (build_scope_forest): Likewise.
6080         (remove_scope_notes): Likewise.
6081         (insert_intra_1): Likewise.
6082         (insert_intra_bb_scope_notes): Likewise.
6083         (insert_inter_bb_scope_notes): Likewise.
6084         (rebuild_scope_notes): Likewise.
6085         (free_scope_forest_1): Likewise.
6086         (free_scope_forest): Likewise.
6087         (dump_scope_forest): Likewise.
6088         (dump_scope_forest_1): Likewise.
6089         (chain_reorder_blocks): Set REORDER_BLOCK_SCOPE for new block.
6090         Update REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for new
6091         block.
6092         (reorder_basic_blocks): Added calls to build_scope_scope_forest
6093         and remove_scope_notes before reordering is done. Added calls to
6094         rebuild_scope_notes, free_scope_forest, and reorder_blocks after
6095         after reordering is done.
6096
6097 2000-40-30  Bruce Korb  <bkorb@gnu.org>
6098
6099         * fixinc/inclhack.def:  Added definitions needed by OSR5,
6100         removed two stale entries (defined away with OLD_CPP).
6101         * fixinc/inclhack.sh: regen
6102         * fixinc/fixincl.x: regen
6103
6104 2000-04-30  Richard Henderson  <rth@cygnus.com>
6105
6106         * ifcvt.c (dead_or_predicable): Manually squeeze non-movable notes
6107         from the last insn in the sequence.
6108
6109 2000-04-30  Zack Weinberg  <zack@wolery.cumb.org>
6110
6111         * cpplex.c (cpp_idcmp): New function.
6112         * cpplib.h: Prototype it.
6113         * scan_decls.c (scan_decls): Use it to inspect token names.
6114         * fix-header.c (read_scan_file): Likewise.  Set system_header_p on
6115         the file being run through the preprocessor.
6116         (check_macro_names): Provide length of token to cpp_defined.
6117
6118         * Makefile.in: Remove stale warning message.
6119
6120         * cppfiles.c (redundant_include_p): Provide length of token to
6121         cpp_defined.
6122         * cpphash.c (_cpp_make_hashnode, _cpp_lookup_slot): Hash
6123         values are unsigned int.
6124         (_cpp_lookup, _cpp_lookup_slot): Do not calculate the length.
6125         (_cpp_lookup_slot): Do not calculate the hash, either.
6126         * cpphash.h: Update prototypes.
6127         * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert):
6128         Hashes are unsigned int.  Calculate hash here, pass by value
6129         to _cpp_lookup_slot.
6130
6131 2000-04-30  Bernd Schmidt  <bernds@cygnus.co.uk>
6132
6133         * simplify-rtx.c (check_value_useless): Delete function.
6134         (discard_useless_locs): Don't call it; manage N_USELES_VALUES counter
6135         by hand.
6136         (cselib_invalidate_regno): Likewise.
6137         (cselib_invalidate_mem_1): Likewise.
6138         (references_value_p): Recognize useless values by the fact that they
6139         have no locations.
6140         (discard_useless_values): Likewise.
6141         (cselib_record_set): This may turn a useless value
6142         into a useful one.
6143
6144 2000-04-30  Richard Henderson  <rth@cygnus.com>
6145
6146         * config/d30v: New port.
6147
6148         * configure.in (d30v-*): Set fp format.
6149         * configure: Rebuild.
6150
6151 2000-04-30  Richard Henderson  <rth@cygnus.com>
6152
6153         * ifcvt.c: New file.
6154         * Makefile.in (OBJS): Add it.
6155         (ifcvt.o): New target.
6156         * jump.c (jump_optimize_1): Remove all code related to if-conversion,
6157         and conditional arithmetic.
6158         (find_insert_position): Remove.
6159         * timevar.def (TV_IFCVT, TV_IFCVT2): New.
6160         * toplev.c (DFI_ce, DFI_ce2): New.
6161         (dump_file): Add ce and ce2 dumps.
6162         (rest_of_compilation): Run if_convert a couple o times.  Set
6163         cse_not_expected after cse2.  Don't set no_new_pseudos until
6164         after sched1 or recompute_reg_usage.
6165
6166 2000-04-30  Richard Henderson  <rth@cygnus.com>
6167
6168         * config/alpha/t-crtbe (crtbegin.o): Add "-I.".
6169         (crtend.o, crtbeginS.o, crtendS.o): Likewise.
6170
6171 2000-04-30  Richard Henderson  <rth@cygnus.com>
6172
6173         * flow.c (struct reg_cond_life_info): New.
6174         (struct propagate_block_info): Add reg_cond_dead and reg_cond_reg.
6175         (init_propagate_block_info): Initialize them.
6176         (free_propagate_block_info): Destruct them.
6177         (mark_set_1): Consider conditional life before killing a register.
6178         (mark_regno_cond_dead): New.
6179         (free_reg_cond_life_info): New.
6180         (flush_reg_cond_reg_1, flush_reg_cond_reg): New.
6181         (ior_reg_cond, not_reg_cond, nand_reg_cond): New.
6182         (mark_used_reg): Record conditional life.
6183
6184         * haifa-sched.c (schedule_insns): Disable death counting
6185         sanity check for HAVE_conditional_execution.
6186
6187 2000-04-30  Richard Henderson  <rth@cygnus.com>
6188
6189         * Makefile.in (TIMEVAR_H): New.
6190         (ggc-simple.o, ggc-page.o, toplev.o, timevar.o): Use it.
6191         (timevar.h): Remove rule.
6192
6193 2000-04-29  Richard Henderson  <rth@cygnus.com>
6194
6195         * config/alpha/crtend.asm: Use C comments instead of #.
6196         * config/alpha/crtbegin.asm: Likewise.  Mark __dso_handle hidden.
6197
6198         * config/alpha/elf.h (SELECT_SECTION): Treat CONSTRUCTOR like VAR_DECL.
6199
6200 2000-04-29  Zack Weinberg  <zack@wolery.cumb.org>
6201
6202         * cpphash.h (enum node_type: Take out T_MCONST.
6203         (union hashval): Move into struct hashnode.
6204         (struct hashnode): Pack tighter.  Remove file, line, col
6205         members.
6206         * cpphash.c: Constify most of the macro-definition structures.
6207         (struct definition): Replace by struct object_defn
6208         and struct funct_defn.  Put file, line, column information
6209         here.  All users updated to match.
6210         (_cpp_create_definition, _cpp_macroexpand): Remove special
6211         case for #define WORD OTHERWORD.
6212         * cpplib.c (do_undef): Remove T_MCONST case.
6213
6214         * cpphash.h: Move struct reflist, struct definition, and the
6215         DEFINITION typedef to cpphash.c.  Use 'struct definition *' in
6216         union hashval.  _cpp_free_definition takes a HASHNODE pointer.
6217         * cpphash.c (_cpp_free_definition): Free data pointed to by
6218         MCONST, XCONST, MACRO, and FMACRO nodes properly.
6219         (_cpp_create_definition, del_HASHNODE): Just call
6220         _cpp_free_definition to clear out a hashnode.
6221         * cpplib.c (do_pragma_poison): Likewise.
6222
6223 Sat Apr 29 12:25:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
6224
6225         * config/mn10300/mn10300.h (FIRST_DATA_REGNUM,
6226         LAST_DATA_REGNUM, FIRST_ADDRESS_REGNUM, LAST_ADDRESS_REGNUM,
6227         FIRST_EXTENDED_REGNUM, LAST_EXTENDED_REGNUM): New macros.
6228         (REGNO_SP_P): Redefine in terms of STACK_POINTER_REGNUM.
6229         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_EXTENDED_P,
6230         REGNO_AM33_P): Redefine in terms of the new macros.
6231         (CONDITIONAL_REGISTER_USAGE, REGNO_REG_CLASS): Likewise.
6232         (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
6233         STRUCT_VALUE): Likewise.
6234         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM,
6235         ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Likewise.  Moved.
6236
6237 Sat Apr 29 01:18:45 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6238
6239         * regmove.c (struct record_stack_memrefs_data): New.
6240         (record_stack_memrefs): New function.
6241         (combine_stack_adjustments_for_block): Use it.
6242
6243 Sat Apr 29 01:15:27 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6244
6245         * calls.c (calls_function_1):  Propertly handle TREE_LIST expressions;
6246         use special_function_p to detect alloca.
6247
6248 Fri Apr 28 16:30:33 2000  Marc Espie <espie@cvs.openbsd.org>
6249
6250         * gcc.texi: Fixes for makeinfo 4.0 --html.
6251
6252 2000-04-28  Zack Weinberg  <zack@wolery.cumb.org>
6253
6254         * pcp.h: Delete file.
6255
6256 2000-04-28  Kazu Hirata  <kazu@hxi.com>
6257
6258         * h8300.c (function_epilogue): Clean up flags when the last insn
6259         in a function is a barrier.
6260
6261 2000-04-28  Chris Demetriou  <cgd@sibyte.com>
6262
6263         * configure.in (sparc-hal-solaris2*): protect [] glob from
6264         my expansion.
6265         (mips*-*-ecoff*, mips*-*-elf*, mips*-*-*): use MASK_ defines
6266         rather than hard-coded constants in target_cpu_default2.
6267         * configure: Regenerate.
6268
6269 2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
6270
6271         * tree.c (get_callee_fndecl): Extract the initial value from
6272         a readonly decl.
6273
6274 2000-04-28  Richard Henderson  <rth@cygnus.com>
6275
6276         * varasm.c (record_constant_1): Record the CODE_LABEL when
6277         taking the address of a LABEL_REF.
6278
6279 2000-04-28  Richard Henderson  <rth@cygnus.com>
6280             Jan Hubicka  <jh@suse.cz>
6281
6282         * calls.c (combine_pending_stack_adjustment_and_call): Return the
6283         adjustment; don't do the stack adjust.
6284         (expand_call): Call compute_argument_block_size right before
6285         allocating the block; update comment; don't do alignment sanity
6286         checking for sibling call; use args_size instead of
6287         unadjusted_args_size before args_size is adjusted.  Use
6288         combine_pending_stack_adjustment_and_call to compute stack adjust
6289         for must_preallocate case.
6290
6291         * expr.c (push_block): Remove shadow `temp' in inner scope.
6292
6293 2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
6294
6295         * toplev.c (rest_of_compilation): Call
6296         note_deferral_of_defined_inline_function even if the function
6297         can't be inlined.
6298
6299 2000-04-28  Scott Bambrough  <scottb@netwinder.org>
6300
6301         * cpplex.c (_cpp_scan_line): Fix buffer overwrite.
6302
6303 2000-04-28  Richard Henderson  <rth@cygnus.com>
6304
6305         * toplev.c (rest_of_type_compilation): Fix sdb TIMEVAR typo.
6306
6307 2000-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6308
6309         * timevar.c (init_timevar): DeANSIfy function definition.
6310
6311 2000-04-27  Alex Samuel  <samuel@codesourcery.com>
6312
6313         * Makefile.in (timevar.o): Depend on flags.h.
6314         * timevar.c (unused_stack_instances): New variable.
6315         (timevar_push): Take a timevar_stack_def from
6316         unused_stack_instances if available.
6317         (timevar_pop): Push the popped timevar_stack_def onto
6318         unused_stack_instances.
6319         (TIMEVAR_ENABLE): New macro.
6320         (timevar_def): Make standalone a 1-bit field.  Add field used.
6321         (get_time): Rename parameter to now.  Return after clearing it if
6322         not TIMEVAR_ENABLE.
6323         (init_timevar): Do nothing if not TIMEVAR_ENABLE.
6324         (timevar_pop): Likewise.
6325         (timevar_stop): Likewise.
6326         (timevar_push): Likewise.  Mark the timing variable as used.
6327         (timevar_start): Likewise.
6328         (timevar_print): Do nothing if not TIMEVAR_ENABLE.  Don't print
6329         timevars that were never used.
6330
6331 2000-04-27  Mark Mitchell  <mark@codesourcery.com>
6332
6333         * c-common.c (c_apply_type_quals_to_decl): REFERENCE_TYPES are
6334         always TREE_READONLY.
6335
6336 2000-04-27  Ulrich Drepper  <drepper@cygnus.com>
6337
6338         * i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Generate mem reference
6339         for call instruction with mode QImode.
6340
6341 2000-04-27  Alex Samuel  <samuel@codesourcery.com>
6342
6343         * Makefile.in (OBJS): Add timevar.o.
6344         (toplev.o): Depend on timevar.h.
6345         (ggc-simple.o): Likewise.
6346         (ggc-page.o): Likewise.
6347         (timevar.o): New rule.
6348         (timevar.h): New rule.
6349
6350         * timevar.h: New file.
6351         * timevar.c: Likewise.
6352         * timevar.def: Likewise.
6353
6354         * toplev.h (gc_time, parse_time, varconst_time): Remove.
6355         * toplev.c: Use timevar_push and timevar_pop instead of TIMEVAR
6356         throughout.
6357         (TIMEVAR): Remove macro.
6358         (gc_time, parse_time, varconst_time, integration_time, jump_time,
6359         cse_time, gcse_time, loop_time, cse2_time, branch_prob_time,
6360         flow_time, combine_time, regmove_time, sched_time,
6361         local_alloc_time, global_alloc_time, flow2_time, peephole2_time,
6362         sched2_time, dbr_sched_time, reorder_blocks_time,
6363         rename_registers_time, shorten_branch_time, stack_reg_time,
6364         to_ssa_time, from_ssa_time, final_time, symout_time, dump_time,
6365         all_time): Remove.
6366         (compile_file): Don't initialize time variables.  Call
6367         init_timevar and start TV_TOTAL timer.  Call timevar_print instead
6368         of many calls to print_time.
6369         (rest_of_compilation): Add timing for reload_cse_regs.
6370         (get_run_time): Removed to timevar.c.
6371         (print_time): Likewise.
6372         (get_run_time): Implement using TV_TOTAL time variable.
6373         (print_time): Get total run time from get_run_time.
6374         * ggc-page.c (ggc_collect): Push and pop TV_GC instead of
6375         computing elapsed time explicitly.
6376         * ggc-simple.c (ggc_collect): Likewise.
6377         (gc_time): Remove declaration.
6378
6379 2000-04-27  Mark Mitchell  <mark@codesourcery.com>
6380
6381         * calls.c (combine_pending_stack_adjustment_and_call): New function.
6382         (expand_call): Use it.
6383
6384 2000-04-27  Jan Hubicka  <jh@suse.cz>
6385
6386         * flow.c (mark_set_1):  Handle MEMs in ZERO_EXTRACT/SIGN_EXTRACT
6387         fields.
6388
6389 Thu Apr 27 12:47:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
6390
6391         * config/mn10300/mn10300.md (movhi): Simplify.  Prefer data
6392         registers.
6393
6394 Thu Apr 27 17:33:05 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6395
6396         * function.c (epilogue_done): Pass whole insn to record_insns.
6397
6398 Thu Apr 27 16:55:28 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6399
6400         * cse.c (CSE_ADDRESS_COST): Remove.
6401         (find_best_addr): Add new parameter "MODE", use address_cost instead
6402         of CSE_ADDRESS_COST
6403         (address_cost): New.
6404         (fold_rtx): Update call of find_best_addr.
6405         * rtl.h (address_cost): Declare.
6406         * loop.c (general_induction_var): Add new parameter "MODE", use
6407         address_cost instead of ADDRESS_COST
6408         (init_loop): Use address_cost instead of ADDRESS_COST.
6409         (check_insn_for_givs): Update call of general_induction_var.
6410         (find_mem_givs): Likewise.
6411         (consec_sets_giv): Likewise.
6412         * config/i386/i386.h (ADDRESS_COST): Call ix86_address_cost.
6413         * i386.c (ix86_address_cost): New.
6414         * i386-protos.h (ix86_address_cost): Declare.
6415
6416 Thu Apr 27 11:45:16 2000  Alexandre Oliva  <aoliva@cygnus.com>
6417
6418         * config/mn10300/mn10300.md (movqi): Simplify.  Prefer data
6419         registers.
6420
6421 Thu Apr 27 16:11:00 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6422
6423         * expr.c (store_expr): Use clear_storage instead of direct memset
6424         libcall.
6425
6426 Thu Apr 27 10:36:51 2000  Alexandre Oliva  <aoliva@cygnus.com>
6427
6428         * config/mn10300/mn10300.c (mn10300_address_cost): Test
6429         ASHIFT, AND and LABEL_REF.
6430
6431 Thu Apr 27 15:08:46 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6432
6433         * invoke.texi (-foptimize-sibling-calls): Fix.
6434
6435 Thu Apr 27 14:54:22 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6436
6437         * loop.c (load_mems)  Don't use hard registers for the hoisting.
6438
6439         * unroll.c (unroll_loop): Avoid overflow in the n_iterations
6440         calculation; rename const_equiv array in the preconditioning code
6441         from loop_unroll to loop_unroll_precondition
6442
6443 2000-04-27  Richard Henderson  <rth@cygnus.com>
6444
6445         * flow.c (struct propagate_block_info): Remove new_dead, new_live;
6446         add new_set.
6447         (propagate_one_insn): Clear it.  Don't update reg_live here.
6448         (init_propagate_block_info): Update for pbi member changes.
6449         (free_propagate_block_info): Likewise.
6450         (mark_set_1): Know that zero_extract, sign_extract, and
6451         strict_low_part don't kill their argument.  Alter hard subregs.
6452         Update new_set for non-CLOBBER sets.  Update reg_live.
6453         (find_auto_inc): Update reg_live, not new_dead.
6454         (mark_used_reg): Update reg_live, not new_live.  Examine new_set
6455         to determine if the reg in question was set this insn.  Only update
6456         reg info with PROP_REG_INFO.
6457
6458 2000-04-26  Richard Henderson  <rth@cygnus.com>
6459
6460         * flow.c (allocate_reg_life_data): Set max_regno here ...
6461         (life_analysis): ... not here.
6462
6463         * flow.c (calculate_global_regs_live): Force stack pointer
6464         live at end.
6465
6466 2000-04-26  Richard Henderson  <rth@cygnus.com>
6467
6468         * jump.c (redirect_exp_1): Rework from old redirect_exp.  Never
6469         commit change group changes.
6470         (invert_exp_1): Similarly.
6471         (redirect_exp, invert_exp): Use them.
6472         (redirect_jump_1): New.
6473         (invert_jump_1): New.
6474         (jump_optimize_1): Remove code subsumed by condexec.c.
6475         * rtl.h (invert_jump_1, redirect_jump_1): Declare.
6476
6477 2000-04-26  Richard Henderson  <rth@cygnus.com>
6478
6479         * rtlanal.c (dead_or_set_regno_p): Use find_regno_note.
6480
6481         * genconfig.c (main): Set all HAVE_foo to 1.
6482
6483         * graph.c (node_data): Use GET_NOTE_INSN_NAME instead of local array.
6484
6485 2000-04-26  Alex Samuel  <samuel@codesourcery.com>
6486
6487         * invoke.texi: Document -fssa flag.
6488
6489 2000-04-26  Richard Henderson  <rth@cygnus.com>
6490
6491         * flow.c (count_reg_sets_1): Remove.
6492         (count_reg_sets, count_reg_references): Remove.
6493         (recompute_reg_usage): Implement with update_life_info.
6494         Reallocate life data.
6495
6496 2000-04-26  Richard Henderson  <rth@cygnus.com>
6497
6498         * flow.c (update_life_info): Consider blocks null to mean the
6499         universal set.
6500         (calculate_global_regs_live): Likewise.
6501         (life_analysis): Do that instead of collecting all_blocks.
6502
6503 2000-04-26  Richard Henderson  <rth@cygnus.com>
6504
6505         * flow.c (tidy_fallthru_edge): Don't delete the jump when it's
6506         a still-valid conditional jump.
6507
6508 2000-04-26  Richard Henderson  <rth@cygnus.com>
6509
6510         * jump.c (invert_jump): Always invert REG_BR_PROB.  Do it correctly.
6511
6512         * bb-reorder.c (reorder_basic_blocks): Don't run estimate_probability.
6513         * flow.c (calculate_loop_depth): Remove.
6514         * output.h (calculate_loop_depth): Don't declare.
6515         * toplev.c (rest_of_compilation): Expand calculate_loop_depth
6516         inline; run estimate_probability at the same time.
6517
6518 2000-04-26  Neil Booth  <NeilB@earthling.net>
6519
6520         * cpplib.h: "~=" is not a single pp-token.
6521         * cpplex.c: Correct commentary.
6522
6523 2000-04-26  Richard Henderson  <rth@cygnus.com>
6524
6525         * flow.c (mark_set_1): New arguments code and flags; update all
6526         callers.  Track regno_first and regno_last; do HARD_REGNO_NREGS
6527         test in one place.  Tidy flags tests.  Don't bias REG_N_REFS by
6528         loop_depth when optimizing for size.  Do new_dead update after
6529         emitting REG_UNUSED notes.  Merge mark_set_reg code.
6530         (mark_set_reg): Remove.
6531         (propagate_one_insn): Use mark_set_1 for call-clobbered registers;
6532         arrange to not emit REG_UNUSED notes.
6533
6534 2000-04-26  Richard Henderson  <rth@cygnus.com>
6535
6536         * flow.c (find_auto_inc): Use pbi->bb instead of BLOCK_FOR_INSN.
6537         * ssa.c (convert_from_ssa): Don't run compute_bb_for_insn.
6538
6539 2000-04-26  Richard Henderson  <rth@cygnus.com>
6540
6541         * flow.c (propagate_one_insn): Break out from propagate_block.
6542         (init_propagate_block_info): Likewise.
6543         (free_propagate_block_info): Likewise.
6544         (propagate_block): Use them.  Export.
6545         * basic-block.h: Declare them all.
6546
6547 2000-04-26  Richard Henderson  <rth@cygnus.com>
6548
6549         * basic-block.h (life_analysis): Declare here ...
6550         * output.h: ... not here.
6551         * flow.c (life_analysis): Remove nregs parameter; replace
6552         remove_dead_code with flags.  Remove ssa dead code check.
6553         Only init alias analysis if we'll use it.
6554         * reg-stack.c (reg_to_stack): Update life_analysis arguments.
6555         * ssa.c (convert_to_ssa): Likewise.
6556         (convert_from_ssa): Likewise.
6557         * toplev.c (rest_of_compilation): Likewise.
6558
6559 2000-04-26  Richard Henderson  <rth@cygnus.com>
6560
6561         * flow.c (flow_delete_block): Rename from delete_block.  Export.
6562         * basic-block.h (flow_delete_block): Declare.
6563
6564 2000-04-26  David S. Miller  <davem@redhat.com>
6565
6566         * optabs.c (emit_libcall_block): Verify insns with INSN_P before
6567         taking a PATTERN of it.
6568
6569 2000-04-26  <NeilB@earthling.net>
6570
6571         * cpplex.c (spell_other, spell_char): Remove.
6572         (SPELL_CHAR): New.
6573         (token_spelling, trigraph_map): Use unsigned chars.
6574         (_cpp_lex_line): Tidy up the switch statement.
6575         * cpplib.h: Implement spell_char with spell_string.
6576         (C): New.
6577
6578 2000-04-26  <RodneyBrown@pmsc.com>
6579
6580         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Warning removal.
6581         * pa/pa64-regs.h (HARD_REGNO_MODE_OK): Warning removal.
6582
6583 2000-04-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6584
6585         * dwarf2out.c (dw_cfi_oprnd_struct, dw_fde_struct, add_fde_cfi,
6586         reg_save, dwarf2out_frame_debug_expr, dwarf2out_def_cfa,
6587         dwarf2out_window_save, dwarf2out_args_size, dwarf2out_reg_save,
6588         dwarf2out_return_save, dwarf2out_return_reg,
6589         dwarf2out_stack_adjust, dwarf2out_frame_debug, primary_filename,
6590         add_AT_lbl_id, add_AT_lbl_offset, type_tag, decl_start_label,
6591         gen_compile_unit_die, dwarf2out_init): Constify a char*.
6592
6593         * dwarf2out.h (dwarf2out_init): Likewise.
6594
6595         * dwarfout.c (filename_entry, primary_filename, last_filename,
6596         type_tag, output_compile_unit_die, dwarfout_init): Likewise.
6597
6598         * tree.h (dwarf2out_def_cfa, dwarf2out_window_save,
6599         dwarf2out_args_size, dwarf2out_reg_save, dwarf2out_return_save,
6600         dwarf2out_return_reg): Likewise.
6601
6602 2000-04-26  Andreas Jaeger  <aj@suse.de>
6603
6604         * extend.texi (Function Attributes): Fix description of pure
6605         attribute.
6606
6607 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
6608
6609         * integrate.c (output_inline_function): Do clear DECL_DEFER_OUTPUT
6610         before calling rest_of_compilation.
6611
6612 2000-04-26  Andreas Jaeger  <aj@suse.de>
6613
6614         * config/mips/linux.h: Remove erroneous commit of #if 0/#endif in
6615         last patch.
6616
6617 2000-04-25  Richard Henderson  <rth@cygnus.com>
6618
6619         * cse.c (cse_insn): Emit barrier after unconditional jump.
6620
6621         * calls.c (expand_call): Disable tail call generation once
6622         rtx_equal_function_value_matters is false.
6623
6624         * reg-stack.c (convert_regs_1): Treat EDGE_ABNORMAL_CALL edges
6625         like EDGE_EH edges.
6626
6627 2000-04-25  Jason Merrill  <jason@casey.cygnus.com>
6628
6629         * dwarf2out.c (add_bound_info): Don't crash on an unexpanded SAVE_EXPR.
6630
6631         * dwarfout.c (output_decl): Ignore NAMESPACE_DECLs.
6632
6633         * dwarf2out.c (gen_subprogram_die): The class-scope declaration DIE
6634         is the primary DIE for a member function.
6635         (gen_decl_die): Call set_decl_origin_self here.
6636         * dwarfout.c (output_decl): And here.
6637         * integrate.c (output_inline_function): Not here.
6638         Don't clear DECL_INLINE until after calling rest_of_compilation.
6639         (set_decl_origin_self): No longer static.
6640         * tree.h: Add prototype.
6641         * toplev.c (note_deferral_of_defined_inline_function): Only write
6642         out abstract instance for actual inlines.
6643
6644 2000-04-25  Alexandre Oliva  <aoliva@cygnus.com>
6645
6646         * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Return
6647         EXTENDED_REGS only if TARGET_AM33.
6648         * config/mn10300/mn10300.md (movsi, addsi): Avoid exposing
6649         SP_REGS to register allocation and reloading unless absolutely
6650         necessary.
6651         (movsi3): Remove special-case of adding non-constants to SP.
6652
6653 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6654
6655         * aclocal.m4 (gcc_AC_NEED_DECLARATION): This macro now requires
6656         INCLUDES to search and does not provide any of its own.  Also it
6657         now accepts optional ACTION-IF-NEEDED and ACTION-IF-NOT-NEEDED
6658         parameters.  Also it does not call AC_DEFINE.
6659         (gcc_AC_NEED_DECLARATIONS): Likewise.  Also this macro now calls
6660         AC_DEFINE and provides for automatic entries for autoheader.
6661         (gcc_AC_FUNC_PRINTF_PTR): Cleanup C code in test.
6662
6663         * configure.in (gcc_AC_NEED_DECLARATIONS): Save and restore CFLAGS
6664         so we can pass -I flags and include gansidecl.h/system.h in this
6665         test.
6666
6667         * acconfig.h: Delete all NEED_DECLARATION_* entries.
6668
6669 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6670
6671         * acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
6672         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
6673         ENABLE_GC_ALWAYS_COLLECT): Delete entries.
6674
6675         * configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
6676         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
6677         ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
6678         for these macros.  Clean up spacing and linewraps.
6679
6680 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
6681
6682         * calls.c (expand_call): Use get_callee_fndecl.
6683
6684         * print-tree.c (print_node): Print the chain of an _EXPR.
6685
6686 Tue Apr 25 16:16:04 2000  Andrew MacLeod  <amacleod@cygnus.com>
6687                           Jim Wilson  <wilson@cygnus.com>
6688                           Andrew Haley  <aph@cygnus.com>
6689
6690         * config/ia64/crtbegin.asm: Add IA-64 unwind support.  Correct alloc
6691         and gp save/restore problems.
6692         * config/ia64/crtend.asm: Add IA-64 unwind support.
6693         * config/ia64/ia64.c (ia64_compute_frame_size): Don't include pr_size
6694         in fr_pad_size calculation.
6695         (save_restore_insns): Move PR save area.  Correct uses of
6696         RTX_FRAME_RELATED_P.
6697         (ia64_expand_prologue): Mark alloc with RTX_FRAME_RELATED_P.
6698         (ia64_expand_epilogue): Add eh_epilogue support.
6699         (ia64_function_prologue): Emit .prologue directive.
6700         (ia64_init_machine_status, ia64_mark_machine_status): New functions.
6701         (ia64_override_options): Set init_machine_status and
6702         mark_machine_status.
6703         (rtx_needs_barrier): Handle bsp reads and writes.
6704         (spill_offset, sp_offset, spill_offset_emitted, tmp_reg, tmp_saved):
6705         New static variables.
6706         (process_set, process_for_unwind_directive): New functions.
6707         * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR, ASM_OUTPUT_XDATA_SHORT,
6708         ASM_OUTPUT_XDATA_INT, ASM_OUTPUT_XDATA_DOUBLE_INT, ASM_OUTPUT_EH_CHAR,
6709         ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT, ASM_OUTPUT_EH_DOUBLE_INT): New
6710         macros.
6711         (EH_FRAME_SECTION_ASM_OP): Define to IA_64.unwind section.
6712         (IA64_UNWIND_INFO, HANDLER_SECTION, IA64_UNWIND_EMIT): Define.
6713         (struct machine_function): Define.
6714         * config/ia64/ia64.md (bsp_value, set_bsp, eh_epilogue): New patterns.
6715
6716 2000-04-25  Bruce Korb  <bkorb@gnu.org>
6717
6718         * fixinc/Makefile.in: make the removal of old programs more
6719         robust
6720         * fixinc/mkfixinc.sh: use the two new targets in the Makefile:
6721         install-bin and install-sh
6722
6723 2000-04-25  Nick Clifton  <nickc@cygnus.com>
6724
6725         * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): If not
6726         defined, define to return zero.
6727         (function_cannot_inline_p): If a function has any target
6728         specific attributes, then use the macro
6729         FUNCTION_ATTRIBUTE_INLINABLE_P to allow the target to decide
6730         whether it can be inlined.  If it cannot, issue a suitable
6731         explanation.
6732
6733         * tm.texi: Add a new node 'Inlining' to document the new macro
6734         FUNCTION_ATTRIBUTE_INLINABLE_P.
6735
6736 2000-04-25  Zack Weinberg  <zack@wolery.cumb.org>
6737
6738         * cpplib.h (struct cpp_buffer): Add 'mapped' flag; fix
6739         commentary.
6740
6741 2000-04-25  Neil Booth  <NeilB@earthling.net>
6742
6743         Restore previous patch, plus the following fixes:
6744
6745         * cpphash.c (_cpp_create_definition): Test PREV_WHITESPACE in
6746         flags, not CPP_OPEN_PAREN.
6747         * cpplex.c (expand_token_space, init_token_list,
6748         cpp_free_token_list): Put the dummy token at list->tokens[-1].
6749         (_cpp_lex_line, _cpp_lex_file): token list is 0-based.
6750
6751 Tue Apr 25 14:06:40 2000  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6752
6753         * config/i386/freebsd.h (INT_ASM_OP): Define.
6754
6755 Tue Apr 25 14:51:07 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6756
6757         * loop.c (strength_reduce): Fix typo in the last checkin.
6758
6759 Tue Apr 25 07:33:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6760
6761         * stor-layout.c (finalize_record_size): Simplify to use existing
6762         functions.
6763         (compute_record_mode): No longer static.
6764         * tree.h (compute_record_mode): New declaration.
6765
6766 2000-04-25  Neil Booth  <NeilB@earthling.net>
6767
6768         * Revert my patch below until cause of build failures
6769         determined.
6770
6771 2000-04-25  Richard Henderson  <rth@cygnus.com>
6772
6773         * combine.c (combine_instructions): Add missing argument
6774         to try_combine.
6775
6776         * toplev.c (rest_of_compilation): Delay sibcall optimization
6777         until after emit_eh_context.
6778
6779 2000-04-24  Nick Clifton  <nickc@redhat.com>
6780
6781         * combine.c (combine_instructions): Do not try to combine a
6782         sequence of insns when the second insn has been replaced by a
6783         note.
6784
6785 Mon Apr 24 17:34:18 2000  Mumit Khan  <khan@xraylith.wisc.edu>
6786
6787         * gcc.c (load_specs): New static function.
6788         (read_specs): Use it.
6789
6790         * gcc.c (lookup_compiler): Make multiple passes for case
6791         insensitive filesystems.
6792
6793 2000-04-24  Neil Booth  <NeilB@earthling.net>
6794
6795         * cpphash.c: replace HSPACE_BEFORE with PREV_WHITESPACE.
6796         * cpphash.h (_cpp_check_directive): new.
6797         * cpplex.c (handle_newline, cpp_free_token_list,
6798         init_trigraph_map, trigraph_ok, trigraph_replace,
6799         backslash_start, skip_block_comment, skip_line_comment,
6800         skip_whitespace, parse_name, parse_number, parse_string,
6801         copy_comment, _cpp_lex_line, spell_char, spell_string,
6802         spell_comment, spell_name, spell_other, _cpp_lex_file,
6803         _cpp_output_list): new.
6804         (expand_name_space): take length argument.
6805         (init_token_list): add comment list initialisation.
6806         (cpp_scan_line): use auto_expand_name_space.  PREV_WHITESPACE
6807         instead of HSPACE_BEFORE.
6808
6809         * cpplib.c (_cpp_check_directive): new
6810         * cpplib.h (cpp_name, PREV_WHITESPACE, PREV_COMMENT,
6811         DIGRAPH, UNSIGNED_INT, TOK_NAME): new.
6812         (HSPACE_BEFORE): delete.
6813         (TTYPE_TABLE): rearrange.
6814         (struct cpp_toklist): update.
6815
6816 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6817
6818         * aclocal.m4 (gcc_AC_HEADER_STRING, gcc_AC_FUNC_PRINTF_PTR,
6819         gcc_AC_C_VOLATILE, gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG): Use the three
6820         argument form of AC_DEFINE.
6821
6822         * configure.in (DEFAULT_LINKER, DEFAULT_ASSEMBLER,
6823         HAVE_INTTYPES_H, PACKAGE, VERSION, ENABLE_WIN32_REGISTRY,
6824         WIN32_REGISTRY_KEY, HAVE_GAS_SUBSECTION_ORDERING, HAVE_GAS_WEAK,
6825         HAVE_GAS_HIDDEN, HAVE_AS_REGISTER_PSEUDO_OP, AS_SPARC64_FLAG,
6826         HAVE_AS_OFFSETABLE_LO10, ENABLE_NEW_GXX_ABI): Likewise.
6827
6828         * acconfig.h: Delete stubs made redundant by 3-arg AC_DEFINE.
6829
6830 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6831
6832         * Makefile.in (GCC_FOR_TARGET, GCC_CFLAGS, LIBGCC2_INCLUDES,
6833         deduced.h): Use -isystem, not -I, for including system headers.
6834
6835 2000-04-24  Nick Clifton  <nickc@cygnus.com>
6836
6837         * config/fr30/fr30.md (addsi3): Do not use small add instruction if
6838         the source register is the frame pointer or arg pointer.
6839         (addsi3_small_int): Disallow if source register is the frame
6840         pointer or arg pointer.
6841
6842 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6843
6844         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Delete redundant
6845         call to AC_MSG_RESULT.
6846
6847 2000-04-24  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
6848
6849         * invoke.texi: Correct grammatical errors, document
6850         -fno-gnu-keywords as identical to -fno-asm for C++.
6851
6852 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6853
6854         * aclocal.m4: (GCC_HEADER_STRING, GCC_NEED_DECLARATION,
6855         GCC_NEED_DECLARATIONS, GCC_FUNC_VFPRINTF_DOPRNT,
6856         GCC_FUNC_PRINTF_PTR, GCC_PROG_LN_S, GCC_PROG_LN, GCC_C_VOLATILE,
6857         AC_GCC_C_LONG_DOUBLE, GCC_FUNC_MKDIR_TAKES_ONE_ARG,
6858         EGCS_PROG_INSTALL): Rename autoconf macros with prefix gcc_AC_.
6859
6860         * configure.in (AC_GCC_C_LONG_DOUBLE, GCC_PROG_LN, GCC_PROG_LN_S,
6861         GCC_C_VOLATILE, EGCS_PROG_INSTALL, GCC_HEADER_STRING,
6862         GCC_FUNC_VFPRINTF_DOPRNT, GCC_FUNC_PRINTF_PTR,
6863         GCC_NEED_DECLARATIONS, GCC_FUNC_MKDIR_TAKES_ONE_ARG): Invoke with
6864         new macros names.
6865
6866 2000-04-24  Mumit Khan  <khan@xraylith.wisc.edu>
6867
6868         * c-pragma.c (push_alignment): Use BITS_PER_UNIT macro.
6869         (pop_alignment): Likewise.
6870         (handle_pragma_token): Likewise.
6871
6872 2000-04-24  Robert Lipe <robertlipe@usa.net>
6873
6874         * tree.h (tree_decl): Member `mode' now ENUM_BITFIELD.
6875
6876 2000-04-24  Hiroyuki Machida <machida@sm.sony.co.jp>
6877
6878         * combine.c (try_combine): Update reg_nonzero_bits of
6879         newi2pat before newpat.
6880
6881 Mon Apr 24 10:19:48 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6882
6883         * loop.c (strength_reduce): Simplify test to INSN_P.
6884         (record_giv): Attempt to simplify the add value, use CONSTANT_P
6885         expressions instead of CONST_INT.
6886         (express_from_1): Likewise.
6887
6888 2000-04-24  Mark Mitchell  <mark@codesourcery.com>
6889
6890         * regs.h (reg_n_max): Don't declare.
6891         * flow.c (reg_n_max): Don't define.
6892         * regclass.c (renumber): Don't initialize to zero.
6893         (regno_allocated): Likewise.
6894         (reg_n_max): Define.
6895         (allocate_reg_info): Don't initialize unnecessarily.
6896
6897 Mon Apr 24 00:21:36 2000  Jeffrey A Law  (law@cygnus.com)
6898
6899         * genattrtab.c (find_attr): Initialize unsigned_p, func_units_p
6900         and blockage_p in the newly allocated attribute.
6901
6902 Sun Apr 23 20:16:49 2000  Alexandre Oliva  <aoliva@cygnus.com>
6903
6904         * config/mn10300/mn10300.md (addsi): `inc4' on address
6905         registers does not modify cc, but `inc' on an extended
6906         register does.
6907
6908 Sun Apr 23 16:24:35 2000  Denis Chertykov  <denisc@overta.ru>
6909
6910         * reload.c (find_equiv_reg): Checks all valueno regs
6911         as a reload_reg_p regs.
6912
6913 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
6914
6915         * cpphash.c (collect_objlike_expansion): Add sanity check.
6916         (special_symbol): Remove case T_CONST, T_XCONST, T_MCONST.  If
6917         the buffer is the empty string, return.  Mark __DATE__ and
6918         __TIME__ as XCONST nodes, not MCONST.
6919         (_cpp_macroexpand): Avoid pushing an empty buffer.
6920         (funlike_macroexpand): Don't pop token_buffer here.
6921
6922 Sun Apr 23 18:37:53 2000  Alexandre Oliva  <aoliva@cygnus.com>
6923
6924         * config/mn10300/mn10300.h (REGNO_IN_RANGE_P): New macro.
6925         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P): New macros.
6926         (REGNO_EXTENDED_P, REGNO_AM33_P): New macros.
6927         (REGNO_OK_FOR_BASE_P): Define in terms of them.
6928         (REGNO_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P): Likewise.
6929         (REG_OK_FOR_BASE_P): Define in terms of the REGNO macro.
6930         (REG_OK_FOR_BIT_BASE_P, REG_OK_FOR_INDEX_P): Likewise.
6931
6932 Sun Apr 23 22:23:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6933
6934         * loop.c (simplify_giv_expr):  Be more agressive on simplifying
6935         constant MULT givs.
6936
6937 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
6938
6939         * cpphash.h (struct definition): Move file, line, col members...
6940         (struct hashnode): ... here.  Also add 'disabled' flag.
6941         (enum node_type): Add T_VOID, T_XCONST, T_FMACRO, and
6942         T_IDENTITY.  Remove T_DISABLED.
6943         Update prototypes.
6944
6945         * cpphash.c (_cpp_dump_definition): Split out dump_DEFINITION.
6946         (collect_expansion): Split into collect_objlike_expansion and
6947         collect_funlike_expansion.
6948         (_cpp_macroexpand): Split out scan_arguments, stringify, and
6949         funlike_macroexpand.
6950         (_cpp_compare_defs): Rename compare_defs, make static.
6951         (_cpp_make_hashnode): Initialize hp->disabled.
6952         (macro_cleanup): Adjust for new token types.  Clear
6953         m->disabled.
6954         (_cpp_create_definition): Move code here to determine what
6955         sort of macro it is, and code to check for redefinitions, from
6956         do_define.  Implement a few simple cases without creating a
6957         full DEFINITION.
6958         (_cpp_macroexpand, special_symbol, _cpp_dump_definition):
6959         Handle the simple cases.
6960         (push_macro_expansion): Set buf->has_escapes and hp->disabled
6961         here.
6962
6963         * cppinit.c (builtin_array): Change MCONST to XCONST
6964         everywhere.
6965         * cpplex.c (maybe_macroexpand): Handle IDENTITY macros here;
6966         fix check for disabled and function-like macros.
6967         * cpplib.c (do_define): Move most logic to
6968         _cpp_create_definition.
6969         (do_undef): Handle new special token types.
6970
6971 Sun Apr 23 14:27:44 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6972
6973         * loop.c (maybe_eliminate_biv_1): Use GET_CODE (x) == CONST_INT instead
6974         of CONSTANT_P for mult_val; always use validate_change to update insn.
6975
6976 2000-04-22  Zack Weinberg  <zack@wolery.cumb.org>
6977
6978         * cpphash.c (trad_stringify, add_pat): New functions.
6979         (collect_expansion): Restore support for -traditional syntax.
6980         Use trad_stringify and add_pat.
6981         (_cpp_macroexpand): Restore support for -traditional semantics.
6982         * cpplex.c (_cpp_scan_line): Don't change space_before if we
6983         get a COMMENT token.
6984         (_cpp_lex_token): Provide COMMENT tokens to caller if
6985         traditional and parsing_define_directive.
6986         (skip_comment): Warn about // comments if -Wtraditional.
6987         * cpplib.c (do_define): Fix typo.  Create EMPTY nodes with
6988         proper node type.
6989         (do_undef): Don't warn about undefining EMPTY nodes.
6990
6991 Sat Apr 22 22:35:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6992
6993         * loop.c (strength_reduce): Fix biv removal code.
6994
6995 2000-04-22  Richard Henderson  <rth@cygnus.com>
6996
6997         * predict.c (estimate_probability): Examine both sides of
6998         a branch for no exits.  Use 90% not 50% for predict taken.
6999         Reorg for one copy of note generation code.
7000
7001 2000-04-22  Richard Henderson  <rth@cygnus.com>
7002
7003         * flow.c (mark_used_reg): Hack around rs6000 eliminable pic reg.
7004
7005 2000-04-22  Richard Henderson  <rth@cygnus.com>
7006
7007         * diagnostic.c (init_output_buffer): Don't initialize format_args.
7008         (output_clear): Likewise.
7009         (output_printf): Use va_copy.
7010         (vline_wrapper_message_with_location): Likewise.
7011         (v_message_with_decl): Likewise.
7012         (line_wrapper_printf): VA_START infor buffer.format_args directly.
7013         * system.h (va_copy): Provide default implementation.
7014
7015 2000-04-22  Richard Henderson  <rth@cygnus.com>
7016
7017         * predict.c (expected_value_to_br_prob): Don't bomb if op1 of
7018         the collected condition is not a constant.
7019
7020 2000-04-22  Gabriel Dos Reis  <gdr@codesourcery.com>
7021
7022         * diagnostic.h: New file.
7023
7024         * Makefile.in (diagnostic.o): Depends on diagnostic.h
7025
7026         * diagnostic.c: Tweak.  Rationalize the output logic.  Adjust
7027         various function prototypes.
7028         (diagnostic.h): #include.
7029         (struct output_buffer): Move into diagnostic.h.
7030         (get_output_prefix): Rename to output_get_prefix.  Export.
7031         (init_output_buffer): Export. Break out.  Ajust intialization.
7032         (output_space_left, output_append): Export.
7033         (output_newline): Rename to output_add_newline.  Export.
7034         (output_clear): Nullify additional output_buffer fields.
7035         (output_puts): Rename to output_add_string.  Export.
7036         (dump_output): Rename to output_flush_on.  Export.
7037         (build_location_prefix): Constify return-type.
7038         (emit_output_prefix): Rename to output_emit_prefix. Export.
7039         (set_real_maximum_length): New function.
7040         (output_set_maximum_length): Ditto
7041         (output_clear): Ditto.
7042         (output_add_character): Ditto.
7043         (output_add_integer): Ditto.
7044         (output_add_space): Ditto.
7045         (output_format): Ditto.
7046         (output_printf): Adjust buffer initialization.
7047         (vline_wrapper_message_with_location): Ditto.
7048         (v_message_with_decl): Ditto.  Adjust call to output_puts
7049         and get_output_prefix.
7050         (default_print_error_function): Adjust buffer intialization.
7051
7052 Sat Apr 22 06:45:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7053
7054         * expr.c (preexpand_calls, case CALL_EXPR): Don't look at TYPE_SIZE
7055         of VOID_TYPE.
7056
7057 Fri Apr 21 18:33:09 2000  Alexandre Oliva  <aoliva@cygnus.com>
7058
7059         * config/mn10300/mn10300.h (REGNO_REG_CLASS): Use NO_REGS instead
7060         of explicit 0.
7061
7062 Fri Apr 21 18:30:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
7063
7064         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Provide more
7065         accurate data about SP moves.
7066
7067 Fri Apr 21 18:28:28 2000  Alexandre Oliva  <aoliva@cygnus.com>
7068
7069         * config/mn10300/mn10300.h (ADDITIONAL_REGISTER_NAMES): Added
7070         aliases to AM33 registers.
7071
7072 Fri Apr 21 18:26:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
7073
7074         * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Added register 16
7075         to all EXTENDED bitmaps.
7076
7077 Fri Apr 21 18:17:12 2000  Alexandre Oliva  <aoliva@cygnus.com>
7078
7079         * config/mn10300/mn10300-protos.h (mn10300_address_cost): Declare.
7080         * config/mn10300/mn10300.h (ADDRESS_COST): New macro.
7081         * config/mn10300/mn10300.c (mn10300_address_cost): New function.
7082
7083 Fri Apr 21 18:11:56 2000  Alexandre Oliva  <aoliva@cygnus.com>
7084
7085         * config/mn10300/mn10300.md (movdi, movdf): Do not use `movu' when
7086         the operand is not constant.
7087
7088 Fri Apr 21 14:58:29 2000  Denis Chertykov  <denisc@overta.ru>
7089
7090         * reload.c (find_equiv_reg): Checks all valueno and regno regs
7091         as a call-clobbered regs.
7092
7093 Fri Apr 21 13:30:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7094
7095         * rtl.c: Use NOTE_INSN_REPEATED_LINE_NUMBER and NOTE_INSN_RANGE_BEG.
7096         * rtl.h: Likewise.
7097         * rtl.def: Update comment.
7098         * function.c (expand_function): Use NOTE_INSN_REPEATED_LINE_NUMBER.
7099         * integrate.c (expand_inline_function): Likewise.
7100         * profile.c (branch_prob): Likewise.
7101         * ggc-common.c (ggc_mark_rtx_children): Use NOTE_INSN_RANGE_BEG.
7102         * print-rtl.c (print_rtx): Likewise.
7103         * haifa-sched.c (sched_analyze, unlink_other_notes): Likewise.
7104         (reemit_notes): Likewise; also use enum insn_note.
7105
7106         * stor-layout.c (layout_decl): Only set DECL_MODE if not already set.
7107         (place_field): Properly compute know and actual alignment.
7108
7109         * gengenrtl.c (gencode): Write obstack_alloc_rtx function start
7110         in proper format.
7111
7112         * cse.c (cse_insn): In (set REG0 REG1) case, remove a REG_EQUAL
7113         note for REG1.
7114
7115 2000-04-21  Zack Weinberg  <zack@wolery.cumb.org>
7116
7117         * cpphash.c (struct arg, struct arglist): Const-ify strings.
7118         (warn_trad_stringify, duplicate_arg_p): New helper functions.
7119         (collect_expansion): Rewrite to scan over a token list.
7120         Remove -traditional support.
7121         (collect_formal_parameters): Rename to collect_params; rewrite
7122         to scan over a token list.
7123         (_cpp_create_definition): Adjust to scan a token list.
7124         (_cpp_macroexpand): Remove -traditional support.
7125         (_cpp_compare_defs): Whitespace is now canonicalized.
7126         (comp_def_part): Delete function.
7127
7128         * cpphash.h: Update prototypes.
7129         * cpplex.c (init_token_list): Don't set lineno if there is no
7130         buffer.
7131         (pedantic_whitespace): New function.
7132         (_cpp_scan_line): Mark tokens that had hspace before.  Don't
7133         consume a newline.  Use pedantic_whitespace.
7134         (_cpp_lex_token): Remove support for -traditional macros.
7135         (_cpp_get_define_token): Delete.
7136         (_cpp_get_directive_token): Do the real work here.  Use
7137         pedantic_whitespace.
7138         (_cpp_init_input_buffer): Initialize pfile->directbuf.
7139
7140         * cpplib.c (get_macro_name): Delete.
7141         (do_define): Read the entire line into pfile->directbuf, then
7142         feed the token list to _cpp_create_definition.
7143         * cpplib.h (HSPACE_BEFORE): new define.
7144         (struct cpp_reader): Add a toklist member, "directbuf".
7145
7146         * predict.c (estimate_probability): New heuristic: if a jump
7147         branches around a block with no successors, predict it taken.
7148         Disentangle control flow.
7149
7150 2000-04-20  Richard Henderson  <rth@cygnus.com>
7151
7152         * loop.c (emit_iv_add_mult): Revert last change.
7153
7154 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
7155
7156         * cpplib.h (enum cpp_ttype): Add token types for all
7157         punctuators.  Distinguish pp-numbers from valid C numbers.
7158         Give some tokens better names.  Initialize from macro.
7159         (struct cpp_name, cpp_token, cpp_toklist): New data
7160         structures.
7161         Update prototypes.
7162         * cpplex.c (bump_column, expand_name_space,
7163         expand_token_space, init_token_list, cpp_output_list,
7164         _cpp_scan_line):  New functions.
7165         (output_line_command): Add third argument, new line number.
7166         * cpphash.h: Update prototypes.
7167         * cppexp.c, cpphash.c, cpplib.c, scan-decls.c: Update for new
7168         token names.
7169
7170 2000-04-20  Richard Henderson  <rth@cygnus.com>
7171
7172         * config/alpha/alpha.c (alpha_emit_floatuns): Emit missing barrier.
7173
7174 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
7175
7176         * c-common.c (decl_attributes) [A_ALIAS]: Set TREE_USED on the
7177         object pointed to.
7178
7179 Thu Apr 20 14:19:18 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7180
7181         * loop.c (emit_iv_add_mult):  Simplify it's input and emit
7182         REG_EQUAL note explaining the calculated value.
7183
7184         * calls.c (expand_call): Avoid unnecesary precalculation
7185         and outgoing parameters space guarding for sibling calls.
7186         (store_one_arg): Likewise.
7187
7188 Thu Apr 20 08:01:07 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7189
7190         * toplev.c (enum dump_file_index, dump_file): Add DFI_sibling.
7191         (rest_of_compilation): Write sibling dump file and account
7192         for time as jump time.
7193         * invoke.texi: Update documentation on dump flags.
7194
7195 2000-04-19  Marek Michalkiewicz  <marekm@linux.org.pl>
7196
7197         * avr.c: #include "system.h" instead of <stdio.h> and <stdlib.h>.
7198
7199 2000-04-19  Zack Weinberg  <zack@wolery.cumb.org>
7200
7201         * cpphash.c (special_symbol): Represent an empty macro with
7202         "\r \r " not just "\r ".
7203         (_cpp_macroexpand): Correct condition for the foo ( ) special
7204         case.
7205         (unsafe_chars): Handle EOF as second argument.
7206         (push_macro_expansion): Simplify test for removing escape at
7207         end.  Do not trim both escapes if there is no text in between.
7208
7209 2000-04-19  Jim Blandy  <jimb@redhat.com>
7210
7211         * dwarf2out.c (DWARF2_ADDR_SIZE): New macro.  Use it instead
7212         of PTR_SIZE, when appropriate.
7213
7214 2000-04-19  Mark Mitchell  <mark@codesourcery.com>
7215
7216         * system.h (ONLY_INT_FIELDS): Make sure it is defined.
7217         (USE_ENUM_BITFIELDS): Fix typo.
7218
7219 Wed Apr 19 12:14:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7220
7221         * stor-layout.c (place_field): Set rli->offset_align properly.
7222
7223 2000-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7224
7225         * mips.h (BITS_PER_WORD, UNITS_PER_WORD, UNITS_PER_FPREG,
7226         INT_TYPE_SIZE, LONG_TYPE_SIZE, POINTER_SIZE, POINTER_BOUNDARY,
7227         PARM_BOUNDARY): Remove unnecessary casts.
7228
7229 Wed Apr 19 12:02:37 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7230
7231         * calls.c (precompute_arguments): Remove must_preallocate and
7232         args_size calls.
7233         (expand_call): Update call of precompute_arguments.
7234
7235         * loop.c (check_insn_for_bivs, for_every_insn_in_loop,
7236         check_insn_for_givs): Break out from ...
7237         (strength_reduce) ... here; use for_every_insn_in_loop to call
7238         check_insn_for_givs.
7239         * loop.h (for_every_insn_in_loop): Declare.
7240         (loop_insn_callback): New type.
7241
7242 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
7243
7244         * cpplib.c (do_pragma_poison):  Strings in the token buffer are
7245         not nul-terminated.
7246
7247 Tue Apr 18 16:04:12 2000  Jim Wilson  <wilson@cygnus.com>
7248
7249         * config/ia64/sysv4.h (SELECT_SECTION): Use data_section if
7250         flag_pic and RELOC.
7251
7252 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
7253
7254         * cccp.c, cexp.y, cexp.c, cccp.1: Removed.
7255
7256         * configure.in: Delete --disable-cpplib option and all
7257         references to cpp_main.
7258         * configure: Regenerate.
7259         * Makefile.in: Remove all references to CCCP, CCCP_OBJS,
7260         @cpp_main@, cccp.c, cexp.c, cexp.y, cexp.output, cexp.o,
7261         cccp.o, cccp, or cppmain.  Link cppmain.o straight to
7262         cpp$(exeext).  Add --no-headers to makeinfo command line when
7263         generating INSTALL.  Install and uninstall cpp.1 manpage, not
7264         cccp.1.
7265         * install.texi: Delete all references to cexp.y/cexp.c.
7266         Delete ancient instructions for compiling GCC on 3b1.
7267         * INSTALL: Regenerate.
7268
7269         * cppfiles.c, cpplib.h, jump.c, protoize.c, c-lex.c, mips/t-ecoff,
7270         mips/t-elf, mips/t-r3900: Remove references to cccp.c.
7271         * convex.h, fx80.h, m68k.h, pdp11.h: Remove references to
7272         cexp.c/cexp.y.
7273         * xm-linux.h, xm-os2.h, romp.h: Remove definition of BSTRING,
7274         which is no longer tested anywhere.
7275
7276         * cppinit.c (handle_option): Don't run error message through
7277         gettext twice.
7278
7279 Tue Apr 18 14:16:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7280
7281         * conflict.c (conflict_graph_add): Pass enum type to htab_find_slot.
7282         * cpperror.c (hashtab.h): Now include.
7283         * cppexp.c (hashtab.h): Likewise.
7284         * cpplex.c (hashtab.h): Likewise.
7285         * cppfiles.c (hashtab.h): Likewise.
7286         (find_include_file, _cpp_calc_hash, cpp_read_file): Pass enum type
7287         to htab_find_slot_with_hash.
7288         * cpphash.c (hashtab.h): Now include.
7289         (_cpp_lookup_slot): INSERT is now enum insert_option.
7290         * cpphash.h (_cpp_lookup_slot): Likewise.
7291         * cppinit.c (hashtab.h): Include earlier.
7292         (initialize_builtins): Pass enum to htab_find_slot.
7293         * cpplib.c (hashtab.h): Now include.
7294         (do_define, do_undef): Pass enum type to _cpp_lookup_slot.
7295         (do_pragma_poison, do_assert): Likewise.
7296         * emit-rtl.c (gen_rtx_CONST_INT): Pass enum to
7297         htab_find_slot_with_hash.
7298         * simplify-rtx.c (cselib_lookup_mem, cselib_lookup): Likewise.
7299         * tree.c (type_hash_add): Likewise.
7300         (build1): Minor cleanup.
7301
7302         * ggc-common.c: Add missing blanks.
7303         * print-tree.c (print_node): Print DECL_OFFSET_ALIGN.
7304         * tree.h (DECL_OFFSET_ALIGN): Fix typo in comment.
7305
7306         * stmt.c (mark_case_node): New function.
7307         (mark_case_nesting): Call it.
7308
7309         * expmed.c (emit_store_flag): If comparing two-word integer
7310         with zero, can optimize NE, EQ, GE, and LT.
7311
7312         * c-decl.c (mark_binding_level): Use 'for' instead of `while'.
7313         * conflict.c: Minor cleanups.
7314         * optabs.c: Add blank line
7315         * simplify-rtx.c: Minor cleanups.
7316
7317 2000-04-18  Stan Cox  <scox@cygnus.com>
7318
7319         * gengenrtl.c (genlegend): Fix misspelling.
7320
7321 2000-04-18  Robert Lipe  <robertlipe@usa.net>
7322
7323         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Added.  Check that
7324         bitfields of the host compiler are not signed quantities.
7325         * config.in: Regenerate.
7326         * configure: Regenerate.
7327         * system.h (USE_ENUM_BITFIELDS): Added.
7328         (ENUM_BITFIELDS): Added.
7329         * rtl.h (rtx_def): Members `code', `mode', now ENUM_BITFIELD.
7330         (SHORT_ENUM_BUG): Deleted.
7331         * tree.h (tree_common): Members `code', `mode', `built_in_class',
7332         now ENUM_BITFIELD.
7333         * config/i386/xm-sco.h (ONLY_INT_FIELDS): Deleted.
7334         (CODE_FIELD_BUG): Likewise.
7335         * config/m68k/x-apollo68 (CC): Deleted SHORT_ENUM_BUG.
7336         (OLD_CC): Likewise.
7337         * config/m68k/x-ccur (X_CFLAGS): Likewise.
7338
7339 2000-04-18  Mark Mitchell  <mark@codesourcery.com>
7340
7341         * cpplex.c (_cpp_lex_token): Don't call CPP_BUMP_LINE when the
7342         mark is active.
7343
7344 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
7345
7346         * cppexp.c (lex): Don't assume tokens are NUL terminated.
7347         * cpplib.c (do_include, do_import, do_include_next,
7348         read_line_number, detect_if_not_defined): Likewise.
7349         * cpphash.c (collect_expansion): Likewise.
7350         (special_symbol, _cpp_macroexpand): Check return from
7351         cpp_file_buffer.
7352         * cpphash.h (CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q): Delete
7353         macros.  Delete all uses.
7354
7355         * gcc.dg/cpp-mi.c: Add two more test cases.
7356         * gcc.dg/cpp-mind.h, gcc.dg/cpp-mindp.h: New files.
7357
7358 2000-04-17  Richard Henderson  <rth@cygnus.com>
7359
7360         * bb-reorder.c (fixup_reorder_chain): Don't look up new block again.
7361         (reorder_basic_blocks): If no epilogue in rtl, force last block last.
7362
7363 2000-04-17  Mark Mitchell  <mark@codesourcery.com>
7364
7365         * function.c (expand_function_start): Use hard_function_value to
7366         compute the RTL to use for DECL_RESULT.
7367
7368 Mon Apr 17 23:35:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7369
7370         * i386.c (athlon_cost): Fix lea, divide and XFmode move costs.
7371         (x86_integer_DFmode_moves, x86_partial_reg_dependency,
7372          x86_memory_mismatch_stall): New global variables.
7373         (ix86_adjust_cost): Handle MEMORY_BOTH on places MEMORY_STORE was only
7374         alloved; fix load penalties for Athlon.
7375         * i386.h (x86_integer_DFmode_moves, x86_partial_reg_dependency,
7376         x86_memory_mismatch_stall): Declare.
7377         (TARGET_INTEGER_DFMODE_MOVES, TARGET_PARTIAL_REG_DEPENDENCY,
7378          TARGET_MEMORY_MISMATCH_STALL): New.
7379         * i386.md (athlon scheduling parameters): Fix latencies according to
7380         Athlon Optimization Manual.
7381         (sahf, xchg, fldcw, leave instruction patterns): Set athlon_decode to
7382         vector.
7383         (fsqrt instruction patterns): Set athlon_decode to direct.
7384         (movhi_1): Promote for TARGET_PARTIAL_REG_DEPENDENCY and for
7385         PARTIAL_REGISTER_STALL with !TARGET_HIMODE_MATH machines.
7386         (movqi_1): Handle promoting correctly for TARGET_PARTIAL_REG_DEPENDENCY
7387         and TARGET_PARTIAL_REGISTER_STALL machines.
7388         (pushdf_nointeger): New pattern.
7389         (pushdf_integer): Rename from pushdf.
7390         (movdf_nointger): Enable for !TARGET_INTEGER_DFMODE_MOVES machines.
7391         (movdf_intger): Disable for !TARGET_INTEGER_DFMODE_MOVES machines.
7392
7393 2000-04-17  Richard Henderson  <rth@cygnus.com>
7394
7395         * loop.c (canonicalize_condition): Add WANT_REG argument.
7396         Stop the search if we match it.
7397         * expr.h (canonicalize_condition): Update decl.
7398         * predict.c (expected_value_to_br_prob): Use it.  Track last
7399         expected value note.
7400         (find_expected_value): Remove.
7401
7402         * reorg.c (mostly_true_jump): Always use BR_PROB if present.
7403
7404 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
7405
7406         * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE([AC_FUNC_MMAP]).
7407         (AC_FUNC_MMAP_FILE): New macro, tests read-only private map of
7408         a plain file.
7409         * configure.in: Call AC_FUNC_MMAP_FILE.
7410         * configure: Regenerate.
7411         * config.in: Regenerate.
7412
7413         * intl/loadmsgcat.c: Test HAVE_MMAP_FILE not HAVE_MMAP.
7414         * fixinc/fixincl.c: Likewise.
7415
7416 2000-04-17  Richard Henderson  <rth@cygnus.com>
7417
7418         * builtins.c (expand_builtin_expect): New.
7419         (expand_builtin): Call it.
7420         * builtins.def (BUILT_IN_EXPECT): New.
7421         * c-common.c (c_common_nodes_and_builtins): Declare __builtin_expect.
7422         * extend.texi: Document it.
7423
7424         * predict.c (expected_value_to_br_prob): New.
7425         (find_expected_value): New.
7426         * basic-block.h (expected_value_to_br_prob): Declare.
7427         * toplev.c (rest_of_compilation): Invoke it.
7428
7429         * rtl.h (NOTE_EXPECTED_VALUE): New.
7430         (NOTE_INSN_EXPECTED_VALUE): New.
7431         * rtl.c (note_insn_name): Update.
7432         * print-rtl.c (print_rtx): Reorg NOTE_LINE_NUMBER special
7433         cases; handle NOTE_INSN_EXPECTED_VALUE.
7434
7435 2000-04-17  Jakub Jelinek  <jakub@redhat.com>
7436
7437         * config/sparc/sparc.c (eligible_for_sibcall_delay): Cannot use
7438         leaf sibcall delay slot if flag_pic.
7439         (output_sibcall): Always emit call for leaf sibcall if flag_pic.
7440
7441 2000-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7442
7443         * Makefile.in (stmp-fixproto): Acknowledge errors in fixproto.
7444
7445         * fixproto: If fix-header fails, exit with an error.
7446
7447 Mon Apr 17 14:59:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7448
7449         * cse.c (struct check_depdendence_data): New.
7450         (check_dependence): New function.
7451         (invalidate): Use check_depdenence.
7452
7453 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
7454
7455         * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Adjust, now that
7456         UNITS_PER_WORD is unsigned.
7457
7458         * tree.h (struct tree_common): Remove misleading comment.
7459
7460 2000-04-16  Dave Pitts  <dpitts@cozx.com>
7461
7462         * Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole
7463         message in quotes. Otherwise, IBM's make program treats the '#' as the
7464         start of a comment and ignores the remainder of the line.
7465
7466         * c-lex.c (yylex): Change for EBCDIC, lower case characters preceed
7467         upper case.
7468         * cccp.c (initialize_char_syntax): Allow for holes in EBCDIC.
7469         * cexp.y (initialize_random_junk): Likewise.
7470         * cppfiles.c (find_include_file): Cast alloca return value.
7471         * cppinit.c (initialize_standard_includes): Likewise.
7472         * cpplib.c (cpp_define, cpp_undef): Likewise.
7473         * defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT.
7474         * final.c (output_asm_insn): Allow for holes in EBCDIC.
7475         * fold-const.c (CHARMASK): New.
7476         (real_hex_to_f): Use it.
7477         * real.c (CHARMASK): New.
7478         (etoasc, asctoeg): Use it.
7479         (asctoeg): EBCDIC lower case characters preceed upper case.
7480
7481         * i370.c (mvs_add_label): Change spacing for coding conventions.
7482         * i370.h (ASM_OUTPUT_CASE_LABEL): Change to the data CSECT for the
7483         outputing case vectors.
7484         (ASM_OUTPUT_CASE_END): New, put assembler back into code CSECT.
7485         (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove page check,
7486         since vector in in the data CSECT.
7487         (ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation.
7488         * i370.md (Many patterns): Put the length in the XL directives.
7489         (movdi): Put back STM and MVC in definition.
7490         (floatsidf2): Correct TARGET_ELF_ABI pattern and add back the LE370
7491         pattern using the TCA.
7492         * oe.h (CPP_SPEC): Added to allow trigraphs.
7493         * xm-oe.h (HOST_BITS_PER_LONGLONG): Change to 32. IBM's compiler does
7494         not support the "long long" type.
7495
7496 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
7497
7498         * config/mips/mips-protos.h (mips_legitimate_address_p): New
7499         function.
7500         (mips_reg_mode_ok_for_base_p): Likewise.
7501         * config/mips/mips.h (REG_OK_STRICT_P): Don't define.
7502         (REG_OK_FOR_INDEX_P): Define unconditionally.
7503         (REG_MODE_OK_FOR_BASE_P): Use mips_reg_mode_ok_for_base_p.
7504         (GO_IF_LEGITIMATE_ADDRESS): Use mips_legitimate_address_p.
7505         * config/mips/mips.c (mips16_simple_memory_operand): Adjust now
7506         that GET_MODE_SIZE is unsigned.
7507         (mips_reg_mode_ok_for_base_p): Define.
7508         (mips_legitimate_address_p): Likewise.  Adjust now
7509         that GET_MODE_SIZE is unsigned.
7510         (block_move_loop): Make the number of bytes unsigned.
7511         (expand_block_move): Likewise.
7512         (function_arg): Make the loop counter unsigned to match the
7513         boundary condition.
7514
7515 2000-04-16  Richard Henderson  <rth@cygnus.com>
7516
7517         * rtl.h (enum insn_note): New enumeration.  Subsume
7518         NOTE_INSN_DELETED and friends.
7519         (GET_NOTE_INSN_NAME): Adjust index by NOTE_INSN_BIAS.
7520         * rtl.c (note_insn_name): Tweak string order.
7521
7522 2000-04-15  Zack Weinberg  <zack@wolery.cumb.org>
7523
7524         * cpplex.c (_cpp_read_and_prescan): Enlarge len by setting it
7525         to offset * 2.
7526
7527         * cpplex.c (output_line_command): Remove debugging prints.
7528         (cpp_output_tokens): Don't write out a zero-length buffer or
7529         try to see if it has a newline in it.
7530         (_cpp_expand_to_buffer): Copy the source buffer before pushing.
7531         (_cpp_read_and_prescan): Move shift-down of pushback bytes to
7532         the end of the loop.  Use memmove.  Don't read past the end of
7533         the buffer.  Remove trailing newlines from error messages.
7534
7535 2004-04-16  Neil Booth  <NeilB@earthling.net>
7536
7537         * cpphash.h (SYNTAX_INCLUDE, SYNTAX_ASSERT, directive_handler): new.
7538         * cpplib.c: Add new syntax flags to directive table, and
7539         supporting macros.
7540
7541 2000-04-15  Ulrich Drepper  <drepper@redhat.com>
7542
7543         * i386.c (ix86_expand_epilogue): Yes, the x86 can pop 64k at once
7544         using ret $N.
7545
7546 2000-04-15  David Edelsohn  <edelsohn@gnu.org>
7547
7548         * toplev.c (display_help): Prefix "f" to "sched-verbose=".
7549         * haifa-sched.c: Update -fsched-verbose comments to use "=".
7550
7551 Sat Apr 15 10:59:19 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7552
7553         * Makefile.in (ggc-page.o): Now includes toplev.h.
7554         * ggc-page.c (toplev.h): Now included.
7555         (gc_time): Remove declaration.
7556         (ggc_collect): TIME now long.
7557         * toplev.c (parse_time, varasm_time, gc_time): Still global; all
7558         others static.
7559         * toplev.h (gc_time, parse_time, gc_time): New declarations.
7560
7561         * toplev.c: Make *_time variable long to reduce chance of overflow.
7562         (TIMEVAR): Likewise for `otime'.
7563         (print_time): Arg is now long; compute percentage in FP and round.
7564         * toplev.h (print_time): Arg is long.
7565
7566         * tree.c: Minor whitespace changes.
7567
7568         * configure.in (alpha*-*-*): Add config/alpha/t-alpha.
7569         * configure: Rebuilt.
7570         * libgcc2.c (__fixunstfDI): Renamed from __fixunstfdi.
7571         (__fixunsxfDI): Renamed from __fixunsxfdi.
7572         (__fixunsdfDI): Renamed from __fixunsdfdi.
7573         (__fixunssfDI): Renamed from __fixunssfdi.
7574         (__floatdisf): Use proper type in REP_BIT macro.
7575         (__fixunsxfSI): Renamed from __fixunsxfsi.
7576         (__fixunsdfSI): Renamed from __fixunsdfsi.
7577         (__fixunssfSI): Renamed from __fixunssfsi.
7578         * libgcc2.h: Add cases for MIN_UNITS_PER_WORD > 4.
7579         Change location of macros and upper-case some names as above.
7580         * longlong.h ([alpha]): Use PARAMS, not __P in decl of __udiv__qrnnd.
7581         * config/alpha/t-alpha, config/alpha/qrnnd.asm: New files.
7582
7583         * varasm.c (assemble_variable): Add cast to remove warning.
7584         (immed_real_const_1): Only use CONST[01]_RTX if not in nested function.
7585
7586         * flow.c (count_basic_blocks, find_basic_blocks_1): Remove last change.
7587         * optabs.c (emit_libcall_block): If have REG_EH_REGION, update
7588         region number to -1.
7589
7590 2000-04-15  Richard Earnshaw (rearnsah@arm.com)
7591
7592         * emit-rtl.c (unshare_all_rtl_again): Unmark everything, then
7593         call unshare_all_rtl.
7594
7595         * arm.md (movhi): REGNO_POINTER_ALIGN is now bits.
7596
7597 Fri Apr 14 16:58:45 2000  Jim Wilson  <wilson@cygnus.com>
7598
7599         * config/ia64/lib1funcs.asm (__divdi3, __moddi3, __udivdi3, __umoddi3):
7600         Use .s1 not .s0 for all FP instructions.
7601
7602 2000-04-14  Zack Weinberg  <zack@wolery.cumb.org>
7603
7604         * cpplex.c (cpp_output_tokens, cpp_scan_buffer_nooutput): New public
7605         interfaces.
7606         (safe_fwrite, output_line_command): New static functions.
7607         (cpp_expand_to_buffer): Now private to cpplib.
7608         (cpp_scan_buffer): Take a printer.
7609
7610         * cpphash.h: Update prototypes.
7611         * cpplib.h: Update prototypes.
7612         (cpp_printer): New.
7613         (cpp_buffer): Remove last_nominal_fname.
7614         (cpp_reader): Remove lineno.
7615
7616         * cppmain.c: Use a cpp_printer.
7617         * fix-header.c: No need to inhibit line commands.  Call
7618         cpp_start_read with no printer.
7619
7620         * cpperror.c (cpp_notice_from_errno): Provide default name.
7621         * cppfiles.c (make_IHASH, _cpp_fake_ihash): New functions.
7622         (find_include_file, cpp_read_file): Use make_IHASH.
7623         (file_cleanup): Set control_macro and clear
7624         input_stack_listing_current here.
7625         (_cpp_execute_include): Don't output entering-file marker.
7626         * cpphash.c (special_symbol): Look for the line number in the
7627         buffer, not the reader.
7628         (_cpp_macroexpand): No need to disable line commands.
7629         (_cpp_dump_definition): No need to generate line commands.
7630         (dump_hash_helper): Remove excess newline from output.
7631         * cppinit.c (dump_special_to_buffer): No need to generate line
7632         commands.
7633         (cpp_printer_init): New.
7634         (cpp_start_read): Take a printer, and start it up if it's not
7635         NULL.  No need to generate line commands.
7636         (cpp_finish): Expect no buffers stacked at all.  Take a
7637         printer argument, and flush the output buffer if it's not
7638         NULL.
7639         * cpplex.c (_cpp_lex_token): Return EOF if there's no buffer.
7640         Don't put two hashes at the beginning of an assertion.
7641         (cpp_get_token): Don't increment pfile->lineno or emit line
7642         commands here.  Return EOF if there's no buffer when we get
7643         EOF.
7644         * cpplib.c (do_define, skip_if_group):
7645         No need to disable line commands.
7646         (_cpp_output_line_command): Delete function.
7647         (do_line): Don't emit line commands here, but set things up so
7648         they will be emitted if necessary.  Use _cpp_fake_ihash to
7649         make unique nominal_fnames if necessary.
7650         (do_elif, do_else, _cpp_handle_eof): Call cpp_error_with_line
7651         with 0 for column, not -1.
7652         (_cpp_handle_eof): Don't set the control macro here.  Don't
7653         clear input_stack_listing_current here.  Don't emit line
7654         commands.
7655
7656 2000-04-14  Geoff Keating  <geoffk@cygnus.com>
7657
7658         * config/rs6000/sysv4.h (LINK_START_SOLARIS_SPEC): Define to empty
7659         always, use the default SVR4 start address.
7660
7661         * config/rs6000/linux.h (LINK_SPEC): Don't define.
7662         (LINK_SHLIB_SPEC): Define.
7663         (LINK_START_DEFAULT_SPEC): Define.
7664         (LINK_OS_DEFAULT_SPEC): Define.
7665
7666         * config/rs6000/sysv4.h (ENDFILE_SPEC): Use the %(endfile_*) macros.
7667
7668         * config/rs6000/eabi.asm (__eabi): Call __init rather than
7669         __do_global_ctors to handle constructors.
7670         * config/rs6000/sysv4.h (STARTFILE_ADS_SPEC): Use crtbegin.
7671         (STARTFILE_YELLOWKNIFE_SPEC): Likewise.
7672         (STARTFILE_MVME_SPEC): Likewise.
7673         (STARTFILE_SIM_SPEC): Likewise.
7674         (ENDFILE_ADS_SPEC): Use crtend.
7675         (ENDFILE_YELLOWKNIFE_SPEC): Likewise.
7676         (ENDFILE_MVME_SPEC): Likewise.
7677         (ENDFILE_SIM_SPEC): Likewise.
7678         (STARTFILE_SOLARIS_SPEC): Use crtbegin/crtbeginS.
7679         (ENDFILE_SOLARIS_SPEC): Use crtend/crtendS.
7680         (STARTFILE_LINUX_SPEC): Use crtbeginS for shared objects.
7681         (ENDFILE_LINUX_SPEC): Use crtendS for shared objects.
7682         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Don't build eabi-ctors.o.
7683         (EXTRA_MULTILIB_PARTS): Build crtbeginS/crtendS.
7684         (CRTSTUFF_T_CFLAGS_S): Define.
7685         * config/rs6000/eabi-ctors.c: Delete.
7686
7687         * config/rs6000/eabi-ci.asm (__init): Align stack to 16-byte
7688         boundary.
7689         (__fini): Likewise.
7690         * config/rs6000/eabi-cn.asm (__init): Allow for 16-byte stack frame.
7691         boundary.
7692         (__fini): Likewise.
7693
7694 Fri Apr 14 16:09:02 2000  Jim Wilson  <wilson@cygnus.com>
7695
7696         * combine.c (force_to_mode, case LSHIFTRT): Check that shift shift
7697         plus mask size is smaller or equal to the mode size.
7698
7699 Fri Apr 14 18:07:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7700
7701         * print-rtl.c (print_rtx, case NOTE): Don't blow up if NOTE_BASIC_BLOCK
7702         not yet set.
7703
7704         * expr.c (reload.h): Now included.
7705         (emit_block_move): Set volatile_ok when checking for movstr.
7706         (emit_move_1): Check for replacements in addresses in multi-word case.
7707         * Makefile.in (expr.o): Now includes reload.h.
7708
7709         * flow.c (count_basic_blocks): Remove unused var PREV_CALL.
7710         Never have a LIBCALL end a basic block.
7711         (find_basic_blocks_1): Likewise.
7712         Reorganize CALL_INSN cases.
7713
7714         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Revert last change.
7715
7716 Fri Apr 14 10:54:22 2000  Jim Wilson  <wilson@cygnus.com>
7717
7718         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Drop obsolete
7719         completers from mov.ret instruction.
7720
7721 2000-04-14  Richard Henderson  <rth@cygnus.com>
7722
7723         * fold-const.c (extract_muldiv): Don't distribute and widen
7724         multiply across plus for non-sizetype unsigned types.
7725
7726 2000-04-14  Richard Henderson  <rth@cygnus.com>
7727
7728         * flow.c (find_auto_inc): Don't autoinc eliminable registers.
7729         If the original source is dead in the incr insn, it's dead now.
7730
7731 Fri Apr 14 07:40:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7732
7733         * stor-layout.c (layout_decl): Properly compare KNOWN_ALIGN to
7734         see if DECL_BIT_FIELD needs to still be set.
7735
7736         * tree.h (struct tree_type): Make PRECISION 9 bits and MODE 7.
7737
7738         * dbxout.c (dbxout_type, case INTEGER_TYPE): Don't call
7739         print_int_cst_octal with something that's not an INTEGER_CST.
7740
7741         * config/alpha/alpha.c (alpha_emit_floatuns): Ensure we pass a REG
7742         and not a SUBREG to a FLOAT rtl.
7743
7744 Thu Apr 13 19:39:56 2000  Clinton Popetz  <cpopetz@cygnus.com>
7745
7746         * emit-rtl.c (try_split): Avoid infinite loop if the split
7747         results in a sequence that contains the original insn.
7748
7749 2000-04-13  Andreas Jaeger  <aj@suse.de>
7750
7751         * config/mips/mips.c (expand_block_move): Pass alignment
7752         argument to move_by_pieces in bits, not bytes.
7753
7754         * config/mips/linux.h (CPP_PREDEFINES): Also define __PIC__ and
7755         __pic__ for little endian.
7756
7757 2000-04-13  Andreas Jaeger  <aj@suse.de>
7758
7759         * config/i386/i386-protos.h: Add prototype for
7760         uno_comparison_operator.
7761
7762 Thu Apr 13 15:55:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7763
7764         * alias.c (nonlocal_reference_p): Take care of CALL_INSNS's fusage.
7765         * calls.c (ECF_PURE): New flag.
7766         (emit_call_1): Handle ECF_PURE calls.
7767         (initialize_argument_information): Unset ECF_PURE flag too.
7768         (precompute_arguments): Precompute for ECF_PURE too.
7769         (expand_call): Handle ECF_PURE calls too.
7770         (emit_library_call_value_1): Rename no_queue argument to fn_type,
7771         accept value of 2 as pure function.
7772         (emit_library_call_value, emit_library_call): Rename no_queue argument
7773         to fn_type.
7774         * optabs.c (prepare_cmp_insn): Pass fn_type 2 to memcmp call.
7775
7776         * tree.h (DECL_IS_PURE): New macro.
7777         (struct tree_decl): Add pure_flag.
7778         * c-common.c (enum attrs): Add attribute "pure".
7779         (init_attributes): Initialize attribute "pure"
7780         (decl_attributes): Handle attribute "pure".
7781         * extend.texi (Attribute "pure"): Document.
7782         * calls.c (expand_call): Add (mem:BLK (scratch)) to "equal from"
7783         in pure function.
7784         (flags_from_decl_or_type): Support attribute "pure".
7785
7786 2000-04-13  Jason Merrill  <jason@casey.cygnus.com>
7787
7788         * cpplex.c (_cpp_lex_token): Handle digraphs.  Don't null-terminate
7789         the token except for numbers and identifiers.
7790
7791 Thu Apr 13 00:09:16 EDT 2000  John Wehle  (john@feith.com)
7792
7793         * i386.c (ix86_expand_binary_operator,
7794         ix86_expand_unary_operator): Check no_new_pseudos
7795         instead of reload_in_progress and reload_completed.
7796         (ix86_split_ashldi, ix86_split_ashrdi,
7797         ix86_split_lshrdi): Check no_new_pseudos instead
7798         of reload_completed.
7799
7800 2000-04-12  Jeffrey A Law  (law@cygnus.com)
7801
7802         * function.c (purge_addressof): Unshare any shared rtl created by
7803         purge_addressof and its children.
7804
7805 2000-04-12  Mark Mitchell  <mark@codesourcery.com>
7806
7807         * function.c (aggregate_value_p): VOID_TYPE nodes are never
7808         aggregates.
7809
7810 2000-04-05  Andreas Jaeger  <aj@suse.de>
7811
7812         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Use proper flags if
7813         not compiling PIC code, add flags for mabi=64.
7814         (SUBTARGET_CPP_SIZE_SPEC): New.
7815         (SUBTARGET_CPP_SPEC): New.
7816         (CPP_PREDEFINES): Define __PIC__ and __pic__.  PIC code is default
7817         for MIPS/Linux and lots of code needs these defines.
7818
7819 Wed Apr 12 22:44:11 2000  Hans-Peter Nilsson  <hp@axis.com>
7820
7821         * reorg.c (fill_slots_from_thread): Check side_effects_p when
7822         trying the "opposite arithmetic" approach.
7823
7824 Wed Apr 12 20:51:20 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7825
7826         * sh.h (STRUCT_VALUE): Just 0 for TARGET_HITACHI.
7827         (struct sh_args): Add new field force_mem.
7828         (INIT_CUMULATIVE_ARGS): Initialize it.
7829         (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Act on it.
7830
7831 Wed Apr 12 17:20:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7832
7833         * calls.c (expand_call): Do not reverse args in "equal from" field.
7834         (emit_library_call_value_1): Emit_libcall_block for const and pure
7835         function.
7836
7837 Wed Apr 12 16:00:25 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7838
7839         * reload1.c (reload_combine): Don't enable optimization for fixed
7840         registers when encountering a BARRIER.
7841
7842 Wed Apr 12 15:54:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7843
7844         * builtins.c (expand_builtin_memcmp): Do expansion even with
7845         !HAVE_cmpstrsi, do libcall when gen_strcmpsi fails.
7846
7847         * calls.c (expand_call): Do NO_DEFER_POP unconditionally once
7848         stack is propertly aligned; add sanity checking for aligned
7849         stack pointer.
7850         (expand_library_call_value_1): Add sanity checking for aligned
7851         stack pointer.
7852
7853 Wed Apr 12 07:51:54 2000  Catherine Moore  <clm@cygnus.com>
7854
7855         * calls.c (emit_library_call_value_1): Change 3rd arg to
7856         locate_and_pad_parm to disregard the setting of partial.
7857
7858 Wed Apr 12 08:47:38 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7859
7860         * tree.c (unsave_expr_now_r, unsafe_for_reeval): Properly do TREE_LIST.
7861
7862         * print-rtl.c (print_rtx): For CALL_PLACEHOLDER, output the
7863         CALL_INSN from the normal case.
7864
7865 Fri Apr  7 12:23:04 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7866
7867         * i386.c (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
7868         New global variables.
7869         (ix86_emit_epilogue_adjustment): Do not attempt to use pop for the
7870         adjustment.
7871         * i386.h (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
7872         Declare,
7873         (TARGET_SUB_ESP_4, TARGET_SUB_ESP_8, TARGET_ADD_ESP_4,
7874          TARGET_ADD_ESP_8): New macros.
7875         * i386.md: Add peep2s to convert esp adjustments to push and pop
7876         instructions.
7877         (pushsi_prologue, popsi_epilogue): New patterns.
7878
7879 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
7880
7881         * real.c (toe64): Remove stale #endif from the last change.
7882
7883 2000-04-12  Stephen L Moshier  <moshier@mediaone.net>
7884
7885         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment.
7886         * real.c (toe64): Revert previous change.
7887
7888 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
7889
7890         * objc/objc-act.c: Include ggc.h.
7891         (objc_tree_index, objc_global_trees): Convert most of the
7892         static tree variables into a static array with previous names
7893         as defines.
7894         (objc_ellipsis_node): New variable.
7895         (lang_init): Call objc_act_parse_init and c_parse_init.
7896         Create objc_ellipsis_node.
7897         (build_selector_translation_table): Use objc_ellipsis_node instead
7898         of (tree)1.
7899         (hack_method_prototype): Likewise.
7900         (get_arg_type_list): Likewise.
7901         (start_method_def): Likewise.
7902         (continue_method_def): Likewise.
7903         (gen_method_decl): Likewise.
7904         (ggc_mark_imp_list): New function.
7905         (ggc_mark_hash_table): New function.
7906         (objc_act_parse_init): New function.
7907         * objc/objc-act.h (objc_ellipsis_node): Add extern variable.
7908         * c-parse.in (c_parse_init): For objc add roots of objc specific
7909         local tree variables.
7910         * objc/objc-parse.y: Rebuilt.
7911         * objc/objc-parse.c: Rebuilt.
7912         (opt_parm_list): Use objc_ellipsis_node instead of (tree)1.
7913
7914 Wed Apr 12 01:00:44 EDT 2000  John Wehle  (john@feith.com)
7915
7916         * cse.c (delete_trivially_dead_insns): Also delete insns
7917         that copy a register to itself where the destination is
7918         a strict_low_part.
7919
7920 2000-04-11  Richard Henderson  <rth@cygnus.com>
7921
7922         * flow.c (struct propagate_block_info): Add new_dead, new_live.
7923         (propagate_block): Initialize them.  Use them in parallel instead
7924         of one tmp variable, ie revert much of the 0408 and 0407 functional
7925         changes, but keep the structural changes.
7926         (mark_set_regs): Take new_dead from propagate_block_info instead.
7927         (mark_set_1, mark_set_reg): Likewise.
7928         (mark_used_regs): Likewise with new_live.
7929         (mark_used_reg): Likewise.  Revert 0408 change.
7930
7931 2000-04-11  Nick Clifton  <nickc@cygnus.com>
7932
7933         * config/arm/arm.h: (INCOMING_RETURN_ADDR_RTX): Remove Dwarf2
7934         restriction.
7935         (DWARF_FRAME_RETURN_COLUMN): Remove Dwarf2 restriction.
7936
7937 2000-04-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
7938
7939         * config/elfos.h (SELECT_SECTION): Decide whether to use a data or
7940         const section to output a CONSTRUCTOR based on the same conditions
7941         used for VAR_DECLs.
7942
7943 Tue Apr 11 09:55:59 2000  Jeffrey A Law  (law@cygnus.com)
7944
7945         * pa/long-double.h (FIX_TRUNCTFSI2_LIBCALL): Tweak for PA64.
7946         * pa/pa-protos.h (output_call): Add additional argument indicating
7947         if the call is a sibling/tail call.
7948         (compute_zdepdi_operands, output_64bit_and): Prototype new functions.
7949         (compute_64bit_ior, cmpib_comparison_operator): Likewise.
7950         (function_arg, function_arg_partial_nregs): Likewise
7951         * pa/pa.c (override_options): Always set flag_pic for TARGET_64BIT.
7952         (emit_move_sequence): Zero extend certain constants as needed
7953         for TARGET_64BIT.
7954         (compute_zdepdi_operands, output_64bit_and): New functions.
7955         (output_64bit_ior, function_arg): Likewise.
7956         (cmpib_comparison_operator, function_arg_partial_nregs): Likewise.
7957         (compute_frame_size, hppa_expand_prologue): Handle TARGET_64BIT.
7958         (hppa_expand_epilogue, return_addr_rtx, hppa_va_arg): Likewise.
7959         (hppa_builtin_saveregs, output_cbranch, output_bb): Likewise.
7960         (output_bvb): Likewise.
7961         (output_millicode_call): Return pointer is in %r2 for TARGET_64BIT.
7962         (output_call): New argument 'sibcall'.  Generate sibcall sequences
7963         as needed.
7964         (print_operand); Handle cases 'Q', 'p', and 'z' for TARGET_64BIT.  For
7965         (ouput_arg_descriptor): Do not emit argument descriptors for
7966         TARGET_64BIT.
7967         * pa/pa.h (TARGET_PA_11, TARGET_PA_20): Only define if not already
7968         defined.
7969         (TARGET_64BIT, PROMOTE_FUNCTION_RETURN): Define.
7970         (FUNCTION_OK_FOR_SIBALL): Define.
7971         (CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC): Define.
7972         (CPP_CPU_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS, EXTRA_SPECS): Likewise.
7973         (CPP_SPEC): Use new spec infrastructure.
7974         (BITS_PER_WORD, UNITS_PER_WORD): Handle TARGET_64BIT.
7975         (STACK_BOUNDARY, FUNCTION_BOUNDARY, PIC_OFFSET_TABLE_REGNUM): Likewise.
7976         (RETURN_IN_MEMORY, EXTRA_CONSTRAINT, FIRST_PARM_OFFSET): Likewise.
7977         (REG_PARM_STACK_SPACE, STACK_POINTER_OFFSET): Likewise.
7978         (STACK_DYNAMIC_OFFSET, FUNCTION_VALUE): Likewise.
7979         (FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES): Likewise.
7980         (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise.
7981         (INITIALIZE_TRAMPOLINE, LEGITIMATE_CONSTANT_P): Likewise.
7982         (CONST_OK_FOR_LETTER_P, MOVE_RATIO): Likewise.
7983         (FUNCTION_ARG); Call out to C code.
7984         (FUNCTION_ARG_PARTIAL_NREGS): Likewise.
7985         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Define.
7986         (MIN_UNITS_PER_WORD): Likewise.
7987         * pa/pa.md (cmpdi): New expander.
7988         (scc patterns, movstrsi): Not available for TARGET_64BIT.
7989         (64bit conditional arithmetic): New patterns.
7990         (absdi2, smindi3, umindi3, smaxdi3, umaxdi3): New patterns.
7991         (movsicc): Not available if modes on all the operands to not match.
7992         (movdicc): New expander and associated patterns.
7993         (64bit branches): New patterns.
7994         (pre_load, post_store): Generate appropriate code for TARGET_64BIT.
7995         (pre_ldd, post_std): New patterns.
7996         (64bit addil, load low part): New patterns.
7997         (special movsf constant): Not available for TARGET_64BIT.
7998         (movsf, movdf expanders): Force constants into memory.
7999         (32bit movdf/movdi patterns): Disable for TARGET_64BIT.
8000         (64bit movdf/movdi patterns): New patterns.
8001         (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New patterns
8002         for TARGET_64BIT.
8003         (extendqidi2, extendhidi2, extendsidi2): Similarly.
8004         (adddi3 expander): Allow "arith_operand" for second input.
8005         (32bit adddi3, subdi3, uaddcm): Disable for TARGET_64BIT.
8006         (64bit adddi3, subsi3, uaddcm): New patterns for TARGET_64BIT.
8007         (mulsi3 expander): Revamp slightly so it supports TARGET_64BIT too.
8008         (muldi3): New expander for TARGET_64BIT.
8009         (divsi3, udivsi3, modsi3, umodsi3): Fourth operand must be (reg:SI 2)
8010         for TARGET_64BIT.
8011         (32bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm): Disable
8012         patterns for TARGET_64BIT.
8013         (64bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm, shadd): New
8014         patterns for TARGET_64BIT.
8015         (64bit bit insertion/extractions): New patterns for TARGET_64BIT.
8016         (64bit shifts/rotates): New patterns/expanders for TARGET_64BIT.
8017         (sibcall_epilogue): New expander.
8018         (casesi): Tweak for TARGET_64BIT.
8019         (call expanders): Set & use the outgoing argument pointer.  Use the
8020         64bit call patterns as needed. Add additional arg to output_call.
8021         (call_internal_reg_64bit, call_value_internal_reg_64bit): New pattern.
8022         (sibcall, sibcall_internal_symref): New expanders.
8023         (sibcall_value, sibcall_value_internal_symref
8024         (interspace_jump): Turn into an expander + matching patterns.
8025         (canonicalize_funcptr_for_compare): Not needed for TARGET_64BIT.
8026         * pa/pa64-regs.h: Eliminate trigraph sequences.
8027         * pa/pa64-start.h (TARGET_PA_20): Fix typo.
8028
8029 2000-04-11  Zack Weinberg  <zack@wolery.cumb.org>
8030
8031         * cppexp.c, cpphash.c, cpphash.h, cpplex.c, cpplib.c,
8032         cpplib.h, cppmain.c, fix-header.c, scan-decls.c: Replace
8033         cpp_token with cpp_ttype everywhere.
8034         * cpperror.c, cpphash.c, cpplex.c, cpplib.c, scan-decls.c:
8035         Replace cpp_buf_line_and_col with CPP_BUF_LINE and/or
8036         CPP_BUF_COL.  Line and column numbers are unsigned int, not
8037         long.
8038         * cpplex.c (cpp_buf_line_and_col): Delete.
8039         * cpplib.h (struct cpp_buffer, struct cpp_reader): Change
8040         'long lineno' to 'unsigned int lineno'.
8041         (CPP_BUF_LINE, CPP_BUF_COL): New macros.
8042
8043 2000-04-11  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
8044
8045         * extend.texi: ISO C99 is not a draft anymore.
8046         * invoke.texi: ISO C++ is not a draft anymore.
8047         * cpp.texi: __cplusplus is required by the ISO standard.
8048
8049         * extend.texi (-fthis-is-variable): Undocument.
8050         * flags.h (warn_template_debugging): Remove declaration.
8051         * gcc.1 (-fall-virtual, -fenum-int-equiv, -fthis-is-variable,
8052         -Wenum-clash, -Wtemplate-debugging): Undocument.
8053
8054 2000-04-10  Nick Clifton  <nickc@cygnus.com>
8055
8056         * config/arm/arm.h (HOST_INT): New macro: Declare a HOST_WIDE_INT
8057         integer.
8058         (HOST_UINT): New macro: Declare an unsigned HOST_WIDE_INT
8059         integer.
8060         (ARM_SIGN_EXTEND): Use HOST_UINT.
8061         (STRIP_NAME_ENCODING): Prevent warnings about redefinitions.
8062         (ASM_OUTPUT_LABELREF): Prevent warnings about redefinitions.
8063         (INCOMING_RETURN_ADDR_RTX): Only define if Dwarf2 is supported.
8064         (DWARF_FRAME_RETURN_COLUMN): Only define if Dwarf2 is supported.
8065
8066         * config/arm/arm.c: (const_ok_for_arm): Use HOST_UINT.
8067         (arm_gen_constant): Use HOST_UINT.
8068         (arm_canonicalize_constant): Use HOST_UINT.
8069         (arm_reload_in_hi): Use HOST_UINT.
8070         (arm_reload_out_hi): Use HOST_UINT.
8071         (output_multi_immediate): Use HOST_UINT.
8072         (int_log2): Use HOST_UINT.
8073         (arm_poke_function_name): Use HOST_UINT.
8074         (arm_output_epilogue): Use arm_volatile_func().
8075         (output_thumb_prologue): Use arm_strip_name_encoding().
8076
8077 Mon Apr 10 15:40:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8078
8079         * sbitmap.c (sbitmap_a_subset_b_p): Rework loop to avoid potential
8080         of sequence point problems.
8081
8082 2000-04-10  Nathan Sidwell  <nathan@codesourcery.com>
8083
8084         * rtl.def (ASHIFT, ROTATE, ASHIFTRT, LSHIFTRT, ROTATERT):
8085         Recomment.
8086         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Recomment.
8087
8088 Mon Apr 10 07:21:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8089
8090         * sbitmap.h: Whitespace changes and use upper-case macro args.
8091         (struct simple_bitmap_def): All sizes now unsigned.
8092         (EXECUTE_IF_SET_IN_SBITMAP): Internal vars now _X instead of X_.
8093         * sbitmap.c (sbitmap_alloc): N_ELMS now unsigned; also local vars.
8094         (sbitmap_vector_alloc): Parms and local vars now unsigned.
8095         (sbitmap_zero): Cast bzero arg to PTR.
8096         (sbitmap_vector_zero, sbitmap_vector_one): Parm and Local var unsigned.
8097         (sbitmap_union_of_diffs): Change loop index to unsigned and rework
8098         loop to make structure clearer.
8099         (sbitmap_not, sbitmap_difference, sbitmap_a_and_b): Likewise.
8100         (sbitmap_a_or_b, sbitmap_a_subset_b_p, sbitmap_a_or_b_and_c): Likewise.
8101         (sbitmap_a_and_b_or_c): Likewise.
8102         (sbitmap_intersection_of_succs): Minor cleanups.
8103         (sbitmap_intersection_of_preds, sbitmap_union_of_succs): Likewise.
8104         (sbitmap_union_of_preds): Likewise.
8105         (sbitmap_first_set_bit, dump_sbitmap): Local variables now unsigned.
8106         (debug_sbitmap): New function.
8107
8108         * c-convert.c (convert): Handle REFERENCE_TYPE like POINTER_TYPE.
8109         * c-typeck.c (convert_for_assignment): Likewise.
8110
8111         * expmed.c (init_expmed): Don't free objects we make.
8112         * emit-rtl.c (gen_rtx_CONST_INT, init_emit_once): Minor cleanups.
8113
8114         * expr.c (get_inner_reference): Correct some WITH_RECORD_EXPR cases.
8115         (expand_expr, case CONVERT_EXPR): Pass proper alignment to store_field.
8116
8117         * gcse.c (expr_hash_table_size): Now unsigned.
8118         (compute_ae_gen): Local variable `i' now unsigned.
8119         (compute_ae_kill, pre_insert_copies, pre_delete, pre_gcse): Likewise.
8120         (compute_transout, hoist_code): Likewise.
8121         (compute_local_properties): Likewise, also hash_table_size.
8122         (alloc_expr_hash_table): N_INSNS now unsigned.
8123         (delete_null_pointer_checks): Mark arg F as unused.
8124
8125         * regrename.c: Minor cleanups, including chang some variables
8126         to unsigned int.
8127
8128 2000-04-10  Neil Booth  <NeilB@earthling.net>
8129
8130         * cpplex.c (skip_block_comment): Use pointer arithmetic rather
8131         than GETC ().
8132         * cpphash.h: (CPP_BUMP_BUFFER_LINE_CUR, CPP_BUMP_LINE_CUR): New.
8133
8134 2000-04-10  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
8135
8136         * invoke.texi (-fno-gnu-keywords): Remove classof, headof,
8137         __classof__, and __headof__ from the list of gnu keywords.
8138         (-ansi): Remove -foperator-names from list of implied options.
8139         Do not call it ANSI C++.
8140         (-foperator-names): Document as -fno-operator-names.
8141
8142 2000-04-09  Zack Weinberg  <zack@wolery.cumb.org>
8143
8144         * cpphash.c (timestamp): Delete.
8145         (del_HASHNODE): If type is T_MCONST, free value.cpval.
8146         (special_symbol): Remove unnecessary braces.  Remove
8147         T_VERSION.  Treat T_STDC like T_CONST unless
8148         STDC_0_IN_SYSTEM_HEADERS.  Render both __DATE__ and __TIME__
8149         when one is encountered, then convert them into T_MCONST
8150         nodes.
8151         * cppinit.c (builtin_array): version_string is T_MCONST.
8152         __STDC__ has a "1" in its cpval.  Don't have a terminator
8153         entry.  Clean up which entries are dumped.
8154         (initialize_builtins): Only __STDC__ gets the special
8155         -traditional treatment.  Count the length of builtin_array.
8156         Render version_string here.
8157         * cpphash.h: Remove T_VERSION.  Add T_MCONST.
8158         * cpplib.h (struct cpp_reader): Remove timebuf.
8159
8160 2000-04-09  Richard Henderson  <rth@cygnus.com>
8161
8162         * genrecog.c (pred): Update comparison_operator for the unordered
8163         operators.
8164
8165         * config/i386/i386.c (no_comparison_operator): Disallow unordered
8166         operators.
8167         (fcmov_comparison_operator): Allow UNORDERED/ORDERED.
8168         (uno_comparison_operator): New.
8169         (put_condition_code): Handle UNORDERED/ORDERED.
8170         (unsigned_comparison): Likewise.
8171         (ix86_fp_compare_mode): Broken out of ix86_expand_fp_compare.
8172         (ix86_use_fcomi_compare, ix86_prepare_fp_compare_args): Likewise.
8173         (ix86_expand_fp_compare): Use them.  Take scratch as argument,
8174         update all callers.  Handle all 8 unordered operators.
8175         (ix86_expand_setcc): Lose the unordered argument, update all callers.
8176         (ix86_expand_branch): Likewise.  Don't fully expand fp branches.
8177         * config/i386/i386.h (PREDICATE_CODES): Update.
8178         * config/i386/i386-protos.h (ix86_expand_fp_compare): Declare.
8179         (ix86_expand_branch, ix86_expand_setcc): Update.
8180         * config/i386/i386.md (sunordered, sordered): New.
8181         (suneq, sunge, sungt, sunle, sunlt, sltgt): New.
8182         (bunordered, bordered): New.
8183         (buneq, bunge, bungt, bunle, bunlt, bltgt): New.
8184         (*fp_jcc_1, *fp_jcc_2, *fp_jcc_3, *fp_jcc_4): New.
8185         (*fp_jcc_5, *fp_jcc_6, and splitters): New.
8186
8187 2000-04-09  Philip Blundell  <philb@gnu.org>
8188
8189         * config/arm/arm.h (ARM_NAME_ENCODING_LENGTHS): Strip `*' too.
8190
8191 Sun Apr  9 15:16:14 EDT 2000  John Wehle  (john@feith.com)
8192
8193         * i386.md (fix_truncsfhi2, fix_truncdfhi2,
8194         fix_truncxfhi2): New patterns.
8195         * i386.c (output_fix_trunc): Handle converting to HImode.
8196
8197 2000-04-08  Alex Samuel  <samuel@codesourcery.com>
8198
8199         * ssa.c (convert_to_ssa): Eliminate dead code when calling
8200         life_analysis.
8201         (convert_from_ssa): Call compute_bb_for_insn before life_analysis.
8202         (for_each_successor_phi): Change parameter to basic_block.
8203         (coalesce_regs_in_successor_phi_nodes): Likewise.
8204         (coalesce_regs_in_copies): Likewise.
8205         (compute_coalesced_reg_partition): Use basic_block instead of index.
8206         * rtl.h (convert_to_ssa): Delete.
8207         (convert_from_ssa): Likewise.
8208         (successor_phi_fn): Likewise.
8209         (for_each_successor_phi): Likewise.
8210         (in_ssa_form): Likewise.
8211         * basic-block.h (convert_to_ssa): Moved from rtl.h.
8212         (convert_from_ssa): Likewise.
8213         (successor_phi_fn): Likewise.
8214         (in_ssa_form): Likewise.
8215         (for_each_successor_phi): Likewise.  Change parameter to basic_block.
8216         * flow.c (calculate_global_regs_live): Pass a basic_block to
8217         for_each_successor_phi.
8218
8219 2000-04-08  Richard Henderson  <rth@cygnus.com>
8220
8221         * flow.c (mark_used_reg): Use reg_set_p to determine if a register
8222         was modified in the current insn.
8223
8224 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
8225
8226         * arm/thumb.md: Delete.
8227         * arm/thumb-protos.h: Delete.
8228
8229 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
8230
8231         Merge changes from merged-arm-thumb-backend-branch onto trunk.
8232
8233         2000-04-08  Richard Earnshaw (rearnsha@arm.com)
8234
8235         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000408
8236         into branch.
8237
8238         * arm.md (nop): Use the standard RTL expression.  Don't code as a
8239         define_expand.
8240         (*arm_nop, *thumb_nop): Delete.
8241
8242         * arm.c (const_ok_for_arm): Don't use ANSI extensions for defining
8243         constants.  Use casts instead.
8244         (arm_gen_constant, arm_rtx_costs, arm_reload_in_hi, arm_reload_out_hi,
8245         output_multi_immediate, arm_poke_function_name): Likewise.
8246         * arm.h (ARM_LEGITIIMIZE_RELOAD_ADDRESS, ARM_SIGN_EXTEND,
8247         MASK_RETURN_ADDDR): Likewise.
8248
8249         2000-03-31  Richard Earnshaw (rearnsha@arm.com)
8250
8251         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000325
8252         into branch.
8253
8254         * arm.md (eh_epilogue): New function.
8255         * arm.h (struct machine_function): Move to here ...
8256         * arm.c: ... from here.
8257         (arm_output_epilogue): Support epilogues for __builtin_eh_return.
8258         (thumb_exit): Extra parameter eh_ofs.  All callers changed.
8259         Handle epilogues for __builtin_eh_return.  Make bit-fields unsigned.
8260
8261         2000-03-30  Nick Clifton  <nickc@cygnus.com>
8262
8263         * config/arm/semi.h (ASM_SPEC): Restore definition.
8264         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
8265
8266         * config/arm/elf.h (ASM_SPEC): Restore definition.
8267         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
8268
8269         * config/arm/arm.h (ASM_SPEC): Remove definition.
8270         (SUBTARGET_EXTRA_ASM_SPEC): Remove definition.
8271
8272         2000-03-26  Bernd Schmidt <bernds@cygnus.co.uk>
8273
8274         * config/arm/arm.c: Disable -fschedule-insns for Thumb.
8275
8276         2000-03-24  Nick Clifton  <nickc@cygnus.com>
8277
8278         Various formating tidyups, elimination of compile time
8279         warnings and synchronisation with internal sources:
8280
8281         * config/arm/arm-protos.h (assemble_align): Add prototype.
8282         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
8283         (gen_comapre_reg): Rename to arm_gen_compare_reg.
8284         (arm_return_addr_rtx): Rename to arm_return_addr.
8285
8286         * config/arm/arm.c: Include except.h.
8287         Define shorter typenames for strict minipool_node and struct
8288         minipool_fix.
8289         (arm_return_in_memory): For WinCE return all structures <= 32 bits
8290         in memory.
8291         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
8292         (gen_comapre_reg): Rename to arm_gen_compare_reg.
8293
8294         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
8295         already defined.
8296         (ASM_SPEC): Define if not already defined.
8297         (ASM_OUTPUT_DEF_FROM_DECLS): Define.
8298
8299         * config/arm/arm.md: Rename references to gen_rotated_half_load to
8300         arm_gen_rotated_half_load, and references to gen_comapre_reg to
8301         arm_gen_compare_reg.
8302         (indirect_jump):  Only accept register operands.
8303         (load_indirect_jump): Keep this pattern since combine can generate
8304         it.
8305
8306         * config/arm/coff.h: Include aout.h.
8307         (MULTILIB_DEFAULTS): Only define if not already defined.
8308
8309         * config/arm/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Move definition
8310         into arm.h (so that COFF ports can support thumb based aliases).
8311         (ASM_SPEC): Move definition into arm.h
8312
8313         * config/arm/linux-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Remove
8314         redundant apcs spec.
8315         (ASM_SPEC): Move definition to arm.h
8316
8317         * config/arm/semi.h (ASM_SPEC): Move definition to arm.h
8318
8319         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Add support
8320         for entries in the .bss section
8321
8322         2000-03-23  Nick Clifton  <nickc@cygnus.com>
8323
8324         * config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Pass 0
8325         to thumb_far_jump_used_p.
8326
8327         * config/arm/arm-protos.h (thumb_far_jump_used_p): Take a
8328         single integer parameter.
8329
8330         * config/arm/arm.c (struct machine_function): Add two new
8331         fields, 'far_jump_used' and 'arg_pointer_live'.
8332         (thumb_far_jump_used_p): Once the decision has been made that
8333         far jumps might be used, always return true.
8334         If being called from the initial elimination offset macro then
8335         do not bother to perform the test if the arg pointer is not
8336         being used.
8337         (thumb_unexpand_epilogue): Pass 1 to thumb_far_jump_used_p().
8338         (output_thumb_prologue): Pass 1 to thumb_far_jump_used_p().
8339
8340         2000-03-23  Richard Earnshaw (rearnsha@arm.com)
8341
8342         * arm.c (output_return_instruction): Handle more cases where we can
8343         return from a function with an ldr instruction.
8344         (arm_output_epilogue): Likewise.
8345
8346         * arm.c (thumb_expand_prologue): Don't clobber the frame pointer
8347         if we need to push a large stack frame and there are no callee-saved
8348         registers.
8349
8350         * arm.c (arm_debugger_arg_offset): An offset of 0 is also valid
8351         in ARM code if the frame pointer has been eliminated.
8352
8353         * arm.md (epilogue, *epilogue_insns, consttable_*, align_4): Renumber
8354         unspec_volatile arguments to avoid duplicates.
8355         (consttable_1, consttable_2): Fixes for big-endian mode.
8356
8357         * arm.md (all ARM-mode load insns): Add neg_pool_range attribute
8358         as appropriate.
8359
8360         Re-write constant pool code.
8361         * arm.c (minipool_node, minipool_fix): New types.
8362         (minifix): Delete type.
8363         (arm_add_minipool_constant): Delete.
8364         (arm_compute_minipool_offsets, arm_find_barrier,
8365         arm_find_minipool_constant, fixup_compare, sort_fixups): Likewise.
8366         (get_jump_table_size): Now returns HOST_WIDE_INT.
8367         (move_minipool_fix_forward_ref, add_minipool_forward_ref): New
8368         functions.
8369         (move_minipool_fix_backward_ref, add_minipool_backward_ref): Likewise.
8370         (assign_minipool_offsets, arm_print_value): Likewise.
8371         (dump_minipool): Rewrite.
8372         (arm_barrier_cost): New function.
8373         (create_fix_barrier): New function.
8374         (push_minipool_barrier): New function.
8375         (push_minipool_fix): Record additional information about the fixup
8376         required.
8377         (note_invalid_constants): Remove push for (UNSPEC 3).  Don't
8378         check the mode of what needs fixing.
8379         (arm_reorg): Rewrite.
8380
8381         2000-03-08  Nick Clifton  <nickc@cygnus.com>
8382
8383         * config/arm/arm.md (indirect_jump): Force constant addresses into
8384         a register.
8385
8386         2000-03-01  Bernd Schmidt <bernds@cygnus.co.uk>
8387
8388         * config/arm/arm.md: Add splitter to turn SF moves into SI moves.
8389
8390         2000-02-24  Nick Clifton  <nickc@cygnus.com>
8391
8392         * config/arm/arm.c (thumb_expand_prologue): Make sure that stack
8393         adjust is word aligned.
8394         (thumb_expand_epilogue): Make sure that stack adjust is word
8395         aligned.
8396
8397         * config/arm/elf.h (ASM_FILE_START): Fix type of version string.
8398
8399         2000-02-24  Bernd Schmidt <bernds@cygnus.com>
8400
8401         * config/arm/arm.h (THUMB_GO_IF_LEGITIMATE_ADDRESS): Allow frame
8402         pointer relative addresses.
8403
8404         2000-02-10  Richard Earnshaw  <rearnsha@arm.com>
8405
8406         * arm.c (find_barrier): Find the last barrier within the allowed
8407         range.
8408
8409         2000-02-09  Nick Clifton  <nickc@cygnus.com>
8410
8411         * config/arm/arm-protos.h: Replace PROTO with PARAMS.
8412
8413         2000-02-09  Nick Clifton  <nickc@cygnus.com>
8414
8415         * config/arm/linux-elf.h (FUNCTION_PROFILER): Rename to
8416         ARM_FUNCTION_PROFILER.
8417
8418         * config/arm/netbsd.h (FUNCTION_PROFILER): Rename to
8419         ARM_FUNCTION_PROFILER.
8420
8421         * config/arm/linux-oldld.h: Imported from mainline sources.
8422
8423         2000-02-07  Nick Clifton  <nickc@cygnus.com>
8424
8425         * config/arm/lib1funcs.asm: Merge in thumb functions from
8426         lib1thumb.asm.
8427
8428         * config/arm/lib1thumb.asm: Delete.
8429
8430         2000-02-04  Nick Clifton  <nickc@cygnus.com>
8431
8432         * config/arm/arm.c: Sychronised with current Red hat local
8433         sources.
8434         * config/arm/arm.h: Ditto.
8435         * config/arm/arm-protos.h: Ditto.
8436
8437         2000-02-02  Bernd Schmidt  <bernds@cygnus.co.uk>
8438
8439         * arm.c (soft_df_operand): Reject SUBREGs containing a constant.
8440
8441         * arm.c (arm_gen_movstrqi): Generate halfword stores rather than two
8442         byte stores.
8443
8444         2000-02-02  Nick Clifton  <nickc@cygnus.com>
8445
8446         * config/arm/thumb.c (thumb_exit): Additional fix for same bug.
8447
8448         * config/arm/arm.md (epilogue): Fix rtl checking abort because
8449         (return) was emited using an emit_insn() call.
8450
8451         2000-01-31  Nick Clifton  <nickc@cygnus.com>
8452
8453         * config/arm/arm.c (output_thumb_prologue): Fix bug generating
8454         thumb stack frame.
8455         (thumb_exit): Move frame pointer back into hard frame pointer
8456         register if backtracing is being used.
8457
8458         2000-01-13  Richard Earnshaw (rearnsha@arm.com)
8459
8460         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000113
8461         into branch.
8462
8463         1999-12-15  Bernd Schmidt  <bernds@cygnus.co.uk>
8464
8465         * config/arm/arm.md (neg_pool_offset): Provide default for new
8466         attribute.
8467         (arm_movsi_insn): Add neg_pool_offset attribute.
8468         * config/arm/arm.c (arm_find_barrier): Replace arg FIX with an
8469         rtx for the insn that starts the scan and an unsigned long for its
8470         address.  Add MIN_OFFSET and PINSERTED args.  All callers changed.
8471         Change scan to ignore insns before MIN_OFFSET.  Store size of inserted
8472         instructions in *PINSERTED.
8473         (struct minipool_fixup): Add MIN_ADDRESS elt.
8474         (sort_fixups): Compute it.
8475         (arm_reorg): Changes to support inserting pools before the insn to be
8476         fixed up.
8477
8478         1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
8479
8480         * config/arm/elf.h (MULTILIB_DEFAULTS): Add "marm".
8481         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Add "marm".
8482         * config/arm/coff.h (MULTILIB_DEFAULTS): Add "marm".
8483
8484         Wed Nov  3 10:04:07 1999  Nick Clifton  <nickc@cygnus.com>
8485
8486         * config/arm/semi.h (TARGET_VERSION): Do not define if already
8487         defined.
8488         (TARGET_DEFAULT): Do not define if already defined.
8489
8490         Tue Nov  2 10:37:25 1999  Nick Clifton  <nickc@cygnus.com>
8491
8492         * config/arm/arm.md (anddi3): Allow disjoint source operands.
8493         (iordi3): Allow disjoint source operands.
8494         (xordi3): Allow disjoint source operands.
8495         (negdi2): Permit construction for ARM and Thumb.
8496         (arm_negdi2): Renamed version of old negdi2 pattern.
8497         (thumb_negdi2): New pattern: Only permit non-overlapping
8498         source and destination.
8499
8500         Fri Oct 29 18:52:38 1999  Nick Clifton  <nickc@cygnus.com>
8501
8502         * config/arm/arm.c (thumb_expand_prologue): Emit a USE of the
8503         scratch low register so that it will not be deleted.
8504
8505         Fri Oct 29 15:23:48 1999  Nick Clifton  <nickc@cygnus.com>
8506
8507         * config/arm/pe.h (ARM_PE): Define.
8508
8509         * config/arm/arm.c (arm_valid_machine_decl_attribute): Allow
8510         interfacearm attribute if this is a PE toolchain.
8511         (output_return_instruction): Do not emit anything if the function
8512         has the naked attribute set.
8513         (is_called_in_ARM_mode): If the function has the interfacearm
8514         attribute then return true.
8515         (thumb_expand_prologue): Do not generate a prologue for naked
8516         functions.
8517         (thumb_expand_epilogue): Do not generate an epilogie for a naked
8518         function.
8519         (output_thumb_prologue): Do not bother if the function is naked.
8520         Strip PE encoding from function name before emitting.
8521
8522         Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
8523
8524         * arm.md (pic_load_addr): Fix constraints.
8525
8526         * arm.md (casesi_insn): Fix mis-applied patch.
8527
8528         * arm.md ("core" function unit): Add rules for single- and
8529         multi-cycle insns.
8530         (All TARGET_THUMB patterns): Add "type" attribute information
8531         where needed.
8532         * arm.c (arm_adjust_cost): Reduce the cost of a data dependency if
8533         the following insn is a CALL.
8534
8535         * arm.c (thumb_expand_epilogue): Add a use of the adjusted stack
8536         pointer.
8537         * arm.h (CONDITIONAL_REGISTER_USAGE): Nail down the
8538         ARM_HARD_FRAME_POINTER_REGNUM when TARGET_APCS_FRAME.
8539         (FRAME_POINTER_REQUIRED): Only check TARGET_APCS_FRAME if TARGET_ARM.
8540
8541         Wed Oct 27 14:40:48 1999  Nick Clifton  <nickc@cygnus.com>
8542
8543         * config/arm/linux-gas.h: oops - this file was missed out when the
8544         branch was created...
8545
8546         Tue Oct 26 17:07:38 1999  Richard Earnshaw <rearnsha@arm.com>
8547
8548         * thumb.c: Deleted.  Move contents to ...
8549         * arm.c: ... here.
8550         * t-arm-aout, t-arm-coff, t-arm-elf, t-linux, t-netbsd, t-semi: Remove
8551         rule for thumb.o
8552         * configure.in (arm*-*-*): Remove thumb.o from extra_objs list.
8553         * configure: Regen.
8554
8555         * arm-protos.h: Use RTX_CODE and tidy up long lines.  Don't
8556         declare a prototype for asm_output_align();
8557
8558         * arm.c (thumb_condition_code): Delete.
8559         (arm_print_operand): Always use arm_condition_code array.
8560
8561         * arm.c (thumb_return_addr_rtx): Delete.
8562         (arm_save_machine_status, arm_restore_machine_status): Delete.
8563         (arm_init_machine_status, arm_mark_machine_status): New functions.
8564         (arm_init_expanders): Update accordingly.
8565         (arm_return_addr): Renamed from arm_return_addr_rtx.  Rewrite.
8566         (thumb_expand_prologue): Delete code referencing thumb_return_addr_rtx.
8567         * arm.h (RETURN_ADDR_RTX): Call arm_return_addr().
8568
8569         Tue Oct 26 13:24:16 1999  Nick Clifton  <nickc@cygnus.com>
8570
8571         * configure.in : Fix arm-*-aout target to use new t-arm-aout
8572         script.
8573         * config/arm/t-arm-aout: New file: Makefile script for arm-*-aout
8574         targets.
8575
8576         Tue Oct 26 11:27:12 1999  Nick Clifton  <nickc@cygnus.com>
8577
8578         * config/arm/thumb.c (output_thumb_prologue): Fix bug creating
8579         stack backtrace structure.
8580
8581         * config/arm/arm-protos.h: Add prototypes for functions defined in
8582         arm/pe.h.
8583
8584         * config/arm/arm.c (arm_override_options): Fix selection of
8585         attributes of default processor.
8586
8587         * config/arm/coff.h: Delete needless #include.
8588
8589         * config/arm/pe.c: Delete unused code.
8590
8591         * config/arm/pe.h (CPP_DEFINES): Delete
8592         (SUBTARGET_CPP_SPEC): Define.
8593         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
8594
8595         * config/arm/t-pe: Add -DInhibit_libc to allof libgcc.a to build.
8596
8597         Mon Oct 25 15:42:09 1999  Richard Earnshaw (rearnsha@arm.com)
8598
8599         * arm.h (TARGET_APCS_FRAME): Renamed from TARGET_APCS -- all uses
8600         updated.
8601         (CAN_DEBUG_WITHOUT_FP): Define.
8602         (FIXED_REGISTERS): Make r11 call-saved.
8603         (CALL_USED_REGISTERS): Likewise.
8604         (CONDITIONAL_REGISTER_USAGE): Fix r11 if TARGET_APCS_FRAME.
8605         (FRAME_POINTER_REQUIRED): Correct logic for determining when a
8606         frame-pointer is required.
8607         (TARGET_DEFAULT): Make default setting include ARM_FLAG_APCS_FRAME.
8608         * arm.c (arm_override_options): Warn about -mno-apcs-frame and -g
8609         if the target normally needs a stack frame in non-leaf functions.
8610         (use_return_insn): Correct logic for determining when a return
8611         instruction can be used.
8612         (output_return_instruction): Handle the frame-pointer register as
8613         a normal register when not TARGET_APCS_FRAME.
8614         (arm_output_prologue): Likewise.
8615         (arm_output_epilogue): Likewise.
8616         (output_func_epilogue): Likewise.
8617         (arm_expand_prologue): Likewise.
8618         * netbsd.h semi.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_FRAME.
8619
8620         * arm.c (use_return_insn): No need to check floating point regs if
8621         TARGET_SOFT_FLOAT.
8622         (arm_find_minipool_constant): Correct typo; use GET_CODE to get
8623         the code of value stored in the minipool array.
8624         (arm_add_minipool_constant): Likewise.
8625
8626 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8627
8628         * basic-block.h (conflict_graph_enum_fn): K&R fix.
8629
8630 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8631
8632         * tree.c (tree_expr_nonnegative_p): New function.
8633
8634         * tree.h (tree_expr_nonnegative_p): Declare.
8635
8636         * c-typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to
8637         elide some sign_compare warnings.
8638         (build_conditional_expr): Likewise.
8639
8640 Sat Apr  8 00:21:51 EDT 2000  John Wehle  (john@feith.com)
8641
8642         * i386.md (ashrsi3, ashrhi3, ashrqi3): Fix typo.
8643
8644         * i386.md (floathisf2, floathidf2, floathixf2): New patterns.
8645         * i386.c (print_operand): Use the proper suffix for a 387 HImode
8646         operand.  Abort if a 387 operand has an unsupported size.
8647
8648 2000-04-08  Neil Booth  <NeilB@earthling.net>
8649
8650         * cppexp.c (parse_charconst): Null does not end character
8651         constants.
8652         * cppinit.c (ISTABLE): Null character handled as whitespace.
8653         * cpplex.c (null_warning):  new function.
8654         (skip_string): Emit warning if nulls encountered.
8655         (_cpp_skip_hspace): Emit warning if nulls encountered.
8656         (_cpp_lex_token): Emit warning if nulls encountered.  Drop
8657         them.
8658         * cpp.texi: Update.
8659
8660 2000-04-07  Richard Henderson  <rth@cygnus.com>
8661
8662         * flow.c (loop_depth): Remove.
8663         (reg_next_use, cc0_live, mem_set_list): Replace with ...
8664         (struct propagate_block_info): New.
8665         (life_analysis): Don't allocate reg_next_use.
8666         (propagate_block_delete_insn): Break out of propagate_block.
8667         Use flow_delete_insn to unlink rather than use NOTE_INSN_DELETED.
8668         (propagate_block_delete_libcall): Likewise.
8669         (propagate_block): Create a propagate_block_info struct to pass
8670         to subroutines.  Allocate one not two temporary regsets.  Don't
8671         clobber memory for const calls.  Look for clobbers in
8672         CALL_INSN_FUNCTION_USAGE.
8673         (mark_set_regs): Recognize COND_EXEC.
8674         (mark_set_reg): Break out of mark_set_1.
8675         (mark_used_reg): Break out of mark_used_regs.
8676         (mark_used_regs): Recognize COND_EXEC.
8677         (insn_dead_p): Use propagate_block_info struct.
8678         (libcall_dead_p, invalidate_mems_from_autoinc): Likewise.
8679         (find_auto_inc, try_pre_increment_1): Likewise.
8680         (print_rtl_with_bb): Dump regs live at end too.
8681         (count_reg_sets_1): Pass in loop_depth.
8682         (count_reg_sets, count_reg_references): Likewise.
8683         (recompute_reg_usage): Provide it.
8684
8685 2000-04-07  Richard Henderson  <rth@cygnus.com>
8686
8687         * Makefile.in (conflict.o): Depend on $(RTL_H) and $(BASIC_BLOCK_H)
8688         not the raw files.
8689
8690 2000-04-07  Zack Weinberg  <zack@wolery.cumb.org>
8691
8692         * cpplib.c (do_elif): Skip the rest of the line if we're
8693         not going to bother evaluating it.
8694         (skip_if_group): Clear pfile->only_seen_white.  Reorder loop
8695         to avoid pointless calls to the lexer.
8696
8697 Fri Apr  7 11:50:54 2000  Jim Wilson  <wilson@cygnus.com>
8698
8699         * config/ia64/ia64.c: Delete stdio.h and ctype.h includes.
8700
8701 2000-04-07  Jason Merrill  <jason@casey.cygnus.com>
8702
8703         * calls.c (expand_call): emit_queue if we're trying a sibcall.
8704
8705 2000-04-07  Jakub Jelinek  <jakub@redhat.com>
8706
8707         * config/sparc/t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove.
8708
8709 2000-04-06  Geoff Keating  <geoffk@cygnus.com>
8710
8711         * Makefile.in: Build crtbeginS and crtendS like crtbegin and
8712         crtend so they can be multilibbed.
8713         (STAGESTUFF): Remove s-crt and s-crtS.
8714
8715 2000-04-07  Richard Henderson  <rth@cygnus.com>
8716
8717         * config/alpha/alpha.c (alpha_emit_conditional_move): Fail
8718         if we discover we need a pseudo and no_new_pseudos is true.
8719         * config/alpha/alpha.md (ne:DI insn): New.
8720         (trunctfsf2, sne): Emit NE instead of non-canonical LTU.
8721
8722 2000-04-07  Richard Henderson  <rth@cygnus.com>
8723
8724         * rtl.def (COND_EXEC): New.
8725         * rtl.h (COND_EXEC_TEST, COND_EXEC_CODE): New.
8726         * tm.texi (MAX_CONDITIONAL_EXECUTE): Document.
8727
8728         * genconfig.c (have_cond_arith_flag): Remove.
8729         (have_cond_exec_flag): New.
8730         (walk_insn_part): Detect COND_EXEC, not arithmetic in IF_THEN_ELSE.
8731         (main): Print HAVE_conditional_execution.
8732
8733         * haifa-sched.c (haifa_classify_insn): Recognize COND_EXEC.
8734         (sched_analyze_insn, print_pattern): Likewise.
8735         * reload.c (find_equiv_reg): Likewise.
8736         * rtlanal.c (reg_referenced_p): Likewise.
8737         (note_stores, dead_or_set_regno_p): Likewise.
8738         (reg_overlap_mentioned_p): Rewrite to use a switch.
8739
8740         * ggc.h (struct rtx_def): Forward declare.
8741
8742         * print-rtl.c (debug_rtx_range): New.
8743         * rtl.h (debug_rtx_range): Declare.
8744
8745         * varray.h (VARRAY_ACTIVE_SIZE, VARRAY_POP_ALL): New.
8746
8747         * gcse.c (gcse_main): Don't rebuild the CFG here.
8748         (delete_null_pointer_checks): Likewise.
8749         * ssa.c (convert_to_ssa): Likewise.
8750         * toplev.c (rest_of_compilation): Do it here instead.  Combine
8751         sequential calls to TIMEVAR.  Consistently use `insns' instead of
8752         `get_insns()'.  Always split insns after reload when optimizing.
8753
8754         * basic-block.h (merge_blocks_nomove): Declare.
8755         (tidy_fallthru_edge): Declare.
8756         * flow.c (merge_blocks_nomove): Document as merging into previous
8757         blocks.  Remove cruft from between blocks; remove all edges out of A.
8758         (tidy_fallthru_edge): Export.
8759
8760 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
8761
8762         * ssa.c (compute_conservative_reg_partition): Declare with
8763         void arguments.
8764         * toplev.c (clean_dump_file): Remove previously-deleted function
8765         inadvertantly merged back in.
8766         * conflict.c (conflict_graph_add): Use a single call to
8767         htab_find_slot to look up and insert.
8768
8769 2000-04-06  Richard Henderson  <rth@cygnus.com>
8770
8771         * genrecog.c (*): Rename _last_insn to last_insn.
8772         (make_insn_sequence): Set the position of the peephole2 C test
8773         to be at the last insn.
8774
8775 2000-04-06  Richard Henderson  <rth@cygnus.com>
8776
8777         * flow.c (compute_flow_dominators): Free worklist.
8778
8779 2000-04-06  Michael Matz  <matzmich@cs.tu-berlin.de>
8780
8781         * flow.c (compute_flow_dominators): Process blocks FIFO not LIFO.
8782
8783 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
8784
8785         * rtl.h (INSN_P): New macro.
8786         (successor_phi_fn): New typedef.
8787         (for_each_successor_phi): New prototype.
8788         (in_ssa_form): New variable.
8789         (PHI_NODE_P): Likewise.
8790         * flow.c (calculate_global_regs_live): Add to new_live_at_end from
8791         phi nodes in successors.
8792         (mark_used_regs): Add PHI case.
8793         (set_phi_alternative_reg): New function.
8794         (life_analysis): Assert that dead code elimination is not selected
8795         when in SSA form.
8796         * toplev.c (to_ssa_time): New variable.
8797         (from_ssa_time): Likewise.
8798         (compile_file): Zero to_ssa_time and from_ssa_time.
8799         Print time to convert to and from SSA.
8800         (rest_of_compilation): Time convert_to_ssa and convert_from_ssa.
8801         (print_time): Compute percent fraction as integer.
8802         * ssa.c (PHI_NODE_P): Moved to rtl.h.
8803         (convert_to_ssa): Check if we're already in SSA.
8804         Don't eliminate dead code in life_analysis.
8805         Rerun flow and life analysis at bottom.
8806         (eliminate_phi): Use canonical regnos when adding nodes.
8807         (mark_reg_in_phi): New function.
8808         (mark_phi_and_copy_regs): Likewise.
8809         (convert_from_ssa): Rerun life analysis at top.
8810         Use coalesced partition.
8811         Check for removing a phi node at the end of the block.
8812         (compute_coalesced_reg_partition): New function.
8813         (coalesce_regs_in_copies): Likewise.
8814         (coalesce_reg_in_phi): Likewise.
8815         (coalesce_regs_in_sucessor_phi_nodes): Likewise.
8816         (for_each_successor_phi): Likewise.
8817         (rename_context): New struct.
8818         (rename_block): Use a rename_context with rename_insn_1.  When
8819         renaming sets of a subreg, emit a copy of the entire reg first.
8820         (rename_insn_1): Treat data as a rename_context *.  Save current
8821         insn in set_data.
8822         (rename_set_data): Add field set_insn.
8823         * Makefile.in (HASHTAB_H): Move up in file.
8824         (OBSTACK_H): New macro.
8825         (collect2.o): Use OBSTACK_H in dependencies.
8826         (sdbout.o): Likewise.
8827         (emit-rtl.o): Likewise.
8828         (simplify-rtx.o): Likewise.
8829         (fix-header.o): Likewise.
8830         (OBJS): Add conflict.o.
8831         (conflict.o): New rule.
8832         * basic-block.h: Include partition.h.
8833         (conflict_graph): New typedef.
8834         (conflict_graph_enum_fn): Likewise.
8835         (conflict_graph_new): New prototype.
8836         (conflict_graph_delete): Likewise.
8837         (conflict_graph_add): Likewise.
8838         (conflict_graph_conflict_p): Likewise.
8839         (conflict_graph_enum): Likewise.
8840         (conflict_graph_merge_regs): Likewise.
8841         (conflict_graph_print): Likewise.
8842         (conflict_graph_compute): Likewise.
8843         * conflict.c: New file.
8844
8845 2000-04-06  Jason Merrill  <jason@yorick.cygnus.com>
8846
8847         * tlink.c (read_repo_files): Don't look for .rpo info for
8848         linker flags.
8849
8850 Thu Apr  6 20:39:26 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8851
8852         * sh.h (STRUCT_VALUE, RETURN_IN_MEMORY): Define.
8853
8854 Thu Apr  6 19:34:08 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8855
8856         * config/sh/lib1funcs.asm (___udivsi3_i4):
8857         ( __SH4_SINGLE__ / __SH4_SINGLE_ONLY__ variant): value for fpscr
8858         only depends on FMOVD_WORKS.
8859
8860 Thu Apr  6 19:11:47 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8861
8862         * config/sh/lib1funcs.asm (___udivsi3_i4): When using fmovd,
8863         make double constant 8-byte aligned.
8864
8865 2000-04-06  Jakub Jelinek  <jakub@redhat.com>
8866
8867         * config/sparc/sparc.md (movtf_insn_sp32, movtf_insn_vis_sp32,
8868         movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_hq_vis_sp64,
8869         movtf_no_e_insn_sp64): Accept loading 0.0 into GENERAL_REGS.
8870         (movtf_insn_sp64, movtf_insn_vis_sp64): Likewise.
8871         Accept storing GENERAL_REGS into offsetable memory.
8872         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Don't allow
8873         building a TFmode constant other than 0.0L into GENERAL_REGS.
8874
8875 2000-04-06  Clinton Popetz  <cpopetz@cygnus.com>
8876
8877         * regrename.c (regrename_optimize): Handle no REG_ALLOC_ORDER.
8878
8879 2000-04-06  Zack Weinberg  <zack@wolery.cumb.org>
8880
8881         * cpphash.c (CPP_IS_MACRO_BUFFER, FORWARD, PEEKC): Delete.
8882         (macro_cleanup): No need to cast pbuf->macro.
8883         (collect_expansion): Use _cpp_get_define_token.  Goto done if
8884         it returns VSPACE.  Remove check for trailing space after
8885         CPP_COMMENT.
8886         (_cpp_create_definition): Don't diddle flags here.  Return
8887         directly on error.
8888         (unsafe_chars): Handle c1 being EOF.
8889         (push_macro_expansion): Use unsafe_chars for both accidental-paste
8890         checks.  Don't push the buffer till after we're done with
8891         them.
8892         * cpplex.c (PEEKBUF, GETBUF, FORWARDBUF): New.
8893         (PEEKN, FORWARD, GETC, PEEKC): Use them.
8894         (cpp_push_buffer): Don't set new->alimit.  Set new->mark
8895         appropriately.
8896         (_cpp_parse_assertion): Don't NUL terminate.
8897         (_cpp_lex_token): Fix -traditional macro handling.  Don't skip
8898         hspace before calling _cpp_parse_assertion.  Remove all sets
8899         of only_seen_white. Treat '\f' as hspace.  Don't do anything
8900         special with '\n' here.
8901         (maybe_macroexpand): Handle T_EMPTY hash entries without
8902         pushing a buffer at all.
8903         (cpp_get_token): Handle clearing only_seen_white here.  Handle
8904         incrementing the line number here.  Clear
8905         potential_control_macro as well as only_seen_white, if
8906         appropriate.
8907         (cpp_get_non_space_token): Don't eat CPP_POP tokens.
8908         (_cpp_get_define_token): New function, basically like
8909         _cpp_get_directive_token was but doesn't eat horizontal space.
8910         Don't do anything with only_seen_white here.
8911         (_cpp_get_directive_token): Just call _cpp_get_define_token
8912         repeatedly till it returns non-hspace.
8913
8914         * cpplib.c (PEEKN, FORWARD, GETC, PEEKC): Delete.
8915         (conditional_skip, skip_if_group): Return int.
8916         (DIRECTIVE_TABLE): Change origin of all conditional directives
8917         to "COND".
8918         (TRAD_DIRECT_P): New macro.
8919         (_cpp_handle_directive): Use _cpp_get_directive_token.  Issue
8920         an error for a bogus directive, unless -lang-asm.  Use
8921         TRAD_DIRECT_P. Loop calling handler functions till one returns
8922         zero.
8923         (get_macro_name): Don't diddle flags here.
8924         (do_define): Diddle flags here.  Use _cpp_get_directive_token.
8925         Create T_EMPTY nodes for #define macro /* nothing */.
8926         (do_undef): Don't copy the name.  Use _cpp_get_directive_token.
8927         Use hp->name when calling pass_thru_directive.
8928         (do_if, do_else, do_elif, do_ifdef, do_ifndef, conditional_skip):
8929         Return the result of conditional_skip and/or skip_if_group.
8930         Don't call _cpp_output_line_command.
8931         (consider_directive_while_skipping): Use _cpp_get_directive_token.
8932         Issue -Wtraditional warnings as appropriate.  Don't complain
8933         about unrecognized directives.  If we are to stop skipping,
8934         return the number of the directive that ended the skip.
8935         (skip_if_group): Use _cpp_get_directive_token.  Turn off macro
8936         expansion and line commands while skipping.  Return the result
8937         of consider_directive_while_skipping, if nonzero.
8938         (do_endif): Just set potential_control_macro here.
8939         (validate_else): Use _cpp_get_directive_token.
8940         (do_assert, do_unassert): Don't save pointers into the
8941         token_buffer across calls to the lexer.  Use
8942         _cpp_get_directive_token.
8943
8944         * cpplib.h (cpp_buffer): Remove alimit and colno.  Make mark a
8945         pointer, not an offset.  Replace 'data', which was a generic
8946         pointer, with 'macro', which points to a struct hashnode.
8947         (cpp_reader): Add 'potential_control_macro' pointer.
8948         * cpphash.h (T_UNUSED): Replace with T_EMPTY.
8949         (CPP_BUF_GET, CPP_FORWARD): Delete.
8950         (CPP_IN_COLUMN_1, ADJACENT_TO_MARK): New macros.
8951         (CPP_IS_MACRO_BUFFER, CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK,
8952         ACTIVE_MARK_P): Update.
8953         (_cpp_get_define_token): New internal function.
8954         * cppfiles.c (read_include_file): Don't set fp->alimit or fp->colno.
8955
8956 2000-04-05   Benjamin Kosnik  <bkoz@cygnus.com>
8957
8958         * configure.in: And here.
8959         * configure: Regenerate.
8960         * acconfig.h: Add ENABLE_STD_NAMESPACE to set flag_honor_std if
8961         --enable-libstdcxx-v3 is passed at configure time.
8962         * config.h.in: Regenerate.
8963
8964 2000-04-05  Mark Mitchell  <mark@codesourcery.com>
8965
8966         * final.c (final): Use xcalloc to allocate line_note_exists.
8967         * function.c (free_after_compilation): Free the temp_slots.
8968         (assign_stack_temp_for_type): Use xmalloc to allocate temp_slots.
8969         (combine_temp_slot): Free temp_slots when they get combined.
8970         (purge_addressof): Fix typo in comment.
8971         * stmt.c (mark_goto_fixup): Mark the fixup itself.
8972         (expand_fixup): Allocate the fixup with ggc_alloc_obj.
8973
8974         * ggc.h: Include varray.h.
8975         (ggc_pending_trees): Declare.
8976         (ggc_mark_tree_children): Remove declaration.
8977         (ggc_mark_tree): Just push unmarked trees on ggc_pending_trees.
8978         * ggc-common.c (ggc_pending_trees): New variable.
8979         (ggc_mark_roots): Call ggc_mark_trees.
8980         (ggc_mark_tree_children): Rename to ggc_mark_trees.  Process all
8981         the ggc_pending_trees.
8982         * Makefile.in (GGC_H): New variable.  Use it throughout in place
8983         of ggc.h.
8984
8985 Thu Apr  6 00:30:50 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8986
8987         * sh.h (FUNCTION_ARG_PARTIAL_NREGS): Accomodate an unsigned
8988         GET_MODE_SIZE.
8989
8990 Wed Apr  5 23:17:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8991
8992         * sh.c (sh_insn_length_adjustment): New function.
8993         * sh-protos.h (sh_insn_length_adjustment): Declare.
8994         * sh.h (ADJUST_INSN_LENGTH): Use it.
8995
8996 Wed Apr  5 12:35:18 2000  Hans-Peter Nilsson  <hp@axis.com>
8997
8998         * optabs.c (emit_libcall_block): Remove spurious REG_EQUAL notes
8999         from the insn where REG_RETVAL is added.
9000         (emit_no_conflict_block): Ditto.
9001
9002         * md.texi (Standard Names): Clarify when movX is needed.
9003
9004         * combine.c (simplify_comparison) [MINUS]: Do not replace
9005         all (op (minus A B) 0) with (op A B).
9006
9007 Wed Apr  5 18:03:31 2000  Toshiyasu Morita  (toshi.morita@sega.com)
9008                           J"orn Rennecke <amylaar@cygnus.co.uk>
9009
9010         * sh.md (block_lump_real_i4): Add missing clobber of T_REG
9011         (block_lump_real): Likewise.
9012
9013 2000-04-05  Chris Demetriou  <cgd@netbsd.org>
9014
9015         * mips.h (MASK_DEBUG_A, MASK_DEBUG_B, MASK_DEBUG_C): Zero the
9016         remaining non-zero debugging masks.
9017
9018 Wed Apr  5 09:44:07 2000  Jeffrey A Law  (law@cygnus.com)
9019
9020         * basic-block.h (verify_flow_info): Declare.
9021         (flow_loop_outside_edge_p): Declare.
9022         * flow.c (verify_flow_info): Remove declaration.
9023         (clear_log_links, flow_loop_outside_edge_p): Likewise.
9024
9025 Wed Apr  5 09:34:26 2000  Philippe De Muyter <phdm@macqel.be>
9026
9027         * m68k/m68k-protos.h (finalize_pic): Turn prototype off using `#if 0',
9028         not C++ comments.
9029
9030 2000-04-05  Jakub Jelinek  <jakub@redhat.com>
9031
9032         * config/sparc/sparc.md (snedi_zero+1, neg_snedi_zero+1,
9033         snedi_zero_trunc+1, seqdi_zero+1, neg_seqdi_zero+1,
9034         seqdi_zero_trunc+1): Allow splits only if registers are
9035         different.
9036
9037 2000-04-04  Ulrich Drepper  <drepper@cygnus.com>
9038
9039         * acconfig.h: Add HAVE_GAS_HIDDEN.
9040         * config.in: Regenerated.
9041         * configure.in: Add test for .hidden pseudo-op in gas.
9042         * configure: Regenerated.
9043         * crtstuff.c: Include auto-host.h.
9044         Emit additional .hidden pseudo-op for __dso_handle if the
9045         assembler knows about it.
9046
9047 2000-04-04  Philippe De Muyter  <phdm@macqel.be>
9048
9049         * cpphash.c (_cpp_free_definition): Test argnames, not nargs >= 0,
9050         before freeing argnames.
9051         * cpplib.c (do_ifndef): Cast return value of xstrdup.
9052
9053 2000-04-05  Michael Meissner  <meissner@redhat.com>
9054
9055         * config/rs6000/rs6000.c (print_operand): Patch from Jonathan
9056         Walton <jonboy@gordian.com> to make memory references with update
9057         work wtih -mregnames.
9058
9059 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9060
9061         * regrename.c (regno_first_use_in): Wrap prototype in PARAMS.
9062         (regrename_optimize): Rename variables `def_uses' and
9063         `ext_basic_blocks' to avoid conflicts with similarly named
9064         typedefs in traditional C.
9065
9066         * calls.c (initialize_argument_information): Fix typo in previous
9067         change.
9068
9069 2000-04-04  Richard Henderson  <rth@cygnus.com>
9070
9071         * regrename.c (consider_available): Test fixed_regs not
9072         PIC_OFFSET_TABLE_REGNUM.
9073
9074 2000-04-04  Geoff Keating  <geoffk@cygnus.com>
9075
9076         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbegin,
9077         crtend.
9078         (CRTSTUFF_T_CFLAGS_S): Delete definition.
9079         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Always use crtbegin.
9080         (ENDFILE_LINUX_SPEC): Always use crtend.
9081         * configure.in (powerpc-*-linux-gnulibc1): Don't define extra_parts.
9082         (powerpc-*-linux-gnu): Likewise.
9083         * configure: Regenerate.
9084
9085         * config/rs6000/eabi.h: Don't include sysv4.h.
9086         (MULTILIB_DEFAULTS): Don't define.
9087         * config/rs6000/eabiaix.h: Don't include eabi.h.
9088         * config/rs6000/eabile.h: Delete.
9089         * config/rs6000/eabilesim.h: Delete.
9090         * config/rs6000/eabisim.h: Don't include eabi.h.
9091         * config/rs6000/linux.h: Don't include sysv4.h.
9092         (JUMP_TABLES_IN_TEXT_SECTION): Don't redefine.
9093         (MULTILIB_DEFAULTS): Don't redefine.
9094         * config/rs6000/rtems.h: Don't include eabi.h.
9095         * config/rs6000/sol2.h: Don't include sysv4le.h.
9096         * config/rs6000/sysv4le.h: Don't include sysv4.h.
9097         * config/rs6000/t-ppc: Delete.
9098         * config/rs6000/t-ppcgas: Correct comment.
9099         * config/rs6000/t-ppcos: Correct comment.  Don't build
9100         multilibs for -fPIC, rather use -fPIC -mstrict-align
9101         as default.
9102         * config/rs6000/t-ppc: Delete.
9103         * config/rs6000/vxppc.h: Don't include sysv4.h.
9104         * config/rs6000/vxppcle.h: Delete.
9105         * configure.in: Use multiple header files for p2pc ELF targets
9106         powerpc-eabiaix, powerpc-eabisim, powerpc-rtems, powerpcle-eabi,
9107         powerpcle-eabisim, powerpc-elf, powerpcle-elf, powerpc-linux-gnu,
9108         powerpc-linux-gnulibc1, powerpc-sysv, powerpcle-sysv,
9109         powerpc-vxworks, powerpcle-vxworks.  Assume GAS functionality is
9110         always available for these platforms.
9111
9112 2000-04-04  Richard Henderson  <rth@cygnus.com>
9113
9114         * calls.c (try_to_integrate): Initialize reg_parm_stack_space.
9115
9116 2000-04-04  Stan Cox  <scox@cygnus.com>
9117
9118         * Makefile.in: Add rules for regrename.o
9119         * regrename.c: New file.
9120         * rtl.h (regrename_optimize): Add prototype.
9121         * toplev.c (rename_registers_dump, flag_rename_registers): New variables
9122         (compile_file, decode_d_option): Add support for -frename-registers.
9123         (rest_of_compilation): Call regrename_optimize.
9124         * config/ia64/ia64.h (HARD_REGNO_RENAME_OK, RENAME_EXTENDED_BLOCKS):
9125         New macros.
9126
9127 2000-04-04  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
9128
9129         * Makefile (gccbug): New target.
9130         (doc): Depend on it.
9131         * gcc.texi (Bugs): Link subnodes.
9132         (gccbug): New node.
9133         * gccbug.in (CATEGORIES): Remove gc, host, profiling, libgcc.
9134         Document severities, priorities, and classes in bug form.
9135
9136 2000-04-04  Zack Weinberg  <zack@wolery.cumb.org>
9137
9138         * cpplex.c (trigraph_map, speccase): Combine into single
9139         table, chartab.
9140         (NORMAL, NONTRI): New macros.
9141         (_cpp_read_and_prescan): Change to use unified table.  Use
9142         is_hspace to test for whitespace.
9143
9144         * dbxout.c (CONTIN): If it doesn't have to do anything, give it a
9145         definition that doesn't provoke the "empty body in an
9146         if-statement" warning.
9147
9148 2000-04-04  Clinton Popetz  <cpopetz@cygnus.com>
9149
9150         * builtins.c (expand_builtin_strlen): Force the source to
9151         be a memory address.
9152
9153 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9154
9155         * cpplib.c (D): Adjust to call CONCAT2 macro without whitespace.
9156
9157 Tue Apr  4 19:17:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
9158
9159         * calls.c (ECF_MALLOC, ECF_MAY_BE_ALLOCA, ECF_RETURNS_TWICE,
9160          ECF_LONGJMP, ECF_FORK_OR_EXEC):  New constants.
9161         (ECF_IS_CONST): Rename to ECF_CONST.
9162         (special_function_p): Make static, change interface.
9163         (flags_from_decl_or_type, try_to_integrate): Break out from ...
9164         (expand_call) ... here; convert number of variables to flags.
9165         (emit_library_call_vlue_1): Likewise.
9166         (setjmp_call_p): New function.
9167         (initialize_argument_information): Accepts flags as argument;
9168         return flags.
9169         (precompute_arguments): Likewise.
9170         * tree.h (special_function_p): Remove.
9171         (setjmp_call_p): Add prototype.
9172
9173 2000-04-04  Jakub Jelinek  <jakub@redhat.com>
9174
9175         * config/sparc/sparc.h (RTX_OK_FOR_OFFSET_P): Leave minor margin
9176         so that addresses are offsetable by up to 16 bytes.
9177         (GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+REG addresses for
9178         non-optimizing TARGET_ARCH32 in DF or DI modes because it is not
9179         offsetable.
9180
9181         * config/sparc/sparc.md (movdi_insn_sp64_novis): New pattern.
9182         (movdi_insn_sp64_vis): Renamed from movdi_insn_sp64.
9183         (movsf): Don't force any constant to memory if target is integer
9184         hard register.
9185         Move fp_zero_operand check below the const0_rtx check.
9186         (movtf): Likewise. Also allow fp_zero_operand for stores into
9187         memory.
9188         (movdf): Likewise. Also allow fp_zero_operand for stores into
9189         memory and into integer hard registers.
9190         (clear_df, clear_dfp, movdf_const_intreg_sp32,
9191         movdf_const_intreg_sp64): Remove.
9192         (movdf_insn_sp32, movdf_no_e_insn_sp32): Redo constraints and
9193         conditions.
9194         (movdf_no_e_insn_v9_sp32): New pattern.
9195         (movdf_insn_v9only): Remove.
9196         (movdf_insn_v9only_novis, movdf_insn_v9only_vis): New patterns.
9197         (movdf_insn_sp64): Remove.
9198         (movdf_insn_sp64_novis, movdf_insn_sp64_vis): New patterns.
9199         (movdf_no_e_insn_sp64): Allow storing 0.0 into memory.
9200         (following splits): Rewrite conditions. Add two new splits
9201         for storing 0.0 into memory and registers.
9202         (clear_tf, clear_tf+1, clear_tfp, clear_tfp+1): Remove.
9203         (movtf_insn_sp32): Redo constraints and conditions.
9204         (movtf_insn_vis_sp32): New pattern.
9205         (movtf_no_e_insn_sp32): Redo constraints and conditions.
9206         (movtf_insn_hq_sp64): Likewise.
9207         (movtf_insn_hq_vis_sp64): New pattern.
9208         (movtf_insn_sp64): Redo constraints and conditions.
9209         (movtf_insn_vis_sp64): New pattern.
9210         (movtf_no_e_insn_sp64): Redo constraints and conditions.
9211         (movtf_no_e_insn_sp64+1): New split for storing 0.0L into registers
9212         or memory.
9213         * config/sparc/sparc.c (sparc_override_options): Assume v9 if either
9214         -mvis or -m64 to take down the number of various reload patterns.
9215
9216 Tue Apr  4 00:41:53 2000  Jeffrey A Law  (law@cygnus.com)
9217
9218         * pa/pa-64.h: New file.
9219         * pa/pa64-regs.h: New file.
9220         * pa/pa64-start.h: New file.
9221         * pa/t-pa64: New file.
9222         * pa/xm-pa64hpux.h: New file.
9223
9224 2000-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9225
9226         * sparc.c (output_restore_regs): Prototype.
9227         (sparc_emit_float_lib_cmp): Constification.
9228
9229         * emit-rtl.c (const_int_htab_hash, const_int_htab_eq): Likewise.
9230
9231         * reload1.c (reload_cse_delete_noop_set, reload_cse_simplify):
9232         Prototype.
9233
9234         * simplify-rtx.c (entry_and_rtx_equal_p): Constification.
9235         (get_value_hash, hash_rtx): Likewise.
9236
9237         * ssa.c (compute_conservative_reg_partition): Prototype.
9238
9239         * tree.c (mark_hash_entry): Prototype.
9240
9241 2000-04-03  Zack Weinberg  <zack@wolery.cumb.org>
9242
9243         * bb-reorder.c (verify_insn_chain): #ifdef out unless ENABLE_CHECKING.
9244         * i386.h (FUNCTION_ARG_REGNO_P): Remove unnecessary test for N >= 0.
9245         * i386.md (call_value, call_value_pop): Remove unused variable 'addr'.
9246
9247         * gcc.c (C specs): Pass -fno-show-column to the preprocessor.
9248         * objc/lang-specs.h: Likewise.
9249
9250 2000-04-03  Neil Booth  <NeilB@earthling.net>
9251
9252         * cppexp.c: wrap long lines.  New macros CPP_ICE, SYNTAX_ERROR
9253         and SYNTAX_ERROR2. Replace `' in messages with ''.
9254         (op_to_str): Make re-entrant.
9255         (_cpp_parse_expr): Implement new error macros. Use | rather
9256         than || to logically or 2 boolean integers.  Simply expression
9257         checking we have a left operand iff needed.
9258
9259 2000-04-03  Nick Clifton  <nickc@cygnus.com>
9260
9261         * Makefile.in (diagnostic.o): Depend upon diagnostic.c
9262
9263 2000-04-03  Philip Blundell  <philb@gnu.org>
9264
9265         * config/arm/linux-elf.h (SUBTARGET_EXTRA_LINK_SPEC): Fix typos.
9266
9267 2000-04-03  Felix Lee  <flee@cygnus.com>
9268
9269         * fixinc/server.c (find_shell): New function.  Avoid $SHELL.
9270         (run_shell): Use it.
9271
9272 2000-04-03  Jonathan Larmour  <jlarmour@redhat.co.uk>
9273
9274         * Makefile.in (stmp-int-hdrs): Make include subdir here...
9275         (stmp-fixproto): ...rather than here.
9276
9277 Mon Apr  3 00:50:06 2000  Jason Eckhardt <jle@cygnus.com>
9278
9279         * pa.c (print_operand): Compute 'base' only inside the code paths
9280         that use it.
9281
9282 2000-04-03  Geoffrey Keating  <geoffk@cygnus.com>
9283
9284         * stor-layout.c (byte_from_pos): Use TRUNC_DIV_EXPR rather than
9285         CEIL_DIV_EXPR.
9286
9287 2000-04-03  Philipp Thomas  <pthomas@suse.de>
9288
9289         * i386.h (TARGET_SWITCHES): Remove bogus empty strings, fix typo.
9290
9291 Mon Apr  3 00:02:59 2000  Brad Lucier <lucier@math.purdue.edu>
9292
9293         * Makefile.in (alias.o): Depend on $(TREE_H).
9294
9295 2000-04-02  Zack Weinberg  <zack@wolery.cumb.org>
9296
9297         * cppinit.c (cpp_start_read): Turn off -Wtraditional if
9298         processing C++.
9299         * cpplib.c (_cpp_handle_directive): Improve warnings for
9300         traditional C and indented directives.
9301
9302         * enquire.c, gsyslimits.h, limity.h, config/convex/fixinc.convex,
9303         fixinc/fixinc.irix, fixinc/fixinc.sco, fixinc/fixinc.wrap,
9304         fixinc/inclhack.def: Indent the # of #include_next one space.
9305         * cp/rtti.c: Un-indent #if and #endif.
9306
9307         * cppexp.c (_cpp_parse_expr): If lex returns '#', it's a
9308         syntax error, but an error has already been printed.
9309         * cpplex.c (_cpp_parse_assertion): Give a more specific error
9310         message when called with nothing remaining on the line.
9311         (_cpp_lex_token): If _cpp_parse_assertion fails, return an
9312         OTHER token, not an ASSERTION.
9313         * cpplib.c (do_assert): When we create a 'base' node, clear
9314         its aschain pointer.
9315
9316 2000-04-02  Neil Booth <NeilB@earthling.net>
9317
9318         * cppexp.c:  New typedef op_t.  struct operation and struct
9319         token updated to use it.
9320         (op_to_str): New function.
9321         (_cpp_parse_expr): Error messages modified to use op_to_str.
9322
9323 2000-04-02  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9324
9325         * config/c4x/c4x.c (c4x_function_arg): Check for void_type_node
9326         before checking MUST_PASS_IN_STACK.
9327
9328 2000-04-02  Neil Booth <NeilB@earthling.net>
9329
9330         * cppexp.c:  New FINISHED dummy token.  Combine operator initial
9331         flags and initial priority into a single constant.  New
9332         EQUALITY macro.  New operator flag SHORT_CIRCUIT.
9333         (_parse_cpp_expr): Implement new constants.  Take left operand
9334         checks out of reduction loop.  Handle SHORT_CIRCUIT.  End of
9335         parse indicated by reducing FINISHED token.  Remove new lines
9336         from cpp_error messages.
9337
9338 2000-04-01  Mark Mitchell  <mark@codesourcery.com>
9339
9340         * emit-rtl.c (gen_rtx_CONST_INT): Create cached CONST_INTs on the
9341         permanent obstack.
9342
9343 2000-04-01  Zack Weinberg  <zack@wolery.cumb.org>
9344
9345         * cpplib.c: Include symcat.h.  Add 'origin' field to struct
9346         directive.  Add origin values to DIRECTIVE_TABLE.  Generate
9347         the strings and function names on the fly.  Take the #sccs
9348         entry out of the table if SCCS_DIRECTIVE is not defined.
9349         (_cpp_handle_directive): Decide if the # was at the beginning
9350         of the line here.  Issue -pedantic warnings for extended
9351         directives here.  Warn about K+R directives with the #
9352         indented, and C89/extended directives with the # not indented,
9353         here.
9354         (do_import, do_include_next, do_warning, do_ident, do_sccs,
9355         do_assert, do_unassert): Don't issue pedantic warning here.
9356
9357         * cpphash.h: Add CPP_WTRADITIONAL macro.
9358         * cpplib.h (struct cpp_options): Rename warn_stringify to
9359         warn_traditional; update comments.
9360         * cppinit.c (handle_option): Set warn_traditional not
9361         warn_stringify.
9362         * cpphash.c: Replace CPP_OPTION (pfile, warn_stringify) with
9363         CPP_WTRADITIONAL (pfile).
9364         * cpplex.c (_cpp_lex_token): Don't decide if directives should
9365         be ignored in -traditional mode here.
9366
9367         * cpplex.c: Copy ISTABLE macros from cppinit.c, and adapt them
9368         to initialize speccase[] and trigraph_map[].  Delete all
9369         references to pfile->input_speccase.  Always treat '?' as a
9370         special character.  Remove table-initialization code from
9371         _cpp_init_input_buffer.
9372
9373         * cpplib.h (struct cpp_reader): Remove input_speccase field.
9374         * cppinit.c (cpp_cleanup): Don't free input_speccase.
9375
9376 2000-04-01  Richard Henderson  <rth@cygnus.com>
9377
9378         * Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once.
9379         (mostlyclean): Likewise.
9380
9381         * toplev.c (rtl_dump, jump_opt_dump, etc): Remove.
9382         (struct dump_file_info, enum dump_file_index, dump_file): New.
9383         (open_dump_file): Take a dump_file_index not a suffix, and a decl
9384         not a string.  Clean out file if we havn't yet done so.  Do nothing
9385         if the dump isn't enabled.
9386         (close_dump_file): Do nothing if the dump isn't open.  Dump
9387         graph data if requested.
9388         (dump_rtl, clean_dump_file): Remove.
9389         (compile_file): Don't clean the dump files.  Only finalize .bp dump
9390         if flag_test_coverage or flag_branch_probabilities.  Only finalize
9391         .combine dump if optimizing.  Iterate over dump_file to finalize the
9392         graph dumps.
9393         (rest_of_compilation): Update for open_dump_file/close_dump_file.
9394         Convert all uses of dump_rtl.
9395         (decode_d_option): Iterate over dump_file to implement 'a' and to
9396         locate pass-specific dumps.
9397
9398 2000-04-01  Neil Booth <NeilB@earthling.net>
9399
9400         * cppexp.c: Redefine priority constants.
9401         (_cpp_parse_expr): Replace left and right priority scheme with
9402         single priority logic.  Move LOGICAL to same place as COMPARE.
9403         Remove bogus check for multiple unary +/- operators.
9404
9405 2000-04-01  Neil Booth <NeilB@earthling.net>
9406
9407         * cppexp.c: (_cpp_parse_expr): Numerical constants are pushed
9408         within the switch statement.  Binary operations break out of
9409         the switch naturally.  '(' tokens handled by forcing
9410         immediate shift.  ')' handled by forcing immediate reduce to
9411         the previous '('.  New error messages.
9412
9413 2000-03-31  Geoff Keating  <geoffk@cygnus.com>
9414
9415         * config/rs6000/rs6000.c (print_operand): Don't use %l for 'low
9416         part', it's already in use.  Use %K instead.  Add a return at the
9417         end of what is now %K.
9418         * config/rs6000/rs6000.md (elf_low): Use %K instead of %l.
9419
9420 Sat Apr  1 02:05:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
9421
9422         * builtins.c  (expand_builtin_apply):  Pass proper parameters to
9423         allocate_dynamic_stack_space.
9424         * calls.c (emit_call_1):  Do not adjust stack pointer for SIB,
9425         update stack_pointer_delta; do not update arg_size_so_far.
9426         (compute_argument_block_size): Use stack_delta instead of
9427         stack_pointer_pending and arg_size_so_far.
9428         (expand_call): Add sanity checking for stack_pointer_delta;
9429         save and restore stack_pointer_delta for SIB, use
9430         stack_pointer_delta for alignment; do not update arg_space_so_far.
9431         (emit_library_call_value): Use stack_pointer_delta for alignment.
9432         (store_one_arg): Do not update arg_space_so_far.
9433         * explow.c (adjust_stack, anti_adjust_stack): Update
9434         stack_pointer_delta.
9435         (allocate_dynamic_stack_space): Add sanity checking for
9436         stack_pointer_delta.
9437         * expr.c (init_expr, clear_pending_stack_adjust): Clear
9438         stack_pointer_delta.
9439         (emit_push_insn): Update stack_pointer_delta.
9440         * function.h (struct expr_status): Add x_stack_pointer_delta;
9441         remove x_arg_space_so_far.
9442         (arg_space_so_far): Remove.
9443         (stack_pointer_delta): New macro.
9444
9445 2000-03-31  Zack Weinberg  <zack@wolery.cumb.org>
9446
9447         * cpplib.h: Merge struct cpp_options into struct cpp_reader.
9448         Reorder struct cpp_options and struct cpp_reader for better
9449         packing.  Replace CPP_OPTIONS macro with CPP_OPTION which
9450         takes two args.  Change all 'char' flags to 'unsigned char'.
9451         Move show_column flag into struct cpp_options.  Don't
9452         prototype cpp_options_init.
9453         * cpphash.h, cpperror.c, cppexp.c, cppfiles.c, cpphash.c,
9454         cppinit.c, cpplex.c, cpplib.c:
9455         Replace CPP_OPTIONS (pfile)->whatever with
9456         CPP_OPTION (pfile, whatever), and likewise for
9457         opts = CPP_OPTIONS (pfile); ... opts->whatever;
9458
9459         * cppinit.c (merge_include_chains): Take a cpp_reader *.
9460         Extract CPP_OPTION (pfile, pending) and work with that
9461         directly.
9462         (cpp_options_init): Delete.
9463         (cpp_reader_init): Turn on on-by-default options here.
9464         Allocate the pending structure here.
9465         (cl_options, enum opt_code): Define these from the same table,
9466         kept in a large macro.  Add -fshow-column and -fno-show-column
9467         options.
9468
9469         * cpperror.c (v_message): If show_column is off, don't print
9470         the column number.
9471
9472         * cppmain.c: Update for new interface.
9473         * fix-header.c: Likewise.
9474
9475 2000-03-30  Geoff Keating  <geoffk@cygnus.com>
9476
9477         * config/rs6000/t-aix43 (AR_FLAGS_FOR_TARGET): Adjust for new
9478         definition.
9479         * Makefile.in (AR_FLAGS_FOR_TARGET): Is now the flags that
9480         are passed to any invocation of AR_FOR_TARGET.
9481         (AR_CREATE_FOR_TARGET): New macro.
9482         (AR_EXTRACT_FOR_TARGET): New macro.
9483         (ORDINARY_FLAGS_TO_PASS): Add AR_CREATE_FOR_TARGET,
9484         AR_EXTRACT_FOR_TARGET.
9485         (many places): Use AR_CREATE_FOR_TARGET, AR_EXTRACT_FOR_TARGET
9486         in place of `$(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET)' and
9487         `$(AR_FOR_TARGET) x'.  Pass AR_CREATE_FOR_TARGET and
9488         AR_EXTRACT_FOR_TARGET to sub-makes.
9489
9490 2000-03-31  Neil Booth <NeilB@earthling.net>
9491
9492         * cppexp.c: Delete SKIP_OPERAND.  Correct priority
9493         PAREN_INNER_PRIO.
9494         (_cpp_parse_expr): Check for multiple unary +/- operators.
9495         Correct priorities of ':' and '?'.  Treat ')' as having a
9496         value.  Ensure conditional expression is not void.
9497
9498 2000-03-31  Mark Mitchell  <mark@codesourcery.com>
9499
9500         * alias.c (canon_rtx): Make it global.
9501         (rtx_equal_for_memref_p): CONST_INT equality is now pointer
9502         equality.
9503         * cse.c (struct table_elt): Add canon_exp.
9504         (insert): Clear it.
9505         (invalidate): Canonicalize expressions only once.
9506         * rtl.h (canon_rtx): Declare.
9507
9508 2000-03-30  Mark Mitchell  <mark@codesourcery.com>
9509
9510         * Makefile.in (emit-rtl.o): Depend on HASHTAB_H.
9511         * alias.c (reg_known_value): Add comments.
9512         (init_alias_analysis): Likewise.
9513         * cse.c (exp_equiv_p): CONST_INTs are equal iff they have the same
9514         address.
9515         (cse_basic_block): Fix typo in comment.
9516         * emit-rtl.c: Include hashtab.h.
9517         (const_int_htab): New variable.
9518         (const_int_htab_hash): New function.
9519         (const_int_htab_eq): Likewise.
9520         (rtx_htab_mark_1): Likewise.
9521         (rtx_htab_mark): Likewise.
9522         (gen_rtx_CONST_INT): Cache all CONST_INTs.
9523         (unshare_all_rtx): Fix formatting.
9524         (init_emit_once): Initialize const_int_htab.
9525         * rtl.c (rtx_equal_p): CONST_INTs are equal iff they have the same
9526         address.
9527         * rtl.texi: Document the fact that all CONST_INTs with the same
9528         value are shared.
9529
9530 2000-03-30  Richard Henderson  <rth@cygnus.com>
9531
9532         * alpha.h (FUNCTION_BOUNDARY): Reduce to 128 bits.
9533
9534 2000-03-30  Zack Weinberg  <zack@wolery.cumb.org>
9535
9536         * configure.in: Comment out --enable-c-cpplib stanza.
9537         * configure: Regenerate.
9538
9539 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9540
9541         * expr.c (store_constructor): Properly compute displacement and
9542         alignment when offset is variable.
9543
9544         * expmed.c (store_bit_field, store_fixed_bit_field): Fix more
9545         cases of alignment in bytes.
9546
9547 Thu Mar 30 13:30:40 2000  Jeffrey A Law  (law@cygnus.com)
9548
9549         * c-parse.in (cast_expr): Move change from March 21 into c-parse.in
9550         since it is used to generate c-parse.y.
9551         * objc-parse.c, objc-parse.y: Regenerated.
9552
9553         * function.c (expand_function_end): Pass alignment argument to
9554         emit_block_move in bits, not bytes.
9555
9556 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9557
9558         * expr.c (move_by_pieces_ninsns): Fix one more missing align
9559         correction.
9560
9561         * expmed.c (store_fixed_bit_field): STRUCT_ALIGN is in bits.
9562
9563         * calls.c (expand_call): Pass bit alignment to mark_reg_pointer.
9564         * explow.c (memory_address, allocate_dynamic_stack_space): Likewise.
9565         * function.c (assign_parms): Likewise.
9566         * integrate.c (expand_inline_function): Likewise.
9567         * stmt.c (expand_decl): Likewise.
9568         (copy_rtx_and_substitute): Likewise.
9569         * expr.c (expand_expr, expand_expr_unaligned): Likewise.
9570         (clear_by_pieces): Fix error in last change.
9571         * emit-rtl.c (init_emit): Set known registers alignment in bits.
9572         * function.h (regno_pointer_align): Now unsigned.
9573         * config/arm/arm.c (alignable_memory_operand): REGNO_POINTER_ALIGN
9574         is in bits.
9575         * config/i386/i386.c (aligned_operand): Likewise.
9576         * config/sparc/sparc.c (mem_min_alignment): Likewise.
9577         * config/alpha/alpha.c (aligned_memory_operand): Likewise.
9578         (unaligned_memory_operand): Likewise.
9579         (alpha_expand_block_move, alpha_expand_block_clear): Likewise.
9580         Also make alignments and sizes unsigned and some whitespace cleanup.
9581         (alpha_va_start): Do nothing if VALIST's type is error_mark_node.
9582
9583         * builtins.c (get_pointer_alignment): Use host_integerp & tree_low_cst.
9584         (expand_builtin_apply): Pass alignment to emit_block_move in bits.
9585         (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
9586         (expand_builtin_memset): Likewise, but to clear_storage.
9587         * calls.c (save_fixed_argument_area): Likewise, to move_by_pieces.
9588         (restore_fixed_argument_area): Likewise.
9589         (store_unaligned_arguments_into_pseudos): Likewise, to store_bit_field.
9590         (load_register_parameters): Likewise, to emit_group_load.
9591         (expand_call): Likewise, to emit_group_store and emit_block_move.
9592         (emit_library_call_value_1): Likewise, to emit_block_move.
9593         (store_one_arg): Likewise, and to emit_push_insn.
9594         * expmed.c (extract_bit_field): Alignment is in bits, not bytes.
9595         (extract_fixed_bit_field, extract_split_bit_field): Likewise.
9596         * expr.c (move_by_pieces, move_by_pieces_ninsns): Likewise.
9597         (emit_block_move, emit_group_load, emit_group_store): Likewise.
9598         (clear_by_pieces, clear_storage, emit_push_insn): Likewise.
9599         (expand_assigment, store_expr, store_constructor_field): Likewise.
9600         (expand_expr_unaligned, do_jump, do_compare_and_jump): Likewise.
9601         (store_constructor, store_field, get_inner_reference): Likewise.
9602         Use host_integerp and tree_low_cst; sizes and positions HOST_WIDE_INT.
9603         (expand_expr, case COMPONENT_REF): Likewise.
9604         (copy_blkmode_from_regs): Use UNSIGNED_HOST_WIDE_INT for sizes
9605         and positions; reindent code.
9606         * expr.h (emit_cmp_insn, emit_cmp_and_jump_insns): Alignment unsigned.
9607         * function.c (purge_addressof_1): Pass bit align to store_bit_field.
9608         (assign_parms): Likewise to emit_group_store.
9609         * optabs.c (prepare_cmp_insn): Alignment is in bits.
9610         (emit_cmp_and_jump_insns, emit_cmp_insn): Likewise, and also unsigned.
9611         * stmt.c (expand_value_return): Pass align in bits to emit_group_load.
9612         (expand_return): Likewise to {extract,store}_bit_field.
9613         * stor-layout.c (get_mode_alignment): Minor cleanup.
9614         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Align is in bits.
9615         * config/sh/sh.h (MOVE_BY_PIECES_P): Likewise.
9616
9617 2000-03-29  Nick Clifton  <nickc@cygnus.com>
9618
9619         * config/arm/arm.h: Undo effects of previous delta:
9620         (ASM_SPEC): Do not define.
9621         (SUBTARGET_EXTRA_ASM_SPEC): Do not define.
9622
9623         * config/arm/linux-elf.h: (SUBTARGET_EXTRA_ASM_SPEC) Fix
9624         typo.
9625
9626 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
9627
9628         * cppinit.c (cpp_start_read): Call initialize_dependency_output
9629         only after reading in the primary source file.
9630
9631 2000-03-29  Geoff Keating  <geoffk@cygnus.com>
9632
9633         * c-common.c (c_common_nodes_and_builtins): The first parameter to
9634         __builtin_va_start and __builtin_va_copy is now either a 'va_list'
9635         or a reference to a va_list.
9636         * builtins.c (stabilize_va_list): Simplify now we don't have to
9637         work around C array address decay.
9638         * c-typeck.c (convert_for_assignment): Handle assignment to
9639         a reference parameter by taking the address of the RHS.
9640         * ginclude/stdarg.h (va_start): Don't take address of first parameter.
9641         (va_copy): Likewise.
9642         (__va_copy): Likewise.
9643         * ginclude/varargs.h (va_start): Likewise.
9644         (__va_copy): Likewise.
9645
9646 Wed Mar 29 15:44:53 2000  Jeffrey A Law  (law@cygnus.com)
9647
9648         * i386/djgpp.h: Remove extraneous "+".
9649
9650         * stmt.c (stmt_loop_nest_empty): Fix thinko in last change.
9651
9652         * calls.c (expand_call): Fix typo in last change.
9653
9654 2000-03-29  Jason Merrill  <jason@casey.cygnus.com>
9655
9656         * tree.c (unsave_expr_1): Don't mess with a TARGET_EXPR that hasn't
9657         been expanded.
9658
9659 Wed Mar 29 15:39:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9660
9661         * stor-layout.c (bit_from_pos, byte_from_pos): New functions.
9662         (pos_from_byte, pos_from_bit, normalize_offset): Likewise.
9663         (normalize_rli, rli_size_so_far, rli_size_unit_so_far): Use them.
9664         * tree.c (bit_position, byte_position): Likewise.
9665         * tree.h: Declare new functions.
9666
9667 2000-03-29  Nick Clifton  <nickc@cygnus.com>
9668
9669         * config/arm/arm.c: Minor formatting changes/
9670         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
9671         already defined.
9672         (ASM_SPEC): Define if not already defined.
9673
9674 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
9675
9676         * cppfiles.c (cpp_read_file): Don't pass zero-length string to
9677         _cpp_calc_hash.
9678
9679 2000-03-29  Jakub Jelinek  <jakub@redhat.com>
9680
9681         * dwarf2out.c (gen_enumeration_type_die): If enum has a negative
9682         value, don't output it as unsigned.
9683
9684 Wed Mar 29 10:53:49 2000  Jeffrey A Law  (law@cygnus.com)
9685
9686         * stmt.c (stmt_loop_nest_empty): Allow cfun->stmt to be NULL.
9687
9688 2000-03-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9689
9690         * c-common.c (c_common_nodes_and_builtins): Don't special case
9691         cplus_mode when declaring builtin bzero/bcmp, always avoid
9692         prototype arguments.
9693
9694 2000-03-29  Bruce Korb  <bkorb@gnu.org>
9695
9696         * fixinc/mkfixinc.sh: Initially set the variable "fixincludes"
9697         to a non-file
9698
9699 Wed Mar 29 15:08:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
9700
9701         Convert ACCUMULATE_OUTGOING_ARGS to an expression.
9702         * calls.c (PUSH_ARGS_REVERSED) Change to expression.
9703         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default value.
9704         (struct arg_data): Remove #ifdef ACCUMULATE_OUTGOING_ARGS.
9705         (save_fixed_argument_area, restore_fixed_argument_area):
9706         conditionize by #ifdef REG_PARM_STACK_SPACE only.
9707         (emit_call): Change #ifdefs on ACCUMULATE_OUTGOING_ARGS
9708         to conditions, handle RETURN_POPS_ARGS on ACCUMULATE_OUTGOING_ARGS.
9709         (precompute_register_parameters): Avoid #ifdefs on
9710         ACCUMULATE_OUTGOING_ARGS and PUSH_ARGS_REVERSED.
9711         (stire_one_args): Likewise.
9712         (expand_call): Likewise; conditionize PUSH_ROUNDING code by PUSH_ARGS.
9713         (emit_library_call_value_1): Likewise.
9714         (compute_argument_block_size): Align to STACK_BOUNDARY only for
9715         ACCUMULATE_OUTGOING_ARGS.
9716         * combine.c (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default
9717         value.
9718         (nonzero_bits): Conditionize PUSH_ROUNDING code by USE_PUSH.
9719         (use_crosses_set_p): Likewise.
9720         * all targets (ACCUMULATE_OUTGOING_ARGS define): Change to
9721         #define ACCUMULATE_OUTGOING_ARGS 1.
9722         * i386.c (ix86_compute_frame_size): Handle ACCUMULATE_OUTGOING_ARGS
9723         frames.
9724         * i386.h (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS): New
9725         constants.
9726         (TARGET_PUSH_ARGS, TARGET_ACCUMULATE_OUTGOING_ARGS): New macros.
9727         (TARGET_SWITCHES): Add push-args, no-push-args,
9728         accumulate-outgoing-args and no-accumulate-outgoing-args.
9729         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): New macro.
9730         * expr.c (ACCUMULATE_OUTGONG_ARGS, PUSH_ARGS): Provide default.
9731         (push_block): Avoid ifdefs on ACCUMULATE_OUTGONG_ARGS
9732         and PUSH_ROUNDING.
9733         (emit_push_insn): Likewise.
9734         * final.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
9735         (final_scan_insn): Avoid ifdefs on ACCUMULATE_OUTGOING_ARGS.
9736         * function.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
9737         (STACK_DYNAMIC_OFFSET): Define correctly for both
9738         ACCUMULATE_OUTGOING_ARGS and normal mode.
9739         * invoke.texi (-mpush_args, -maccumulate-outgoing-args): Document.
9740         * tm.texi (PUSH_ARGS): Document.
9741         (ACCUMULATE_OUTGOING_ARGS, PUSH_ROUNDING): Update documentation.
9742
9743 Wed Mar 29 11:51:13 MET DST 2000  Jan Hubicka  <jh@suse.cz>
9744
9745         * flags.h (flag_optimize_sibling_calls): Declare.
9746         * calls.c (expand_call): Fail sibcall when
9747         !flag_optimize_sibling_calls
9748         * invoke.texi (flag_optimize_sibling_calls): Document.
9749         * toplev.c (flag_optimize_sibling_calls): New global variable.
9750         (f_options): Add flag_optimize_sibling_calls.
9751         (rest_of_compilation): Conditionize
9752         optimize_sibling_and_tail_recursive_calls by
9753         flag_optimize_sibling_calls.
9754         (main): Set flag_optimize_sibling_calls for -O2.
9755         * stmt.c (expand_return): Conditionize tail recursion by
9756         flag_optimize_sibling_calls.
9757
9758 2000-03-29  Richard Henderson  <rth@cygnus.com>
9759
9760         * config/i386/att.h (LOCAL_LABEL_PREFIX): Define.
9761         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Use it.
9762
9763 2000-03-29  Nathan Sidwell  <nathan@codesourcery.com>
9764
9765         * except.c (add_eh_table_entry): Mark type_info's as referenced.
9766
9767 2000-03-29  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
9768
9769         * config/rs6000/aix41.h (CPP_SPEC): Define _ANSI_C_SOURCE if -ansi
9770         is given.
9771         * config/rs6000/aix43.h (CPP_SPEC): Likewise.
9772         * config/rs6000/rs6000.h (CPP_SPEC): Moved to...
9773         * config/rs6000/aix.h: then modified likewise.
9774
9775 2000-03-28  Richard Henderson  <rth@cygnus.com>
9776
9777         * rtl.h: Redistribute enum reg_note documentation.
9778         Kill trailing whitespace.
9779         * rtl.c (reg_note_name): Adjust to match enum reg_note tweeks.
9780         Kill trailing whitespace.
9781
9782 2000-03-28  Zack Weinberg  <zack@wolery.cumb.org>
9783
9784         * cppfiles.c (hash_IHASH): Just return i->hash.
9785         (cpp_included): Set dummy.hash using _cpp_calc_hash.  Use
9786         htab_find_with_hash.
9787         (cpp_read_file): Likewise.
9788         (find_include_file): Likewise.  Properly initialize
9789         ih->nshort.  Share ih->name and ih->nshort if possible.
9790         * cpphash.c (_cpp_calc_hash): New function.
9791         (hash_HASHNODE): Just return h->hash.
9792         (_cpp_lookup): Set dummy.hash using _cpp_calc_hash.  Use
9793         htab_find_with_hash.
9794         * cpphash.h: Prototype _cpp_calc_hash.
9795         * cppinit.c (initialize_builtins): Provide a valid hash
9796         to _cpp_make_hashnode, using _cpp_calc_hash.
9797
9798         * cpphash.c (collect_expansion): # is not a special character
9799         in object-like macros.  In -traditional mode, /**/ is not
9800         token paste at the beginning or end of the line.
9801         * cpplib.c (do_include, do_import, do_include_next): If
9802         parse_include fails, return immediately.
9803
9804 2000-03-28  Jason Merrill  <jason@casey.cygnus.com>
9805
9806         * config/arm/arm.md (return peepholes): Update to reflect the new
9807         call insn patterns.
9808         * config/arm/arm.c (arm_volatile_func): Also check
9809         current_function_nothrow.
9810         (output_return_instruction, output_func_prologue): Use it.
9811         (arm_output_epilogue, arm_expand_prologue): Likewise.
9812
9813 2000-03-27  Tom Tromey  <tromey@cygnus.com>
9814
9815         * gcc.c (handle_braces): In {x*...} case, break out of loop if
9816         switch is found.
9817
9818 Tue Mar 28 11:55:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9819
9820         * expr.c (store_constructor): SIZE now signed.
9821         For EXPR_SIZE, don't evaluate size; just needed if constant.
9822         * fold-const.c (fold): Fix a number of cases when folded tree is
9823         wrong type.
9824         * function.c (flush_addressof): Reenable.
9825         * tree.h (flush_addressof): Likewise.
9826         * toplev.c (independent_decode_option): Look at strings_processed.
9827         * config/alpha/alpha.h (MINIMUM_ATOMIC_ALIGNMENT): Cast to unsigned.
9828
9829 Tue Mar 28 08:29:46 2000  Jan Hubicka  <jh@suse.cz>
9830
9831         * sibcall.c (indentify_call_return_value): Find last call in the chain;
9832         Allow stack adjustment after function call.
9833
9834         * regmove.c (struct csa_memlist): Make mem field rtx *.
9835         (record_one_stack_ref): Accept rtx * instead of rtx as parameter.
9836         (try_apply_stack_adjustment): Replace whole MEM rtx.
9837         (combine_stack_adjustments_for_block): Update calls
9838         to record_one_stack_ref.
9839
9840 2000-03-28  Neil Booth  <NeilB@earthling.net>
9841
9842         * cpplex.c (_cpp_read_and_prescan): Mark end of input buffer with
9843         '\\' rather than a null character, so nulls are not special.  Fix
9844         "\\\n" handling in end-of-buffer conditions.  Use trigraph map to
9845         speed trigraph conversion.
9846         (_cpp_init_input_buffer): Initialize trigraph map.
9847
9848 2000-03-27  Alan Modra  <alan@linuxcare.com.au>
9849
9850         * config/i386/i386.c (output_387_binary_op): Correct intel
9851         mode assembly output, and add spaces after commas in AT&T
9852         output.  Correct Unixware assembler comment.  Document input
9853         constraints.  Comment fp operations.  Reduce profligate buffer
9854         size.  Remove extraneous abort.  Localize temp var.
9855         (SYSV386_COMPAT): Define.  Add !SYSV386_COMPAT code.
9856         (output_fix_trunc): Add spaces after commas in assembly output.
9857
9858 2000-03-27  Richard Henderson  <rth@cygnus.com>
9859
9860         * i386-protos.h (ix86_match_ccmode): Declare.
9861         * i386.c (ix86_match_ccmode): New.
9862         (ix86_expand_fp_compare): Update for pattern renames.
9863         (ix86_expand_strlensi_unroll_1): Likewise.
9864         * i386.h (EXTRA_CC_MODES): Add CCZ.
9865         (SELECT_CC_MODE): Use it for EQ/NE zero.
9866         * i386.md (cmpsi_ccz_1): New.
9867         (cmpqi_ccz_1): New.
9868         (*testsi_ccz_1): New.
9869         (testqi_ccz_1): New.
9870         (cmpsi_ccno_1): Rename from cmpsi_0.
9871         (testsi_ccno_1): Rename from testsi_1.
9872         (testqi_ccno_1): Rename from testqi_1.
9873         (*testqi_ext_ccz_0): Rename from testqi_ext_0.
9874         (testqi_ext_ccno_0): Rename from *testqi_ext_1.
9875         (*cmphi_0): Use ix86_match_ccmode.
9876         (*cmpqi_ext_2, *addsi_2, *addhi_2, *addqi_2): Likewise.
9877         (*subsi_2, *subhi_2, *subqi_2, *testhi_1): Likewise.
9878         (*testqi_ext_1, *testqi_ext_2, *testqi_ext_3): Likewise.
9879         (*andsi_2, *andhi_2, *andqi_2, *andqi_ext_0_cc): Likewise.
9880         (*iorsi_2, *iorhi_2, *iorqi_2): Likewise.
9881         (*xorsi_2, *xorhi_2, *xorqi_cc_1): Likewise.
9882         (*one_cmplsi2_2, *one_cmplhi2_2, *one_cmplqi2_2): Likewise.
9883         (*ashlsi3_cmpno, *ashlhi3_cmpno, *ashlqi3_cmpno): Likewise.
9884         (*ashrsi3_cmpno, *ashrhi3_cmpno, *ashrqi3_cmpno): Likewise.
9885         (*lshrsi3_cmpno, *lshrhi3_cmpno, *lshrqi3_cmpno): Likewise.
9886         (appropriate peepholes): Likewise.
9887         (*cmphi_1, *cmpqi_ccno_1, *cmpqi_1): Star out name.
9888         (*subsi_3, *subhi_3, *subqi_3): Remove.
9889         (*negdi2_1+1 splitter): Use CCZ for neg patterns.
9890         (*negsi2_cmp, *neghi2_cmp, *negqi2_cmp): Remove.
9891         (*negsi2_cmpz): Rename from *negsi2_cmpno, use CCZ.
9892         (*neghi2_cmpz, *negqi2_cmpz): Similarly.
9893         (x86_shift_adj_1): Use CCZ.
9894         (*dbra_ge+1, *dbra_ge+2, ffssi2, ffssi_1): Likewise.
9895
9896 2000-03-27  Stan Cox  <scox@cygnus.com>
9897
9898         * resource.h (mark_resource_type): New.
9899         * resource.c (find_dead_or_set_registers, mark_target_live_regs,
9900         find_free_register): Use mark_resource_type.
9901         (mark_set_resources): Change include_delayed_effects
9902         to mark_resource_type.
9903         * reorg.c (steal_delay_list_from_target, try_merge_delay_insns,
9904         redundant_insn, fill_simple_delay_slots, fill_slots_from_thread):
9905         Use mark_resource_type.
9906
9907 2000-03-27  Richard Henderson  <rth@cygnus.com>
9908
9909         * i386.md (call_pop_0, call_value_pop_0): New.
9910         (call_pop_1): Remove constraint from unused arg.  Support sibcalls.
9911         (call_value_pop_1): Likewise.
9912         (call_0, call_value_0): New.
9913         (call_1, call_value_1): Remove constraint from unused arg.
9914
9915 2000-03-27  Nick Clifton  <nickc@cygnus.com>
9916
9917         * invoke.texi (Spec Files): Document new spec % command created by
9918         Tom Tromey's recent patch.
9919
9920 2000-03-27  Jakub Jelinek  <jakub@redhat.com>
9921
9922         * libgcc2.h (MIN_UNITS_PER_WORD): Define to UNITS_PER_WORD
9923         if not defined.
9924
9925 Mon Mar 27 06:04:22 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9926
9927         * expr.c (expand_assignment): Fix typo in last change.
9928
9929         * libgcc2.h: Use MIN_UNITS_PER_WORD, not UNITS_PER_WORD.
9930
9931 Sun Mar 26 20:15:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9932
9933         * c-convert.c (convert): Return if output or input type is ERROR_MARK.
9934         * c-decl.c (duplicate_decls): Only look at DECL_BUILT_IN_NONANSI
9935         and DECL_INLINE if FUNCTION_DECL.
9936         (pushdecl, redeclaration_error_message): Likewise, for DECL_INLINE.
9937         (store_parm_decls): Check for type of PARM_DECL being ERROR_MARK.
9938         Use DECL_WEAK, not DECL_RESULT, to flag for already seen.
9939         (combine_parm_decls): Likewise.
9940         * ggc-common.c (gcc_mark_tree_children, case 'd'): Use DECL_RESULT_FLD.
9941         * print-tree.c (print_node): Likewise.
9942         Only test DECL_PACKED, DECL_INLINE, DECL_BIT_FIELD, and
9943         DECL_TRANSPARENT_UNION on proper decl types.
9944         Properly handly DECL_INCOMING_RTL and DECL_SAVED_INSNS.
9945         * stor-layout.c (layout_decl): Only check DECL_PACKED and
9946         DECL_BIT_FIELD of FIELD_DECL.
9947         * tree.h (DECL_RESULT_FLD): New macro.
9948
9949         * expr.c (expand_assignment): Add code to handle variable-sized
9950         BLKmode case.
9951
9952 2000-03-26  Richard Henderson  <rth@cygnus.com>
9953
9954         * calls.c (expand_call): Pass parms not original exp to
9955         optimize_tail_recursion.  Mind return value instead of looking
9956         for a barrier.
9957         * stmt.c (optimize_tail_recursion): Take parameter list, not entire
9958         call_expr.  Move checks for call_expr and current_function_decl ...
9959         (expand_return): ... here.
9960
9961 2000-03-26  Tom Tromey  <tromey@cygnus.com>
9962
9963         * gcc.c (handle_braces): Recognize `%{<S}' construct.
9964         (SWITCH_OK, SWITCH_FALSE, SWITCH_IGNORE, SWITCH_LIVE): New
9965         defines.
9966         (process_command): Use them.
9967         (check_live_switch): Likewise.
9968         (give_switch): Skip ignored switches.
9969
9970 2000-03-26  Jan Hubicka  <jh@suse.cz>
9971
9972         * jump.c (jump_optimize_1): Fix typo in elide optimizations
9973         for minimal jump pass test.
9974
9975 2000-03-26  Mark Mitchell  <mark@codesourcery.com>
9976
9977         * integrate.c (function_cannot_inline_p): Do inline functions that
9978         return `void'.
9979
9980 Sun Mar 26 11:37:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9981
9982         * stor-layout.c (layout_type, set_sizetype): early_type_list is
9983         now a list of TREE_LIST entries, not types.
9984         * tree.c (build_common_tree_nodes_2): Eliminate dupliate type sets.
9985
9986         * expmed.c (extract_bit_field): Ensure BITS_PER_WORD is signed in MAX.
9987         * config/arm/pe.c (arm_pe_return_in_memory): Use host_integerp and
9988         int_bit_position.
9989         * config/mips/mips.c (function_arg): Likewise; also remove cast
9990         and make variables unsigned or HOST_WIDE_INT and use tree_low_cst.
9991         (mips_function_value): Use int_byte_position and make HOST_WIDE_INT.
9992         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Offsets are unsigned.
9993         * config/mips/mips.h (BITS_PER_WORD, UNITS_PER_WORD): Cast to unsigned.
9994         (UNITS_PER_FPREG, INT_TYPE_SIZE, LONG_TYPE_SIZE): Likewise.
9995         (POINTER_SIZE, POINTER_BOUNDARY,PARM_BOUNDARY): Likewise.
9996         (GP_REG_P, FP_REG_P, MD_REG_P, ST_REG_P): Ensure subtraction signed.
9997         (struct mips_arg): arg_number, arg_words, fp_arg_words, and
9998         num_adjusts now unsigned.
9999         (FUNCTION_ARG_BOUNDARY): Remove unneeded cast.
10000         * config/sparc/sparc.c (struct function_arg_record_value_parms):
10001         NREGS now unsigned.
10002         (function_arg_record_value_1): STARTBITPOS arg now HOST_WIDE_INT
10003         as is BITPOS variable; use host_integerp and int_bit_position.
10004         (function_arg_record_value_2): Likewise.
10005         (function_arg_record_value_3): Arg BITPOS now HOST_WIDE_INT.
10006         Variable REGNO now unsigned.
10007         (function_arg_record_value): NREGS now unsigned.
10008
10009 2000-03-26  Bernd Schmidt  <bernds@cygnus.co.uk>
10010
10011         * jump.c (mark_all_labels): Handle CALL_PLACEHOLDERs.
10012
10013 Sat Mar 25 09:12:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10014
10015         * Rework fields used to describe positions of bitfields and
10016         modify sizes to be unsigned and use HOST_WIDE_INT.
10017         * alias.c (reg_known_value_size): Now unsigned.
10018         * c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position.
10019         (really_start_incremental_init): Use bitsize_zero_node.
10020         (push_init_level, pop_init_level, output_init_element): Likewise.
10021         Use bitsize_unit_node and bitsize_one_node.
10022         (output_pending_init_elements, process_init_element): Likewise.
10023         * combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned.
10024         (make_extraction): Position and length HOST_WIDE_INT and unsigned
10025         HOST_WIDE_INT, respectively.
10026         (get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT.
10027         (num_sign_bit_copies): Returns unsigned.
10028         BITWIDTH now unsigned; rework arithmetic.
10029         Remove recursive call from arg to MAX.
10030         (combine_instructions, init_reg_last_arrays): NREGS now unsigned.
10031         (setup_incoming_promotions, can_combine_p, try_combine, simplify_set):
10032         REGNO now unsigned.
10033         (set_nonzero_bit_and_sign_copies): NUM now unsigned.
10034         (find_split_point, expand_compound_operation, make_extraction): LEN
10035         now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT.
10036         (make_field_assignment): Likewise.
10037         (combine_simplify_rtx): Add cast.
10038         (expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic.
10039         (force_to_mode): WIDTH now unsigned; add cast.
10040         (if_then_else_cond): SIZE now unsigned.
10041         (nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned.
10042         (extended_count): Now returns unsigned.
10043         (simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT.
10044         Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned.
10045         (simplify_comparison): MODE_WIDTH now unsigned.
10046         (update_table_tick): REGNO and ENDREGNO now unsigned; new var R.
10047         (mark_used_regs_combine): Likewise; rework arithmetic.
10048         (record_value_for_reg): REGNO, ENDREGNO, and I now unsigned.
10049         (record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise.
10050         (record_promoted_value): REGNO now unsigned.
10051         (get_last_value_validate): REGNO, ENDREGNO, and J now unsigned.
10052         (get_last_value): REGNO now unsigned.
10053         (use_crosses_set_p): REGNO and ENDREGNO now unsigned.
10054         (reg_dead_regno, reg_dead_endregno): Now unsigned.
10055         (remove_death): Arg REGNO now unsigned.
10056         (move_deaths):  REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned.
10057         (reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO
10058         now unsigned.
10059         * convert.c (convert_to_integer): INPREC and OUTPREC now unsigned.
10060         * cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned.
10061         (struct cse_reg_info): REGNO now unsigned.
10062         (cached_regno): Now unsigned.
10063         (REGNO_QTY_VALID_P): Add cast.
10064         (make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned.
10065         (remove_invalid_regs): Likewise.
10066         (remove_invalid_subreg_refs): Likewise; arg WORD also unsigned
10067         as are variables END and I.
10068         (get_cse_reg_info, insert): Likewise.
10069         (mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned.
10070         (canon_hash): Likewise.
10071         (insert_regs, lookup_for_remove): REGNO now unsigned.
10072         (invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned.
10073         New variable RN.
10074         * dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0.
10075         * dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast.
10076         * emit-rtl.c (subreg_realpart_p): Add cast.
10077         (operand_subword): Arg I is now unsigned as is var PARTWORDS.
10078         (operand_subword_force): Arg I is now unsigned.
10079         * except.c (eh_regs): Variable I is now unsigned.
10080         * explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT.
10081         * expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT;
10082         length is unsigned HOST_WIDE_INT; likewise for internal variables.
10083         (store_split_bit_field, extract_fixed_bit_field): Likewise.
10084         (extract_split_bit_field, store_bit_field, extract_bit_field):
10085         Likewise.
10086         * expr.c (store_constructor_fields, store_constructor, store_field):
10087         Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT.
10088         (expand_assignment, expand_expr, expand_expr_unaligned): Likewise.
10089         (do_jump): Likewise.
10090         (move_by_pieces, move_by_pieces_ninsns, clear_by_pieces):
10091         MAX_SIZE is now unsigned.
10092         (emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned.
10093         (emit_group_store): Likewise.
10094         (emit_move_insn): I now unsigned.
10095         (store_constructor): Use host_integerp, tree_low_cst, and
10096         bitsize_unit_node.
10097         (get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT.
10098         Rework all calculations to use trees and new fields.
10099         * expr.h (promoted_input_arg): Regno now unsigned.
10100         (store_bit_field, extract_bit_field): Adjust types of pos and size.
10101         (mark_seen_cases): Arg is HOST_WIDE_INT.
10102         * flow.c (verify_wide_reg_1): REGNO now unsigned.
10103         * fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT;
10104         precisions and alignments are unsigned.
10105         (optimize_bit_field_compare, fold_truthop): Likewise.
10106         (int_const_binop): Adjust threshold for size_int_type_wide call.
10107         (fold_convert): Likewise.
10108         (size_int_type_wide): Make table larger and fix thinko that only
10109         had half of table used.
10110         (all_ones_mask_p, fold): Precisions are unsigned.
10111         * function.c (put_reg_info_stack): REGNO is unsigned.
10112         (instantiate_decl): Size is HOST_WIDE_INT.
10113         (instantiate_virtual_regs): I is unsigned.
10114         (assign_parms): REGNO, REGNOI, and REGNOR are unsigned.
10115         (promoted_input_arg): REGNO is unsigned.
10116         * function.h (struct function): x_max_parm_reg is now unsigned.
10117         * gcse.c (max_gcse_regno): Now unsigned.
10118         (struct null_pointer_info): min_reg and max_reg now unsigned.
10119         (lookup_set, next_set): REGNO arg now unsigned.
10120         (compute_hash_table): REGNO and I now unsigned.
10121         (handle_avail_expr): regnum_for_replacing now unsigned.
10122         (cprop_insn): REGNO now unsigned.
10123         (delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned.
10124         * ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case.
10125         * global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned.
10126         * hard-reg-set.h (reg_class_size): Now unsigned.
10127         * integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO.
10128         * jump.c (mark_modified_reg): I now unsigned; add cast.
10129         (rtx_equal_for_thread_p): Add cast.
10130         * loop.c (max_reg_before_loop): Now unsigned.
10131         (struct_movable): REGNO now unsigned.
10132         (try_copy_prop): REGNO arg unsigned.
10133         (regs_match_p): XN and YN now unsigned.
10134         (consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned.
10135         (strength_reduce): Likewise; NREGS also unsigned.
10136         (first_increment_giv, last_increment_giv unsigned): Now unsigned.
10137         * loop.h (struct iv_class): REGNO now unsigned.
10138         (max_reg_before_loop, first_increment_giv, last_increment_giv):
10139         Now unsigned.
10140         * machmode.h (mode_size, mode_unit_size): Now unsigned.
10141         (mode_for_size, smallest_mode_for_size): Pass size as unsigned.
10142         * optabs.c (expand_binop): I and NWORDS now unsigned.
10143         (expand_unop): I now unsigned.
10144         * print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do
10145         print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET.
10146         * real.c (significand_size): Now returns unsigned.
10147         * real.h (significand_size): Likewise.
10148         * regclass.c (reg_class_size): Now unsigned.
10149         (choose_hard_reg_mode): Both operands now unsigned.
10150         (record_reg_classes): REGNO and NR now unsigned.
10151         (reg_scan): NREGS now unsigned.
10152         (reg_scan_update): old_max_regno now unsigned.
10153         (reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned.
10154         * reload.c (find_valid_class): BEST_SIZE now unsigned.
10155         (find_dummy_reload): REGNO, NWORDS, and I now unsigned.
10156         (hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned.
10157         Likewise for variable R.
10158         (refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned,
10159         as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R.
10160         (find_equiv_reg): Add casts.
10161         (regno_clobbered_p): Arg REGNO now unsigned.
10162         * reload.h (struct reload): NREGS now unsigned.
10163         (refers_to_regno_for_reload_p): Regno args are unsigned.
10164         (regno_clobbered_p): Likewise.
10165         * reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned.
10166         (compute_use_by_pseudos): REGNO now unsigned.
10167         (find_reg): I and J now unsigned, new variable K, and change loop
10168         variables accordingly; THIS_NREGS now unsigned.
10169         (alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned.
10170         (spill_hard_reg): REGNO arg now unsigned; add casts.
10171         (forget_old_reloads_1): REGNO, NR, and I now unsigned.
10172         (mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned.
10173         (clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO,
10174         END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned.
10175         (reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned.
10176         (choose_reload_regs): MAX_GROUP_SIZE now unsigned.
10177         (emit_reload_insns): REGNO now unsigned.
10178         (reload_cse_move2add): Add cast.
10179         (move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO
10180         and rework loop.
10181         * resource.c (mark_referenced_resources, mark_set_resources): New
10182         variable R; REGNO and LAST_REGNO now unsigned.
10183         (mark_target_live_regs): J and REGNO now unsigned.
10184         * rtl.c (mode_size, mode_unit_size): Now unsigned.
10185         * rtl.h (union rtunion_def): New field rtuint.
10186         (XCUINT): New macro.
10187         (ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT.
10188         (operand_subword, operand_subword_force): Word number is unsigned.
10189         (choose_hard_reg_mode): Operands are unsigned.
10190         (refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned.
10191         (find_regno_note, find_regno_fusage, replace_regs): Likewise.
10192         (regno_use_in, combine_instructions, remove_death): Likewise.
10193         (reg_scan, reg_scan_update): Likewise.
10194         (extended_count): Return is unsigned.
10195         * rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I,
10196         INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO.
10197         (reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned.
10198         (reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned.
10199         (reg_reg_last_1): FIRS and LAST now unsigned.
10200         (dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned.
10201         (dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO
10202         now unsigned.
10203         (find_regno_note, regno_use_in): Arg REGNO now unsigned.
10204         (find_regno_fusage): Likewise; also var REGNOTE now unsigned.
10205         (find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned.
10206         (replace_regs): Arg NREGS now unsigned.
10207         * sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0.
10208         * simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned.
10209         (simplify_binary_operation): Likewise.
10210         (cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and
10211         THIS_LAST now unsigned.
10212         (cselib_record_set): Add cast.
10213         * ssa.c (ssa_max_reg_num): Now unsigned.
10214         (rename_block): REGNO now unsigned.
10215         * stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT;
10216         sizes now unsigned.
10217         (all_cases_count): Just return -1 not -2.
10218         COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT.
10219         Rework tests to use trees whenever possible.
10220         Use host_integerp and tree_low_cst.
10221         (mark_seen_cases): COUNT arg now HOST_WIDE_INT;
10222         Likewise variable NEXT_NODE_OFFSET; XLO now unsigned.
10223         (check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT.
10224         * stor-layout.c (mode_for_size): SIZE arg now unsigned.
10225         (smallest_mode_for_size): Likewise.
10226         (layout_decl): Simplify handing of a specified DECL_SIZE_UNIT.
10227         KNOWN_ALIGN is now an alignment, so simplify code.
10228         Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type.
10229         (start_record_layout): Renamed from new_record_layout_info.
10230         Update to new fields.
10231         (debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far):
10232         New functions.
10233         (place_union_field): Renamed from layout_union_field.
10234         Update to use new fields in rli.
10235         (place_field): Renamed from layout_field.
10236         Major rewrite to use new fields in rli; pass alignment to layout_decl.
10237         (finalize_record_size): Rework to use new fields in rli and handle
10238         union.
10239         (compute_record_mode): Rework to simplify and to use new DECL fields.
10240         (finalize_type_size): Make rounding more consistent.
10241         (finish_union_layout): Deleted.
10242         (layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either.
10243         (layout_type, case RECORD_TYPE): Call new function names.
10244         (initialize_sizetypes): Set TYPE_IS_SIZETYPE.
10245         (set_sizetype): Set TYPE_IS_SIZETYPE earlier.
10246         (get_best_mode): UNIT is now unsigned; remove casts.
10247         * tree.c (bit_position): Compute from new fields.
10248         (byte_position, int_byte_position): New functions.
10249         (print_type_hash_statistics): Cast to remove warning.
10250         (build_range_type): Use host_integerp and tree_low_cst to try to hash.
10251         (build_index_type): Likewise; make subtype of sizetype.
10252         (build_index_2_type): Pass sizetype to build_range_type.
10253         (build_common_tree_nodes): Use size_int and bitsize_int to
10254         initialize nodes; add bitsize_{zero,one,unit}_node.
10255         * tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK.
10256         (DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise.
10257         (DECL_PACKED, DECL_BIT_FIELD): Likewise.
10258         (DECL_FIELD_BITPOS): Deleted.
10259         (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields.
10260         (DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK.
10261         (DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise.
10262         (DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise.
10263         (DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise.
10264         (DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise.
10265         (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise.
10266         (DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK.
10267         (DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK.
10268         (DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise.
10269         (DECL_ALIGN): Adjust to new field in union.
10270         (DECL_OFFSET_ALIGN): New field.
10271         (DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK.
10272         (DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK.
10273         (union tree_decl): Add struct for both aligns.
10274         (enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}.
10275         (bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added.
10276         (struct record_layout_info): Rework fields to have offset
10277         alignment and byte and bit position.
10278         (start_record_layout, place_field): Renamed from old names.
10279         (rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls.
10280         (byte_position, int_byte_position): Likewise.
10281         (get_inner_reference): Change types of position and length.
10282         * unroll.c (unroll_loop): New variable R; use for some loops.
10283         MAX_LOCAL_REGNUM and MAXREGNUM now unsigned.
10284         (calculate_giv_inc): Arg REGNO now unsigned.
10285         (copy_loop_body): REGNO and SRC_REGNO now unsigned.
10286         * varasm.c (assemble_variable): Clean up handling of size using
10287         host_integerp and tree_low_cst.
10288         (decode_addr_const): Use byte, not bit, position.
10289         (output_constructor): bitpos and offsets are HOST_WIDE_INT;
10290         use tree_low_cst and int_bit_position.
10291         * objc/objc-act.c (build_ivar_list_initializer): Use byte_position.
10292
10293 Fri Mar 24 20:13:49 2000  Jason Eckhardt  <jle@cygnus.com>
10294
10295         * bb-reorder.c (REORDER_MOVED_BLOCK_END): Removed.
10296         (reorder_block_def): New members eff_head and eff_end.
10297         (REORDER_BLOCK_EFF_HEAD, REORDER_BLOCK_EFF_END): New macros.
10298         (verify_insn_chain): New function.
10299         (skip_insns_between_block): Add code to skip deleted insns.
10300         Check for note before using.
10301         (chain_reorder_blocks): Replace calls to skip_insns_between_block
10302         with references to REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END.
10303         Check for note before using.
10304         (make_reorder_chain): Use INTVAL rather than XINT to get REG_BR_PROB.
10305         (fixup_reorder_chain): Restructure, clean up, defect removal.
10306         (reorder_basic_blocks): Remove last_insn and references to it.
10307         Moved insn chain verification code into a new function (see above).
10308         Delete defective code that sets last insn.
10309         Initialize REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for
10310         all blocks.
10311
10312 2000-03-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10313
10314         * config/c4x/c4x.h (CPP_SPEC): Remove erroneous space.
10315
10316 2000-03-24  Richard Henderson  <rth@cygnus.com>
10317
10318         * tree.c (lang_safe_for_unsave): Remove.
10319         (unsafe_for_reeval): Transmute and rename from safe_for_unsave,
10320         allowing for two levels of unsafeness.  Remove lang hook.
10321         * tree.h: Update declarations.
10322         * calls.c (expand_call): Rename safe_for_reeval to try_tail_call.
10323         Create temporary VAR_DECLs to protect very unsafe_for_reeval trees.
10324         Always fail sibcalls when there are pending cleanups.
10325
10326 2000-03-24  Geoff Keating  <geoffk@cygnus.com>
10327
10328         * flow.c (propagate_block): When we delete an ADDR_VEC,
10329         also delete the BARRIER following it if there is one.
10330
10331 2000-03-24  Richard Henderson  <rth@cygnus.com>
10332
10333         * builtins.c (expand_builtin_bzero): Convert `length' argument
10334         to sizetype.
10335
10336 2000-03-24  Jakub Jelinek  <jakub@redhat.com>
10337
10338         * sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for
10339         comparison if regno's are equal.
10340         * calls.c (initialize_argument_informat): Add ecf_flags argument.
10341         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
10342         (expand_call): Update caller.
10343         Avoid making a sibling call if argument size of the callee is larger
10344         than argument size of the caller.
10345         Call hard_function_value with outgoing set if in sibcall pass.
10346         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
10347
10348         * final.c (permitted_reg_in_leaf_functions, only_leaf_regs_used):
10349         Change LEAF_REGISTERS from an array initializer to actual array
10350         identifier. Move static global variable into the function.
10351         (leaf_function_p): Allow SIBLING_CALL_P calls even outside of
10352         sequences for leaf functions.
10353         * global.c (global_alloc): Likewise.
10354         * tm.texi (LEAF_REGISTERS): Update documentation.
10355
10356         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Remove the ugly
10357         TARGET_FLAT leaf disabling hack.
10358         (LEAF_REGISTERS): Changed from an array initializer to actual array
10359         identifier to avoid duplication and remove the above hack.
10360         (FUNCTION_OK_FOR_SIBCALL): Define.
10361         * config/sparc/sparc.md (sibcall): New attr type. Use it almost
10362         always like call attribute.
10363         (eligible_for_sibcall_delay): New attribute.
10364         (sibcall): New delay type.
10365         (sibcall, sibcall_value, sibcall_epilogue): New expands.
10366         (sibcall_symbolic_sp32, sibcall_symbolic_sp64,
10367         sibcall_value_symbolic_sp32, sibcall_value_symbolic_sp64): New insns.
10368         * config/sparc/sparc.c (sparc_leaf_regs): New array.
10369         (eligible_for_sibcall_delay, output_restore_regs, output_sibcall):
10370         New functions.
10371         (output_function_epilogue): Move part of the code into
10372         output_restore_regs.
10373         (ultra_code_from_mask, ultrasparc_sched_reorder): Handle
10374         TYPE_SIBCALL.
10375         * sparc-protos.h (output_sibcall, eligible_for_sibcall_delay): New
10376         prototypes.
10377
10378         * config/sparc/sparc.h (REVERSIBLE_CC_MODE): Revert Jan, 25 change
10379         until infrastructure is finished.
10380
10381 Fri Mar 24 13:49:45 2000  Jeffrey A Law  (law@cygnus.com)
10382
10383         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns here.
10384         (save_parm_insns): Not here.
10385
10386 2000-03-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10387
10388         * builtins.c (expand_builtin_bzero): New function.
10389         (expand_builtin): Handle bzero.
10390
10391         * builtins.def: Add BUILT_IN_BZERO.
10392
10393         * c-common.c (c_common_nodes_and_builtins): Provide builtin
10394         prototype & function for bzero.
10395
10396 2000-03-23  Michael Meissner  <meissner@redhat.com>
10397
10398         * config/alpha/alpha.md (TF floating point insns): Undo 2000-03-21
10399         change adding TARGET_FP to the TF floating point insns, except for
10400         trunctfsf2, which generates direct calls to truncdfsf2.
10401
10402 2000-03-23  Geoff Keating  <geoffk@cygnus.com>
10403
10404         * config/rs6000/rs6000.h (ARG_POINTER_CFA_OFFSET): New definition,
10405         try to protect against middle-end changes that break binary
10406         compatibility.
10407         (DWARF_FRAME_REGISTERS): New definition, likewise for backend.
10408
10409 2000-03-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10410
10411         * config/c4x/c4x.md (load_immed_address):  Add DP reg clobber.
10412
10413 Thu Mar 23 17:10:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10414
10415         * calls.c (expand_call): If TARGET is passed by reference and
10416         is readonly, write a CLOBBER.
10417
10418 2000-03-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10419
10420         * builtins.c (expand_builtin): Handle bcmp.
10421
10422         * builtins.def: Add BUILT_IN_BCMP.
10423
10424         * c-common.c (c_common_nodes_and_builtins): Provide builtin
10425         prototype & function for bcmp.
10426
10427 Thu Mar 23 11:34:39 2000  Jim Wilson  <wilson@cygnus.com>
10428
10429         * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC): Move case 6...
10430         (rtx_needs_barrier, case UNSPEC_VOLATILE): to here.
10431         * config/ia64/ia64.md (pr_restore): Change UNSPEC to UNSPEC_VOLATILE.
10432
10433 Thu Mar 23 16:04:40 2000  Andrew Haley  <aph@cygnus.com>
10434
10435         * config/mips/mips.md (movdf_internal1a): Delete (set 'f', 'F')
10436         alternative when using -fp64 -gp32.
10437
10438 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
10439
10440         * config/rs6000/rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define.
10441         * config/alpha/alpha.h (DWARF_FRAME_RETURN_COLUMN): Define.
10442         * config/sparc/sparc.h (DWARF_FRAME_RETURN_COLUMN): Define.
10443
10444         * frame.h (frame_state): Revert last change.
10445         * frame.c (execute_cfa_insn): Just don't record the save of a CFA reg.
10446         * libgcc2.c (throw_helper): Revert last change.
10447
10448 2000-03-22  Richard Henderson  <rth@cygnus.com>
10449
10450         * stmt.c (expand_asm_operands): Don't promote the temporary.
10451
10452 2000-03-22  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
10453
10454         * builtin.c (get_pointer_alignment): Use DECL_P and TYPE_P macros.
10455         * c-common.c (decl_attributes,check_format_info,truthvalue_conversion,
10456           c_get_alias_set): Likewise.
10457         * c-decl.c (duplicate_decls): Likewise.
10458         * c-typeck.c (default_conversion,build_unary_op): Likewise.
10459         * calls.c (initialize_argument_information): Likewise.
10460         * dwarf2out.c (decl_class_context,add_abstract_origin_attribute):
10461         Likewise.
10462         * dwarfout.c (decl_class_context,output_type): Likewise.
10463         * expr.c (get_inner_reference): Likewise.
10464         * fold-const.c (simple_operand_p,fold): Likewise.
10465         * function.c (aggregate_value_p): Likewise.
10466         * stmt.c (expand_asm_operands): Likewise.
10467         * varasm.c (named_section): Likewise.
10468
10469 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
10470
10471         Implement dwarf2 exception handling for the ARM.
10472         * config/arm/arm.h (INCOMING_RETURN_ADDR_RTX): Define.
10473         (DWARF_FRAME_RETURN_COLUMN): Define.
10474         * config/arm/arm.c (emit_multi_reg_push): Return rtx.  Attach
10475         REG_FRAME_RELATED_EXPR note.
10476         (emit_sfm): Likewise.
10477         (arm_expand_prologue): Set RTX_FRAME_RELATED_P on everything.
10478         * dwarf2out.c (reg_save): Handle saving a register to itself.
10479         (dwarf2out_frame_debug_expr): Handle an intermediate cfa reg.
10480         * except.c (eh_regs): Don't use the static chain reg if it's
10481         callee-saved.
10482         * frame.h (frame_state): Add cfa_saved field.
10483         * frame.c (execute_cfa_insn): Set it.
10484         * libgcc2.c (throw_helper): Don't adjust sp if it's restored in
10485         the epilogue.
10486         * function.c (ARG_POINTER_CFA_OFFSET): Default to FIRST_PARM_OFFSET.
10487         Now takes a parm.
10488         (instantiate_virtual_regs): Adjust.
10489         * tm.texi: Adjust.
10490         * config/m68k/m68k.h (ARG_POINTER_CFA_OFFSET): Don't define.
10491         * config/ns32k/ns32k.h (ARG_POINTER_CFA_OFFSET): Don't define.
10492         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): Take a parm.
10493
10494         * dwarf2out.c (reg_number): Refer to FIRST_PSEUDO_REGISTER.
10495         (initial_return_save): Use DWARF_FRAME_REGNUM, not reg_number.
10496
10497 2000-03-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10498
10499         * builtins.def: New file.
10500
10501         * Makefile.in (TREE_H): Depend on builtins.def.
10502
10503         * builtins.c (built_in_names): Use builtins.def.
10504
10505         * tree.h (built_in_function): Likewise.
10506
10507 2000-03-22  Mark Mitchell  <mark@codesourcery.com>
10508
10509         * tree.c (size_in_bytes): Return size_zero_node, not
10510         integer_zero_node.
10511
10512 2000-03-22  Geoff Keating  <geoffk@cygnus.com>
10513
10514         * config/fp-bit.c (pack_d): Correct the case when a denormal
10515         is rounded up and stops being denormal.
10516
10517 2000-03-21  Richard Henderson  <rth@cygnus.com>
10518
10519         * config/alpha/alpha.c (function_arg): Check for void_type_node
10520         before using MUST_PASS_IN_STACK.
10521
10522 2000-03-21  Stephane Carrez  <stcarrez@worldnet.fr>
10523
10524         * regmove.c (combine_stack_adjustments_for_block): Check that
10525         the stack pointer is a valid memory address.
10526
10527 Wed Mar 22 11:44:50 MET 2000  Jan Hubicka  <jh@suse.cz>
10528
10529         * calls.c: re-install Mar 16 emit_library_call merge.
10530
10531 2000-03-21  Jakub Jelinek  <jakub@redhat.com>
10532
10533         * config/sparc/sparc.c (mem_min_alignment): If not optimizing,
10534         we cannot be sure that if reload_completed base register will
10535         be properly aligned.
10536
10537 2000-03-21  Richard Henderson  <rth@cygnus.com>
10538
10539         * flow.c (delete_block): Fix typo last change.
10540
10541 2000-03-21  Mark Mitchell  <mark@codesourcery.com>
10542
10543         * c-common.c (c_expand_expr_stmt): Use COMPLETE_TYPE_OR_VOID_P,
10544         not COMPLETE_TYPE_P, to check the type of the expression.
10545
10546 2000-03-21  Michael Meissner  <meissner@redhat.com>
10547
10548         * config/alpha/alpha.md (floating point insns): Add TARGET_FP to
10549         all floating point insns that just tested the macro
10550         TARGET_HAS_XFLOATING_LIBS.
10551         (movsf/movdf recognizers): Add separate insns if -mno-fp-regs is
10552         used to only use the gprs.
10553
10554 2000-03-21  Nathan Sidwell  <nathan@codesourcery.com>
10555
10556         * tree.h (COMPLETE_TYPE_P): New macro.
10557         (COMPLETE_OR_VOID_TYPE_P): New macro.
10558         (COMPLETE_OR_UNBOUND_ARRAY_TYPE_P): New macro.
10559         * stor-layout.c (layout_type, case VOID_TYPE): Don't set TYPE_SIZE.
10560         * c-aux-info.c (gen_type): Use them.
10561         * c-common.c (c_expand_expr_stmt): Likewise.
10562         * c-decl.c (poplevel, pushdecl, start_decl, finish_decl,
10563         grokdeclarator, grokparms, finish_struct, start_function,
10564         store_parm_decls, combine_parm_decls): Likewise.
10565         * c-parse.y (cast_expr): Likewise.
10566         * c-typeck.c (require_complete_type, c_sizeof, c_sizeof_nowarn,
10567         c_size_in_bytes, c_alignof, build_component_ref,
10568         build_indirect_ref, build_array_ref, convert_arguments,
10569         build_binary_op, pointer_diff, build_unary_op, digest_init: Likewise.
10570         * calls.c (initialize_argument_information): Likewise.
10571         * convert.c (convert_to_integer): Likewise.
10572         * dbxout.c (dbxout_typedefs, dbxout_type, dbxout_symbol): Likewise.
10573         * dwarfout.c (location_or_const_value_attribute,
10574         output_enumeration_type_die, output_structure_type_die,
10575         output_union_type_die, output_type): Likewise.
10576         * expr.c (safe_from_p, expand_expr): Likewise.
10577         * function.c (assign_parms): Likewise.
10578         * sdbout.c (sdbout_symbol, sdbout_one_type): Likewise.
10579         * tree.c (build_array_type, build_function_type,
10580         build_method_type, build_offset_type, build_complex_type): Likewise.
10581         * c-parse.c, c-parse.h: Regenerated.
10582
10583 2000-03-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10584
10585         * config/c4x/rtems.h: Include config/rtems.h.
10586
10587 Tue Mar 21 09:24:00 2000  Denis Chertykov  <denisc@overta.ru>
10588
10589         * config/avr/avr.c (encode_section_info): sets SYMBOL_REF_FLAG if
10590         decl is a FUNCTION_DECL
10591
10592 Mon Mar 20 19:53:53 2000  Jim Wilson  <wilson@cygnus.com>
10593
10594         * config/ia64/ia64.c (ia64_expand_prologue): Don't abort if leaf
10595         function uses output registers.  Don't save RP for leaf functions.
10596         Do save RP even if no epilogue.
10597         * config/ia64/ia64.h (FIXED_REGISTERS): Unmark in/out registers.
10598         (CALL_USED_REGISTERS): Unmark in registers.
10599         (REG_ALLOC_ORDER): Move out regs up, to near the top.  Move in regs up,
10600         to near the middle.
10601
10602 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
10603
10604         * config/rs6000/rs6000.md (bunordered): New expander.
10605         (bordered): New expander.
10606         (buneq): New expander.
10607         (bunge): New expander.
10608         (bungt): New expander.
10609         (bunle): New expander.
10610         (bunlt): New expander.
10611         (bltgt): New expander.
10612
10613         * config/rs6000/rs6000.c (ccr_bit): Handle unordered comparisons.
10614         (ccr_bit_negated_p): New function.
10615         (print_operand): For %C, generate appropriate cror for UNEQ,
10616         UNLT, UNGT, and LTGT.  For %T and %t, use ccr_bit_negated_p.
10617
10618 2000-03-20  Andreas Jaeger  <aj@suse.de>
10619
10620         * sdbout.c (sdbout_one_type): Add braces to avoid "ambigous else"
10621         warning.
10622
10623         * tree.h (safe_for_unsave): Prototype.
10624
10625 2000-03-20  Richard Henderson  <rth@cygnus.com>
10626
10627         * regmove.c (stack_memref_p): Fix typo, reorg for readability.
10628         (combine_stack_adjustments_for_block): Don't allow sp references
10629         in the side of a set we're not fixing up.
10630         * toplev.c (rest_of_compilation): Run combine_stack_adjustments
10631         after life_analysis.
10632
10633 2000-03-20  Richard Henderson  <rth@cygnus.com>
10634
10635         * calls.c (expand_call): Don't bother generating tail call
10636         sequences if there are pending cleanups.  Use
10637         expand_start_target_temps/expand_end_target_temps to elide
10638         cleanups created during sibcall expansion.
10639
10640 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
10641
10642         * configure.in: Set $IFS to a value if it doesn't already have one
10643         in the --enable-checking handling.
10644         * configure: Regenerate.
10645
10646 2000-03-20  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
10647
10648         * c-parse.in (SAVE_WARN_FLAGS): Use size_int.
10649         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
10650         Regenerated.
10651
10652 Mon Mar 20 11:43:15 MET 2000  Jan Hubicka  <jh@suse.cz>
10653
10654         * jump.c (delete_noop_moves): Remove code attempting to
10655         combine stack adjustments.
10656
10657 2000-03-19  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
10658
10659         * emit-rtl.c (push_to_full_sequence, end_full_sequence): New functions.
10660         * except.c (emit_cleanup_handler): Use them.
10661         (expand_end_all_catch): Likewise.
10662         * function.c (fixup_var_refs): Likewise.
10663         (expand_function_end): Clear catch_clauses_last.
10664         * rtl.h (push_to_full_sequence, end_full_sequence): Declare.
10665         * except.h (struct eh_status): New field x_catch_clauses_last.
10666         (catch_clauses_last): New define.
10667
10668         * Makefile.in (tree.o): Depend on HASHTAB_H.
10669         * tree.c: Include hashtab.h.
10670         (struct type_hash): Remove next field.
10671         (TYPE_HASH_SIZE): Remove.
10672         (TYPE_HASH_INITIAL_SIZE): New define.
10673         (type_hash_table): Change type to htab_t.
10674         (type_hash_eq, type_hash_hash, print_type_hash_statistics,
10675         mark_hash_entry): New functions.
10676         (init_obstacks): Allocate type hash.
10677         (type_hash_lookup): Use htab functions.
10678         (type_hash_add, mark_type_hash): Likewise.
10679         (dump_tree_statistics): Call print_type_hash_statistics.
10680
10681 2000-03-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10682
10683         * rs6000/t-aix41: New file.
10684
10685         * configure.in ({rs6000,powerpc}-ibm-aix4.[12]*): Use it.
10686
10687 Sun Mar 19 13:27:30 2000  Hans-Peter Nilsson  <hp@axis.com>
10688
10689         * tm.texi (Driver): Fix typos and tweak entry for
10690         INCLUDE_DEFAULTS.
10691         Move misplaced STRUCT_FORCE_BLK entry ...
10692         (Storage Layout): ... to here.
10693         (Run-time Target): Recommend having TARGET_MASK_... helper macros.
10694
10695 2000-03-19  Richard Henderson  <rth@cygnus.com>
10696
10697         * flow.c (delete_block): Delete the addr_vec along with the block.
10698         (flow_delete_insn): Decrement LABEL_NUSES when deleting insns that
10699         reference labels.
10700
10701         * fold-const.c (extract_muldiv): Apply type check for defined
10702         overflow to multiply as well as divide.
10703
10704         * stor-layout.c (layout_decl): Don't abort on any zero sized decl.
10705
10706 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
10707
10708         * emit-rtl.c (remove_unncessary_notes): Check that all
10709         NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes have an
10710         associated NOTE_BLOCK.
10711         * function.h (identify_blocks): Update comments.
10712         (reorder_blocks): Declare.
10713         * function.c (identify_blocks): Don't take paramters.
10714         (reorder_blocks): Don't take parameters.
10715         * loop.h (find_loop_tree_blocks): Remove.
10716         (unroll_block_trees): Likewise.
10717         * loop.c (loop_optimize): Don't call find_loop_tree_blocks.  Use
10718         reorder_blocks instead of unroll_block_trees.h
10719         * sibcall.c (optimize_sibling_and_tail_recursive_calls): Likewise.
10720         * stmt.c (find_loop_tree_blocks): Remove.
10721         (unroll_block_trees): Likewise.
10722         * toplev.c (rest_of_compilation): Don't call find_loop_tree_blocks
10723         in whole-function mode.
10724         * tree.h (reorder_blocks): Remove declaration.
10725
10726         * expr.c: Include intl.h.
10727         * Makefile.in (expr.o): Depend on intl.h.
10728
10729 2000-03-18  Richard Henderson  <rth@cygnus.com>
10730
10731         * expr.c (emit_move_insn_1): Clarify cannot_inline message.
10732
10733 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
10734
10735         * tree.h (tree_index): Remove enumerals for integer types.
10736         (integer_type_kind): New type.
10737         (integer_types): New variable.
10738         (char_type_node): Adjust.
10739         (signed_char_type_node): Likewise.
10740         (unsigned_char_type_node): Likewise.
10741         (short_integer_type_node): Likewise.
10742         (short_unsigned_type_node): Likewise.
10743         (integer_type_node): Likewise.
10744         (unsigned_type_node): Likewise.
10745         (long_integer_type_node): Likewise.
10746         (long_unsigned_type_node): Likewise.
10747         (long_long_integer_type_node): Likewise.
10748         (long_long_unsigned_type_node): Likewise.
10749         * tree.c (integer_types): New variable.
10750         (init_obstacks): Register it as a root.
10751
10752 Sat Mar 18 14:38:00 2000  Jason Eckhardt  <jle@cygnus.com>
10753
10754         * bb-reorder.c (reorder_basic_blocks): Update PREV_INSN as well as
10755         NEXT_INSN. Update last insn in chain.
10756
10757 2000-03-17  Jason Merrill  <jason@casey.cygnus.com>
10758
10759         * dwarf2out.c (dwarf2out_decl): Don't emit anything for types
10760         with TYPE_DECL_SUPPRESS_DEBUG set.
10761
10762 2000-03-18  Richard Henderson  <rth@cygnus.com>
10763
10764         * flow.c (make_edges): Use INTVAL to access REG_EH_REGION value.
10765
10766 2000-03-18  Richard Henderson  <rth@cygnus.com>
10767
10768         * i386.c (call_insn_operand): Always allow SYMBOL_REF,
10769         care for HALF_PIC_P.
10770         (expander_call_insn_operand): Remove.
10771         (ix86_expand_epilogue): New arg `emit_return' to control return insn.
10772         * i386.h (PREDICATE_CODES): Update.
10773         * i386.md (all call expanders): Remove predicates, remove special
10774         handling for half-pic.
10775         (*call_1, *call_value_1): Handle SIBLING_CALL_P insns.
10776         (*call_pop_pic2, *call_pic2, *call_value_pop_2, *call_value_2): Remove.
10777         (sibcall_epilogue): New.
10778
10779 2000-03-17  Richard Henderson  <rth@cygnus.com>
10780
10781         * rtlanal.c (single_set): Reject if the parallel has anything
10782         except SET or USE or CLOBBER.
10783
10784 2000-03-17  Jeff Law  <law@cygnus.com>
10785             Richard Henderson  <rth@cygnus.com>
10786
10787         * Makefile.in (OBJS): Add sibcall.o.
10788         (sibcall.o): New.
10789         * sibcall.c: New file.
10790         * calls.c (FUNCTION_OK_FOR_SIBCALL): Provide default.
10791         (ECF_IS_CONST, ECF_NOTHROW, ECF_SIBCALL): New.
10792         (emit_call_1): Replace `is_const' and `nothrow' with `ecf_flags'.
10793         Emit sibcall patterns when requested.  Update all callers.
10794         (expand_call): Generate CALL_PLACEHOLDER insns when tail call
10795         elimination seems feasable.
10796         * final.c (leaf_function_p): Sibling calls don't discount being
10797         a leaf function.
10798         * flow.c (HAVE_sibcall_epilogue): Provide default.
10799         (find_basic_blocks_1): Sibling calls don't throw.
10800         (make_edges): Make edge from sibling call to EXIT.
10801         (propagate_block): Don't remove sibcall_epilogue insns.
10802         * function.c (prologue, epilogue): Turn into varrays.  Update all uses.
10803         (sibcall_epilogue): New.
10804         (fixup_var_refs): Scan CALL_PLACEHOLDER sub-sequences.
10805         (identify_blocks_1): Likewise.  Break out from ...
10806         (identify_blocks): ... here.
10807         (reorder_blocks_1): Scan CALL_PLACEHOLDER.  Break out from ...
10808         (reorder_blocks): ... here.
10809         (init_function_for_compilation): Zap prologue/epilogue as varrays.
10810         (record_insns): Extend a varray instead of mallocing new memory.
10811         (contains): Read a varray not array of ints.
10812         (sibcall_epilogue_contains): New.
10813         (thread_prologue_and_epilogue_insns): Emit and record
10814         sibcall_epilogue patterns.
10815         (init_function_once): Allocate prologue/epilogue varrays.
10816         * genflags.c (gen_insn): Treat sibcall patterns as calls.
10817         * integrate.c (save_parm_insns): Recurse on CALL_PLACEHOLDER patterns.
10818         Broken out from ...
10819         (save_for_inline_nocopy): ... here.
10820         (copy_insn_list): Recurse on CALL_PLACEHOLDER patterns.
10821         Broken out from ...
10822         (expand_inline_function): ... here.
10823         (copy_rtx_and_substitute): Handle NOTE_INSN_DELETED_LABEL.
10824         (subst_constants): Handle 'n' formats.
10825         * jump.c (jump_optimize_minimal): New.
10826         (jump_optimize_1): New arg `minimal'; update callers.  Elide most
10827         optimizations if it's set.
10828         * rtl.c (copy_rtx): Do copy jump & call for insns.
10829         * rtl.h (struct rtx_def): Document use of jump and call for insns.
10830         (SIBLING_CALL_P): New.
10831         (sibcall_use_t): New.
10832         * toplev.c (rest_of_compilation): Do init_EXPR_INSN_LIST_cache earlier.
10833         Invoke optimize_sibling_and_tail_recursive_calls.
10834         * tree.c (lang_safe_for_unsave): New.
10835         (safe_for_unsave): New.
10836         * tree.h (lang_safe_for_unsave, safe_for_unsave): Declare.
10837
10838         * alpha.h (FUNCTION_OK_FOR_SIBCALL): New.
10839         * alpha.md (sibcall, sibcall_value, sibcall_epilogue): New.
10840         (*sibcall_osf_1, *sibcall_value_osf_1): New.
10841
10842 2000-03-17  Mark Mitchell  <mark@codesourcery.com>
10843
10844         * objc/objc-act.c (encode_method_prototype): Pass types, not
10845         PARM_DECLs, to int_size_in_bytes.
10846
10847 Fri Mar 17 11:51:34 2000  Jim Wilson  <wilson@cygnus.com>
10848
10849         * config/ia64/ia64.md (mix4right_3op): Swap %1 and %2 in template.
10850
10851         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
10852         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyrights again.
10853
10854 Fri Mar 17 08:09:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10855
10856         * Clean up usages of TREE_INT_CST_LOW.
10857         * c-parse.in (RESTORE_WARN_FLAGS): Use tree_low_cst.
10858         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
10859         Regenerated.
10860         * c-tree.h (min_precision): Move declaration to here.
10861         * c-typeck.c (build_binary_op): Use host_integerp and tree_low_cst.
10862         (build_unary_op, add_pending_init): Use bit_position.
10863         (pending_init_member, process_init_element): Likewise.
10864         (really_start_incremental_init, push_init_level, pop_init_level):
10865         Don't make copies of nodes or modify them in place, use consistent
10866         types when tracking positions, and use tree routines computations.
10867         (set_init_index, output_init_element): Likewise.
10868         (output_pending_init_elements, process_init_element): Likewise.
10869         * dbxout.c (dbxout_type_fields): Use bit_position, host_integerp,
10870         tree_low_cst and int_bit_position; also minor cleanup.
10871         (dbxout_type_method_1, dbxout_range_type, dbxout_type): Likewise.
10872         (print_cst_octal): Precision is unsigned.
10873         (dbxout_symbol): Ensure DECL_INITIAL is in-range and use tree_low_cst.
10874         * dwarf2out.c (ceiling): Input and output are unsigned HOST_WIDE_INT.
10875         (simple_type_align_in_bits): Result is unsigned int.
10876         Use tree_int_low_cst and host_integerp.
10877         (simple_type_size_in_bits): Result is unsigned HOST_WIDE_INT.
10878         (field_byte_offset): Result is HOST_WIDE_INT.
10879         Change types of internal variables so alignments are unsigned int,
10880         offsets are HOST_WIDE_INT and sizes are unsigned HOST_WIDE_INT.
10881         Use host_integerp, tree_low_cst, and int_bit_position.
10882         (add_bit_offset_attribute): Likewise.
10883         (add_data_member_location_attribute): Use tree_cst_low.
10884         (add_bound_info): Use host_integerp, integer_zerop, and integer_onep.
10885         (add_bit_size_attribute): Use tree_low_cst.
10886         (add_pure_or_virtual_attribute, gen_enumeration_type_die): Likewise.
10887         * dwarfout.c: Similar changes to dwarf2out.c.
10888         * expr.c (expand_expr, case ARRAY_REF): Remove redundant code.
10889         * genoutput.c (n_occurences): Return -1 for null string.
10890         (strip_whitespace): Accept null string and make into function.
10891         (scan_operands): Reflect above changes.
10892         * sdbout.c (plain_type_1): Use host_integerp and tree_low_cst.
10893         (sdbout_field_types, sdbout_one_type): Likewise; also use bit_position.
10894         * ssa.c (rename_registers): Add missing cast of arg to bzero.
10895         * tree.c (int_size_in_bytes): Check for too big to represent.
10896         (bit_position, int_bit_position, host_integerp, tree_low_cst): New fns.
10897         * tree.h (host_integerp, tree_low_cst, bit_position, int_bit_position):
10898         New declarations.
10899         (min_precision): Delete from here.
10900         * varasm.c (decode_addr_const): Use host_integerp, bit_position,
10901         and int_bit_position.
10902         * objc/objc-act.c (encode_method_prototype): Sizes are HOST_WIDE_INT.
10903         (encode_method_def): Likewise.
10904         (build_ivar_list_initializer): Use int_bit_position.
10905         (generate_shared_structures): Convert size.
10906         (encode_type, encode_complete_bitfield): Use integer_zerop.
10907         (encode_bitfield): Use tree_low_cst and int_bit_position.
10908
10909 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10910
10911         * config/c4x/c4x.h (CPP_SPEC): Fix typo.
10912
10913 2000-03-17  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
10914
10915         * call.c (special_function_p): It is only malloc if it returns
10916         Pmode.
10917
10918 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10919
10920         * config/c4x/c4x.h (ASM_SPEC, CPP_SPEC, LINK_SPEC): Support C33.
10921         (C33_FLAG, TARGET_C3X): Add macros.
10922         (TARGET_SWITCHES): Add -m33 option.
10923         * config/c4x/c4x.c (c4x_override_options): Test for TARGET_C33.
10924
10925 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10926
10927         * config/c4x/c4x.h (PARALLEL_INSN_FLAG): Add.
10928         (PARALLEL_PACK_FLAG): Delete.
10929         (TARGET_SWITCHES): Update.
10930         (TARGET_PARALLEL): Use PARALLEL_INSN_FLAG.
10931
10932 Thu Mar 16 18:52:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10933
10934         * fold-const.c (fold): Fix a few cases when the returned result
10935         is not of the same type as the input.
10936
10937 2000-03-16  Nick Clifton  <nickc@cygnus.com>
10938
10939         * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Fix compile time
10940         warning.
10941
10942 2000-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10943
10944         * libgcc2.h: Move prototypes above macros with the same name.
10945         Wrap some function prototypes in the conditional which indicates
10946         whether they are supported, i.e. "BITS_PER_UNIT == 8".
10947
10948 2000-03-16  Richard Henderson  <rth@cygnus.com>
10949
10950         * calls.c: Revert last two changes.
10951
10952 2000-03-16  Bernd Schmidt  <bernds@cygnus.co.uk>
10953
10954         * fp-bit.c (_unpack_d): If NO_DENORMALS is defined, anything that
10955         has exponent 0 is a zero.
10956
10957         * simplify-rtx.c (hash_rtx, case MEM/REG): Take into account that
10958         HASH may already be nonzero.  Add code/mode into hash value
10959         immediately after repeat label.
10960         (cselib_lookup): Don't leave the hash table in an inconsistent
10961         state before a hash lookup operation.
10962
10963 Thu Mar 16 17:03:10 MET 2000  Jan Hubicka  <jh@suse.cz>
10964
10965         * i386.md (all HI and QI mode non-move patterns):  Conditionize
10966         by TARGET_[HQ]IMODE_MATH.
10967         * i386.h (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
10968         x86_promote_qi_regs): Declare.
10969         (TARGET_HIMODE_MATH, TARGET_QIMODE_MATH, TARGET_PROMOTE_HI_REGS,
10970         TARGET_PROMOTE_QI_REGS): New macros.
10971         (PROMOTE_MODE): New macro.
10972         * i386.c (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
10973         x86_promote_qi_regs): New global variables.
10974
10975 Thu Mar 16 16:50:44 MET 2000  Jan Hubicka  <jh@suse.cz>
10976
10977         * calls.c (emit_library_call_value_1): Break out from ...; handle
10978         VOIDmode function calls too.
10979         (emit_library_call_value): ... here.
10980         (emit_library_call): Implement by calling emit_library_call_value_1.
10981
10982 Thu Mar 16 16:01:30 MET 2000  Jan Hubicka  <jh@suse.cz>
10983
10984         * calls.c (expand_call): Do sanity checking on arg_space_so_far.
10985         Update arg_space_so_far on stack adjustments.
10986         (emit_library_call, emit_library_call_value): Likewise; take into
10987         account arg_space_so_far and pending_stack_adjust when calculcating
10988         the boundary.
10989
10990 Thu Mar 16 09:02:19 2000  Jason Eckhardt  <jle@cygnus.com>
10991
10992         * flow.c: Move all basic block reordering code into its own file.
10993         (create_basic_block): Externalize.
10994         * bb-reorder.c: New file. Copy all basic block reordering code from
10995         flow.c to this file.
10996         (reorder_basic_blocks): Fix fencepost error in for-loop.
10997         (reorder_basic_blocks): Remove braces from single statement for-loops.
10998         * basic-block.h: Add declaration for create_basic_block.
10999         * Makefile.in: Add rules for bb-reorder.o.
11000
11001 2000-03-16  Neil Booth  <NeilB@earthling.net>
11002
11003         * cppinit.c (handle_option):  Implement #unassert directive
11004         as -A- command line option.
11005         (print_help):  Update.
11006         * cpptexi.c:  Update.
11007
11008 Thu Mar 16 02:14:16 2000  Hans-Peter Nilsson  <hp@bitrange.com>
11009
11010         * md.texi (Standard Names): Document `jump'.
11011
11012 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
11013
11014         * calls.c (emit_call_1): Nothrow functions can still have nonlocal
11015         gotos.
11016
11017 2000-03-15  Geoff Keating  <geoffk@cygnus.com>
11018
11019         Merge changes from newppc-branch onto trunk.
11020
11021         2000-03-15  Geoff Keating  <geoffk@cygnus.com>
11022
11023         * rs6000.c (toc_hash_table): Update for new hash table functions.
11024         (toc_hash_function): Likewise.
11025         (toc_hash_eq): Likewise.
11026         (toc_hash_mark_entry): Likewise.
11027         (toc_hash_mark_table): Likewise.
11028         (output_toc): Likewise.
11029         (rs6000_add_gc_roots): Likewise.
11030
11031         2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11032
11033         * t-aix43 (AR_FOR_TARGET): Deleted.  Moved `-X32_64'...
11034         (AR_FLAGS_FOR_TARGET): here.  New macro.
11035
11036         2000-03-05  Clinton Popetz  <cpopetz@cygnus.com>
11037
11038         * config/rs6000/rs6000.c (rs6000_fpmem_offset, rs6000_fpmem_size,
11039         fpmem_operand) Delete.
11040         (xer_operand) New.
11041         (rs6000_reg_names, alt_reg_names): Change fpmem to xer.
11042         (machine_function): Remove fpmem_size, fpmem_offset, save_toc_p.
11043         (rs6000_save_machine_status, rs6000_restore_machine_status,
11044         rs6000_init_expanders, rs6000_stack_info, debug_stack_info): Remove
11045         references to above variables.
11046         (gpc_reg_operand): Use XER_REGNO_P instead of FPMEM_REGNO_P.
11047         * config/rs6000/rs6000.h (REG_ALLOC_ORDER, REGISTER_NAMES,
11048         DEBUG_REGISTER_NAMES): Chagne fpmem to xer.
11049         (FPMEM_REGNO_P, FPMEM_REGNUM): Delete.
11050         (XER_REGNO_P, XER_REGNO): New.
11051         (rs6000_stack): Remove fpmem_p, fpmem_offset, fpmem_size.
11052         (PREDICATE_CODES): Change fpmem_operand to xer_operand.
11053         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Change FPMEM_REGNO_P to
11054         XER_REGNO_P.
11055         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
11056         REG_CLASS_FROM_LETTER, CLASS_MAX_NREGS): Change FPMEM_REGS to XER_REGS,         and remove FLOAT_OR_FPMEM_REGS.
11057         (CLASS_CANNOT_CHANGE_SIZE): Change to FLOAT_REGS.
11058
11059         2000-02-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11060
11061         * aix.h (FP_SAVE_INLINE, ASM_OUTPUT_INTERNAL_LABEL_PREFIX,
11062         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Move here...
11063         * rs6000.h: from here.
11064
11065         * rs6000-protos.h (rs6000_select_section): Provide prototype.
11066         (rs6000_select_rtx_section): Likewise.
11067         (rs6000_encode_section_info): Likewise.
11068         (sdata_section): Likewise.
11069         (sdata2_section): Likewise.
11070         (sbss_section): Likewise.
11071         * sysv4.h (rs6000_select_section): Delete prototype.
11072         (rs6000_select_rtx_section): Likewise.
11073         (rs6000_encode_section_info): Likewise.
11074         (sdata_section): Likewise.
11075         (sdata2_section): Likewise.
11076         (sbss_section): Likewise.
11077         (REG_SAVE_AREA): Delete definition duplicated in rs6000.h.
11078
11079         * sysv4.h: Delete various unnecessary #undef's and put a comment
11080         on the remaining ones.
11081         Change various comments according to coding standard.
11082
11083         2000-02-29  Clinton Popetz  <cpopetz@cygnus.com>
11084
11085         * config/rs6000/rs6000.h (MQ_REGNO, CR0_REGNO, CR1_REGNO, CR2_REGNO,
11086         CR3_REGNO, CR4_REGNO, MAX_CR_REGNO): Define.
11087         (CR0_REGNO_P) Remove.
11088         * config/rs6000/rs6000.c (gpc_reg_operand, and64_operand, and_operand,
11089         setup_incoming_varargs, mtcrf_operation, print_operand,
11090         rs6000_stack_info, rs6000_emit_prologue, rs6000_emit_epilogue):
11091         Use the above macros.
11092
11093         2000-02-24  Clinton Popetz  <cpopetz@cygnus.com>
11094
11095         * config/rs6000/rs6000.md: Added a new alternative for each
11096         pattern that had a 'x' alternative but no 'y' alternative.
11097         Added a new split for each of the above patterns.
11098
11099         2000-02-18  Geoff Keating  <geoffk@cygnus.com>
11100
11101         * aix41.h (ASM_CPU_SPEC): Delete.
11102         (CPP_CPU_SPEC): Delete.
11103
11104         * aix.h (RS6000_OUTPUT_BASENAME): Define.
11105         (ASM_OUTPUT_LABEL): Define.
11106         (ASM_GLOBALIZE_LABEL): Define.
11107         (STRIP_NAME_ENCODING): Define.
11108         * rs6000.h (RS6000_OUTPUT_BASENAME): Don't define.
11109         (STRIP_NAME_ENCODING): Don't define.
11110         (ASM_OUTPUT_LABEL): Don't define.
11111         (ASM_GLOBALIZE_LABEL): Don't define.
11112         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use assemble_name to output
11113         names, and ASM_OUTPUT_LABEL to output labels, rather than
11114         asm_fprintf.
11115         (ASM_OUTPUT_LABEL): Define.
11116         (ASM_OUTPUT_INT): Use assemble_name.
11117         (ASM_OUTPUT_DWARF_ADDR): Use assemble_name.
11118         (STRIP_NAME_ENCODING): Don't undefine first.
11119         (RS6000_OUTPUT_BASENAME): Make equivalent to assemble_name for
11120         ELF.
11121         (ASM_OUTPUT_LABELREF): Don't prepend underscores to labels
11122         specified with 'asm' even with -fleading-underscore.
11123         * rs6000.c (print_operand): Use assemble_name when !TARGET_AIX.
11124         (output_epilog): Likewise.
11125         (output_toc): Likewise.
11126         * tramp.asm: Handle -fleading-underscore correctly.
11127
11128         * rs6000.md (builtin_setjmp_receiver): Also run for -fPIC and
11129         -mminimal-toc.
11130         (nonlocal_goto_receiver): Delete.
11131         * rs6000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Delete.
11132
11133         * rs6000.h (ASM_OUTPUT_DEF): Don't define.
11134         (SET_ASM_OP): Define.
11135         * sysv4.h (ASM_OUTPUT_DEF): Don't undefine.
11136
11137         * rs6000.h (ASM_OUTPUT_ADDR_VEC_ELT): Don't define.
11138         (ASM_LONG): Define.
11139
11140         * rs6000.c (rs6000_dll_import_ref): Delete, not used.
11141         * rs6000-protos.h (rs6000_dll_import_ref): Delete.
11142
11143         * rs6000.h: Add 'u' to more constants.
11144
11145         2000-02-18  David Edelsohn  <edelsohn@gnu.org>
11146
11147         * rs6000.md (mfcr+shift): Delete PowerPC64 version.
11148
11149         2000-02-15  David Edelsohn  <edelsohn@gnu.org>
11150
11151         * rs6000.c (reg_or_u_cint_operand): New function.
11152         (logical_operand): Handle 64-bit hosts.
11153         (logical_u_operand): New function.
11154         (non_logical_cint_operand): Handle 64-bit hosts.
11155         (non_logical_u_cint_operand): New function.
11156         * rs6000.h (DATA_SECTION_ASM_OP): Add tab.
11157         (PREDICATE_CODES): Define new functions.
11158         * rs6000-protos.h: Declare new functions.
11159         * rs6000.md (iordi3, xordi3): Constant int must be unsigned 32-bits.
11160         (movdi_64): Bracket code intended for 64-bit hosts.  Create
11161         CONST_DOUBLE for 32-bit values.
11162         (scc insns): Generate DImode compares.
11163         (mfcr insns): Create DImode versions.
11164         (sge matchers): New patterns.
11165
11166         2000-02-15  Gabriel Paubert  <paubert@iram.es>
11167
11168         * rs6000.md: Correct instructions length attributes and
11169         constraints on unsigned compare instructions.
11170         (*ne0): Disable for PowerPC64.
11171
11172         2000-02-11  Geoff Keating  <geoffk@cygnus.com>
11173
11174         * rs6000.c (output_function_profiler): Use .long for a 32-bit
11175         quantity, fix profile1.C test failure under -fPIC.
11176
11177         * rs6000.c: Add 'u' to many constants to suppress warnings.
11178         (constant_pool_expr_1): Make static.
11179         (rs6000_emit_eh_toc_restore): Remove unused 'r2'.
11180         * rs6000.h: Add 'u' to many constants to suppress warnings.
11181
11182         * rs6000.c (rs6000_emit_load_toc_table): Use LCTOC..1 under AIX
11183         for the start of the TOC, instead of LCTOC..0.
11184         * aix.h (toc_section): Use LCTOC..1 under AIX for the start
11185         of the TOC.
11186         * rs6000.md (load_toc_aix_si): Use LCTOC..1.
11187         (load_toc_aix_di): Use LCTOC..1.
11188
11189         * rs6000.h (LEGITIMIZE_ADDRESS): Turn into a function.
11190         * rs6000.c (rs6000_legitimize_address): New function from
11191         LEGITIMIZE_ADDRESS.  Only use create_TOC_reference on
11192         symbols in the constant pool that really are TOC references.
11193         (print_operand_address): For ELF, write TOC offsets under
11194         -fPIC as subtractions in the insn.
11195         (output_toc): For ELF, define symbols in TOC as normal labels,
11196         to match RTL.
11197         (create_TOC_reference): Use gen_rtx_PLUS rather than gen_rtx.
11198         * rs6000-protos.h (rs6000_legitimize_address): Prototype.
11199         (create_TOC_reference): Prototype only when RTX_CODE is defined.
11200         * rs6000.md (movsi): Only use create_TOC_reference on
11201         symbols in the constant pool that really are TOC references.
11202
11203         * rs6000.h (MACHINE_DEPENDENT_REORG): Don't define.
11204         * rs6000.c (rs6000_reorg): Delete.
11205         * rs6000-protos.h (rs6000_reorg): Delete.
11206
11207         2000-02-09  Geoff Keating  <geoffk@cygnus.com>
11208
11209         * rs6000.h (INCOMING_RETURN_ADDR_RTX): New macro.
11210
11211         * aix.h (SETUP_FRAME_ADDRESSES): Define.
11212         * rs6000.c [TARGET_AIX] (insn_after_throw): New static variable.
11213         [TARGET_AIX] (rs6000_aix_emit_builtin_unwind_init): New function.
11214         [TARGET_AIX] (rs6000_emit_eh_toc_restore): New function.
11215         * rs6000-protos.h: Prototype rs6000_emit_eh_toc_restore,
11216         rs6000_aix_emit_builtin_unwind_init.
11217         * rs6000.md (eh_epilogue) [TARGET_AIX]: Call
11218         rs6000_emit_eh_toc_restore on AIX.
11219         (return_eh_si): Use r2.
11220         (return_eh_di): Use r2.
11221
11222         * aix43.h: Turn on HAS_INIT_SECTION and LD_INIT_SWITCH,
11223         since we're breaking binary compatibility anyway.
11224
11225         2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
11226
11227         * config/rs6000/rs6000-protos.h: (get_TOC_alias_set, uses_TOC,
11228         constant_pool_expr_p): Declare them.
11229         (constant_pool_expr_p): Declare it.
11230         * config/rs6000/rs6000.c (toc_label_name): Define.
11231         (rs6000_override_options): Set toc_label_name.
11232         (input_operand): Allow any TOC_RELATIVE_EXPR_P.
11233         (get_TOC_alias_set, constant_pool_expr_p, constant_pool_expr_1,
11234         uses_TOC): New functions.
11235         (print_operand): Delete old '*' case.
11236         (print_operand_address): Use LEGITIMATE_CONSTANT_POOL_ADDRESS_P,
11237         and strip off rtl for TOC before calling output_addr_const.
11238         (rs6000_emit_load_toc_table): Use toc_label_name.
11239         * config/rs6000/rs6000.h (TARGET_SWITCHES): Make msched-prolog
11240         the default.
11241         (LEGITIMATE_CONSTANT_POOL_BASE_P): Delete.
11242         (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): New macros.
11243         (LEGITIMATE_CONSTANT_POOL_ADDRESS_P): Use CONSTANT_POOL_EXPR_P.
11244         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Turn symbol_refs
11245         into explicit TOC_REGISTER offsets.
11246         (TOC_REGISTER): New macro.
11247         * config/rs6000/rs6000.md (movsi, movdi): Emit rtl under
11248         TARGET_TOC to reference TOC_REGISTER.
11249         (load_toc_v4_PIC_1b): Add 4 to offset for toc reload.
11250         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Call
11251         uses_TOC before emitting label references.
11252
11253         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
11254
11255         * rs6000.md (stack_tie): Fix warning.
11256
11257         * eabi-ctors.c: Use 'asm' names for the start/end variables,
11258         to handle -fleading-underscore.
11259         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use asm_fprintf and %U.
11260         (USER_LABEL_PREFIX): New macro.
11261         (ASM_OUTPUT_INTERNAL_LABEL_PREFIX): Use asm_fprintf and %L.
11262         (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U.
11263         * t-ppccomm (MULTILIB_MATCHES_SYSV): Note that call-sysv and
11264         call-linux can use the same multilibs.
11265         * t-ppcgas (MULTILIB_OPTIONS): Don't need to have separate call-sysv
11266         and call-linux multilibs.  Do multilib with -fleading-underscore.
11267         (MULTILIB_DIRNAMES): Follow MULTILIB_OPTIONS change.
11268         (MULTILIB_EXCEPTIONS): Remove call-linux exceptions.  Add restrictions
11269         to call-aix.
11270
11271         * sysv4.h (CPP_SYSV_SPEC): Define _SOFT_FLOAT for all those CPUs that
11272         have MASK_SOFT_FLOAT set.
11273         (CPP_FLOAT_DEFAULT_SPEC): New macro.
11274         (SUBTARGET_EXTRA_SPECS): Set `cpp_float_default' to the value of
11275         CPP_FLOAT_DEFAULT_SPEC.
11276
11277         * rs6000.c (ccr_bit): Add some consistency checks and a variable 'reg'.
11278         * rs6000.md: Whitespace change.
11279         * sysv4.h (LINK_TARGET_SPEC): Whitespace change.
11280         * sysv4le.h (LINK_TARGET_SPEC): Whitespace change.
11281
11282         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
11283
11284         * rs6000.md (eh_epilogue): New expander.
11285         (eh_reg_restore): New expand/split/insn combination.
11286         (return_eh_si): New insn.
11287         (return_eh_di): New insn.
11288
11289         * eabi-ci.asm: Put a label at the start of the .eh_frame section.
11290         * eabi-cn.asm: Put a zero at the end of the .eh_frame section.
11291         * eabi-ctors.c (__do_global_ctors): Register this object's
11292         frame.  Clean up.  Call atexit() after the constructors.
11293         (__do_global_dtors): Deregister this object's frame.  Clean up.
11294         Allow for recursive calls to exit().
11295         * rs6000.c (fixuplabelno): New variable.
11296         * sysv4.h (ASM_OUTPUT_INT): Don't do .fixup if not
11297         TARGET_RELOCATABLE, it slows down exec() under linux.
11298         (ASM_OUTPUT_DWARF_ADDR): Do .fixup if TARGET_RELOCATABLE.
11299
11300         * aix.h (ASM_OUTPUT_DWARF_ADDR_VAR): New macro.
11301         (ASM_OUTPUT_DWARF_DELTA_VAR): New macro.
11302         (ASM_OUTPUT_DWARF_DELTA2): New macro.
11303         (ASM_OUTPUT_DWARF_DELTA4): New macro.
11304         (ASM_OUTPUT_DWARF_ADDR_DELTA): New macro.
11305         (ASM_OUTPUT_DWARF_ADDR): New macro.
11306         (ASM_OUTPUT_DWARF_DATA4): New macro.
11307         (ASM_OUTPUT_DWARF_DATA2): New macro.
11308         (ASM_OUTPUT_DWARF_OFFSET4): New macro.
11309         (ASM_OUTPUT_DWARF_OFFSET): New macro.
11310         (UNALIGNED_INT_ASM_OP): New macro, fake definition.
11311
11312         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
11313
11314         * rs6000.c (rs6000_sr_alias_set): New variable.
11315         (rs6000_override_options): Initialise rs6000_sr_alias_set.
11316         (rs6000_emit_stack_tie): New function.
11317         (rs6000_emit_allocate_stack): Specify RTX_FRAME_RELATED_P
11318         in a way that dwarf2out can understand.
11319         (rs6000_frame_related): New function.
11320         (rs6000_emit_prologue): Use rs6000_sr_alias_set.  Specify
11321         RTX_FRAME_RELATED_P in a way that dwarf2out can understand.
11322         Use rs6000_emit_stack_tie when needed.
11323         (rs6000_emit_epilogue): Use rs6000_sr_alias_set.  Don't set
11324         RTX_FRAME_RELATED_P.  Use rs6000_emit_stack_tie when needed.
11325         * rs6000.md (stack_tie): New insn.
11326         (return_internal_si): Allow return value to be in the count
11327         register.
11328         (return_internal_di): Likewise.
11329
11330         * rs6000.c (output_mi_thunk): Remove unused variable `sp'.
11331
11332         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
11333
11334         * sysv4.h (LOCAL_LABEL_PREFIX): Define, for the use of dbxelf.h.
11335
11336         2000-01-31  Geoff Keating  <geoffk@cygnus.com>
11337
11338         * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): New macro.
11339
11340         * rs6000.md (stmw): Use the right POWER opcode.
11341         (lmw): Likewise.
11342
11343         2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11344
11345         * rs6000-protos.h: New file.
11346
11347         * rs6000.c: Include tm_p.h.  Fix compile time warnings.
11348
11349         * rs6000.h: Move prototypes to rs6000-protos.h.  Fix compile time
11350         warnings.
11351
11352         * sysv4.h: Likewise.
11353
11354         2000-01-28  Geoff Keating  <geoffk@cygnus.com>
11355
11356         * ../../configure.in: Delete powerpcle-*-winnt*
11357         and powerpcle-*-pe|powerpcle-*-cygwin*.
11358         * ../../configure: Regenerated.
11359         * cygwin.h: Delete.
11360         * rs6000.h (OBJECT_WINDOWS_NT): Delete.
11361         (TARGET_WINDOWS_NT): Delete.
11362         (ABI_NT): Delete.
11363         (CALL_NT_DLLIMPORT): Delete.
11364         Delete NT-specific code.
11365         * rs6000.md, rs6000.c, sysv4.h: Delete NT-specific code.
11366         * win-nt.h: Delete.
11367         * t-winnt: Delete.
11368         * nt-ci.asm: Delete.
11369         * nt-cn.asm: Delete.
11370         * ntstack.asm: Delete.
11371
11372         2000-01-27  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11373
11374         * rs6000.h (SELECT_RTX_SECTION): Move to aix.h.
11375         (ASM_FILE_START): Likewise.
11376         (ASM_DECLARE_FUNCTION_NAME): Likewise.
11377         (ASM_OUTPUT_LABELREF): Likewise.
11378         (ASM_OUTPUT_SKIP): Likewise.
11379         (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
11380         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
11381         (ASM_OUTPUT_CASE_LABEL): Likewise.
11382         (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
11383         (ASM_OUTPUT_ASCII): Likewise.
11384
11385         2000-01-27  Clinton Popetz  <cpopetz@cygnus.com>
11386
11387         * rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and
11388         reload_toc_labelno for non-prologue TOC reloads.  Also, don't
11389         increment rs6000_pic_labelno here.
11390         (rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table,
11391         and increment rs6000_pic_labelno here.
11392
11393         2000-01-24  Geoffrey Keating  <geoffk@cygnus.com>
11394
11395         * rs6000.md (fctiwz): Use (set (reg) (unspec:DI [(fix:SI ...)]))
11396         rather than (set (subreg:SI (reg)) (fix:SI ...)) so that register
11397         allocation knows (reg) is dead before the insn.
11398
11399         2000-01-21  Geoff Keating  <geoffk@cygnus.com>
11400
11401         * rs6000.md (movsi_to_cr): Correct typo in output template.
11402
11403         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
11404
11405         * rs6000.c (rs6000_pic_labelno): Always define.
11406         (rs6000_pic_func_labelno): Delete.
11407         (lmw_operation): Check for a zero base register,
11408         which doesn't mean what we want.
11409         (stmw_operation): New function.
11410         (print_operand): Define new 'l' modifier.
11411         (rs6000_stack_info): We must save all 64 bits of the registers
11412         if TARGET_POWERPC64.
11413         (rs6000_output_load_toc_table): Delete.
11414         (rs6000_emit_load_toc_table): New function.
11415         (rs6000_allocate_stack_space): Delete.
11416         (rs6000_emit_allocate_stack): New function.
11417         (rs6000_emit_prologue): New function.
11418         (output_prolog): Use rs6000_emit_prologue.
11419         (rs6000_emit_epilogue): Change a few variable names to be
11420         more accurate.  Restore all 64 bits of the registers if
11421         TARGET_POWERPC64.  Only restore the FP registers which were used
11422         if they are being saved/restored one-at-a-time.
11423         (output_mi_thunk): Delete inefficient code generation.
11424         (output_function_profiler): Don't use rs6000_output_load_toc_table.
11425         * rs6000.h: Declare rs6000_emit_load_toc_table,
11426         rs6000_allocate_stack_space, stmw_operation.  Don't declare
11427         rs6000_output_load_toc_table.
11428         * rs6000.md (elf_high): Allow register 0, but discourage it
11429         heavily.
11430         (elf_low): Support loading into register 0.
11431         (load_toc_aix_si): New pattern.
11432         (load_toc_aix_di): New pattern.
11433         (load_toc_v4_pic_si): New pattern.
11434         (load_toc_v4_pic_di): New pattern.
11435         (load_toc_v4_PIC_1): New pattern.
11436         (load_toc_v4_PIC_1b): New pattern.
11437         (load_toc_v4_PIC_2): New pattern.
11438         (builtin_setjmp_receiver): Use rs6000_emit_load_toc_table.
11439         (nonlocal_goto_receiver): Use rs6000_emit_load_toc_table.
11440         (prologue): New expander.
11441         (movesi_from_cr): New pattern.
11442         (stmw): New pattern.
11443         (save_fpregs_si): New pattern.
11444         (save_fpregs_di): New pattern.
11445
11446         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
11447
11448         * rs6000.md (movsi): Don't use force_reg when no_new_pseudos.
11449         (movdi): Likewise.
11450         (movhi): Likewise.
11451         (movqi): Likewise.
11452
11453         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
11454
11455         * rs6000.md (movsi_got): 'unspec 8' returns a SImode result,
11456         at present.
11457         (movsi_got_internal): Likewise.
11458         (movsi_got_internal+1): Likewise.
11459         (set_sp): 'unspec 7' does a SImode clobber.
11460
11461         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
11462
11463         * rs6000.md (floatsidf2): Don't use the fpmem "register", just
11464         allocate a stack temporary.
11465         (floatsidf2_internal): Likewise.
11466         (floatsidf2_internal+1): Likewise.  Don't do bizzare hacks
11467         with unspec.
11468         (floatunssidf2): Don't use the fpmem "register", just
11469         allocate a stack temporary.
11470         (floatunssidf2_internal): Likewise.
11471         (floatunssidf2_internal+1): Likewise.  Don't do bizzare hacks
11472         with unspec.
11473         (floatsidf2_loadaddr): Delete.
11474         (floatsidf2_store1): Delete.
11475         (floatsidf2_store2): Delete.
11476         (floatsidf2_load): Delete.
11477         (fix_truncdfsi2): Don't use the fpmem "register", just
11478         allocate a stack temporary.
11479         (fix_truncdfsi2_internal_si): Delete.
11480         (fix_truncdfsi2_internal_di): Delete.
11481         (fix_truncdfsi2_internal): New insn.
11482         (fix_truncdfsi2_internal+1): Don't use the fpmem "register".
11483         (fix_truncdfsi2_store): Delete.
11484         (fix_truncdfsi2_load): Delete.
11485         (fctiwz): Produce gen_fctiwz.
11486
11487         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
11488
11489         * eabi.h (INVOKE__main): Define.
11490         * rs6000.c (rs6000_stack_info): Don't handle call to NAME__MAIN
11491         specially.
11492         (rs6000_emit_prologue): Likewise.
11493         * rs6000.h (struct rs6000_stack): Don't keep track of whether
11494         this is the main program.
11495
11496         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
11497
11498         * rs6000.c (rs6000_va_arg): Delete some unused variables.
11499
11500         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
11501
11502         * rs6000.c (rs6000_va_arg): On AIX, padding for small arguments
11503         goes after the argument.
11504
11505         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
11506
11507         * rs6000.md: Document 'unspec' values used.
11508         (epilogue): New expander.
11509         (movesi_to_cr_one): New expander.
11510         (movesi_to_cr and following): New pattern.
11511         (lmw): New pattern.
11512         (return_internal_si): New pattern.
11513         (return_internal_di): New pattern.
11514         (return_and_restore_fpregs_si): New pattern.
11515         (return_and_restore_fpregs_di): New pattern.
11516         * rs6000.h: Declare new functions.
11517         * rs6000.c (rs6000_stack_info): Use current_function_is_leaf
11518         rather than rs6000_calls_p.
11519         (rs6000_makes_calls): Delete.
11520         (lmw_operation): New function.
11521         (mtcrf_operation): New function.
11522         (rs6000_emit_epilogue): New function.
11523         (output_epilog): Call rs6000_emit_epilogue and final if
11524         !TARGET_SCHED_PROLOG, instead of writing text unconditionally.
11525
11526         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
11527
11528         * aix43.h (SUBSUBTARGET_SWITCHES): Document switches.
11529         * aix41.h (SUBSUBTARGET_SWITCHES): Document switches.
11530         * aix.h (SUBTARGET_SWITCHES): Document switches.
11531         * rs6000.h: (TARGET_SWITCHES): Don't print options twice.  Make
11532         sched-prolog and sched-epilog the same.  Document all the
11533         switches.
11534         (TARGET_OPTIONS): No longer allow -mdebug-.
11535
11536         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
11537
11538         * rs6000.h (ASM_FILE_END): Move to aix.h.
11539         (EXTRA_SECTIONS): Move to aix.h.
11540         (READONLY_DATA_SECTION): Move to aix.h.
11541         (EXTRA_SECTION_FUNCTIONS): Move to aix.h.
11542         (SELECT_SECTION): Move to aix.h.
11543         (JUMP_TABLES_IN_TEXT_SECTION): Move to aix.h.
11544         (INT_REGNO_P): Use symbolic name for ARG_POINTER_REGNUM.
11545         (LINK_REGISTER_REGNUM): New definition.
11546         (RETURN_ADDR_RTX): Use symbolic name for LINK_REGISTER_REGNUM.
11547         (SLOW_UNALIGNED_ACCESS): Define in a way suitable for both
11548         AIX and SVR4.
11549         * sysv4.h: Delete the code between the inclusion of rs6000.h
11550         and svr4.h.
11551         (DWARF_DEBUGGING_INFO): Don't define, it's defined in elfos.h.
11552         (FP_ARG_MAX_REG): Move generic definition to rs6000.h.
11553         (RS6000_REG_SAVE): Move generic definition to rs6000.h.
11554         (RS6000_SAVE_AREA): Move generic definition to rs6000.h.
11555         * rs6000.md (floatsidf2_loadaddr): The first arg here is Pmode.
11556         (fix_truncdfsi2_internal): Rename to fix_truncdfsi2_internal_si.
11557         (fix_truncdfsi2_internal_di): New pattern.
11558         (fix_truncdfsi2_store): The second arg here is Pmode too.
11559         (fix_truncdfsi2_load): The second arg here is Pmode too.
11560         (tablejumpdi): Now that switch tables hold only SImode values,
11561         gcc needs to know how to add them to the pc which is DImode.
11562         * rs6000.c (rs6000_stack_info): Use symbolic name for
11563         LINK_REGISTER_REGNUM.
11564         (output_mi_thunk) [!TARGET_ELF]: Don't define sp, it's not used.
11565         (output_toc): Delete unused variables s1 and s2.
11566         (output_ascii): Use fputs not fprintf on a variable string.
11567
11568         2000-01-07  David Edelsohn  <edelsohn@gnu.org>
11569
11570         * rs6000.c (processor_target_table): Add power3 as alias for 630.
11571         * aix43.h: Revert Aug 2 change.
11572         (HAS_INIT_SECTION): Define, not visible yet.
11573         (LD_INIT_SWITCH): Define, not visible yet.
11574         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
11575
11576         2000-01-04  Joel Sherrill (joel@OARcorp.com>
11577
11578         * config/rs6000/rtems.h: Include config/rtems.h.
11579
11580         2000-01-04  David Edelsohn  <edelsohn@gnu.org>
11581
11582         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
11583         (SLOW_UNALIGNED_ACCESS): Define.
11584         (CASE_VECTOR_MODE): Always use 32-bit offsets.
11585         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
11586         (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
11587         (toc_section): Likewise and .toc pseudo-op.
11588         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
11589         64-bit mode.
11590         (TEXT_SECTION_ASM_OP): Likewise.
11591         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
11592         32-bit offsets.
11593
11594         1999-12-17  Jakub Jelinek  <jakub@redhat.com>
11595
11596         * config/rs6000/rs6000.h (TARGET_POWERPC64): Make sure
11597         UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
11598         compiling libgcc2.
11599
11600         2000-01-06  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
11601
11602         * rs6000.h: Move more stuff from here...
11603         * aix.h: to here.
11604         * sysv4.h: Cleanup accordingly.
11605         * netware.h: Likewise
11606
11607         2000-01-05  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
11608
11609         * rs6000.h: Continue cleanup.
11610         * aix.h: Likewise.
11611         * lynx.h: Likewise.
11612         * netware.h: Likewise.
11613         * sol2.h: Likewise.
11614         * sysv4.h: Likewise.
11615         * win-nt.h: Likewise.
11616
11617         * rs6000.h (TARGET_SWITCHES): Add descriptions.
11618         (TARGET_OPTIONS): Likewise.
11619
11620         * sysv4.h (SUBTARGET_SWITCHES): Add descriptions.
11621         (SUBTARGET_OPTIONS): Likewise.
11622
11623         * rs6000.md: Fix compile time warnings.
11624
11625         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
11626
11627         vxworks patches from the Cygnus tree originally by
11628         Michael Meissner <meissner@cygnus.com> and Vladimir Makarov
11629         <vmakarov@cygnus.com>.
11630         * sysv4.h (SUBTARGET_SWITCHES): Add vxworks.
11631         (ENDFILE_SPEC): Likewise.
11632         (LIB_VXWORKS_SPEC): New macro.
11633         (STARTFILE_VXWORKS_SPEC): New macro.
11634         (ENDFILE_VXWORKS_SPEC): New macro.
11635         (LINK_START_VXWORKS_SPEC): New macro.
11636         (LINK_OS_VXWORKS_SPEC): New macro.
11637         (CPP_OS_VXWORKS_SPEC): New macro.
11638         (SUBTARGET_EXTRA_SPECS): Add all the vxworks specs.
11639         * vxppc.h: Rewrite to use proper configuration method.
11640         * vxppcle.h: New file.
11641         * ../../configure.in: Add powerpcle-wrs-vxworks*.
11642         * ../../configure: Rebuilt.
11643
11644         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
11645
11646         Lots of changes to rs6000.h, sysv4.h, aix.h,
11647         aix31.h, aix3newas.h, aix41.h, aix43.h, beos.h,
11648         with the aim that rs6000.h is the first header
11649         included and the others override it.
11650         * aix.h: New file.
11651
11652         * x-aix41-gld: Remove.
11653         * x-aix43: Remove.
11654         * x-aix41: Remove target-specific switches, and don't specify
11655         -Wl,-bbigtoc as we don't need it any more.
11656         * ../../configure.in: Use x-aix41 for ppc AIX 4.1 and above.
11657         Use t-aix43 for AIX 4.3 and above.
11658         * ../../configure: Regenerated.
11659
11660         * rs6000.h (TARGET_SWITCHES): Add some initial prolog-scheduling
11661         options, that don't do anything yet.
11662         (MASK_SCHED_PROLOG): New macro.
11663         (MASK_SCHED_EPILOG): New macro.
11664         (TARGET_SCHED_PROLOG): New macro.
11665         (TARGET_SCHED_EPILOG): New macro.
11666
11667         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
11668
11669         * rs6000.c: Correct comment, the `minimal' TOCs are actually
11670         one per translation unit, not one per function.
11671         (output_toc): Also do duplicate constant elimination
11672         for per-translation-unit TOCs.
11673
11674         * rs6000.md (nonlocal_goto_receiver): Put it back as before.  Add
11675         a comment explaining _exactly_ when this pattern gets used.
11676         (builtin_setjmp_receiver): New pattern for better clarity.
11677         (init_v4_pic): Move it into a section dealing with TOC registers.
11678
11679         1999-12-30  Geoff Keating  <geoffk@cygnus.com>
11680
11681         * rs6000.c (toc_hash_table): New variable.
11682         (rs6000_hash_constant): New function.
11683         (toc_hash_function): New function.
11684         (toc_hash_eq): New function.
11685         (toc_hash_mark_entry): New function.
11686         (toc_hash_mark_table): New function.
11687         (output_toc): Don't output duplicate TOC entries in
11688         a single file.
11689         (rs6000_add_gc_roots): Add the hash table as a GC root.
11690         * t-aix43: Move AR_FOR_TARGET and CLIB here from x-aix43,
11691         where they clearly shouldn't be.  This may need to be fixed
11692         later when there is a GNU ar for AIX.
11693         * x-aix43: Don't define CLIB or AR_FOR_TARGET.
11694         Don't define BOOT_LDFLAGS as it is now not necessary.
11695
11696         1999-12-29  Geoff Keating  <geoffk@cygnus.com>
11697
11698         * rs6000.c (rs6000_build_va_list): Use 'char *' rather than 'void *'
11699         for va_list on AIX.  Use unsigned_char_type_node rather than
11700         constructing our own version on svr4.
11701
11702         1999-12-17  Geoff Keating  <geoffk@cygnus.com>
11703
11704         * tramp.asm (__trampoline_size): Delete CYGNUS LOCAL comment,
11705         since patently it's not.
11706
11707         1999-12-08  Geoff Keating  <geoffk@cygnus.com>
11708
11709         * config/rs6000/rs6000.md (nonlocal_goto_receiver): Turn into
11710         define_expand/define_insn pair, and handle restore of the
11711         SVR4 -fpic register.
11712
11713 Wed Mar 15 15:43:38 2000  Jeffrey A Law  (law@cygnus.com)
11714
11715         * acconfig.h (HAVE_GAS_WEAK): New define.
11716         * configure.in (assembler weak support): Check for .weak support.
11717         * config.in, configure: Rebuilt.
11718         * pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Only define if
11719         HAVE_GAS_WEAK is defined.
11720
11721 2000-03-15  Nick Clifton  <nickc@cygnus.com>
11722
11723         * config/arm/arm.c (arm_output_epilogue): Do not pass %c to
11724         asm_fprintf().
11725
11726 2000-03-15  Zack Weinberg  <zack@wolery.cumb.org>
11727
11728         * cppfiles.c (open_include_file): New function.
11729         (find_include_file, cpp_read_file): Use it.
11730
11731 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
11732
11733         * cpphash.c (dump_hash_helper): Take the slot, not the element.
11734
11735 Wed Mar 15 14:28:54 2000  Jason Eckhardt  <jle@cygnus.com>
11736
11737         * flow.c (verify_flow_info): Check for unconditional return.
11738
11739 Wed Mar 15 11:34:27 2000  Jim Wilson  <wilson@cygnus.com>
11740
11741         * config/ia64/ia64.md (restore_stack_nonlocal): New.
11742         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Delete padding nop.
11743         (__ia64_restore_stack_nonlocal): New.
11744         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __restore_stack_nonlocal.
11745
11746 2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11747
11748         * cpphash.c (collect_formal_parameters): Do not complain about
11749         parameter names that just start with `__VA_ARGS__'.
11750
11751 Wed Mar 15 13:26:58 MET 2000  Jan Hubicka  <jh@suse.cz>
11752
11753         * i386.md (movhi_1): Promote movw imm, reg to movl imm, reg and
11754         movw reg, reg to movzwl reg, reg on PARTIAL_REGISTER_STALL machines.
11755         * i386.c (pentiumpro_cost): Set mul cost to 4.
11756         (x86_use_movx): Set for PPro.
11757
11758 Wed Mar 15 13:07:05 MET 2000  Jan Hubicka  <jh@suse.cz>
11759
11760         * i386.md (ix86_compute_frame_size): stack_alignment_needed is
11761         STACK_BOUNDARY for empty frames now.
11762
11763 2000-03-14  Mark Mitchell  <mark@codesourcery.com>
11764
11765         * stor-layout.c (layout_union): Remove.
11766         (layout_union_field): New function, split out from layout_union.
11767         (finish_union_layout): Likewise.
11768         (layout_field): Handle unions by calling layout_union_field.
11769         (finish_record_layout): Handle unions.
11770         (layout_type): Combine RECORD_TYPE, UNION_TYPE, and
11771         QUAL_UNION_TYPE handling.
11772
11773 Wed Feb 23 13:00:06 CET 2000  Jan Hubicka  <jh@suse.cz>
11774
11775         * flow.c (fixup_reorder_chain): Avoid double labels in the basic block;
11776         end of basic block is jump_insn, not barrier; use create_basic_block
11777         instead of creating basic block by hand.
11778
11779 2000-03-14  Jason Eckhardt  <jle@cygnus.com>
11780
11781         * flow.c (reorder_basic_blocks): Account for barriers when writing
11782         over NEXT_INSN (last_bb->end).
11783         (verify_flow_info): Add check for missing barriers.
11784
11785 2000-03-14  Greg McGary  <gkm@gnu.org>
11786
11787         * c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED.
11788         * c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED.
11789         * c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__,
11790         __ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__,
11791         __unbounded, __unbounded__): New keywords.
11792         * c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens.
11793         * c-parse.y, c-parse.c, c-parse.h: Regenerate.
11794         * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
11795
11796 2000-03-14  Bernd Schmidt  <bernds@cygnus.co.uk>
11797
11798         * cselib.h: New file.
11799         * alias.c: Include "cselib.h".
11800         (fixed_scalar_and_varying_struct_p): Accept the addresses of the
11801         MEMs as two new arguments.
11802         (get_addr): New static function.
11803         (find_base_term): Handle VALUEs.
11804         (memrefs_conflict_p): Likewise.
11805         (true_dependence): Call get_addr on the addresses.
11806         Call fixed_scalar_and_varying_struct_p with addresses that have been
11807         passed through get_addr and canon_rtx.
11808         (write_dependence_p): Move DIFFERENT_ALIAS_SETS_P test for consistency
11809         with true_dependence.
11810         Call get_addr on the addresses; don't call canon_rtx on the MEMs.
11811         * loop.c: Include "cselib.h".
11812         (load_mems): Process extended basic block that enters the loop with
11813         cselib.  Use that information to change initialization of the shadow
11814         register so that a constant equivalence is seen by later passes.
11815         * reload1.c: Include "cselib.h".
11816         (reload_cse_invalidate_regno): Delete function.
11817         (reload_cse_mem_conflict_p): Likewise.
11818         (reload_cse_invalidate_mem): Likewise.
11819         (reload_cse_invalidate_rtx): Likewise.
11820         (reload_cse_regno_equal_p): Likewise.
11821         (reload_cse_check_clobber): Likewise.
11822         (reload_cse_record_set): Likewise.
11823         (reg_values): Delete static variable.
11824         (invalidate_regno_rtx): Likewise.
11825         (reload_cse_delete_noop_set): New static function.
11826         (reload_cse_simplify): New static function, broken out of
11827         reload_cse_regs_1.
11828         (reload_cse_noop_set_p): Delete unused argument INSN.
11829         Just call rtx_equal_for_cselib_p on set source and destination.
11830         (reload_cse_regs_1): Break out some code into reload_cse_simplify and
11831         reload_cse_delete_noop_set.  Delete code to keep track of values; use
11832         cselib functions instead.  Delete code to push/pop obstacks.
11833         (reload_cse_simplify_set): Use cselib to find equivalent values.
11834         Delete code to push/pop obstacks.
11835         (reload_cse_simplify_operands): Likewise.
11836         * rtl.def (VALUE): New rtx code.
11837         * rtl.h (union rtunion_def): New elt rt_cselib.
11838         (X0CSELIB, CSELIB_VAL_PTR): New macros.
11839         * simplify_rtx.c: Include "ggc.h", "obstack.h", "cselib.h".
11840         (new_elt_list, new_elt_loc_list, unchain_one_value, clear_table,
11841         unchain_one_elt_list, unchain_one_elt_loc_list, check_useless_values,
11842         discard_useless_locs, discard_useless_values, entry_and_rtx_equal_p,
11843         hash_rtx, new_cselib_val, add_mem_for_addr, get_value_hash,
11844         cselib_lookup_mem, cselib_subst_to_values, cselib_invalidate_regno,
11845         cselib_mem_conflict_p, cselib_invalidate_mem, cselib_invalidate_rtx,
11846         cselib_record_set, cselib_record_sets): New static functions.
11847         (cselib_lookup, cselib_update_varray_sizes, cselib_init,
11848         cselib_finish, cselib_process_insn, rtx_equal_for_cselib_p,
11849         references_value_p): New functions.
11850         (MAX_USELESS_VALUES, REG_VALUES): New macros.
11851         (table, cselib_current_insn, next_unknown_value, cselib_nregs,
11852         n_useless_values, reg_values, callmem, cselib_obstack,
11853         cselib_startobj, empty_vals, empty_elt_lists, empty_elt_loc_lists):
11854         New static variables.
11855         * varray.h (union varray_data_tag): New elt te.
11856         (VARRAY_ELT_LIST_INIT, VARRAY_ELT_LIST): New macros.
11857         * Makefile.in (reload1.o, loop.o, simplify-rtx.o, alias.o): Update
11858         dependencies.
11859
11860 2000-03-14  Nick Clifton  <nickc@cygnus.com>
11861
11862         * gcc.c (do_spec_1): Catch the case where %* is used in a
11863         substitution pattern, but it has not been initialised.
11864         Issue a meaningful error message if an unrecognised operator
11865         is encountered in a spec string.
11866
11867 2000-03-14  Richard Earnshaw <rearnsha@arm.com>
11868
11869         * function.c (prepare_function_start): Correctly initialize
11870         cfun->stack_alignment_needed.
11871
11872 2000-03-14  Zack Weinberg  <zack@wolery.cumb.org>
11873
11874         * cppfiles.c (find_include_file): Don't assume nshort is a
11875         substring of name.
11876
11877 Tue Mar 14 08:42:21 2000  Jeffrey A Law  (law@cygnus.com)
11878
11879         * configure.in (hppa configurations): Add pa32-regs.h to the
11880         list of tm files as appropriate.
11881         * configure: Rebuilt.
11882         * pa.c (compute_frame_size): Remove explicit knowledge about FP
11883         register numbering.
11884         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
11885         (fmpyaddoperands, fmpysuboperands): Likewise.
11886         * pa.h: Remove various definitions which depend on knowing
11887         how registers are numbered.
11888         * pa32-regs.h: New file with PA32 register numbering specific
11889         definitions.
11890
11891 2000-03-14  Richard Henderson  <rth@cygnus.com>
11892
11893         * regmove.c (combine_stack_adjustments): New.
11894         (stack_memref_p, single_set_for_csa): New.
11895         (free_csa_memlist, record_one_stack_memref): New.
11896         (try_apply_stack_adjustment): New.
11897         (combine_stack_adjustments_for_block): New.
11898         * rtl.h (combine_stack_adjustments): Declare.
11899         * toplev.c (rest_of_compilation): Call it.
11900
11901         * i386.md: Revert 2000-01-16 change.
11902
11903 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
11904
11905         * gccbug.in: Add web category, gcc specific classes.
11906
11907 2000-03-14  Nathan Sidwell  <nathan@codesourcery.com>
11908
11909         * stor-layout.c (finalize_record_size): Fix typo.
11910
11911 2000-03-14  Stan Shebs  <shebs@apple.com>
11912
11913         * c-typeck.c (c_alignof): Error on incomplete types.
11914         * extend.texi (Alignment): Document this.
11915
11916 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
11917
11918         * cppfiles.c: Include mkdeps.h.
11919         (find_include_file, read_include_file): Remove _cpp_ prefix
11920         from name, make static.
11921         (_cpp_execute_include): New function, broken out of
11922         do_include.
11923
11924         * cpplib.c: Don't include mkdeps.h.
11925         (struct directive): Remove type field. Reorder entries.  The
11926         function takes only one argument.
11927         (struct if_stack): Make type field an int.
11928         (directive_table): Rename to dtable.  Generate it, the
11929         prototypes of the directive handlers, and the enum for the
11930         directive numbers, from a template macro.
11931         (do_ifndef, do_include_next, do_import): New functions.
11932         (do_define, do_include, do_endif, do_ifdef, do_if, do_else,
11933         do_undef, do_line, do_elif, do_error, do_pragma, do_warning,
11934         do_ident, do_assert, do_unassert, do_sccs): Take only one
11935         argument.
11936         (do_sccs): Define always, but alter behavior based on
11937         SCCS_DIRECTIVE.
11938         (_cpp_handle_directive, consider_directive_while_skipping):
11939         Restructure for new directive table layout.
11940
11941         (pass_thru_directive): Take a directive number, not a pointer
11942         to a struct directive.
11943         (parse_include): New function, broken out of do_include.
11944         (do_include, do_import, do_include_next): Use parse_include
11945         and _cpp_execute_include.
11946         (do_elif, do_else): Test for T_ELSE specifically when checking
11947         for #elif/#else after #else.
11948         (parse_ifdef): New function, broken out of do_ifdef.
11949         (validate_else): Expect a name arg without a leading #.
11950         (if_directive_name): Delete.
11951         (cpp_define, cpp_assert, cpp_undef, cpp_unassert): Call
11952         directive handlers with only one argument.
11953
11954         * cpphash.h: Update prototypes.
11955         (enum node_type): Remove entries for directives.
11956         * Makefile.in: Update dependencies.
11957
11958         * cpphash.c (dump_hash_helper): Only dump nodes of type
11959         T_MACRO.  Emit a newline after each definition.
11960
11961 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
11962
11963         * gccbug.in: New file.
11964         * configure.in (all_outputs): Add gccbug.
11965         * Makefile.in (install-common): Install gccbug.
11966         (GCCBUG_INSTALL_NAME): New variable.
11967         * configure: Rebuilt.
11968
11969 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
11970
11971         * function.c (put_var_into_stack): Use type_for_mode to calculate
11972         part_type.  Use MEM_SET_IN_STRUCT_P.
11973         * expr.c (store_field): Handle CONCAT.
11974         (store_constructor): Use fields_length.
11975         * tree.c (fields_length): New fn.
11976         * tree.h: Declare it.
11977
11978 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
11979
11980         * Makefile.in (LIBCPP_OBJS): Add cpplex.o.
11981         (cpplex.o): New target.
11982         * po/POTFILES.in: Add cpplex.c.
11983
11984         * cpplex.c (_cpp_grow_token_buffer, null_cleanup,
11985         cpp_push_buffer, cpp_pop_buffer, cpp_scan_buffer,
11986         cpp_expand_to_buffer, cpp_buf_line_and_col, cpp_file_buffer,
11987         skip_block_comment, skip_line_comment, skip_comment,
11988         copy_comment, _cpp_skip_hspace, _cpp_skip_rest_of_line,
11989         _cpp_parse_name, skip_string, parse_string,
11990         _cpp_parse_assertion, cpp_get_token, cpp_get_non_space_token,
11991         _cpp_get_directive_token, find_position,
11992         _cpp_read_and_prescan, _cpp_init_input_buffer): Move here.
11993         (maybe_macroexpand, _cpp_lex_token): New functions.
11994
11995         * cpplib.c (SKIP_WHITE_SPACE, eval_if_expr, parse_set_mark,
11996         parse_goto_mark): Delete.
11997         (_cpp_handle_eof): New function.
11998         (_cpp_handle_directive): Rename from handle_directive.
11999         (_cpp_output_line_command): Rename from output_line_command.
12000         (do_if, do_elif): Call _cpp_parse_expr directly.
12001         * cppfiles.c (_cpp_read_include_file): Don't call
12002         init_input_buffer here.
12003         * cpphash.c (quote_string): Move here, rename _cpp_quote_string.
12004         * cppexp.c (_cpp_parse_expr): Diddle parsing_if_directive
12005         here; pop the token_buffer and skip the rest of the line here.
12006         * cppinit.c (cpp_start_read): Call _cpp_init_input_buffer
12007         here.
12008
12009         * cpphash.h (CPP_RESERVE, CPP_IS_MACRO_BUFFER, ACTIVE_MARK_P):
12010         Define here.
12011         (CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, CPP_SET_MARK,
12012         CPP_GOTO_MARK): New macros.
12013         (_cpp_quote_string, _cpp_parse_name, _cpp_skip_rest_of_line,
12014         _cpp_skip_hspace, _cpp_parse_assertion, _cpp_lex_token,
12015         _cpp_read_and_prescan, _cpp_init_input_buffer,
12016         _cpp_grow_token_buffer, _cpp_get_directive_token,
12017         _cpp_handle_directive, _cpp_handle_eof,
12018         _cpp_output_line_command): Prototype them here.
12019         * cpplib.h (enum cpp_token): Add CPP_MACRO.
12020         (CPP_RESERVE, get_directive_token, cpp_grow_buffer,
12021         quote_string, output_line_command): Remove.
12022
12023 2000-03-13  Bernd Schmidt  <bernds@cygnus.co.uk>
12024
12025         * stmt.c (expand_end_case): RANGE may be signed, and when checking
12026         whether it is too large we must also verify that it isn't negative.
12027
12028 2000-03-13  Jakub Jelinek  <jakub@redhat.com>
12029
12030         * config/sparc/sparc.md: Remove all traces of TARGET_LIVE_G0.
12031         (movsi_zero_liveg0): Remove.
12032         (movsf_insn_novis_liveg0): Remove.
12033         (negsi2): Remove.
12034         (negsi2_not_liveg0): Rename to negsi2.
12035         (one_cmplsi2): Remove.
12036         (one_cmplsi2_not_liveg0): Rename to one_cmplsi2.
12037         (one_cmplsi2_liveg0): Remove.
12038         * config/sparc/sparc.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE,
12039         MASK_LIVE_G0, MASK_BROKEN_SAVERESTORE): Remove.
12040         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_LIVE_G0 if.
12041         (PREDICATE_CODES): Remove zero_operand.
12042         * config/sparc/sparc.c: Remove all traces of TARGET_LIVE_G0 and
12043         TARGET_BROKEN_SAVERESTORE.
12044         (zero_operand): Remove.
12045         * config/sparc/splet.h (SUBTARGET_SWITCHES): Remove -mlive-g0,
12046         -mno-live-g0, -mbroken-saverestore and -mno-broken-saverestore
12047         options.
12048         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
12049         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
12050         TARGET_BROKEN_SAVERESTORE): Remove.
12051         * config/sparc/linux.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
12052         Remove.
12053         * config/sparc/linux64.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
12054         Remove.
12055         * config/sparc/sol2.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
12056         Remove.
12057
12058         * config/sparc/sparc.md (return_df_no_fpu): New pattern.
12059
12060 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
12061
12062         * cpplib.c (do_pragma_implementation): Fix off-by-one error
12063         truncating a string.  Don't assume tokens are nul terminated.
12064         Problem noted by Andreas Jaeger <aj@suse.de>
12065
12066 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
12067
12068         * dwarf2out.c (add_name_and_src_coords_attributes): Only add
12069         DW_AT_MIPS_linkage_name for TREE_PUBLIC decls.
12070         (ASM_OUTPUT_DWARF_ADDR_CONST): Don't output trailing newline.
12071
12072 2000-03-13  Richard Earnshaw <rearnsha@arm.com>
12073
12074         * stor-layout.c (new_record_layout_info): Fix typo inside ifdef
12075         STRUCTURE_SIZE_BOUNDARY.
12076
12077 2000-03-13  Mark Mitchell  <mark@codesourcery.com>
12078
12079         * tree.h (record_layout_info_s): New structure.
12080         (record_layout_info): New type.
12081         (new_record_layout_info): New function.
12082         (layout_field): Likewise.
12083         (finish_record_layout): Likewise.
12084         * stor-layout.c (layout_record): Remove.
12085         (new_record_layout_info): New function.
12086         (layout_field): New function, broken out from layout_record.
12087         (finalize_record_size): Likewise.
12088         (compute_record_mode): Likewise.
12089         (finalize_type_size): New function, broken out from layout_type.
12090         (finish_record_layout): Likewise.
12091         (layout_type): Use them.
12092
12093 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
12094
12095         * cpphash.c: Don't include version.h.
12096         (special_symbol) [case T_VERSION]: Look for the string in
12097         hp->value.cpval; don't use version_string.
12098         * cppinit.c (initialize_builtins): Set hp->value.cpval for
12099         __VERSION__ to version_string.
12100         * Makefile.in (cpphash.o): Update deps.
12101
12102 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
12103
12104         Convert cpplib to use libiberty/hashtab.c.
12105
12106         * cpplib.h (struct cpp_reader): Make hashtab and
12107         all_include_files of type 'struct htab *'.  Delete HASHSIZE
12108         and ALL_INCLUDE_HASHSIZE macros.
12109
12110         * cpphash.h: Update prototypes.
12111         (struct hashnode): Remove next, prev, and bucket_hdr members.
12112         Make length a size_t.  Add hash member.
12113         (struct ihash): Remove next member.  Add hash member.  Make
12114         name a flexible array member.
12115
12116         * cppfiles.c: Include hashtab.h.
12117         (include_hash): Delete.
12118         (IHASHSIZE): New macro.
12119         (hash_IHASH, eq_IHASH, _cpp_init_include_hash): New functions.
12120         (cpp_included): Do the hash lookup here.
12121         (_cpp_find_include_file): Rewrite.
12122         (cpp_read_file): Put the "fake" hash entry into the hash
12123         table.  Honor the control_macro, if it turns out we've seen
12124         the file before.  Don't push the buffer here.
12125         (_cpp_read_include_file): Push the buffer here.
12126         (OMODES): New macro.  Use it whenever we call open(2).
12127
12128         * cpphash.c: Include hashtab.h.
12129         (hash_HASHNODE, eq_HASHNODE, del_HASHNODE, dump_hash_helper,
12130         _cpp_init_macro_hash, _cpp_dump_macro_hash, _cpp_make_hashnode,
12131         _cpp_lookup_slot): New functions.
12132         (HASHSIZE): new macro.
12133         (hashf, _cpp_install, _cpp_delete_macro): Delete.
12134         (_cpp_lookup): Use hashtab.h routines.
12135
12136         * cppinit.c: Include hashtab.h.
12137         (cpp_reader_init): Call _cpp_init_macro_hash and
12138         _cpp_init_include_hash.  Don't allocate hashtab directly.
12139         (cpp_cleanup): Just call htab_delete on pfile->hashtab and
12140         pfile->all_include_files.
12141         (initialize_builtins): Use _cpp_make_hashnode and
12142         htab_find_slot to add hash entries.
12143         (cpp_finish): Just call _cpp_dump_macro_hash.
12144         * cpplib.c: Include hashtab.h.
12145         (do_define): Use _cpp_lookup_slot and _cpp_make_hashnode to
12146         create hash entries.
12147         (do_pragma_poison, do_assert): Likewise.
12148         (do_include): Don't push the buffer here.  Don't increment
12149         system_include_depth unless _cpp_read_include_file succeeds.
12150         (do_undef, do_unassert): Use _cpp_lookup_slot and htab_clear_slot
12151         or htab_remove_elt.
12152         (do_pragma_implementation): Use alloca to create copy.
12153
12154         * Makefile.in: Update dependencies.
12155
12156 2000-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12157
12158         * cppinit.c (cl_directive_handler): More K&R fixing.
12159
12160 Sat Mar 11 23:54:26 2000  Jim Wilson  <wilson@cygnus.com>
12161
12162         * config/ia64/ia64.c (ia64_compute_frame_size): Align size to
12163         STACK_BOUNDARY.
12164         * config/ia64/ia64.h (REGISTER_MOVE_COST): Add missing parentheses.
12165
12166 2000-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12167
12168         * cppinit.c (no_arg, no_ass, no_dir, no_fil, no_mac, no_pth):
12169         Change from char[] to macros.
12170
12171 2000-03-12  Neil Booth  <NeilB@earthling.net>
12172
12173         * cppinit.c (cpp_start_read): Update indirect function
12174         call to K&R C.
12175
12176 Sat Mar 11 16:18:12 2000  Jim Wilson  <wilson@cygnus.com>
12177
12178         * config/ia64/ia64.h (ADDITIONAL_REGISTER_NAMES): Fix typo in loc79
12179         entry.
12180
12181         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
12182         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyright messages.
12183
12184 2000-03-11  Neil Booth  <NeilB@earthling.net>
12185
12186         * cppinit.c (struct pending option): Replace undef with a
12187         pointer to a directive handling routine.
12188         (struct cpp_pending): Replace separate assert_ and define_
12189         lists with one directive_ list.
12190         (new_pending_define): Rename new_pending_directive. Extra
12191         argument is the directive's handling routine.
12192         (handle_option): Update to use new_pending_directive.
12193
12194 2000-03-11  Neil Booth  <NeilB@earthling.net>
12195
12196         * cppfiles.c (file_cleanup, _cpp_find_include_file,
12197         remap_filename, _cpp_read_include_file, actual_directory,
12198         hack_vms_include_specification): Replace bcopy(), index() etc
12199         calls.  Add casts to some allocations.  Make some variables
12200         pointers to const [unsigned] char.
12201         * cpphash.c (_cpp_install, macro_cleanup, collect_expansion,
12202         collect_formal_parameters): Similarly.
12203         * cppinit.c (struct pending_option, append_include_chain,
12204         cpp_options_init, cpp_reader_init, initialize_standard_includes,
12205         cpp_start_read, new_pending_define, handle_option): Similarly.
12206         * cpplib.c (cpp_define, copy_comment, do_define, do_include,
12207         do_undef, do_error, do_warning, do_pragma, do_pragma_once,
12208         do_pragma_implementation, detect_if_not_defined,
12209         do_ifdef, skip_if_group, cpp_get_token, parse_string,
12210         do_assert, do_unassert): Similarly.
12211         * cpplib.h (cpp_buffer, cpp_options): Update types.  Update
12212         function prototypes.
12213         * mkdeps.c (deps_add_target, deps_add_dep): cast allocations.
12214
12215 2000-03-10  Richard Henderson  <rth@cygnus.com>
12216
12217         * builtins.c (expand_builtin_strlen): Revert last change.
12218         Use emit_insn_before if we're at the beginning of a sequence.
12219
12220 2000-03-10  Jason Merrill  <jason@casey.cygnus.com>
12221
12222         * builtins.c (expand_builtin_strlen): Make sure that we have something
12223         at the beginning of the sequence.
12224
12225         * toplev.c (rest_of_compilation): Also set TREE_NOTHROW for
12226         deferred inlines.
12227
12228         * invoke.texi (C++ Dialect Options): Document -fno-enforce-eh-specs.
12229
12230 2000-03-10  Richard Henderson  <rth@cygnus.com>
12231
12232         * except.c (can_throw): Use INTVAL on a CONST_INT.
12233         (reachable_handlers): Likewise.
12234         * flow.c (count_basic_blocks, find_basic_blocks_1): Likewise.
12235
12236 2000-03-10  Andreas Jaeger  <aj@suse.de>
12237
12238         * config/mips/linux.h: Undefine MD_EXEC_PREFIX and
12239         MD_STARTFILE_PREFIX since those are not needed on linux.
12240         (ASM_FILE_START): New, from mips/gnu.h.
12241
12242 2000-03-09  Richard Henderson  <rth@cygnus.com>
12243             Alex Samuel  <samuel@codesourcery.com> and others
12244
12245         * Makefile.in (ssa.o): New rule.
12246         (OBJS): Add ssa.o.
12247         (STAGESTUFF): Add *.ssa and *.ussa.
12248         (mostlyclean): Delete *.ssa, *.ussa, */*.ssa, */*.ussa.
12249         * rtl.def (PHI): New RTL expression.
12250         * rtl.h (clear_log_links): New declaration.
12251         (convert_to_ssa): Likewise.
12252         (convert_from_ssa): Likewise.
12253         * flow.c (split_edge): If the entry node falls through to the
12254         split edge's source block, split the entry edge.
12255         (clear_log_links): New function.
12256         * toplev.c (ssa_dump): New variable.
12257         (flag_ssa): Likewise.
12258         (f_options): Add "ssa".
12259         (compile_file): Create SSA dump files.
12260         (rest_of_compilation): Go to and from SSA if enabled.
12261         (decide_d_option): Handle -de for SSA dump files.
12262         * ssa.c: New file.
12263
12264 Thu Mar  9 20:01:38 2000  Jim Wilson  <wilson@cygnus.com>
12265
12266         * expr.c (expand_assignment): For a CALL_EXPR, special case PARM_DECL
12267         same as VAR_DECL.
12268
12269 2000-03-09  Benjamin Kosnik  <bkoz@cygnus.com>
12270
12271         * config/alpha/linux.h (WCHAR_TYPE): Make consistent.
12272
12273 Thu Mar  9 18:10:02 2000  Jeffrey A Law  (law@cygnus.com)
12274
12275         * config/pa/pa-hpux10.h (LIB_SPEC): Correct typo in !p case.
12276         (MD_STARTFILE_PREFIX_1): New macro.
12277
12278 2000-03-09  Robert Lipe  <robertl@sco.com>
12279
12280         * config/ia64/ia64.c: Include system.h.
12281
12282 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
12283
12284         * except.c (nothrow_function_p): If -fno-exceptions, just return.
12285         (init_eh_nesting_info): Likewise.
12286
12287         * tree.h (struct tree_common): Rename raises_flag to nothrow_flag.
12288         (TREE_NOTHROW): Rename from TREE_RAISES.
12289         * toplev.c (rest_of_compilation): Set it.
12290         * print-tree.c (print_node): Adjust.
12291         * tree.c (stabilize_reference, build, build1): Don't set TREE_RAISES.
12292         (stabilize_reference_1, get_unwidened, get_narrower): Likewise.
12293         * calls.c (emit_call_1): Add 'nothrow' parm.  Add
12294         REG_EH_REGION note as appropriate.
12295         (libfunc_nothrow): New fn.
12296         (emit_library_call, emit_library_call_value): Use it.
12297         (expand_call): Check TREE_NOTHROW.
12298
12299         * varasm.c (make_decl_rtl): Skip initial '*' when setting
12300         DECL_ASSEMBLER_NAME.
12301
12302 2000-03-09  Andreas Jaeger  <aj@suse.de>
12303
12304         * mips/linux.h (NO_IMPLICIT_EXTERN_C): Define.
12305         (TARGET_MEM_FUNCTIONS): Define.
12306
12307 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
12308
12309         * i386.c (ix86_valid_type_attribute_p): Use compare_tree_int.
12310
12311         * except.c (can_throw): See through a SEQUENCE.
12312         (nothrow_function_p): New fn.
12313         * except.h: Declare it.
12314         * function.c (current_function_nothrow): New var.
12315         (prepare_function_start): Initialize it.
12316         * output.h: Declare it.
12317         * toplev.c (rest_of_compilation): Set it.
12318         * dwarf2out.c (dwarf2out_begin_prologue): Use it.
12319
12320 2000-03-09  Zack Weinberg  <zack@wolery.cumb.org>
12321
12322         * cpphash.c (collect_formal_parameters): strncmp returns 0 for
12323         match.  (cpp_compare_defs): Count the nul separator when
12324         advancing over argument names.
12325
12326 2000-03-09  Bernd Schmidt  <bernds@cygnus.co.uk>
12327
12328         * recog.c (preprocess_constraints): Matching constraints affect
12329         same alternative/different operand, not same operand/different
12330         alternative.
12331
12332         * reload1.c (eliminate_regs_in_insn): Handle additions of eliminable
12333         register and a constant specially.
12334
12335 2000-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12336
12337         * libgcc2.h: New file.
12338         * libgcc2.c: Move macros, typedefs and prototypes to libgcc2.h.
12339
12340 Wed Mar  8 16:19:42 2000  Jim Wilson  <wilson@cygnus.com>
12341
12342         * configure.in (ia64*-*-elf*, ia64*-*-linux*): New.
12343         * configure: Regenerate.
12344         * config/ia64: New.
12345
12346 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
12347
12348         * Makefile.in (LIBCPP_DEPS): New macro.
12349         (cpplib.o, cpphash.o, cpperror.o, cppexp.o, cppfiles.o): Use
12350         it to declare deps.
12351         * cpperror.c: Include cpphash.h.
12352         * cppexp.c: Include cpphash.h.  Remove MULTIBYTE_CHARS
12353         dingleberry.
12354         (lex): Don't use CPP_WARN_UNDEF.
12355         (_cpp_parse_expr): Return an int, the truth value.
12356         * cppfiles.c: Include cpphash.h.
12357         (_cpp_merge_include_chains): Move to cppinit.c and make static.
12358         * cppinit.c (include_defaults_array): Disentangle.
12359         (cpp_cleanup): Don't free the if stack here.
12360         (cpp_finish): Pop off all buffers, not just one.
12361         * cpplib.c (eval_if_expr): Return int.
12362         (do_xifdef): Rename do_ifdef.
12363         (handle_directive): Don't use CPP_PREPROCESSED.
12364         (cpp_get_token): Don't use CPP_C89.
12365         * fix-header.c: Don't use CPP_OPTIONS.
12366
12367         * cpplib.h: Move U_CHAR, enum node_type, struct
12368         file_name_list, struct ihash, is_idchar, is_idstart,
12369         is_numchar, is_numstart, is_hspace, is_space, CPP_BUF_PEEK,
12370         CPP_BUF_GET, CPP_FORWARD, CPP_PUTS, CPP_PUTS_Q, CPP_PUTC,
12371         CPP_PUTC_Q, CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q,
12372         CPP_BUMP_BUFFER_LINE, CPP_BUMP_LINE, CPP_PREV_BUFFER,
12373         CPP_PRINT_DEPS, CPP_TRADITIONAL, CPP_PEDANTIC, and prototypes
12374         of _cpp_simplify_pathname, _cpp_find_include_file,
12375         _cpp_read_include_file, and _cpp_parse_expr to cpphash.h.
12376         Move struct if_stack to cpplib.c.  Move struct cpp_pending to
12377         cppinit.c.
12378         Change all uses of U_CHAR to be unsigned char instead.
12379         Delete CPP_WARN_UNDEF, CPP_C89, and CPP_PREPROCESSED.
12380
12381 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
12382
12383         * dwarf2out.c (dw_fde_struct): Add 'nothrow'.
12384         (dwarf2out_begin_prologue): Set it.
12385         (output_call_frame_info): Don't emit EH unwind info for leaves.
12386
12387         * flow.c (count_basic_blocks, find_basic_blocks_1): A rethrow
12388         can occur outside of an EH region.
12389         * except.c: Correct comments about rethrow behavior.
12390         (rethrow_symbol_map): Do nothing if !flag_new_exceptions.
12391
12392 2000-03-08  Andrew MacLeod  <amacleod@cygnus.com>
12393
12394         * flow.c (make_edges): Always call make_eh_edge for calls.
12395
12396 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
12397
12398         * cpplib.h (parse_underflow_t, CPP_NULL_BUFFER): Delete.
12399         (struct cpp_buffer): Remove fname and underflow fields.
12400         (struct cpp_reader): Remove get_token field.
12401         (struct include_hash): Rename to struct ihash.  Add typedef to
12402         IHASH.
12403         (struct if_stack): Remove fname field.
12404         (IF_STACK_FRAME): Rename to IF_STACK.
12405
12406         * cpperror.c (print_containing_files): Trust that there are no
12407         macro buffers below the top file buffer.
12408         * cppfiles.c: Replace all references to 'struct include_hash'
12409         with 'IHASH'.  Rename initialize_input_buffer to
12410         init_input_buffer.  Don't set or reference cpp_buffer->fname,
12411         use buffer->ihash->name instead.
12412         * cpphash.c (special_symbol): Use cpp_file_buffer.  Use NULL
12413         not CPP_NULL_BUFFER.
12414         * cppinit.c: Use NULL not CPP_NULL_BUFFER, IF_STACK not
12415         IF_STACK_FRAME, IHASH not struct include_hash.
12416         * cpplib.c: Rename eval_if_expression to eval_if_expr.  Remove
12417         null_underflow.  Use IF_STACK not IF_STACK_FRAME, IHASH not
12418         struct include_hash, NULL not CPP_NULL_BUFFER.  Remove all
12419         references to cpp_buffer->fname (delete entirely, or use
12420         ->ihash->name instead) and IF_STACK->fname.
12421         (cpp_push_buffer): Don't set new->underflow.
12422         (do_include): Use cpp_file_buffer.
12423
12424         * cpphash.c (collect_formal_parameters): Remove duplicate
12425         increment of argslen.  Pedwarn in C99 mode if __VA_ARGS__ is
12426         used as a macro argument name.  Don't append "..." to namebuf
12427         for varargs macros.  After we're done scanning, go through
12428         namebuf and make it NUL separated, not comma separated.
12429         (_cpp_compare_defs): Remove register tag from variables.
12430         Expect defn->argnames to be NUL separated.
12431         (_cpp_dump_definition): Expect defn->argnames to be NUL
12432         separated and in forward order.
12433         * cpphash.h: Update documentation of argnames field.
12434
12435 2000-03-08  Richard Henderson  <rth@cygnus.com>
12436
12437         * builtins.c (expand_builtin_strlen): Be prepared for strlensi
12438         to fail.  Don't pre-expand the source operand.
12439
12440         * i386.md (strlensi): Initialize eoschar and align before use.
12441
12442 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
12443
12444         * expr.c (expand_expr, case ARRAY_REF): Still check for missing
12445         CONSTRUCTOR element.
12446
12447 2000-03-08  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
12448
12449         * mips.c (mips_expand_prologue): If the last
12450         named argument is the vararg marker "va_list", treat it as
12451         an unnamed argument.
12452
12453 2000-03-08  Clinton Popetz  <cpopetz@cygnus.com>
12454
12455         * dbxout.c (dbxout_parms): When correcting for promoted
12456         big-endian parameters, use the mode of the DECL_RTL rather
12457         than UNITS_PER_WORD.
12458
12459 2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
12460
12461         * c-common.h (make_fname_decl): Declare.
12462         * c-common.c (make_fname_decl): Define.
12463         (declare_hidden_char_array): Remove.
12464         (declare_function_name): Use make_fname_decl.
12465         * c-decl.c (c_make_fname_decl): New function.
12466         (init_decl_processing): Set make_fname_decl.
12467
12468 Tue Mar  7 23:50:31 2000  Jeffrey A Law  (law@cygnus.com)
12469
12470         * cccp.c (handle_directive): Initialize backslash_newlines_p.
12471
12472 2000-03-07  Philipp Thomas  <pthomas@suse.de>
12473
12474         * po/POTFILES.in: Remove cppalloc.c from file list.
12475
12476 2000-03-07  Steve Chamberlain  <sac@pobox.com>
12477
12478         * pj.c (pj_expand_prologue): current_function->args_info is
12479         now current_function_args_info.
12480
12481         * pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX,
12482         LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL,
12483         ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define.
12484
12485 2000-03-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12486
12487         * config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is
12488         output as hexadecimal rather than the default octal.
12489
12490 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
12491
12492         * cpphash.c (special_symbol): Fix thinko in previous commit.
12493
12494 2000-03-07  Neil Booth  <NeilB@earthling.net>
12495
12496         * cppexp.c (struct operation, left_shift, right_shift,
12497         cpp_parse_expr): Change some "char"s to "U_CHAR"s, and some
12498         "int"s to "unsigned int"s.
12499         * cpplib.c (detect_if_not_defined, do_assert, do_unassert):
12500         Similarly.
12501         * cpplib.h: Update for above.
12502         * mkdeps.c (deps_init, deps_calc_target): Cast pointers
12503         returned from allocations.
12504
12505         * cppinit.c (opt_comp, parse_options): New functions.
12506         (handle_option): Use parse_option to parse a single command
12507         line option, that possibly takes an argument.
12508         (cpp_handle_options): Sort the array of command line options on
12509         first invocation (non-ASCII hosts only).
12510         (print_help): Update.
12511
12512 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
12513
12514         * mkdeps.c (munge): Fix off-by-one bug and inconsistencies in
12515         backslash counting loops.  Problem noted by Matt Kraai <kraai@ghs.com>.
12516
12517         * cppfiles.c (_cpp_find_include_file): Make sure ih->name is
12518         initialized.
12519         * cppinit.c (cpp_cleanup): Free imp->nshort also.
12520
12521         * cpperror.c (cpp_print_containing_files,
12522         cpp_print_file_and_line, v_cpp_message): Rename to
12523         print_containing_files, print_file_and_line, and v_message.
12524         * cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename
12525         to _cpp_parse_expr, parse_escape, and lex.
12526         (parse_charconst): Remove broken multibyte support.
12527         * cppfiles.c (include_hash): Make static.
12528         (cpp_included): New function.
12529         (merge_include_chains, find_include_file, finclude,
12530         simplify_pathname): Rename to _cpp_merge_include_chains,
12531         _cpp_find_include_file, _cpp_read_include_file, and
12532         _cpp_simplify_pathname.
12533         * cpphash.c (cpp_lookup, free_definition, delete_macro,
12534         cpp_install, create_definition, macroexpand, compare_defs,
12535         dump_definition): Rename to _cpp_lookup, _cpp_free_definition,
12536         _cpp_delete_macro, _cpp_install, _cpp_create_definition,
12537         _cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition.
12538         * cppinit.c (cpp_handle_option): Rename to handle_option, make
12539         static.
12540         * cpplib.c: Remove extern prototype of cpp_parse_expr.
12541
12542         * cpphash.h: Update prototypes.
12543         * cpplib.h: Likewise.  Prototype _cpp_parse_expr here.
12544
12545 2000-03-07  Andrew Haley  <aph@cygnus.com>
12546
12547         * config/mips/mips.h (PTRDIFF_TYPE): Revert broken change;
12548         PTRDIFF_TYPE should be based solely on Pmode.
12549         (SIZE_TYPE): ditto.
12550
12551 2000-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12552
12553         * rtl.h (rtunion_def): Constify member `rtstr'.
12554         (emit_line_note_after, emit_line_note, emit_line_note_force,
12555         emit_note, decode_asm_operands): Constify.
12556
12557         * cse.c (canon_hash): Likewise.
12558
12559         * dbxout.c (dbxout_block): Likewise.
12560
12561         * diagnostic.c (file_and_line_for_asm, v_error_for_asm,
12562         v_warning_for_asm): Likewise.
12563
12564         * dwarfout.c (function_start_label): Likewise.
12565
12566         * emit-rtl.c (emit_line_note_after, emit_line_note, emit_note,
12567         emit_line_note_force): Likewise.
12568
12569         * final.c (last_filename, asm_insn_count, final_scan_insn,
12570         output_source_line): Likewise.
12571
12572         * function.h (struct emit_status): Likewise.
12573
12574         * gcse.c (hash_expr_1): Likewise.
12575
12576         * genattr.c (gen_attr, main): Likewise.
12577
12578         * genattrtab.c (struct function_unit, current_alternative_string,
12579         write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq,
12580         attr_numeral, check_attr_test, check_attr_value,
12581         convert_set_attr_alternative, convert_set_attr,
12582         compute_alternative_mask, simplify_by_exploding, gen_attr,
12583         gen_unit): Likewise.
12584
12585         * genflags.c (gen_insn): Likewise.
12586
12587         * gengenrtl.c (type_from_format): Likewise.
12588
12589         * genopinit.c (gen_insn): Likewise.
12590
12591         * genoutput.c (n_occurrences, process_template, process_template):
12592         Likewise.
12593
12594         * ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
12595         Likewise.
12596
12597         * ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
12598         Likewise.
12599
12600         * ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable,
12601         ggc_set_mark, ggc_get_size): Likewise.
12602
12603         * objc/objc-act.c (build_module_descriptor, finish_objc): Likewise.
12604
12605         * optabs.c (init_one_libfunc): Likewise.
12606
12607         * output.h (assemble_start_function): Likewise.
12608
12609         * recog.c (decode_asm_operands): Likewise.
12610
12611         * toplev.c (rest_of_compilation): Likewise.
12612
12613         * tree.h (emit_line_note_after, emit_line_note,
12614         emit_line_note_force): Likewise.
12615
12616         * varasm.c (asm_output_bss, asm_output_aligned_bss,
12617         asm_emit_uninitialised, assemble_start_function,
12618         assemble_variable, const_hash, compare_constant_1,
12619         find_pool_constant, mark_constant_pool, assemble_alias): Likewise.
12620
12621         * xcoffout.h (DBX_FINISH_SYMBOL): Likewise.
12622
12623         * alpha/alpha.md (call_vms, call_value_vms): Likewise.
12624
12625         * arm/aof.h (ASM_OUTPUT_ASCII): Likewise.
12626
12627         * arm/aout.h (ASM_OUTPUT_ASCII): Likewise.
12628
12629         * arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p,
12630         arm_dllimport_name_p): Likewise.
12631
12632         * arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op):
12633         Likewise.
12634
12635         * arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise.
12636
12637         * arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12638
12639         * arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p,
12640         arm_mark_dllexport, arm_mark_dllimport,
12641         arm_pe_encode_section_info): Likewise.
12642
12643         * arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS,
12644         ASM_FINISH_DECLARE_OBJECT): Likewise.
12645
12646         * arm/thumb.c (thumb_function_prologue): Likewise.
12647
12648         * arm/thumb.h (ASM_OUTPUT_ASCII): Likewise.
12649
12650         * avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12651
12652         * clipper/clix.h (ASM_OUTPUT_ASCII): Likewise.
12653
12654         * fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise.
12655
12656         * i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise.
12657
12658         * i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12659
12660         * i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING,
12661         ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise.
12662
12663         * i386/i386-protos.h (asm_output_function_prefix): Likewise.
12664
12665         * i386/i386.c (asm_output_function_prefix): Likewise.
12666
12667         * i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise.
12668
12669         * i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12670
12671         * i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise.
12672
12673         * i386/sco5.h (ASM_FINISH_DECLARE_OBJECT,
12674         ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII,
12675         ASM_OUTPUT_SECTION_NAME): Likewise.
12676
12677         * i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise.
12678
12679         * i860/paragon.h (ASM_OUTPUT_ASCII): Likewise.
12680
12681         * i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise.
12682
12683         * m32r/m32r.c (m32r_encode_section_info): Likewise.
12684
12685         * mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12686
12687         * mcore/mcore.c (mcore_encode_section_info): Likewise.
12688
12689         * mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12690
12691         * mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12692
12693         * mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12694
12695         * mips/mips.h (ASM_OUTPUT_IDENT): Likewise.
12696
12697         * mips/mips.md (movdi, movsi): Likewise.
12698
12699         * mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12700
12701         * netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12702
12703         * openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12704
12705         * ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
12706         ASM_OUTPUT_ASCII): Likewise.
12707
12708         * rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog,
12709         output_mi_thunk, output_toc): Likewise.
12710
12711         * rs6000/rs6000.md (movsi): Likewise.
12712
12713         * rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise.
12714
12715         * tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise.
12716
12717         * v850/v850.c (print_operand, print_operand_address,
12718         v850_encode_data_area): Likewise.
12719
12720 2000-03-07  Clinton Popetz  <cpopetz@cygnus.com>
12721
12722         * config/mips/mips.md (zero_extendsidi2): Always force operand
12723         one to memory for mips16.
12724
12725 Mon Mar  6 15:22:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12726
12727         * tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts.
12728         (struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT.
12729         (attribute_hash_list, type_hash_canon): hashcode is now unsigned.
12730         (type_hash_lookup, type_hash_add, type_hash_list): Likewise.
12731         (min_precision): Result is unsigned.
12732         (add_double, neg_double, mul_double): Low word is unsigned.
12733         (lshift_double, rshift_double, lrotate_double): Likewise.
12734         (rrotate_double, div_and_round_double): Likewise.
12735         (tree_floor_log2, compare_tree_int): New functions.
12736         (preserve_rtl_expr_temps): New declaration.
12737         * c-common.c (declare_hidden_char_array): Use compare_tree_int.
12738         (decl_attributes): Use tree_log2 to find alignment.
12739         Check for TREE_INT_CST_HIGH for format args.
12740         (min_precision): Now unsigned.
12741         Use tree_floor_log2.
12742         (truthvalue_conversion): Delete long-disabled code.
12743         * c-decl.c (finish_struct): Clean up tests on field width.
12744         (finish_function): Use compare_tree_int.
12745         * c-pragma.c (handle_pragma_token): Use tree_log2 for alignment.
12746         * c-typeck.c (comptypes): Use tree_int_cst_equal.
12747         (default_conversion, digest_init): Use compare_tree_int.
12748         (build_binary_op): Use integer_all_onesp and compare_tree_int.
12749         Fix type errors in forming masks.
12750         * calls.c (initialize_argument_information): Use compare_tree_int.
12751         * dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
12752         * except.c (expand_eh_region_start_tree): Use compare_tree_int.
12753         * expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop.
12754         (store_field): Use compare_tree_int.
12755         (expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT.
12756         (expand_expr, case ARRAY_REF): Use compare_tree_int.
12757         (do_jump, case BIT_AND_EXPR): Use tree_floor_log2.
12758         (do_store_flag): Use compare_tree_int.
12759         * fold-const.c (encode, decode): Low part is always unsigned.
12760         (force_fit_type, add_double, neg_double, mul_double): Likewise.
12761         (lshift_double, rshift_double, lrotate_double): Likewise.
12762         (rrotate_double, div_and_round_double, int_const_binop): Likewise.
12763         (fold_convert): Use compare_tree_int.
12764         (operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal.
12765         (invert_truthvalue, case INTEGER_CST): Likewise.
12766         (fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW.
12767         * mkdeps.c (deps_dummy_targets): Make I unsigned.
12768         * rtl.h (add_double, neg_double, mul_double): Low words are unsigned.
12769         (lshift_double, rshift_double, lrotate_double, rrotate_double):
12770         Likewise.
12771         * stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree.
12772         (expand_end_case): Use compare_tree_int.
12773         (estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
12774         * stor-layout.c (mode_for_size_tree): Use compare_tree_int.
12775         (layout_decl): Likewise.
12776         (layout_record, layout_union): Make sizes unsigned.
12777         (layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype.
12778         (layout_type, case QUAL_UNION_TYPE): Use compare_tree_int.
12779         * tree.c (struct type_hash): hashcode is unsigned.
12780         (build_type_attribute_variant, type_hash_list): Likewise.
12781         (type_hash_lookup, type_hash_add, type_hash_canon): Likewise.
12782         (attribute_hash_list, build_array_type, build_method_type): Likewise.
12783         (build_complex_type): Likewise.
12784         (real_value_from_int_cst): Remove unneeded casts.
12785         (integer_all_onesp): Add casts.
12786         (tree_floor_log2, compare_tree_int): New functions.
12787         (build_index_type): Use tree_int_cst_sgn.
12788         * varasm.c (assemble_variable): Use compare_tree_int.
12789
12790 2000-03-06  Jason Merrill  <jason@casey.cygnus.com>
12791
12792         * cpphash.c (collect_expansion): Also catch ## at start of macro.
12793
12794         * varasm.c (make_decl_rtl): Don't add a number to members of
12795         local classes.
12796         (make_function_rtl): Likewise.
12797
12798 2000-03-06  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
12799
12800         * gcse.c (compute_can_copy): Adjust if/else blocks from rth's
12801         patch from 2000-01-28.
12802
12803 2000-03-06  Clinton Popetz  <cpopetz@cygnus.com>
12804
12805         * config/sh/sh.c: (barrier_align): Handle a delay slot that is
12806         filled with an insn from the jump target.
12807
12808 2000-03-07  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12809
12810         * config/c4x/c4x-protos.h (c4x_global_name): Constify char *.
12811         (c4x_external_ref): Likewise.
12812         * config/c4x/c4x.c (struct name_list): Likewise.
12813
12814 1999-12-16  Ben Collins  <bcollins@debian.org>
12815
12816         * Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth
12817         argument to genmultilib.
12818         * genmultilib: accept new MULTILIB_EXCLUSIONS option and output
12819         the contents into the multilib.h header.
12820         * gcc.c: Declare multilib_exclusions for the specs file.
12821         (set_multilib_dir): Use it.
12822         (print_multilib_info): Likewise.
12823         * t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option
12824         to pass to genmultilib.
12825
12826 2000-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12827
12828         * builtins.c (built_in_class_names, built_in_names): Constify a
12829         char*.
12830
12831         * gmon-sol2.c (monstartup, moncontrol): Cast ptrs to long, not
12832         int.
12833         (_mcleanup): Ensure value matches format specifier in sprintf.
12834
12835         * cpphash.c (special_symbol): Don't needlessly cast away
12836         const-ness.
12837
12838         * cppinit.c (base_name): Delete unused prototype.
12839
12840         * mkdeps.c (deps_init): Make definition K&R safe.
12841
12842         * tree.h (built_in_class_names, built_in_names): Constify a
12843         char*.
12844
12845 2000-03-06  Jakub Jelinek  <jakub@redhat.com>
12846
12847         * config/sparc/sparc.c (eligible_for_epilogue_delay): Accept
12848         floating point instructions for epilogue delay.
12849
12850         * config/sparc/sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs
12851         to gas if it supports .register pseudo.
12852
12853         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to
12854         LONG_DOUBLE_TYPE_SIZE if not defined.
12855         Use MAX_LONG_DOUBLE_TYPE_SIZE instead of
12856         LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses.
12857         * real.c: Likewise.
12858         * gengenrtl.c: Likewise.
12859         * print-rtl.c: Likewise.
12860         * rtl.c: Likewise.
12861         * config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set
12862         MASK_LONG_DOUBLE_128.
12863         * config/sparc/sol2.h (TARGET_DEFAULT): Likewise.
12864         * config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise.
12865         * config/sparc/linux64 (TARGET_DEFAULT): Likewise.
12866         (SUBTARGET_SWITCHES): Define.
12867         (CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling
12868         with -mlong-double-128.
12869         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
12870         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
12871         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
12872         (CC1_SPEC): Include -mlong-double-{64,128} as needed.
12873         * config/sparc/linux.h (SUBTARGET_SWITCHES): Define.
12874         (CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling
12875         with -mlong-double-128.
12876         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
12877         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
12878         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
12879         * config/sparc/sparc.h (MASK_LONG_DOUBLE_128,
12880         TARGET_LONG_DOUBLE_128): Define.
12881         * config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove.
12882         * config/sparc/sparc.c (sparc_override_options): Disallow 64bit
12883         long double on TARGET_ARCH64.
12884
12885 2000-03-06  Mark Mitchell  <mark@codesourcery.com>
12886
12887         * function.c (free_temps_for_rtl_expr): Don't free slots
12888         that have been pushed into a higher level.
12889
12890         Revert this patch:
12891         2000-03-05  Mark Mitchell  <mark@codesourcery.com>
12892
12893 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
12894
12895         * basic-block.h (ALLOCA_REG_SET): Remove.
12896         (INITIALIZE_REG_SET): New macro.
12897         * flow.c (update_life_info): Use it.
12898         (calculate_global_regs_live): Likewise.
12899         (propagate_block): Likewise.
12900         * global.c (build_insn_chain): Likewise.
12901         * haifa-sched.c (schedule_region): Likewise.
12902
12903 2000-03-05  Stephane Carrez  <stcarrez@worldnet.fr>
12904
12905         * dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer.
12906         (ASM_OUTPUT_DWARF_ADDR_CONST): Use UNALIGNED_WORD_ASM_OP.
12907         (DWARF_ARANGES_PAD_SIZE): New define.
12908         (output_aranges): Use it to pad the address range header.
12909         (DWARF_ROUND): Fix for non power of 2 rounding.
12910
12911 2000-03-05  Jason Merrill  <jason@casey.cygnus.com>
12912
12913         * mkdeps.c (deps_calc_target): Remove incorrect 'const'.
12914
12915 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
12916
12917         * tree.def (RTL_EXPR): Update documentation.
12918         * tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro.
12919         * expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE.
12920         * function.c (preserve_rtl_expr_temp): New function.
12921         (preserve_rtl_expr_temps): Likewise.
12922         (preserve_rtl_expr_result): Use it.
12923
12924         Revert this patch:
12925         2000-03-04  Mark Mitchell  <mark@codesourcery.com>
12926
12927 2000-03-04  Thomas Schuster <Thomas.Schuster@gmx.net>
12928
12929         * regmove.c (copy_src_to_dest)  Do not create src->dest move
12930         for unchanging destination.
12931
12932 2000-03-04  Mark Mitchell  <mark@codesourcery.com>
12933
12934         * function.h (struct sequence_stack): Remove rtl_expr.
12935         (struct emit_staus): Likewise.
12936         (seq_rtl_expr): Remove.
12937         * tree.h (free_temps_for_rtl_expr): Don't declare.
12938         (start_sequence_for_rtl_expr): Likewise.
12939         * rtl.h (preserve_rtl_expr_result): Likewise.
12940         * emit-rtl.c (start_sequence): Don't set sequence_rtl_expr.
12941         (start_sequence_for_rtl_expr): Remove.
12942         (push_topmost_sequence): Don't save sequence_rtl_expr.
12943         (pop_topmost_sequence): Remove comment about not restoring it.
12944         (end_sequence): Don't set seq_rtl_expr.
12945         (init_emit): Don't initialize it.
12946         (mark_sequence_stack): Don't mark it.
12947         (mark_emit_status): Likewise.
12948         * except.c (protect_with_terminate): Use
12949         start_sequence_for_rtl_expr, not start_sequence.
12950         * expr.c (expand_expr, case RTL_EXPR): Don't call
12951         preserve_rtl_expr_result or free_temps_for_rtl_expr.
12952         * function.c (assign_stack_temp_for_type): Don't set rtl_expr.
12953         (preserve_rtl_expr_result): Remove.
12954         (free_temps_for_rtl_expr): Likewise.
12955         (pop_temp_slots): Likewise.
12956         (mark_temp_slot): Don't mark the rtl_expr.
12957         * stmt.c (expand_start_stmt_expr): Use start_sequence, not
12958         start_sequence_for_rtl_expr.
12959
12960 2000-03-04  Zack Weinberg  <zack@wolery.cumb.org>
12961
12962         * mkdeps.c, mkdeps.h: New files.
12963         * po/POTFILES.in: Add them.
12964         * Makefile.in (LIBCPP_OBJS): Add mkdeps.o.
12965         (cpplib.o, cppinit.o): Depend on mkdeps.h.
12966         (mkdeps.o): New target.
12967
12968         * cppfiles.c: Delete deps_output.
12969         * cppinit.c: Include mkdeps.h.  Delete known_suffixes,
12970         OBJECT_SUFFIX, and base_name.
12971         (cpp_cleanup): Use deps_free.  Free ihash->name when clearing
12972         the include hash.
12973         (initialize_dependency_output): Use deps_init,
12974         deps_add_target, deps_calc_target, and deps_add_dep.  Remove
12975         all the unnecessary string bashing.
12976         (cpp_finish): Use deps_write.  Remove an unnecessary nesting
12977         level.
12978         * cpplib.c (do_include): Use deps_add_dep.
12979         * cpplib.h (struct cpp_reader): Replace deps_buffer,
12980         deps_allocated_size, deps_size, deps_column members with
12981         single pointer to a struct deps.  Delete prototype of
12982         deps_output.
12983
12984         * cppinit.c: Fix thinko in previous patch.
12985
12986 Sat Mar  4 11:32:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12987
12988         * machmode.h (mode_for_size, smallest_mode_for_size): SIZE now signed.
12989         * stor-layout.c (mode_for_size, smallest_mode_for_size): Likewise.
12990         (mode_for_size_tree): New function.
12991         (layout_decl, layout_type): Call it and clean up BLKmode checks.
12992         * tree.h (mode_for_size_tree): New declaration.
12993
12994         * toplev.c (debug_ignore_block): Mark arg BLOCK as possibly unused.
12995
12996 2000-03-04  Jason Merrill  <jason@casey.cygnus.com>
12997
12998         * stmt.c (is_body_block): Move...
12999         * dwarfout.c, dwarf2out.c: ...from here.
13000         * tree.h: Declare it.
13001         * emit-rtl.c (remove_unncessary_notes): Don't remove the body block.
13002         * final.c (final_start_function): Do call remove_unnecessary_notes
13003         when scheduling.
13004
13005 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
13006
13007         * config/vax/xm-vms.h: Define OBJECT_SUFFIX and EXECUTABLE_SUFFIX.
13008
13009         * cpplib.h (_dollar_ok): New macro.
13010         (is_idchar, is_idstart): Use it.
13011         (IStable): Rename to _cpp_IStable.  Declare it const if
13012         gcc >=2.7 or C99.  Delete all references to FAKE_CONST.
13013         (is_idchar, is_idstart, is_numchar, is_numstart, is_hspace,
13014         is_space): Update for renamed IStable.
13015
13016         * cppinit.c: Delete all references to FAKE_CONST and CAT
13017         macros. Define init_IStable as empty macro if gcc >=2.7 or
13018         C99. Change TABLE() to ISTABLE and hardcode name of table.
13019         (cpp_start_read): Don't change the IStable based on
13020         dollars_in_ident.
13021
13022         * cpphash.c (unsafe_chars): Add pfile argument.  All callers
13023         changed.  Handle '$' for char1 correctly.
13024         * cpplib.c (cpp_get_token): Use is_numchar when parsing numbers.
13025
13026         * cppexp.c (tokentab2): Make const.
13027         (cpp_lex): Make toktab const.
13028         * cppinit.c (include_defaults_array): Make const.
13029         (initialize_standard_includes): Make default_include const.
13030
13031 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
13032
13033         * dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning.
13034         (dwarf2out_decl): Functions can now have DECL_IGNORED_P.
13035         (gen_decl_die): Likewise.
13036         * dwarfout.c (dwarfout_file_scope_decl): Likewise.
13037         (output_decl): Likewise.
13038
13039         * varasm.c (make_function_rtl): If we change the name used in the
13040         rtl, update DECL_ASSEMBLER_NAME accordingly.
13041         (make_decl_rtl): Likewise.
13042
13043         * toplev.c (rest_of_compilation): Tweak formatting.
13044
13045         * toplev.c (rest_of_compilation): find_loop_tree_blocks before
13046         remove_unnecessary_notes.
13047         (debug_ignore_block): New fn.
13048         * toplev.h: Declare it.
13049         * emit-rtl.c (remove_unncessary_notes): Call it.
13050         * dwarf2out.c (dwarf2out_ignore_block): New fn.
13051         * dwarf2out.h: Declare it.
13052         * final.c (final_start_function): Don't call remove_unnecessary_notes
13053         if we did insn scheduling.
13054
13055 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
13056
13057         * cppinit.c (cpp_handle_option): Set opts->pedantic directly.
13058         * cpplib.h: Delete SET_CPP_PEDANTIC.
13059
13060 Fri Mar  3 14:56:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13061
13062         * expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if
13063         result is a RECORD_TYPE.
13064
13065 2000-03-03  Jonathan Larmour  <jlarmour@cygnus.co.uk>
13066
13067         * mips/elf.h (CTOR_LISTS_DEFINED_EXTERNALLY): Added.
13068
13069 2000-03-03  Richard Henderson  <rth@cygnus.com>
13070
13071         * alpha.c (alpha_emit_set_const_1): Re-order cases to prefer
13072         addition over compliments over shifts.
13073
13074 Fri Mar  3 12:49:28 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13075
13076         * reload1.c (reload_combine_note_use): Handle return register USEs.
13077         REG case: Handle multi-hard-register hard regs.
13078
13079 Fri Mar  3 07:38:34 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13080
13081         * md.texi: Document use of '*' in insn pattern name.
13082
13083 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
13084
13085         * calls.c (special_function_p): operator new may not be malloc-like.
13086
13087         * gcse.c (dump_hash_table): Really fix error in last change.
13088
13089 2000-03-02  Denis Chertykov  <denisc@overta.ru>
13090
13091         * avr.c (print_operand): Use print_operand_address instead of
13092         output_addr_const.
13093         * avr/libgcc.S: Cleanup code.
13094
13095 2000-03-02  Richard Henderson  <rth@cygnus.com>
13096
13097         * alpha.c (alpha_emit_set_const_1): Also try c + small constant.
13098
13099 2000-03-02  Mark Mitchell  <mark@codesourcery.com>
13100
13101         * tree.h (TYPE_ALIGN_UNIT): New macro.
13102
13103 2000-03-02  Clinton Popetz  <cpopetz@cygnus.com>
13104
13105         * i386.c: (constant_call_address_operand): Reject CONST_INT.
13106
13107 2000-03-02  Jason Merrill  <jason@casey.cygnus.com>
13108
13109         * cpplib.h (CPP_PEDANTIC): Only true if system_header_p is not set
13110         for the buffer.
13111         (SET_CPP_PEDANTIC): New macro.
13112         * cpplib.c (do_include): Don't bother checking system_header_p.
13113         (do_warning, do_ident, do_assert, do_unassert): Likewise.
13114         * cppinit.c (cpp_handle_option): Use SET_CPP_PEDANTIC.
13115
13116         * function.h (struct expr_status): Add x_arg_space_so_far.
13117         (arg_space_so_far): New macro.
13118         * expr.c (init_expr): Initialize it.
13119         * calls.c (emit_call_1): Reset it.
13120         (compute_argument_block_size, expand_call): Use it.
13121         (expand_call, store_one_arg): Increment it.
13122
13123 Thu Mar  2 17:27:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13124
13125         * varasm.c (output_constant): Strip off a CONVERT_EXPR to
13126         a UNION_TYPE.
13127
13128 2000-03-02  Zack Weinberg  <zack@wolery.cumb.org>
13129
13130         * cppfiles.c (cpp_read_file): New function.
13131
13132         * cpphash.c (collect_expansion): Make sure to reset last_token
13133         to NORM when we hit a string.  Handle trailing whitespace
13134         properly when the expansion is empty.
13135         (create_definition): Disable line commands while parsing the
13136         directive line.
13137         (dump_definition): If pfile->lineno == 0, output a line
13138         command ahead of the dump, and add a trailing newline.
13139
13140         * cppinit.c (append_include_chain): Add fifth argument, which
13141         indicates whether or not system headers are C++ aware.
13142         (initialize_standard_includes): New function,
13143         broken out of read_and_prescan.  Pass 'cxx_aware' value from
13144         the include_defaults_array on to append_include_chain.
13145         (dump_special_to_buffer): Const-ify char array.
13146         (builtin_array): Don't dump __BASE_FILE__.
13147         (cpp_start_read): Use cpp_read_file.  Reorder code for
13148         clarity.  Don't output line commands here for -D/-A/-U
13149         switches.  Don't call deps_output for files included with
13150         -include or -imacros.
13151
13152         * cpplib.c (do_define): Don't pay any attention to the second
13153         argument.
13154         (cpp_expand_to_buffer): Disable line commands while scanning.
13155         (output_line_command): Work in the file buffer.
13156         * cpplib.h: Remove no_record_file flag from struct cpp_reader.
13157         Fix formatting of comments.  Prototype cpp_read_file.
13158
13159 Thu Mar  2 13:29:46 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13160
13161         * c-common.c (c_common_nodes_and_builtins): Make sizetype_endlink
13162         reference the language-equivalent of sizetype.
13163         * c-typeck.c (comptypes): Treat sizetype like its language equivalent.
13164         * fold-const.c (size_binop, size_diffop): Put back checks.
13165         * gcse.c (dump_hash_table): Fix minor error in last change.
13166         * stor-layout.c (set_sizetype): Set TYPE_DOMAIN of sizetype.
13167         Clear TYPE_{NEXT,MAIN}_VARIANT and TYPE_{POINTER,REFERENCE}_to of
13168         all sizetypes.
13169
13170 Thu Mar  2 12:48:45 MET 2000  Jan Hubicka  <jh@suse.cz>
13171
13172         * calls.c (expand_call)  Do not attempt to combine stack adjustments
13173         with inhibit_defer_pop set.
13174
13175 2000-03-01  Mark Mitchell  <mark@codesourcery.com>
13176
13177         * stor-layout.c (layout_decl): Allow front-ends to explicitly set
13178         the DECL_SIZE for a FIELD_DECL.
13179
13180 2000-03-01  Bruce Korb  <bkorb@gnu.org>
13181
13182         * fixinc/inclhack.tpl: remove unused symlinks
13183         * fixinc/README: GCC Maintainer info
13184         * fixinc/inclhack.sh: regen
13185         * fixinc/fixincl.sh: regen
13186
13187 2000-03-01  Zack Weinberg  <zack@wolery.cumb.org>
13188
13189         * cpphash.c (collect_expansion): Trim trailing white space
13190         from macro definitions, but don't go past the last insertion
13191         point.
13192
13193 Wed Mar  1 12:14:31 MET 2000  Jan Hubicka  <jh@suse.cz>
13194
13195         * i386.md (mulqi3): New pattern.
13196
13197 2000-02-29  Zack Weinberg  <zack@wolery.cumb.org>
13198
13199         * cpplib.h (CPP_ASSERTION, CPP_STRINGIZE, CPP_TOKPASTE): New
13200         token types.
13201         (struct cpp_reader): Add parsing_if_directive and
13202         parsing_define_directive flags.
13203         (struct cpp_options): Remove output_conditionals flag.
13204         (check_macro_name): Delete prototype.
13205
13206         * cpphash.h (struct macrodef): Delete.
13207         (struct reflist): Separate from struct definition.
13208         (struct definition): Remove unused fields.  Add column number.
13209         (create_definition): Returns a DEFINITION *.  Takes a
13210         cpp_reader * and an int.
13211
13212         * cpphash.c (SKIP_WHITE_SPACE): Delete.
13213         (PEEKC): Copy defn from cpplib.c.
13214         (rest_extension, REST_EXTENSION_LENGTH): Delete.
13215         (struct arg): New.
13216         (struct arglist): Simplify.
13217         (collect_expansion): Rewrite.  Get tokens by calling
13218         cpp_get_token.  Add more error checking.
13219         (collect_formal_parameters): New function, broken out of
13220         create_definition and reworked to use get_directive_token.
13221         (create_definition): All real work is now in collect_expansion
13222         and collect_formal_parameters.  do_define handles finding the
13223         macro name.  Return a DEFINITION, not a MACRODEF.
13224         (macroexpand): Replace bcopy with memcpy throughout.  Replace
13225         character-at-a-time copy loop with memcpy and pointer increments.
13226         (compare-defs): d1->argnames / d2->argnames might be null.
13227
13228         * cpplib.c (copy_rest_of_line): Delete function.
13229         (skip_rest_of_line): Do all the work ourselves.
13230         (skip_string): New function.
13231         (parse_string): Use skip_string.
13232         (get_macro_name): New function.
13233         (check_macro_name): Delete.
13234         (copy_comment): Use CPP_RESERVE and CPP_PUTC_Q.
13235         (cpp_skip_hspace): Use CPP_BUMP_LINE.
13236         (handle_directive): ICE if we're called on a macro buffer.
13237         (do_define): Determine macro name and type (funlike/objlike)
13238         here.  Expunge all uses of MACRODEF.
13239         (cpp_push_buffer): Set line_base to NULL.
13240         (do_undef, read_line_number): Don't worry about getting a POP token.
13241         (eval_if_expression): Set/reset parsing_if_directive around
13242         cpp_parse_expr. Don't clear only_seen_white.
13243         (skip_if_group): Remove output_conditionals logic.  Use
13244         skip_rest_of_line.
13245         (cpp_get_token): Return ASSERTION, STRINGIZE, and TOKPASTE
13246         tokens under appropriate conditions.
13247         (cpp_unassert): Call do_unassert not do_assert.  Oops.
13248
13249         * cppexp.c (parse_defined): New function, break out of
13250         cpp_lex.
13251         (cpp_lex): We now get CPP_ASSERTION tokens and can check them
13252         ourselves, with cpp_defined.
13253         * cppinit.c (cpp_handle_option, print_help): Delete -ifoutput.
13254
13255         * gcc.dg/20000209-2.c: Turn off -pedantic-errors.
13256         * gcc.dg/strpaste-2.c: New.
13257
13258 2000-02-29  Mark Mitchell  <mark@codesourcery.com>
13259
13260         * fold-const.c (size_binop): Don't asert inputs are the same and
13261         have TYPE_IS_SIZETYPE set.
13262         (size_diffop): Likewise.
13263
13264 2000-02-29  Jason Merrill  <jason@casey.cygnus.com>
13265
13266         * dwarfout.c (output_block): Output abstract blocks even if they
13267         don't have TREE_ASM_WRITTEN set.
13268
13269         * calls.c (emit_library_call): Check for null REG.
13270
13271 2000-03-01  Martin von Loewis  <loewis@informatik.hu-berlin.de>
13272
13273         * c-decl.c (current_function_decl): Move to toplev.c.
13274         (init_decl_processing): Don't add current_function_decl as a ggc
13275         root here.
13276         * dbxout.c (dbxout_symbol): Change return type to int.
13277         (dbxout_symbol_location, dbxout_syms): Likewise.
13278         (dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without
13279         any locals. Use current_function_func_begin_label if set.
13280         * dbxout.h (dbxout_symbol, dbxout_syms): Change return type.
13281         * dwarf2out.c (dwarf2out_begin_prologue): Set
13282         current_function_func_begin_label.
13283         * final.c (final_start_function): Reset it.
13284         * toplev.c (current_function_decl): Define it here.
13285         (current_function_func_begin_label): New variable.
13286         (main): Add both as ggc roots.
13287         * tree.h (current_function_func_begin_label): Declare.
13288
13289 Tue Feb 29 14:07:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13290
13291         * gcse.c: Cleanups throughout: mostly white-space, but also
13292         some minor rearrangement of code.
13293
13294 Tue Feb 29 10:45:59 2000  Jeffrey A Law  (law@cygnus.com)
13295
13296         * calls.c (emit_library_call): Do not abort if FUNCTION_ARG
13297         returns a PARALLEL.  Use emit_group_load and use_group_regs
13298         as needed.
13299         (emit_library_call_value): Similarly.
13300
13301         * pa/t-pa: Use quadlib.c instead of quadlib.asm.
13302         * pa/quadlib.asm: Remove.
13303         * pa/quadlib.c: New file.
13304
13305         * configure.in (hpux10, hpux11, PA32 mode): Use i128 float format.
13306         * configure: Rebuilt.
13307
13308 2000-02-29  Philip Blundell  <pb@futuretv.com>
13309
13310         * config/arm/conix-elf.h: New file.
13311         * configure.in (arm*-*-conix*): New configuration.
13312         * configure: Regenerate.
13313
13314 2000-02-28  Jason Merrill  <jason@casey.cygnus.com>
13315
13316         * dwarf2out.c (gen_block_die): Output abstract blocks even if they
13317         don't have TREE_ASM_WRITTEN set.
13318
13319 Mon Feb 28 21:07:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13320
13321         * Eliminate DECL_FIELD_SIZE.
13322         * builtins.c (built_in_class_names, built_in_names): New variables.
13323         * c-decl.c (finish_struct): Set specified size in DECL_SIZE.
13324         * expr.c (expand_expr, case COMPONENT_REF): Get field size from
13325         DECL_SIZE, not DECL_FIELD_SIZE.
13326         * print-tree.c (print_node): Remove code that prints extra blank
13327         lines in some cases.
13328         Properly handle inline and builtin function cases.
13329         * stor-layout.c (layout_decl): Get specified size from DEC_SIZE.
13330         * tree.h (built_in_class_named, built_in_names): New declarations.
13331         (union tree_decl): Rename internal unions to u1 and u2 and change
13332         some of their components.
13333         Add new field built_in_class.
13334         (DECL_ALIGN, DECL_INCOMING_RTL, DECL_SAVED_INSNS, DECL_FRAME_SIZE):
13335         Reflect above changes.
13336         (DECL_FUNCTION_CODE, DECL_BUILT_IN_CLASS): Likewise.
13337         (DECL_SET_FUNCTION_CODE, DECL_FIELD_SIZE): Deleted.
13338         * objc/objc-act.c (objc_copy_list): Use DECL_SIZE, not DECL_FIELD_SIZE.
13339         (encode_field_decl): Likewise; also remove obsolete test for bitfield.
13340
13341 2000-02-28  Dmitri Makarov  <dim@windriver.com>
13342
13343         * extend.texi: Document ARM's support for long/short calls.
13344
13345         * invoke.texi: Document ARM's -mlong-calls command line switch.
13346
13347         * config/arm/arm-protos.h (arm_is_longcall_p): Add prototype.
13348         (arm_encode_call_attribute): Add prototype.
13349         (arm_set_default_type_attribute): Add prototype.
13350         (arm_strip_name_encoding): Add prototype.
13351
13352         * config/arm/arm.c (arm_init_cumulative_args): replace
13353         initialisation og 'long_calls' field with initialisation of
13354         'call_cookie' field.
13355         (enum arm_pragma_enum): New enum.
13356         (arm_pragma_long_calls): New static variable.
13357         (arm_process_pragma): Also process "#pragma long_calls_off".
13358         (arm_valid_type_attribute_p): Accept short_call attribute.
13359         (arm_comp_type_attributes): Check long/short call attributes.
13360         (arm_encode_call_attribute):  New function:  Encode long_call
13361         or short_call attribute in function name.
13362         (arm_set_default_type_attributes): New function: Assign
13363         default attributes to newly defined type.
13364         (current_file_function_operand): New function: Return true if
13365         the symbol is a function which has already been compiled.
13366         (arm_is_longcall_p): New function: Return true if the
13367         indicated function should be called via a long call.
13368         (arm_get_strip_length): New function.  Returns number of
13369         prefix characters to be stripped from a function's name.
13370         (arm_strip_name_encoding): New function.  Strip prefix characters
13371         from a function's name.
13372
13373         * config/arm/arm.h (CUMULATIVE_ARGS): Replace 'long_call' field
13374         with 'call_cookie'.
13375         (SHORT_CALL_FAG_CHAR): Define.
13376         (LONG_CALL_FAG_CHAR): Define.
13377         (ENCODED_SHORT_CALL_ATTR_P): Define.
13378         (ENCODED_LONG_CALL_ATTR_P): Define.
13379         (ARM_NAME_ENCODING_LENGTHS): Define.
13380         (STRIP_NAME_ENCODING): Define.
13381         (ASM_OUTPUT_LABELREF): Define, and use to strip name encoding.
13382         (ARM_ENCODE_CALL_TYPE): Define.
13383         (ENCODE_SECTION): Invoke ARM_ENCODE_CALL_TYPE.
13384         (ARM_DECLARE_FUNCTION_SIZE): Define.
13385         (SET_DEFAULT_TYPE_ATTRIBUTES): Define.
13386
13387         * config/arm/arm.md (call): Call arm_is_longcall_p to decide
13388         if a long call is needed.
13389         (call_value): Ditto.
13390         (call_symbol): Ditto.
13391
13392         * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Add invocation of
13393         ARM_DECLARE_FUNCTION_SIZE.
13394
13395         * config/arm/pe.h (ARM_PE_FLAG_CHAR): Define.
13396         (SUBTARGET_NAME_ENCODING_LENGTHS): Define.
13397         (ARM_STRIP_NAME_ENCODING): Undefine.
13398         (STRIP_NAME_ENCODING): Undefine.
13399         (ASM_OUTPUT_LABELREF): Use arm_strip_name_encoding.
13400         (ASM_DECLARE_FUNCTION_NAME): Ditto.
13401         (ASM_OUTPUT_COMMON): Ditto.
13402         (ASM_DECLARE_OBJECT_NAME): Ditto.
13403
13404         * config/arm/pe.c (arm_dllexport_name_p): Check for
13405         ARM_PE_FLAG_CHAR.
13406         (arm_dllimport_name_p): Ditto.
13407         (arm_mark_dllexport): Use ARM_PE_FLAG_CHAR.
13408         (arm_mark_dllimport): Ditto.
13409
13410 Mon Feb 28 22:11:12 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13411
13412         * sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Define.
13413
13414 2000-02-28  Mark Mitchell  <mark@codesourcery.com>
13415
13416         * xcoffout.c (xcoffout_begin_function): Fix typo in previous change.
13417
13418 2000-02-28  Zack Weinberg  <zack@wolery.cumb.org>
13419
13420         * tm.texi: Document new target switch, NO_BUILTIN_WCHAR_TYPE.
13421         * cppinit.c (builtin_array): Define __WCHAR_TYPE__ only if
13422         NO_BUILTIN_WCHAR_TYPE is not defined.
13423         (CPP_WCHAR_TYPE): Delete.
13424         * cccp.c (main): Don't change wchar_type if cplusplus.
13425         (special_symbol, initialize_builtins): Honor NO_BUILTIN_WCHAR_TYPE.
13426
13427 2000-02-28  Nick Clifton  <nickc@cygnus.com>
13428
13429         * config/arm/arm-wince-pe.h (SIZE_TYPE): Define to "unsigned long".
13430
13431 Mon Feb 28 14:21:15 2000  Catherine Moore  <clm@cygnus.com>
13432
13433         * config/pa/som.h (MAKE_DECL_ONE_ONLY): Define.
13434         (ASM_WEAKEN_LABEL): Define.
13435
13436 Mon Feb 28 13:07:19 MET 2000  Jan Hubicka  <jh@suse.cz>
13437
13438         * expr.c (store_constructor): Do not emit USE.
13439         * rtl.h (stupid_life_analysis): Remove.
13440
13441 Mon Feb 28 07:03:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13442
13443         * function.c (number_blocks): Reset next_block_index based on
13444         what debugging format is used, not what is defined.
13445
13446         * lcm.c: Minor reformatting throughout.
13447         (reg_dies, reg_becomes_live): Properly handle multiple hard regs.
13448
13449         * toplev.c (rest_of_compilation): Account for time in
13450         optimize_mode_switching.
13451
13452         * jump.c (jump_optimize_1): Don't call delete_barrier_successors
13453         if only marking labels.
13454
13455 Mon Feb 28 12:53:57 MET 2000  Jan Hubicka  <jh@suse.cz>
13456
13457         * calls.c (expand_call): Attempt to combine stack adjustments with
13458         pending stack adjustments.
13459
13460 Mon Feb 28 11:34:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13461
13462         * loop.c (reg_in_basic_block_p): Don't abort when falling through
13463         to the end of the function.
13464
13465 2000-02-27  Mark Mitchell  <mark@codesourcery.com>
13466
13467         * emit-rtl.c (remove_unncessary_notes): Remove notes for empty
13468         blocks.
13469         * final.c (next_block_index): Remove.
13470         (max_block_depth): Likewise.
13471         (pending_blocks): Likewise.
13472         (init_final): Don't initialize them.
13473         (final_start_function): Don't set next_block_index.  Set up
13474         BLOCK_NUMBER.
13475         (final_scan_insn): Use BLOCK_NUMBER, not next_block_index.
13476         * function.h (number_blocks): New function.
13477         * function.c (get_block_vector): New function.
13478         (identify_blocks): Use it.
13479         (reorder_blocks): Set NOTE_BLOCK.
13480         (number_blocks): New function.
13481         * tree.def (BLOCK): Add documentation for TREE_ASM_WRITTEN flag.
13482         * tree.h (BLOCK_NUMBER): New macro.
13483         (tree_block): Add block_num field.
13484         * dbxout.c (next_block_number): Remove.
13485         (dbxout_init): Don't set it.
13486         (dbxout_block): Only output blocks that have TREE_ASM_WRITTEN
13487         set.  Use BLOCK_NUMBER, rather than next_block_num, to determine
13488         block numbers.
13489         * toplev.c (rest_of_compilation): Always call
13490         find_loop_tree_blocks.  Fix indentation.
13491         * dwarf2out.c (next_block_number): Remove.
13492         (gen_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
13493         to determine block numbers.
13494         (gen_inlined_subroutine_die): Likewise.
13495         (gen_block_die): Only output blocks that have TREE_ASM_WRITTEN set.
13496         (decls_for_scope): Don't increment next_block_number.
13497         * dwarfout.c (next_block_number): Remove.
13498         (output_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
13499         to determine block numbers.
13500         (output_inlined_subroutine_die): Likewise.
13501         (output_block): Only output blocks that have TREE_ASM_WRITTEN set.
13502         (output_decls_for_scope): Don't increment next_block_number.
13503         * sdbout.c (next_block_number): Remove.
13504         (sdbout_block): Use BLOCK_NUMBER.
13505         (sdbout_begin_block): Simplify.
13506         * xcoffout.c (next_block_number): Remove.
13507         (xcoffout_block): Use BLOCK_NUMBER, not next_block_number.
13508         (xcoffout_begin_block): Don't set next_block_number.
13509         (xcoffout_begin_function): Likewise. Use BLOCK_NUMBER, not
13510         next_block_number.
13511
13512 Sun Feb 27 16:40:33 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13513
13514         * builtins.c (c_strlen): Use size_diffop and return ssizetype value.
13515         (expand_builtin_strcpy): Pass correct type to size_binop.
13516         (expand_builtin_strcmp): Likewise.
13517         Clean up conditional structure.
13518         * c-decl.c (init_decl_processing): Don't call set_sizetype twice.
13519         (complete_array_type): Don't use size_binop for MAXINDEX.
13520         * c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT.
13521         (c_sizeof_nowarn, c_size_in_bytes): Likewise.
13522         (c_alignof): Use size_one_node.
13523         (build_unary_op): Pass arg of proper type to size_binop.
13524         (really_start_incremental_init, push_init_level): Use sizetype for
13525         constructor{,_bit,_unfilled}_index.
13526         (pop_init_label, output_init_element): Likewise.
13527         (output_pending_init_elements, process_init_element): Likewise.
13528         * calls.c (compute_argument_block_size): Field VAR is ssizetype.
13529         * expr.c (store_expr): Use size_int.
13530         (store_constructor): Use proper types for size_binop args.
13531         (get_inner_reference, expand_expr, case ARRAY_REF): Likewise.
13532         (expand_expr_unaligned): Likewise.
13533         (string_contant): Return object of sizetype.
13534         * expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types.
13535         (ARGS_SIZE_RTX): Call ARGS_SIZE_TREE.
13536         (ARGS_SIZE_TREE): Pass proper types to size_binop.
13537         * fold-const.c (int_const_binop): Refine when size_int is called.
13538         (fold_convert): Likewise.
13539         (size_int_wide): Rework to take KIND as arg, only take low order
13540         bits, handle new sizetype_tab datatype, and chain entries in
13541         size_table.
13542         (size_int_type_wide): New function.
13543         (size_binop): Validate types of arguments.
13544         (ssize_binop): Deleted.
13545         (size_diffop): New function.
13546         (extract_muldiv): Only fold division into multiplication for sizetypes.
13547         * function.c (assign_parms): Use size_diffop and make sure
13548         VAR field is of ssizetype; also pass proper type to size_binop.
13549         (locate_and_pad_parm, pad_to_arg_alignment): Likewise.
13550         (round_down): Deleted from here.
13551         * store-layout.c (sizetype_tab): Now an array.
13552         (sizetype_set, early_root_list): New variables.
13553         (variable_size): Use size_one_node.
13554         (round_up): Pass proper type to size_binop.
13555         (round_down): Moved to here and corrected as above.
13556         (layout_record): Pass proper arg types to size_binop.
13557         (layout_type): Likewise.
13558         If sizetype_set is zero, record the type just laid out.
13559         (make_unsigned_type): Don't call set_sizetype;
13560         (make_signed_type): Likewise; also, call fixup_signed_type.
13561         (initialize_sizetypes): New function.
13562         (set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and
13563         set name of bitsizetype to "bit_size_type".
13564         Fix up type of sizes of all types made before call.
13565         * tm.texi (ROUND_TYPE_SIZE_UNIT): New macro.
13566         * tree.c (fix_sizetype): Deleted.
13567         (build_common_tree_nodes): Call initialize_sizetypes.
13568         (build_common_tree_nodes_2): Don't call fix_sizetype.
13569         * tree.h (TYPE_IS_SIZETYPE): New macro.
13570         (initialize_sizetype): New declaration.
13571         (enum size_type_kind): New type.
13572         (struct sizetype_tab): Deleted.
13573         (sizetype_tab): Now array; adjust sizetype macros.
13574         (size_diffop, size_int_type_wide): New functions.
13575         (size_int_wide): Change number of args and type; access macros changed.
13576         (ssize_int, sbitsize_int): New macros.
13577         * config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int.
13578         (ROUND_TYPE_SIZE_UNIT): New macro.
13579
13580 2000-02-27  Zack Weinberg  <zack@wolery.cumb.org>
13581
13582         * c-lex.c (putback_buffer): Make 'buffer' an unsigned char *.
13583
13584 Sun Feb 27 07:44:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13585
13586         * gcov-io.h (__fetch_long, __store_long, __read_long, __write_long):
13587         Mark as possibly unused.
13588
13589         * cse.c (cse_insn): Delete dead code involving tablejump.
13590         Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE.
13591
13592         * Makefile.in (libcpp.a): Start by deleting it.
13593
13594 2000-02-27  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13595
13596         * cpplib.h (enum file_change_code): Added rename_file.
13597         * cpplib.c (do_line): If a filename is given, set file_change to
13598         rename_file.
13599         (output_line_command): If file_change is rename_file, always
13600         output a # directive with the file name.
13601
13602         * cpplib.c (do_pragma): Accept #pragma without consecutive token.
13603
13604 2000-02-26  Mark Mitchell  <mark@codesourcery.com>
13605
13606         * integrate.c (copy_decl_for_inlining): Preserve TREE_ADDRESSABLE
13607         when copying a PARM_DECL or RESULT_DECL.
13608
13609 2000-02-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13610
13611         * fix-header.c (recognized_function): Also fix prototypes for
13612         functions taking "void".
13613
13614 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
13615
13616         * reload1.c (do_output_reload): Check reg_reloaded_valid before
13617         looking at reg_reloaded_contents.
13618
13619 2000-02-26  Zack Weinberg  <zack@wolery.cumb.org>
13620
13621         * Makefile.in (STMP_FIXINC): New toggle.
13622         (LIBGCC2_DEPS): Delete all references.
13623         (stmp-headers): Delete target.  All references either deleted
13624         or changed to stmp-int-headers.
13625         (all.cross): Don't depend on stmp-headers or STMP_FIXPROTO.
13626         (LIBCPP_OBJS): Take out cppalloc.o.
13627         (cppalloc.o): Delete target.
13628         (stmp-int-hdrs): Depend on $(STMP_FIXINC).
13629         (gen-protos, fix-header): Link with libiberty.a.
13630         * build-make: Don't change FIXINCLUDES.  Override STMP_FIXINC
13631         to empty.
13632
13633         * configure.in: Remove refs to strerror.
13634         * acconfig.h: Take out NEED_DECLARATION_STRERROR.
13635         * system.h: Take out strerror stanza.
13636
13637         * cpperror.c (my_strerror): Delete function.
13638         (cpp_error_from_errno, cpp_notice_from_errno): Use xstrerror.
13639         * cppmain.c (main): Call xmalloc_set_program_name first thing.
13640         * cppalloc.c: Delete file.
13641         * gen-protos.c: Don't provide xrealloc.
13642
13643         * fixinc/fixincl.c, fixinc/fixlib.c, fixinc/procopen.c: Use
13644         xstrerror throughout.
13645
13646 2000-02-26  Bruce Korb  <bkorb@gnu.org>
13647
13648         * fixinc/inclhack.def (undefine_null): the bypass pattern needs to
13649         match for DOS headers, too.
13650         * fixinc/inclhack.sh,fixincl.x: Regenerate.
13651
13652 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
13653
13654         * config/elfos.h (ASM_OUTPUT_LABELREF): Don't define.  The default
13655         is right for most ELF targets.
13656         * config/ns32k/ns32k.h (ASM_OUTPUT_LABELREF): Don't define.
13657         Let the default file use %U properly.
13658         * config/sh/elf.h (ASM_OUTPUT_LABELREF): Don't define.  Use the
13659         default.
13660
13661         * config/fp-bit.c (pack_d): Properly handle rounding of denormal
13662         numbers.
13663
13664 Sat Feb 26 09:39:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13665
13666         * toplev.c (documented_lang_options): Correct spelling error.
13667         (decode_d_option, decode_f_option, main): Likewise.
13668
13669         * toplev.c (print_time): Avoid SIGFPE when all_time is zero.
13670
13671         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Use .set at
13672         to tell assembler it is permitted to expand large constants.
13673
13674 2000-02-25  Mumit Khan  <khan@xraylith.wisc.edu>
13675
13676         * protoize.c: (AUX_INFO_SUFFIX): New macro.
13677         (aux_info_suffix): Use.
13678         (SAVE_SUFFIX): New macro.
13679         (save_suffix): Use.
13680         (munge_compile_parms): Fix typo in NUL. DJGPP supports /dev/null.
13681         (gen_aux_info_file): Use aux_info_suffix instead of ".X".
13682         (edit_file): Handle 8.3 restriction for DOS/DJGPP filenames.
13683
13684         * invoke.texi (Running Protoize): Update documentation.
13685
13686 2000-02-25 Mark Elbrecht <snowball3@bigfoot.com>
13687
13688         * i386/djgpp.h (CPP_PREDEFINES): Remove Unix defines.
13689
13690 2000-02-25  John Wehle  (john@feith.com)
13691
13692         * rtlanal.c (find_last_value): Allow NULL_RTX for valid_to.
13693
13694 2000-02-25  Anthony Green  <green@cygnus.com>
13695
13696         * toplev.c (rest_of_compilation): Rebuild jump labels if
13697         combine_instructions has created a new direct jump.
13698         * combine.c (try_combine): Add new_direct_jump_p argument.  Set it
13699         when appropriate.
13700         (combine_instructions): Call try_combine with new argument.
13701         Return non-null value when new direct jump instruction is created.
13702         * rtl.h: combine_instructions returns an int.
13703
13704 Fri Feb 25 19:49:08 2000  Jeffrey A Law  (law@cygnus.com)
13705
13706         * cse.c (cse_insn): Replace the PATTERN of the insn with an new
13707         jump when changing a computed jump into a jump to a known
13708         target.
13709
13710 Fri Feb 25 19:22:44 2000  Graham Stott <grahams@rcp.co.uk>
13711
13712         * resource.c (mark_referenced_resources): Changed use SET_DEST (...)
13713         to XEXP (..., 0) on RTL nodes which are not SET or CLOBBER.
13714
13715         * i386.md (define_expand "clrstrsi"): Fix typo.
13716
13717 Fri Feb 25 18:49:39 2000  "K. Richard Pixley" <rich@microunity.com>
13718
13719         * rtl.texi: Fix typo.
13720
13721 Fri Feb 25 20:02:35 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13722
13723         * sh.c (calc_live_regs): Multiply value assigned to *COUNT_PTR by
13724         UNITS_PER_WORD.  Change caller initial_elimination_offset.
13725         (rounded_frame_size): Take into account that argument pushed has
13726         changed.  Fix TARGET_ALIGN_DOUBLE problem.
13727
13728 2000-02-25  Geoff Keating  <geoffk@cygnus.com>
13729
13730         * haifa-sched.c (schedule_block): Explain the real reason
13731         we delete REG_SAVE_NOTEs on the first insn of a block.
13732         Don't delete REG_SAVE_NOTES for NOTE_INSN_SETJMP.
13733
13734 2000-02-24  Mark Mitchell  <mark@codesourcery.com>
13735
13736         * input.h (push_srcloc): New function.
13737         (pop_srcloc): Likewise.
13738         * toplev.c (push_srcloc): Define it.
13739         (pop_srcloc): Likewise.
13740
13741 2000-02-24  Richard Henderson  <rth@cygnus.com>
13742
13743         * flow.c (life_analysis): When collecting reg info, clear
13744         regs_ever_live.
13745
13746 Thu Feb 24 22:06:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13747
13748         Fix bug exposed by reload.c no longer rounding the frame
13749         size to BIGGEST_ALIGNMENT:
13750         * sh.c (rounded_frame_size): New function.
13751         (sh_expand_prologue, sh_expand_epilogue): Use it.
13752         (initial_elimination_offset): Likewise.
13753
13754 Thu Feb 24 20:04:11 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13755
13756         Fix breakage from 6th Feb thread_prologue_and_epilogue_insns change:
13757         * sh-protos.h (sh_need_epilogue): Declare.
13758         * sh.c (sh_need_epilogue_known): New static variable.
13759         (sh_need_epilogue): New function.
13760         (function_epilogue): Clear need_epilogue_known.
13761         * sh.md (return): Split into expander / insn pattern.
13762         Make the expander conditional on ! sh_need_epilogue ().
13763
13764 2000-02-24  Nathan Sidwell  <nathan@codesourcery.com>
13765
13766         * machmode.h (get_mode_alignment): Declare.
13767         (GET_MODE_ALIGNMENT): Call it.
13768         * stor-layout.c (get_mode_alignment): New function. Make
13769         sure alignment is always power of 2.
13770
13771 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
13772
13773         * i386.h: Remove useless definition of "I386" and misleading
13774         comment above it.
13775
13776 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
13777
13778         * tree.h (TREE_SET_PERMANENT): New macro.  Document conditions
13779         under which TREE_PERMANENT will be set.
13780         * tree.c (make_node, copy_node, make_tree_vec, tree_cons,
13781         build1): Use TREE_SET_PERMANENT.
13782         * print-tree.c (print_node): Don't report value of
13783         TREE_PERMANENT if ggc_p is true.
13784
13785         * c-common.c (c_get_alias_set): Don't use TREE_PERMANENT to
13786         decide whether to give a type a new alias set.
13787         * objc/objc-act.c (build_objc_string_object): Never copy the string.
13788         * tree.c (make_node): Set DECL_IN_SYSTEM_HEADER irrespective
13789         of value of 'obstack'.
13790
13791
13792 2000-02-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13793
13794         * config/c4x/c4x.c (c4x_process_after_reload): Split all insns.
13795
13796 2000-02-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13797
13798         * cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING.
13799         * cpplib.c (cpp_get_token): Produce them.
13800         * cppexp.c (cpp_lex): Handle them.
13801
13802 2000-02-23  Nick Clifton  <nickc@cygnus.com>
13803
13804         * config/arm/arm.c (arm_comp_type_attributes): Simply and
13805         comment tests on type attributes.
13806
13807 Wed Feb 23 16:42:21 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13808
13809         * final.c (shorten_branches): Make value passed to LOOP_ALIGN
13810         conform to documentation.
13811         * sh.h (LOOP_ALIGN): If aligning loops, call sh_loop_align
13812         to check for special cases.
13813         * sh-protos.h (sh_loop_align): Declare.
13814         * sh.c (sh_loop_align): Define.
13815
13816 2000-02-22  Andrew Haley  <aph@cygnus.com>
13817
13818         * config/mips/mips.h (GAS_ASM_SPEC): Pass -mgp32/-mgp64 to gas.
13819         (SIZE_TYPE): Is 32 bits when using -mgp32.
13820         (PTRDIFF_TYPE): Ditto.
13821
13822 Wed Feb 23 07:26:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13823
13824         * diagnostic.c (init_output_buffer): Handle case of null PREFIX.
13825
13826 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
13827
13828         * config/i386/i386.h: If IN_TARGET_LIBS is defined, make
13829         BIGGEST_FIELD_ALIGNMENT a constant.
13830
13831 2000-02-21  Jason Merrill  <jason@casey.cygnus.com>
13832
13833         * dwarf2out.c (output_line_info): Put the marker for the end of
13834         the line number info at the actual end.
13835         (gen_struct_or_union_type_die): Use decl_function_context
13836         to check for local classes.
13837         * dwarfout.c (output_type): Likewise.
13838
13839 Tue Feb 22 01:38:57 2000  Jeffrey A Law  (law@cygnus.com)
13840
13841         * pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference
13842         for arguments with a mode, but no type.
13843         (FUNCTION_ARG_CALLEE_COPIES): Similarly.
13844         * t-pa (LIB2FUNCS_EXTRA): Add quadlib.asm.
13845         * pa/long_double.h: New file.
13846         * configure.in (hpux10, hpux11 configurations): hpux10 and hpux11
13847         both have 128bit wide long doubles.
13848         * configure: Rebuilt.
13849
13850 2000-02-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13851
13852         * defaults.h (ASM_OUTPUT_ASCII): Constify a char*.
13853
13854         * flow.c (get_common_dest, chain_reorder_blocks, make_reorder_chain,
13855         fixup_reorder_chain, skip_insns_between_block): Add static prototypes.
13856         (life_analysis): Wrap variable `i' with macro ELIMINABLE_REGS.
13857
13858         * haifa-sched.c (rank_for_schedule): Don't cast away const-ness.
13859
13860         * integrate.c (compare_blocks, find_block): Likewise.
13861
13862         * rtl.c (fatal_with_file_and_line): Add ATTRIBUTE_PRINTF_2.
13863
13864         * rtl.h (set_file_and_line_for_stmt): Constify a char*.
13865
13866         * stmt.c (stmt_status, set_file_and_line_for_stmt,
13867         expand_asm_operands): Likewise.
13868
13869 Mon Feb 21 17:06:27 2000  Jason Eckhardt  <jle@cygnus.com>
13870
13871         * predict.c (estimate_probability): Added the pointer heuristic to
13872         the collection of static branch predictors.
13873
13874 2000-02-21  Catherine Moore  <clm@cygnus.com>
13875
13876         * config/mips/mips.h (ASM_SPEC): Add -mfix700.
13877         * invoke.texi (-mfix7000): Document.
13878
13879 2000-02-21  Gabriel Dos Reis  <gdr@codesourcery.com>
13880
13881         * diagnostic.c (init_output_buffer): Make it possible to output at
13882         least 32 characters if we're given a too long prefix.
13883
13884 2000-02-20  Mark Mitchell  <mark@codesourcery.com>
13885
13886         * varasm.c (initializer_constant_valid_p): Call
13887         lang_expand_constant to simplify the constant.
13888
13889 2000-02-20  Bruce Korb  <bkorb@gnu.org>
13890
13891         * fixinc/inclhack.def(stdio_va_list):
13892         typedef needs to be disabled.
13893         * fixinc/inclhack.sh: regen
13894         * fixinc/fixincl.x: regen
13895
13896 2000-02-20  Geoff Keating  <geoffk@cygnus.com>
13897
13898         * print-rtl.c (print_rtx): Don't print addresses when
13899         flag_dump_unnumbered.
13900
13901 2000-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13902
13903         * sparc.c (sparc_output_scratch_registers): Mark parameter with
13904         ATTRIBUTE_UNUSED.
13905         (sparc_va_arg, sparc_flat_output_function_prologue,
13906         sparc_flat_output_function_epilogue): Cast value to unsigned in
13907         comparison.
13908         (sparc_emit_float_lib_cmp): Remove unused variable `cmp'.
13909
13910         * sparc.md: Add default case in switch.
13911
13912 2000-02-19  Richard Henderson  <rth@cygnus.com>
13913
13914         * c-typeck.c (add_pending_init): Don't abort for multiple
13915         fields at the same offset.
13916         (pending_init_member): Test the correct member.
13917
13918 2000-02-19  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
13919
13920         * except.c (start_dynamic_handler) : Use TYPE_MODE (integer_type_node)
13921         instead of SImode.
13922         (start_catch_handler) : Same.
13923
13924 2000-02-19  Brad Lucier  (lucier@math.purdue.edu)
13925
13926         * Makefile.in: Have flow.o depend on $(EXPR_H)
13927
13928 Sat Feb 19 18:43:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13929
13930         * c-common.c (decl_attributes): Set DECL_SIZE_UNIT.
13931         * c-decl.c (duplicate_decls, finish_enum): Likewise.
13932         (finish_decl): Remove -Wlarger-than code from here.
13933         * flags.h (id_clash_len): Now int.
13934         (larger_than_size): Now HOST_WIDE_INT.
13935         * fold-const.c (size_int_wide): No more HIGH parm; NUMBER is signed.
13936         Clean up checking to see if in table.
13937         (make_bit_field_ref): Remove extra parm to bitsize_int.
13938         * ggc-common.c (ggc_mark_tree_children): Mark DECL_SIZE_UNIT.
13939         * print-tree.c (print_node): Print DECL_SIZE_UNIT and TYPE_SIZE_UNIT.
13940         * stmt.c (expand_decl): Use DECL_SIZE_UNIT for stack checking size
13941         and for computing size of decl.
13942         * stor-layout.c (layout_decl): Set DECL_SIZE_UNIT.
13943         Move -Wlarger-than code to here.
13944         (layout_record): Remove extra arg to bitsize_int.
13945         Set TYPE_BINFO_SIZE_UNIT.
13946         (layout_union): Remove extra arg to bitsize_int.
13947         Use proper type for size of QUAL_UNION.
13948         (layout_type): Remove extra arg to bitsize_int.
13949         * toplev.c (id_clash_len): Now int.
13950         (larger_than_size): Now HOST_WIDE_INT.
13951         (decode_W_option): Clean up id-clash and larger-than- cases.
13952         * tree.c (get_identifier, maybe_get_identifier): Remove unneeded casts.
13953         (expr_align, case FUNCTION_DECL): DECL_ALIGN is not defined.
13954         * tree.h (BINFO_SIZE_UNIT, TYPE_BINFO_SIZE_UNIT, DECL_SIZE_UNIT): New.
13955         (struct tree_decl): New field size_unit.
13956         (size_int_wide): No HIGH operand; NUMBER is now signed.
13957         (size_int_2): Deleted.
13958         (size_int, bitsize_int): Don't use it and rework args.
13959         * varasm.c (assemble_variable, output_constructor): Use DECL_SIZE_UNIT.
13960
13961 Fri Feb 18 20:01:58 2000  Jeffrey A Law  (law@cygnus.com)
13962
13963         * pa/quadlib.asm (_U_QFgt, _U_Qfge): Fix flags for _U_Qfcmp call.
13964
13965 2000-02-18  Geoff Keating  <geoffk@cygnus.com>
13966
13967         * invoke.texi (Warning Options): Add an explanation of why
13968         you might want the -Wfloat-equal flag.
13969
13970 Fri Feb 18 20:08:57 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13971
13972         * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned.
13973         * cppinit.c (new_pending_define): Add cast to avoid warning.
13974         * expmed.c (extract_bit_field): Likewise.
13975         * flow.c (enum reorder_skip_type): New type.
13976         (skip_insns_between_blcok): New it.
13977         Rework to avoid warning about possibly undefined variable.
13978         * function.c (assign_parms): Make thisparm_boundary unsigned.
13979         * genrecog.c (write_switch): Cast XWINT result to int.
13980         * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING.
13981         * mips-tfile.c (init_file): Make two versions of FDR intializer:
13982         one for MIPS and one for Alpha.
13983         (get_tag, copy_object): Add casts to avoid warnings.
13984         * optabs.c (init_one_libfunc): Cast NAME to (char *).
13985         * reload.c (find_reloads): Make TYPE enum reload_type.
13986         * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L".
13987         * unroll.c (unroll_loop): Initialize UNROLL_NUMBER.
13988         * varasm.c (compare_constant_1): Add cast to avoid warning.
13989         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC
13990         to (char *).
13991         (alpha_expand_unaligned_load, alpha_expand_unaligned_store):
13992         Cast switch operand of size to int.
13993         (alpha_expand_epilogue): Always initialize fp_offset and sa_reg.
13994         * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort
13995         in unhandled case.
13996
13997 2000-02-18  Nick Clifton  <nickc@cygnus.com>
13998
13999         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate
14000         anything for an alignment of zero.
14001
14002         * config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not generate
14003         anything for an alignment of zero.
14004
14005 2000-02-18  Martin von Loewis  <loewis@informatik.hu-berlin.de>
14006
14007         * gcc.texi (Bug Reporting): Refer to bugs.html.
14008         (Bug Lists): Likewise.
14009         * system.h (GCCBUGURL): New preprocessor define.
14010         * rtl.c (fancy_abort): Use it.
14011         * gcc.c (main): Likewise.
14012
14013 2000-02-18  Richard Henderson  <rth@cygnus.com>
14014
14015         * flow.c (INSN_VOLATILE, SET_INSN_VOLATILE, uid_volatile): Remove.
14016         (life_analysis_1): Subsume into ...
14017         (life_analysis): ... here.  Force PROP_REG_INFO off after reload.
14018         Use update_life_info for the relaxation.
14019         (update_life_info): Update REG_BASIC_BLOCK for registers live on
14020         entry and regs_live_at_setjmp.
14021         (set_noop_p): Simplify.
14022         (notice_stack_pointer_modification_1): Renamed from s/_1//.
14023         (record_volatile_insns): Split into ...
14024         (delete_noop_moves): ... here,
14025         (notice_stack_pointer_modification): ... here,
14026         (insn_dead_p): ... and here.
14027         (propagate_block): Don't query INSN_VOLATILE.
14028         (mark_used_regs): Mind !PROP_REG_INFO.
14029         * toplev.c (rest_of_compilation): Call mark_constant_function here,
14030         not in life_analysis.
14031
14032 Fri Feb 18 01:29:22 EST 2000  John Wehle  (john@feith.com)
14033
14034         * loop.c (canonicalize_condition): New function,
14035         broken out of get_condition.
14036         (get_condition): Use it.
14037         * expr.h (canonicalize_condition): Prototype it.
14038
14039         * tree.h (tree_int_cst_msb): Declare.
14040         * tree.c (tree_int_cst_msb): New function.
14041
14042 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
14043
14044         * stmt.c (set_file_and_line_for_stmt): Don't crash if cfun->stmt
14045         isn't set.
14046
14047         * invoke.texi (-fmessage-length=n): Document.
14048
14049 2000-02-17  Jason Merrill  <jason@casey.cygnus.com>
14050
14051         * bitmap.c (bitmap_operation): Don't leak bitmap elements.
14052
14053 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
14054
14055         * function.c (thread_prologue_and_epilogue_insns): Put a line note
14056         after the prologue.
14057
14058 2000-02-17  Nick Clifton  <nickc@cygnus.com>
14059
14060         * config/arm/thumb.c: Replace includes of system headers with
14061         #include "system.h".
14062
14063 2000-02-16  Richard Henderson  <rth@cygnus.com>
14064
14065         * configure.in (alpha-linux*, alpha-netbsd) [extra_parts]:
14066         Add crtbeginS.o and crtendS.o.
14067         * alpha/elf.h (STARTFILE_SPEC): Use crtbeginS.o.
14068         (ENDFILE_SPEC): Use crtendS.o.
14069         * alpha/t-crtbe (crtbeginS.o, crtendS.o): New targets.
14070
14071         * alpha/crtbegin.asm (__do_frame_takedown): Merge into ...
14072         (__do_global_dtors_aux): ... here.  Call __cxa_finalize if
14073         shared and present.
14074         (__dso_handle): New variable.
14075         * alpha/crtend.asm (__do_global_ctors_aux): Remove runtime
14076         bias to __CTOR_END__.
14077
14078 2000-02-16  Richard Henderson  <rth@cygnus.com>
14079
14080         * Makefile.in (s-crtS, crtbeginS, crtendS): Prefix usage with $(T).
14081
14082 Wed Feb 16 21:40:04 2000  Hans-Peter Nilsson  <hp@bitrange.com>
14083
14084         * longlong.h (__clz_tab): Declare as static to match definition.
14085
14086 2000-02-16 Mark Elbrecht <snowball3@bigfoot.com>
14087
14088         * i386/xm-djgpp.h (LIBSTDCXX): Delete. Moved to config/i386/djgpp.h.
14089         (XREF_FILE_NAME): Define.
14090
14091         * i386/djgpp.h (DATA_SECTION_ASM_OP): Define.
14092         (EH_FRAME_SECTION_ASM_OP): Define.
14093         (IDENT_ASM_OP): Define.
14094         (TEXT_SECTION_ASM_OP): Define.
14095         (CPP_SPEC): Define.
14096         (CTORS_SECTION_ASM_OP): Define.
14097         (CTOR_SECTION_FUNCTION): Use it.
14098         (DTORS_SECTION_ASM_OP): Define.
14099         (DTOR_SECTION_FUNCTION): Use it.
14100
14101 2000-02-16  Zack Weinberg  <zack@wolery.cumb.org>
14102
14103         * reg-stack.c (emit_swap_insn): Do not put a new insn before a
14104         NOTE_BASIC_BLOCK.
14105
14106         * flow.c (dump_regset, debug_regset, dump_bb, debug_bb,
14107         debug_bb_n): New functions.
14108         (dump_flow_info, print_rtl_with_bb): Use dump_regset.
14109         * basic-block.h: Prototype new functions.
14110
14111 Wed Feb 16 21:07:53 2000  Denis Chertykov  <denisc@overta.ru>
14112
14113         * configure.in: Add support for avr target.
14114         * configure: Rebuilt.
14115
14116         * invoke.texi: Add AVR invocation docs.
14117         * install.texi: Add information about AVR.
14118         * md.texi: Add AVR constraint letters description.
14119         * extend.texi: Add description for AVR specific attributes.
14120
14121 2000-02-16  Jason Merrill  <jason@casey.cygnus.com>
14122
14123         * fixinc/fixinc.svr4: Wrap byteorder.h with extern "C".
14124
14125 2000-02-16  Nick Clifton  <nickc@cygnus.com>
14126
14127         * emit-rtl.c (emit_insn): Move RTL check into make_insn_raw.
14128         (make_insn_raw): Move RTL check here.
14129
14130 2000-02-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14131
14132         * version.c: Include gansidecl.h and version.h.
14133
14134         * version.h: Wrap entire file in macro __GCC_VERSION_H__.
14135
14136         * configure.in (gcc_version): When setting, narrow search to
14137         lines containing `version_string'.
14138
14139         * Makefile.in (mainversion): Likewise.
14140         (GCC_H): New variable.
14141         (gcc.h): Delete target.
14142         (gcc.o, gccspec.o, cppspec.o): Depend on $(GCC_H), not gcc.h.
14143         (version.o): Depend on version.h.
14144         (dbxout.o): Don't depend on gcc.h.
14145
14146 Wed Feb 16 15:04:49 2000  Hans-Peter Nilsson  <hp@bitrange.com>
14147                           Michael Meissner  <meissner@cygnus.com>
14148
14149         * md.texi (Simple Constraints): Add item about whitespace.
14150         * genoutput.c (strip_whitespace): New.
14151         (scan_operands) [MATCH_OPERAND, MATCH_SCRATCH]: Call
14152         strip_whitespace for constraints.
14153         Test pointer using NULL, not 0.
14154
14155 2000-02-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14156
14157         * cpplib.c (do_line): Pedwarn for #line > 32767.
14158
14159         * c-lex.c (readescape): Warn about '\x', but do not reject it.
14160
14161 2000-02-15  Jonathan Larmour  <jlarmour@redhat.co.uk>
14162
14163         * gcc.c (default_compilers): Add new __GNUC_PATCHLEVEL__ define
14164         to default cpp spec.
14165         (do_spec_1): Add support for %v3 spec used by __GNUC_PATCHLEVEL__.
14166         * cpp.texi: Document __GNUC_PATCHLEVEL__.
14167         * cpp.1: Likewise.
14168
14169         * objc/lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to
14170         default spec.
14171
14172 2000-02-15  Denis Chertykov  <denisc@overta.ru>
14173
14174         * configure.in: Add support for avr target.
14175
14176 Wed Feb 16 03:21:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14177
14178         * sh.h (OVERRIDE_OPTIONS): Don't set sh_addr_diff_vec_mode.
14179         (sh_addr_diff_vec_mode): Don't declare.
14180         * sh.c (sh_addr_diff_vec_mode): Delete.
14181
14182 Wed Feb 16 01:27:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14183
14184         * sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn.
14185
14186 Wed Feb 16 00:58:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14187
14188         * sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name.
14189         (smulsi3_highpart_i): Name.
14190         (udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes.
14191         (divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise.
14192         (smulsi3_highpart, umulsi3_highpart): Likewise.
14193
14194         (mulsidi3_i, umulsidi3_i): Make rtl describe operation
14195         correctly independent of endianness.
14196         (mulsidi3, umulsidi3): Now define_insn.  Hide details that
14197         confuse the optimizers.
14198         (mulsidi3+1, umulsidi3+1): New define_split.
14199
14200 Tue Feb 15 23:22:26 2000  Andrew Haley  <aph@cygnus.com>
14201
14202         * config/sh/sh.md: Guard insn splits against illegal registers.
14203         * config/sh/sh.h: Correct comment about macros.
14204
14205 Tue Feb 15 22:30:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14206                           Andrew MacLeod  <amacleod@cygnus.com>
14207
14208         * Makefile.in (lcm.o): Depend on insn-attr.h.
14209         * basic-block.h (optimize_mode_switching): Declare.
14210         * lcm.c (tm_p.h, insn-attr.h): #include.
14211         (seginfo, bb_info): New structs.
14212         (antic, transp, comp, delete, insert) : New file-scope static variables.
14213         (new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions.
14214         (reg_becomes_live, optimize_mode_switching): Likewise.
14215         * tm.texi: Add description of mode switching macros.
14216         * toplev.c (rest_of_compilation): Call optimize_mode_switching.
14217
14218         * sh-protos.h (remove_dead_before_cse): Remove prototype.
14219         (fldi_ok, fpscr_set_from_mem): New prototypes.
14220         * sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set.
14221         (CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS):
14222         Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
14223         (sh_flag_remove_dead_before_cse): Remove declaration.
14224         (NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros.
14225         (MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise.
14226         (MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
14227         * sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
14228         (barrier_align): Allow for JUMP_INSNS containing a parallel.
14229         (machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set.
14230         (fldi_ok): New function.
14231         (get_fpscr_rtx): Add fpscr_rtx as GC root.
14232         (emit_sf_insn): Only generate fpu switches when optimize < 1.
14233         (emit_df_insn): Likewise.
14234         (expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete.
14235         (sh_flag_remove_dead_before_cse): Delete.
14236         (get_free_reg, fpscr_set_from_mem): New functions.
14237         * sh.md (movdf, movsf): Remove no_new_pseudos code.
14238         (return): Remove emit_fpscr_use / remove_dead_before_cse calls.
14239
14240 2000-02-15  Loren Rittle  <ljrittle@acm.org>
14241
14242         * ginclude/stddef.h: Correct usage of _BSD_RUNE_T_ for FreeBSD.
14243
14244 2000-02-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14245
14246         * Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o,
14247         cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h.
14248
14249         * cccp.c: Include version.h and/or don't declare `version_string'.
14250         * collect2.c: Likewise.
14251         * alpha.c: Likewise.
14252         * arm/aof.h: Likewise.
14253         * arm/coff.h: Likewise.
14254         * arm/elf.h: Likewise.
14255         * arm/pe.h: Likewise.
14256         * arm/tcoff.h: Likewise.
14257         * arm/telf.h: Likewise.
14258         * arm/tpe.h: Likewise.
14259         * arm/vxarm.h: Likewise.
14260         * convex/convex.c: Likewise.
14261         * i386/dgux.c: Likewise.
14262         * i386/sun386.h: Likewise.
14263         * m88k/m88k.c: Likewise.
14264         * mcore/mcore-pe.h: Likewise.
14265         * mips/mips.h: Likewise.
14266         * romp/romp.h: Likewise.
14267         * sh/sh.c: Likewise.
14268         * cpphash.c: Likewise.
14269         * cppinit.c: Likewise.
14270         * dwarf2out.c: Likewise.
14271         * dwarfout.c: Likewise.
14272         * gcc.c: Likewise.
14273         * gcc.h: Likewise.
14274         * mips-tfile.c: Likewise.
14275         * protoize.c: Likewise.
14276         * toplev.c: Likewise.
14277         * tree.h: Likewise.
14278
14279         * version.c (version_string): Constify a char*.
14280
14281         * version.h: New file.
14282
14283 2000-02-14  Nick Clifton  <nickc@cygnus.com>
14284
14285         * configure.in: Add mcore-elf and mcore-pe targets.
14286         * configure: Regenerate.
14287
14288         * NEWS: Add note that MCore port has been contributed.
14289
14290         * invoke.texi: Document command line switches for MCore port.
14291         * install.texi: Add MCore to list of supported targets.
14292
14293 2000-02-14  Geoff Keating  <geoffk@cygnus.com>
14294
14295         * collect2.c (main) [COLLECT_EXPORT_LIST]: If we have frames,
14296         then we will need to import the frame handling functions.
14297         (scan_prog_file) [COLLECT_EXPORT_LIST]: We will also need
14298         to import the frames themselves.
14299
14300 Mon Feb 14 13:31:01 2000  Stan Cox  <scox@cygnus.com>
14301                           Jason Eckhardt  <jle@cygnus.com>
14302
14303         * basic_block.h: Added prototype for reorder_basic_blocks.
14304         * toplev.c: Changes to add -freorder-blocks and graph dump after
14305         block reordering is done.
14306         * flow.c (reorder_block_def): New structure for use during block
14307         reordering.
14308         (REORDER_BLOCK_*): New macros to access members of above structure.
14309         (skip_insns_between_block, get_common_dest, chain_reorder_blocks,
14310         make_reorder_chain, fixup_reorder_chain, reorder_basic_blocks): New
14311         functions for block reordering.
14312
14313 Mon Feb 14 11:24:44 2000  Hans-Peter Nilsson  <hp@bitrange.com>
14314
14315         * gcc.texi (Passes): Fix typo.
14316         * md.texi (Standard Names): Ditto.
14317         * tm.texi (Storage Layout): Ditto.
14318
14319 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
14320
14321         * cpplib.c (do_define): Only free the old definition if it
14322         actually had one.
14323
14324 2000-02-13   Neil Booth  <NeilB@earthling.net>
14325
14326         * cppfiles.c (read_and_prescan): When emitting deferred
14327         newlines, test speccase[] again instead of checking each
14328         possible whitespace character in turn.  When we encounter \r,
14329         look behind for \n first, then ahead.
14330
14331 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
14332
14333         * cse.c (cse_altered): New internal flag.
14334         (cse_insn): Set it if we changed an insn.
14335         (cse_main): Clear cse_altered before each basic block.
14336         Only garbage collect if cse_altered is true afterward.
14337
14338 Sun Feb 13 14:12:28 2000  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14339
14340         * sparc/sol2.h (LIB_SPEC): Link -ldl if profiling.
14341
14342 Sun Feb 13 13:21:55 2000  Jeffrey A Law  (law@cygnus.com)
14343
14344         * combine.c (simplify_comparison): Fix typo.
14345
14346 Sun Feb 13 12:57:52 2000  Neil Booth <NeilB@earthling.net>
14347
14348         * prefix.c (concat, lookup_key): Use xmalloc and xrealloc
14349         consistently.
14350
14351 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14352
14353         * flow.c (flow_loop_tree_node_add): Use better algorithm by passing
14354         previously inserted node instead of root node.  Caller changed.
14355
14356 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14357
14358         * basic-block.h (FLOW_LOOP_FIRST_BLOCK, FLOW_LOOP_LAST_BLOCK): Delete.
14359
14360 2000-02-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14361
14362         * crtstuff.c (__do_global_ctors_aux, __reg_frame_ctor,
14363         __dereg_frame_dtor): Add prototype argument.
14364
14365         * gthr-dce.h (__gthread_active_p, __gthread_once): Likewise.
14366
14367         * gthr-posix.h (__gthread_active_p, __gthread_once): Likewise.
14368
14369         * gthr-solaris.h (__gthread_active_p, __gthread_once): Likewise.
14370
14371         * gthr-vxworks.h (__gthread_once): Likewise.
14372
14373         * gthr-win32.h (__gthread_active_p, __gthread_once): Likewise.
14374
14375 Sat Feb 12 01:44:26 MET 2000  Jan Hubicka  <jh@suse.cz>
14376
14377         * i386.c (ix86_emit_restore_regs_using_mov): Break out from ...
14378         (ix86_expand_epilogue): ... here. Use mov instead of add to restore
14379         stack pointer in functions w/o saved registers, output LEAVE more often
14380         on TARGET_USE_LEAVE machines.
14381
14382 2000-02-07  Dmitri Makarov  <dim@wrs.com> & Bernd Schmidt <bernds@redhat.com>
14383
14384         * config/arm/arm.c (arm_init_cumulative_args); New function:
14385         Initlaise the CUMULATIE_ARGS strcuture for a function
14386         defintion.
14387         (arm_function_arg): New function: Determine where to place a
14388         function's argument.  Also handles deciding the function's
14389         call cookie.
14390         (current_file_function_operand): New function: Return true if
14391         the symbol is a function which has already been compiled.
14392         (arm_is_long_call_p): New function: Return true if the
14393         indicated function should be called via a long call.
14394         (arm_valid_type_attribute_p): New function: Return true if the
14395         attribute is a valid, arm specific, attribute.
14396         (arm_comp_type_attribute): New function: Return true if the
14397         two types have compatable, arm specific, attributes.
14398
14399         * config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a
14400         structure.
14401         (FUNCTION_ARG): Redefine to call arm_function_arg.
14402         (FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct
14403         structure field.
14404         (INIT_CUMULATIVE_ARGS): Redefine to call
14405         arm_init_cumulative_args.
14406         (FUNCTION_ARG_ADVANCE): Redefine to use correct structure
14407         field.
14408         (SETUP_INCOMING_VARARGS): Redefine to use correct structure
14409         field.
14410         (ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled
14411         functions.
14412         (ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION.
14413         (VALID_MACHINE_TYPE_ATTRIBUTE): Define.
14414         (COMP_TYPE_ATTRIBUTES): Define.
14415
14416         * config/arm/arm.md (call): Call arm_is_long_call_p to decide
14417         if a long call is needed.
14418         (call_value): Call arm_is_long_call_p to decide if a long call
14419         is needed.
14420         (call_symbol): Call arm_is_long_call_p to decide if a long call
14421         is needed.
14422
14423         * config/arm/arm-protos.h: Add prototype for arm_is_long_call_p.
14424
14425 2000-02-11  Denis Chertykov  <denisc@overta.ru>
14426
14427         * README.AVR: New file with information about the avr ports.
14428         * config/avr: New directory with avr port files.
14429
14430 2000-02-11  Andreas Jaeger  <aj@suse.de>
14431
14432         * fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@.
14433
14434 2000-02-11  Zack Weinberg  <zack@wolery.cumb.org>
14435
14436         * cpphash.c: Fix formatting, update commentary.
14437         (dump_definition): Take three separate arguments instead of a
14438         MACRODEF structure argument.
14439         * cpphash.h: Update prototype of dump_definition.
14440         * cppinit.c (cpp_finish): Update call of dump_definition.
14441
14442         * cpplib.c (do_define): Always create new hash entry with
14443         T_MACRO type.  Remove redundant check for redefinition of
14444         poisoned identifier.  Update call of dump_definition.
14445         (do_undef): Don't call check_macro_name.  Rename sym_length to
14446         len.
14447         (do_error, do_warning): Don't use copy_rest_of_line or
14448         SKIP_WHITE_SPACE.
14449         (do_warning): Don't use pedwarn for the actual warning,
14450         only the notice about its not being in the standard.  (Fixes
14451         bug with #warning in system headers.)
14452         (do_ident): Stricter argument checking - accept only a single
14453         string after #ident.  Also, macro-expand the line.
14454         (do_xifdef): Use cpp_defined.  De-obfuscate.
14455
14456         (do_pragma): Split out specific pragma handling to separate
14457         functions.  Use get_directive_token.  Update commentary.  Do
14458         not pass on #pragma once or #pragma poison to the front end.
14459         (do_pragma_once, do_pragma_implementation, do_pragma_poison,
14460         do_pragma_default): New.
14461
14462 Feb 11 12:30:53 2000  Jeffrey A Law  (law@cygnus.com)
14463
14464         * jump.c (jump_optimize_1): The first operand in a relational
14465         can be a CONST_INT.
14466         * optabs.c (emit_conditional_move): Handle relationals which
14467         have a known true/false result.
14468
14469 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
14470
14471         * function.c (thread_prologue_and_epilogue_insns): Don't insert
14472         a RETURN insn into a block which already ends with a jump.
14473
14474 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
14475
14476         * haifa-sched.c (BUF_LEN): Increase a lot.
14477
14478 2000-02-11  Nick Clifton  <nickc@cygnus.com>
14479
14480         * configure.in: Add tm_p_file specification for thumb targets.
14481         * configure: Regenerate.
14482
14483         * config/arm/thumb-protos.h: New file: Prototypes for exported
14484         functions defined in thumb.c.
14485
14486 2000-02-11  Robert Lipe  <robertl@sco.com>
14487
14488         * Makefile.in (bootstrap-lean): Remove additional files.
14489         (bootstrap2-lean): Likewise.
14490         (VOL_FILES): List of files for above.
14491
14492 2000-02-11  Nathan Sidwell  <nathan@acm.org>
14493
14494         * cpphash.c (special_symbol): Remove spurious argument to
14495         cpp_lookup.
14496
14497 2000-02-11  Joel Sherrill (joel@OARcorp.com>
14498
14499         * configure.in: (i*86-*-rtems*): Swapped elf and coff
14500         stanzas.
14501         * configure: Rebuilt.
14502
14503 2000-02-11  Rodney Brown  <RodneyBrown@pmsc.com>
14504
14505         * pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef.
14506
14507 Fri Feb 11 02:59:05 2000  Jeffrey A Law  (law@cygnus.com)
14508
14509         * pa.c, pa.h: Remove trigraph sequences within comments.
14510
14511 Fri Feb 11 02:51:56 2000  Pavel Roskin <pavel_roskin@geocities.com>
14512
14513         * invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics.
14514
14515 Fri Feb 11 02:48:30 2000  Brad Lucier  (lucier@math.purdue.edu)
14516
14517         * sbitmap.h: Make SBITMAP_ELT_BITS unsigned.
14518
14519 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14520
14521         * config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE.
14522
14523 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14524
14525         * config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label.
14526         (ASM_OUTPUT_EXTERNAL): Use c4x_external_ref.
14527         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
14528         (ASM_FILE_END): Use c4x_file_end.
14529         * config/c4x/c4x.c (c4x_global_label): New function.
14530         (c4x_external_ref, c4x_file_end): Likewise.
14531
14532         * config/c4x/c4x-protos.h (c4x_global_label): Add prototype.
14533         (c4x_external_ref, c4x_end_file): Likewise.
14534
14535 2000-02-10  Zack Weinberg  <zack@wolery.cumb.org>
14536
14537         * cppexp.c: Don't include cpphash.h.
14538         (parse_charconst, cpp_lex): Use cpp_defined.
14539         (cpp_lex): Use get_directive_token throughout.  Remove
14540         unnecessary cases from switch.  Move assertion-handling code
14541         down to OTHER case.
14542         (cpp_parse_expr): If we see '+' or '-', check the context to
14543         determine if they are unary or binary operators.  Streamline
14544         the jumps a bit.  Do not call skip_rest_of_line.
14545
14546         * cpplib.c: Make skip_rest_of_line and cpp_skip_hspace
14547         static.  Export get_directive_token.  Update commentary.
14548         (cpp_defined): New function.
14549         (do_define): Remove reference to T_PCSTRING.  Call
14550         free_definition to release memory for old definition, when
14551         redefining a macro.
14552         (eval_if_expression): Set only_seen_white to 0 before calling
14553         cpp_parse_expr.  Call skip_rest_of_line after it returns.
14554         (cpp_read_check_assertion): Don't preserve a pointer into the
14555         token buffer across a call to cpp_get_token.
14556
14557         * Makefile.in (cppexp.o): Don't depend on cpphash.h.
14558         * cppfiles.c (redundant_include_p): Use cpp_defined.
14559         * cpphash.c (free_definition): New function.
14560         (delete_macro): Use it.  Update commentary.
14561         * cpphash.h: Typedef HASHNODE here.  Prototype cpp_lookup and
14562         free_definition.
14563         * cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING
14564         from enum node_type.  Prototype cpp_defined and get_directive_token.
14565         Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace.
14566
14567         * fix-header.c (check_macro_names): Use cpp_defined.
14568         (read_scan_file): Set inhibit_warnings and inhibit_errors in
14569         the options structure.
14570
14571 2000-02-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
14572
14573         * c-pragma.c (maximum_field_alignment): Remove duplicate declaration.
14574
14575 2000-02-10  Jason Merrill  <jason@casey.cygnus.com>
14576
14577         * dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin)
14578         rather than die->die_tag.
14579
14580 Thu Feb 10 16:26:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14581
14582         * combine.c (make_extraction, force_to_mode): Avoid warning on
14583         mixed-signedness conditionals.
14584         (make_field_assignment, nonzero_bits): Likewise.
14585         * expmed.c (store_fixed_bit_field): ALIGN arg now unsigned.
14586         (store_split_bit_field, extract_split_bit_field): Likewise.
14587         (extract_fixed_bit_field, store_bit_field,
14588         * expr.c: Change alignment to be unsigned everywhere.
14589         (move_by_pieces, store_constructor_field, store_constructor):
14590         Alignment parm is unsigned.
14591         (emit_block_move, emit_group_load, emit_group_store): Likewise.
14592         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
14593         (do_compare_rtx_and_jump): Likewise.
14594         (move_by_pieces_ninsns, clear_by_pieces): Likewise.
14595         Compare align with GET_MODE_ALIGNMENT.
14596         (expand_expr_unaligned): Pointer to alignment is pointer to unsigned.
14597         (get_inner_reference): Likewise.
14598         (copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts.
14599         (expand_assignment): Local vars for alignment now unsigned.
14600         (store_constructor, store_field, expand_expr, do_jump): Likewise.
14601         (do_compare_and_jump): Likewise.
14602         (store_field): Call new function expr_align.
14603         * expr.h (emit_block_move, emit_group_load, emit_group_store):
14604         Alignment arg now unsigned.
14605         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
14606         (do_compare_rtx_and_jump, store_bit_field): Likewise.
14607         (extract_bit_field): Likewise.
14608         * fold-const.c (add_double): Add cast to eliminate signedness warning.
14609         * machmode.h (GET_MODE_ALIGNMENT): Result is unsigned.
14610         (get_best_mode): Alignment arg is unsigned.
14611         * rtl.h (move_by_pieces): Likewise.
14612         * store-layout.c (maximum_field_alignment, set_alignment):
14613         Now unsigned.
14614         (layout_decl): Alignment arg is now unsigned.
14615         Remove unneeded casts.
14616         (layout_record, layout_union, layout_type): Remove unneeded casts.
14617         Local alignment variables now unsigned.
14618         (get_best_mode): Alignment arg now unsigned.
14619         * tree.c (expr_align): New function.
14620         * tree.h (expr_align): Likewise.
14621         (maximum_field_alignment, set_alignment): Now unsigned.
14622         (get_inner_reference): Alignment argument is now pointer to unsigned.
14623         * varasm.c (assemble_variable): Add cast to eliminate warning.
14624
14625 Thu Feb 10 12:56:47 2000  Jim Wilson  <wilson@cygnus.com>
14626
14627         * expmed.c (store_bit_field): If op0 and fieldmode are the same size,
14628         then store directly into op0.
14629
14630         * calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for
14631         the CALL_INSN, and emit the note immediately after it.
14632
14633 2000-02-10  Nick Clifton  <nickc@cygnus.com>
14634
14635         * config/arm/thumb.md (epilogue): Include a (return) in the
14636         generated insn, and emit it using emit_jump_insn not
14637         emit_insn.
14638
14639 Thu Feb 10 18:28:59 MET 2000  Jan Hubicka  <jh@suse.cz>
14640
14641         * function.c (assign_temp): Change zero-sized arrays to size 1.
14642         * integrate.c (expand_inline_function): Do not update
14643         stack_alignment_needed
14644         * i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY,
14645         add some sanity checking, remove optimization for function with
14646         zero frame size.
14647
14648 2000-02-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14649
14650         * flow.c (mark_regs_live_at_end): Delete unused variables.
14651
14652         * ggc-page.c (ggc_page_print_statistics): bzero -> memset.
14653
14654         * integrate.c (copy_rtx_and_substitute): Wrap variable `alignment'
14655         in macro FRAME_GROWS_DOWNWARD.
14656
14657         * stmt.c (expand_end_bindings): Delete unused variable.
14658
14659         * unroll.c (iteration_info): Mark parameter `loop' with
14660         ATTRIBUTE_UNUSED.
14661
14662 2000-02-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14663
14664         * fixinc/server.c (load_data): Return NULL if the marker line is
14665         not found.
14666         (run_shell): If load_data returns NULL, retry the command once, in
14667         a new shell.
14668
14669         * configure: Rebuilt.
14670
14671 2000-02-09  Bruce Korb  <bkorb@gnu.org>
14672
14673         * gcc/fixincludes:  ** DELETED **
14674         * gcc/fixcpp:  ** DELETED **
14675         * gcc/fixinc-nt.sed:  ** DELETED **
14676         * gcc/just-fixinc:  ** DELETED **
14677         * gcc/Makefile.in:  Removed out-dated commentary
14678         * gcc/configure.in: Removed fast-fixincludes disablement.
14679         * MAINTAINERS(Ian Taylor) moved to "Write after approval" group.
14680
14681 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
14682         * function.c (thread_prologue_and_epilogue_insns): Uncomment
14683         last change.
14684
14685 2000-02-09  Richard Henderson  <rth@cygnus.com>
14686
14687         * jump.c (delete_insn): Don't delete user labels at -O0.
14688
14689 2000-02-09  Robert Lipe  <robertl@sco.com>
14690
14691         * Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS.
14692         Don't link with HOST_LIBS.
14693
14694 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
14695
14696         * configure.in: Correct --help text for --with-dwarf2.
14697         Put tm-dwarf2.h after other tm files, if it's requested.
14698         * configure: Regenerate.
14699         * config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before
14700         defining it.
14701
14702 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
14703
14704         * cpplib.h: Provide HASHNODE typedef and forward decl of
14705         struct hashnode only.  Kill cpp_hashnode typedef.  MACRODEF,
14706         DEFINITION, struct hashnode, struct macrodef, struct
14707         definition, scan_decls prototype, default defn of
14708         INCLUDE_LEN_FUDGE moved elsewhere.
14709
14710         * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct
14711         definition, and struct hashnode moved here. Remove the unused
14712         'predefined' field from struct definition.  Replace the 'args'
14713         union with its sole member.  All users updated (cpphash.c).
14714         Delete HASHSTEP and MAKE_POS macros, and hashf prototype.  Add
14715         multiple include guard.
14716
14717         * cpphash.c (hashf): Make static; use better algorithm; drop
14718         HASHSIZE parameter; return an unsigned int.
14719         (cpp_lookup): Drop HASH parameter.  PFILE parameter is
14720         used. Calculate HASHSIZE modulus here.
14721         (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus
14722         here.
14723         (create_definition): Drop PREDEFINITION parameter.
14724         * cpplib.c (do_define): Don't calculate a hash value here.
14725         Don't pass (keyword == NULL) to create_definition.
14726
14727         * scan.h: Prototype scan_decls here.
14728         * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here.
14729         * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All
14730         callers of cpp_lookup and cpp_install updated.
14731
14732         * cpphash.c (macarg): Hoist all the flag diddling out of the
14733         function...
14734         (macroexpand): ... and out of the loop that calls macarg.
14735         Skip over the initial paren before macro arguments with
14736         cpp_get_non_space_token; point may be some distance before
14737         that paren.  Abort if it's not there.
14738
14739         * cpplib.c (parse_clear_mark): Delete function.
14740         (parse_set_mark, parse_goto_mark): Make static.
14741         (ACTIVE_MARK_P): New macro.
14742         (skip_block_comment, skip_line_comment): Do not bump the line
14743         if ACTIVE_MARK_P is true.
14744         (cpp_pop_buffer): The buffer to be popped may not have an
14745         active mark.
14746         (cpp_get_token): When looking for the initial paren before
14747         macro arguments, only set a mark in a file buffer, Always
14748         return to that mark before proceeding to call macroexpand or
14749         return a NAME token.
14750
14751         * cpplib.h: Remove prototypes of parse_set_mark,
14752         parse_clear_mark, parse_goto_mark.
14753         (struct cpp_options): Rename 'put_out_comments' to
14754         'discard_comments' and invert its sense.
14755         * cppinit.c, cpphash.c, cpplib.c: All users of
14756         put_out_comments changed to use discard_comments, with
14757         opposite sense.
14758
14759 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
14760
14761         * function.c (thread_prologue_and_epilogue_insns): Don't delete
14762         the edge from a block that both jumps and falls through to the
14763         fallthru block.
14764
14765 2000-02-09  Scott Bambrough  <scottb@netwinder.org>
14766
14767         * config/arm/arm.md (movsi): In PIC mode, make sure that a
14768         constant source address is legitimate.
14769
14770 2000-02-09  Philip Blundell  <pb@futuretv.com>
14771
14772         * config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF
14773         correctly.
14774
14775         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when
14776         generating PIC.
14777         (LEGITIMATE_PIC_OPERAND): Disallow references to labels.
14778
14779 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
14780
14781         * cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer
14782         ends with a newline and a NUL.  Don't be so clever manipulating
14783         strings.
14784
14785 Wed Feb  9 14:18:08 MET 2000  Jan Hubicka  <jh@suse.cz>
14786
14787         * reload1.c (reload) Align stack frame to cfun->stack_alignment_needed,
14788         not to BIGGEST_ALIGNMENT.
14789
14790 2000-02-08  Geoff Keating  <geoffk@cygnus.com>
14791
14792         * dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant.
14793         * dwarf2out.c (dwarf_cfi_name): Print name of new constant.
14794         (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed.
14795         (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended.
14796         * frame.c (execute_cfa_insn): Handle
14797         DW_CFA_GNU_negative_offset_extended.
14798
14799 2000-02-08  Richard Henderson  <rth@cygnus.com>
14800
14801         * flow.c (tidy_fallthru_edges): Split out from ...
14802         (delete_unreachable_blocks): ... here.
14803         (find_basic_blocks): Use it.
14804
14805 Tue Feb  8 15:51:50 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14806
14807         * stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY.
14808
14809 2000-02-08  Zack Weinberg  <zack@wolery.cumb.org>
14810
14811         * Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a.
14812         (gen_protos.o): Don't depend on cpplib.h or cpphash.h.
14813         (fix-header.o): Don't depend on cpphash.h.
14814
14815         * scan.c (hashstr): New function.
14816         * scan.h: Prototype it.
14817         * fix-header.c: Don't include cpphash.h.  Use hashstr.
14818         * gen-protos.c: Don't include cpphash.h or cpplib.h.  Use
14819         hashstr.  Report hash table statistics.  Add private
14820         definition of xrealloc.
14821
14822 2000-02-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14823
14824         * i386.h (TARGET_SWITCHES): Fix typo in option name.
14825
14826 2000-02-08  Clinton Popetz  <cpopetz@cygnus.com>
14827
14828         * function.c (thread_prologue_and_epilogue_insns): Don't replace
14829         jumps with returns unless they are jumps to the fallthru block.
14830
14831 Tue Feb  8 07:53:55 2000  Jan Hubicka  <jh@suse.cz>
14832
14833         * i386.md (addqi3_cc): Fix contraints.
14834
14835 Tue Feb  8 01:39:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
14836
14837         * function.c (emit_return_into_block): Wrap in #ifdef HAVE_return.
14838
14839 2000-02-07  Mark Mitchell  <mark@codesourcery.com>
14840
14841         * cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a
14842         carriage return after a macro name.
14843
14844 2000-02-07  Fred Fish  <fnf@be.com>
14845
14846         * i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing
14847         so the gcc2_compiled symbol doesn't confuse BeOS debuggers.
14848
14849 2000-02-07  Zack Weinberg  <zack@wolery.cumb.org>
14850
14851         * cppfiles.c (deps_output): Count spacers in deps_column.
14852
14853 2000-02-07  Neil Booth  <NeilB@earthling.net>
14854
14855         * cppinit.c (initialize_dependency_output): If there is no
14856         suffix, don't try to look for known suffixes.  Use strrchr.
14857         (cpp_start_read): Remove duplicate initialization.
14858
14859 Mon Feb  7 18:36:41 MET 2000  Jan Hubicka  <jh@suse.cz>
14860
14861         * calls.c (compute_argument_block_size): New argument
14862         preferred_stack_boundary.
14863         (expand_call): update cfun->preferred_stack_boundary, update call of
14864         compute_argument_block_size
14865         (emit_library_call): Increate cfun->preferred_stack_boundary
14866         to PREFERRED_STACK_BOUNDARY
14867         (emit_library_call_value): Likewise.
14868         * explow.c (allocate_dynamic_stack_spave): Likewise.
14869         * function.c (prepare_function_start): Set
14870         cfun->preferred_stack_boundary
14871         * function.h (struct function): Add preferred_stack_boundary field.
14872         * integrate.c (expand_inline_function): Update
14873         cfun->preferred_stack_boundary and cfun->stack_alignment_needed.
14874         (copy_rtx_and_substitute): Align frame to stack_alignment_needed only.
14875         * i386.c (compute_frame_size): Use cfun->preferred_stack_boundary.
14876
14877 2000-02-06  Zack Weinberg  <zack@wolery.cumb.org>
14878
14879         * cpplib.c (my_strerror, cpp_error, cpp_error_with_line,
14880         cpp_error_from_errno, cpp_warning, cpp_warning_with_line,
14881         cpp_pedwarn, cpp_pedwarn_with_line,
14882         cpp_pedwarn_with_file_and_line): Move to cpperror.c.
14883         (cpp_print_file_and_line, v_cpp_error, v_cpp_warning,
14884         v_cpp_error_with_line, v_cpp_warning_with_line,
14885         cpp_message_from_errno, cpp_perror_with_name): Delete.
14886
14887         * cpperror.c (cpp_print_containing_files): Take starting
14888         buffer as argument.
14889         (cpp_file_line_for_message): Rename to cpp_print_file_and_line.
14890         (v_cpp_message): Now called directly by all entry points.
14891         Remove -1 case.
14892         (cpp_pfatal_with_name, cpp_message): Delete.
14893         (cpp_notice_from_errno, cpp_ice): New functions.
14894         (cpp_notice): Is now for reporting error conditions, just
14895         without an associated file.
14896         (cpp_error, cpp_error_with_line): Don't do anything if
14897         opts->inhibit_errors is on.
14898         (cpp_pedwarn_with_file_and_line): Take column argument also.
14899
14900         * cpplib.h: Update prototypes of exported functions.
14901         (struct cpp_options): Add inhibit_errors.
14902
14903         * cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for
14904         non-error messages.  Include intl.h.
14905
14906         * cppinit.c, cppmain.c: Likewise.  Also, use
14907         cpp_notice_from_errno instead of cpp_perror_with_name or
14908         cpp_pfatal_with_name, and cpp_notice instead of cpp_message.
14909
14910         * cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to
14911         report internal errors.
14912
14913         * cpplib.c (do_define): Switch bcopy to memcpy.
14914         Give cpp_pedwarn_with_file_and_line a dummy column argument.
14915
14916         * cpplib.c (copy_rest_of_line): Revert previous change: don't
14917         bail out early if we hit a line comment.
14918
14919 2000-02-06  Richard Henderson  <rth@cygnus.com>
14920
14921         * flow.c (flow_delete_insn, make_edge, remove_edge): Export.
14922         * basic-block.h: Declare them.
14923         * emit-rtl.h (active_insn_p): New.
14924         (next_active_insn, prev_active_insn): Use it.
14925         * rtl.h: Declare it.
14926         * function.c (emit_return_into_block): New.
14927         (thread_prologue_and_epilogue_insns): Insert return insns instead
14928         of epilogues when possible.
14929         * jump.c (jump_optimize_1): Remove code to insert a return insn
14930         on the fallthru to the exit block.
14931
14932         * i386.c (ix86_can_use_return_insn_p): Fail for large poped args
14933         and for non-empty stack frames.
14934         * i386.md (return): Expand to return-pop as needed.
14935
14936 2000-02-06  Richard Henderson  <rth@cygnus.com>
14937
14938         * simplify-rtx.c (simplify_relational_operation): Canonicalize
14939         constant to op1 for testing.
14940
14941 2000-02-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14942
14943         * config/c4x/c4x.md (*ldi_on_overflow): New pattern.
14944         (fixuns_truncqfqi2): Use it.
14945
14946 2000-02-06  Richard Henderson  <rth@cygnus.com>
14947
14948         * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack
14949         as a TYPE_LEA insn.
14950
14951         * i386.md (widening and peepholes): Mask the constant instead of
14952         using gen_lowpart.
14953
14954 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
14955
14956         * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump
14957         input pointer before possibly branching off to the backslash
14958         code.
14959         * cpphash.c (macroexpand): Correctly delete \r escapes when
14960         stringifying parameters.
14961         * cpplib.c (copy_rest_of_line): Go directly to skip_block_comment
14962         if we can; bail out early if we hit a line comment.
14963         (handle_directive): Treat '# 123' in an .S file just like
14964         '# <punctuation>'.  Discard the shifted '#' if we hit '#\n'.
14965         Return 1 for '# not_a_directive'.
14966         (get_directive_token): Pop macro buffers here, so that
14967         cpp_get_token can't sneakily move past a newline.
14968         Add sanity checks.
14969         (cpp_get_token): goto randomchar if handle_directive returns 0.
14970
14971         * cppalloc.c: Update copyright.
14972         * cpplib.c: Merge all the static function prototypes into one
14973         block.
14974         * cpplib.h: Remove #if 0 block.
14975
14976         * cpperror.c: Remove #ifdef EMACS block.
14977         * cppmain.c: Likewise.
14978         * cpphash.c: Remove #if 0 blocks.
14979         * cppinit.c: Remove #if 0 blocks, and the -lint option.
14980         * cpplib.c: Remove #if 0 blocks and code referencing
14981         pcp_inside_if or for_lint.  Remove duplicate error message.
14982         Fix error messages for #else after #else or #elif.  Reformat.
14983         Remove archaic TODO list.
14984         * cpplib.h: Remove pcp_inside_if and for_lint flags.
14985
14986 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
14987
14988         * i386/osf1elf.h: Add missing backslash to multiline string.
14989
14990 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14991
14992         * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg.
14993
14994 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14995
14996         * Makefile.in (c-common.o): Depend on $(EXPR_H).
14997
14998         * c-common.c: Include expr.h.
14999
15000         * c-pragma.c (mark_align_stack): Add prototype.
15001
15002         * caller-save.c (add_stored_regs): Likewise.
15003
15004         * combine.c (record_promoted_value): Likewise.
15005
15006         * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro):
15007         Likewise.
15008
15009         * cppinit.c (new_pending_define): Likewise.
15010
15011         * cpplib.c (skip_block_comment, skip_line_comment): Likewise.
15012
15013         * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists,
15014         AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
15015         AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p,
15016         class_scope_p): Likewise.
15017
15018         * dwarf2out.h (dwarf2out_set_demangle_name_func,
15019         dwarf2out_add_library_unit_info): Likewise.
15020
15021         * ggc.h (ggc_page_print_statistics): Likewise.
15022
15023         * haifa-sched.c (propagate_deps): Likewise.
15024
15025         * reg-stack.c (next_flags_user, record_label_references): Likewise.
15026
15027         * rtl.h (set_stack_check_libfunc): Likewise.
15028
15029         * toplev.h (set_fatal_function): Likewise.
15030
15031         * toplev.c (set_fatal_function): Delete prototype.
15032
15033         * diagnostic.c: Deconstify functions returning malloc'ed ptrs.
15034
15035 2000-02-05  Geoff Keating  <geoffk@cygnus.com>
15036
15037         * ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX.
15038         (FUNC_END): Likewise.
15039
15040 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15041
15042         * caller-save.c: Include tm_p.h.
15043
15044 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15045
15046         * Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2).
15047
15048 2000-02-04  Neil Booth  <NeilB@earthling.net>
15049
15050         * cccp.c (main): Check 'dir' for a NULL pointer before passing
15051         it to strcmp.
15052
15053 2000-02-04  Zack Weinberg  <zack@wolery.cumb.org>
15054
15055         * recog.h: Remove NO_MD_PROTOTYPES ifdefs.
15056         * genflags.c: Use the max_operand_1 logic from genemit.c to
15057         calculate how many arguments gen_insn prototypes have.  Remove
15058         NO_MD_PROTOTYPES ifdefs from the generated file.
15059         * genoutput.c: Don't define NO_MD_PROTOTYPES in the generated
15060         file.  Cast gen_insn initializers to insn_gen_fn.
15061         * config/alpha/vms.h: Don't define NO_MD_PROTOTYPES.
15062         * gcc.texi: Remove documentation of NO_MD_PROTOTYPES.
15063
15064 2000-02-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15065
15066         * fixinc/Makefile.in (HDR): Add machname.h.
15067         (clean): Likewise.
15068
15069 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15070
15071         * config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ...
15072         (c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto.
15073         (c4x_cpu_version): Ditto.
15074         * config/c4x/c4x-protos.h: ... here.
15075
15076 2000-02-04  Jason Merrill  <jason@casey.cygnus.com>
15077
15078         * dwarf2out.c (add_abstract_origin_attribute): Don't call
15079         gen_abstract_function on our context if we're a nested function.
15080
15081 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15082
15083         * config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite.
15084         * config/c4x/libgcc.S (ufix_truncqfhi2n): Fix.
15085
15086 2000-02-04  Bruce Korb  <bkorb@gnu.org>
15087
15088         * fixinc/genfixes(machname.h):
15089         Move the functionality from gen-machine.h into this file.
15090         UNdef MN_NAME_PAT if there are no names to change.
15091         Also, be a little kinder when AutoGen is not present.
15092
15093         * fixinc/Makefile.in(machname.h):
15094         Change the generation rule to use genfixes.
15095
15096         * fixinc/fixfixes.c(machine_name):
15097         machine_name_fix's functionality now dependent upon whether
15098         MN_NAME_PAT is defined.
15099
15100         * fixinc/fixtests.c(machine_name):
15101         ditto.
15102
15103         * fixinc/fixlib.c(mn_get_regexps): conditional on definition
15104         of MN_NAME_PAT.
15105
15106         * fixinc/fixlib.h(mn_get_regexps):
15107         ditto
15108
15109         * fixinc/gen-machine.h: DELETED
15110
15111 2000-02-04  Jan Hubicka  <jh@suse.cz>
15112             Richard Henderson  <rth@cygnus.com>
15113
15114         * i386.c (SAVE_REGS_FIRST): Remove.
15115         (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode.
15116         (ix86_compute_frame_size): Likewise.
15117         (ix86_expand_prologue): Likewise.  Use pro_epilogue_adjust_stack.
15118         (ix86_emit_restore_regs): Remove.
15119         (ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack
15120         when a frame pointer is in use.
15121         (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode.  Use mov
15122         instead of pop to restore a register when profitable; emit leave
15123         when profitable.
15124         (ix86_attr_length_default): Handle pro_epilogue_adjust_stack
15125         as a TYPE_LEA insn.
15126         (ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU.
15127         * i386.md (prologue_allocate_stack): Remove.
15128         (epilogue_deallocate_stack): Remove.
15129         (pro_epilogue_adjust_stack): New.
15130
15131 2000-02-04  Richard Henderson  <rth@cygnus.com>
15132
15133         * function.c (diddle_return_value): Rework to use a callback function.
15134         Use current_function_return_rtx if it's been set up.
15135         (do_clobber_return_reg, clobber_return_register): New.
15136         (do_use_return_reg, use_return_register): New.
15137         (expand_function_end): Use them.
15138         * stmt.c (expand_null_return): Likewise.
15139         * function.h: Declare them.
15140         * flow.c (mark_regs_live_at_end): Use diddle_return_value.
15141         (mark_reg): Change arguments as appropriate for callback.
15142         * integrate.c (expand_inline_function): Revert 19 Jan change.
15143
15144 Fri Feb  4 20:25:42 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15145
15146         * tm.texi (Values in Registers): Fix typo: "fo" "for".
15147         (Misc): Say the scheduler, not the Haifa scheduler.
15148
15149 2000-02-04  Clinton Popetz  <cpopetz@cygnus.com>
15150
15151         * jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs
15152         when in_mem is set.  Update all callers.
15153
15154 2000-02-04  Richard Henderson  <rth@cygnus.com>
15155
15156         * i386/openbsd.h (INT_ASM_OP): Define.
15157
15158 Fri Feb  4 10:51:30 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15159
15160         * tm.texi: Fix various typos.
15161
15162 Thu Feb  3 17:17:32 2000  Steve Ellcey <sje@cup.hp.com>
15163
15164         * config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case.
15165         (MD_STARTFILE_PREFIX_1): New macro.
15166
15167 Thu Feb  3 15:08:13 MET 2000  Jan Hubicka  <jh@suse.cz>
15168
15169         * i386.md (movstrsi, clrstrsi): Support variable sized copies, align
15170         destination when needed.
15171         (strmovsi, strsetsi): New expander.
15172         (strmovsi_1, strsetsi_1): New pattern.
15173         * i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP,
15174         TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros.
15175         (TARGET_SWITCHES) Add align-stringops and inline-all-stringops.
15176         * invoke.texi (align-stringops, inline-all-stringops): Document.
15177
15178 Wed Feb  2 23:04:47 2000   Krister Walfridsson <cato@df.lth.se>
15179
15180         * i386/netbsd.h (INT_ASM_OP): Define.
15181
15182 2000-02-02  Zack Weinberg  <zack@wolery.cumb.org>
15183
15184         * cpplib.h (cpp_reader): Add new flag, no_directives.
15185         * cpphash.c (macarg): Set it.
15186         * cpplib.c (handle_directive): If no_directives is on and we
15187         find a directive, issue an error and discard the line.
15188
15189 Wed Feb  2 13:07:10 2000  Jim Wilson  <wilson@cygnus.com>
15190
15191         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for
15192         FP constants.  Add ! TARGET_FPU check for FP constants.
15193
15194 2000-02-02  Clinton Popetz  <cpopetz@cygnus.com>
15195
15196         * flow.c (find_basic_blocks): Don't kill label_value_list
15197         here.
15198         (cleanup_cfg): Kill it here.
15199
15200 Wed Feb  2 08:12:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15201
15202         * expr.c (store_field): Ensure ALIGN is no stricter than the
15203         alignment of EXP.
15204
15205 2000-02-02  Richard Henderson  <rth@cygnus.com>
15206
15207         * jump.c (delete_insn): Partially revert 19 Jan change;
15208         don't convert unused code labels to notes at -O0.
15209
15210 2000-02-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15211
15212         * toplev.c (rest_of_compilation): Run rebuild_jump_labels after
15213         split_all_insns to recreate REG_LABEL notes for flow2 pass.
15214
15215 2000-02-01  Richard Henderson  <rth@cygnus.com>
15216
15217         * i386.c (general_no_elim_operand): New.
15218         (nonmemory_no_elim_operand): New.
15219         (ix86_expand_move): Copy eliminable operands before a push.
15220         * i386-protos.h: Declare new functions.
15221         * i386.h (CAN_ELIMINATE): Simplify.
15222         (PREDICATE_CODES): Update.
15223         * i386.md (push insns): Don't allow eliminable register operands.
15224
15225 2000-02-01  Richard Henderson  <rth@cygnus.com>
15226
15227         * flow.c (mark_regs_live_at_end): Follow expand_function_end and
15228         replace BLKmode with DECL_RTL's mode.
15229
15230 2000-02-01  Zack Weinberg  <zack@wolery.cumb.org>
15231
15232         * frame.c (find_fde): Convert for loop to do-while so compiler
15233         sees it's always executed at least once.
15234         * libgcc2.c (BBINBUFSIZE): Kill.
15235         (__bb_init_prg): Use fgets.
15236         (__bb_exit_trace_func): Don't paste strings.
15237         * unroll.c (unroll_loop): Initialize unroll_type, not
15238         unroll_number, and tweak logic to match.
15239
15240         * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in
15241         all failure paths.
15242         (ix86_flags_dependant): Likewise.  Disentangle control flow.
15243         (ix86_sched_reorder): Break guts out to
15244         ix86_sched_reorder_pentium and ix86_sched_reorder_ppro.
15245         (ix86_sched_reorder_ppro): Initialize pair2 and insnp before
15246         any possible use.
15247
15248         * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't
15249         use string concatenation.  Don't save and restore esi.
15250
15251         * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def.
15252         (machname.h): Remove script to separate file.  Use two-step
15253         sequence so target is not created if script fails.
15254         * fixinc/gen-machname.h: New file.  Handle case where no non-reserved
15255         identifiers are defined.
15256         * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is
15257         an empty string, machine_name doesn't need to do anything at
15258         all.
15259         (is_cxx_header): Add more cases to regexp.
15260         * fixinc/fixlib.h: Update prototype.
15261         * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of
15262         mn_get_regexps.
15263         * fixinc/fixincl.c: Define NO_BOGOSITY.
15264
15265         * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out.
15266         (hp_sysfile): Add missing comma.
15267         (math_exception): Put the wrapper ifdefs at the beginning and
15268         the end of the file.
15269         * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate.
15270
15271 2000-02-01  Richard Henderson  <rth@cygnus.com>
15272
15273         * sparc.c (fp_zero_operand): Turn into a normal predicate.
15274         Use CONST0_RTX.  Update all callers.
15275         * sparc.h, sparc-protos.h: Update accordingly.
15276         * sparc.md (fp mov insns): Use fp_zero_operand directly
15277         where applicable.
15278
15279 Wed Feb  2 02:59:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15280
15281         * tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS
15282         example.
15283
15284 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15285
15286         * Makefile.in (specs.ready): New target.
15287         (fixinc.sh): Depend on `specs.ready' instead of `specs'.
15288
15289 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15290
15291         * fixinc.irix: Use unique filenames for writing into /tmp,
15292         * fixinc.ptx: Likewise.
15293         * fixinc.sco: Likewise.
15294         * fixinc.svr4: Likewise.
15295         * fixinc.winnt: Likewise.
15296
15297 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15298
15299         * tsystem.h: New file.
15300
15301         * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o,
15302         s-crtS): Depend on tsystem.h.
15303
15304         * crtstuff.c: Include tsystem.h.
15305         * frame.c: Likewise.
15306         * libgcc2.c: Likewise.
15307
15308 Tue Feb  1 19:53:27 CET 2000  Jan Hubicka  <jh@suse.cz>
15309
15310         * builtins.c (expand_builtin_memset): Expand for variable sized
15311         lengths too.
15312
15313 2000-02-01  David Billinghurst <David.Billinghurst@riotinto.com.au>
15314
15315         * config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based
15316         on ABI.
15317
15318 Tue Feb  1 00:57:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15319
15320         * dwarfout.c (SHORT_TYPE_SIZE): Correct default.
15321
15322         * tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE.
15323
15324 2000-01-31  Chandra Chavva <cchavva@cygnus.com>
15325
15326         * combine.c (try_combine) [HAVE_cc0]: Trying to check the missed
15327         case 3->2 combining (combining with splitting) in which 2 is CC0
15328         setter/user and 3 is user. The rest of cases 2->1 and 3->2 are
15329         checked at the begining of the function with the aid of calling
15330         function 'can_combine_p'.
15331
15332 2000-01-31  Dave Brolley  <brolley@redhat.com>
15333
15334         * cccp.c (struct argdata): Redeclare 'newlines' field as 'int'.
15335
15336 2000-01-31  Jason Merrill  <jason@casey.cygnus.com>
15337
15338         * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the
15339         new label.
15340
15341 2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15342
15343         * gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros.
15344
15345         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit):
15346         PROTO -> PARAMS.
15347
15348 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
15349
15350         * i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h,
15351         i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h,
15352         i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h,
15353         i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h,
15354         i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h,
15355         i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
15356         i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h,
15357         i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h,
15358         i386/vxi386.h, i386/win-nt.h, i386/win32.h:
15359         Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES.
15360
15361         * i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h:
15362         Add %(cpp_cpu) to CPP_SPEC.
15363
15364         * i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h:
15365         Add %(cc1_cpu) to CC1_SPEC.
15366
15367 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
15368
15369         * c-decl.c (c_decode_option): Accept optional numeric argument to
15370         -Wformat and set warn_format.
15371         * c-common.c: Don't emit warning about non-constant printf format
15372         string unless warn_format > 1.
15373
15374 2000-01-30  Richard Henderson  <rth@cygnus.com>
15375
15376         * alpha.md (return_internal): Allow after reload only.
15377
15378 2000-01-30  Richard Henderson  <rth@cygnus.com>
15379
15380         * i386.c (ix86_compute_frame_size): Omit padding1 if the
15381         local frame size is zero.
15382
15383 2000-01-30  Richard Henderson  <rth@cygnus.com>
15384
15385         * alpha.c (alpha_expand_epilogue): Don't emit the return insn.
15386         * alpha.h (EPILOGUE_USES): New.  Mark $26 live.
15387         * alpha.md (return): Turn into an expander.
15388         (return_internal): Don't use $26.
15389         (epilogue): Emit the return insn.
15390
15391 2000-01-30  Richard Henderson  <rth@cygnus.com>
15392
15393         * alpha.md (negtf2, abstf2): Fix word order thinko.
15394         (extendsftf2): New.
15395         (trunctfsf2): Avoid intermediate rounding errors.
15396
15397 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
15398
15399         * cppfiles.c (find_position): Drop 'colp' argument, return the
15400         new line base.
15401         (read_and_prescan): Adjust to match.  Don't ever manipulate
15402         line or line_base except via find_position.
15403
15404 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
15405
15406         * c-parse.in: Apply Ulrich's changes from c-parse.y.
15407         * c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c:
15408         Regenerate.
15409
15410 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
15411
15412         * cpperror.c (cpp_file_line_for_message): If 'line' is zero,
15413         just print "<command line>".  If 'filename' is null or an
15414         empty string, print "<stdin>" for the filename.
15415         * cpplib.c (do_define): Don't print the 'location of the
15416         previous definition' message if we're still parsing the
15417         command line.
15418         (cpp_pedwarn_with_file_and_line): Always call
15419         cpp_file_line_for_message.
15420
15421 2000-01-29  Mark Mitchell  <mark@codesourcery.com>
15422
15423         * flow.c (mark_regs_live_at_end): Fix typo.
15424
15425 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
15426
15427         * c-common.c: Adjust variable names, comments, help strings to c99.
15428         * c-lex.c: Likewise.
15429         * c-parse.y: Likewise.
15430         * c-tree.h: Likewise.
15431         * cccp.c: Likewise.
15432         * cpplib.h: Likewise.
15433         * c-decl.c: Likewise.  Recognize options with names "*99" as well.
15434         * cppinit.c: Likewise.
15435
15436 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15437
15438         * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries.
15439         * c4x.c: Define the optab rtx values.
15440         (c4x_add_gc_roots): Add the ggc roots for these optab rtx values.
15441         (c4x_emit_libcall): Use new optab rtx values.
15442         (c4x_emit_libcall3): Likewise.
15443         (c4x_emit_libcall_mulhi): Likewise.
15444         * c4x-protos.h: Add prototypes for optab rtx values and change
15445         prototypes for above c4x_emit_libcall functions.
15446
15447 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15448
15449         * c4x.c (c4x_output_ascii): Restrict line length of output when TI
15450         syntax is used.
15451         (c4x_function_prologue): Use regnames intead of float_reg_names when
15452         TI syntax is used.
15453         (c4x_function_epilogue): Likewise.
15454         (c4x_print_operand): Likewise.
15455         * c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine.
15456         * c4x.md (set_high): Disable for TARGET_TI.
15457
15458 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15459
15460         * c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading
15461         of framepointer + constant to ADDR_REGS class.
15462         * c4x.md (addqi3, addqi3_noclobber_reload): Update.
15463         * c4x.c (std_or_reg_operand): New function.
15464         * c4x-protos.h (std_or_reg_operand): Prototype it.
15465
15466 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15467
15468         * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same
15469                 object names as libgcc2.c.
15470         * libgcc.S: Use newly defined names.
15471
15472 Fri Jan  7 19:48:04 CET 2000  Jan Hubicka  <jh@suse.cz>
15473         * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New
15474         function.
15475         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare.
15476         * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro.
15477         (FLOW_LOOP_LAST_BLOCK): Likewise.
15478
15479 2000-01-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15480
15481         * basic-block.h (struct loop): New fields 'first' and 'last'.
15482         * flow.c (flow_loops_find): Compute loop->first and loop->last.
15483         (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG
15484         and loop->last to check for NOTE_INSN_LOOP_END.
15485
15486 Fri Jan 28 10:57:58 2000  Jason Eckhardt  <jle@cygnus.com>
15487
15488         * predict.c (estimate_probability): Use the new FIRST and LAST fields
15489         of the loop descriptor rather than HEADER and LATCH. Also added
15490         missing break statements as well making some coding style modifications
15491         as suggested by Michael Hayes.
15492
15493 2000-01-28  Richard Henderson  <rth@cygnus.com>
15494
15495         * flow.c (find_basic_blocks): Remove do_cleanup argument.
15496         Break out that code ...
15497         (cleanup_cfg): ... here.
15498         (commit_one_edge_insertion): Detect a return instruction being
15499         emitted to an edge.  Emit a barrier following; clear fallthru.
15500         (commit_edge_insertions): Verify CFG consistency.
15501         * function.c (expand_function_start): Kill unused variable.
15502         (expand_function_end): Likewise.
15503         (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge
15504         to insert the epilogue.
15505
15506         * gcse.c (gcse_main): Adjust for find_basic_blocks change.
15507         (delete_null_pointer_checks): Likewise.
15508         * output.h: Likewise.
15509         * reg-stack.c (reg_to_stack): Likewise.
15510         * toplev.c (rest_of_compilation): Likewise.  Run
15511         thread_prologue_and_epilogue_insns after rebuilding the CFG.
15512
15513 2000-01-28  Richard Henderson  <rth@cygnus.com>
15514
15515         * Makefile.in (flow.o): Revert 24 Jan change.
15516         * flow.c (mark_regs_live_at_end): Likewise.  Force BLKmode
15517         FUNCTION_VALUE result to DECL_RESULT's mode.
15518
15519         * haifa-sched.c (schedule_insns): Don't recompute reg info
15520         after reload.
15521
15522 2000-01-28  Zack Weinberg  <zack@wolery.cumb.org>
15523
15524         * configure.in: Make --enable-cpplib the default.
15525         * configure: Regenerate.
15526         * gcc.dg/990119-1.c: No longer expected to fail.
15527
15528 2000-01-28  Bernd Schmidt  <bernds@cygnus.co.uk>
15529
15530         * jump.c (jump_optimize_1): Delete an optimization that is also done
15531         by merge_blocks in flow.
15532
15533 2000-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15534
15535         * diagnostic.c (build_message_string, output_printf,
15536         line_wrapper_printf): Add ATTRIBUTE_PRINTF_*.
15537         (build_location_prefix): Fix non-literal format string.
15538
15539 2000-01-27  Richard Henderson  <rth@cygnus.com>
15540
15541         * alpha.md (trunctfsf2): New.
15542
15543 2000-01-27  Andrew Hobson  <ahobson@eng.mindspring.net>
15544
15545         * configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH.
15546
15547 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
15548
15549         * cppinit.c (cpp_handle_option): Recognize C++ comments under
15550         -std=gnu89.
15551         * cpplib.c (skip_block_comment, skip_line_comment): Split code
15552         out of...
15553         (skip_comment) ... here.  Permit C++ comments in system
15554         headers always.  Warn about C++ comments in user code under
15555         -std=gnu89 -pedantic.
15556         (copy_comment): Use skip_comment.
15557         (cpp_skip_hspace, cpp_get_token): skip_comment can no longer
15558         return EOF.
15559         (consider_directive_while_skipping, do_else, do_endif): Call
15560         validate_else unconditionally.
15561         (validate_else): Check CPP_PEDANTIC here.  Accept non-comment
15562         text after the conditional in a system header.
15563         * cpplib.h (struct cpp_buffer): Add flag
15564         warned_cplusplus_comments.
15565
15566 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
15567
15568         * emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too.
15569         Use unshare_all_rtl_1.
15570         (unshare_all_rtl_again): New function.
15571         (unshare_all_rtl_1): New function split out of unshare_all_rtl.
15572
15573         * function.c (purge_addressof_1): Use unshare_all_rtl_again
15574         rather than resetting the 'used' flags ourself.
15575
15576         * toplev.c (rest_of_compilation): Add current_function_decl
15577         to the unshare_all_rtl call.
15578         * tree.h: Prototype unshare_all_rtl.
15579         * rtl.h: Prototype unshare_all_rtl_again here.
15580
15581 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
15582
15583         * genoutput.c (output_prologue): Include ggc.h in generated
15584         files.
15585         * Makefile.in (insn-output.o): Depends on ggc.h.
15586
15587 2000-01-27  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
15588             Hans-Peter Nilsson  <hp@bitrange.com>
15589
15590         * ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete.
15591         Remove redundant include of xm-ns32k.h.
15592         * ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions.
15593         Remove redundant include of xm-ns32k.h.
15594         * ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine.
15595         Remove redundant include of xm-ns32k.h.
15596         * ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions.
15597
15598         * ns32k/ns32k.h: Update comment on multiply-add instructions.
15599         (TARGET_SWITCHES): Add documentation strings.
15600         (DWARF_FRAME_REGNUM): Override default definition.
15601         (REG_CLASS_CONTENTS): Add comments.
15602         (SUBSET_P): Format to reduce line length.
15603         (SMALL_REGISTER_CLASSES): Make a run time option.
15604         (GO_IF_NONINDEXED_ADDRESS): Reformat.
15605         (GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before
15606         dereferencing it.  Braces to avoid "ambiguous else" were misplaced.
15607         (regclass_map): fix typo in comment.
15608         * ns32k/ns32k.c: Add spaces before parentheses for consistant style.
15609         Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...).
15610         (trace, reg_or_mem_operand): Delete, unused function.
15611         (calc_address_cost): Small offsets are cheaper than large ones.
15612         (expand_block_move): Generate more efficient code when bytes is a
15613         known at compile time.
15614         * ns32k/ns32k.md: Alternate constraints for multiply-add instructions.
15615         (udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand
15616         instead of reg_or_mem_operand.
15617
15618         * ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs,
15619         not general_operand.  Similarly use "=rm" or stricter, not "=g".
15620         For input operands, use stricter constraints than "g" if not
15621         general_operand.  Similarly use stricter predicate than
15622         "general_operand" when stricter constraints than "g" are present,
15623         except for matching constraints.
15624         (movstrsi): Use "memory_operand" for operands 0 and 1.
15625         (truncsiqi2, truncsihi2, trunchiqi2): Remove.
15626         (udivmoddisi4_internal): Use nonimmediate_operand for operand 0,
15627         not reg_or_mem_operand.
15628         (udivmoddisi4): Ditto.
15629         Use nonimmediate_operand for operand 1, not reg_or_mem_operand.
15630         Use nonimmediate_operand for operand 3, not register_operand.
15631         (udivmoddiqi4_internal): Use register_operand for operand 1, not
15632         reg_or_mem_operand.
15633
15634 2000-01-27  Fred Fish  <fnf@be.com>
15635
15636         * gthr-posix.h: Fix typo; compatibily -> compatibility.
15637         * gthr-single.h: Likewise.
15638         * gthr-solaris.h: Likewise.
15639         * gthr-vxworks.h: Likewise.
15640         * gthr-win32.h: Likewise.
15641         * gthr.h: Likewise.
15642
15643 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
15644
15645         * cppinit.c: Add " (cpplib)" to end of string printed by
15646         -v / --version.
15647
15648 2000-01-27  Richard Henderson  <rth@cygnus.com>
15649
15650         * alpha.c (alpha_emit_conditional_move): Use VOIDmode when
15651         testing for a signed comparison.
15652         (alpha_emit_floatuns): New.
15653         * alpha-protos.h: Declare it.
15654         * alpha.md (floatunsdisf2, floatunsdidf2): New.
15655         (extendsfdf2): Tidy.
15656
15657 2000-01-27  Jakub Jelinek  <jakub@redhat.com>
15658
15659         * config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but
15660         no -g option specifying debugging format, default to -gstabs+.
15661
15662 Wed Jan 26 22:19:14 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
15663
15664         * calls.c (special_function_p): New argument fork_or_exec.
15665         (expand_call): When profile_arc_flag is set and the function
15666         is in the fork_or_exec group, call __bb_fork_func first.
15667         * libgcc2.c, _bb module (__bb_fork_func): New function.
15668         (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock
15669         output file.
15670         * config/svr4.h (TARGET_HAS_F_SETLKW): Define.
15671         * tree.h (special_function_p): Update prototype.
15672
15673 2000-01-26  Richard Henderson  <rth@cygnus.com>
15674
15675         * alpha.c (alpha_split_tfmode_pair): New.
15676         * alpha-protos.h: Declare it.
15677         * alpha.md (abstf2, negtf2): New.
15678         (movtf insn): Add input G constraint.
15679         (movtf splitter): Use alpha_split_tfmode_pair.
15680
15681 2000-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15682
15683         * i386/cygwin.h: PROTO -> PARAMS.
15684
15685 2000-01-26  Jakub Jelinek  <jakub@redhat.com>
15686
15687         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle
15688         TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons
15689         using _Qp_cmp/_Q_cmp and testing the return value.
15690         (print_operand): Call reverse_condition_maybe_unordered if
15691         we are handling CCFPmode or CCFPEmode.
15692         Handle ORDERED, UN* and LTGT comparisons.
15693         * config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32
15694         if not TARGET_HARD_QUAD.
15695         (seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble,
15696         bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt):
15697         Call sparc_emit_float_lib_cmp even on TARGET_ARCH32.
15698         Adjust gen_b* calls so that they reflect return comparison of
15699         sparc_emit_float_lib_cmp.
15700
15701 2000-01-26  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
15702
15703         * config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume
15704         incoming operands array is large enough for one more operand.
15705         (alpha_emit_xfloating_arith): Likewise.
15706
15707 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
15708
15709         * fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a
15710         file with one line and no trailing newline.
15711         Patch by Kaveh Ghazi <ghazi@caip.rutgers.edu>.
15712         * fixinc/fixtests.c (machine_name_test): Fix fencepost error
15713         checking if the match is on the line.
15714         * fixinc/gnu-regex.c: Provide regerror not __regerror.
15715
15716 2000-01-25  Richard Henderson  <rth@cygnus.com>
15717
15718         * sparc.c (output_cbranch): Fix accidental squashing of the
15719         fp branch pre-delay nop.
15720
15721 2000-01-25  Richard Henderson  <rth@cygnus.com>
15722
15723         * tree.def (UNNE_EXPR): Remove.
15724         * c-typeck.c (build_binary_op): Don't handle it.
15725         * expr.c (expand_expr, do_jump, do_store_flag): Likewise.
15726
15727         * rtl.def (UNNE): Remove.
15728         (LTGT): Add.
15729         * jump.c (reverse_condition): Update accordingly.
15730         (swap_condition): Likewise.
15731         (comparison_dominates_p): Handle unordered comparisons.
15732         (reverse_condition_maybe_unordered): New.
15733         * rtl.h (reverse_condition_maybe_unordered): Declare.
15734
15735         * sparc.c (select_cc_mode): Update for UNNE/LTGT.
15736         (output_cbranch): Use reverse_condition_maybe_unordered and LTGT.
15737         * sparc.h (REVERSIBLE_CC_MODE): Always true.  Update docs.
15738         * sparc.md (bltgt): New.
15739
15740 2000-01-25  Nick Clifton  <nickc@redhat.com>
15741
15742         * emit-rtl.c (emit_insn): Only check machine class insns for
15743         improper emission of a RETURN.
15744
15745 2000-01-25  Richard Henderson  <rth@cygnus.com>
15746
15747         * Makefile.in (flow.o): Depend on $(EXPR_H).
15748         * flow.c (mark_regs_live_at_end): Use hard_function_value, i.e.
15749         duplicate the structure of diddle_return_value for keeping regs live.
15750
15751 2000-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15752
15753         * loop.c (current_loop_info): Delete.
15754         (consec_sets_invariant_p): Add loop argument, update callers.
15755         (get_condition_for_loop): Likewise.
15756         (count_nonfixed_reads, update_giv_derive): Likewise.
15757         (simplify_giv_expr, general_induction_var): Likewise.
15758         (consec_sets_giv, recombine_givs): Likewise.
15759         (move_movables): Delete loop_start and loop_end arguments,
15760         add loop argument, and update callers.
15761         (find_mem_givs, check_final_value): Likewise.
15762         (record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise.
15763         (loop_invariant_p): Rename from invariant_p, add loop argument, and
15764         update callers.
15765         (basic_induction_var): Add loop argument, delete loop_level argument,
15766         and update callers.
15767         * unroll.c (iteration_info): Delete loop_start and loop_end arguments,
15768         add loop argument, and update callers.
15769         (find_splittable_regs, find_splittable_givs): Likewise.
15770         (reg_dead_after_loop, loop_find_equiv_value): Likewise.
15771         (final_biv_value, final_giv_value, back_branch_in_range_p): Likewise.
15772         (biv_total_increment): Delete loop_start and loop_end arguments;
15773         update callers.
15774         (precondition_loop_p): Delete loop_start and loop_info arguments;
15775         update callers.
15776         * loop.h (get_condition_for_loop): Add loop argument.
15777         (biv_total_increment): Delete loop_start and loop_end arguments.
15778         (precondition_loop_p): Delete loop_start and loop_info arguments;
15779         add loop argument.
15780         (final_biv_value): Delete loop_start and loop_end arguments;
15781         add loop argument.
15782         (final_giv_value, back_branch_in_range_p): Likewise.
15783
15784 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
15785
15786         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16.
15787
15788 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
15789
15790         * Makefile.in (c-gperf.h) : Change the "See" pointer to
15791         point to the new "generated_files" doc.
15792
15793 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
15794
15795         * config/fp-bit.c (_unord_f2): Fix typo.
15796
15797 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
15798
15799         * c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c,
15800         c-typeck.c, objc/objc-act.c: Remove all references to obstack
15801         functions obsoleted by GC, such as push_obstacks_nochange,
15802         end_temporary_allocation, savealloc, saveable_tree_cons, etc.
15803         and code which existed only to decide whether or not to call
15804         them.  Remove now-unused NESTED argument from start_function;
15805         all callers changed.  Do not change behavior based on ggc_p.
15806         The use of the ixp_obstack in c-iterate.c and the util_obstack
15807         in objc/objc-act.c remain; these are not obsoleted by garbage
15808         collection.
15809         * c-tree.h: Update prototype for start_function.
15810
15811         * c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild.
15812
15813 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
15814
15815         * config/mips/mips.md (zero_extendsidi2_internal): Disable for
15816         mips16.
15817
15818 2000-01-25  Richard Henderson  <rth@cygnus.com>
15819
15820         * sparc-protos.h (select_cc_mode): Declare.
15821         * sparc.c (select_cc_mode): New.  Handle unordered compares.
15822         (output_cbranch): Always reverse via code change.  Handle
15823         unordered compares.  Factor tests and string updates.
15824         * sparc.h (SELECT_CC_MODE): Split out to select_cc_mode.
15825         (REVERSIBLE_CC_MODE): Also exclude CCFPmode.
15826         * sparc.md (bunordered, bordered): New.
15827         (bungt, bunlt, buneq, bunge, bunle): New.
15828
15829 2000-01-25  Richard Henderson  <rth@cygnus.com>
15830
15831         * dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root.
15832         * ggc-common.c (ggc_add_rtx_varray_root): New.
15833         (ggc_mark_rtx_varray): New.
15834         (ggc_mark_rtx_varray_ptr): New.  Shift all ggc_mark_foo_ptr
15835         functions down below ggc_mark_foo.
15836         * ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare.
15837
15838 2000-01-25  Richard Henderson  <rth@cygnus.com>
15839
15840         * alpha.c (secondary_reload_class): Don't allocate a secondary
15841         for integral mode memories into FLOAT_REGS.  Rearrange the more
15842         complicated memory expression inward.
15843
15844 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
15845
15846         * inclhack.def: Fixes to play nicer with FreeBSD, and
15847         corrections to comments.
15848         (cxx_unready): Add select expression.
15849         (irix_sockaddr): Add bypass expression.
15850         (machine_ansi_h_va_list): New fix.
15851         (stdio_va_list): No need to edit _BSD_VA_LIST_.
15852         Split out addition of "#include <stdarg.h>" to...
15853         (stdio_stdarg_h): ... here.
15854         (systypes_for_aix): Rename to systypes_stdlib_size_t.  Apply
15855         to stdlib.h also.  Do not munge _BSD_SIZE_T_.
15856         (sysz_stdlib_for_sun): Delete duplicate fix for unprotected
15857         size_t.
15858         (ultrix_ifdef): Tighten up select expression.
15859
15860         * fixincl.tpl: Exorcise 'exesel'.  Rewrite calculations of
15861         re_ct and max_mach to avoid use of shell.  Make printed names
15862         match names in inclhack.def.  Use static copyright date.
15863         Don't count c_test and test expressions as requiring regex_t
15864         slots.  Add some commentary.
15865         * inclhack.tpl: Do not include the 'This script contains N
15866         fixup scripts' line if PROGRAM is defined.  Use static
15867         copyright date.
15868
15869 2000-01-24  Jason Merrill  <jason@casey.cygnus.com>
15870
15871         * dwarf2out.c: include "varray.h", not dyn-string.h.
15872         (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose.
15873         (addr_const_to_string, addr_to_string): Lose.
15874         (ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c.
15875         (struct dw_val_struct): val_addr is now an rtx.
15876         (add_AT_addr, AT_addr, free_AT, output_aranges): Adjust.
15877         (used_rtx_varray): New varray.
15878         (dwarf2out_init): Initialize it.
15879         (save_rtx): New fn.
15880         (mem_loc_descriptor, add_const_value_attribute): Call it instead of
15881         addr_to_string.
15882         * arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h,
15883         sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST.
15884         * Makefile.in (dwarf2out.o): Update dependencies.
15885
15886 2000-01-24  Richard Henderson  <rth@cygnus.com>
15887
15888         * i386.c (i386_dwarf_output_addr_const): New.
15889         * i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New.
15890
15891         * dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR
15892         if defined.
15893         * dwarfout.c (output_mem_loc_descriptor): Likewise.
15894         * i386.c (i386_simplify_dwarf_addr): New.
15895         * i386.h (ASM_SIMPLIFY_DWARF_ADDR): New.
15896
15897 Mon Jan 24 16:56:10 2000  Jim Wilson  <wilson@cygnus.com>
15898
15899         * dwarf2out.c (gen_struct_or_union_type_die): Set complete if
15900         TYPE_STUB_DECL is NULL.
15901
15902 2000-01-24  Richard Henderson  <rth@cygnus.com>
15903
15904         * builtins.c (expand_tree_builtin): Move ...
15905         * c-common.c (expand_tree_builtin): ... here.
15906
15907 2000-01-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15908
15909         * loop.h (LOOP_INFO): New accessor macro.
15910         * basic-block.h (struct loop): Rename field `info' to `aux'.
15911         * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop).
15912         (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise.
15913         * unroll.c (loop_iterations, unroll_loop): Likewise.
15914
15915 2000-01-24  Christopher Faylor <cgf@cygnus.com>
15916
15917         * config/i386/t-cygwin: Accomodate new winsup directory layout
15918         when searching for include files.
15919
15920 2000-01-24  Richard Henderson  <rth@cygnus.com>
15921
15922         * rtl.def: Add unordered fp comparisions.
15923         * tree.def: Likewise.
15924         * tree.h: Add ISO C 9x unordered fp comparision builtins.
15925
15926         * builtins.c (expand_tree_builtin): New function.
15927         * c-typeck.c (build_function_call): Use it.
15928         (build_binary_op): Support unordered compares.
15929         * c-common.c (c_common_nodes_and_builtins): Add unordered compares.
15930
15931         * combine.c (known_cond): Handle reverse_condition returning UNKNOWN.
15932         (reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed.
15933         * cse.c (fold_rtx): Check FLOAT_MODE_P before reversing.
15934         (record_jump_equiv): Handle reverse_condition returning UNKNOWN.
15935         * jump.c (reverse_condition): Don't abort for UNLE etc, but
15936         return UNKNOWN.
15937         (swap_condition): Handle unordered compares.
15938         (thread_jumps): Check can_reverse before reversing.
15939         * loop.c (get_condition): Likewise.  Allow UNORERED/ORDERED to be
15940         reversed for FP.
15941
15942         * optabs.c (can_compare_p): New argument CODE.  Verify branch or
15943         setcc is present before acking for cmp_optab.  Update all callers.
15944         (prepare_float_lib_cmp, init_optabs): Handle UNORDERED.
15945         * expmed.c (do_cmp_and_jump): Update for can_compare_p.
15946         * expr.c (expand_expr): Likewise.  Support unordered compares.
15947         (do_jump, do_store_flag): Likewise.
15948         * expr.h (enum libfunc_index): Add unordered compares.
15949
15950         * Makefile.in (FPBIT_FUNCS): Add _unord_sf.
15951         (DPBIT_FUNCS): Add _unord_df.
15952         * config/fp-bit.c (_unord_f2): New.
15953         * fp-test.c (main): Try unordered compare builtins.
15954
15955         * alpha-protos.h (alpha_fp_comparison_operator): Declare.
15956         * alpha.c (alpha_comparison_operator): Check mode properly.
15957         (alpha_swapped_comparison_operator): Likewise.
15958         (signed_comparison_operator): Likewise.
15959         (alpha_fp_comparison_operator): New.
15960         (alpha_emit_conditional_branch): Handle unordered compares.
15961         * alpha.h (PREDICATE_CODES): Update.
15962         * alpha.md (fp compares): Use alpha_fp_comparison_operator.
15963         (bunordered, bordered): New.
15964
15965 2000-01-24  Richard Henderson  <rth@cygnus.com>
15966
15967         * alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation.
15968         * alpha.md (movtf): New expander, insn, and splitter.
15969
15970 Mon Jan 24 19:49:47 MET 2000  Jan Hubicka  <jh@suse.cz>
15971
15972         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
15973         dead registers.
15974
15975 Mon Jan 24 17:37:31 MET 2000  Jan Hubicka  <jh@suse.cz>
15976
15977         * i386.h (FIRST_PSEUDO_REGISTER): Set to 21.
15978         (FIXED_REGISTERS, CALL_USED_REGISTERS,
15979          REG_ALLOC_ORDER): Add frame pointer
15980         (FRAME_POINTER_REGNUM): Set to 20
15981         (HARD_FRAME_POINTER_REGNUM): New macro.
15982         (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER
15983         to HARD_FRAME_POINTER.
15984         (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM
15985         (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise.
15986         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
15987         (HI_REGISTER_NAMES): Add "frame".
15988         (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination.
15989         (debug_reg): Handle FRAME_POINTER_REGNUM.
15990         (reg_class): Add arg pointer and frame pointer to NON_Q_REGS,
15991         GENERAL_REGS and INDEX_REGS.
15992         * i386.c (SAVED_REGS_FIRST): new macro.
15993         (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx
15994         (ix86_decompose_address, memory_address_length): Likewise.
15995         (regclass_map): Add frame pointer.
15996         (call_insn_operand): Handle frame_pointer_rtx.
15997         (reg_no_sp_operand): Likewise.
15998         (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx.
15999         (print_operand, legitimize_pic_address): Fix formating.
16000         (ix86_compute_frame_size): Make static, update prototype, new
16001         parameters padding1, padding2, use ix86_nsaved_regs, use
16002         stack_alignment_needed.
16003         (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM
16004         to HARD_FRAME_POINTER_REGNUM conversions.
16005         (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues.
16006         (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues.
16007         (print_reg): Abort on FRAME_POINTER_REGNUM
16008
16009 Mon Jan 24 16:50:08 MET 2000  Jan Hubicka  <jh@suse.cz>
16010
16011         * i386.h (PREDICATE_CODES): Add aligned_operand.
16012         * i386.c (aligned_operand): New function.
16013         (ix86_aligned_p): Kill.
16014         * i386.md (movhi_1): Emit mov for aligned operands.
16015         (promoting peep2s): Use aligned_operand.
16016
16017 2000-01-23  Zack Weinberg  <zack@wolery.cumb.org>
16018
16019         * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular
16020         expression to allow underscores in macro names.
16021         (fix_char_macro_defines): Increment scanning pointer.
16022
16023 2000-01-23  Richard Henderson  <rth@cygnus.com>
16024
16025         * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define.
16026         * alpha/osf5.h: New file.
16027         * configure.in (alpha-*-osf5): Add it to tm_file.
16028
16029         * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target.
16030
16031         * alpha-protos.h (alpha_emit_xfloating_arith): Declare.
16032         (alpha_emit_xfloating_cvt, function_arg): Declare.
16033         * alpha.c (alpha_emit_conditional_branch): Call
16034         alpha_emit_xfloating_compare for TFmode compares.
16035         (alpha_lookup_xfloating_lib_func): New.
16036         (alpha_compute_xfloating_mode_arg): New.
16037         (alpha_emit_xfloating_libcall): New.
16038         (alpha_emit_xfloating_arith): New.
16039         (alpha_emit_xfloating_compare): New.
16040         (alpha_emit_xfloating_cvt): New.
16041         (print_operand): Add default abort case.
16042         (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE.
16043         * alpha.h (TARGET_HAS_XFLOATING_LIBS): New.
16044         (BIGGEST_ALIGNMENT): Increase to 128 bits.
16045         (RETURN_IN_MEMORY): True for TF/TCmode.
16046         (ALPHA_ARG_SIZE): TF/TCmode is passed indirect.
16047         (FUNCTION_ARG): Move to function_arg.
16048         (FUNCTION_ARG_PASS_BY_REFERENCE): New.
16049         (ASM_OUTPUT_LONG_DOUBLE): New.
16050         (ASM_OUTPUT_DOUBLE): Always output bits.
16051         * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New.
16052         (fix_trunctfdi2, floatditf2, floatunsditf2): New.
16053         (extenddftf2, trunctfdf2): New.
16054
16055 2000-01-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
16056
16057         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved...
16058         * config/sparc/sol2.h: ... here.
16059
16060 2000-01-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16061
16062         * basic-block.h (struct loops): New field `levels'.
16063         * flow.c (flow_loops_level_compute): Traverse all outer loops.
16064         (flow_loop_level_compute): Initialise level to 1.
16065         (flow_loops_find): Set loops->levels.
16066         (flow_loops_dump): Print loops->levels.
16067
16068 2000-01-23  Richard Henderson  <rth@cygnus.com>
16069
16070         * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS.
16071         (throw_helper): Iterate over DWARF_FRAME_REGISTERS.
16072
16073 2000-01-23  Richard Henderson  <rth@cygnus.com>
16074
16075         * i386.c (dbx_register_map, svr4_dbx_register_map): New.
16076         * i386.h (DBX_REGISTER_NUMBER): Use them.
16077         * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise.
16078         * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise.
16079         * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise.
16080         * i386/sequent.h: Kill incorrect comment.
16081
16082 2000-01-23  Mark Mitchell  <mark@codesourcery.com>
16083
16084         * ggc-page.c (struct page_entry): Make `context_depth' an
16085         `unsigned short'.
16086         (struct globals): Likewise.
16087
16088 2000-01-23  Clinton Popetz  <cpopetz@cygnus.com>
16089
16090         * loop.c (check_dbra_loop): When checking a loop for
16091         reversability, check the source of any stores to ensure
16092         they don't depend on an initial value.
16093
16094 2000-01-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16095
16096         * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine.
16097
16098 2000-01-22  Zack Weinberg  <zack@wolery.cumb.org>
16099
16100         * fixinc/fixincl.c: Move declarations of 'pz_fname' and
16101         'pz_scan' into scope of entire function.  Only affects
16102         compiles with -DDEBUG.
16103
16104 2000-01-22  Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>
16105
16106         * config/elfos.h (UNIQUE_SECTION): Restore uninitialised data
16107         section naming to that prior to 2000-01-07 patch.
16108         * config/mips/elf.h (UNIQUE_SECTION): Ditto.
16109         * config/mips/elf64.h (UNIQUE_SECTION): Ditto.
16110         * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto.
16111         * config/i386/interix.c (UNIQUE_SECTION): Ditto.
16112         * config/i386/winnt.c (UNIQUE_SECTION): Ditto.
16113
16114 2000-01-22  Bernd Schmidt  <bernds@cygnus.co.uk>
16115
16116         * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a
16117         constant.
16118
16119 2000-01-21  Jim Wilson  <wilson@cygnus.com>
16120
16121         * fixinc/inclhack.tpl: Test for directory before trying to cd into it.
16122         * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate.
16123
16124 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
16125
16126         * cpphash.c (change_newlines): Delete function.
16127         (struct argdata): Delete 'newlines' and 'use_count' fields.
16128         (macroexpand): Remove code referencing those fields.
16129
16130 2000-01-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16131
16132         * loop.c (loops_info): New variable.
16133         (loop_optimize): Allocate loops->array and free it on exit.
16134         Allocate memory for loops_info and assign to each loop,
16135         replacing alloca.
16136         (find_and_verify_loops): Do not allocate loops->array.
16137
16138 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
16139
16140         * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'.
16141
16142 2000-01-21  Jakub Jelinek  <jakub@redhat.com>
16143
16144         * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new
16145         pseudos if expanded after first flow.
16146         (movdi_pic_label_ref): Likewise.
16147
16148 2000-01-20  Richard Henderson  <rth@cygnus.com>
16149
16150         * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0.
16151
16152 2000-01-20  Zack Weinberg  <zack@wolery.cumb.org>
16153
16154         * Makefile.in (fixinc.sh): Depend on specs.
16155         * fixinc/Makefile.in: Add rule to create machname.h.
16156         (fixlib.o): Depend on machname.h.
16157         * fixinc/fixtests.c (machine_name): New test.
16158         * fixinc/fixfixes.c (machine_name): New fix.
16159         * fixinc/fixlib.c (mn_get_regexps): New helper function for
16160         the machine_name test and fix.
16161         * fixinc/fixlib.h: Prototype it.
16162         * fixinc/inclhack.def (machine_name): Use the C test and fix.
16163         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild.
16164
16165         * gcc.c (do_spec_1) [case P]: Take care not to create
16166         identifiers with three leading or trailing underscores.
16167
16168         * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC.
16169         (fixincl): Don't specify libraries twice on link line.
16170         (gnu-regex.o): Remove special rule.
16171         * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was
16172         defined by config.h.  Do not define _REGEX_RE_COMP.
16173         (regcomp): Allocate and initialize a fastmap.
16174         * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP.
16175
16176 2000-01-20  Brad Lucier  <lucier@math.purdue.edu>
16177
16178         * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h.
16179
16180 2000-01-19  Richard Henderson  <rth@cygnus.com>
16181
16182         * flow.c (propagate_block): Replace FIRST, LAST and BNUM
16183         arguments with BB.  Update all callers.  Tidy line wrapping.
16184
16185 2000-01-19  Clinton Popetz  <cpopetz@cygnus.com>
16186
16187         * emit-rtl.c (try_split): Return last_insn if we split the
16188         last_insn.
16189
16190 Thu Jan 20 01:01:23 MET 2000  Jan Hubicka  <jh@suse.cz>
16191
16192         * i386-protos.h (ix86_compute_frame_size): Remove prototype.
16193         (ix86_initial_elimination_offset): Declare.
16194         * i386.c (ix86_nsaved_regs): Break out from ...
16195         (ix86_can_use_return_insn_p): ... here.
16196         (ix86_emit_save_regs): Break out from ...
16197         (ix86_expand_prologue): ... here.
16198         (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break
16199         out from ...
16200         (ix86_expand_epilogue): ... here.
16201         (ix86_compute_frame_size): Make static, add prototype.
16202         (ix86_initial_elimination_offset): Break out from ...
16203         * i386.h (INITIAL_ELIMINATION_OFFSET): ... here.
16204
16205 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16206
16207         * recog.h (OUT_FCN): Delete.
16208
16209         * vax.md: Call `get_insn_template' instead of OUT_FCN.
16210
16211 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16212
16213         * cppalloc.c: PROTO -> PARAMS.
16214         * cpperror.c: Likewise.
16215         * cppfiles.c: Likewise.
16216         * cpplib.c: Likewise.
16217         * cpplib.h: Likewise.
16218
16219         * config/arm/arm-protos.h: PROTO -> PARAMS.
16220         * config/arm/arm.c: Likewise.
16221         * config/c4x/c4x.c: Likewise.
16222         * config/fr30/fr30-protos.h: Likewise.
16223         * config/nextstep.c: Likewise.
16224         * config/pa/pa.c: Likewise.
16225         * config/pj/pj.c: Likewise.
16226         * config/rs6000/rs6000.c: Likewise.
16227         * config/v850/v850-protos.h: Likewise.
16228         * config/v850/v850.c: Likewise.
16229
16230 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16231
16232         * i370-protos.h: New file.
16233
16234         * i370.c: Include tm_p.h.  Fix compile time warnings.
16235
16236         * i370.h: Move prototypes to i370-protos.h.  Fix compile time
16237         warnings.
16238
16239         * i370.md: Likewise.
16240
16241 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16242
16243         * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS.
16244         (target_isinf, target_isnan, eisnan): Mark parameter with
16245         ATTRIBUTE_UNUSED.
16246         (eiisinf): Wrap in INFINITY.
16247         (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY.
16248         (ibmtoe): Remove unused variable `rndsav'.
16249
16250 Wed Jan 19 20:23:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
16251
16252         * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis.
16253         (GO_IF_LEGITIMATE_ADDRESS): Added missing tab.
16254
16255 2000-01-19  Zack Weinberg  <zack@wolery.cumb.org>
16256
16257         * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o.
16258         * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes.
16259         (fix_char_macro_defines, fix_char_macro_uses): New functions.
16260
16261         * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp.
16262         Recognize Emacs mode markers also.
16263         * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of
16264         C++ comments in C++ headers.  Call is_cxx_header only if
16265         necessary.
16266
16267         * fixinc/inclhack.def (avoid_bool): Add select for the problem and
16268         bypass for ncurses.
16269         (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with...
16270         (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes):
16271         ... these, which use the new C fixes.
16272         (math_exception): Escape literal '+' in bypass expression.
16273
16274         * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh:
16275         Regenerate.
16276
16277 2000-01-19  Geoff Keating  <geoffk@cygnus.com>
16278
16279         * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs
16280         inside the MEM.
16281
16282 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16283
16284         * loop.c (loop_optimize): Allocate loop_info structure for each loop
16285         prior to calling scan_loop.
16286
16287 Wed Jan 19 19:54:38 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
16288
16289         * sh.c (find_barrier, gen_block_redirect): Fix indentation.
16290         (split_branches, calc_live_regs): Likewise.
16291
16292 Wed Jan 19 19:12:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
16293
16294         * sh.md (fpu_single, fp_mode): New attributes.
16295
16296 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16297
16298         * loop.c (current_loop_info): Renamed from loop_info_data
16299         and changed to a pointer.
16300         (loop_optimize): Allocate loop_info structure for each loop
16301         and initialise to zero.
16302         (scan_loop): Set current_loop_info.
16303
16304         * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set
16305         on iteration_var.
16306
16307 2000-01-19  Richard Henderson  <rth@cygnus.com>
16308
16309         * stupid.c: Die die die.
16310         * Makefile.in (OBJS): Remove stupid.o.
16311         (stupid.o): Likewise.
16312
16313         * except.c (emit_eh_context): Don't emit USEs for stupid.
16314         * explow.c (probe_stack_range): Likewise.
16315         * flags.h (obey_regdecls): Remove.
16316         * flow.c (find_basic_blocks): Don't run try_merge_blocks
16317         when not optimizing.
16318         (life_analysis): Limit data collection when not optimizing.
16319         (mark_regs_live_at_end): Always mark the return value registers.
16320         (mark_used_regs): Remove dummy RETURN case.
16321         (print_rtl_with_bb): Don't consult obey_regdecls.
16322         * function.c (use_variable, use_variable_after): Remove.
16323         (assign_parms): Consult optimize not obey_regdecls.
16324         (expand_function_start): Don't emit USEs for stupid.
16325         (expand_function_end): Likewise.
16326         * global.c (build_insn_chain): Export.
16327         * integrate.c (expand_inline_function): Kill return-value USE
16328         handling code.
16329         * jump.c (jump_optimize_1): Do simple jump optimizations and
16330         dead code elimination.
16331         (calculate_can_reach_end): Remove check_deleted argument.
16332         (delete_insn): Patch out insns even when not optimizing.
16333         * local-alloc.c (block_alloc): Don't do tying when not optimizing.
16334         * rtl.h (use_variable, use_variable_after): Remove declarations.
16335         (build_insn_chain): Declare.
16336         * stmt.c (expand_value_return): Don't emit USEs for stupid.
16337         (expand_end_bindings): Likewise.
16338         (expand_decl): Likewise.  Consult optimize not obey_regdecls.
16339         * toplev.c (obey_regdecls): Remove.
16340         (rest_of_compilation): Don't set it.  Kill stupid in favour of
16341         flow1, local-alloc, and reload.
16342         (main): Don't set obey_regdecls.
16343
16344         * config/nextstep.c (handle_pragma): Likewise.
16345
16346         * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid.
16347
16348         * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid.
16349
16350 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16351
16352         * alpha-protos.h: PROTO -> PARAMS.
16353         * alpha.c: Likewise.
16354         * elf.h: Likewise.
16355         * h8300.c: Likewise.
16356         * i386-protos.h: Likewise.
16357         * i386.c: Likewise.
16358         * m32r-protos.h: Likewise.
16359         * m32r.c: Likewise.
16360         * mips.c: Likewise.
16361         * mips.md: Likewise.
16362         * gmon-sol2.c: Likewise.
16363         * sparc.c: Likewise.
16364
16365 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16366
16367         * ns32k-protos.h: New file.
16368
16369         * ns32k.c: Fix compile time warnings.
16370
16371         * ns32k.h: Move prototypes to ns32k-protos.h.  Fix compile time
16372         warnings.
16373
16374         * ns32k.md: Likewise.
16375
16376 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16377
16378         * vax-protos.h: New file.
16379
16380         * vax.c: Fix compile time warnings.
16381
16382         * vax.h: Move prototypes to vax-protos.h.  Fix compile time
16383         warnings.
16384
16385         * vax.md: Likewise.
16386
16387         * vaxv.md: Likewise.
16388
16389 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16390
16391         * romp-protos.h: New file.
16392
16393         * romp.c: Fix compile time warnings.
16394
16395         * romp.h: Move prototypes to romp-protos.h.  Fix compile time
16396         warnings.
16397
16398         * romp.md: Likewise.
16399
16400 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16401
16402         * we32k-protos.h: New file.
16403
16404         * we32k.c: Fix compile time warnings.
16405
16406         * we32k.h: Move prototypes to we32k-protos.h.  Fix compile time
16407         warnings.
16408
16409 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16410
16411         * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
16412
16413         * except.c (eh_regs): Likewise.
16414
16415         * final.c (output_operand): Likewise.
16416
16417         * fold-const.c (target_isinf, target_isnan): Likewise.
16418
16419 Tue Jan 18 16:19:55 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
16420
16421         * i386.h (BIGGEST_ALIGNMENT): Set to 128.
16422         (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32)
16423
16424         * i386.md (memstr): Do not use rep stosb for counts divisible by 4
16425         when optimize_size.
16426         (clrstrsi): Rewrite.
16427         (strsethi, strsetqi): New expanders.
16428         (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns.
16429         (cmpstrsi): Emit compare insn before cmpstrsi_1
16430         (cmpstrsi_nz): use flags, set type to str, prefix_length to 1.
16431         (strlensi_1): Likewise.
16432         (cmpstrsi_1): Likewise; do not output compare.
16433         (strlen expander): Do not unroll when optimizing for size.
16434         (*subsi3_carry): Rename to subsi3_carry
16435         (addqi3_cc): New pattern.
16436         * i386.h (processor_costs): Add move_ratio field.
16437         (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE
16438         * i386.c (*_cost): Set move_ratio.
16439         (x86_unroll_strlen): Enable for Athlon, PPro and K6 too.
16440         (x86_expand_strlensi_1): Rewrite the main loop.
16441
16442 2000-01-17  Richard Henderson  <rth@cygnus.com>
16443
16444         * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode.
16445         * cse.c (find_comparison_args, fold_rtx): Likewise.
16446         * integrate.c (subst_constants): Likewise.
16447         * loop.c (get_condition): Likewise.
16448
16449         * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs.
16450
16451         * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF.
16452
16453 2000-01-18  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
16454
16455         * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST.
16456         (RESTORE_WARN_FLAGS): Unpack it.
16457         Change semantic type of extension to ttype.
16458         * c-common.c (split_specs_attrs): Expect an INTEGER_CST.
16459         * c-parse.y, c-parse.c, objc/objc-parse.y,
16460         objc/objc-parse.c: Regenerate.
16461
16462 2000-01-17  Zack Weinberg  <zack@wolery.cumb.org>
16463
16464         * fixinc/fixlib.c: Add copyright notice.
16465         (compile_re): New function.
16466         * fixinc/fixlib.h: Prototype compile_re.
16467
16468         * fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c:
16469         Use compile_re to compile regular expressions.
16470
16471         * fixinc/fixincl.c (egrep_test): Don't bother asking regexec
16472         where the pattern matched.
16473
16474         * fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy,
16475         use 'replace'.
16476         (ultrix_ansi_compat): Likewise.
16477         (interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test,
16478         add egrep test.
16479         (interactv_add2, interactv_add3): Delete.
16480         (x11_sprintf): Don't use filename glob.
16481         * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh:
16482         Regenerate.
16483
16484 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16485
16486         * print-rtl.c: PROTO -> PARAMS.
16487         * real.c: Likewise.
16488         * reg-stack.c: Likewise.
16489         * resource.c: Likewise.
16490         * sdbout.h: Likewise.
16491         * simplify-rtx.c: Likewise.
16492         * stor-layout.c: Likewise.
16493         * stupid.c: Likewise.
16494         * xcoffout.c: Likewise.
16495         * xcoffout.h: Likewise.
16496
16497 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16498
16499         * toplev.c: PROTO -> PARAMS.
16500         * toplev.h: Likewise.
16501         * tree.c: Likewise.
16502         * tree.h: Likewise.
16503         * unroll.c: Likewise.
16504         * varasm.c: Likewise.
16505         * varray.c: Likewise.
16506         * varray.h: Likewise.
16507
16508 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16509
16510         * reload.c: PROTO -> PARAMS.
16511         * reload.h: Likewise.
16512         * reload1.c: Likewise.
16513         * reorg.c: Likewise.
16514         * resource.h: Likewise.
16515         * rtl.c: Likewise.
16516         * rtl.h: Likewise.
16517         * rtlanal.c: Likewise.
16518         * sbitmap.h: Likewise.
16519         * sdbout.c: Likewise.
16520         * stack.h: Likewise.
16521         * stmt.c: Likewise.
16522         * system.h: Likewise.
16523
16524 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16525
16526         * machmode.h: PROTO -> PARAMS.
16527         * mbchar.h: Likewise.
16528         * mips-tdump.c: Likewise.
16529         * mips-tfile.c: Likewise.
16530         * optabs.c: Likewise.
16531         * output.h: Likewise.
16532         * prefix.c: Likewise.
16533         * profile.c: Likewise.
16534         * protoize.c: Likewise.
16535         * real.h: Likewise.
16536         * recog.c: Likewise.
16537         * recog.h: Likewise.
16538         * regclass.c: Likewise.
16539         * regmove.c: Likewise.
16540         * regs.h: Likewise.
16541
16542 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16543
16544         * ggc-common.c: PROTO -> PARAMS.
16545         * ggc-page.c: Likewise.
16546         * ggc-simple.c: Likewise.
16547         * ggc.h: Likewise.
16548         * global.c: Likewise.
16549         * graph.c: Likewise.
16550         * gthr-win32.h: Likewise.
16551         * haifa-sched.c: Likewise.
16552         * halfpic.h: Likewise.
16553         * integrate.c: Likewise.
16554         * integrate.h: Likewise.
16555         * jump.c: Likewise.
16556         * lcm.c: Likewise.
16557         * local-alloc.c: Likewise.
16558         * loop.c: Likewise.
16559         * loop.h: Likewise.
16560
16561 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16562
16563         * genattr.c: PROTO -> PARAMS.
16564         * genattrtab.c: Likewise.
16565         * gencheck.c: Likewise.
16566         * gencodes.c: Likewise.
16567         * genconfig.c: Likewise.
16568         * genemit.c: Likewise.
16569         * genextract.c: Likewise.
16570         * genflags.c: Likewise.
16571         * gengenrtl.c: Likewise.
16572         * genopinit.c: Likewise.
16573         * genoutput.c: Likewise.
16574         * genpeep.c: Likewise.
16575         * genrecog.c: Likewise.
16576
16577 2000-01-16  Mark Mitchell  <mark@codesourcery.com>
16578
16579         * tree.h (BINFO_VPTR_FIELD): Augment documentation.
16580
16581 2000-01-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
16582
16583         * aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro.
16584         * configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP.
16585         * ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO.
16586         * configure, config.in: Rebuilt.
16587
16588 2000-01-16  Zack Weinberg  <zack@wolery.cumb.org>
16589
16590         * config/i386/i386.md: Add peephole to merge successive stack
16591         adjusts.
16592
16593 Sat Jan 15 15:41:14 EST 2000  John Wehle  (john@feith.com)
16594
16595         * gcse.c (insert_insn_end_bb): Use emit_block_insn_before
16596         instead of emit_insn_before.  Also handle NOTE_INSN_BASIC_BLOCK
16597         when walking backwards to find all the parameter loads when
16598         the basic block ends in a call.
16599
16600 2000-01-15  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16601
16602         * loop.c (this_loop_info): Delete.
16603         (uid_loop): Add in place of uid_loop_num.  All uses updated.
16604         (loop_number_exit_count): Delete and replace with entry in loop
16605         structure.  All uses updated.
16606         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
16607         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
16608         (loop_outer_loop): Likewise.
16609         (loop_invalid, loop_number_exit_labels): Likewise.
16610         (loop_used_count_register): Delete and replace with entry in
16611         loop_info structure.
16612         (find_and_verify_loops): Add loops argument.
16613         (verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start,
16614         loop_end, etc. arguments with loop structure pointer.  All callers
16615         changed.
16616         (loop_reg_used_before_p, scan_loop, strength_reduce): Likewise.
16617         (check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise.
16618         (load_mems_and_recount_loop_regs_set, load_mems): Likewise.
16619         (insert_bct): Likewise.
16620         (basic_induction_var): New argument level.
16621         * loop.h (struct loop_info): Delete fields num, loops_enclosed,
16622         vtop, and cont.  Add used_count_register.
16623         (uid_loop): Delete declaration.
16624         (loop_number_exit_count): Likewise.
16625         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
16626         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
16627         (loop_outer_loop, loop_used_count_register): Likewise.
16628         (loop_invalid, loop_number_exit_labels): Likewise.
16629         (unroll_loop): Replace loop_start and loop_end arguments
16630         with loop structure pointer.
16631         (loop_precondition_p, loop_iterations): Likewise.
16632         Include basic-block.h.
16633         * unroll.c: (unroll_loop): Replace loop_start and loop_end arguments
16634         with loop structure pointer.
16635         (loop_precondition_p, loop_iterations): Likewise.
16636         * basic-block.h (struct loop): New entries vtop, cont,
16637         cont_dominator, start, end, top, scan_start, exit_labels,
16638         exit_count.
16639         * Makefile.in (LOOP_H): Add basic-block.h to dependencies.
16640
16641 2000-01-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
16642
16643         * defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT.
16644
16645 2000-01-14  Nathan Sidwell  <sidwell@codesourcery.com>
16646
16647         * config.in: Rebuilt for 2000-01-13 change to acconfig.h.
16648
16649 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16650
16651         * pdp11-protos.h: New file.
16652
16653         * pdp11.c: Include tm_p.h.  Add static prototypes.  Fix compile
16654         time warnings.
16655
16656         * pdp11.h: Move prototypes to pdp11-protos.h.  Fix compile time
16657         warnings.
16658
16659         * pdp11.md: Likewise.
16660
16661         * 2bsd.h: Likewise.
16662
16663 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16664
16665         * mn10300-protos.h: New file.
16666
16667         * mn10300.c: Include tm_p.h.  Add static prototypes.  Fix compile
16668         time warnings.
16669
16670         * mn10300.h: Move prototypes to mn10300-protos.h.  Fix compile time
16671         warnings.
16672
16673         * mn10300.md: Likewise.
16674
16675 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16676
16677         * mn10200-protos.h: New file.
16678
16679         * mn10200.c: Include tm_p.h.  Add static prototypes.  Fix compile
16680         time warnings.
16681
16682         * mn10200.h: Move prototypes to mn10200-protos.h.  Fix compile time
16683         warnings.
16684
16685         * mn10200.md: Likewise.
16686
16687 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16688
16689         * h8300-protos.h: New file.
16690
16691         * h8300.c: Include tm_p.h.  Add static prototypes.  Fix compile
16692         time warnings.
16693
16694         * h8300.h: Move prototypes to h8300-protos.h.  Fix compile time
16695         warnings.
16696
16697         * h8300.md: Likewise.
16698
16699 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16700
16701         * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED.
16702         (asm_emit_uninitialised): Likewise.
16703
16704 2000-01-13  Gavin Romig-Koch  <gavin@cygnus.com>
16705
16706         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New.
16707         * config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE.
16708
16709 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
16710
16711         * config/mips/mips.c (override_options): Don't turn on extra
16712         alignment for mips16.
16713
16714 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
16715
16716         * config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit
16717         eabi, and make sure queued POSTINCREMENT rtl is emitted at
16718         the right point.
16719
16720 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
16721
16722         * builtins.c (PAD_VARARGS_DOWN): Define.
16723         (std_expand_builtin_va_arg): Use the above macro.
16724         * config/mips/mips.h (PAD_VARARGS_DOWN): Define.
16725         * tm.texi (Register Arguments): Document the above macro.
16726
16727 2000-01-14  Nick Clifton  <nickc@cygnus.com>
16728
16729         * emit-rtl.c (emit_insn): If checking is enabled, make sure
16730         that this function has not been used to emit a jump
16731         instruction.
16732
16733         * jump.c (return_jump_1): Cope with being passed a null rtx.
16734
16735 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16736
16737         * eh-common.h: PROTO -> PARAMS.
16738         * emit-rtl.c: Likewise.
16739         * errors.c: Likewise.
16740         * errors.h: Likewise.
16741         * except.c: Likewise.
16742         * except.h: Likewise.
16743         * explow.c: Likewise.
16744         * expmed.c: Likewise.
16745         * expr.c: Likewise.
16746         * expr.h: Likewise.
16747         * final.c: Likewise.
16748         * fix-header.c: Likewise.
16749         * flow.c: Likewise.
16750         * fold-const.c: Likewise.
16751         * function.c: Likewise.
16752         * function.h: Likewise.
16753         * gcc.c: Likewise.
16754         * gcov-io.h: Likewise.
16755         * gcov.c: Likewise.
16756         * gcse.c: Likewise.
16757
16758 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16759
16760         * sh-protos.h: New file.
16761
16762         * sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h.
16763         Add static prototypes.  Fix compile time warnings.
16764
16765         * sh.h: Move prototypes to sh-protos.h.  Fix compile time warnings.
16766         * sh.md: Likewise.
16767         * elf.h: Likewise.
16768
16769 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16770
16771         * arc-protos.h: New file.
16772
16773         * arc.c: Include tm_p.h.  Add static prototypes.  Fix compile
16774         time warnings.
16775
16776         * arc.h: Move prototypes to arc-protos.h.  Fix compile time
16777         warnings.
16778
16779         * arc.md: Likewise.
16780
16781 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16782
16783         * dsp16xx-protos.h: New file.
16784
16785         * dsp16xx.c: Include tm_p.h.  Add static prototypes.  Fix compile
16786         time warnings.
16787
16788         * dsp16xx.h: Move prototypes to dsp16xx-protos.h.  Fix compile time
16789         warnings.
16790
16791         * dsp16xx.md: Likewise.
16792
16793 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16794
16795         * convex-protos.h: New file.
16796
16797         * convex.c: Include tm_p.h.  Add static prototypes.  Fix compile
16798         time warnings.
16799
16800         * convex.h: Move prototypes to convex-protos.h.  Fix compile time
16801         warnings.
16802
16803 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16804
16805         * elxsi-protos.h: New file.
16806
16807         * elxsi.c: Include tm_p.h.  Add static prototypes.  Fix compile
16808         time warnings.
16809
16810         * elxsi.h: Move prototypes to elxsi-protos.h.  Fix compile time
16811         warnings.
16812
16813         * elxsi.md: Likewise.
16814
16815 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
16816
16817         * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant
16818         case for moving from HI/LO/HI_LO_REG.  This makes the behavior
16819         match the comment for MIPS16.
16820
16821 Fri Jan 14 00:28:06 2000  Jeffrey A Law  (law@cygnus.com)
16822
16823         * flow.c (split_edge): Do not call set_block_for_insn if we
16824         do not have a basic_block_for_insn structure.
16825
16826         * fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain
16827         and destination functions are 32bit aligned within the trampoline.
16828         (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes.
16829         (TRAMPOLINE_ALIGNMENT): Define.
16830
16831         * cse.c (cse_insn): When changing (set (pc) (reg)) to
16832         (set (pc) (label_ref)), verify the change creates a valid insn.
16833
16834         * fr30.c (call_operand): Tighten and rework to match rules for
16835         call RTL expressions.
16836         * fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs.
16837         * fr30.md (call patterns): Improve constraints.
16838
16839 Thu Jan 13 23:44:03 2000  Richard Henderson  <rth@cygnus.com>
16840
16841         * fr30.c (fr30_expand_epilogue): Revert last change.
16842         Use emit_jump_insn for the return insn.
16843
16844 Thu Jan 13 14:46:03 2000  Jason Eckhardt  <jle@cygnus.com>
16845                           Stan Cox  <scox@cygnus.com>
16846
16847         * predict.c: New file. Preliminary infrastructure work for static
16848         branch prediction and basic block reordering.
16849         * basic-block.h: Add prototype for estimate_probability.
16850         * Makefile.in: Add rules for predict.o.
16851
16852 2000-01-13  Jason Merrill  <jason@yorick.cygnus.com>
16853
16854         * fixincludes (va_list): Use __not_va_list__ for the dummy.
16855         * fixinc/*: Likewise.
16856
16857 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16858
16859         * cccp.c: PROTO -> PARAMS.
16860         * cexp.y: Likewise.
16861         * collect2.c: Likewise.
16862         * combine.c: Likewise.
16863         * convert.h: Likewise.
16864         * cse.c: Likewise.
16865         * dbxout.c: Likewise.
16866         * dbxout.h: Likewise.
16867         * diagnostic.c: Likewise.
16868         * doprint.c: Likewise.
16869         * dwarf2out.c: Likewise.
16870         * dwarf2out.h: Likewise.
16871         * dwarfout.c: Likewise.
16872         * dwarfout.h: Likewise.
16873         * dyn-string.h: Likewise.
16874
16875 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16876
16877         * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in
16878         macro conditionals guarding use.
16879
16880         * dwarf2out.c: Include "tm_p.h".
16881
16882         * function.c (locate_and_pad_parm): Mark parameter with
16883         ATTRIBUTE_UNUSED.
16884         (expand_function_end): Likewise for variable `context'.
16885
16886         * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return.
16887
16888 2000-01-13  Nick Clifton  <nickc@cygnus.com>
16889
16890         * config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed
16891         register to prevent compile time warnings.
16892
16893 2000-01-13  Zack Weinberg  <zack@wolery.cumb.org>
16894
16895         * longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv'
16896         to avoid -Wtraditional warning.
16897
16898 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16899
16900         * 1750a-protos.h: New file.
16901
16902         * 1750a.c: Include tm_p.h.  Add static prototypes.  Fix compile
16903         time warnings.
16904
16905         * 1750a.h: Move prototypes to 1750a-protos.h.  Fix compile time
16906         warnings.
16907
16908         * 1750a.md: Likewise.
16909
16910 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16911
16912         * a29k-protos.h: New file.
16913
16914         * a29k.c: Include tm_p.h.  Add static prototypes.  Fix compile
16915         time warnings.
16916
16917         * a29k.h: Move prototypes to a29k-protos.h.  Fix compile time
16918         warnings.
16919
16920 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16921
16922         * clipper-protos.h: New file.
16923
16924         * clipper.c: Include tm_p.h.  Add static prototypes.  Fix compile
16925         time warnings.
16926
16927         * clipper.h: Move prototypes to clipper-protos.h.  Fix compile time
16928         warnings.
16929
16930 Thu Jan 13 16:03:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
16931
16932         * reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS.
16933
16934 2000-01-13  Nathan Sidwell  <sidwell@codesourcery.com>
16935
16936         * configure.in (--enable-new-gxx-abi): New option.
16937         * acconfig.h (ENABLE_NEW_GXX_ABI): New define.
16938         * Makefile.in (GXX_ABI_FLAG): New variable.
16939         * configure: Regenerate.
16940
16941 2000-01-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16942
16943         * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK.
16944         * tm.texi (FORCE_STRUCT_BLK): Document.
16945         * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro.
16946
16947 Wed Jan 12 23:12:47 2000  Hans-Peter Nilsson  <hp@axis.com>
16948
16949         * config/ns32k/ns32k.md: Revert Jan 9 change.
16950
16951         * genrecog.c (maybe_both_true_2): Do not compare a predicate-test
16952         to a mode-test, if the predicate is address_operand.
16953
16954 Wed Jan 12 22:34:00 2000  Jeffrey A Law  (law@cygnus.com)
16955
16956         * combine.c (if_then_else_cond): Be careful about what kinds
16957         of RTL expressions are passed to operand_subword.
16958
16959         * flow.c (split_edge): If we have to insert a new jump, make
16960         sure to associate it with a basic block.
16961
16962         * flow.c (commit_one_edge_insertion): A block with one successor
16963         can end in a JUMP_INSN that is not a simplejump.
16964
16965 2000-01-12  Robert Lipe  <robertl@sco.com>
16966
16967         * i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor".
16968         (BUILD_VA_LIST_TYPE): Define.
16969         (EH_FRAME_SECTION_ASM_OP): Explictly define to better interact
16970         with crtstuff.c.
16971
16972 2000-01-12  Jason Merrill  <jason@casey.cygnus.com>
16973
16974         * cccp.c (do_pragma): Add cast to (char *).
16975
16976 2000-01-12  Richard Henderson  <rth@cygnus.com>
16977             Fred Fish  <fnf@be.com>
16978             Jason Merrill  <jason@cygnus.com>
16979
16980         * configure.in (i?86-*-beos{pe,elf,}*): Recognize.
16981         * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files.
16982         * i386/beos-elf.h, i386/beos-pe.h: New files.
16983
16984         * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New.
16985         * cross-make (SYSTEM_HEADER_DIR): Define using
16986         CROSS_SYSTEM_HEADER_DIR.
16987
16988         * gcc.c (LIBRARY_PATH_ENV): Provide default.
16989         (process_command): Use it.
16990         (main): Likewise.  Kill trailing = from env vars.
16991         (build_search_list): Put it back.
16992         * collect2.c (main): Use LIBRARY_PATH_ENV.
16993
16994         * configure.in (GCC_NEED_DECLARATIONS): Add environ.
16995         * toplev.c: Use NEED_DECLARATION_ENVIRON.
16996
16997         * tm.texi (Frame Layout): Document SMALL_STACK.
16998         * c-common.c (c_common_nodes_and_builtins): Check it.
16999
17000         * system.h: Undef alloca after including glibc's <stdlib.h>,
17001         if USE_C_ALLOCA is defined.
17002
17003         * gcc.c (set_input): New fn.
17004         (main): After all input files are compiled, reset the input file
17005         info to the first.
17006
17007         * aclocal.m4 (rindex, index): If already defined, don't attempt
17008         to redefine.
17009
17010         * ginclude/varargs.h: (__va_list__): Define ifndef.
17011         * ginclude/stdarg.h: Likewise.
17012
17013         * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int
17014         instead of unsigned char.
17015
17016         * hash.h (true, false, boolean): Undef before enum.
17017
17018         * expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be
17019         proper type of "HOST_WIDE_INT *", rather than their natural type of
17020         "unsigned HOST_WIDE_INT *".
17021
17022 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17023
17024         * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets.
17025
17026         * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED.
17027
17028         * regclass.c (choose_hard_reg_mode): Likewise.
17029
17030         * reload.c (find_valid_class, strict_memory_address_p): Likewise.
17031
17032         * reorg.c (optimize_skip): Wrap prototype in macro conditionals.
17033
17034 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17035
17036         * c-common.c: PROTO -> PARAMS.
17037         * c-common.h: Likewise.
17038         * c-decl.c: Likewise.
17039         * c-iterate.c: Likewise.
17040         * c-lang.c: Likewise.
17041         * c-lex.c: Likewise.
17042         * c-lex.h: Likewise.
17043         * c-parse.in: Likewise.
17044         * c-pragma.c: Likewise.
17045         * c-pragma.h: Likewise.
17046         * c-tree.h: Likewise.
17047         * c-typeck.c: Likewise.
17048         * objc/objc-act.c: Likewise.
17049         * objc/objc-act.h: Likewise.
17050
17051 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17052
17053         * m88k-protos.h: New file.
17054
17055         * m88k.c: Include tm_p.h.  Add static prototypes.  Fix compile
17056         time warnings.
17057
17058         * m88k.h: Move prototypes to m88k-protos.h.  Fix compile time warnings.
17059
17060         * m88k.md: Likewise.
17061
17062         * tekXD88.h: Likewise.
17063
17064 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17065
17066         * m68k-protos.h: New file.
17067
17068         * m68k.c: Include tm_p.h.  Add static prototypes.  Fix compile
17069         time warnings.
17070
17071         * m68k.h: Move prototypes to m68k-protos.h.  Fix compile time warnings.
17072
17073         * mot3300.h: Likewise.
17074
17075 2000-01-12  Richard Earnshaw <rearnsha@arm.com>
17076
17077         * haifa-sched.c (split_edges): Pass edgeset_size as second arg to
17078         extract_bitlst.
17079         (extract_bitlist): Declare bitlen.
17080
17081 2000-01-12  Zack Weinberg  <zack@wolery.cumb.org
17082
17083         * cccp.c: Accept and ignore -lang-fortran.
17084
17085         * c-typeck.c (build_c_cast): Issue -Wcast-qual warnings if the
17086         qualifiers don't match at any level of pointerness.
17087
17088 2000-01-12  Robert Lipe  <robertl@sco.com>
17089
17090         * i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT.
17091
17092 2000-01-12  Bernd Schmidt  <bernds@cygnus.co.uk>
17093
17094         * reload1.c (reload_reg_unavailable): New static variable.
17095         (reload_reg_free_p): Test it.
17096         (reload_reg_free_for_value_p): Test it instead of
17097         reload_reg_used.
17098         (choose_reload_regs_init): Compute it.
17099
17100 Wed Jan 12 03:24:41 2000  Toshiyasu Morita (toshi.morita@sega.com)
17101
17102         * reorg.c (fill_slots_from_thread): Check modified_in_p
17103         before replacing.
17104
17105 Wed Jan 12 03:20:31 2000  John Marshall <john_w_marshall@palm.com>
17106
17107         * gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format
17108         these nodes even if INTERNALS is not set.
17109
17110 Wed Jan 12 09:39:22 2000  Nick Burrett  <nick.burrett@btinternet.com>
17111
17112         * gcse.c (delete_null_pointer_checks_1): Cope when
17113         get_condition cannot determine the condition.
17114
17115 2000-01-12  Gabriel Dos Reis  <gdr@codesourcery.com>
17116
17117         * toplev.h (set_message_length): Declare.
17118
17119         * diagnostic.c (obstack_chunk_alloc): Define macro.
17120         (obstack_chunk_free): Likewise.
17121         (struct output_buffer): New data structure.
17122         (vmessage): Remove.
17123         (output_maximum_width): New variable.
17124         (doing_line_wrapping, set_message_length, init_output_buffer,
17125         get_output_prefix, output_space_left, emit_output_prefix,
17126         output_newline, output_append, output_puts, dump_output,
17127         vbuild_message_string, build_message_string, build_location_prefix,
17128         voutput_notice, output_printf, line_wrapper_printf,
17129         vline_wrapper_message_with_location):  New functions. Implement
17130         automatic line wrapping.
17131         (v_message_with_decl): Make it handle automatic line wrapping.
17132         (v_error_with_file_and_line): Likewise.
17133         (v_warning_with_file_and_line): Likewise.
17134         (announce_function): Likewise.
17135         (default_print_error_function): Likewise.
17136
17137 2000-01-11 16:24 -0800  Zack Weinberg  <zack@wolery.cumb.org>
17138
17139         * cpplib.h (struct cpp_options): Change lang_asm to char.
17140         Add lang_fortran.
17141         * cppinit.c (builtin_array): Take out __STDC_VERSION__, it's
17142         done in cpp_handle_option now.
17143         (initialize_builtins): Take out special case code used only by
17144         __STDC_VERSION__.
17145         (cpp_handle_option): Turn off trigraphs and trigraph warnings
17146         if -traditional.  Recognize -lang-fortran and set
17147         lang_fortran, also turn off cplusplus_comments.
17148         (print_help): Document -lang-fortran.
17149         * cpplib.c (handle_directive): Ignore `# 123 "file"' if
17150         lang_asm. Ignore all directives other than `# 123 "file"' if
17151         CPP_PREPROCESSED.
17152         (cpp_get_token): If -traditional, don't recognize directives
17153         unless the # is in column 1.
17154         (parse_string): If lang_fortran or lang_asm, silently
17155         terminate strings ('' or "") at end of line.
17156         Remove unnecessary braces.
17157
17158 2000-01-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17159             Richard Henderson  <rth@cygnus.com>
17160
17161         * resource.c (mark_referenced_resources): Mark a set strict_low_part
17162         as used.
17163         * config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set
17164         strict_low_part when possible.
17165
17166 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17167
17168         * alias.c: PROTO -> PARAMS.
17169         * basic-block.h: Likewise.
17170         * bitmap.c: Likewise.
17171         * bitmap.h: Likewise.
17172         * builtins.c: Likewise.
17173         * c-aux-info.c: Likewise.
17174         * caller-save.c: Likewise.
17175         * calls.c: Likewise.
17176
17177 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17178
17179         * Makefile.in (toplev.o): Depend on regs.h.
17180
17181         * output.h (tdesc_section): Prototype.
17182
17183         * regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED.
17184
17185         * sdbout.c: Include "tm_p.h".
17186
17187         * toplev.c: Include "regs.h".
17188
17189 Tue Jan 11 11:37:58 2000  Mike Stump  <mrs@wrs.com>
17190
17191         * unroll.c (unroll_loop): Add EH support.
17192
17193 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17194
17195         * pa-protos.h: New file.
17196
17197         * pa.c: Include recog.h and tm_p.h.
17198         (compute_zdepwi_operands, compute_movstrsi_length,
17199         remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d,
17200         find_addr_reg, import_milli): Add static prototypes.
17201         (pa_cpu_string, pa_arch_string): Constify a char*.
17202         (legitimize_pic_address): Pass argument `mode' to pic_label_operand.
17203         (read_only_operand): Add argument `mode'.
17204         (singlemove_string, output_move_double, output_fp_move_double,
17205         output_block_move, output_and, output_ior, output_ascii,
17206         remove_useless_addtr_insns, milli_names, output_mul_insn,
17207         output_div_insn, output_mod_insn, output_arg_descriptor,
17208         output_cbranch, output_bb, output_bvb, output_dbra, ,
17209         output_millicode_call, output_call, hppa_encode_label,
17210         output_parallel_movb, output_parallel_addb): Constify a char*.
17211         (hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED.
17212         (output_parallel_addb): Remove extra arg to `constrain_operands'
17213
17214         * pa.h:  Move all prototypes to pa-protos.h.
17215         (pa_cpu_string, pa_arch_string): Constify a char*.
17216         (LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument.
17217
17218         * pa.md: Call `function_label_operand' with mode argument.
17219         Likewise for `read_only_operand'.
17220         Fix nesting of parens in call to `symbolic_operand'.
17221
17222 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17223
17224         * i860-protos.h: New file.
17225
17226         * i860.c: Include tm_p.h.  Add static prototypes.  Fix compile
17227         time warnings.
17228
17229         * i860.h: Move prototypes to i860-protos.h.  Fix compile time warnings.
17230
17231         * i860.md: Likewise.
17232
17233 Tue Jan 11 18:59:35 MET 2000  Jan Hubicka <jh@suse.cz>
17234
17235         * i386.md (movstrsi expander): Rewrite.
17236         (movstrsi_1 insn): Deleted.
17237         (strmovhi, strmovqi expander): New expanders.
17238         (movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns.
17239         * i386.c (x86_single_stringop): New global variable.
17240         * i386.h (x86_single_stringop): Declare.
17241         (TARGET_SINGLE_STRINGOP): New macro.
17242
17243 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
17244
17245         * config/mips/mips.c (mips_va_arg): For EABI, emit the queued
17246         integer vararg POSTINCREMENT before the destination of the jump
17247         for the hard fp case.
17248         (function_arg_pass_by_reference): Pass a copy of CUM to
17249         FUNCTION_ARG.
17250
17251         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check
17252         for CONSTANT_ADDRESS_P above while loop for subreg.
17253
17254 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
17255
17256         * flow.c (propagate_block): When a prologue/epilogue insn
17257         is marked dead, unconditionally clear libcall_is_dead and
17258         insn_is_dead, and only dump rtl if warnings aren't being
17259         suppressed.
17260
17261 Tue Jan 11 16:26:47 MET 2000  Jan Hubicka <jh@suse.cz>
17262
17263         * i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD.
17264         * i386.md (FIRST_PSEUDO_REGISTER): Set to 20.
17265         (FIXED_REGISTERS): Set dirflag as fixed.
17266         (CALL_USED_REGISTERS): Set dirflag as used.
17267         (REG_ALLOC_ORDER): Set dirflag as last one.
17268         (DIRFLAG_REG): New macro.
17269         (MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility.
17270         (HI_REGISTER_NAMES): Add dirflag.
17271         (DEBUF_PRINT_REG): Handle dirflag.
17272         * i386.md (type attribute): New cld and str types.
17273         (length_opcode attribute): Set cld and str to 1.
17274         (memory attribute): Set str to unknown - it is not clear from the
17275         patterns.
17276         (pent_np function unit): Prefixed string operations takes 12 cycles
17277         minimally; cld takes 2 cycles.
17278         (ppro_uops attribute): Str is "many" and cld is "few".
17279         (ppro_p0 unit): Handle cld here.
17280         (k6_alux unit): Handle cld and str types.
17281         (k6_load unit): It is ocupied by str opcodes.
17282         (k6_store unit): It is ocupied by str opcodes.
17283         (athlon_decode): Str is vector decoded.
17284         (athlon_ieu): Handle str and cld.
17285         (cld pattern): New.
17286         (movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction
17287         (movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1,
17288         cmpstrsi_nz_1 insn): Do not output cld instruction
17289
17290 Tue Jan 11 06:14:39 2000  David Starner <dstarner98@aasaa.ofe.org>
17291
17292         * gcc.texi (G++ and GCC): Add Java and Chill.
17293         (Bug Critera): Don't list languages.
17294
17295         * gcc.texi (Incompatibilities): No longer claim most C compilers
17296         are K&R.
17297
17298         * gcc.texi (G++ and GCC): Update other front-ends list.
17299
17300 Tue Jan 11 05:49:01 2000  Jeffrey A Law  (law@cygnus.com)
17301
17302         * i386.c (ix86_expand_setcc): Fix typo.
17303         (ix86_expand_movcc): Similarly.
17304
17305         * Band-aid until haifa's bitset implementation is nuked.
17306         * haifa-sched.c (extract_bitlst): New parameter for size of the
17307         bitset in bits.  All callers changed.  Avoid looking at undefined
17308         bits in the bitset.
17309         (edgeset_bitsize): New variable.
17310         (schedule_region): Initialize edgeset_bitsize.
17311
17312 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17313
17314         * Makefile.in (optabs.o): Depend on real.h
17315         (resource.o): Depend on insn-attr.h
17316
17317         * builtins.c (result_vector): Wrap prototype in macro conditions
17318         governing definition and use.
17319
17320         * c-common.c: Include tm_p.h.
17321
17322         * c-lex.c: Likewise.
17323
17324         * elfos.h: Constify a char*.
17325
17326         * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length.
17327         (get_attr_length, shorten_branches, profile_after_prologue): Mark
17328         parameter with ATTRIBUTE_UNUSED.
17329
17330         * fold-const.c (exact_real_inverse): Wrap variable `i' in
17331         CHECK_FLOAT_VALUE.
17332
17333         * haifa-sched.c (schedule_insns): Mark parameter with
17334         ATTRIBUTE_UNUSED.
17335
17336         * optabs.c: Include real.h.
17337
17338         * real.h (ereal_atof): Add prototype arguments.
17339
17340         * resource.c: Include insn-attr.h.
17341
17342         * sdbout.c (sdbout_queue_anonymous_type,
17343         sdbout_dequeue_anonymous_types): Wrap in macro
17344         SDB_ALLOW_FORWARD_REFERENCES.
17345         (sdbout_init, sdbout_start_new_source_file): Mark parameter with
17346         ATTRIBUTE_UNUSED.
17347
17348         * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return.
17349
17350         * stupid.c: Include tm_p.h.
17351
17352         * tree.c (real_value_from_int_cst): Mark parameter with
17353         ATTRIBUTE_UNUSED.
17354
17355 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17356
17357         * i960-protos.h: New file.
17358
17359         * i960.c: Include tm_p.h.  Add static prototypes.  Fix compile
17360         time warnings.
17361
17362         * i960.h: Move prototypes to i960-protos.h.  Fix compile time warnings.
17363
17364 2000-01-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17365
17366         * combine.c (expand_field_assignment): Do not discard SUBREGs
17367         while computing nonzero_bits.
17368
17369 2000-01-09  Nick Clifton  <nickc@cygnus.com>
17370
17371         * config/arm/arm.c: Fix compile time warnings about signed vs
17372         unsigned constants.
17373         * config/arm/arm.h: Fix compile time warnings about signed vs
17374         unsigned constants.
17375
17376 2000-01-09  Philip Blundell  <philb@gnu.org>
17377
17378         * config/arm/arm.c (output_return_instruction): Use `ldr' rather
17379         than `ldm' with only one register.
17380         * config/arm/arm.md (push_multi): Use `str' rather than `stm' with
17381         only one register.
17382
17383         * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is
17384         clobbered.
17385
17386 Sun Jan  9 17:50:23 2000  Hans-Peter Nilsson  <hp@axis.com>
17387
17388         * config/ns32k/ns32k.md (load or push effective address): Operand 1
17389         must have SImode.
17390
17391 2000-01-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17392
17393         * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around
17394         assignment used as truth value.
17395
17396         * function.c (assign_temp): Mark parameter `dont_promote' with
17397         ATTRIBUTE_UNUSED.  Wrap variable `unsignedp' with macro
17398         PROMOTE_FOR_CALL_ONLY.
17399
17400         * genrecog.c (write_subroutine): Mark variable `operands' with
17401         ATTRIBUTE_UNUSED.
17402
17403         * optabs.c (prepare_cmp_insn): Mark parameter `align' with
17404         ATTRIBUTE_UNUSED.
17405
17406         * sdbout.c (sdbout_init): Likewise for parameter `asm_file'.
17407         (sdbout_begin_block, sdbout_end_block): Likewise for `file'.
17408
17409         * toplev.c (note_deferral_of_defined_inline_function): Likewise
17410         for `decl'.
17411
17412 2000-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17413
17414         * config/c4x.h: Tidy up comments.
17415         * config/c4x.c: Likewise.
17416
17417 Sun Jan  9 01:02:55 EST 2000  John Wehle  (john@feith.com)
17418
17419         * fold-const.c (lshift_double, rshift_double): Handle
17420         shifting by 2 * HOST_BITS_PER_WIDE_INT correctly.
17421
17422 2000-01-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17423
17424         * toplev.c (rest_of_compilation): Initialize cse_not_expected as
17425         in prepare_function_start().
17426
17427 Sat Jan  8 12:12:46 2000  Nick Clifton  <nickc@cygnus.com>
17428
17429         * config/v850/v850.c (expand_epilogue): Interrupt functions no
17430         longer allocate extra stack for function calls.
17431
17432 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17433
17434         * config/c4x/c4x.md (*subqf3_set): Fix typo.
17435
17436 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17437
17438         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0.
17439
17440 2000-01-07  David Edelsohn  <edelsohn@gnu.org>
17441
17442         * rs6000.c (processor_target_table): Add power3 as alias for 630.
17443         * aix43.h: Revert Aug 2 change.
17444         (HAS_INIT_SECTION): Define, not visible yet.
17445         (LD_INIT_SWITCH): Define, not visible yet.
17446         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
17447
17448         * glimits.h (__LONG_MAX__): Recognize 64-bit AIX too.
17449
17450         * collect2.c (main): Expand ld2 size further.
17451         (export_object_lst): Cast assignment to avoid warning.
17452         (main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support.
17453         (scan_prog_file, COFF): Do not collect initialization or
17454         finalization functions generated for entire shared object if
17455         init/fini support present.
17456
17457 2000-01-07  Nick Clifton  <nickc@cygnus.com>
17458
17459         * config/elfos.h: Tidy up formatting of marcos.  Make sure
17460         that .section directives are always prefixed by a tab.
17461
17462         * config/svr4.h: Add #include "elfos.h" and remove duplicate
17463         definitions.
17464
17465 2000-01-07  Matt Austern  <austern@sgi.com>
17466
17467         * fold-const.c (real_hex_to_f): Remove duplicate declaration of
17468         expon.
17469
17470 Fri Jan  7 01:55:34 2000  Jeffrey A Law  (law@cygnus.com)
17471
17472         * Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of
17473         crtstuff.c.
17474         (crtbegin.o, s-crtS): Likewise.
17475
17476 2000-01-06  Richard Henderson  <rth@cygnus.com>
17477
17478         * alpha.md (adddi_2+1): Limit offset such that it will be
17479         loadable with a single ldah+lda pair.
17480         (adddi_2+2): Explicitly fail split if we can't make it work.
17481
17482 2000-01-06  Mumit Khan  <khan@xraylith.wisc.edu>
17483
17484         * protoize.c: Conditionally include unistd.h.
17485         (IS_SAME_PATH_CHAR): New macro.
17486         (IS_SAME_PATH): New macro.
17487         (CPLUS_FILE_SUFFIX): New macro.
17488         (cplus_suffix): New static variable.
17489         (is_abspath): New static function.
17490         (in_system_include_dir): Handle DOS style pathnames.
17491         (file_could_be_converted): Likewise.
17492         (file_normally_convertible): Likewise.
17493         (directory_specified_p): Likewise.
17494         (file_excluded_p): Likewise.
17495         (abspath): Likewise.
17496         (shortpath): Likewise.
17497         (referenced_file_is_newer): Likewise.
17498         (save_def_or_dec): Likewise.
17499         (do_processing): Likewise.
17500         (main): Likewise.
17501         (edit_file): Likewise. Use rename instead of link.
17502         (rename_c_file): Likewise. Don't rename syscalls file.
17503         (munge_compile_params): Define null device for DOS based systems.
17504         (process_aux_info_file): Use binary mode if appliable.
17505         (edit_file): Likewise.
17506         * invoke.texi (Running Protoize): Document C++ suffixes used.
17507
17508         * cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and
17509         IS_DIR_SEPARATOR macros.
17510         * collect2.c: Likewise.
17511         * cppinit.c: Likewise.
17512         * dwarf2out.c: Likewise.
17513         * gcc.c: Likewise.
17514         * gcov.c: Likewise.
17515         * prefix.c: Likewise.
17516         * rtl.c: Likewise.
17517         * toplev.c: Likewise.
17518         * system.h: And move to here.
17519
17520         * prefix.c (update_path): Fix typo in variable name.
17521
17522 2000-01-06  Richard Henderson  <rth@cygnus.com>
17523
17524         * flow.c (mark_set_1): Use loop_depth+1 as reference weight.
17525         (find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise.
17526         (count_reg_sets_1, count_reg_references): Likewise.
17527         (flow_loops_level_compute): Start counting actual loop depth at 1.
17528         (flow_loops_find): Likewise.
17529         * local-alloc.c (update_equiv_regs): Likewise.
17530         * regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change.
17531
17532 2000-01-06  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
17533
17534         * defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to
17535         FIRST_PSEUDO_REGISTER
17536         * dwarf2out.c: Don't include frame.h
17537         * dwarfout.c: Likewise
17538         * Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on
17539         frame.h
17540
17541 Thu Jan  6 13:44:59 CET 2000  Jan Hubicka  <jh@suse.cz>
17542
17543         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
17544         dead registers.
17545
17546         * i386.c (movsf splitter): Fix typo in my last checkin.
17547
17548 2000-01-05  Nick Clifton  <nickc@cygnus.com>
17549
17550         * varasm.c (IN_NAMED_SECTION): Allow targets to provide their
17551         own definition of this macro.
17552         (asm_emit_uninitialised): Invoke UNIQUE_SECTION if either
17553         flag_data_sections or UNIQUE_SECTION_P are true.
17554
17555         * tm.texi (UNIQUE_SECTION): Document that it can be called for
17556         unitialised data decls.
17557
17558         * config/i386/winnt.c (i386_pe_unique_section): Cope with
17559         being called for uninitialised data.
17560
17561         * config/i386/interix.c (i386_pe_unique_section): Cope with
17562         being called for uninitialised data.
17563
17564         * config/mips/elf.h (UNIQUE_SECTION): Cope with being called
17565         for uninitialised data.
17566
17567         * config/mips/elf64.h (UNIQUE_SECTION): Cope with being called
17568         for uninitialised data.
17569
17570         * config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called
17571         for uninitialised data.
17572
17573         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Define.
17574         (UNIQUE_SECTION_P): Always generate a unique section if
17575         flag_data_sections is true.
17576         (UNIQUE_SECTION): Also generate unique sections for
17577         uninitialised data.
17578         (ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section().
17579         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use
17580         named_section().
17581
17582 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17583
17584         * config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF,
17585         SI, or DI.
17586
17587 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17588
17589         * config/c4x/c4x.md (udivqi3, divqi3): Delete.
17590         (umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise.
17591         (*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New.
17592         (*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise.
17593         (*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise.
17594
17595         * c4x.h (INIT_TARGET_OPTABS): Define to init libcalls.
17596
17597 2000-01-05 11:25 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
17598
17599         * c-decl.c (finish_enum): Simplify code to determine minimum and
17600         maximum values of the enum, and calculate the type.  Remove check
17601         for FUNCTION_DECLs in the values list, which cannot happen.  Replace
17602         the DECL_INITIAL of each enumeration constant with a copy converted
17603         to the enumeration type.  When updating variant types, don't bother
17604         updating the type itself.
17605
17606         * c-typeck.c (build_binary_op): Simplify conditional expressions
17607         when weeding out spurious signed-unsigned warnings.  Add new
17608         spurious warning category: if the unsigned quantity is an enum
17609         and its maximum value fits in signed_type(result_type).  Update
17610         commentary.
17611         (build_conditional_expr): Warn here if one alternative is signed
17612         and the other is unsigned.
17613
17614 2000-01-05  Nick Clifton  <nickc@cygnus.com>
17615
17616         * config/fr30/fr30.h: Remove extraneous comments.
17617
17618 2000-01-05  Bernd Schmidt  <bernds@cygnus.co.uk>
17619
17620         * reload1.c (choose_reload_regs): When disabling a reload, also
17621         set reload_spill_index to -1.
17622
17623 2000-01-04  Joel Sherrill (joel@OARcorp.com>
17624
17625         * configure.in (m68*-*-rtemscoff*): New target, formal name for
17626         old m68*-*-rtems*.
17627         (m68*-*-rtemself*): New target.
17628         (mips64orion-*-rtems*): Remove duplicate definition of tm_file.
17629         (sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*.
17630         (sparc*-*-rtemself*): New target.
17631         (sparc*-*-rtems*): Now elf not a.out.
17632         * config/i386/rtems.h: Include config/rtems.h.
17633         * config/i386/rtemself.h: Include config/rtems.h.
17634         * config/i960/rtems.h: Include config/rtems.h.
17635         * config/m68k/rtems.h: Include config/rtems.h.
17636         * config/m68k/rtemself.h: Include config/rtems.h.
17637         * config/mips/rtems64.h: Include config/rtems.h.
17638         * config/pa/rtems.h: Include config/rtems.h.
17639         * config/rs6000/rtems.h: Include config/rtems.h.
17640         * config/sh/rtems.h: Include config/rtems.h.
17641         * config/sh/rtemself.h: Include config/rtems.h.
17642         * config/sparc/rtems.h: Include config/rtems.h.
17643         * config/sparc/rtemself.h: Include config/rtems.h
17644
17645 Tue Jan  4 23:59:26 2000  Denis Chertykov <denisc@overta.ru>
17646
17647         * final.c (shorten_branches): Correctly compute length of
17648         asms without operands.
17649
17650 Tue Jan  4 22:55:41 2000  Steve Chamberlain <sac@pobox.com>
17651
17652         * configure.in: Add pj target.
17653         * configure: Regenerate.
17654         * config/pj: New directory.
17655         * config/pj/lib1funcs.S: New file.
17656         * config/pj/linux.h: New file.
17657         * config/pj/pj.c: New file.
17658         * config/pj/pj.md: New file.
17659         * config/pj/pjl.h: New file.
17660         * config/pj/t-pj: New file.
17661         * config/pj/xm-pj.h: New file
17662
17663 Tue Jan  4 22:30:16 2000  Jeffrey A Law  (law@cygnus.com)
17664
17665         * toplev.c (rest_of_compilation): Run shorten-branches before
17666         reg-stack for now.
17667
17668 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17669
17670         * config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behaviour of
17671         macros so that they're consistent with their names.
17672         * config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise.
17673         * config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise.
17674
17675 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17676
17677         * config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never
17678         modified inadvertently.
17679
17680 2000-01-04  Joel Sherrill <joel@OARcorp.com>
17681
17682         * configure.in (v850*-*-rtems*): New target.
17683         * configure: Regenerate.
17684         * config/v850/rtems.h: New file.
17685
17686 2000-01-04  Mumit Khan  <khan@xraylith.wisc.edu>
17687
17688         * gthr-win32.h (__gthread_active_p): Support Mingw MT runtime.
17689         (__gthread_key_create): Likewise.
17690         (__gthread_key_dtor):  Likewise.
17691         (__gthread_once): Fix logic.
17692         (__gthread_key_delete): Cast away constness.
17693
17694         * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option.
17695         * invoke.texi: Document.
17696         * i386/mingw32.h (CPP_SPEC): Use.
17697         (LIBGCC_SPEC): Likewise.
17698         * i386/crtdll.h (LIBGCC_SPEC): Likewise.
17699
17700 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
17701
17702         * rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine.
17703         (HANDLE_PRAGMA_PACK): Undefine.
17704         (SLOW_UNALIGNED_ACCESS): Define.
17705
17706 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
17707
17708         * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
17709         to default definition.
17710         (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment.
17711         (store_fixed_bit_field): Call macro with word_mode and alignment.
17712         (extract_bit_field): Call macro with relevant mode and alignment.
17713         * expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
17714         to default definition.
17715         (move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode
17716         and alignment.
17717         (move_by_pieces_ninsns): Likewise.
17718         (clear_by_pieces): Likewise.
17719         (emit_push_insn): Likewise.
17720         (store_field): Call macro with relevant mode and alignment.
17721         (expand_expr): Likewise.
17722         (expand_expr_unaligned): Likewise.
17723
17724         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
17725         (SLOW_UNALIGNED_ACCESS): Define.
17726         (CASE_VECTOR_MODE): Always use 32-bit offsets.
17727         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
17728         (EXTRA_SECTION_FUNCTIONS): Indent .csect pseudo-op.
17729         (toc_section): Likewise and .toc pseudo-op.
17730         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
17731         64-bit mode.
17732         (TEXT_SECTION_ASM_OP): Likewise.
17733         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
17734         32-bit offsets.
17735
17736         * a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters.
17737         * alpha.h (SLOW_UNALIGNED_ACCESS): Likewise.
17738         * arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise.
17739         * gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise.
17740         * fr30.h (SLOW_UNALIGNED_ACCESS): Likewise.
17741
17742 Tue Jan  4 11:44:13 2000  Jeffrey A Law  (law@cygnus.com)
17743
17744         * regclass.c: Revert my Jan 4 change to loop cost computation.
17745
17746 Tue Jan  4 19:22:39 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
17747
17748         * regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing
17749         compilation.
17750
17751 2000-01-04  Stan Cox  <scox@cygnus.com>
17752
17753         * haifa-sched.c (build_control_flow): Change unreachable simple
17754         loop test to check if current block has only one predecessor.
17755         (find_rgns): Initialize degree.  Use dest as degree index, not src.
17756
17757 2000-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17758
17759         * builtins.c (expand_builtin_strlen): Initialize variable `icode'.
17760
17761         * calls.c (expand_call): Likewise for
17762         `old_stack_arg_under_construction'.
17763
17764         * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'.
17765
17766         * function.c (pad_to_arg_alignment): Likewise for `save_var' and
17767         `save_constant'.
17768
17769         * gcc.c (execute): Likewise for `ut' and `st'.
17770
17771         * genattrtab.c (attr_rtx): Likewise for `rt_val'.
17772
17773         * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'.
17774
17775         * jump.c (jump_optimize_1): Likewise for `temp2'.
17776
17777         * local-alloc.c (block_alloc): Likewise for `r1'.
17778
17779         * loop.c (recombine_givs): Likewise for `life_start' and `life_end'.
17780
17781         * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'.
17782         (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'.
17783
17784         * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node'
17785         and `set2'.
17786
17787         * reload.c (find_reloads): Likewise for `goal_alternative_number'
17788         and `goal_earlyclobber'.
17789
17790         * scan-decls.c (scan_decls): Likewise for `prev_id_end'.
17791
17792         * sdbout.c (sdbout_one_type): Likewise for `member_scl'.
17793
17794         * stupid.c (stupid_life_analysis): Likewise for `chain'.
17795
17796         * unroll.c (copy_loop_body): Likewise for `copy'.
17797
17798         * varasm.c (output_constructor): Likewise for `byte'.
17799
17800 Tue Jan  4 15:34:34 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
17801
17802         * i386.c (ix86_expand_move): Allow pushes of memory, offload to memory
17803         all FP constants for constant->reg moves.
17804         (ix86_split_to_parts): Try to convert memory address into immediate
17805         when available in the constant pool.
17806         * i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg
17807         moves.
17808         (LEGITIMATE_CONSTANT_P): Return 1.
17809         * i386.md (pushsf): New splitter to convert constant pool memory
17810         reference to immediate.
17811         (mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before
17812         reload.
17813
17814 2000-01-04  Bernd Schmidt  <bernds@cygnus.co.uk>
17815
17816         * i386.md (ashlsi3_cmpno): Don't accept variables shifts.
17817         (ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno,
17818         ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise.
17819         (rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno,
17820         rotrhi3_cmpno, rotrqi3_cmpno): Likewise.
17821
17822 2000-01-04  Martin von Löwis  <loewis@informatik.hu-berlin.de>
17823
17824         * ginclude/stdbool.h:  Support compilation as C++.
17825
17826 Tue Jan  4 01:35:13 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
17827
17828         * fold-const.c (make_range): Don't try to reverse an unbounded range.
17829
17830 Tue Jan  4 00:18:46 2000  Jeffrey A Law  (law@cygnus.com)
17831
17832         * regclass.c (regclass): Properly compute loop_cost.  Adjust
17833         comments.
17834
17835         * regclass.c: Fix minor whitespace problems.
17836
17837 2000-01-03  Anthony Green  <green@cygnus.com>
17838
17839         * config/i386/i386.md (builtin_setjmp_receiver): New pattern.
17840         Restore the pic register if required.
17841
17842 2000-01-03  Ulrich Drepper  <drepper@cygnus.com>
17843
17844         * c-common.c (format_char_info): Update comment.
17845         (check_format_info): Recognize 'z' modifier in the same way 'Z'
17846         was recognized.  Emit warning for formats new in ISO C99 only
17847         if flag_isoc9x is not set.
17848
17849 Mon Jan  3 12:59:54 2000  Mark P. Mitchell  <mark@codesourcery.com>
17850
17851         * config/mips/iris6gld.h: Fix typo in -mabi=n32 specs.
17852
17853 Mon Jan  3 15:33:37 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
17854
17855         * combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to
17856         SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND.
17857         (make_compound_operation): Choose cheaper alternative between
17858         ZERO_EXTEND and SIGN_EXTEND when sign bit is not set.
17859
17860         * regclass.c (op_costs): Remove global variable.
17861         (record_reg_classes): New parameter "op_costs" and "reg_pref".
17862         (record_operand_costs): Break out from ...
17863         (scan_one_insn): ... here.
17864         (dump_regclass): Make dumps nicer.
17865         (regclass): Dump preferrences choosed and changes done during passes.
17866
17867 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
17868
17869         * config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC.
17870
17871 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
17872
17873         * config/sparc/sparc.c (gen_df_reg): New function.
17874         * config/sparc/sparc-protos.h (gen_df_reg): Add prototype.
17875         * config/sparc/sparc.md (movtf_no_e_insn_sp64+1,
17876         movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1,
17877         movtf_cc_reg_sp64+1): Use it.
17878
17879 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
17880
17881         * integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on
17882         copied LABEL_DECLs.
17883
17884 Mon Jan  3 02:54:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
17885
17886         * config/i386/i386.c (ix86_expand_unary_operator): Function
17887         definition made void.
17888         (ix86_expand_binary_operator): Update outdated preceding comment.
17889         * config/i386/i386-protos.h (ix86_expand_unary_operator): Update
17890         prototype.
17891
17892         * config/i386/i386.c (override_options): Fix option-name typo.
17893
17894 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
17895
17896         * system.h (CEIL): Define.
17897         * builtins.c (CEIL): Remove.
17898         * expmed.c (CEIL): Likewise.
17899         * expr.c (CEIL): Likewise.
17900         * stor-layout.c (CEIL): Likewise.
17901
17902 2000-01-02  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
17903
17904         * expr.c (store_constructor_field): Fix typo introduced with last
17905         gcc2 merge.
17906
17907 2000-01-01  Mark Mitchell  <mark@codesourcery.com>
17908
17909         * tree.h (BINFO_N_BASETYPES): New macro.
17910
17911 2000-01-01  Bernd Schmidt  <bernds@cygnus.co.uk>
17912
17913         * expmed.c (emit_store_flag): Prevent losing a pending stack
17914         adjust the same way we prevent losing queued increments.
17915
17916 See ChangeLog.2 for earlier changes.