OSDN Git Service

Fix (<cond> ? FOO++ : BAR++) == 2 from misoptimizing FOO++ into ++FOO without bumping...
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2000-07-15  Michael Meissner  <meissner@redhat.com>
2
3         * fold-const.c (fold): When optimizing FOO++ == CONST into ++FOO
4         == CONST + INCREMENT, don't overwrite the tree node for FOO++,
5         create a new node instead.
6
7 2000-07-15  Neil Booth  <NeilB@earthling.net>
8
9         * README.Portability: Correct example about calling a function
10         through a pointer to function.  Format wide paragraphs.
11
12 2000-07-15  Michael Meissner  <meissner@redhat.com>
13
14         * README.Portability: Update integer suffixes and function
15         prototype sections.
16
17 2000-07-15  Neil Booth  <NeilB@earthling.net>
18
19         * README.Portability: Small update.
20
21 2000-07-15  Neil Booth  <NeilB@earthling.net>
22
23         * README.Portability: New file.
24
25 Fri Jul 14 18:13:53 2000  Mark P Mitchell  <mark@codesourcery.com>
26
27         * INSTALL: Give special instructions for building GCC on Irix 6.
28         * config/mips/x-iris6 (CC): Don't set it.
29         (OLDCC): Likewise.
30
31 2000-07-14  Jason Merrill  <jason@redhat.com>
32
33         * dwarf2out.c (dwarf2out_frame_debug_expr): If we store the CFA 
34         register in the stack and later in another register, use the new
35         register.
36
37 Fri Jul 14 10:25:53 2000  Clinton Popetz  <cpopetz@cygnus.com>
38
39         * config/mips/mips.md: (absdi2): Handle sign_extend for
40         second operand.
41
42 2000-07-14  Nathan Sidwell  <nathan@codesourcery.com>
43
44         * cpplib.c (do_pragma_dependency): Tidy warning messages.
45
46 2000-07-14  Zack Weinberg  <zack@wolery.cumb.org>
47
48         * .cvsignore: Correct typo.
49
50 2000-07-13  Mark Mitchell  <mark@codesourcery.com>
51
52         * .cvsignore: Add generated YACC files.
53         * objc/.cvsignore: New file.
54         
55 2000-07-14  Neil Booth  <NeilB@earthling.net>
56
57         * cpplex.c (adjust_column): New funcion.
58         (skip_whitespace): Use it.
59         (skip_block_comment): Use it, and warn about /*/* with
60         -Wcomments.
61
62 2000-07-14  Neil Booth  <NeilB@earthling.net>
63
64         * cpphash.c (struct macro_info): Add new members.
65         (_cpp_free_definition): Delete the macro directly.
66         (count_params): Return void, with first token of
67         expansion in struct macro_info on success.
68         (parse_define): Return int.  Hoist syntax checking from
69         save_macro_expansion.  Leave call to save_expansion to
70         _cpp_create_definition.
71         (alloc_macro): Needs just 2 arguments.
72         (free_macro): Delete.
73         (save_expansion): Don't perform syntax check.
74         (_cpp_create_definition): Call save_expansion.
75
76 2000-07-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
77
78         * genrecog.c (write_header): Split long string.
79
80         * cpphash.c (macro_info): Don't use the `signed' keyword.
81
82         * system.h (alloca): Prototype if __GNUC__ && __SIZE_TYPE__.
83
84 2000-07-13  Jakub Jelinek  <jakub@redhat.com>
85
86         * calls.c (stored_args_map): New variable.
87         (check_sibcall_argument_overlap_1): New.
88         (check_sibcall_argument_overlap): New.
89         (expand_call): Initialize stored_args_map.
90         Call check_sibcall_argument_overlap.
91
92 2000-07-13  Bruce Korb  <bkorb@gnu.org>
93
94         * fixinc/fixfixes.c: move EXIT_BROKEN to header, add sub-expr max count
95         (emit_gnu_type): utility procedure for gnu_type_fix
96         (gnu_type_fix): implement various pre-processor guards around
97         standard types so these types can be defined over and over
98         * fixinc/fixincl.tpl: add a "gnu_type_map" that forces the standard
99         types alluded to above will have GNU-compliant base types
100         * fixinc/fixlib.h: add EXIT_BROKEN define and the gnu_type_map struct
101         * fixinc/inclhack.def: add test_text entries and utilize the new
102         "gnu_types" fix for the ptrdiff_t, size_t and wchar_t types.
103         * fixinc/fixincl.x: regenerate
104
105 2000-07-12  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
106
107         * diagnostic.c (vline_wrapper_message_with_location,
108         v_message_with_file_and_line, v_error_with_file_and_file,
109         v_error_for_asm, v_warning_for_asm, vfatal,
110         v_warning_with_file_and_line, v_pedwarn_with_file_and_line,
111         vsorry, verror, vwarning, vpedwarn): Remove.
112         (diagnostic_for_asm): New function.
113         (pedwarn, error, warning, pedwarn_with_file_and_line,
114         error_with_file_and_line, warning_with_file_and_line, sorry,
115         error_for_asm, warning_for_asm, fatal): Reimplement.
116         (finish_diagnostic): Clear diagnostic info as well.
117         
118 2000-07-13  Neil Booth  <NeilB@earthling.net>
119
120         * c-common.h (flag_digraphs): New.
121         * c-decl.c (c_decode_option): Set flag_digraphs as appropriate.
122         * c-lex.c (yylex): Use flag_digraphs to decide whether to
123         honour digraphs.
124         
125 2000-07-13  Zack Weinberg  <zack@wolery.cumb.org>
126
127         * gcc.c (do_spec_1): Add new %B operator.
128         (set_input): Prepare for %B.
129
130         (link_command_spec): Move up with the other tm.h-
131         overrideable specs.  Factor out the portion conditional on
132         LINK_LIBGCC_SPECIAL into a new spec, %(link_libgcc).
133         (struct compiler): Just have a single spec string.  All users
134         updated.
135         (default_compilers): Remove unnecessary braces.
136         (static_specs): Update.
137
138         (trad_capable_cpp, cpp_options, cc1_options, asm_options): New
139         named specs.
140         (C and assembly specs): Use the new named specs, as appropriate.
141
142         * objc/lang-specs.h: Use the new named specs.  
143         Remove unnecessary braces.
144
145 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
146
147         * gcc.c (execute): If a subprocess gets a fatal signal, report
148         strsignal() of the signal number, and ask for a bug report.
149         Do not do this for SIGPIPE if there's already been an error.
150
151         * tradcpp.c: Don't include signal.h.  Don't catch SIGPIPE.
152         Delete pipe_closed.
153
154         * tradcif.c: Remove.
155
156 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
157
158         * final.c (profile_function): Do not emit profile counters in
159         the data section, if NO_PROFILE_COUNTERS is defined.
160         * tm.texi: Document NO_PROFILE_COUNTERS.  Update doc for
161         FUNCTION_PROFILER.
162
163         * config/i386/linux.h (NO_PROFILE_COUNTERS): Define.
164         (FUNCTION_PROFILER): Just emit a call to mcount.
165
166 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
167
168         * tradcpp.c (main): Rename 'perror' label to 'sys_error'.
169
170         * cppexp.c, cpphash.c, cpphash.h, cppinit.c, cpplex.c,
171         cpplib.c, cpplib.h: Eradicate all traces of code dependent on
172         traditional, lang_chill, or lang_fortran.
173
174         * cppfiles.c: #undef strcmp to suppress warning about macros
175         used without arguments.
176         (_cpp_execute_include): Use f, not fname, in "No include path"
177         error.
178         (_cpp_pop_file_buffer): New function.
179         * cpplib.c: Don't include <sys/mman.h>.
180         (cpp_push_buffer): Set line_base and lineno in new buffer.
181         (cpp_pop_buffer): Use _cpp_pop_file_buffer.
182
183         * cpplex.c: Move all prototypes and structure declarations to the
184         top of the file.  Properly parenthesise some macro arguments.
185         (cpp_scan_line): New function.
186         (special_symbol [case T_INCLUDE_DEPTH]): Use pfile->include_depth,
187         don't need to walk up the stack counting.
188
189 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
190
191         * c-common.c (combine_strings): Emit a pedantic warning when a
192         string length is greater than the minimum ANSI C is required
193         to support.
194
195 Wed Jul 12 13:24:30 2000  Jeffrey A Law  (law@cygnus.com)
196
197         * pa/xm-pa64.h (NO_SYS_SIGLIST): Kill.
198         * d30v/xm-d30v.h (NO_SYS_SIGLIST): Kill.
199
200 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
201
202         * c-decl.c (define_label): Warn about identifier conflicts with
203         labels in traditional C.
204
205         * c-parse.in (unop +): Warn about the unary plus operator for
206         traditional C.
207
208         * c-typeck.c (store_init_value): Warn about automatic aggregate
209         initialization for traditional C.
210
211         * invoke.texi (-Wtraditional): Document new warnings.
212
213 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
214
215         * Makefile.in (c-errors.o): Fix thinko in dependency.
216
217 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
218
219         * gcc.c (C specs [!USE_CPPLIB]): Invoke tradcpp if any of
220         -traditional, -ftraditional, or -traditional-cpp was given.
221         Do not pass -traditional to the preprocessor.
222         (.S spec): Likewise.  Don't bother defining __ASSEMBLER__, the
223         preprocessor does it automatically.
224         * objc/lang-specs.h: Likewise.  Don't bother defining __OBJC__.
225
226         * ch/lang-specs.h: Always use tradcpp.  Do not pass
227         -traditional, -trigraphs, or -pedantic to the preprocessor.
228         * f/lang-specs.h (.F spec): Likewise.  Don't bother defining
229         _LANGUAGE_FORTRAN.
230
231 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
232
233         * cppexp.c (LOGICAL): Delete macro.
234         (_cpp_parse_expr): Do not use UNARY for unary +.  Implement ||
235         and && directly.
236
237         * cpphash.c (HASHSIZE): Increase to 4096.
238         (struct hashdummy): Add hash field.
239         (eq_HASHNODE): Compare unreduced hashes, then lengths, then
240         the string values using memcmp.
241         (cpp_lookup): Set dummy.hash.
242
243 Wed Jul 12 13:15:16 2000  Marc Espie <espie@openbsd.org>
244
245         * configure.in (m88k-openbsd): Express configuration using new fragment
246         style.
247         * configure: Rebuilt.
248         * m88k/aout-dbx.h: New.
249         * m88k/openbsd.h: New.
250         * m88k/xm-openbsd.h: New.
251
252 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
253
254         * expr.c (expand_expr): Return const0_rtx, not error_mark_node.
255
256 2000-07-12  Richard Henderson  <rth@cygnus.com>
257
258         * reload.c (push_secondary_reload): Make sure to add the new
259         reload at the end, after acquiring secondary memory.
260
261 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
262
263         * cpplex.c (is_macro_disabled): Use CPP_WTRADITIONAL.
264
265         * c-decl.c (set_current_function_name_declared, anon_aggr_type_p,
266         lang_expand_stmt): Mark parameters with ATTRIBUTE_UNUSED.
267
268         * c-parse.in (stmt): Delete unused variables.
269
270         * convert.c (convert_to_vector): Likewise.
271
272         * gensupport.c (process_rtx): Declare attr as `rtvec' not `rtx'.
273
274         * tree.c (finish_vector_type): Prototype.
275
276 2000-07-12  Bruce Korb  <bkorb@gnu.org>
277
278         * fixinc/fixfixes.c: use xmalloc
279         * fixinc/fixincl.c(initialize): set program name for xmalloc
280         * fixinc/fixlib.c(must_malloc): obsolete
281         (is_cxx_header): no longer used - disabled
282         (skip_quote): inserted and disabled for future use
283         * fixinc/fixlib.h: reflects above
284         * fixinc/fixtests.c: removed dinkleberries
285
286 2000-07-12  Neil Booth  <NeilB@earthling.net>
287
288         * cpphash.h: (TOKEN_SPELL) Pulled from cpplex.c.
289         * cpplex.c (TOKEN_SPELL) Move to cpphash.h.
290
291         * cpphash.c: (struct macro_info, alloc_macro, free_macro,
292         struct toklist_dummy): New.
293         (cpp_free_definition): Free macros with free_macro.
294         (count_params): Don't save paramter spellings.  Save macro
295         information in a struct macro_info.
296         (parse_define): Don't allocate a token list.
297         (save_expansion): Allocate the macro's token list, and
298         save parameter spellings if necessary.  Use TOKEN_SPELL.
299         (cpp_create_definition): Make list const.
300
301 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
302
303         * c-typeck.c (pedwarn_c99): Move to
304         * c-errors.c: ... Here.
305         * toplev.h (verror, vwarning, vpedwarn): Remove prototypes.
306         * diagnostic.c (verror, vwarning, vpedwarn): Make static.
307         * Makefile.in (C_AND_OBJC_OBJS): Include c-errors.o
308         (c-errors.o): List dependency.
309
310 2000-07-12  Mark Mitchell  <mark@codesourcery.com>
311
312         * c-parse.c: Remove.
313         * c-parse.h: Likewise.
314         * c-parse.y: Likewise.
315         * objc/objc-parse.c: Likewise.
316         * objc/objc-pasre.y: Likewise.
317
318 2000-07-11  Rodney Brown  <RodneyBrown@pmsc.com>
319
320         * gcc.texi: Fix minor typos
321         * extend.texi: Fix minor typos
322
323 2000-07-11  Marc Espie <espie@openbsd.org>
324
325         * collect2.c (main): Recognize .lo as object files.
326
327 2000-07-11  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
328
329         * pa.c (hppa_encode_label): Store labels in gc memory when ggc_p is
330         true.
331
332         * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Extend test to detect systems
333         with MAP_ANONYMOUS and MAP_ANON.
334         * configure, config.in: Rebuilt.
335
336 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
337
338         * diagnostic.c (save_output_state): Remove.
339         (restore_output_state): Likewise.
340         (clear_text_info): New function.
341         (clear_diagnostic_info): Likewise.
342         (output_text_length, is_starting_newline, output_prefix,
343         line_wrap_cutoff, ideal_line_wrap_cutoff, prefix_was_emitted_for,
344         prefixing_policy, output_buffer_ptr_to_format_args): New macros
345         (set_real_maximum_length, output_set_maximum_length,
346         output_set_prefix, output_get_prefix, output_set_maximum_length,
347         output_destroy_prefix, init_output_buffer,
348         reshape_diagnostic_buffer, output_space_left, output_emit_prefix,
349         output_add_newline, output_add_character, output_add_space,
350         output_append_r, output_append, wrap_text, output_format,
351         output_do_printf, output_printf, output_do_verbatim,
352         output_verbatim, verbatim): Use them.
353         (output_clear): Split into cleat_text_info and
354         clear_diagnostic_info.
355         (struct output_state): Move to...
356
357         * diagnostic.h: ...Here
358         (struct output_buffer): Adjust.
359
360 2000-07-11  Zack Weinberg  <zack@wolery.cumb.org>
361
362         * cpplex.c (parse_name): No longer inline (premature optimization).
363         (do_pop_context): Fold into pop_context.
364         (pop_context): Returns int.
365         (lex_next): Hoist test for end of directive into pop_context.
366         (push_macro_context): Returns int; takes just reader and token.
367         Hoist test for excessive nesting to caller.
368         (push_arg_context): Returns void; takes just reader and token.
369         Do not call stringify_arg or get_raw_token.
370         (get_raw_token): Convert tail recursion through push_arg_context
371         to a loop at this level.  Call stringify_arg here if appropriate.
372         (maybe_paste_with_next): Convert tail recursion to a while loop.
373         Hoist test of paste_level to caller.
374
375         (stringify_arg): Push arg context at beginning.
376         (cpp_get_token): Split out core into _cpp_get_token.  Call
377         process_directive here.  Throw away CPP_PLACEMARKER tokens.
378         (_cpp_get_token): Convert tail recursion through
379         push_macro_context to a loop at this level.
380         (_cpp_glue_header_name, is_macro_disabled, stringify_arg,
381         _cpp_get_raw_token): Use _cpp_get_token.
382         (_cpp_skip_rest_of_line): Drop the context stack directly; do
383         not call pop_context.
384         (_cpp_run_directive): Call lex_next directly.
385
386         * cpphash.h: Prototype _cpp_get_token.
387         * cppexp.c (lex): Use it.
388         * cpphash.c (parse_define): Use it.
389         * cpplib.c (get_define_node, do_undef, parse_include,
390         read_line_number, do_line, do_ident, do_pragma, do_pragma_gcc,
391         do_pragma_implementation, do_pragma_poison, do_pragma_dependency,
392         parse_ifdef, validate_else): Use it.
393         (cpp_push_buffer): Tweak error message; abort if anyone tries
394         to push a buffer while macro expansions are stacked.
395
396 2000-07-11  Donn Terry  <donnte@microsoft.com>
397
398         * cpplex.c (free_macro_args, save_token): Cast arg of free
399         and/or xrealloc to PTR.
400         (_cpp_init_input_buffer): Clear all fields of the base context.
401
402 Tue Jul 11 15:28:21 CDT 2000  Clinton Popetz  <cpopetz@cygnus.com>
403
404         * gensupport.c (process_rtx): Make rtl checking stop
405         complaining about the define_insn while it is being
406         converted from a define_insn_and_split.
407
408 Tue Jul 11 16:26:17 2000  Clinton Popetz  <cpopetz@cygnus.com>
409
410         * config/mips/mips.c (simple_memory_operand): Access the
411         INTVAL of the address, not it's containing MEM.
412
413 2000-07-11  Bruce Korb  <bkorb@gnu.org>
414
415         * fixinc/fixtests.c(double_slash): obsolete
416         (else_endif_label): likewise
417         * fixinc/inclhack.def(irix_multiline_cmnt): obsolete
418         (libc1_ifdefd_memx): correct initial comment
419         and omit the #if/#endif pair from the memxxx declarations
420         * fixinc/fixincl.x: regen
421
422 2000-07-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
423
424         * cpplex.c (T, I, S, C, N): Avoid non-constant initializers.
425
426 2000-07-11  Neil Booth  <NeilB@earthling.net>
427
428         * cpp.texi: Update.
429
430 2000-07-11  Neil Booth  <NeilB@earthling.net>
431
432         * cppinit.c: (cpp_reader_init): Allow digraphs by default.
433         (handle_option): Set digraphs according to standard.
434         Merge OPT_lang_c89 handler with OPT_std_c89.
435
436         * cpplex.c: (lex_line, can_paste): Honour digraphs in
437         accordance with the digraphs flag.
438
439         * cpplib.h: (struct cpp_options): New option digraphs.
440
441 2000-07-10  Hans-Peter Nilsson  <hp@axis.com>
442             Bruce Korb  <bkorb@gnu.org>
443
444         * fixinc/inclhack.def (libc1_ifdefd_memx): New fix.
445         * fixinc/fixincl.x: Regenerate.
446         * fixinc/tests/base/testing.h: Add testcase.
447
448 2000-07-10  Richard Henderson  <rth@cygnus.com>
449
450         * config/ia64/ia64.c (got_symbolic_operand): New.
451         (symbolic_operand, move_operand): Revert 0701 change.
452         * config/ia64/ia64.h (PREDICATE_CODES): Update.
453         * config/ia64/ia64-protos.h (got_symbolic_operand): Declare.
454         * config/ia64/ia64.md (movdi): Revert 0701 wrt symbolic_operand;
455         split the offset into a 14-bit low part instead of a 13-bit low part.
456         (load_fptr): Mark the mem as unchanging.
457         (load_symptr): Use got_symbolic_operand.
458
459 2000-07-10  Nick Clifton  <nickc@cygnus.com>
460
461         * libgcc2.c (next_stack_level): Cast result of computation to
462         (void **) so that the assignment does not generate a warning.
463
464 2000-07-10  Chandrakala Chavva  <cchavva@redhat.com>
465
466         * flags.h : Add new variable flag_single_precision_constant.
467         * toplev.c (display_help) : Add -fsingle-precision-constant option.
468         (flag_single_precision_constant): New.
469         * c-lex.c (yylex): Convert floating point constant to single
470         precision constant.
471         * invoke.texi : Add documentation for this new option.
472
473 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
474
475         * diagnostic.c (output_octal): Second parameter is unsigned.
476         (output_long_octal): Likewise.
477         (output_hexadecimal): Likewise.
478         (output_long_hexadecimal): Likewise.
479         (output_format): Adjust arguments extraction. Tweak.
480         (output_verbatim, verbatim): End variable argument list.
481         (report_diagnostic): Improve documentation.
482
483 2000-07-10  Benjamin Chelf  <chelf@codesourcery.com>
484
485         * c-common.h (build_stmt): Declare.
486         (build_continue_stmt): Likewise.
487         (build_break_stmt): Likewise.
488         (build_return_stmt): Likewise.
489
490         * c-decl.c (do_case): Rewrite to do what previously done in
491         c-parse.in.
492
493         * c-semantics.c (build_stmt): Define.
494         (build_return_stmt): Likewise.
495         (build_break_stmt): Likewise.
496         (build_continue_stmt): Likewise.
497         (build_case_label): Likewise.
498
499         * c-parse.in (BREAK): Change to build tree, then generate RTL.
500         (CONTINUE): Likewise.
501         (RETURN): Likewise.
502         (CASE): Likewise.
503         (DEFAULT): Likewise.
504
505         * c-parse.y: Regenerate.
506         * c-pasre.c: Likewise.
507
508 2000-07-09  Jason Merrill  <jason@redhat.com>
509
510         * expr.c (expand_expr): Bail earlier if we get an error_mark_node.
511
512         * tree.h (STRIP_NOPS): Check for error_mark_node.
513         (STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Likewise.
514         (dwarf2out_*): Remove duplicate declarations.
515
516         * c-decl.c (duplicate_decls): Copy DECL_ABSTRACT_ORIGIN from
517         DECL_ABSTRACT_ORIGIN, not DECL_ORIGIN.
518
519 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
520
521         * diagnostic.c (wrap_text): New function.
522         (maybe_wrap_text): Likewise.
523         (output_add_string): Use it.
524         (output_format): Likewise.
525         (count_error): Use verbatim instead of notice.
526         (report_error_function): Likewise. Don't use plain fprintf.
527         (finish_diagnostic): New function.
528         (output_do_verbatim): Tweak.  Commonalize functionalities in
529         output_verbatim and verbatim.
530         (output_verbatim): Adjust.
531         (verbatim): Likewise.
532         (report_diagnostic): Define.
533
534         * diagnostic.h (report_diagnostic): Prototype.
535
536 2000-07-09  Zack Weinberg  <zack@wolery.cumb.org>
537
538         * cppexp.c (_cpp_parse_expr): Don't use unary plus.
539
540 2000-07-09  Neil Booth  <NeilB@earthling.net>
541
542         * cpphash.h: ISvspace, is_vspace, is_nvspace: New.
543         IShspace, ISspace: Update.
544
545         * cppinit.c: ISTABLE: Update.
546         V: New.
547
548         * cpplex.c (IS_HSPACE, S_NEWLINE): Remove.
549         (IS_DIRECTIVE): Rename KNOWN_DIRECTIVE.
550         (skip_block_comment, skip_line_comment, parse_string,
551         lex_line): Use is_vspace rather than IS_NEWLINE.
552         (skip_whitespace, lex_line): Clean up to use is_nvspace.
553         (lex_line): Use KNOWN_DIRECTIVE.  Any kind of directive
554         gets a BOL flag.
555         (lex_next): Unconditionally stop if within a directive.
556         Treat directives within macro invocations as directives
557         (after parse_args emits error), not as the argument.
558
559 2000-07-09  Gabriel Dos Reis  <gdr@codesourcery.com>
560
561         * diagnostic.c (diagnostic_args): New macro.
562         (diagnostic_msg): Likewise.
563         (output_formatted_integer): Likewise.
564         (output_state): New data type.
565         (digit_buffer): Make global.
566         (output_add_integer): Rename to output_decimal. Squeeze
567         digit_buffer.
568         (output_long_decimal, output_unsigned_decimal,
569         output_long_unsigned_decimal, output_octal, output_long_octal,
570         output_hexadecimal, output_long_hexadecimal): New functions.
571         (output_append_r): New function.
572         (output_append): Tweak.
573         (output_flush_on): Rename to output_to_stream.
574         (output_format): Change prototype.  Improve documentation. Handle
575         more format specifiers.
576         (build_location_prefix): Rename to context_as_prefix.
577         (output_notice): Rename to output_do_printf.
578         (output_printf): Tweak.
579         (line_wrapper_printf): Likewise.
580         (vline_wrapper_message_with_location): Adjust call to renamed
581         functions.
582         (v_message_with_decl): Likewise.
583         (default_print_error_function): Likewise.
584         (save_output_state): New function.
585         (restore_output_state): Likewise.
586         (output_do_verbatim): Likewise.
587         (output_verbatim): Define.
588         (verbatim): Likewise.
589
590         * diagnostic.h (printer_fn): Change return type from void to int.
591         Improve documentation.
592         (output_add_integer): Rename to output_decimal.
593         (output_flush_on, output_format): Don't export.
594         (output_verbatim, verbatim): Declare.
595
596 2000-07-08  Toon Moene  <toon@moene.indiv.nluug.nl>
597
598         * fold-const.c (extract_muldiv) case PLUS_EXPR, MINUS_EXPR:
599         Check whether c divides op1 exactly if operation is not
600         multiplication.
601
602 2000-07-08  Richard Henderson  <rth@cygnus.com>
603
604         * final.c (final): Do not abort when reg-stack introduces
605         a new insn.
606
607 2000-07-08  Zack Weinberg  <zack@wolery.cumb.org>
608
609         * cpplib.h (struct cpp_name): Now struct cpp_string.
610         (CPP_INT, CPP_FLOAT, CPP_NUMBER, CPP_COMMENT,
611         CPP_HEADER_NAME): Change to type S.
612         (struct cpp_token): Rename 'name' field to 'str'.  Add 'node'
613         field, a cpp_hashnode *.  All references to val.name updated
614         to use val.str or val.node as appropriate.
615         (struct cpp_reader): Add spec_nodes field.
616         (cpp_idcmp): Now cpp_ideq; takes a token * and a char *.
617
618         * cpphash.h (struct spec_nodes): New.
619         (enum spell_type): Reorder.  Only SPELL_STRING tokens use
620         val.str.  All references to 'spelling > SPELL_NONE' updated to
621         match.
622
623         (CPP_IN_SYSTEM_HEADER): Check pfile->buffer and
624         pfile->buffer->inc are not NULL before dereferencing them.
625
626         * cpplex.c (parse_name): Take a pointer to the current token,
627         plus current position and limit as args; return the new
628         position; don't copy the text of a name into the string
629         buffer, instead call cpp_lookup and store the node pointer.
630         If extending a token, copy out the text of the old into a
631         scratch buffer, append the new, look that up and store the new
632         node pointer.  Inline.
633         (maybe_paste_with_next): If the result of paste is a NAME,
634         then look up the pasted text and store its node pointer.
635         (lex_line): Adjust for new parse_name interface.
636         Check for L"str", L'str' using spec_nodes->n_L.
637         (spell_token): SPELL_IDENT tokens have their spelling in
638         val.node->name.  Handle SPELL_STRING tokens that don't have
639         string delimiters.
640         (_cpp_expand_name_space,
641         (can_paste): Check for L ## "str" using spec_nodes->n_L.
642         (cpp_get_token, special_symbol): No need to call cpp_lookup.
643         (cpp_idcmp): Now cpp_ideq; take a token * and a const char *;
644         return 1=equal 0=not, not a tristate.
645
646         * cpphash.c (var_args_str): Delete.
647         (find_param): Compare node fields directly.
648         (is__va_args__): Use CPP_PEDANTIC.  Just compare
649         token->val.node with spec_nodes->n__VA_ARGS__.
650         (dump_funlike_macro): Don't use var_args_str.
651
652         * cpplib.c (_cpp_check_directive): Just walk through
653         spec_nodes->dirs comparing pointers.
654         (get_define_node, do_pragma_poison, detect_if_not_defined,
655         parse_ifdef): The identifier has already been looked up.
656         (do_ifdef, do_ifndef): parse_ifdef won't return a poisoned
657         node.
658         (do_if): Only call detect_if_not_defined at beginning of file.
659         (_cpp_parse_assertion): Only copy string pointers for
660         SPELL_STRING tokens.
661         (pragma_dispatch): Take a node pointer and examine its name
662         field.
663         (_cpp_init_stacks): Also initialize the spec_nodes structure.
664
665         * cppinit.c (cpp_reader_init): Call _cpp_init_stacks after
666         _cpp_init_macros.
667         (cpp_cleanup): Free pfile->spec_nodes.  Call _cpp_cleanup_* in
668         reverse order from the corresponding _cpp_init_* routines.
669
670         * cppexp.c (parse_number, parse_charconst, parse_defined,
671         lex): Check val.node->type instead of calling cpp_defined.
672         Use spec_nodes entries where appropriate.
673
674         * fix-header.c, scan-decls.c: Update for interface changes.
675
676 2000-07-08  Geoffrey Keating  <geoffk@cygnus.com>
677
678         * config/rs6000/rs6000.c (rs6000_emit_move): Fix conditions for
679         emitting aux_truncdfsf2.
680
681 2000-07-03  Donn Terry  (donnte@microsoft.com)
682
683         * cppinit.c (print_help): split overlong line into ISO C89
684         maximum chunks.
685
686 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
687
688         * cppexp.c: Update all code for new lexer interface.
689         (op_t, operator codes, struct token, tokentab2, op_to_str): Remove.
690         (struct suffix, vsuf_1, vsuf_2, vsuf_3, op_to_prio): New.
691         * cpplex.c (token_names): Trim leading CPP_ from names; make
692         the strings unsigned.
693         (_cpp_spell_operator): New.
694         (is_macro_disabled): Disable all macros if rescanning
695         preprocessed text.
696         (_cpp_get_directive_token): Remove.
697
698         * cppinit.c: Don't set no_macro_expand.
699         * cpplib.c (read_line_number, do_line): Check only for EOF,
700         not VSPACE.
701         * cpphash.h: Update prototypes.
702         * cpplib.h (CPP_VSPACE): Remove.
703         (struct cpp_reader): Remove no_macro_expand.
704
705 2000-07-08  Neil Booth  <NeilB@earthling.net>
706
707         * cpphash.c (is__va_args__): New function.
708         (count_params): Fix line reported in error messages.  Use
709         is__va_args__.  Don't return ')' on error.  Flag GNU style
710         rest args macro definitions.
711         (parse_define): Check macro name is not __VA_ARGS__.
712         (save_expansion): Check identifier in non-varargs-macro is
713         not __VA_ARGS__.  Don't flag GNU_VARARGS.
714         * cpplex.c (parse_args): Accept no argument iff GNU_REST_ARGS.
715         (maybe_paste_with_next): Use per-macro GNU_REST_ARGS rather
716          than per-token GNU_VARARGS.
717         * cpplib.h (GNU_VARARGS): Remove.
718         (GNU_REST_ARGS): New.
719
720 Sat Jul  8 01:38:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
721
722         * i386.md (call_pop, call, call_value_pop): Do not set
723         current_function_uses_pic_offset_table for calls to static
724         functions or indirect calls.
725
726 2000-07-07  Jim Wilson  <wilson@cygnus.com>
727
728         * config/ia64/ia64.c (rws_access_reg): New local write_count.  If
729         is_predicate_reg, then take max write_count of register pair.
730
731 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
732
733         * tradcpp.c (main): Rename label `include' to `add_include' to
734         avoid conflicts with variable `include' in traditional C.
735
736 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
737
738         * integrate.c (copy_insn_list): Remove REG_LABEL notes.
739
740 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
741
742         * sibcall.c (uses_addressof): Add INMEM argument, check for
743         current_function_internal_arg_pointer outside of MEM rtxs in addition
744         to ADDRESSOFs.
745         (sequence_uses_addressof): Update caller.
746
747 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
748
749         * tradcpp.c (initialize_builtins): Honor NO_BUILTIN_SIZE_TYPE
750         and friends.
751
752 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
753
754         * system.h (UNION_INIT_ZERO): New macro for initializing union
755         members in structs.
756
757         * cpplex.c (placemarker_token, eof_token): Use UNION_INIT_ZERO.
758
759 2000-07-07  Neil Booth  <NeilB@earthling.net>
760
761         * cpp.texi: Update.
762
763 Fri Jul  7 07:47:35 2000  Jeffrey A Law  (law@cygnus.com)
764
765         * final.c (final): Detect out of bounds array access to
766         the insn_lengths array.
767
768 2000-07-07  Kazu Hirata  <kazu@hxi.com>
769
770         * fold-const.c (fold): Fix a comment typo.
771
772 2000-07-07  Neil Booth  <NeilB@earthling.net>
773
774         * cpp.texi: Update to new lexer.
775
776 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
777
778         * tradcpp.c: New file.
779         * tradcif.y: New file.
780         * tradcif.c: New generated file.
781
782         * Makefile.in: Add rules to build tradcpp.o, tradcif.o,
783         $(srcdir)/tradcif.c.  Add tradcpp to STAGESTUFF and
784         dependencies of C.  Install tradcpp from install-common, in
785         $(libsubdir).
786
787 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
788
789         * cppinit.c: Include cppdefault.h.  Refer to
790         cpp_GCC_INCLUDE_DIR and cpp_GCC_INCLUDE_DIR_len, not directly
791         to GCC_INCLUDE_DIR and its length.
792         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
793         USER_LABEL_PREFIX, REGISTER_PREFIX, struct default_include,
794         STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT):  Move to
795         cppdefault.h.
796         (include_defaults_array): Move to cppdefault.c.
797
798         * cppdefault.h: New file.
799         * cppdefault.c: New file.
800
801         * Makefile.in (LIBCPP_OBJS): Add cppdefault.o.
802         (cppinit.o): Don't apply $(PREPROCESSOR_DEFINES) to this file.
803         (cppdefault.o): New rule; apply $(PREPROCESSOR_DEFINES) to
804         this file.
805
806 Thu Jul  6 18:30:36 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
807
808         * reload.c (push_reload): When seeing if can reuse a register,
809         check extra registers against widest of INMODE and OUTMODE.
810
811 2000-07-06  Neil Booth  <NeilB@earthling.net>
812
813         * cpplib.c: (_cpp_parse_assertion):  Perform hash lookups
814         based on full length of predicate.
815
816 2000-07-06  Hans-Peter Nilsson  <hp@axis.com>
817
818         * timevar.c: [HAVE_SYS_RESOURCE_H]: Include <sys/resource.h>.
819         [NEED_DECLARATION_GETRUSAGE]: Declare getrusage.
820
821 2000-07-05  Kazu Hirata  <kazu@hxi.com>
822
823         * h8300-proto.h: Fix formatting.
824         * h8300.c: Likewise.
825         * h8300.h: Likewise.
826
827 2000-07-05  Jim Wilson  <wilson@cygnus.com>
828
829         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): If FR_REGNO_P, disallow
830         CCmode.
831
832 2000-07-05  Rodney Brown  <RodneyBrown@pmsc.com>
833
834         * invoke.texi: Fix minor typos
835         * md.texi: Fix minor typos
836
837 2000-07-05  Zack Weinberg  <zack@wolery.cumb.org>
838
839         * cpplib.c (_cpp_parse_assertion): Fix buffer overrun.
840
841 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
842
843         * cpplex.c: Don't include sys/mman.h.
844         (cpp_push_buffer, cpp_pop_buffer): Moved to cpplib.c.
845
846         * cpplib.c: Include sys/mman.h and obstack.h.
847         (cpp_push_buffer): Moved from cpplex.c; allocate buffers on an
848         obstack.
849         (cpp_pop_buffer): Moved from cpplex.c; free buffers from an obstack.
850         (_cpp_unwind_if_stack): Now static, unwind_if_stack.  Don't
851         bother freeing if stack entries (they will be freed with their buffer).
852         (do_endif): Free if stack entries from the buffer obstack.
853         (push_conditional): Allocate if stack entries from the buffer obstack.
854
855         (find_answer): Rename to _cpp_find_answer.
856         (do_assert, do_unassert): Update.
857
858         * cpphash.h: Update prototypes.
859         (xobnew): New convenience macro.
860         * cpplib.h (struct cpp_reader): Add hash_ob and buffer_ob fields.
861         Update comments.
862         (struct cpp_hashnode): Remove disabled field.
863
864         * cppinit.c: Don't include hashtab.h or splay-tree.h.
865         (report_missing_guard): Moved to cppfiles.c.
866         (cpp_reader_init): Call cpp_init_stacks, cpp_init_macros,
867         cpp_init_includes.
868         (cpp_cleanup): Call cpp_cleanup_stacks, cpp_cleanup_macros,
869         cpp_cleanup_includes.  Don't destroy hashtab or
870         all_include_files here.
871         (cpp_finish): Use _cpp_report_missing_guards.
872
873         * cppfiles.c (report_missing_guard): Moved from cppinit.c.
874         (_cpp_init_include_table): Rename _cpp_init_includes.
875         (_cpp_cleanup_includes, _cpp_report_missing_guards): New.
876
877         * cppexp.c (parse_assertion): Update for new name of
878         find_answer.
879
880         * Makefile.in (cpplib.o, cpphash.o, cppinit.o): Update deps.
881
882 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
883
884         * cpplib.c (do_ident): s/VSPACE/EOF/
885
886 2000-07-05  Neil Booth  <NeilB@earthling.net>
887
888         * cpplex.c: Fix trigraph replacement within strings.
889
890 2000-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
891
892         * rs6000/aix.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier.
893
894         * xcoffout.c (assign_type_number): Constify.
895         (xcoffout_source_file): Add static prototype.  Don't needlessly
896         cast away const-ness.
897
898 2000-07-04  Jason Merrill  <jason@redhat.com>
899
900         * frame.h (frame_state): Move base_offset to end.
901
902 Mon Jul  3 21:31:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
903
904         * calls.c (emit_library_call_value_1): Revert previous change.
905
906 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
907
908         * fix-header.c (struct partial_proto): Remove unnecessary fields.
909         (recognized_extern, recognized_function, read_scan_file):
910         Update for new scheme.
911         (check_protection): It's still a multiple include guard even
912         if it doesn't always trigger.
913         * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
914         new scheme.
915         * scan.h: Declare struct cpp_token.  Update prototypes.
916
917 2000-07-03  Neil Booth  <neilb@earthling.net>
918             Zack Weinberg  <zack@wolery.cumb.org>
919
920         Complete overhaul of the lexer and macro expander.
921
922         * cpphash.c (object_defn, funct_defn, push_macro_expansion,
923         arg, arglist, argdata, reflist, collect_objlike_expansion,
924         collect_funlike_expansion, collect_params,
925         warn_trad_stringify, trad_stringify, duplicate_arg_p, add_pat,
926         unsafe_chars, macarg, compare_defs, special_symbol,
927         scan_arguments, stringify, funlike_macroexpand,
928         _cpp_quote_string, monthnames): Delete.
929         (cpp_lookup, _cpp_free_definition, dump_funlike_macro,
930         _cpp_create_definition, _cpp_dump_definition,
931         dump_hash_helper): Adjust.
932         (find_param, count_params, parse_define, var_args_str,
933         check_macro_redefinition, save_expansion): New.
934
935         * cpplex.c (skip_block_comment, skip_line_comment, parse_name,
936         parse_string, output_line_command, trigraph_replace,
937         lex_line, cpp_push_buffer, cpp_pop_buffer, cpp_output_tokens,
938         cpp_scan_buffer_nooutput, cpp_scan_buffer, cpp_free_toklist,
939         cpp_idcmp, _cpp_get_directive_token, _cpp_init_input_buffer,
940         _cpp_skip_rest_of_line): Modify.
941
942         (maybe_macroexpand, skip_comment, copy_comment, skip_string,
943         find_position, null_warning, bump_column, expand_name_space,
944         pedantic_whitespace, _cpp_output_list, _cpp_slice_toklist,
945         _cpp_squeeze_toklist, _cpp_scan_until, _cpp_skip_hspace,
946         _cpp_parse_name, _cpp_lex_token, cpp_get_non_space_token,
947         _cpp_prescan): Delete.
948
949         (dump_param_spelling, process_directive, lex_next,
950         is_macro_disabled, stringify_arg, expand_context_stack,
951         output_token, make_string_token, alloc_number_token,
952         special_symbol, duplicate_token, maybe_paste_with_next,
953         can_paste, prevent_macro_expansion, restore_macro_expansion,
954         get_temp_token, release_temp_tokens, quote_string,
955         token_names, token_spellings, _cpp_expand_name_space,
956         _cpp_glue_header_name, _cpp_reserve_name_space,
957         digraph_spellings, trigraph_ok, skip_whitespace, save_comment,
958         placemarker_token, eof_token, cpp_context, macro_args,
959         get_raw_token, parse_arg, parse_args, save_token,
960         push_arg_context, push_macro_context, pop_context,
961         do_pop_context, free_macro_args, _cpp_get_line,
962         _cpp_run_directive): New.
963
964         * cpplib.c (validate_else, parse_include, push_conditional,
965         pass_thru_directive, read_line_number, parse_ifdef,
966         detect_if_not_defined, _cpp_check_directive, do_define,
967         do_undef, do_include, do_import, do_include_next, do_error,
968         do_warning, do_ident, do_pragma, pragma_dispatch, gcc_pragmas,
969         top_pragmas, do_pragma_gcc, do_pragma_implementation,
970         do_pragma_poison, do_pragma_system_header,
971         do_pragma_dependency, do_sccs, do_ifdef, do_ifndef, do_else,
972         dl_elif, do_endif, _cpp_unwind_if_stack, do_assert,
973         do_unassert, cpp_define, cpp_undef, cpp_assert, cpp_unassert,
974         cpp_defined): Update for new scheme.
975         (strtoul_for_line, get_define_node, dump_macro_name,
976         _cpp_check_linemarker, _cpp_parse_assertion): New.
977         (_cpp_handle_directive, do_pragma_default): Delete.
978
979         * cpphash.h (struct predicate): Now struct answer.
980         (enum spell_type, struct token_spelling, struct directive,
981         directive_handler): New.
982         Update prototypes.  Remove unused macros.
983         * cpplib.h: Update prototypes.  Remove unused macros,
984         structure definitions, and fields.
985
986         * cpperror.c (print_containing_files, v_message): Adjust.
987         * cppexp.c (parse_assertion, lex, parse_escape,
988         _cpp_parse_expr): Adjust.
989         * cppfiles.c (open_include_file, _cpp_execute_include,
990         _cpp_compare_file_date, cpp_read_file, read_include_file):
991         Adjust.
992         * cppinit.c (dump_special_to_buffer): Delete.
993         (append_include_chain, merge_include_chains, cpp_reader_init,
994         cpp_cleanup, initialize_builtins, builtin_array, cpp_start_read,
995         cpp_finish, handle_option, print_help): Adjust.
996         * cppmain.c (main): Adjust.
997
998 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
999
1000         * cppspec.c (lang_specific_driver): Use double quotes in error
1001         message.
1002
1003 Mon Jul  3 16:53:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
1004
1005         * calls.c (emit_library_call_value_1): Use valreg instead
1006         of hard_libcall_value.
1007
1008 2000-07-03  Geoff Keating  <geoffk@cygnus.com>
1009
1010         * config/rs6000/rs6000.c (rs6000_emit_move): New function.
1011         * config/rs6000/rs6000-proto.h: Prototype rs6000_emit_move.
1012         * config/rs6000/rs6000.md (movsi): Use rs6000_emit_move.
1013         (movhi): Likewise.
1014         (movqi): Likewise.
1015         (movdf): Likewise.
1016         (movsf): Likewise.
1017         (movdi): Likewise.
1018         (movti): Likewise.
1019
1020         * expmed.c (expand_mult_highpart): Use op1 instead of wide_op1 when
1021         mode instead of wider_mode is being used.
1022
1023 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
1024
1025         * config/i386/i386.md (movstrictqi_xor): Use 'q' constraint instead
1026         of 'r'. Use q_regs_operand.
1027         (andsi_1+2): Use q_regs_operand.
1028
1029 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
1030
1031         * builtins.c (get_memory_rtx): Always put into alias set 0.
1032
1033 2000-07-03  Nick Clifton  <nickc@cygnus.com>
1034
1035         * config/arm/arm.md: Fix post increment and pre increment
1036         peepholes so that they do not generate UNPREDICATBLE opcodes.
1037         (ie ones where the increment clobbers the source/destination).
1038
1039 2000-07-01  Marek Michalkiewicz  <marekm@linux.org.pl>
1040
1041         * config/avr/avr.c (out_adj_frame_ptr): Make "frame pointer
1042         change too big for -mtiny-stack" a warning, if larger than 63.
1043         (out_set_stack_ptr): Change the logic so -mno-interrupts is
1044         always safe to use on possible future devices.
1045         (function_prologue): Write SPH before SPL, for consistency.
1046         If interrupt_func_p true, we know we have enabled interrupts.
1047         (avr_num_arg_regs): New function.  Round up to even number of
1048         bytes if no -mpack-args or if calling a libgcc function.
1049         (function_arg, function_arg_advance): Use it.
1050         (output_movsisf, ashlsi3_out, ashrsi3_out, lshrsi3_out):
1051         Output "movw" if available.
1052         (out_tsthi, out_tstsi, ashlqi3_out, lshrqi3_out): Change uses
1053         of TEST_HARD_REG_CLASS macro to test_hard_reg_class function.
1054         (asm_output_section_name): Add blanks for consistent output.
1055         (encode_section_info): Set TREE_READONLY for progmem data to
1056         avoid gas warnings about changed section attributes.
1057         (avr_hard_regno_mode_ok): Force non-QImode data to start in
1058         even numbered registers on devices with "movw".
1059         * config/avr/avr.h (MASK_*): Define bits for target_flags.
1060         (TARGET_SWITCHES): Mark help strings for translation.
1061         Add new -mpack-args and -menhanced switches.
1062         (TARGET_OPTIONS): Mark help strings for translation.
1063         (progmem_section): Add section attributes.
1064         * config/avr/avr.md (*movhi, call_insn, call_value_insn):
1065         Output "movw" if available.
1066         (mulqi3, mulqihi3, umulqihi3, mulhi3, *tablejump_enh):
1067         New patterns.
1068         * config/avr/libgcc.S (_mulqi3, _divqi3): Update to the new
1069         call convention (arguments aligned on even registers).
1070         (_cleanup, _exit): Make weak symbols libc can override.
1071
1072 2000-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1073
1074         * fp-bit.h: New file.
1075
1076         * fp-bit.c: Move common code, prototypes, etc into fp-bit.h.
1077         Comment #endif statements.
1078         (__thenan_sf, __thenan_df): Add missing braces around initializer.
1079
1080 Mon Jul  3 00:32:47 2000  Jeffrey A Law  (law@cygnus.com)
1081
1082         * gcse.c (compute_pre_data): Compute ae_kill using other local
1083         properties instead of calling compute_ae_kill.
1084
1085         * alias.c (init_alias_analysis): Do not call
1086         prologue_epilogue_contains until after reload has completed.
1087
1088 2000-07-02  Benjamin Chelf  <chelf@codesourcery.com>
1089
1090         * c-common.h (genrtl_begin_compound_stmt): Remove declaration.
1091         (genrtl_finish_compound_stmt): Likewise.
1092         (genrtl_compound_stmt): Change to return void.
1093
1094         * c-semantics.c (genrtl_begin_compound_stmt): Remove function and
1095         move code from here to ...
1096         (genrtl_compound_stmt): ... here.
1097         (genrtl_finish_compound_stmt): Remove.
1098         (expand_stmt): Add comment.
1099
1100 2000-07-02  Zack Weinberg  <zack@wolery.cumb.org>
1101
1102         * c-typeck.c (build_indirect_ref): Use COMPLETE_OR_VOID_TYPE_P
1103         and VOID_TYPE_P.
1104
1105 2000-07-02  Jakub Jelinek  <jakub@redhat.com>
1106
1107         * cpplib.h (struct cpp_reader): New field include_depth.
1108         (struct cpp_printer): Rename last_bsd to last_id.
1109         * cppfiles.c (read_include_file): Bump include_depth.
1110         * cpplex.c (cpp_pop_buffer): Decrement include_depth.
1111         (output_line_command): Output correct #line if a header
1112         is including itself and is not protected against multiple inclusion.
1113         Use include_depth instead of buffer_stack_depth, last_id instead of
1114         last_bsd.
1115         * cppinit.c (cpp_start_read): Initialize last_id instead of
1116         last_bsd.
1117
1118 2000-07-01  Benjamin Chelf  <chelf@codesourcery.com>
1119
1120         * Makefile.in (C_AND_OBJC_OBJS): Added c-semantics.o.
1121         (c-semantics.o): New target.
1122
1123         * c-common.h (TREE_LANG_FLAG_?): Added documentation.
1124         (genrtl_do_pushlevel): Moved from cp/cp-tree.h.
1125         (genrtl_clear_out_block): Likewise.
1126         (genrtl_goto_stmt): Likewise.
1127         (genrtl_expr_stmt): Likewise.
1128         (genrtl_decl_stmt): Likewise.
1129         (genrtl_if_stmt): Likewise.
1130         (genrtl_while_stmt): Likewise.
1131         (genrtl_do_stmt): Likewise.
1132         (genrtl_return_stmt): Likewise.
1133         (genrtl_for_stmt): Likewise.
1134         (genrtl_break_stmt): Likewise.
1135         (genrtl_continue_stmt): Likewise.
1136         (genrtl_scope_stmt): Likewise.
1137         (genrtl_switch_stmt): Likewise.
1138         (genrtl_case_label): Likewise.
1139         (genrtl_begin_compound_stmt): Likewise.
1140         (gerntl_finish_compound_stmt): Likewise.
1141         (genrtl_compound_stmt): Likewise.
1142         (genrtl_asm_stmt): Likewise.
1143         (genrtl_decl_cleanup): Likewise.
1144         (DECL_ANON_UNION_ELEMS): Likewise.
1145         (emit_local_var): Likewise.
1146         (make_rtl_for_local_static): Likewise.
1147         (expand_cond): Likewise.
1148         (expand_stmt): Likewise.
1149         (c_expand_return): Likewise.
1150         (c_expand_start_case): Likewise.
1151         (do_case): Likewise.
1152         (COMPOUND_STMT_NO_SCOPE): Likewise.
1153         (c_expand_asm_operands): Likewise.
1154         (NEW_FOR_SCOPE_P): New macro.
1155         (expand_expr_stmt_fn): New type.
1156
1157         (set_current_function_name_declared): Likewise.
1158         (current_function_name_declared): Likewise.
1159         (lang_expand_stmt): Likewise.
1160         (stmts_are_full_exprs_p): Likewise.
1161         (anon_aggr_type_p): Likewise.
1162         (lang_expand_expr_stmt): Likewise.
1163         (build_case_label): Likewise.
1164
1165         * c-decl.c (lang_expand_expr_stmt): Initialize.
1166         (stmts_are_full_exprs_p): Define.
1167         (current_function_name_declared): Likewise.
1168         (do_case): Likewise.
1169         (lang_expand_stmt): Likewise.
1170         (set_current_function_name_declared): Likewise.
1171         (anon_aggr_type_p): Likewise.
1172
1173         * c-semantics.c: New file.
1174         (expand_cond): Moved from cp/semantics.c.
1175         (genrtl_do_pushlevel): Likewise.
1176         (genrtl_clear_out_block): Likewise.
1177         (genrtl_goto_stmt): Likewise.
1178         (genrtl_expr_stmt): Likewise.
1179         (genrtl_decl_stmt): Likewise.
1180         (genrtl_if_stmt): Likewise.
1181         (genrtl_while_stmt): Likewise.
1182         (genrtl_do_stmt): Likewise.
1183         (genrtl_return_stmt): Likewise.
1184         (genrtl_for_stmt): Likewise.
1185         (genrtl_break_stmt): Likewise.
1186         (genrtl_continue_stmt): Likewise.
1187         (genrtl_scope_stmt): Likewise.
1188         (genrtl_switch_stmt): Likewise.
1189         (genrtl_case_label): Likewise.
1190         (genrtl_begin_compound_stmt): Likewise.
1191         (genrtl_finish_compound_stmt): Likewise.
1192         (genrtl_compound_stmt): Likewise.
1193         (genrtl_asm_stmt): Likewise.
1194         (genrtl_decl_cleanup): Likewise.
1195         (make_rtl_for_local_static): Moved from cp/decl.c.
1196         (emit_local_var): Likewise.
1197         (expand_stmt): Define.
1198
1199         * c-tree.h: (c_expand_asm_operands): Moved to c-common.h.
1200         (c_expand_return): Likewise.
1201         (c_expand_start_case): Likewise.
1202
1203 2000-07-01  Richard Henderson  <rth@cygnus.com>
1204
1205         * config/ia64/ia64.c (symbolic_operand): Reject CONST expressions
1206         with the low 13 bits set.
1207         (move_operand): Check for CONST|SYMBOL_REF|LABEL_REF directly.
1208         * config/ia64/ia64.md (movdi): Likewise.  Expand a CONST with one
1209         of the low 13 bits into a CONST plus an adddi3.
1210         (load_symptr): Set RTX_UNCHANGING_P.
1211
1212 2000-06-30  Mark Mitchell  <mark@codesourcery.com>
1213
1214         * Makefile.in (c-common.o): Don't depend on c-tree.h or c-lex.h.
1215         * c-common.c (ridpointers): Declare.
1216         * c-common.h (enum rid): Declare.
1217         (NORID): Likewise.
1218         (ridpointers): Likewise.
1219         * c-lex.c (ridpointers): Don't declare.
1220         (init_lex): Initialize ridpointers.
1221         * c-lex.h (enum rid): Don't declare.
1222         (NORID): Likewise.
1223         (RID_FIRST_MODIFIER): Likewise.
1224         (ridpointers): Likewise.
1225
1226 2000-06-30  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1227
1228         * pa/som.h (ASM_WEAKEN_LABEL): Export weak data symbols so that they
1229         have global scope.
1230
1231 2000-06-30  Martin von Loewis  <loewis@informatik.hu-berlin.de>
1232
1233         * invoke.texi (-Wreturn-type): In C++, a missing return type is
1234         always an error.
1235
1236 2000-06-30  Catherine Moore  <clm@cygnus.com>
1237
1238         * c-common.c (decl_attributes):  Differentiate between
1239         types and type decls for alignment.
1240
1241 2000-06-30  Nathan Sidwell  <nathan@codesourcery.com>
1242
1243         * cpp.texi: Document #pragma GCC dependency
1244         * cppfiles.c (open_include_file): Set date to unknown.
1245         (_cpp_compare_file_date): New function.
1246         (read_include_file): Set file date.
1247         * cpphash.h (struct include_file): Add date member.
1248         (_cpp_compare_file_date): Prototype.
1249         * cpplib.c (parse_include): Add trail parameter. Adjust.
1250         (do_include): Adjust parse_include call.
1251         (do_import): Likewise.
1252         (do_include_next): Likewise.
1253         (gcc_pragmas): Add dependency pragma.
1254         (do_pragma_dependancy): New pragma.
1255
1256 2000-06-29  Jason Merrill  <jason@redhat.com>
1257
1258         * dwarf2out.c (output_loc_operands): Don't abort on codes that have
1259         no operands.
1260
1261 2000-06-29  Jim Wilson  <wilson@cygnus.com>
1262
1263         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Return NO_REGS for
1264         a volatile mem and FR_REGS.
1265
1266 2000-06-29  Mark Mitchell  <mark@codesourcery.com>
1267
1268         * c-common.c: Include c-common.h, not c-lex.h or c-tree.h.
1269         * c-common.h (flag_const_strings): Declare.
1270         (warn_format): Likewise.
1271         (flag_traditional): Likewise.
1272         (flag_isoc99): Likewise.
1273         (warn_parentheses): Likewise.
1274         (warn_conversion): Likewise.
1275         (C_TYPE_OBJECT_P): Likewise.
1276         (C_TYPE_INCOMPLETE_P): Likewise.
1277         (C_TYPE_FUNCTION_P): Likewise.
1278         (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
1279         (C_EXP_ORIGINAL_CODE): Likewise.
1280         (build_unary_op): Likewise.
1281         (build_binary_op): Likewise.
1282         (lvalue_p): Likewise.
1283         (default_conversion): Likewise.
1284         (common_type): Likewise.
1285         * c-tree.h (C_TYPE_OBJECT_P): Remove.
1286         (C_TYPE_INCOMPLETE_P): Likewise.
1287         (C_TYPE_FUNCTION_P): Likewise.
1288         (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
1289         (C_EXP_ORIGINAL_CODE): Likewise.
1290         (common_type): Likewise.
1291         (default_conversion): Likewise.
1292         (build_binary_op): Likewise.
1293         (build_unary_op): Likewise.
1294         (lvalue_p): Likewise.
1295         (flag_const_strings): Likewise.
1296         (warn_format): Likewise.
1297         (warn_conversion): Likewise.
1298         (flag_traditional): Likewise.
1299         (flag_isoc99): Likewise.
1300         (warn_parentheses): Likewise.
1301
1302 2000-06-29  James E. Wilson  <wilson@cygnus.com>
1303
1304         * config/ia64/linux.h (LINK_SPEC): Change so.1 to so.2.
1305
1306         * config/ia64/ia64.h (MODES_TIEABLE_P): Only tie if mode class is the
1307         same.  Only tie XFmode with XFmode.
1308
1309 2000-06-29  Zack Weinberg  <zack@wolery.cumb.org>
1310
1311         * c-decl.c, timevar.c, tlink.c: Include intl.h.
1312         * Makefile.in: Update deps.
1313
1314 2000-06-29  Andrew Haley  <aph@cygnus.com>
1315
1316         * toplev.c (main): On an IA-64, make flag_unwind_tables defauit
1317         to true.
1318
1319 2000-06-29  Andrew Haley  <aph@cygnus.com>
1320
1321         * config/ia64/linux.h (JMP_BUF_SIZE): Size is in Pmode units, not
1322         bytes: remove the multiply by 8.
1323
1324 2000-06-29  Philipp Thomas  <pthomas@suse.de>
1325
1326         * rtl.c : Revert NLS changes.
1327         * gcc.c : Fix bug in display_help introced by my last changes.
1328
1329 Wed Jun 28 21:09:33 2000   Raja R Harinath <harinath@cs.umn.edu>
1330
1331         * dbxout.c (dbxout_symbol, case RESULT_DECL, VAR_DECL): Use
1332         DECL_CONTEXT, not DECL_FIELD_CONTEXT.
1333
1334 2000-06-29  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1335
1336         * flow.c (flow_depth_first_order_compute): Fix algorithm.
1337
1338 2000-06-28  Philipp Thomas  <pthomas@suse.de>
1339
1340         * c-decl.c : Mark strings for translation.
1341         (parmlist_tags_warning): Use distinct messages instead
1342         of conditional expressions.
1343         * diagnostic.c (v_message_with_decl): Mark string for translation.
1344         * gcc.c: Mark messages for translation.
1345         (display_help): Combine messages into one string where necessary.
1346         * mips-tfile: Add intl.h. Mark messages for translation.
1347         * rtl.c (fatal_with_file_and_line): Modify function for NLS. Mark
1348         messages for translation.
1349         * timevar.c: Mark messages for translation.
1350         * tlink.c: Likewise.
1351         * toplev.c: Likewise.
1352
1353 Wed Jun 28 15:39:26 2000  Donn Terry (donnte@microsoft.com)
1354
1355         * i386-interix.h (STRIP_NAME_ENCODING): Declare _new_name properly.
1356
1357         * alpha/alpha-interix.h: Delete redundant -Asystem(interix),
1358         use -isystem instead of -idirafter.
1359         * i386/i386-interix.h: Likewise.
1360
1361 2000-06-28  Jason Merrill  <jason@redhat.com>
1362
1363         * dwarf2out.c (output_loc_operands): Don't support >1 byte output
1364         unless DWARF2_DEBUGGING_INFO is defined.
1365         (ASM_OUTPUT_DWARF_*): Wrap normal output defs with #ifndefs.
1366
1367 2000-06-28  Richard Henderson  <rth@cygnus.com>
1368
1369         * config/alpha/alpha.c (summarize_insn): Ignore SCRATCH.
1370
1371 2000-06-28  Jakub Jelinek  <jakub@redhat.com>
1372
1373         * cpplex.c (output_line_command): Output correct #line if a header
1374         is including itself and is not protected against multiple inclusion.
1375
1376 2000-06-28  Zack Weinberg  <zack@wolery.cumb.org>
1377
1378         * cppfiles.c (open_include_file): If open(2) returns EMFILE or
1379         ENFILE, close all cached file descriptors and try again.
1380         (_cpp_execute_include): Keep a count of the number of times
1381         each header is included.
1382         (close_cached_fd): New function.
1383         * cpphash.h (struct include_file): Rename before to
1384         include_count; all users updated.  Make include_count and sysp
1385         unsigned short.
1386         * cppinit.c (cpp_finish): If -H, report headers that could use
1387         reinclude guards.
1388         (report_missing_guard): New function.
1389
1390 Wed Jun 28 14:46:58 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1391
1392         * i386.md (prologue_set_got): Set length_immediate field.
1393         (testqi_ccno_1):  Add missing '@' character.
1394
1395 2000-06-27  Jason Merrill  <jason@redhat.com>
1396
1397         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Use
1398         DWARF_FRAME_REGNUM.
1399
1400 2000-06-27  Andrew Macleod <amacleod@cygnus.com>
1401
1402         * dwarf2out.c (ASM_OUTPUT_DWARF_DATA2): Provide default when no
1403         unsigned macros available.
1404
1405 2000-06-27  Richard Henderson  <rth@cygnus.com>
1406
1407         * config/ia64/ia64.c (emit_insn_group_barriers): Special case
1408         epilogue_deallocate_stack.
1409
1410         * config/ia64/ia64.c (ia64_print_operand) [case D]: Emit
1411         completers for UNORDERED and ORDERED as well.
1412         * config/ia64/ia64.md (bunordered, bordered): New.
1413         (sunordered, sordered): New.
1414
1415 Tue Jun 27 12:14:12 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1416
1417         * genattrtab.c (write_attr_value): Do not abort for CONST_INT operands.
1418         * i386.c (ix86_attr_length_default): Kill.
1419         (ix86_attr_length_immediate_default, ix86_attr_length_address_default):
1420         New.
1421         * i386-protos.h (ix86_attr_length_default): Kill
1422         (ix86_attr_length_immediate_default, ix86_attr_length_address_default):
1423         Add prototype
1424         * i386.md (attribute type): Add "test".
1425         (attribute length_prefix): Kill.
1426         (attribute length_opcode): Kill.
1427         (attribute i387, mode, length_immediate, length_address, prefix_data16,
1428         prefix_rep, prefix_0f, modrm): New.
1429         (attribute length): Compute using the new attributes.
1430         (attribute pent_prefix): New.
1431         (attribute pent_pair): Compute using pent_prefix.
1432         (all insn patterns): Set mode,modrm and immediate_length attributes where
1433         needed.
1434         (cmpsi patterns): Compute sizes propertly for test instruction.
1435         (movsi, movhi patterns): Compute sizes propertly for eax shortcuts.
1436         (movstricthi_xor, movstrictqi_xor): New patterns.
1437         (andsi/andhi): Use splitters to generate xor instructions.
1438         (xorqi_ext_1): New pattern.
1439         (movstricthi->movstricthi_xor peep2): New.
1440
1441 Tue Jun 27 12:03:03 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1442
1443         * i386.md (addqi_low_1): Remove.
1444
1445 2000-06-27  Philipp Thomas  <pthomas@suse.de>
1446
1447         * 1750a.h: Mark help strings for options/switches for translation.
1448         * a29k.h: Likewise.
1449         * alpha.h: Likewise.
1450         * arm.h: Likewise.
1451         * pe.h: Likewise.
1452         * riscix.h: Likewise.
1453         * c4x.h: Likewise.
1454         * clipper.h: Likewise.
1455         * convex.h: Likewise.
1456         * elxsi.h: Likewise.
1457         * fr30.h: Likewise.
1458         * fx80.h: Likewise.
1459         * h8300.h: Likewise.
1460         * i370.h: Likewise.
1461         * cygwin.h: Likewise.
1462         * dgux.h: Likewise.
1463         * djgpp.h: Likewise.
1464         * i386.h: Likewise.
1465         * osf1elf.h: Likewise.
1466         * osfrose.h: Likewise.
1467         * sco5.h: Likewise.
1468         * win32.h: Likewise.
1469         * i860.h: Likewise.
1470         * paragon.h: Likewise.
1471         * i960.h: Likewise.
1472         * ia64.h: Likewise.
1473         * m32r.h: Likewise.
1474         * mcore.h: Likewise.
1475         * mips.h: Likewise.
1476         * mn10300.h: Likewise.
1477         * ns32k.h: Likewise.
1478         * pdp11.h: Likewise.
1479         * pj.h: Likewise.
1480         * aix.h: Likewise.
1481         * aix41.h: Likewise.
1482         * aix43.h: Likewise.
1483         * beos.h: Likewise.
1484         * rs6000.h: Likewise.
1485         * sysv4.h: Likewise.
1486         * linux.h: Likewise.
1487         * linux64.h: Likewise.
1488         * sp64-elf.h: Likewise.
1489         * sparc.h: Likewise.
1490         * splet.h: Likewise.
1491         * v850.h: Likewise.
1492         * convex.h (TARGET_SWITCHES): Provide descriptions and mark them
1493         for translation.
1494         * sp86x-aout.h: Remove bogus first definition of SUBTARGET_SWITCHES.
1495         Properly document option and mark for translation.
1496         * sp86x-elf.h: Likewise.
1497
1498 2000-06-27  Bernd Schmidt  <bernds@cygnus.co.uk>
1499
1500         Add MMX and SSE registers to i386 machine description.
1501         * i386-protos.h (ix86_constant_alignment, ix86_data_alignment,
1502         ix86_local_alignment): Declare.
1503
1504         * i386.h (TARGET_MMX, TARGET_SSE): New.
1505         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS,
1506         REG_ALLOC_ORDER, HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
1507         REG_CLASS_NAMES, REG_CLASS_CONTENTS,REG_CLASS_FROM_LETTER,
1508         enum reg_class, HI_REGISTER_NAMES): Added MMX/SSE registers.
1509         (FIRST_SSE_REG, LAST_SSE_REG, SSE_REGNO_P): New.
1510         (FIRST_MMX_REG, LAST_MMX_REG, MMX_REGNO_P, MMX_REG_P): New macros.
1511         (RETURN_IN_MEMORY): Handle MMX/SSE.
1512         (REG_PARM_STACK_SPACE): Added so the first three TImode parameters
1513         also get stack space.
1514         (MUST_PASS_IN_STACK): Added TImode to the default definition.
1515         (CUMULATIVE_ARGS): Added sse_nregs, sse_regno and sse_words.
1516         (MMX_REGISTER_NAMES): New.
1517         (ALIGN_MODE_128): New macro.
1518         (CONSTANT_ALIGNMENT): Code moved out-of-line; just call the function.
1519         (DATA_ALIGNMENT): Likewise.
1520         (LOCAL_ALIGNMENT): Likewise.
1521         (CONDITIONAL_REGISTER_USAGE): Make MMX/SSE regs fixed if not
1522         TARGET_MMX/TARGET_SSE.
1523         (VALID_SSE_REG_MODE, VALID_MMX_REG_MODE): New macros.
1524         (REG_CLASS_FROM_LETTER): 'y' for MMX regs.
1525         (SECONDARY_MEMORY_NEEDED): Be conservative about copying between
1526         SSE/MMX regs and something else.
1527         (CLASS_MAX_NREGS): 1 for SSE and MMX regs.
1528         (REGISTER_MOVE_COST): 10 if trying to move between MMX and SSE regs,
1529         3 if moving between MMX regs and something else.
1530
1531         * i386.c (reg_class): Add SSE_REGS, MMX_REGS.
1532         (regclass_map): Add MMX/SSE registers.
1533         (print_operand): Add code to print XMMWORD as appropriate.
1534         (ix86_split_movdi): Abort for MMX regs.
1535         (init_cumulative_args): Also allow SSE_REGS
1536         (function_arg_advance, function_arg): Likewise
1537         (print_reg): Support 'm'.  Add case for TImode.
1538         (override_options): TARGET_SSE implies TARGET_MMX.
1539         (ix86_constant_alignment, ix86_data_alignment, ix86_local_alignment):
1540         New functions.
1541
1542         * config/i386/unix.h (VALUE_REGNO): VECTOR_MODE values go to
1543         FIRST_SSE_REG.
1544         * config/i386/ptx4-i.h (RETURN_IN_MEMORY): Return MMX values in
1545         memory.
1546         * config/i386/sysv4.h (RETURN_IN_MEMORY): Likewise.
1547         * config/i386/i386elf.h (RETURN_IN_MEMORY): Likewise.
1548
1549 2000-06-26  Geoff Keating  <geoffk@cygnus.com>
1550
1551         * ssa.c (struct rename_set_data): Change the name of field
1552         'set_dest' to 'old_reg'.  Add comments.
1553         (struct rename_context): Change the name of 'set_data' to
1554         'new_renames'.  Add new field 'done_renames'.
1555         (create_delayed_rename): New function.
1556         (apply_delayed_renames): New function.
1557         (rename_insn_1): Use the new functions.  Handle CLOBBERS.  Handle
1558         SUBREGs and similar by emitting a move.
1559         (new_registers_for_updates): Delete, functionality moved to
1560         apply_delayed_renames.
1561         (rename_block): Handle moves emitted by rename_insn_1 by putting
1562         them into a SEQUENCE with the original insn.  Add sanity checks
1563         and comments.
1564         (rename_equivalent_regs_in_insn): Don't handle SUBREGs specially.
1565         (rename_equivalent_regs): Expand SEQUENCEs out to individual insns.
1566
1567 2000-06-26  Andrew Macleod <amacleod@cygnus.com>
1568             Jason Merrill <jason@redhat.com>
1569
1570         * dwarf2.h (enum dwarf_call_frame_info): Add
1571         DW_CFA_def_cfa_expression.
1572         * dwarf2out.c (union dw_cfi_oprnd_struct): Add a pointer to a
1573         dw_loc_descr_struct entry.
1574         (struct cfa_loc): New structure to track a CFA location.
1575         (lookup_cfa): Take a cfa_loc parameter instead of a reg and an offset.
1576         (lookup_cfa_1): Take a cfa_loc parameter instead of a reg and an
1577         offset, plus handle DW_CFA_def_cfa_expression.
1578         (def_cfa_1): Use to be dwarf2out_def_cfa, only now it uses a
1579         cfa_loc record.
1580         (dwarf2out_def_cfa): Entry point maintained for compatability.
1581         (dwarf_cfi_name): Add DW_CFA_def_cfa_expression.
1582         (cfa_reg, cfa_offset): Replace with cfa_loc record 'cfa'.
1583         (cfa_store_reg, cfa_store_offset): Replace with cfa_loc 'cfa_store'.
1584         (initial_return_save, dwarf2out_stack_adjust): Use cfa.reg, not
1585         cfa_reg.
1586         (dwarf2out_frame_debug_expr): Use new cfa_loc records. Recognize rtl
1587         sequences for the new DW_CFA_def_cfa_expression record.
1588         (dwarf2out_frame_debug): Use new variables/fields.A
1589         (output_cfi): Handle DW_CFA_def_cfa_expression.
1590         (output_cfa_loc): New function to generate a CFI record for
1591         DW_CFA_def_cfa_expression.
1592         (get_cfa_from_loc_descr): New function to get a cfa_loc record from
1593         a dw_loc_descr sequeunce.
1594         (build_loc_descr): Build a dw_loc_descr from a cfa_loc record.
1595         (dwarf_stack_op_name, new_loc_descr, add_loc_descr, size_of_loc_descr,
1596         size_of_locs, output_loc_operands, output_loc_sequence): Move into
1597         unwind info section.
1598         * frame.h (frame_state): Add base_offset and indirect fields.
1599         * frame-dwarf2.c (decode_stack_op): New function to interpret a
1600         dw_loc_descr operation.
1601         (execute_cfa_insn): Add support for DW_CFA_def_cfa_expression.
1602         (struct frame_state): Add base offset and indirect fields.
1603         * libgcc2.c (next_stack_level): Support indirect loading for CFA.
1604
1605 2000-06-26  Joseph S. Myers  <jsm28@cam.ac.uk>
1606
1607         * c-decl.c (grokdeclarator): Don't warn about `long long' in C99.
1608         Make warnings about implicit int be pedwarns in C99.  Don't warn
1609         about duplicate type qualifiers in C99.
1610         (start_function): Make warning about implict int return type be a
1611         pedwarn in C99.
1612         * c-lex.c (yylex): Don't warn about `long long' in C99.
1613         * c-typeck.c (c_expand_return): In C99, always pedwarn about
1614         `return' with no value in function returning non-void.
1615
1616 2000-06-26  Richard Henderson  <rth@cygnus.com>
1617
1618         * c-typeck.c (pedwarn_c99): New.
1619         * diagnostic.c (verror, vwarning, vpedwarn): Export.
1620         * toplev.h: Prototype them.
1621
1622 2000-06-26  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1623
1624         * c-typeck.c (digest_init): Return error_mark_node node when
1625         TREE_TYPE (init)  == error_mark_node.
1626
1627 2000-06-26  Philipp Thomas  <pthomas@suse.de>
1628
1629         * aclocal.m4 (AM_WITH_NLS): Don't set MSGFMT or GMSGFMT to no,
1630         test for msgfmt without path instead.
1631         * configure: Rebuilt.
1632
1633 2000-06-25 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
1634
1635         * gengenrtl.c (special_rtx): Fix typo in comment.
1636
1637 2000-06-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1638
1639         * mklibgcc.in (LIB2FUNCS): Add missing space.
1640
1641 2000-06-24  Bernd Schmidt  <bernds@cygnus.co.uk>
1642
1643         * tree.h (enum tree_index): Add vector type nodes.
1644         Add accessor macros for them.
1645         (TYPE_REPRESENATION_TYPE): New macro.
1646         * tree.c (build_common_tree_nodes_2): Build these nodes.
1647         (finish_vector_type): New function.
1648         * c-common.c (type_for_mode): Handle vector modes.
1649         * tm.texi (VECTOR_MODE_SUPPORTED_P): Document.
1650
1651         * dbxout.c (dbxout_type): Handle VECTOR_TYPEs.
1652         * dwarf.h (enum dwarf_fundamental_type): Add 128 bit integers.
1653         * dwarf2out.c (lookup_type_die): Handle VECTOR_TYPEs.
1654         (gen_type_die): Likewise.
1655         * dwarfout.c (dwarf_fund_type_name): Handle 128 bit integers.
1656         (fundamental_type_code): Likewise.
1657         (type_is_fundamental): VECTOR_TYPEs aren't.
1658         (output_type): Handle VECTOR_TYPEs.
1659
1660 2000-06-25  Kazu Hirata  <kazu@hxi.com>
1661
1662         * config/arm.c: Fix a comment typo.
1663         * config/arm.h: Likewise.
1664
1665 2000-06-25  Philipp Thomas  <pthomas@suse.de>
1666
1667         * aclocal.m4 (AM_WITH_NLS): Set create_catalogs=no if no catalog
1668         compiler found.
1669         AM_GNU_GETTEXT: Don't set CATALOGS if create_catalogs=no.
1670         * configure: Rebuilt.
1671
1672 2000-06-25  John David Anglin  <dave.anglin@nrc.ca>
1673
1674         * config/vax/vax.h (TARGET_SWITCHES): Provide descriptions.
1675
1676 2000-06-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1677
1678         * mklibgcc.in: Prefer LIB1ASMFUNCS over LIB2FUNCS when generating
1679         libgcc.a.
1680
1681 2000-06-24  Marc Espie <espie@cvs.openbsd.org>
1682
1683         * collect2.c (resolve_lib_name): Move '/' check out of loop.
1684
1685 2000-06-24  Dirk Duellmann  <Dirk.Duellmann@cern.ch>
1686
1687         * ginclude/stddef.h (NULL): define for non-gnu C++ parsers as 0.
1688
1689 2000-06-24  Jakub Jelinek  <jakub@redhat.com>
1690
1691         * stmt.c (expand_decl_cleanup): Emit a dummy insn after
1692         last_unconditional_cleanup.
1693
1694 2000-06-24  Bernd Schmidt  <bernds@cygnus.co.uk>
1695
1696         * tree.def (VECTOR_TYPE): New node type.
1697         * tree.h: Adjust some comments to reflect addition of vector types.
1698         (TYPE_VECTOR_SUBPARTS): New macro.
1699         * stor-layout.c (layout_type): Handle VECTOR_TYPE.
1700         * c-convert.c (convert): Likewise.
1701         * convert.c (convert_to_integer): Handle vector modes.
1702         (convert_to_vector): New function.
1703         * convert.h (convert_to_vector): Declare.
1704         * expr.c (convert_move): Handle vector modes.
1705         * expmed.c (extract_bit_field): Don't abort for vector modes.
1706
1707 2000-06-24  Marek Michalkiewicz  <marekm@linux.org.pl>
1708
1709         * config/avr/avr-protos.h (avr_hard_regno_mode_ok): New prototype.
1710         * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr):
1711         New functions, common code moved from function_{prologue,epilogue}
1712         and extended to support the -mtiny-stack option.
1713         (function_prologue, function_epilogue): Use them.
1714         Use lo8/hi8 consistently for asm output readability.
1715         (avr_hard_regno_mode_ok): New function.
1716         * config/avr/avr.h (TARGET_SWITCHES): Fix typo.  Add -mtiny-stack.
1717         (UNITS_PER_WORD): Define as 4 (not 1) when compiling libgcc2.c.
1718         (HARD_REGNO_MODE_OK): Call the avr_hard_regno_mode_ok function.
1719         * config/avr/avr.md (*mov_sp_r): Add support for -mtiny-stack.
1720         Write SPH before SPL.
1721         (*movqi): No need to disable interrupts for just one "out"
1722         in alternative 5.  Change length attribute from 4 to 1.
1723         * config/avr/libgcc.S (__prologue_saves__, __epilogue_restores__):
1724         Write SPH before SPL.
1725
1726 2000-06-24  Bernd Schmidt  <bernds@cygnus.co.uk>
1727
1728         * rtl.texi (Vector Operations): New node.
1729         (Arithmetic): Add ss_plus, us_plus, ss_minus, us_minus.
1730         (Conversions): Add ss_truncate, us_truncate.
1731         * rtl.def (VEC_MERGE, VEC_SELECT, VEC_CONCAT, VEC_REORDER,
1732         VEC_CONST, VEC_DUPLICATE, SS_PLUS, SS_MINUS, SS_TRUNCATE,
1733         US_TRUNCATE): New rtx codes.
1734         * machmode.def: Add vector modes.
1735         * machmode.h (enum mode_class): Add MODE_VECTOR_INT and
1736         MODE_VECTOR_FLOAT.
1737         (INTEGER_MODE_P): Check for MODE_VECTOR_INT.
1738         (FLOAT_MODE_P): Check for MODE_VECTOR_FLOAT.
1739         (VECTOR_MODE_P): New.
1740
1741 2000-06-24  Nathan Sidwell  <nathan@codesourcery.com>
1742
1743         * cpp.texi: Clarify #pragma GCC namespace.
1744
1745 2000-06-24  Philipp Thomas  <pthomas@suse.de>
1746
1747         * aclocal.m4(AM_GNU_GETTEXT): If LINGUAS isn't set, build
1748         all catalogs specified in ALL_LINGUAS.
1749         * configure: Rebuilt.
1750
1751 2000-06-23  Jakub Jelinek  <jakub@redhat.com>
1752
1753         * config/sparc/sparc.md (reload_outdi+1): Handle
1754         HOST_BITS_PER_WIDE_INT == 64 case correctly.
1755         (adddi3_insn_sp32+1, adddi3_insn_sp32+2, andsi3+2): Likewise.
1756
1757 2000-06-23  Geoffrey Keating  <geoffk@cygnus.com>
1758
1759         * alias.c (fixed_scalar_and_varying_struct_p): Don't examine
1760         struct vs. scalar-ness when -fno-strict-aliasing.
1761
1762 2000-06-23  Nathan Sidwell  <nathan@codesourcery.com>
1763
1764         * cpplib.c (struct pragma_entry): New structure.
1765         (pragma_dispatch): Pragma dispatcher.
1766         (top_pragmas, gcc_pragmas): New static variables.
1767         (do_pragma): Use pragma_dispatch.
1768         (do_pragma_gcc): New pragma handler.
1769         * cpp.texi: Update.
1770
1771 2000-06-23  Jakub Jelinek  <jakub@redhat.com>
1772
1773         * calls.c (compute_argument_addresses): Force stack slots into
1774         alias set 0.
1775         * expr.c (emit_push_insn): Force pushes into alias set 0.
1776
1777 2000-06-23  Richard Henderson  <rth@cygnus.com>
1778
1779         * config/ia64/ia64.md (pred_rel_mutex): Only take one register.
1780         * config/ia64/ia64.c (emit_predicate_relation_info): Adjust to match.
1781
1782 2000-06-22  Jason Merrill  <jason@redhat.com>
1783
1784         * toplev.c (compile_file): Always call timevar_print.
1785         * Makefile.in (calls.o): Depend on TIMEVAR_H.
1786
1787 2000-06-22  Nathan Sidwell  <nathan@codesourcery.com>
1788
1789         * varasm.c (constant_descriptor): Make contents unsigned char.
1790         (mark_const_hash_entry): Adjust.
1791         (const_hash): Just hash the code of unknown nodes.
1792         (compare_constant_1): Adjust for unsigned char.
1793         Use language specific expander on unknown nodes.
1794         (record_constant_1): Likewise.
1795
1796 2000-06-21  Zack Weinberg  <zack@wolery.cumb.org>
1797
1798         * cppfiles.c (cpp_make_system_header): New function.
1799         * cpplib.h: Prototype it.
1800         * cpplib.c (do_line, do_pragma_system_header): Use it.
1801         * fix-header.c (read_scan_file): Use it.
1802
1803         * fix-header.c (check_macro_names): Cast second arg of
1804         cpp_defined to const unsigned char *.
1805         (read_scan_file): Make getchar_call const unsigned char.
1806
1807 2000-06-21  Zack Weinberg  <zack@wolery.cumb.org>
1808
1809         * cppfiles.c: Include splay-tree.h, not hashtab.h.
1810         (redundant_include_p, make_IHASH, hash_IHASH, eq_IHASH): Delete.
1811         (destroy_include_file_node): New.
1812         (_cpp_init_include_hash): Rename _cpp_init_include_table.
1813         Create a splay tree, not a hash table.
1814         (open_include_file): Look up the path in the include table,
1815         do the multiple include optimization here, etc.
1816         (cpp_included): Walk the path.
1817         (find_include_file): Just walk the path calling
1818         open_include_file, or call it directly for an absolute path.
1819         (_cpp_fake_ihash): Rename _cpp_fake_include and update for new
1820         scheme.
1821         (read_include_file): Update for new scheme.  Don't close the
1822         file unless reading fails.
1823         (_cpp_execute_include, cpp_read_file): Tweak for new scheme.
1824
1825         * cpphash.h (struct ihash, NEVER_REINCLUDE): Delete.
1826         (struct include_file): New.
1827         (NEVER_REREAD, DO_NOT_REREAD, CPP_IN_SYSTEM_HEADER): New
1828         macros.
1829         (CPP_PEDANTIC, CPP_WTRADITIONAL): Update.
1830         Update prototypes.
1831
1832         * cppinit.c: Include splay-tree.h.
1833         (cpp_reader_init, cpp_cleanup): Update.
1834
1835         * cpplib.h (struct cpp_buffer): Change ihash field to
1836         'struct include_file *inc'.  Remove system_header_p.
1837         (struct cpp_reader): Change all_include_files to a
1838         struct splay_tree_s *.
1839
1840         * cpplex.c: Update all references to cpp_buffer->ihash and/or
1841         cpp_buffer->system_header_p.
1842         (cpp_pop_buffer): Close file here, only if DO_NOT_REREAD.
1843
1844         * Makefile.in (SPLAY_TREE_H): New macro.
1845         (cppfiles.o, cppinit.o): Update dependencies.
1846
1847 Wed Jun 21 11:05:48 2000  Martin Buchholz <martin@xemacs.org>
1848
1849         * invoke.texi (g++): "g++" is not a script anymore.
1850
1851 2000-06-20  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1852
1853         * function.c (round_down): Delete obsolete prototype.
1854
1855         * pa.h (CPP_SPEC): Add whitespace after -D__STDC_EXT__.
1856
1857 2000-06-20  Zack Weinberg  <zack@wolery.cumb.org>
1858
1859         * configure.in: Use 'test a = b' not 'test a == b'.
1860         * configure: Regen.
1861
1862         * Makefile.in (fix-header): Link with $(LIBS) not $(HOST_LIBS).
1863
1864         * Makefile.in: Remove all references to HOST_INTLLIBS.
1865
1866         * cpplex.c (parse_name): Don't warn about $ in identifiers if
1867         skipping.
1868
1869 2000-06-20  Philipp Thomas  <pthomas@suse.de>
1870
1871         * config/pa/pa.h(TARGET_SWITCHES): Require binutils 2.10 or later
1872         for PA 2.0.
1873
1874 Mon Jun 19 23:26:40 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1875
1876         * Take REG_INC notes into account.
1877
1878 2000-06-19  Zack Weinberg  <zack@wolery.cumb.org>
1879
1880         * c-parse.in (undeclared_variable_notice): Moved to c-typeck.c.
1881         (primary: IDENTIFIER): Just call build_external_ref.
1882         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
1883         Regenerate.
1884         * c-lex.c (lastiddecl): Remove.
1885         (yylex): Replace all instances of lastiddecl with local
1886         variables.
1887
1888         * c-typeck.c (build_external_ref): New function.  Treat decls
1889         with C_DECL_ANTICIPATED mostly the same as nonexistent decls.
1890         Look up the decl from the id here.  Call lookup_objc_ivar.
1891         * c-lang.c (lookup_objc_ivar): Stub.
1892         * objc/objc-act.c (lookup_objc_ivar): New function.
1893
1894         * c-tree.h: Prototype lookup_objc_ivar and build_external_ref.
1895         * c-lex.h: Don't declare lastiddecl.
1896
1897 2000-06-19  Benjamin Chelf  <chelf@codesourcery.com>
1898
1899         * c-common.h (IF_COND): Added documentation.
1900         (THEN_CLAUSE): Likewise.
1901         (ELSE_CLAUSE): Likewise.
1902         (WHILE_COND): Likewise.
1903         (WHILE_BODY): Likewise.
1904         (DO_COND): Likewise.
1905         (DO_BODY): Likewise.
1906         (RETURN_EXPR): Likewise.
1907         (EXPR_STMT_EXPR): Likewise.
1908         (FOR_INIT_STMT): Likewise.
1909         (FOR_COND): Likewise.
1910         (FOR_EXPR): Likewise.
1911         (FOR_BODY): Likewise.
1912         (SWITCH_COND): Likewise.
1913         (SWITCH_BODY): Likewise.
1914         (CASE_LOW): Likewise.
1915         (CASE_HIGH): Likewise.
1916         (GOTO_DESTINATION): Likewise.
1917         (COMPOUND_BODY): Likewise.
1918         (ASM_CV_QUAL): Likewise.
1919         (ASM_STRING): Likewise.
1920         (ASM_OUTPUTS): Likewise.
1921         (ASM_INPUTS): Likewise.
1922         (ASM_CLOBBERS): Likewise.
1923         (DECL_STMT_DECL): Likewise.
1924         (STMT_EXPR_STMT): Likewise.
1925         (LABEL_STMT_LABEL): Likewise.
1926
1927         * c-common.def: Added documenetion for SRCLOC, EXPR_STMT,
1928         COMPOUND_STMT, DECL_STMT, IF_STMT, FOR_STMT, WHILE_STMT, DO_STMT,
1929         RETURN_STMT, BREAK_STMT, CONTINUE_STMT, SWITCH_STMT, GOTO_STMT,
1930         LABEL_STMT, ASM_STMT, SCOPE_STMT, CASE_LABEL, STMT_EXPR.
1931
1932 2000-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1933
1934         * configure.in (--enable-checking): Update --help doc to reflect
1935         new defaults.  Ensure $ac_save_IFS is set before $IFS is changed.
1936
1937 Sun Jun 18 21:42:15 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1938
1939         * gcse.c (insert_insn_end_bb): Always put after NOTE_INSN_BASIC_BLOCK.
1940
1941         * function.c (put_var_into_stack): Don't reference DECL_ fields
1942         if input is a SAVE_EXPR.
1943         Use set_mem_attributes in COMPLEX case.
1944
1945 2000-06-18  Richard Henderson  <rth@cygnus.com>
1946
1947         * config/ia64/ia64-protos.h (process_for_unwind_directive): Declare.
1948         (ia64_file_start): Declare.
1949         * config/ia64/ia64.h (ADDL_REGNO_P): Don't compare unsigned against 0.
1950         (GR_REGNO_P): Likewise.
1951         * config/ia64/ia64.c: Many prototypes.
1952         (ia64_reg_numbers): Constify.
1953         (ia64_input_reg_names, ia64_local_reg_names): Likewise.
1954         (ia64_section_threshold): Make unsigned.
1955         (ia64_print_operand): Constify.
1956         (fix_range): Constify.
1957         (ia64_init_builtins): Don't compare signed vs unsigned.
1958         (ia64_expand_builtin): Likewise.
1959
1960         * config/ia64/ia64.h (EXTRA_CONSTRAINT): New.
1961         (CONSTRAINT_OK_FOR_Q): New.
1962         * config/ia64/ia64.md (movdi_internal): Use Q for fp<->mem.
1963         (movsf_internal, movdf_internal): Likewise.
1964         (cmovdi_internal): Rewrite so that constraints and predicates match;
1965         simplify splitters.
1966         (cmovsi_internal): Likewise.
1967
1968         * config/ia64/ia64.h (ASM_SPEC): Add -x for gas.
1969         (ASM_FILE_START): New.
1970         * config/ia64/ia64.c (ia64_file_start): New.
1971         (rtx_needs_barrier): Handle pred.rel.mutex.
1972         (emit_predicate_relation_info): New.
1973         * config/ia64/ia64.md (pred_rel_mutex): New.
1974         * config/ia64/linux.h (ASM_SPEC): Define.
1975         * config/ia64/sysv4.h (ASM_FILE_START): Define.
1976
1977         * config/ia64/ia64.c (ia64_encode_section_info): Fix thinko
1978         filtering global register variables.
1979
1980 2000-06-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1981
1982         * c-common.c (add_c_tree_codes): Fix definition for traditional C.
1983
1984 2000-06-17  Michael Meissner  <meissner@redhat.com>
1985
1986         * gcc.c (do_spec_1, '%v3' case): Do not abort if patch level is
1987         not present and there is a field after a '-'.
1988
1989 2000-06-17  Bruce Korb  <bkorb@gnu.org>
1990
1991         * fixinc/check.tpl:  finish the implementation of multiple tests
1992         for a single fix
1993         * fixinc/inclhack.def(ctrl_quotes_def): add a second test
1994         (io_quotes_def): add a second test
1995         (various): reorder `files' so that "limits.h" is never first
1996         * fixinc/tests/base/*: update the testing output
1997
1998 Sat Jun 17 10:33:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1999
2000         * gcc.texi: Remove reference to stupid.c.
2001
2002 2000-06-16  Benjamin Chelf  <chelf@codesourcery.com>
2003
2004         * c-common.c (c_tree_code_type): New array.
2005         (c_tree_code_length): Likewise.
2006         (c_tree_code_name): Likewise.
2007         (add_c_tree_codes): New function.
2008
2009         * c-common.h (add_c_tree_codes): Declare.
2010         (enum c_tree_code): New enum.
2011
2012         * c-lex.c (init_parse): Added call to add_c_tree_codes.
2013
2014 2000-06-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2015
2016         * fixinc/inclhack.def (ctrl_quotes_def, io_quotes_def): Modify
2017         select pattern to also match macro defs with only one argument.
2018
2019 Thu Jun 15 18:56:12 2000  Jeffrey A Law  (law@cygnus.com)
2020
2021         * i386.md: Create new [right,left] rotate and right shift
2022         patterns to optimize shift by 1 bit for certain ia32 processors.
2023         Update patterns which perform left shifts to optimize shift by
2024         1 bit for certain ia32 processors.
2025         * i386.c (const_int_1_operand): New predicate.
2026         * i386.h (PREDICATE_CODES): Handle const_int_1_operand.
2027         * i386-protos.h (const_int_1_operand): Prototype.
2028
2029 Wed Jun 14 23:46:26 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2030
2031         * mips.c (machine_dependent_reorg): Fix braces for nested if.
2032
2033 2000-06-14  Geoff Keating  <geoffk@cygnus.com>
2034
2035         * rs6000.c (toc_hash_eq): Use CODE_LABEL_NUMBER to compare
2036         LABEL_REFs.
2037
2038 2000-06-14  Richard Henderson  <rth@cygnus.com>
2039
2040         * conflict.c (conflict_graph_compute): Don't look for REG_INC.
2041
2042         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Don't emit
2043         auto-inc code.
2044
2045         * print-rtl.c (print_rtx): Emit space before mem alias set.
2046
2047 2000-06-14  David Edelsohn  <edelsohn@gnu.org>
2048
2049         * rs6000.c (expand_block_move): Fix typo in earlier change.
2050         (print_operand): Remove unused variables neg and op.
2051         (toc_hash_mark_entry): Fix prototype.
2052
2053 2000-06-14  Benjamin Chelf  <chelf@codesourcery.com>
2054
2055         * c-common.h (IF_COND): Moved here from cp/cp-tree.h.
2056         (THEN_CLAUSE): Likewise.
2057         (ELSE_CLAUSE): Likewise.
2058         (WHILE_COND): Likewise.
2059         (WHILE_BODY): Likewise.
2060         (DO_COND): Likewise.
2061         (DO_BODY): Likewise.
2062         (RETURN_EXPR): Likewise.
2063         (EXPR_STMT_EXPR): Likewise.
2064         (FOR_INIT_STMT): Likewise.
2065         (FOR_COND): Likewise.
2066         (FOR_EXPR): Likewise.
2067         (FOR_BODY): Likewise.
2068         (SWITCH_COND): Likewise.
2069         (SWITCH_BODY): Likewise.
2070         (CASE_LOW): Likewise.
2071         (CASE_HIGH): Likewise.
2072         (GOTO_DESTINATION): Likewise.
2073         (COMPOUND_BODY): Likewise.
2074         (ASM_CV_QUAL): Likewise.
2075         (ASM_STRING): Likewise.
2076         (ASM_OUTPUTS): Likewise.
2077         (ASM_INPUTS): Likewise.
2078         (ASM_CLOBBERS): Likewise.
2079         (DECL_STMT_DECL): Likewise.
2080         (STMT_EXPR_STMT): Likewise.
2081         (LABEL_STMT_LABEL): Likewise.
2082         (SCOPE_BEGIN_P): Likewise.
2083         (SCOPE_END_P): Likewise.
2084         (SCOPE_STMT_BLOCK): Likewise.
2085         (SCOPE_NULLIFIED_P): Likewise.
2086         (SCOPE_NO_CLEANUPS_P): Likewise.
2087         (SCOPE_PARTIAL_P): Likewise.
2088         (ASM_VOLATILE_P): Likewise.
2089         (STMT_LINENO): Likewise.
2090         (STMT_LINENO_FOR_FN_P): Likewise.
2091
2092         * c-common.def: New file. Added SRCLOC, SIZEOF_EXPR, ARROW_EXPR,
2093         ALIGNOF_EXPR, EXPR_STMT, COMPOUND_STMT, DECL_STMT, IF_STMT,
2094         FOR_STMT, WHILE_STMT, DO_STMT, RETURN_STMT, BREAK_STMT,
2095         CONTINUE_STMT, SWITCH_STMT, GOTO_STMT, LABEL_STMT, ASM_STMT,
2096         SCOPE_STMT, CASE_LABEL, STMT_EXPR.
2097
2098         * gencheck.c (tree_codes[]): Added '#include "c-common.def"'.
2099
2100 2000-06-14  David O'Brien  <obrien@FreeBSD.org>
2101
2102         * gcc.c (main): Quiet compiler warnings.  argv is assumed to be
2103         writable in parts of the GCC code.
2104
2105         * config/elfos.h (ASM_GENERATE_INTERNAL_LABEL): Make printf
2106         specification match cast.
2107
2108 Wed Jun 14 09:25:57 2000  Jeffrey A Law  (law@cygnus.com)
2109
2110         * configure.in: Revert AC_TYPE_GETGROUPS patch from June 13.
2111         * configure, config.in: Rebuilt.
2112         * sys-protos.h: Similarly.
2113
2114 Wed Jun 14 03:39:58 EDT 2000  John Wehle  (john@feith.com)
2115
2116         * ifcvt.c (EDGE_COMPLEX): Move definition ...
2117         * basic-block.h (EDGE_COMPLEX): ... here.
2118
2119         * loop.c (check_dbra_loop): Specify the register when
2120         generating REG_NONNEG notes and don't generate duplicates.
2121
2122 2000-06-13  Jakub Jelinek  <jakub@redhat.com>
2123
2124         * tree.h (TYPE_USER_ALIGN, DECL_USER_ALIGN): Define.
2125         (struct tree_type, struct tree_decl): Add user_align member.
2126         * stor-layout.c (layout_decl): Set DECL_USER_ALIGN.
2127         (place_union_field): If BIGGEST_FIELD_ALIGNMENT is defined
2128         and DECL_USER_ALIGN 0, cap alignment to this value.
2129         (place_field): Likewise.
2130         (finalize_type_size): Set TYPE_USER_ALIGN.
2131         (layout_type): Likewise.
2132         (initialize_sizetypes): Likewise.
2133         * c-common.c (decl_attributes): Set TYPE_USER_ALIGN resp.
2134         DECL_USER_ALIGN to 1.
2135         * c-decl.c (duplicate_decls): Set DECL_USER_ALIGN.
2136         (xfer_tag): Set TYPE_USER_ALIGN.
2137         (finish_struct): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN.
2138         (finish_enum): Likewise.
2139         * stmt.c (expand_decl): Set DECL_USER_ALIGN.
2140         (expand_anon_union_decl): Likewise.
2141         * tree.c (make_node): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN.
2142         (build_index_type): Set TYPE_USER_ALIGN.
2143         (build_range_type): Likewise.
2144         (build_common_tree_nodes_2): Likewise.
2145         * tm.texi (BIGGEST_FIELD_ALIGNMENT): Document the changed meaning.
2146
2147 2000-06-13  Andreas Jaeger  <aj@suse.de>
2148
2149         * configure.in: Use --enable-checking=misc,tree,gc by default if
2150         no --enable-checking option is given and for
2151         --enable-checking=yes.
2152         * configure: Rebuilt.
2153
2154 2000-06-13  Richard Henderson  <rth@cygnus.com>
2155
2156         * libgcc2.c (ia64_throw_helper): Use __builtin_return_address.
2157         (__throw): Don't pass the address of a label.
2158
2159         * config/ia64/ia64.c (ia64_compute_frame_size): Use
2160         current_function_is_leaf.
2161         (ia64_expand_prologue): Likewise.  Modify return_address_pointer_rtx
2162         instead of reg_names[RETURN_ADDRESS_REGNUM].
2163         (ia64_init_machine_status): Reset return_address_pointer_rtx.
2164         * config/ia64/ia64.h (RETURN_ADDRESS_POINTER_REGNUM): Rename
2165         from RETURN_ADDRESS_REGNUM.  Update all uses.
2166         (RETURN_ADDR_RTX): Use return_address_pointer_rtx; return
2167         zero instead of null on failure.
2168         (ELIMINABLE_REGS): Add ra->b0 elimination.
2169         (CAN_ELIMINATE): Update accordingly.
2170         (INITIAL_ELIMINATION_OFFSET): Likewise.
2171         (REGISTER_NAMES): Use an illegal assembler name for
2172         RETURN_ADDRESS_POINTER_REGNUM.
2173
2174 2000-06-13  Richard Henderson  <rth@cygnus.com>
2175
2176         * config/ia64/ia64.h (enum reg_class): Remove FR_INT_REGS, FR_FP_REGS,
2177         GR_AND_FR_INT_REGS, GR_AND_FR_FP_REGS.
2178         (REG_CLASS_NAMES): Likewise.
2179         (REG_CLASS_CONTENTS): Likewise.
2180         (FR_FP_REGNO_P, FR_INT_REGNO_P): Remove.
2181         (HARD_REGNO_MODE_OK): Remove references to them.
2182         (REGNO_REG_CLASS): Likewise.
2183         (REG_CLASS_FROM_LETTER): Likewise.
2184         (CLASS_MAX_NREGS): Likewise.
2185         (REGISTER_MOVE_COST): Likewise.
2186         * config/ia64/ia64.c (ia64_secondary_reload_class): Likewise.
2187         * config/ia64/ia64.md (*): Replace "e" constraints with "f".
2188         (movqi_internal): Special case moves from zero.
2189         (movhi_internal, movsi_internal): Likewise.
2190         (movdi_internal): Likewise.  Fill out "f" constraints.
2191         (movsf_internal): Fill out "r" constraints.
2192         (movdf_internal): Likewise.
2193
2194 2000-06-13  Richard Henderson  <rth@cygnus.com>
2195
2196         * flow.c (insn_dead_p): Keep sets to PIC_OFFSET_TABLE_REGNUM
2197         alive before reload.
2198
2199         * haifa-sched.c (struct deps): Add in_post_call_group_p.
2200         (add_dependence): Handle notes between SCHED_GROUP_P insns.
2201         (remove_dependence): Always define.
2202         (set_sched_group_p): New.
2203         (sched_analyze_2): Use it.
2204         (sched_analyze_insn): Don't special-case naked uses.  Look for
2205         and extend in_post_call_group_p.
2206         (sched_analyze): Clear stale SCHED_GROUP_P.  Set in_post_call_group_p.
2207         (init_deps): Clear in_post_call_group_p.
2208
2209 2000-06-13  Richard Henderson  <rth@cygnus.com>
2210
2211         * combine.c (subst): Use CLASS_CANNOT_CHANGE_MODE and
2212         CLASS_CANNOT_CHANGE_MODE_P instead of CLASS_CANNOT_CHANGE_SIZE
2213         and hard-coded tests.
2214         (simplify_set): Likewise.
2215         (gen_lowpart_for_combine): Likewise.
2216         * emit-rtl.c (gen_lowpart_common): Likewise.
2217         * global.c (find_reg): Likewise.
2218         * local-alloc.c (find_free_reg): Likewise.
2219         * recog.c (register_operand): Likewise.
2220         * regclass.c (init_reg_sets_1): Likewise.
2221         (record_operand_costs, regclass): Likewise.
2222         * reload.c (push_reload): Likewise.
2223         * reload1.c (choose_reload_regs): Likewise.
2224         * flow.c (mark_used_regs): Conditionally set REG_CHANGES_MODE.
2225         * local-alloc.c (struct qty): Rename changes_size to changes_mode.
2226         Update all references.
2227         * regs.h (struct reg_info_def): Likewise.
2228         (REG_CHANGES_MODE): Rename from REG_CHANGES_SIZE.
2229         * tm.texi (CLASS_CANNOT_CHANGE_MODE): Document.
2230         (CLASS_CANNOT_CHANGE_MODE_P): Likewise.
2231
2232         * config/alpha/alpha.h (CLASS_CANNOT_CHANGE_MODE): Rename.
2233         (CLASS_CANNOT_CHANGE_MODE_P): New.
2234         * config/mips/mips.h: Likewise.
2235         * config/pa/pa32-regs.h: Likewise.
2236         * config/pa/pa64-regs.h: Likewise.
2237         * config/rs6000/rs6000.h: Likewise.
2238         * config/sh/sh.h: Likewise.
2239         * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE): New.
2240         (CLASS_CANNOT_CHANGE_MODE_P): New.
2241         * config/avr/avr.h (CLASS_CANNOT_CHANGE_SIZE): Remove dead code.
2242         * config/d30v/d30v.h: Likewise.
2243
2244 2000-06-13  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2245
2246         * configure.in: Add AC_TYPE_GETGROUPS test.
2247         * sys-protos.h: Use GETGROUPS_T * for second arg of getgroups.
2248         * configure: Rebuilt.
2249         * config.in: Rebuilt.
2250
2251 2000-06-13  Richard Henderson  <rth@cygnus.com>
2252
2253         * explow.c (set_mem_attributes): Do nothing for NULL type.
2254
2255 Tue Jun 13 14:45:10 2000  Jeffrey A Law  (law@cygnus.com)
2256
2257         * config/m68k/openbsd.h (ASM_SPEC): pass down options to assembler
2258         correctly.
2259
2260 2000-06-13  James E. Wilson  <wilson@cygnus.com>
2261
2262         * config/ia64/ia64.md (movxf_internal): Add missing "e" to ldf/stf.
2263
2264 Tue Jun 13 14:05:35 2000  Jeffrey A Law  (law@cygnus.com)
2265
2266         * Makefile.in (gensupport.o): Remove bogus $(HOST_PREFIX) reference.
2267
2268 2000-06-13  Philipp Thomas  <pthomas@suse.de>
2269
2270         * configure.in(ALL_LINGUAS): Changed en_UK to en_GB.
2271         * configure: Rebuilt.
2272
2273 2000-06-07  David O'Brien  <obrien@FreeBSD.org>
2274
2275         * configure.in:  Adjust FreeBSD bits to match changes to config.guess.
2276         We now default to ELF for the i386, and a.out is the special case.
2277         * configure:  Rebuilt.
2278
2279 Tue Jun 13 10:05:30 2000  Hans-Peter Nilsson  <hp@axis.com>
2280
2281         * final.c (final_scan_insn): Delete notes between cc0 setter and
2282         user when restarting from setter.
2283
2284 2000-06-13  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2285
2286         * vax.h (INDEX_TERM_P): Define evaluation order of &&'s in || and
2287         cast to squelch signed/unsigned warnings.
2288
2289 2000-06-13  Zack Weinberg  <zack@wolery.cumb.org>
2290
2291         * cpplib.c (handle_directive): Print non-NUL-terminated string
2292         with %.*s.
2293
2294 2000-06-12  Michael Meissner  <meissner@redhat.com>
2295
2296         * ifcvt.c (dead_or_predicable): Don't do conditional execution
2297         path if the machine needs extra support to do conditional
2298         execution.
2299
2300 Mon Jun 12 17:04:17 2000  Jeffrey A Law  (law@cygnus.com)
2301
2302         * print-rtl.c (print_rtx, case MEM): Use HOST_WIDE_INT_PRINT_DEC
2303         to print the alias set.
2304         * print-tree.c (print_node, DECL_* nodes and case 't'): Similarly.
2305
2306 2000-06-12  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2307
2308         * config/float-vax.h: Add GFLOAT defines.
2309
2310 Mon Jun  12  9:44:00 2000  Mark Klein  <mklein@dis.com>
2311
2312         * configure.in: Update tm dependencies for MPE.
2313         * configure: Rebuilt.
2314
2315 2000-06-12  H.J. Lu  <hjl@gnu.org>
2316
2317         * gengenrtl.c (obstack_alloc_rtx): Correct the allocated size.
2318
2319 2000-06-12  David Edelsohn  <edelsohn@gnu.org>
2320
2321         * aix41.h (SUBTARGET_SWITCHES): Delete threads.
2322         (CPP_SPEC): Change mthreads to pthread.
2323         (LIB_SPEC): Likewise.
2324         (STARTFILE_SPEC): Likewise.
2325         * aix43.h (SUBTARGET_SWITCHES): Delete threads.
2326         (CPP_SPEC): Change mthreads to pthread.
2327         (LIB_SPEC): Likewise.
2328         (STARTFILE_SPEC): Likewise.
2329         * rs6000-protos.h (reg_or_arith_cint_operand): New.
2330         * rs6000.c (reg_or_arith_cint_operand): New.
2331         (num_insns_constant_wide): Decorate unsigned constant.
2332         * rs6000.h (PREDICATE_CODES): Add reg_or_arith_cint_operand.
2333         * rs6000.md (addsi3): Use new predicate.
2334         (subsi3, adddi3, subdi3): Likewise.
2335
2336 2000-06-12  Mark Mitchell  <mark@codesourcery.com>
2337
2338         * c-common.c (lang_get_alias_set): Fix typo.
2339
2340 2000-06-12  Richard Earnshaw <rearnsha@arm.com>
2341
2342         * flow.c (mark_used_regs): Revert last change.
2343         (life_analysis): Remove PROP_AUTOINC if running after reload.
2344         (propagate_one_insn): PROP_AUTOINC is always off after reload.
2345
2346 2000-06-11  Richard Earnshaw <rearnsha@arm.com>
2347
2348         * flow.c (mark_used_regs): Don't call find_auto_inc after reload
2349         has run.
2350
2351 2000-06-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2352
2353         * bb-reorder.c (build_scope_forest): Initialize variable
2354         `curr_scope'.
2355
2356         * calls.c (expand_call): Likewise for variables
2357         `save_pending_stack_adjust' and `save_stack_pointer_delta'.
2358
2359         * i386.c (function_arg_advance, function_arg): Cast to avoid
2360         signed/unsigned warnings.
2361
2362         * i386.h (MEMORY_MOVE_COST): Likewise.
2363
2364         * ifcvt.c (cond_exec_process_if_block): Initialize variables
2365         `else_start' and `else_end'.
2366
2367         * libgcc2.h (__eh_alloc, __eh_free): Prototype.
2368
2369         * regrename.c (rr_replace_reg): Initialize variable `dest_subregno'.
2370
2371 2000-06-10  Mark Mitchell  <mark@codesourcery.com>
2372
2373         * Makefile.in (libintl.a): Depend on intl.all.
2374
2375 2000-06-09  H.J. Lu  (hjl@gnu.org)
2376
2377         * Makefile.in (c-parse.o): Also depend on output.h.
2378
2379 2000-06-09  Rodney Brown  <RodneyBrown@mynd.com>
2380
2381         * mcore-protos.h: discards const warning removal.
2382         * mcore.c: discards const warning removal.
2383
2384 2000-06-09  Kazu Hirata  <kazu@hxi.com>
2385
2386         * config/h8300/lib1funcs.asm: Declare the machine architecture at
2387         the beginning of the file.
2388
2389 2000-06-09  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2390
2391         * real.h:  Add prototype for ldexp.
2392
2393 2000-06-09  Zack Weinberg  <zack@wolery.cumb.org>
2394
2395         * ggc-none.c, ggc-simple.c, ggc-page.c (ggc_alloc_obj): Rename
2396         it ggc_alloc, drop second argument, never clear returned memory.
2397         * ggc-common.c (ggc_alloc_string): Use ggc_alloc.
2398         (ggc_alloc_cleared): New.
2399         * ggc.h: Prototype ggc_alloc and ggc_alloc_cleared, not
2400         ggc_alloc_obj.  Remove ggc_alloc macro.
2401         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Use ggc_alloc.
2402
2403         * rtl.c (rtvec_alloc): Clear the vector always.
2404         (rtx_alloc): Clear the first word always.  Remove dirty
2405         obstack tricks (this routine is no longer a bottleneck).
2406         * tree.c (make_node): Clear the new node always.
2407         (make_tree_vec): Likewise.
2408         (tree_cons): Clear the common structure always.
2409         (build1): Likewise; also, clear TREE_COMPLEXITY.
2410         * gengenrtl.c: Use puts wherever possible.  Remove extra
2411         newlines.
2412         (gendef): Clear the first word of an RTX in the generator
2413         function, irrespective of ggc_p.  Initialize '0' slots to
2414         NULL.
2415         (genlegend): Don't generate obstack_alloc_rtx routine, just a
2416         thin wrapper macro around obstack_alloc.
2417
2418         * stmt.c (expand_fixup): Use ggc_alloc.
2419         * c-typeck.c (add_pending_init): Use ggc_alloc.
2420         * emit-rtl.c (init_emit_once): Clear CONST_DOUBLE_CHAIN(tem).
2421         * varasm.c (immed_double_const): Set CONST_DOUBLE_MEM(r) to
2422         const0_rtx when it is created.
2423         (immed_real_const_1): Set CONST_DOUBLE_CHAIN(r) to NULL_RTX if
2424         we are not in a function.
2425
2426         * tree.c (tree_class_check_failed): Make second arg an int.
2427         * tree.h: Update prototype.
2428
2429 2000-06-09  Geoff Keating  <geoffk@cygnus.com>
2430
2431         * tree.h (VOID_TYPE_P): Don't look at the TYPE_MAIN_VARIANT
2432         of an error_mark_node.
2433
2434 Fri Jun  9 20:35:13 2000  Denis Chertykov  <denisc@overta.ru>
2435
2436         * config/avr/avr.c (asm_output_section_name): bugfix.
2437
2438 2000-06-09  Jason Merrill  <jason@casey.soma.redhat.com>
2439
2440         * timevar.def: Add TV_EXPAND.
2441         * timevar.c (timevar_print): Update timing information.
2442         * calls.c (try_to_integrate): Push to TV_INTEGRATION for inlining.
2443
2444         * stmt.c (expand_return): Check for error_mark_node.
2445
2446 2000-06-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2447
2448         * configure.in: Also avoid wrapping auto-build.h with IN_GCC.
2449
2450         * scan-types.sh (VALUE) Wrap use with double quotes to protect
2451         variable against filename expansion when it contains "char *".
2452
2453         * system.h (SSIZE_MAX): Delete backup definition.
2454
2455         * cppfiles.c (read_include_file): Use INTTYPE_MAXIMUM(ssize_t)
2456         instead of SSIZE_MAX.
2457
2458 2000-06-09  Jakub Jelinek  <jakub@redhat.com>
2459
2460         * configure.in: Check whether gas supports -relax.
2461         * configure, config.in: Rebuilt.
2462         * config/sparc/sparc.h (ASM_RELAX_SPEC): Define.
2463         (EXTRA_SPECS): Add asm_relax.
2464         (ASM_SPEC): Add %(asm_relax).
2465         (TARGET_SWITCHES): Add -mrelax and -mno-relax.
2466         * config/sparc/linux64.h (LINK_ARCH_SPEC): Rename to LINK_SPEC.
2467         (LINK_SPEC): Pass -relax to linker unless -mno-relax or -r.
2468         (ASM_SPEC): Add %(asm_relax).
2469         * config/sparc/linux.h (LINK_SPEC, ASM_SPEC): Likewise.
2470         * config/sparc/sparc.c (output_sibcall): If HAVE_AS_RELAX_OPTION,
2471         never use sethi/jmpl for leaf tail calls.  Use or with rs2 %g0
2472         instead of mov, so that gas can further optimize it.
2473
2474 2000-06-08  James E. Wilson  <wilson@bletchleypark.cygnus.com>
2475
2476         * dwarf2out.c (size_of_die, case dw_val_class_const): Use
2477         size_of_sleb128.
2478         (value_format, case dw_val_class_const): Use sdata format.
2479         (output_die): Call output_sleb128.
2480
2481 2000-06-08  James E. Wilson  <wilson@cygnus.com>
2482
2483         * dwarf2out.c (ASM_OUTPUT_DWARF_DATA8): Add new macro that uses
2484         UNALIGNED_DOUBLE_INT_ASM_OP.  Rename old macro to
2485         ASM_OUTPUT_DWARF_CONST_DOUBLE.
2486         (output_die, case dw_val_class_unsigned_const): Correct call to
2487         ASM_OUTPUT_DWARF_DATA8.
2488         (output_die, case dw_val_class_long_long): Use
2489         ASM_OUTPUT_DWARF_CONST_DOUBLE.
2490         * tree.c (host_integerp): Accept unsigned HOST_WIDE_INT values when
2491         pos is zero.
2492
2493         * config/ia64/ia64-protos.h (ia64_output_end_prologue): Add.
2494         (output_function_prologue): Fix mispelling.
2495         (output_function_prologue, output_function_epilogue): Reorder to
2496         match ia64.c definition order.
2497         * config/ia64/ia64.c (ia64_expand_prologue): Add comment.
2498         (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on stack restore insns.
2499         Use r3 instead of r2 for large stack restores.
2500         (ia64_output_end_prologue): New function.
2501         (process_set): Emit ".restore sp" for epilogue stack restores.
2502         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE): Define.
2503
2504 2000-06-08  Jakub Jelinek  <jakub@redhat.com>
2505
2506         * dbxout.c (dbxout_type_fields): Don't segfault on fields with
2507         incomplete types.
2508
2509 2000-06-08  Nathan Sidwell  <nathan@codesourcery.com>
2510
2511         * frame.c (end_fde_sort): Remove extraneous erratic array test.
2512
2513 2000-06-08  Denis Perchine <dyp@perchine.com>
2514
2515         * frame.c (start_fde_sort): Don't malloc (0).
2516
2517 2000-06-07  Zack Weinberg  <zack@wolery.cumb.org>
2518
2519         * c-decl.c (pushdecl): Do not call COMPLETE_TYPE_P on
2520         error_mark_node.
2521         * print-tree.c (print_node): The transparent_union_flag means
2522         different things for unions and arrays.  Do not inspect it
2523         with TYPE_TRANSPARENT_UNION.
2524
2525 2000-06-06  Jakub Jelinek  <jakub@redhat.com>
2526
2527         * cpplib.c (do_ifdef, do_ifndef): Don't segfault if parse_ifdef
2528         returned NULL.
2529
2530 Wed Jun  7 20:34:33 2000  Denis Chertykov  <denisc@overta.ru>
2531
2532         * config/avr/avr.c (asm_output_section_name): output section
2533         attributes.
2534         * config/avr/libgcc.S (.text.libgcc): declare section attributes.
2535
2536 2000-06-06  James E. Wilson  <wilson@cygnus.com>
2537
2538         * frame.h (struct unwind_info_ptr): Collapse version, flags, and length
2539         fields into header field.
2540         (IA64_UNW_HDR_LENGTH, IA64_UNW_HDR_FLAGS, IA64_UNW_HDR_VERSION): New
2541         macros to access length, flags, and version info from header field.
2542         * config/ia64/crtbegin.asm (__do_frame_setup_aux): Delete here.
2543         * config/ia64/crtend.asm (__do_frame_setup_aux): Add here.
2544         (__do_global_ctors_aux): Fix caller.
2545         * config/ia64/frame-ia64.c (get_unwind_record): Change parameter
2546         prologue_flag to header.  Pass to read_P_record.
2547         (read_P_record): New argument header.  Implement P4 format.
2548         Multiply P7_T_SIZE by 16.
2549         (execute_one_ia64_descriptor): New static local region_header.  Pass to
2550         get_unwind_record.  Copy r to region_header if r is a header record.
2551         (print_all_records): Likewise.
2552         (__build_ia64_frame_state): Use IA64_UNW_HDR_LENGTH.
2553         (__get_personality, __get_except_table): Likewise.
2554         * config/ia64/ia64.c (process_set): Do not divide offsets by 4.
2555
2556 2000-06-06  Philipp Thomas  <pthomas@suse.de>
2557
2558         * configure.in (AC_C_INLINE): Added.
2559         * aclocal.m4 (AM_WITH_NLS): Enable --with-included-gettext by default.
2560         * configure: Regenerate.
2561
2562 2000-06-06  Mark Mitchell  <mark@codesourcery.com>
2563
2564         * c-common.h (c_language_kind): New type.
2565         (c_language): New variab.e
2566         * c-common.c (lang_get_alias_set): Don't put structures in
2567         non-zero alias sets in C++.
2568         * c-decl.c (c_language): Define it.
2569         * c-lex.c (doing_objc_thang): Remove.
2570         * c-tree.h (doing_objc_thang): Make it a macro.
2571         * objc/objc-act.c (lang_decode_option): Set c_language, not
2572         doing_objc_thang.
2573
2574 2000-06-06  Gabriel Dos Reis  <gdr@codesourcery.com>
2575
2576         * diagnostic.c (output_maximum_width): Remove.
2577         (doing_line_wrapping): Tweak.
2578         (diagnostic_buffer): New object.
2579         (global_output_buffer): New object.
2580         (output_destroy_prefix): New function.
2581         (default_initialize_buffer): Likewise.
2582         (reshape_diagnostic_buffer): Likewise.
2583         (initialize_diagnostics): Likewise.
2584         (output_clear): Tweak.
2585         (line_wrapper_printf): Adjust call to init_output_buffer.
2586         (vline_wrapper_message_with_location): Likewise.  Use
2587         output_destroy_prefix.
2588         (v_message_with_decl): Likewise.
2589
2590         * diagnostic.h (struct output_buffer): Constify prefix.
2591         (init_output_buffer, output_get_prefix): Constify.
2592         (diagnostic_message_length_per_line): Likewise.
2593         (reshape_diagnostic_buffer): Declare.
2594         (default_initialize_buffer): Declare.
2595         (initialize_diagnostics): Declare.
2596         (diagnostic_buffer): Declare new obbject.
2597
2598         * toplev.c: #include diagnostic.h
2599         (display_help): Document diagnostic formatting options.
2600         (decode_f_option): Handle diagnostic formatting options.
2601         (main): Setup initialization for diagnostic messages outputter.
2602
2603         * toplev.h (set_message_length): Remove.
2604
2605         * Makefile.in (toplev.o): Depends upon diagnostic.h
2606
2607         * invoke.texi : Document diagnostics formatting options.
2608
2609 Tue Jun  6 19:25:32 2000  Philippe De Muyter  <phdm@macqel.be>
2610
2611         * configure.in (Make the links): Typo fix : the file that must be
2612         included without #ifdef IN_GCC is `auto-host.h', not `auto-config.h'.
2613         * configure: File rebuilt.
2614
2615 2000-06-06  Nathan Sidwell  <nathan@codesourcery.com>
2616
2617         * eh-common.h (EH_ALLOC_SIZE, EH_ALLOC_ALIGN): New #defines.
2618         (eh_context): Add alloc_mask and alloc_buffer emergency fallback
2619         space.
2620         * libgcc2.c (__eh_alloc): Moved from cp/exception.cc. Fallback on
2621         emergency eh_context buffer, if malloc fails.
2622         (__eh_free): Moved from cp/exception.cc. Release to emergency
2623         eh_context buffer, if appropriate.
2624
2625 2000-06-06  Jason Merrill  <jason@casey.soma.redhat.com>
2626
2627         * expr.c (store_expr): Fix typo.
2628
2629 2000-06-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2630
2631         * m68k.c (legitimize_pic_address): Move prototype ...
2632
2633         * m68k-protos.h (legitimize_pic_address): ... here.
2634
2635         * m68k.md (legitimize_pic_address): Delete prototypes.
2636         (untyped_call): Invoke GEN_CALL(), not gen_call().
2637
2638         * nextstep.c: Include system.h and toplev.h.
2639         (get_directive_line): Don't prototype.
2640         (handle_pragma): Mark parameters with ATTRIBUTE_UNUSED and constify.
2641
2642         * nextstep.h (handle_pragma): Prototype.
2643         (SECTION_FUNCTION): Prototype FUNCTION().  Move prototype of
2644         objc_section_init ...
2645         (EXTRA_SECTION_FUNCTIONS): ... here.
2646
2647 Tue Jun  6 08:17:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2648
2649         * sdbout.c (struct sdb_file): NAME now const.
2650         (sdbout_init): input_file_name now const.
2651         (sdbout_start_new_source_file): FILENAME now const.
2652         * sdbout.c (sdbout_init, sdbout_start_new_source_file): Reflect above.
2653
2654 2000-06-06  Gabriel Dos Reis  <gdr@codesourcery.com>
2655
2656         * c-typeck.c (build_conditional_expr): Handle complex data types.
2657
2658 2000-06-05  Jason Merrill  <jason@casey.soma.redhat.com>
2659
2660         * explow.c (maybe_set_unchanging): New function, broken out from...
2661         (set_mem_attributes): Here.
2662         * expr.h: Declare it.
2663         * stmt.c (expand_decl): Call it.
2664
2665 2000-06-05  Richard Henderson  <rth@cygnus.com>
2666
2667         * reload1.c (choose_reload_regs): Mind CLASS_CANNOT_CHANGE_SIZE
2668         while looking for a register to inherit from.
2669
2670 2000-06-05  Jason Merrill  <jason@casey.soma.redhat.com>
2671
2672         * Makefile.in (libgcc.ready): Lose.
2673         (libgcc.mk): Just use mv, not move-if-change.
2674         (LIBGCC_DEPS): New macro.
2675         (libgcc.a): Use it.
2676         (stmp-multilib): Likewise.
2677         * mklibgcc.in (stmp-dirs): New target.  Make everything depend on
2678         it rather than the directories themselves.
2679         (LIB2ADD): Depend on the list file rather than 'force'.
2680
2681         * fold-const.c (fold, case COND_EXPR): Elide conversion between
2682         cv-qualified versions of types.
2683
2684 Mon Jun  5 14:06:18 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2685
2686         * config/sparc/sparc.c (short_branch): Correct error in range
2687         computation.
2688
2689 2000-06-05  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2690
2691         * fixinc/inclhack.def: New include hacks for ultrix.
2692         * (nested_ultrix): Replaced by ultrix_nested_svc.
2693         * (ultrix_atof_param): test_text string added.
2694         * (ultrix_ifdef): Modified select string.
2695
2696 2000-06-05  Zack Weinberg  <zack@wolery.cumb.org>
2697
2698         * objc/objc-act.c (generate_method_descriptors): Register
2699         objc_method_prototype_template as a GC root.
2700         (comp_method_with_proto): Register function_type as a GC root.
2701         (comp_proto_with_proto): Replace function_type1 and
2702         function_type2 with a two-element array; register it as a GC root.
2703
2704         (generate_protocols, build_protocol_initializer,
2705         generate_protocol_list, build_category_initializer,
2706         build_shared_structure_initializer): Do not cache cast_type
2707         and/or cast_type2.
2708
2709 2000-06-05  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2710
2711         * function.c (assign_parms): Add missing argument to set_mem_attributes
2712         call.
2713
2714 2000-06-05  Nathan Sidwell  <nathan@codesourcery.com>
2715
2716         * tree.h (VOID_TYPE_P): New macro.
2717         (COMPLETE_OR_VOID_TYPE_P): Use VOID_TYPE_P.
2718         * c-decl.c (grokdeclarator): Use VOID_TYPE_P.
2719         (get_parm_info): Likewise.
2720         (store_parm_decls): Likewise.
2721         (combine_parm_decls): Likewise.
2722         (finish_function): Likewise.
2723         * c-typeck.c (build_function_call): Likewise.
2724         (build_binary_op): Likewise.
2725         (build_conditional_expr): Likewise.
2726         (internal_build_compound_expr): Likewise.
2727         (convert_for_assignment): Likewise.
2728         * stmt.c (expend_expr_stmt): Likewise.
2729         (warn_if_unused_value): Likewise.
2730         (expand_return): Likewise.
2731         * c-parse.in (primary): Likewise.
2732         * c-parse.y, c-parse.c, c-parse.h: Regenerate.
2733         * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
2734
2735 Mon Jun  5 06:46:28 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2736
2737         * alias.c (get_alias_set): If compnent is addressable, use alias
2738         set of component.
2739         * c-decl.c (init_decl_processing): Don't call record_component_aliases.
2740         (grokdeclarator): Likewise.
2741         * c-typeck.c (common_type): Likewise.
2742
2743 2000-06-04  Alex Samuel  <samuel@codesourcery.com>
2744
2745         * Makefile.in (OBJS): Remove dyn_string.o
2746         (dyn-string.o): Delete rule.
2747         * dyn-string.c: Delete file
2748         * dyn-string.h: Likewise.
2749
2750 2000-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2751
2752         * Makefile.in (intl.*): Honor non-zero exit codes in the intl
2753         subdir.
2754
2755 2000-06-03  Geoff Keating  <geoffk@cygnus.com>
2756
2757         * alias.c (record_component_aliases): Don't inspect
2758         DECL_NONADDRESSABLE_P of non-FIELD_DECL components of structures.
2759
2760 Sat Jun  3 19:05:30 2000  Michael Meissner  <meissner@redhat.com>
2761
2762         * ifcvt.c (process_insns): If IFCVT_MODIFY_INSN is defined, call
2763         it with the pattern to do machine dependent work.
2764         (cond_exec_process_if_block): If IFCVT_MODIFY_TESTS is defined,
2765         use it to modify the true/false tests used in conditional
2766         execution.  If IFCVT_MODIFY_FINAL and IFCVT_MODIFY_CANCEL are
2767         defined, invoke them if the conversion to conditional execution
2768         was successful or not.
2769
2770         * tm.texi (IFCVT_MODIFY_TESTS): Document.
2771         (IFCVT_MODIFY_INSN): Ditto.
2772         (IFCVT_MODIFY_FINAL): Ditto.
2773         (IFCVT_MODIFY_CANCEL): Ditto.
2774
2775 Sat Jun  3 15:26:13 2000  Matt Kraai <kraai@alumni.carnegiemellon.edu>
2776
2777         * toplev.c (main): Fix misspellings of possibility and language.
2778
2779 2000-06-03  Richard Henderson  <rth@cygnus.com>
2780
2781         * alias.c (record_alias_subset): Initialize has_zero_child in the
2782         superset.
2783
2784 2000-06-03  Richard Earnshaw (rearnsha@arm.com)
2785
2786         * arm.md (untyped_call): Use GEN_CALL macro.
2787
2788 2000-06-02  Pekka Nikander  <pnr@teldanex.tcm.hut.fi>
2789
2790         * Makefile.in: Use $(MAKE) not "make"
2791
2792 Fri Jun  2 19:31:03 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2793
2794         * alias.c (struct alias_set_entry): New field has_zero_child.
2795         (mem_in_disjoint_alias_sets_p): Return 0 if set in either ase.
2796         (get_alias_set): If language-dependent routine set TYPE_ALIAS_SET,
2797         do nothing.
2798         Call record_component_aliases for aggregate types.
2799         (record_alias_subset): Set has_zero_child.
2800         (record_component_aliases, case ARRAY_TYPE): Do nothing if
2801         TYPE_NONALIASES_COMPONENT.
2802         (record_component_aliases, case RECORD_TYPE): Test
2803         DECL_NONADDRESSABLE_P.
2804         * c-decl.c (grokdeclarator): Set DECL_NONADDRESSABLE_P instead
2805         of TREE_ADDRESSABLE.
2806         * calls.c (initialize_argument_information): Only test
2807         TYPE_TRANSPARENT_UNION for UNION_TYPE.
2808         * function.c (assign_parms): Likewise.
2809         * integrate.c (function_cannot_inline_p): Likewise.
2810         * stor-layout.c (finish_record_layout): Don't call
2811         record_component_aliases.
2812         * tree.h (struct tree_int_cst): Use struct tree_common.
2813         (struct tree_real_cst, struct tree_string): Likewise.
2814         (struct tree_complex, struct tree_identifier): Likewise.
2815         (struct tree_list, struct tree_vec, struct tree_exp): Likewise.
2816         (struct tree_block, struct tree_type, struct tree_decl): Likewise.
2817         (TYPE_TRANSPARENT_UNION): Use UNION_TYPE_CHECK.
2818         (TYPE_NONALIASES_COMPONENT): New macro.
2819         (TYPE_AMBIENT_BOUNDEDNESS): Use FUNCTION_TYPE_CHECK.
2820         (DECL_NONADDRESSABLE_P): New macro.
2821         (struct tree_decl): Reorder bits for clarity of how many left;
2822         add non_adressable.
2823
2824 2000-06-02  Jason Merrill  <jason@casey.soma.redhat.com>
2825
2826         * Makefile.in (libgcc.a): Also depend on $(LIB2ADD).
2827         * mklibgcc.in (force): New target.
2828         Make LIB2ADD stuff depend on it.
2829
2830 2000-06-02  Richard Henderson  <rth@cygnus.com>
2831
2832         * alias.c (lang_get_alias_set): Remove.
2833         (get_alias_set): Call it directly, not indirectly.
2834         * c-common.c (lang_get_alias_set): Rename from c_get_alias_set.
2835         * c-common.h (c_get_alias_set): Don't declare.
2836         * c-decl.c (init_decl_processing): Don't set lang_get_alias_set.
2837         * expr.h (lang_get_alias_set): Declare as function, not pointer.
2838
2839 2000-06-02  Bruce Korb  <bkorb@gnu.org>
2840
2841         * fixinc/server.c(sig_handler):  resume closing server on SIGPIPE
2842         (server_setup):  define the server's master pid
2843         (close_server):  actually do the deed IFF we are the server's master
2844
2845 2000-06-02  Jakub Jelinek  <jakub@redhat.com>
2846
2847         * c-common.c (c_get_alias_set): Check whether signed_type did not
2848         return its argument before calling get_alias_set on the result.
2849
2850 2000-06-02  Andrew MacLeod  <amacleod@cygnus.com>
2851
2852         * expr.c (emit_group_load): Fix typo, GET_MODE not GET_CODE.
2853
2854 Fri Jun  2 00:22:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2855
2856         * sh.h (CPP_SPEC): Add -D__NOMACSAVE__ for -mnomacsave.
2857         (CONDITIONAL_REGISTER_USAGE): Mac registers are call used
2858         for TARGET_NOMACSAVE.
2859         (NOMACSAVE_BIT): Define.
2860         (TARGET_NOMACSAVE): Define.
2861         (TARGET_SWITCHES): Add "nomacsave".
2862
2863 2000-06-02  Toshiyasu Morita  <toshi.morita@sega.com>
2864
2865         * sh.md (untyped_call): Remove excess parameters
2866
2867 2000-06-01  Loren J. Rittle  <ljrittle@acm.org>
2868
2869         * fixinc/inclhack.def (osf_namespace_a): Relax expression to
2870         match that used before the conversion to c_fix style.
2871         * fixinc/fixincl.x: regenerate
2872
2873 2000-06-01  Stan Cox  <scox@cygnus.com>
2874
2875         * varray.h (VARRAY_PUSH_GENERIC_PTR, VARRAY_PUSH_CHAR_PTR): Fix
2876         macro argument typo.
2877
2878 2000-06-01  Zack Weinberg  <zack@wolery.cumb.org>
2879
2880         * cpplex.c (maybe_macroexpand): Use CPP_WTRADITIONAL.  Improve
2881         error message.
2882         * cpplib.c (parse_include): Remove support for VAX-C
2883         "#include starlet" misfeature.
2884
2885 2000-05-31 Laurynas Biveinis <lauras@softhome.net>
2886
2887         * cppfiles.c: conditionally define O_BINARY.
2888         (open_include_file): pass O_BINARY to open().
2889
2890 2000-06-01  Richard Henderson  <rth@cygnus.com>
2891
2892         * i960.c (i960_br_predict_opcode): Remove.
2893         (i960_print_operand) [+]: Emit branch prediction hints.
2894         (i960_function_arg): Return early for VOIDmode.
2895         (i960_round_align): Return early for incomplete types.
2896         * i960.h (PRINT_OPERAND_PUNCT_VALID_P): New.
2897         * i960.md (all conditional branches): Add "%+".
2898
2899 Thu Jun  1 12:24:21 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2900
2901         * alias.c (get_alias_set): Don't call language-specific routine more
2902         than is needed and clean up code a bit.
2903         * c-common.c (c_get_alias_set): All references whose type
2904         is char get alias set 0, but character types need not.
2905         * varasm.c (make_function_rtl): Don't call set_mem_attributes.
2906         (make_decl_rtl): Don't call it for FUNCTION_DECL.
2907
2908 2000-06-01  Bruce Korb  <bkorb@gnu.org>
2909
2910         * fixinc/tests/base/...: new base result files
2911
2912 Thu Jun  1 09:37:35 2000  Clinton Popetz  <cpopetz@cygnus.com>
2913
2914         * config/i386/i386.c (ix86_use_fcomi_compare): Make global.
2915         * config/i386/i386-protos.h (ix86_use_fcomi_compare): Declare.
2916         * config/i386/i386.md (*fp_jcc_3, *fp_jcc_4): Disable if we
2917         will use FCOMI.
2918
2919 2000-06-01  Richard Henderson  <rth@cygnus.com>
2920
2921         * Makefile.in (c-decl.o): Depend on $(EXPR_H), not expr.h.
2922
2923         * c-decl.c (init_decl_processing): Set lang_get_alias_set first thing.
2924
2925 2000-05-31  Richard Henderson  <rth@cygnus.com>
2926
2927         * config/ia64/ia64.c (sdata_symbolic_operand): Consider small
2928         CONSTANT_POOL_ADDRESS_P addresses for .sdata.
2929         * config/ia64/sysv4.h (SELECT_RTX_SECTION): New.
2930
2931 2000-05-31  Richard Henderson  <rth@cygnus.com>
2932
2933         * config/ia64/ia64-protos.h (ia64_expand_prediction): Remove.
2934         * config/ia64/ia64.c (ia64_expand_prediction): Move code ...
2935         (ia64_print_operand) [+]: ... here.  Use current_output_insn.
2936         * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): New.
2937         * config/ia64/ia64.md (all branch/call patterns): Use %+.
2938
2939 2000-05-31  Richard Henderson  <rth@cygnus.com>
2940
2941         * ifcvt.c (cond_exec_process_insns): Don't ever ignore clobbers.
2942
2943 2000-05-31  Richard Henderson  <rth@cygnus.com>
2944
2945         * ifcvt.c (merge_if_block): Be prepared for JOIN to have no
2946         remaining edges.
2947         (find_if_block): Allow THEN with no outgoing edges.
2948         * flow.c (merge_blocks_nomove): Remove a barrier not following
2949         a jump as well.
2950
2951 2000-05-31  Richard Henderson  <rth@cygnus.com>
2952
2953         * flow.c (propagate_block): Move initialization of mem_set_list ...
2954         (init_propagate_block_info): ... here.  Also track blocks with
2955         no successors; don't scan insns if ! PROP_SCAN_DEAD_CODE.
2956
2957 2000-05-31  Richard Henderson  <rth@cygnus.com>
2958
2959         * jump.c (jump_optimize_1): Revert 05-18 change.
2960
2961 2000-05-31  Mark Mitchell  <mark@codesourcery.com>
2962
2963         * invoke.texi: Remove documentation for -fguiding-decls.
2964
2965 2000-05-31  Richard Henderson  <rth@cygnus.com>
2966
2967         * configure.in: Fix typo last change.
2968
2969 2000-05-31  Philipp Thomas  <pthomas@suse.de>
2970
2971         * configure.in (enable-nls): Enable if build == host, i.e. when
2972         not building a canadian cross compiler.
2973         (enable-maintainer-mode): Added for use with i18n.
2974         * aclocal.m4 (AM_GNU_GETTEXT): Only build catalogs that are a
2975         cross section of ALL_LINGUAS and LINGUAS.
2976         * configure: Rebuild.
2977
2978 2000-05-31  Bruce Korb  <bkorb@gnu.org>
2979
2980         * fixinc/check.tpl: rework to use test result tree
2981         * fixinc/Makefile.in: change invocation of check script
2982         * fixinc/check.diff: No longer needed
2983         * fixinc/fixincl.x: regenerate
2984         * fixinc/inclhack.def:  add new tests
2985         * fixinc/tests/base/arch/i960/archI960.h:  New test result
2986         * fixinc/tests/base/curses.h: modified test result
2987         * fixinc/tests/base/stdio.h: ditto
2988         * fixinc/tests/base/time.h: ditto
2989         * fixinc/tests/base/sys/asm.h: ditto
2990         * fixinc/tests/base/sys/stat.h: ditto
2991         * fixinc/tests/base/sys/wait.h: ditto
2992
2993 Wed May 31 13:17:20 2000  Philippe De Muyter  <phdm@macqel.be>
2994
2995         * except.c (clear_function_eh_region): Do not free NULL.
2996
2997 Wed May 31 08:07:52 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2998
2999         * Makefile.in (c-decl.o): Depend on rtl.h and expr.h.
3000         * alias.c (struct alias_entry): alias_set is HOST_WIDE_INT.
3001         (REG_BASE_VALUE): Remove unneeded cast to unsigned.
3002         (get_alias_set_entry): ALIAS_SET arg is HOST_WIDE_INT.
3003         (find_base_decl): New function, from c_find_base_decl in c-common.c.
3004         (new_alias_set): Moved from tree.c; return is HOST_WIDE_INT.
3005         (get_alias_set): Likewise.
3006         Major rework to do more things and allow language-specific code
3007         to just handle special-cases.
3008         (record_alias_subset): Args are HOST_WIDE_INT.
3009         (record_component_alias): Local vars are HOST_WIDE_INT.
3010         Don't handle COMPLEX_EXPR.
3011         (get_varargs_alias_set): Moved from builtins.c.
3012         (get_frame_alias_set): New function.
3013         * builtins.c (expand_builtin_return_address): Use frame alias set.
3014         (expand_builtin_setjmp, expand_builtin_longjmp): Use alias set
3015         for setjmp buffer.
3016         (get_memory_rtx): Rework to use set_mem_attributes.
3017         (get_varargs_alias_set): Deleted from here.
3018         * c-common.c (c_apply_type_quals_to_decl): Alias sets now HOST_WIDE_INT.
3019         (c_find_base_decl): Deleted from here.
3020         (c_get_alias_set): Remove many cases and rework to just handle
3021         C-specific cases.
3022         * c-common.h (c_get_alias_set): Returns HOST_WIDE_INT.
3023         * c-decl.c (rtl.h, expr.h): Now included.
3024         (init_decl_processing): Call record_component_aliases on array types.
3025         (grokdeclarator): Likewise.
3026         Set TREE_ADDRESSABLE for all fields that are not bitfields.
3027         * c-typeck.c (common_type): Call record_component_aliases for array.
3028         * caller-save.c (setup_save_areas): Rework register loop for unsigned.
3029         Set all save areas to the frame alias set.
3030         * calls.c (initialie_argument_information): Call set_mem_attributes.
3031         (compute_argument_addresses, expand_call): Likewise.
3032         * explow.c (set_mem_attributes): New function.
3033         (stabilize): Use MEM_COPY_ATTRIBUTES and force_reg.
3034         * expr.c (struct move_by_pieces): Remove {to,from}_{struct,readonly}.
3035         LEN and OFFSET now HOST_WIDE_INT.
3036         (clear_by_pieces): Similar changes.
3037         (move_by_pieces): LEN now HOST_WIDE_INT; don't set deleted fields.
3038         (move_by_pieces_ninsns): Now returns unsigned HOST_WIDE_INT.
3039         (move_by_pieces_1): Don't use deleted fields, use MEM_COPY_ATTRIBUTES.
3040         (clear_by_pieces_1): Likewise.
3041         (emit_push_insn): Call set_mem_attributes.
3042         (expand_expr, case INDIRECT_REF): Likewise.
3043         (expand_expr, case VAR_DECL): Call change_address.
3044         * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE): Use host_integerp and
3045         tree_low_cst.
3046         (get_varargs_alias_set, get_frame_alias_set): New decls.
3047         (record_base_value, record_alias_subset, lang_get_alias_set): Likewise.
3048         (new_alias_set, set_mem_attributes): Likewse.
3049         * function.c (struct temp_slot): ALIAS_SET is HOST_WIDE_INT.
3050         (assign_stack_temp_for_type): Likewise.
3051         Can split slot even if alias set since can copy.
3052         Set MEM_ALIAS_SET and MEM_SET_IN_STRUCT_P.
3053         (assign_temp): Use host_integerp and tree_low_cst.
3054         (put_var_into_stack): Properly handle SAVE_EXPR.
3055         (put_addressof_into_stack): Likewise.
3056         (assign_parms): Call set_mem_attributes.
3057         Delete #if 0 code.
3058         (fix_lexical_address): Put reference to chain into frame alias set.
3059         (expand_function_start): Call set_mem_attributes.
3060         * integrate.c (expand_inline_function): Likewise.
3061         * recog.c (adj_offsettable_operand): Use MEM_COPY_ATTRIBUTES.
3062         * regmove.c (try_apply_stack_adjustment): Likewise.
3063         * reload.c (push_reload, make_memloc): Likewise.
3064         * reload1.c (alter_reg): Make alias sets for spilled pseudos.
3065         * rtl.def (MEM): Update comment.
3066         * rtl.h (MEM_ALIAS_SET): Now uses XCWINT.
3067         (move_by_pieces): Change length to HOST_WIDE_INT.
3068         (record_base_value, record_alias_subset): Delete from here.
3069         * stmt.c (expand_decl): Call set_mem_attributes.
3070         * stor-layout.c (finish_record_layout): Call record_component_aliases.i
3071         * toplev.c (compile_file): Call init_alias_once earlier.
3072         * tree.c (lang_get_alias_set, get_alias_set, new_alias_set): Deleted
3073         from here: now in alias.c.
3074         * tree.h (struct tree_type): alias_set is HOST_WIDE_INT.
3075         (struct tree_decl): Likewise.
3076         (get_alias_set, new_alias_set, lang_get_alias_set): Deleted from here.
3077         * varasm.c (make_function_rtl, make_decl_rtl): Call set_mem_attributes.
3078         (output_constant_def, force_const_mem): Likewise.
3079
3080         * flow.c (propagate_block): If block has no successors, stores to
3081         frame are dead if not used.
3082
3083 2000-05-31  Nathan Sidwell  <nathan@codesourcery.com>
3084
3085         * stmt (expand_end_case): Reorder conversion sequence for jump
3086         table to avoid extra truncations.
3087
3088 Wed May 31 01:31:42 2000  Jeffrey A Law  (law@cygnus.com)
3089
3090         * ifcvt.c (cond_exec_process_if_block): Do nothing if the last insn
3091         in the block is more than just a simple conditional branch.
3092         (noce_process_if_block): Similarly.
3093
3094 Tue May 30 22:25:57 2000  Alexandre Oliva  <aoliva@cygnus.com>
3095
3096         * optabs.c (prepare_float_lib_cmp): Protect *px and *py from
3097         queue.
3098
3099 2000-05-30  Michael Meissner  <meissner@redhat.com>
3100
3101         * dwarf2out.c (dwarf2out_frame_debug_expr): Ignore HIGH
3102         instructions.  Treat LO_SUM operations as loading the full integer
3103         constant.
3104
3105 2000-05-30  Richard Henderson  <rth@cygnus.com>
3106
3107         * combine.c (get_pos_from_mask): Test exact_log2 result as signed.
3108
3109 2000-05-30  Richard Henderson  <rth@cygnus.com>
3110
3111         * bb-reorder.c (emit_jump_to_block_after): Protect use of HAVE_return.
3112
3113 2000-05-30  Bruce Korb  <bkorb@gnu.org>
3114
3115         * fixinc/tests/*:  Added expected result files for fixinc's make check
3116         * fixinc/fixfixes(char_macro_*_fix): Restore original algorithm
3117
3118 2000-05-30  Richard Henderson  <rth@cygnus.com>
3119
3120         * config/alpha/alpha.md (*setne_internal): Use match_operator
3121         instead of working down from insn.
3122
3123 2000-05-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3124
3125         * invoke.texi (-Wtraditional): Update WRT function macros.
3126
3127 Tue May 30 09:57:32 2000  Philippe De Muyter  <phdm@macqel.be>
3128
3129         * except.c (free_exception_table): Do not free NULL.
3130
3131 2000-05-29  Zack Weinberg  <zack@wolery.cumb.org>
3132
3133         * cpplib.c (do_if): Don't save and restore only_seen_white here.
3134         * cppexp.c (_cpp_parse_expr): Save and restore only_seen_white
3135         and skipping here.
3136
3137 2000-05-29  Richard Earnshaw (rearnsha@arm.com)
3138
3139         * flow.c (mark_used_reg): If a register is unconditionally live,
3140         remove any conditional death information.
3141
3142 2000-05-29  Richard Henderson  <rth@cygnus.com>
3143
3144         * final.c (current_output_insn): New.
3145         (final_scan_insn): Set it.
3146         * output.h: Declare it.
3147
3148 2000-05-29  Richard Henderson  <rth@cygnus.com>
3149
3150         * stor-layout.c (finalize_record_size): Fix typo.
3151
3152         * jump.c (redirect_jump): Don't emit NOTE_INSN_FUNCTION_END
3153         if nlabel is null.
3154
3155 2000-05-29  Zack Weinberg  <zack@wolery.cumb.org>
3156
3157         * cpplib.h (cpp_reader): Remove if_stack.  Change
3158         potential_control_macro to a cpp_hashnode *.  Add skipping flag.
3159         * cpphash.h (struct ihash): Change control_macro to a
3160         cpp_hashnode * and shorten name to cmacro.
3161         Add NEVER_REINCLUDE constant.
3162
3163         * cppfiles.c (redundant_include_p): Drop cpp_reader argument.
3164         Examine the cmacro node directly, no need to call cpp_defined.
3165         (_cpp_execute_include, read_include_file): Set cmacro to
3166         NEVER_REINCLUDE, not U"".
3167         * cpplex.c (cpp_push_buffer): Don't set new->if_stack.
3168         (cpp_get_token): If pfile->skipping is true, discard text and
3169         keep scanning until we hit a directive; don't expand macros.
3170
3171         * cpplib.c (struct if_stack): Remove if_succeeded, add
3172         was_skipping. Change control_macro to a cpp_hashnode * and
3173         shorten name to cmacro.  Remove typedef IF_STACK.
3174         (parse_ifdef), detect_if_not_defined): Return a cpp_hashnode *.
3175         (conditional_skip, skip_if_group,
3176         consider_directive_while_skipping): Delete.
3177         (push_conditional): New.
3178         (_cpp_handle_directive): Don't process directives other than
3179         conditionals if we are skipping.
3180
3181         (do_ifdef, do_ifndef, do_if, do_else, do_elif, do_endif):
3182         Update to new scheme.
3183         (validate_else): Skip rest of line here, unconditionally.
3184         (_cpp_unwind_if_stack): The stack is per-buffer.  Force
3185         pfile->skipping off.
3186
3187         (all): Remove `scare quotes' from error messages.
3188
3189 2000-05-29  Richard Henderson  <rth@cygnus.com>
3190
3191         * function.c (emit_return_into_block): New line_note arg; emit it.
3192         (thread_prologue_and_epilogue_insns): Attempt to locate a line note
3193         for the close brace to accompany HAVE_return.  Move all line notes
3194         following the epilogue to before the NOTE_INSN_EPILOGUE_BEG.
3195
3196 2000-05-29  Richard Henderson  <rth@cygnus.com>
3197
3198         * longlong.h [__alpha] (count_leading_zeros): New.
3199         (count_trailing_zeros): New.
3200         (COUNT_LEADING_ZEROS_0): New.
3201
3202         * config/alpha/alpha.c (alpha_zero_comparison_operator): New.
3203         (alpha_split_conditional_move): New.
3204         * config/alpha/alpha-protos.h: Prototype them.
3205         * config/alpha/alpha.h (PREDICATE_CODES): Update.
3206         (CPP_CPU_DEFAULT_SPEC): Fix typo for EV67.
3207         * config/alpha/alpha.md: Update ffs cix commentary.
3208         (*ze_and_ne): New.
3209         (*nabssf2, *nabsdf2): New.
3210         (*mov[qhsd]icc_internal): Use add_operand.
3211         (if_then_else constant splitters): New.
3212         (*cmp_sadd_di, *cmp_sadd_si, *cmp_sadd_sidi): New.
3213         (*cmp_ssub_di, *cmp_ssub_si, *cmp_ssub_sidi): New.
3214
3215 2000-05-29  Richard Henderson  <rth@cygnus.com>
3216
3217         * combine.c (force_to_mode) [MINUS]: Convert subtraction from
3218         a constant to NEG or NOT when conditions allow.
3219
3220         * combine.c (combine_simplify_rtx): Don't create an if_then_else
3221         unless both args are general_operand.  Don't canonicalize plus
3222         to ior unless it helps.
3223
3224         * toplev.c (rest_of_compilation): Set no_new_pseudos after flow1;
3225         instead track register_life_up_to_date.  Toggle no_new_pseudos
3226         around if_convert.
3227
3228 2000-05-28  Geoff Keating  <geoffk@cygnus.com>
3229
3230         * config/rs6000/rs6000.c (output_cbranch): Escape '%' characters
3231         so output_operand doesn't see them.
3232
3233 Sun May 28 18:37:07 2000  Clinton Popetz  <cpopetz@cygnus.com>
3234
3235         * lcm.c (make_preds_opaque): Fix comment.
3236         (optimize_mode_switching): Use NORMAL_MODE instead of
3237         MODE_USES_IN_EXIT_BLOCK.  Change leftover instance of
3238         FP_MODE_NONE to no_mode.  Rename MODE_AT_ENTRY to NORMAL_MODE.
3239         Handle insertions before an existing NOTE_INSN_BASIC_BLOCK.
3240         * tm.texi (OPTIMIZE_MODE_SWITCHING): Refer to NORMAL_MODE.
3241         (MODE_USES_IN_EXIT_BLOCK): Delete.
3242         (MODE_AT_ENTRY) Rename to NORMAL_MODE.
3243         * sh.h (MODE_USES_IN_EXIT_BLOCK): Delete.
3244         (MODE_AT_ENTRY): Rename to NORMAL_MODE.
3245         (MODE_NEEDED): Don't look for USE.
3246         (EPILOGUE_USES): Define.
3247
3248 Sun May 28 23:26:59 2000  Philippe De Muyter <phdm@macqel.be>
3249
3250         * mklibgcc.in (all): Variable initialised to `libgcc'.
3251
3252 2000-05-28  Gabriel Dos Reis  <gdr@codesourcery.com>
3253
3254         * toplev.h (skip_leading_substring): New macro.
3255         * toplev.c (decode_f_option): Use skip_leading_substring instead
3256         of strncmp.
3257         (decode_W_option): Likewise.
3258
3259 2000-05-28  Nick Clifton  <nickc@cygnus.com>
3260
3261         * tm.texi (CONDITIONAL_REGISTER_USAGE): Document that it can
3262         modify reg_names.
3263
3264 2000-05-28  Richard Henderson  <rth@cygnus.com>
3265
3266         * regclass.c (record_operand_costs): Protect reg_changes_size
3267         with CLASS_CANNOT_CHANGE_SIZE.
3268
3269         * loop.c (instrument_loop_bct): Set JUMP_LABEL on the new insn.
3270
3271 2000-05-28  Richard Henderson  <rth@cygnus.com>
3272
3273         * function.c (diddle_return_value): A pcc-style struct return
3274         returns a pointer.
3275
3276 2000-05-27  Zack Weinberg  <zack@wolery.cumb.org>
3277
3278         * cppfiles.c: Read files in, using mmap if possible, then
3279         prescan them separately.
3280         (read_file, read_with_read): New functions.
3281         * cpplex.c: Don't define UCHAR_MAX.
3282         (_cpp_read_and_prescan): Rename to _cpp_prescan.  Don't read
3283         the file here.
3284
3285         * cppinit.c (handle_option): Automatically define __cplusplus,
3286         __OBJC__, __ASEEMBLER__, _LANGUAGE_FORTRAN here when we see
3287         the respective -lang switch.
3288
3289         * cpphash.h (enum node_type, struct hashnode, _cpp_lookup
3290         prototype): Move to...
3291         * cpplib.h: ... here.  Rename struct hashnode to struct
3292         cpp_hashnode and give it a typedef.  Rename _cpp_lookup to
3293         cpp_lookup.  Add 'fe_value' slot, a union tree_node *.
3294
3295 2000-05-27  Geoffrey Keating  <geoffk@cygnus.com>
3296
3297         * config/rs6000/rs6000.md (movsi): Constify 'name'.
3298
3299         * regclass.c [CLASS_CANNOT_CHANGE_SIZE]
3300         (class_can_change_size): New variable.
3301         (reg_changes_size): New variable.
3302         (init_reg_sets_1): Initialise class_can_change_size.
3303         (record_operand_costs): Remove subreg_changes_size.
3304         Don't pass it around.  Instead update reg_changes_size.
3305         (regclass): Initialise and free reg_changes_size.  If a register
3306         changes size, don't preference it to a class that contains
3307         registers that can't change size.
3308         (record_reg_classes): Don't look at subreg_changes_size.
3309
3310 2000-05-27  Richard Henderson  <rth@cygnus.com>
3311
3312         * print-rtl.c (reg_names): Remove const.
3313         * regclass.c (reg_names): Likewise.
3314         * regs.h (reg_names): Likewise.
3315         * hard-reg-set.h (reg_names): Likewise.
3316
3317 2000-05-27  Richard Henderson  <rth@cygnus.com>
3318
3319         * config/rs6000/rs6000.md (untyped_call): Use GEN_CALL.
3320
3321 2000-05-27  Richard Henderson  <rth@cygnus.com>
3322
3323         * config/alpha/alpha.c (alpha_does_function_need_gp): Test
3324         TARGET_PROFILING_NEEDS_GP in the if, instead of with an ifdef.
3325         (alpha_expand_prologue): Emit prologue_mcount if needed.
3326         * config/alpha/alpha.h (TARGET_PROFILING_NEEDS_GP): Default to 0.
3327         * config/alpha/alpha.md (prologue_mcount): New.
3328         * config/alpha/linux.h (FUNCTION_PROFILER): Remove.
3329         (TARGET_PROFILING_NEEDS_GP): Undef before redefining.
3330         * config/alpha/netbsd.h: Likewise.
3331
3332 2000-05-27  Richard Henderson  <rth@cygnus.com>
3333
3334         * config/alpha/elf.h (SELECT_SECTION): Mirror Kenner's May 19
3335         change to config/elfos.h.
3336
3337 2000-05-27  Richard Henderson  <rth@cygnus.com>
3338
3339         * Makefile.in (resource.o): Depend on except.h.
3340         * except.h (output_exception_table_data): Prototype.
3341         * genconfig.c (gen_peephole2): Prototype.
3342         * genemit.c (main): Include ggc.h.
3343         * genoutput.c: Revert parts of last change: include errors.h
3344         (main): Set progname.
3345         * recog.c: Include hard-reg-set.h before recog.h.
3346         * resource.c: Include except.h.
3347
3348         * config/alpha/alpha-protos.h (alpha_arg_info_reg_val): Protect
3349         with RTX_CODE.
3350         (alpha_write_linkage): Protect with BUFSIZ.
3351         (alpha_need_linkage): Update prototype.
3352         * config/alpha/alpha.c (function_arg): Move VMS code here.
3353         (alpha_links_base): Remove.
3354         (alpha_links): New.
3355         (mark_alpha_links_node, mark_alpha_links): New.
3356         (alpha_write_one_linkage): New.
3357         (alpha_need_linkage): Use a splay tree.  Build the linkage symbol.
3358         (alpha_write_linkage): Use splay_tree_foreach.
3359         * config/alpha/alpha.md (call_vms): Use alpha_need_linkage
3360         to get the linkage symbol.
3361         (call_value_vms): Likewise.
3362         * config/alpha/elf.h (output_file_directive): Remove decl.
3363         (ctors_section, dtors_section): Prototype.
3364         (sbss_section, sdata_section): Prototype.
3365         * config/alpha/vms.h (FUNCTION_ARG): Remove.
3366         (readonly_section, link_section, literals_section): Prototype.
3367         (ctors_section, dtors_section): Prototype.
3368         (vms_valid_decl_attribute_p): Remove decl.
3369         (alpha_arg_type, alpha_arg_info_reg_val): Likewise.
3370
3371 2000-05-27  Geoff Keating  <geoffk@cygnus.com>
3372
3373         * reload.c (get_secondary_mem): Don't widen floating-point modes.
3374
3375         * combine.c (subst): Honour CLASS_CANNOT_CHANGE_SIZE when
3376         substituting the REG in a (subreg:X (reg:Y ...)).
3377
3378 2000-05-28  Neil Booth  <NeilB@earthling.net>
3379
3380         * cpplex.c (_cpp_lex_line): Merge vertical space.  Flag
3381         first token of a line BOL.  Update EOF code for this.
3382         Remove illegal directive check - it appears in the (not
3383         yet committed) caller.
3384         * cpplib.h (BOL): New flag.
3385
3386 2000-05-28  Neil Booth  <NeilB@earthling.net>
3387
3388         * cpplex.c (_cpp_init_toklist): No comment space to initialise.
3389         (_cpp_free_toklist): No comment space to free.
3390         (expand_comment_space): Remove.
3391         (save_comment_space): Place the comment in the current token and
3392         not in a separate comment space.
3393         (_cpp_lex_line): Save comments during plain code and #define
3394         directives only.
3395         * cpplib.h (struct _cpp_toklist): Remove comment space.
3396
3397 2000-05-28  Neil Booth  <NeilB@earthling.net>
3398
3399         * cppexp.c (parse_assertion): Supply extra argument to
3400         _cpp_init_toklist.
3401         * cpplib.c (do_assert, do_unassert): Similarly.
3402         * cpphash.h (_cpp_init_toklist) Update.
3403         (_cpp_expand_token_space): New.
3404         (DUMMY_TOKEN, NO_DUMMY_TOKEN): New.
3405         * cpplex.c (_cpp_init_toklist): New argument.
3406         (parse_string2): New argument multiline_ok.
3407         (spell_token): Take a const cpp_token *.
3408         (INIT_NAME): Replace with INIT_TOKEN_NAME.  Update tokens_used.
3409         (SPELL_ macros): Replace with enum.
3410         (expand_token_space): Replace with _cpp_expand_token_space.
3411         Take COUNT argument.
3412         (IS_DIRECTIVE): Update.
3413         (_cpp_lex_line): Update token structure before parsing number.
3414         Don't assume start at beginning of token list.
3415         (save_comment): Use INIT_TOKEN_NAME.
3416
3417 2000-05-27  Zack Weinberg  <zack@wolery.cumb.org>
3418
3419         * configure.in (stage1_warn_cflags): Add -Wstrict-prototypes
3420         -Wmissing-prototypes.
3421         * configure: Regenerate.
3422         * gcc.texi: Remove explanation of MD_CALL_PROTOTYPES.
3423
3424         * builtins.c, calls.c: Change all instances of gen_call_* or
3425         gen_sibcall_* to GEN_CALL_* and GEN_SIBCALL_*.
3426         * calls.c (struct_value_size_rtx): Separate definition from
3427         initialization to avoid unused variable warning.
3428
3429         * genflags.c (gen_macro): New function.
3430         (gen_proto): Call it for gen_call_* and gen_sibcall_*.
3431         (gen_nonproto): Delete.
3432         (gen_insn): Put all insns on the same obstack.
3433         (main): Generate prototypes for everything unconditionally.
3434
3435         * configure.in: Add AC_CHECK_TYPE(ssize_t).  Remove commented
3436         out check for wchar_t.
3437         * acconfig.h: Add template for ssize_t.  Remove @TOP@.
3438         * system.h: Add infrastructure for defining missing
3439         TYPE_MAX/TYPE_MIN macros.  Use it to provide fallback
3440         definitions of UCHAR_MAX and SSIZE_MAX.
3441         * configure: Regenerate.
3442         * config.in: Regenerate.
3443
3444         * Makefile.in (libgcc2.ready): Rename to libgcc.ready.
3445         Depend on $(LANGUAGES) as well as $(GCC_PATCHES) and fixed
3446         headers.
3447         (clean): No need to delete libgcc1.a, libgcc1-asm.a,
3448         libgcc2.a, or libgcc1.null.
3449
3450 2000-05-27  Richard Henderson  <rth@cygnus.com>
3451
3452         * Makefile.in (recog.o): Don't depend on resource.h.
3453         * recog.c: Don't include resource.h.
3454         (recog_last_allowed_insn): Remove.
3455         (recog_next_insn): Remove.
3456         (struct peep2_insn_data): New.
3457         (peep2_insn_data, peep2_current): New.
3458         (peep2_next_insn): New.
3459         (peep2_regno_dead_p, peep2_reg_dead_p): New.
3460         (peep2_find_free_register): New.
3461         (peephole2_optimize): Track life information by insn as we go.
3462         * recog.h: Update declarations.
3463         * resource.c (find_free_register, reg_dead_p): Remove.
3464         * resource.h: Remove their declarations.
3465         * toplev.c: Include hard-reg-set.h before recog.h.
3466
3467         * genconfig.c (max_insns_per_peep2): New.
3468         (gen_peephole2): New.
3469         (main): Call it.
3470         * genemit.c (output_peephole2_scratches): Generate calls to
3471         peep2_find_free_register; adjust surrounding code.
3472         (main): Have insn-emit.c include hard-reg-set.h before recog.h.
3473         * genrecog.c (change_state): Don't track last_insn.
3474         (write_action): Write into *_pmatch_len before accepting.
3475         (write_tree): Adjust peephole2_insns and subroutines to match.
3476
3477         * config/i386/i386.md (all peepholes): Use peep2_regno_dead_p.
3478
3479         * config/alpha/alpha.c (hard_fp_register_operand): Mind the mode.
3480         (hard_int_register_operand): New.
3481         * config/alpha/alpha-protos.h: Declare it.
3482         * config/alpha/alpha.h (PREDICATE_CODES): Update.
3483         * config/alpha/alpha.md (peep2 patterns): Use hard_int_register_operand
3484         as needed; use peep2_reg_dead_p instead of dead_or_set_p.
3485
3486 2000-05-27  Richard Henderson  <rth@cygnus.com>
3487
3488         * function.c (thread_prologue_epilogue_insns): Don't move the
3489         line note at the head of the chain.  Only force a lineno note
3490         before the end of block 0.
3491
3492 2000-05-27  Richard Henderson  <rth@cygnus.com>
3493
3494         * gensupport.c (collect_insn_data): Record the maximum number
3495         of alternatives, not the last seen.
3496
3497         * genoutput.c: Don't include errors.h.
3498         (struct data): Add lineno member.
3499         (have_error): New.
3500         (scan_operands): Use message_with_line instead of error.
3501         (validate_insn_alternatives): Likewise.
3502         (gen_insn): Accept and store the pattern's line number.
3503         (gen_peephole, gen_expand, gen_split): Likewise.
3504         (main): Don't set progname.  Pass line_no to gen_foo.
3505
3506 2000-05-27  Richard Henderson  <rth@cygnus.com>
3507
3508         * config/d30v/d30v.c (d30v_print_operand): Handle ':'.
3509         * config/d30v/d30v.h (PRINT_OPERAND_PUNCT_VALID_P): Accept ':'.
3510         * config/d30v/d30v.md (attr predicable): New.
3511         (all insn patterns): Mark non-predicable patterns; use %: on the rest.
3512         (andsi3*): Unify into one pattern.
3513         (iorsi3*, xorsi3*): Likewise.
3514         (peephole2 patterns): Use peep2_reg_dead_p; verify not a
3515         conditional return.
3516         (old cond_exec patterns): Remove.
3517         (define_cond_exec): New.
3518
3519 Sat May 27 11:01:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3520
3521         * tree.h (TREE_CODE_LENGTH): New macro.
3522         * c-common.c (c_find_base_decl): Use it.
3523         * expr.c (safe_from_p): Likewise.
3524         * print-tree.c (print_node): Likewise.
3525         * tree.c (make_node, copy_node, get_identifier): Likewie.
3526         (first_rtl_op, contains_placeholder_p, substitute_in_expr): Likewise.
3527         (build, build_nt, build_parse_node, simple_cst_equal): Likewise.
3528         * fold-const.c (make_range): Likewise.
3529         (fold): Likewise; also use first_rtl_op.
3530         * c-iterate.c (collect_iterators): Use first_rtl_op.
3531         * calls.c (calls_function_1): Likewise; also rename TYPE to CLASS.
3532         Use IS_EXPR_CODE_CLASS.
3533         (preexpand_calls): Likewise.
3534         * ggc-common.c (ggc_mark_trees): Rework to use first_rtl_op
3535         and TREE_CODE_LENGTH.
3536         * stmt.c (warn_if_unused_value): If no operands, no unused value.
3537
3538 2000-05-26  Geoffrey Keating  <geoffk@cygnus.com>
3539
3540         * config/rs6000/rs6000.md (movsi_internal1): Use '%a1' rather
3541         than '%1(%*)'.
3542         (movdi_internal64): Likewise.
3543
3544         * config/rs6000/rs6000.md: Correct order of operands for DImode
3545         boolean patterns.
3546
3547         * config/rs6000/rs6000.c (boolean_or_operator): New function.
3548         * config/rs6000/rs6000-protos.h (boolean_or_operator): Prototype it.
3549         * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_or_operator.
3550         * config/rs6000/rs6000.md: Use boolean_or_operator instead of
3551         boolean_operator for the boolean patterns without NOTs.
3552
3553         * config/rs6000/rs6000.c (reg_or_logical_cint_operand): Rename
3554         from reg_or_u_cint_operand.  Change comment and behaviour.
3555         (logical_operand): Clean up, add assertion.
3556         (non_logical_cint_operand): Also check for
3557         reg_or_logical_cint_operand.
3558         * config/rs6000/rs6000.h (PREDICATE_CODES): Update.
3559         * config/rs6000/rs6000.md (iorsi3): Use reg_or_logical_cint_operand
3560         in the expander.
3561         (xorsi3): Likewise.
3562         (iordi3): Likewise.
3563         (xordi3): Likewise.
3564
3565 2000-05-26  Mark Mitchell  <mark@codesourcery.com>
3566
3567         * tree.h (struct record_layout_info): Rename to (struct
3568         record_layout_info_s).
3569         * stor-layout.c (start_record_layout): Replace
3570         `record_layout_info' with `record_layout_info_s'.
3571
3572 2000-05-26  Richard Earnshaw  <rearnsha@arm.com>
3573
3574         * flow.c (find_label_refs): New function.
3575         (find_basic_blocks_1): Call it for each alternative of a call
3576         placeholder.
3577
3578 2000-05-26  Richard Earnshaw  <rearnsha@arm.com>
3579
3580         * ifcvt.c (cond_exec_get_condition): Set test_if to the SET_SRC
3581         of get_pc.
3582
3583 2000-05-25  Richard Henderson  <rth@cygnus.com>
3584
3585         * config/alpha/alpha.c (alpha_comparison_operator): Don't be
3586         so strict about DImode.
3587         (alpha_swapped_comparison_operator): Likewise.
3588         * config/alpha/alpha.md (*setne_internal): Name it.  Allow
3589         any integer output mode.
3590         (*setcc_internal): Likewise.
3591         (*setcc_swapped_internal): Likewise.
3592         (*movdicc_internal, *movdicc_lbc, *movdicc_lbs): Name them.
3593         (*mov[qhs]icc_internal): New.
3594         (*mov[qhs]icc_lbc, *mov[qhs]icc_lbs): New.
3595
3596 2000-05-25  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
3597
3598         * vax.h (CPP_SPEC): Define __GFLOAT and GFLOAT when -mg is specified.
3599
3600 2000-05-25  Richard Henderson  <rth@cygnus.com>
3601
3602         * bb-reorder.c (reorder_block_def): Reorder elements for size.
3603         Remove add_jump; add next; replace flags with visited.
3604         (rbd_init): Remove.
3605         (REORDER_BLOCK_HEAD, REORDER_BLOCK_VISITED): Remove.
3606         (REORDER_BLOCK_FLAGS, REORDER_BLOCK_INDEX): Remove.
3607         (REORDER_BLOCK_ADD_JUMP, REORDER_BLOCK_EFF_HEAD): Remove.
3608         (REORDER_BLOCK_EFF_END, REORDER_BLOCK_SCOPE): Remove.
3609         (RBI): New.
3610         (reorder_index, reorder_last_visited): Remove.
3611         (skip_insns_after_block): Rewrite to use a switch.
3612         (get_common_dest): Remove.
3613         (chain_reorder_blocks): Remove.
3614         (record_effective_endpoints): Split out from reorder_basic_blocks.
3615         (make_reorder_chain): Likewise.  Loop until all blocks are placed.
3616         (make_reorder_chain_1): Renamed from old make_reorder_chain.
3617         Only construct the reorder chain, do not move insns.  Try harder
3618         to tail recurse.
3619         (label_for_bb, emit_jump_to_block_after): New.
3620         (fixup_reorder_chain): Use them.  Do bulk block movement.  Examine
3621         and adjust the jump insns appropriately.  Fixup basic_block_info.
3622         (verify_insn_chain): Always define.
3623         (relate_bbs_with_scopes): Call xmalloc, not xcalloc.  Fix thinko
3624         in allocation size.
3625         (make_new_scope): Don't write zeros to calloc'd space.
3626         (build_scope_forest): Rely on xrealloc to DTRT.
3627         (reorder_basic_blocks): Don't build loop nest.  Don't fail if
3628         profile_arc_flag.  Streamline EH test.
3629
3630         * flow.c (redirect_edge_succ, redirect_edge_pred): New.
3631         * basic-block.h: Declare them.
3632
3633 2000-05-25  Alexandre Oliva  <aoliva@cygnus.com>
3634
3635         * emit-rtl.c (reset_used_decls): New function.
3636         (unshare_all_rtl_again): Call it.
3637
3638 2000-05-25  Zack Weinberg  <zack@wolery.cumb.org>
3639
3640         * cpplex.c (maybe_macroexpand): Warn about function-like
3641         macros used in non-function context, if -Wtraditional.
3642
3643 2000-05-25  Mark Mitchell  <mark@codesourcery.com>
3644
3645         * recog.c (peephole2_optimize): Use INSN_P.
3646
3647 2000-05-25  Richard Henderson  <rth@cygnus.com>
3648
3649         * ifcvt.c (seq_contains_jump): New.
3650         (noce_try_store_flag_constants): Use it to fail conversion.
3651         (noce_try_store_flag_inc, noce_try_store_flag_mask): Likewise.
3652
3653 2000-05-25  Mark Mitchell  <mark@codesourcery.com>
3654
3655         * except.h (can_throw): Declare it.
3656         * except.c (can_throw): Give it external linkage.
3657         * resource.c (find_dead_or_set_registers): Use can_throw.
3658
3659 2000-05-25  Richard Henderson  <rth@cygnus.com>
3660
3661         * flow.c (mark_set_1): Don't record conditionally dead memory.
3662
3663 2000-05-25  Jan Hubicka  <jh@suse.cz>
3664
3665         * combine.c (try_combine): Use any_condjump_p, any_uncondjump_p
3666         and pc_set at the place of simplejump_p and condjump_p.
3667         * cse.c (record_jump_equiv): Likewise.
3668         * emit-rtl.c (emit): Likewise.
3669         * explow.c (find_next_ref): Likewise.
3670         * flow.c (tidy_fallthru_edge): Likewise.
3671         (init_propagate_block_info): Likewise.
3672         * gcse.c (delete_null_pointer_checks): Likewise.
3673         * ifcvt.c (cond_exec_get_condition, noce_get_condition,
3674         dead_or_predicable): Likewise.
3675         * integrate.c (copy_insn_list): Likewise.
3676         * loop.c (scan_loop, verify_dominator, find_and_verify_loops,
3677         for_each_insn_in_loop, check_dbra_loop, get_condition,
3678         insert_bct, load_mems): Likewise.
3679         * resource.c (find_dead_or_set_registers): Likewise.
3680         * sibcalls.c (simplejump_p): Likewise.
3681         * unroll.c (copy_loop_body, reg_dead_after_loop): Likewise.
3682
3683 2000-05-25  David Edelsohn  <edelsohn@gnu.org>
3684
3685         * rs6000.c (expand_block_move): Add 64-bit PowerPC doubleword move
3686         to STRING case.  Use doubleword STRING move for TARGET_POWERPC64
3687         when unaligned.
3688         * rs6000.h (CONST_OK_FOR_LETTER_P, 'J'): unsigned HOST_WIDE_INT.
3689         (RETURN_ADDR_RTX): Use COUNT and FRAME, not count and frame.
3690         (LEGITIMIZE_RELOAD_ADDRESS): unsigned HOST_WIDE_INT high.
3691         * rs6000.md: Name various internal patterns.
3692
3693 2000-05-25  Jan Hubicka  <jh@suse.cz>
3694
3695         * jump.c (invert_exp_1): Remove first argument, use pc_set
3696         to get the expression.
3697         (redirect_exp): Make static; redirect only the pc_set expression,
3698         remove first argument.
3699         (invert_exp): Remove first argument, make static.
3700         (jump_optimize): Use any_condjump_p, any_uncondjump_p and
3701         any_onlyjump at most places where we originaly did condjump_p
3702         and simplejump_p.
3703         (jump_back_p, follow_jumps, thread_jumps): Likewise.
3704         (delete_barrier_succesors): Use pc_set.
3705         (invert_jump_1, invert_jump, redirect_jump_1, redirect_jump): Update
3706         calls of invert_exp and redirect_exp.
3707         * rtl.h (redirect_exp, invert_exp): Remove.
3708         * unroll.c (copy_loop_body): Use invert_jump and redirect_jump.
3709
3710 2000-05-25  Richard Henderson  <rth@cygnus.com>
3711
3712         * stmt.c (expand_end_bindings): Fix thinko last change.
3713
3714 2000-05-25  Andrew MacLeod  <amacleod@cygnus.com>
3715             Andrew Haley  <aph@cygnus.com>
3716
3717         * except.c  (func_eh_entry): Add emitted field.
3718         (new_eh_region_entry): Set emitted field to 0;
3719         (output_exception_table_entry): Only emit previously un-emitted data,
3720         and send it to the eh_data section.
3721         (output_exception_table): Break out common parts. Output
3722         exception table for entire compilation unit to eh_data section.
3723         (output_exception_table_data): Common parts of output_exception_table.
3724         Send output to eh_data section.
3725         (output_function_exception_table): Output exception table data for
3726         a single function to eh_data section.
3727         (free_exception_table): New external to free the table.
3728         * except.h (free_exception_table): Add prototype.
3729         (output_function_exception_table): Add prototype.
3730         * final.c (final_end_function): Output function exception table
3731         for IA64_UNWIND_INFO.
3732         (final_scan_insn): Emit any unwind directives for an insn.
3733
3734         * frame-dwarf2.c: New file containing all DWARF 2 specific code
3735         from frame.c.
3736         * frame.c: Remove all DWARF 2 specific code.
3737         * config/ia64/frame-ia64.c: New file.
3738         (gthread_stuff): Make all gthread available with
3739         IA64_UNWIND_INFO.
3740         (dwarf_fde): Define an IA64 struct for dwarf_fde.
3741         (__register_frame_info, __register_frame): Move to common area of file.
3742         (__register_frame_info_table, __register_frame_table): Move to common i
3743         area.
3744         (__deregister_frame_info, __deregister_frame): Move to common area.
3745         (__frame_init, find_fde): New versions for IA64_UNWIND_INFO.
3746         (read_uleb128): New version for ia64.
3747         (get_unwind_record): Read the next IA-64 unwind record.
3748         (read_R_record): Read a region header record.
3749         (process_a_b_reg_code): X record helper.
3750         (read_X_record): Read an X format record.
3751         (read_B_record): Read a B format record.
3752         (P3_record_types): List of record types matching the P3 format.
3753         (P7_record_types): List of record types matching the P7 format.
3754         (P8_record_types): List of record types matching the P8 format.
3755         (read_P_record): Read a P format record.
3756         (init_ia64_reg_loc): Set default fields for a register.
3757         (init_ia64_unwind_frame): Set defaults for all register records.
3758         (execute_one_ia64_descriptor): Execute one descriptor record.
3759         (rse_address_add): Calculate the position of a local reg in memory.
3760         (normalize_reg_loc): Turn a location descriptor into a memory address.
3761         (maybe_normalize_reg_loc): Only normalize a descriptor if it falls
3762         within a specified PC offset range.
3763         (get_real_reg_value): Given a register location, retrieve its value.
3764         (set_real_reg_value): Change the value of a register location.
3765         (copy_reg_value): Copy reg values, if needed.
3766         (copy_saved_reg_state): Copy all registers that need to be copied.
3767         (process_state_between): Normalize all frame register records that
3768         fall within the specified PC range.
3769         (frame_translate): Take a processed frame description, and turn
3770         everything into addresses.
3771         (build_ia64_frame_state ): Find and create frame state record for a PC.
3772         (get_personality): Get the personality routine for a given frame.
3773         (get_except_table): Get the exception table for a given frame.
3774         (record_name): Unwind record names for debugging.
3775         (print_record): Print and unwind record.
3776         (print_all_records): Print an entire unwind image.
3777         (__ia64_backtrace): Print a backtrace.
3778         (ia64_backtrace_helper): New function.
3779         (__register_frame_info_aux): New function.
3780         * config/ia64/crtend.asm (__do_frame_setup_aux): New function.
3781
3782         * frame.h (enum unw_record_type): New unwind record types.
3783         (struct unw_p_record, unw_b_record, unw_x_record) : New unwind records.
3784         (struct unw_r_record, unwind_record): New unwind record structs.
3785         (struct unwind_info_ptr): Unwind information layout.
3786         (IA64_UNW_LOC_TYPE_*): Macros for different types for location
3787         descriptors.
3788         (struct ia64_reg_loc): Register location description.
3789         (struct ia64_frame_state): Location of all registers in a frame.
3790         (struct object): Add pc_base and fde_end for IA64_UNWIND_INFO.
3791         * libgcc2.c (__ia64_personality_v1): Personality routine.
3792         (__calc_caller_bsp): Calculate the bsp register for the caller's
3793         frame.
3794         (ia64_throw_helper): Figure out who to return to and set up the
3795         registers.
3796         (__throw): Throw routine.
3797
3798         * output.h (assemble_eh_align, assemble_eh_label): New functions
3799         to generate EH info where we want it.
3800         (assemble_eh_integer): New function.
3801         * toplev.c (compile_file): Output module level exception table for
3802         non-ia64 targets.
3803         (main): Set exceptions_via_longjump and flag_new_exceptions based
3804         on IA64_UNWIND_INFO too.
3805
3806         * varasm.c (assemble_eh_label): Generate a label via
3807         ASM_OUTPUT_EH_LABEL if it has been specified.
3808         (assemble_eh_align): Generate an alignment directive via
3809         ASM_OUTPUT_EH_ALIGN if it has been specified.
3810         (assemble_eh_label): Generate an integer value via
3811         ASM_OUTPUT_EH_type if they have been specified.
3812         * config/ia64/ia64.c (rtx_needs_barrier): Add flushrs.
3813         (ia64_init_builtins): Add __builtin_ia64_bsp
3814         and __builtin_ia64_flushrs.
3815         (ia64_expand_builtin): Add IA64_BUILTIN_BSP and
3816         IA64_BUILTIN_FLUSHRS.
3817         * config/ia64/ia64.h (ia64_builtins): Add IA64_BUILTIN_BSP and
3818         IA64_BUILTIN_FLUSHRS.
3819
3820         * config/ia64/ia64.md (flushrs): New insn to flush the register
3821         stack.  Add to unspec list.
3822
3823         * config/ia64/crtbegin.asm (frame_object): Change size.
3824         (__do_frame_setup_aux): New function.
3825         * config/ia64/crtend.asm: call __do_frame_setup_aux.
3826         * config/ia64/t-ia64 (LIB2ADDEH): Add.
3827         * Makefile.in (LIB2ADDEH): Add.
3828         (LIB2ADD): Use LIB2ADDEH.
3829
3830 2000-05-24  Richard Henderson  <rth@cygnus.com>
3831
3832         * recog.c (offsettable_address_p): If mode size is zero, assume
3833         BIGGEST_ALIGNMENT.
3834
3835 2000-05-24  J. David Anglin  <dave@hiauly.hia.nrc.ca>
3836
3837         * configure.in: Check for -Wno-long-long option support and improve
3838         handling of warning CFLAGS for stages 1 and 2.
3839         * Makefile.in (WARN_CFLAGS): Move definition to configure.in.
3840         * configure: Regenerate.
3841
3842 Wed May 24 19:37:53 2000  Jeffrey A Law  (law@cygnus.com)
3843
3844         * gcc.texi: Remove contributor list.  Instead include contrib.texi.
3845         * contrib.texi: New file.
3846
3847 Thu May 25 02:27:22 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3848
3849         * loop.c (basic_induction_var): Avoid double recording of an increment.
3850
3851 Thu May 25 02:19:27 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3852
3853         * Back out this patch:
3854         Tue Dec  7 19:22:06 1999  Richard Henderson  <rth@cygnus.com>
3855           * loop.h (struct induction): Add multi_insn_incr.
3856           * loop.c (basic_induction_var): New multi_insn_incr argument.
3857           Set it if we search back through previous insns for the biv.
3858           (record_biv): New multi_insn_incr argument; fill in struct induction.
3859           (strength_reduce): Discard an iv with multiple bivs, any of
3860           which require multiple insns to increment.
3861
3862         * loop.c (check_insn_for_bivs): Remove bits copied from above patch.
3863
3864 Thu May 25 02:09:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3865
3866         * rtl.h (loc_mentioned_in_p): Declare.
3867         * reload.c (loc_mentioned_in_p): Moved from here...
3868         * rtlanal.c (loc_mentioned_in_p): to here.  No longer static.
3869         Fix loop increment for 'E' handling.
3870         * loop.c (strength_reduce): When doing biv->giv conversion,
3871         take multi-insn biv increments into account.
3872
3873 2000-05-24  Jason Merrill  <jason@casey.soma.redhat.com>
3874
3875         * stmt.c (expand_end_bindings): Look through NOTEs to find a
3876         BARRIER.
3877
3878 2000-05-24  Mark Mitchell  <mark@codesourcery.com>
3879
3880         * calls.c (expand_call): Handle cleanups in tail-recursion
3881         arguments analagously to cleanups in sibling calls.
3882
3883 2000-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3884
3885         * simplify-rtx.c: Rename macro SIGN_EXTEND to HWI_SIGN_EXTEND.
3886         All callers changed.
3887
3888 2000-05-24  Alexandre Oliva  <aoliva@cygnus.com>
3889
3890         * expr.c (expand_assignment, store_expr, expand_expr,
3891         expand_expr_unaligned): Set in_check_memory_usage while emitting
3892         chkr_check_addr libcall.
3893
3894 2000-05-24  Nick Clifton  <nickc@cygnus.com>
3895
3896         * fold-const.c (extract_muldiv): When constructing a
3897         multiplier/divisor, do not expect const_binop to correctly
3898         determine if overflow has occured, so check explicitly.
3899
3900 2000-05-24  Alexandre Oliva  <aoliva@cygnus.com>
3901
3902         * c-decl.c (build_enumerator): Don't modify the value's type,
3903         convert it.
3904
3905 2000-05-24  Andreas Jaeger  <aj@suse.de>
3906
3907         * mips.h (LINKER_ENDIAN_SPEC): Pass -EL to linker by default.
3908
3909 2000-05-24  Eric Christopher <echristo@cygnus.com>
3910
3911         * configure.in: Redefine inhibit_libc conditions.
3912         * libgcc2.c: Remove inhibit_libc conditional define.
3913         * configure: Regenerate.
3914
3915 2000-05-24  Phil Edwards  <pme@sourceware.cygnus.com>
3916
3917         * configure.in:  For --enable-languages=LIST, check for empty LIST.
3918         * configure:  Regenerate.
3919
3920 2000-05-24  Lars Brinkhoff  <lars@nocrew.org>
3921
3922         * pdp11.h (STACK_BOUNDARY): Define.
3923
3924 2000-05-24  Jakub Jelinek  <jakub@redhat.com>
3925
3926         * ifcvt.c (if_convert): Update life info globally.
3927
3928 2000-05-24  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
3929
3930         * emit-rtl.c (unshare_all_decls): New function.
3931         (unshare_all_rtl): Call it.
3932
3933 2000-05-23  Nick Clifton  <nickc@cygnus.com>
3934
3935         * configure.in: Treat 'strongarm' as if it were 'arm' when
3936         determining cpu type.
3937
3938         * configure: Regenerate.
3939
3940         * config/arm/arm.c: Change 'char *' to 'const char *' for cases
3941         where constant strings are involved.
3942
3943         * config/arm/arm.h (arm_condition_codes): Change type to 'const
3944         char *'.
3945
3946         * config/arm/arm-protos.h: Change 'char *' to 'const char *' for
3947         cases where constant strings are involved.
3948
3949 Tue May 23 15:08:31 2000  Clinton Popetz  <cpopetz@cygnus.com>
3950
3951         * config/sh/sh.c (gen_far_branch, split_branches): Update
3952         to reflect new prototypes for redirect_jump and invert_jump.
3953         (sh_insn_length_adjustment): Get rid of const warnings.
3954
3955 2000-05-23  Kazu Hirata  <kazu@hxi.com>
3956
3957         * invoke.texi (Options for Debugging Your Program or GCC): Update
3958         the names of dump files.
3959
3960 Tue May 23 13:58:52 2000  Philippe De Muyter  <phdm@macqel.be>
3961
3962         * configure.in (NO_MINUS_C_MINUS_O): Fix thinko in previous fix.
3963         * configure: Regenerated.
3964
3965 2000-05-23  Zack Weinberg  <zack@wolery.cumb.org>
3966
3967         * simplify-rtx.c (SIGN_EXTEND): New macro.
3968         (simplify_unary_operation, simplify_binary_operation,
3969         simplify_relational_operation): Use SIGN_EXTEND.  Make low
3970         halves of (low, high) pairs unsigned if they weren't already.
3971         (simplify_ternary_operation): Cast INTVAL to unsigned before
3972         comparing to a MODE_BITSIZE.
3973
3974 2000-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3975
3976         * aclocal.m4 (gcc_AC_CHECK_DECL, gcc_AC_CHECK_DECLS): New macros
3977         rewritten from the internals of gcc_AC_NEED_DECLARATION{S}.
3978
3979         * configure.in (gcc_AC_CHECK_DECLS): Call this instead of
3980         gcc_AC_NEED_DECLARATIONS.
3981
3982         * dwarfout.c: Don't prototype time().
3983
3984         * gcc.c: Check HAVE_DECL_* instead of NEED_DECLARATION_*.
3985
3986         * system.h: Likewise.
3987
3988         * toplev.c: Likewise.
3989
3990 2000-05-23  Zack Weinberg  <zack@wolery.cumb.org>
3991
3992         * c-decl.c (pushdecl): Invert sense of test for non-global types.
3993
3994 Tue May 23 18:11:42 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3995
3996         * reload1.c (reload_cse_move2add): Honor TRULY_NOOP_TRUNCATION.
3997
3998 2000-05-23  Jonathan Larmour  <jlarmour@redhat.co.uk>
3999
4000         * config/mips/elf64.h (CTOR_LISTS_DEFINED_EXTERNALLY): Define
4001
4002 Tue May 23 06:50:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4003
4004         * config/alpha/alpha.c: Remove #ifdef HAIFA since now only scheduler.
4005         (alpha_start_function): Never write ..ng label if VMS or NT.
4006         (alpha_align_insns): Remove GP_IN_USE arg.
4007         Alignment now unsigned.
4008         (alpha_reorg): Don't pass GP_IN_USE arg to alpha_align_insns.
4009         * config/alpha/alpha.md (prologue_ldgp): Split into one define_expand
4010         and two define_insn's.
4011
4012 2000-05-22  Richard Henderson  <rth@cygnus.com>
4013
4014         * combine.c (simplify_comparison): Use trunc_int_for_mode.
4015
4016 2000-05-22  Richard Henderson  <rth@cygnus.com>
4017
4018         * stor-layout.c (place_field): Change rli->size to rli->offset.
4019
4020 2000-05-22  Richard Henderson  <rth@cygnus.com>
4021
4022         * function.c (thread_prologue_and_epilogue_insns): Make sure
4023         existing line number notes appear after the prologue.
4024
4025 Mon May 22 21:49:00 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4026
4027         * config/alpha/alpha.c (alpha_fnname): New static variable.
4028         (print_operand, case '~'): New case.
4029         (alpha_expand_prologue): Emit prologue_ldgp insn if needed.
4030         (alpha_start_function): Set alpha_fnname.
4031         Write "ng" label if no ldgp; don't write ldgp insn.
4032         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): New case '~'.
4033         * config/alpha/alpha.md (prologue_ldgp): New define_insn.
4034
4035 Mon May 22 11:30:48 2000  Clinton Popetz  <cpopetz@cygnus.com>
4036
4037         * jump.c (jump_optimize_1): Don't increment LABEL_NUSES
4038         on deleted labels.
4039
4040 2000-05-22  Zack Weinberg  <zack@wolery.cumb.org>
4041
4042         * varasm.c (eh_frame_section): Revert change to argument list.
4043
4044 Mon May 22 13:14:03 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4045
4046         * optabs.c (can_extend_p): Allow unsignedp to have any nonzero value.
4047         (gen_extend_insn, can_fix_p, can_float_p): Likewise.
4048
4049         * final.c (final_scan_insn, case NOTE_INSN_FUNCTION_BEG): Remove
4050         dangling "else" that causes "break" to be conditional.
4051         Also remove unneeded code at start.
4052
4053 Mon May 22 17:31:35 2000  Philippe De Muyter  <phdm@macqel.be>
4054
4055         * m68k/m68k.h (STORE_FLAG_VALUE): Macro set to (-1), not -1.
4056         * fx80/fx80.h, i370/i370.h, m88k/m88k.h (STORE_FLAG_VALUE): Ditto.
4057         * gmicro/gmicro.h, we32k/we32k.h (STORE_FLAG_VALUE): Ditto.
4058
4059 2000-05-22  Jakub Jelinek  <jakub@redhat.com>
4060
4061         * config/sparc/sparc.md (movdf_insn_v9only_vis): fzero has
4062         just one argument.
4063
4064 Mon May 22 06:57:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4065
4066         * alias.c (record_component_aliases): New function.
4067         * tree.h: Clean up some declarations and comments.
4068         (record_component_aliases): New declaration.
4069         * tree.c (get_alias_set): If type and has alias set, use it.
4070
4071 2000-05-22  Richard Henderson  <rth@cygnus.com>
4072
4073         * simplify-rtx.c (simplify_ternary_operation): Try to simplify
4074         IF_THEN_ELSE to a setcc form.
4075         * jump.c (can_reverse_comparison_p): Be prepared for insn null.
4076
4077 2000-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4078
4079         * fixinc/inclhack.def (sun_malloc): Handle `calloc'.
4080         (sun_malloc, sysz_stdtypes_for_sun): Add test_text.
4081
4082 Sun May 21 16:42:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4083
4084         * combine.c (try_combine): Handle i3_subst_into_i2 case when I2 is
4085         not a PARALLEL.
4086
4087 2000-05-20  Alexandre Oliva  <aoliva@cygnus.com>
4088
4089         * config/mn10300/mn10300.md (movdi, movdf): 64-bit clean-up.
4090         * config/mn10300/mn10300.c (print_operand): Likewise.
4091
4092         * final.c (split_double): Right shift of negative values is not
4093         portable.
4094
4095         * ifcvt.c (if_convert): Scan and kill dead code.
4096
4097         * emit-rtl.c (unshare_all_rtl): Store the copied rtx.
4098
4099 2000-05-20  Zack Weinberg  <zack@wolery.cumb.org>
4100
4101         * diagnostic.c: Eliminate implicit int.
4102         * except.c, gcc.c: Add static prototypes.
4103         * final.c (final_end_function): Mark file arg ATTRIBUTE_UNUSED.
4104         * gensupport.c (process_rtx): Use XVEC to initialize vector
4105         slot of 'split'.
4106
4107         * print-rtl.c: If DEBUG_REGISTER_NAMES, define static
4108         debug_reg_names instead of static reg_names.  If not, define
4109         global reg_names.
4110         * regclass.c: Don't define global reg_names unless
4111         DEBUG_REGISTER_NAMES is defined.
4112
4113         * reload1.c (order_regs_for_reload): Remove unused variable.
4114         * varasm.c: Include output.h after defaults.h.  Define
4115         eh_frame_section as function of no args, not of unspecified args.
4116
4117         * gcc.c: Constify argbuf; arguments to store_arg,
4118         process_command, main; elements of struct command and struct
4119         switchstr; local variables in execute, process_command, main.
4120
4121 2000-05-20  Bruce Korb  <bkorb@gnu.org>
4122
4123         * fixinc/inclhack.def:  many applications of c_fix=format + tests
4124         * fixinc/check.diff:  regenerated
4125         * fixinc/fixincl.x:  regenerated
4126
4127 Sat May 20 09:30:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4128
4129         * alias.c: Clarify some comments.
4130         (record_base_value): REGNO is unsigned.
4131         * rtl.h (record_base_value): Likewise.
4132
4133         * alias.c (aliases_everything_p): Don't special-case QImode here.
4134         * c-common.c (c_get_alias_set): Do it here.
4135         Handle BIT_FIELD_REF by getting alias info for arg.
4136         Use POINTER_TYPE_P.
4137
4138 2000-05-20  Alexandre Oliva  <aoliva@cygnus.com>
4139
4140         * mklibgcc.in: Restore rule to create ${dir}.
4141
4142 Sat May 20 08:45:41 2000  H.J. Lu  <hjl@gnu.org>
4143
4144         * Makefile.in (libgcc.mk): Depend on xgcc$(exeext) for
4145         GCC_FOR_TARGET used by MULTILIBS.
4146         * mklibgcc.in: Make sure each .o file depends on the
4147         directory it will be in.
4148         Make the multilib directory depends libgcc.
4149
4150 Sat May 20 08:29:28 2000  H.J. Lu  <hjl@gnu.org>
4151
4152         * Makefile.in (bootstrap): Unset LANG_LIB2FUNCS for stage 1.
4153
4154 Sat May 20 07:27:35 2000  Alexandre Oliva  <aoliva@cygnus.com>
4155
4156         * fold-const.c (make_range): Handle degenerated intervals.
4157         Fixes c-torture/execute/991221-1.c
4158
4159 Fri May 19 18:16:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4160
4161         * cse.c (cse_basic_block): Only call find_reg_note if REG_NOTES not 0.
4162         * reload.c (find_equiv_reg): Likewise.
4163         * alias.c (init_alias_analysis): Likewise.
4164         Only call prologue_epilogue_contains on insns.
4165         * basic-block.h (REG_SET_TO_HARD_REG_SET): Call new function.
4166         * bb-reorder.c (hard-reg-set.h): Include earlier.
4167         * haifa-sched.c (hard-reg-set.h): Likewise.
4168         * ifcvt.c (hard-reg-set.h): Likewise.
4169         * local-alloc.c (hard-reg-set.h): Likewise.
4170         * loop.c (hard-reg-set.h): Likewise.
4171         * predict.c (hard-reg-set.h): Likewise.
4172         * regrename.c (hard-reg-set.h): Likewise.
4173         * flow.c (hard-reg-set.h): Likewise.
4174         (reg_set_to_hard_reg_set): New function.
4175         * bitmap.c (regs.h, basic-block.h): No longer include.
4176         (bitmap.h): Now include.
4177         * conflict.c (hard-reg-set.h): Include.
4178         * profile.c (hard-reg-set.h): Likewise.
4179         * print-rtl.c (hard-reg-set.h): Likewise.
4180         * sbitmap.c (hard-reg-set.h): Likewise.
4181         * toplev.c (hard-reg-set.h): Likewise.
4182         * unroll.c (hard-reg-set.h, basic-block.h): Likewise.
4183         * hard-reg-set.h (reg_names): Now constant.
4184         * regs.h (reg_names): Likewise.
4185         * regclass.c (reg_names): Likewise.
4186         * loop.h (basic-block.h): No longer include.
4187         (bitmap.h): Now include.
4188         * reload1.c (order_regs_for_reload): Avoid loop over reg sets.
4189         * Makefile.in (LOOP_H, sbitmap.o, profile.o): Reflect above changes.
4190         (toplev.o, print-rtl.o, conflict.o, unroll.o, bitmap.o): Likewise.
4191
4192 2000-05-19  Jan Hubicka  <jh@suse.cz>
4193             Richard Henderson  <rth@cygnus.com>
4194
4195         * basic-block.h (struct edge_def): New field "count".
4196         (struct basic_block_def): Likewise.
4197         * flow.c (entry_exit_blocks): Add count fileds.
4198         (split_edge): Keep count information up-to-date.
4199         (dump_edge_info, dump_flow_info): Dump count fields.
4200
4201         * final.c (count_instrumented_edges): Rename to edge from arc.
4202         (end_final): Update users.
4203         * profile.c: Include expr.h, basic-block.h.
4204         (struct adj_list, ARC_TARGET, ARC_SOURCE, ARC_COUNT): Kill.
4205         (struct bb_info, label_to_bb, label_to_bb_size, bb_graph): Kill.
4206         (ignore_next_note, return_label_execution_count): Kill.
4207         (bbg_file_name, da_file_name): Kill.
4208         (edge_info, bb_info): New structures.
4209         (EDGE_INFO, BB_INFO, GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): New macros.
4210         (count_instrumented_edges, total_num_edges): Rename to edge from arc.
4211         (total_num_edges_instrumented): Likewise.
4212         (init_arc, expand_spanning_tree): Kill.
4213         (fill_spanning_tree, tablejump_entry_p): Kill.
4214         (instrument_edges):  Rewrite from instrument_arcs to use
4215         commit_edge_insertions infrastructure.
4216         (compute_branch_probabilities): Remove arguments; rewrite for
4217         CFG infrastructure; use rtl_dump_file directly.
4218         (branch_prob, find_spanning_tree): Likewise.
4219         (union_groups, find_group): New.
4220         (init_branch_prob): Make bbg_file_name and da_file_name local.
4221         (end_branch_prob): Use rtl_dump_file directly.
4222         (init_edge_profiler): Rename to edge from arc.
4223         (output_arc_profiler): Kill.
4224         (gen_edge_profiler): New.
4225         (output_func_start_profiler): Turn off profiling.  Make the
4226         constructor static when we can.
4227         * rtl.h (branch_prob, end_branch_prob): Update prototypes.
4228
4229         * toplev.c (DFI_flow): Remove.
4230         (DFI_cfg, DFI_life): New.
4231         (dump_file): Update accordingly.
4232         (compile_file): Call end_branch_prob if profile_arc_flag too.
4233         (rest_of_compilation): Move flow1 cfg creation to DFI_cfg.  Do edge
4234         profiling after the CFG is built.  Move flow1 life analysis to
4235         DFI_life.  Always estimate remaining probabilities.
4236
4237 2000-05-19  Richard Henderson  <rth@cygnus.com>
4238
4239         * ifcvt.c (find_if_case_2): Don't allow THEN to be EXIT.
4240
4241         * flow.c (make_edges): The sibling call edge to exit is abnormal.
4242
4243 2000-05-19  Richard Henderson  <rth@cygnus.com>
4244
4245         * jump.c (redirect_jump): Add delete_unused argument.  Don't
4246         remove labels and code following when LABEL_NUSES goes to zero.
4247         (invert_jump): Likewise.
4248         (jump_optimize_1): Fix redirect/invert arguments.
4249         (do_cross_jump, thread_jumps): Likewise.
4250         * flow.c (split_edge): Likewise.
4251         * reorg.c (optimize_skip): Likewise.
4252         (reorg_redirect_jump, relax_delay_slots, dbr_schedule): Likewise.
4253         * profile.c (instrument_arcs): Likewise.
4254         * loop.c (find_and_verify_loops): Likewise.  Fix indentation.
4255         * rtl.h: Update prototypes.
4256
4257 Fri May 19 12:05:13 2000  Clinton Popetz  <cpopetz@cygnus.com>
4258
4259         * ssa.c (convert_from_ssa): Tell life_analysis we need death
4260         notes.
4261         (make_regs_equivalent_over_bad_edges): Only look at abnormal
4262         critical edges.
4263
4264 2000-05-19  Zack Weinberg  <zack@wolery.cumb.org>
4265
4266         * cpphash.c (funlike_macroexpand): Make sure not to walk p1
4267         past l1 when deleting whitespace and markers.
4268
4269         * cpplex.c (_cpp_scan_until): Clear AUX field of tokens.
4270         * cpplib.c (do_unassert): Put the list to compare against on
4271         the stack.
4272
4273 2000-05-19  Bruce Korb  <bkorb@gnu.org>
4274
4275         * fixinc/README:  cleaned up old documentation
4276         * fixinc/check.diff: regenerated & verified on OSR5 on ix86
4277         * fixinc/check.tpl: compute the list of needed directories
4278         emit "#if defined(name)" because of conflict
4279         omit machine name differences from output differences
4280         * fixinc/inclhack.def( m88k_multi_incl ):  Use `wrap' function
4281         (machine_name): change test text to use `sed' markers
4282         * fixinc/fixincl.x: regen
4283
4284 Fri May 19 06:49:35 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4285
4286         * config/elfos.h (SELECT_SECTION): Don't access DECL_INITIAL of
4287         a CONSTRUCTOR.
4288
4289 2000-05-18  Chris Demetriou  <cgd@sibyte.com>
4290
4291         * gcc.texi (MULTILIB_EXCEPTIONS): Correct example and update
4292         it to match the current practice.
4293
4294 2000-05-18  Mark Mitchell  <mark@codesourcery.com>
4295
4296         * Makefile.in (STAGESTUFF): Fix typo in spelling of s-under.
4297
4298 2000-05-18  Richard Henderson  <rth@cygnus.com>
4299
4300         * rtlanal.c (insn_dependant_p, insn_dependant_p_1): New.
4301         * rtl.h (insn_dependant_p): Declare it.
4302         * loop.c (strength_reduce): Use it.
4303
4304 2000-05-18  Alexandre Oliva  <aoliva@cygnus.com>
4305
4306         * config/mn10300/mn10300.c (expand_prologue, expand_epilogue):
4307         16-bit and 64-bit clean-up.
4308
4309 2000-05-18 Mark Elbrecht <snowball3@bigfoot.com>
4310
4311         * configure.in (*-pc-msdosdjgpp): Set float_format to none.
4312         * configure: Rebuilt.
4313
4314 2000-05-18  Zack Weinberg  <zack@wolery.cumb.org>
4315
4316         * genopinit.c: Use $ for escape sequences in optab patterns.
4317         Remove backslashes from optab patterns.  Change $A, $B, $C to
4318         expand to (int) whatever instead of just whatever; remove
4319         explicit (int) from all optab patterns.
4320
4321         * gensupport.c (xmalloc, xrealloc, xstrdup): Provide.
4322         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c,
4323         genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
4324         genrecog.c: Remove private copies of xmalloc, xrealloc, and
4325         xstrdup.
4326
4327 2000-05-18  Richard Henderson  <rth@cygnus.com>
4328
4329         * jump.c (jump_optimize_1): Base minimum insn count during
4330         find_cross_jump on BRANCH_COST.
4331
4332 2000-05-18  Jakub Jelinek  <jakub@redhat.com>
4333
4334         * print-rtl.c (print_rtx): Only print note line number as string
4335         if between NOTE_INSN_BIAS and NOTE_INSN_MAX.
4336         * final.c (final_scan_insn): Do nothing for note line number 0.
4337
4338 2000-05-18  Jakub Jelinek  <jakub@redhat.com>
4339
4340         * gcc-common.c (ggc_mark_rtx_children): Mark NOTE_EXPECTED_VALUE
4341         from NOTE_INSN_EXPECTED_VALUE notes and NOTE_SOURCE_FILE from
4342         NOTE_INSN_DELETED_LABEL.
4343
4344 2000-05-18  Nick Clifton  <nickc@cygnus.com>
4345
4346         * config/arm/unknown-elf.h (UNIQUE_SECTION): Place constant,
4347         uninitialised data in .rodata not .bss, and do not interpret an
4348         error in the initialisation value as meaning that the variable
4349         should be placed in the .bss section.
4350
4351 Thu May 18 12:10:18 2000  Philippe De Muyter  <phdm@macqel.be>
4352
4353         * configure.in (NO_MINUS_C_MINUS_O): Test `$ac_cv_prog_cc_${ac_cc}_c_o',
4354         not `$ac_cv_prog_cc_cc_c_o'.
4355         * configure: Regenerated.
4356
4357 2000-05-18  Chris Demetriou  <cgd@sibyte.com>
4358             Richard Henderson  <rth@cygnus.com>
4359
4360         * c-common.h (enum c_tree_index): Add g77 type entries.
4361         (g77_integer_type_node, g77_uinteger_type_node): New.
4362         (g77_longint_type_node, g77_ulongint_type_node): New.
4363         * c-decl.c (init_decl_processing): Initialize them.
4364
4365 2000-05-18  Richard Henderson  <rth@cygnus.com>
4366
4367         * config/h8300/h8300.md (subs patterns): Use %G to negate.
4368
4369         * config/h8300/h8300.c (ok_for_bclr): Take a HOST_WIDE_INT.
4370         (small_power_of_two): Likewise; use exact_log2.
4371         (adds_subs_operand, one_insn_adds_subs_operand): Remove.
4372         (output_adds_subs): Remove.
4373         (two_insn_adds_subs_operand): New.
4374         (split_adds_subs): New.
4375         * config/h8300/h8300-protos.h: Update.
4376         * config/h8300/h8300.h (CONST_OK_FOR_J): Cast to uns HOST_WIDE_INT.
4377         (CONST_OK_FOR_L): Match strict adds operands.
4378         (CONST_OK_FOR_N): Match struct subs operands.
4379         * config/h8300/h8300.md (adds_subs insns): Remove.
4380         (addhi patterns): Output adds/subs directly.
4381         (addsi_h8300h): Likewise.
4382         (addhi/addsi splitters): New.  Decompose two_insn_adds_subs_operand.
4383
4384 2000-05-18  Zack Weinberg  <zack@wolery.cumb.org>
4385
4386         * cppexp.c (parse_assertion): New.
4387         (lex): Call it for CPP_HASH.  Remove CPP_ASSERTION case.
4388         (_cpp_parse_expr): Remove case '#'.  Don't set
4389         parsing_if_directive.
4390         * cpphash.c (collect_objlike_expansion,
4391         collect_funlike_expansion, collect_params,
4392         _cpp_create_definition): The list no longer has a trailing
4393         VSPACE token.
4394         * cpphash.h (enum node_type): Add T_ASSERTION.
4395         (struct hashnode): Remove aschain, add pred.
4396         (struct predicate): New.
4397         Update prototypes.
4398
4399         * cpplex.c (expand_token_space): Handle both offset and
4400         nonoffset lists.
4401         (init_token_list, _cpp_free_token_list, _cpp_parse_assertion): Delete.
4402         (_cpp_init_toklist, _cpp_clear_toklist, _cpp_free_toklist,
4403         _cpp_slice_toklist, _cpp_squeeze_toklist, _cpp_equiv_tokens,
4404         _cpp_equiv_toklists): New.
4405         (_cpp_scan_line): Rename to _cpp_scan_until; add ability to
4406         stop at any single-character token, not just newline.
4407         (_cpp_lex_token): Remove special cases for #define and #if.
4408         (cpp_get_token): Expect # as a separate token type.  Remove
4409         DIRECTIVE case.
4410         (_cpp_get_directive_token): Remove DIRECTIVE case.
4411         (_cpp_lex_line, _cpp_lex_file, _cpp_init_input_buffer): Update.
4412
4413         * cpplib.c (_cpp_check_directive): Set dirno and
4414         SYNTAX_INCLUDE bit of flags, not dir_handler and dir_flags.
4415         (_cpp_handle_directive): Run # <number> through the same logic
4416         as normal directives.
4417         (do_define): Don't set parsing_define_directive.  Use
4418         _cpp_scan_until.  The list does not have a VSPACE at the end.
4419         (do_if): Save, clear, and restore only_seen_white around
4420         _cpp_parse_expr.
4421         (skip_if_group): s/CPP_DIRECTIVE/CPP_HASH/
4422         (do_assert, do_unassert): Rewrite.
4423
4424         * cpplib.h (TTYPE_TABLE): Remove CPP_ASSERTION.
4425         (LIST_OFFSET): New flag.
4426         (struct cpp_toklist): Replace dir_handler and dir_flags with
4427         dirno and flags.
4428         (struct cpp_reader): Remove parsing_if_directive and
4429         parsing_define_directive.
4430
4431 2000-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4432
4433         * fixinc/inclhack.def (broken_cabs): Update fix to handle comments
4434         following the cabs decl which terminate on the following line.
4435         Add the corresponding test_text case.
4436
4437 2000-05-18  Neil Booth  <NeilB@earthling.net>
4438
4439         * cppinit.c (cpp_reader_init): Initialise col_adjust and
4440         default tab stop size.
4441         (no_num, OPT_ftabstop): New.
4442         (handle_option): Handle "ftabstop=" command-line option.
4443         (print_help): Document it.
4444         * cpplex.c (COLUMN): Remove.
4445         (handle_newline): Reset col_adjust.
4446         (skip_whitespace): Update col_adjust as tabs encountered.
4447         (_cpp_lex_line): Update to use col_adjust.  Call
4448         skip_whitespace for all whitespace.
4449         * cpplib.h (struct cpp_options): New member tabstop.
4450         (struct cpp_reader): New member col_adjust.
4451         (CPP_BUF_COL): Update.
4452         (CPP_BUF_COLUMN): New.
4453         * cpp.texi: Document "-ftabstop=" command line option.
4454
4455 Wed May 17 18:19:41 2000  Philippe De Muyter  <phdm@macqel.be>
4456
4457         * configure.in (NO_MINUS_C_MINUS_O): Macro made availabe for AC_OUTPUT
4458         files.
4459         * configure: Rebuilt.
4460
4461 Wed May 17 18:06:12 2000  John David Anglin <dave@hiauly1.hia.nrc.ca>
4462
4463         * mklibgcc.in Add missing -DL$name when compiling modules in libgcc1.c.
4464
4465         * tree.c (build_common_tree_nodes): Do not build TI nodes unless
4466         HOST_BITS_PER_WIDE_INT is >= 64.
4467
4468 2000-05-17  Richard Henderson  <rth@cygnus.com>
4469
4470         * jump.c (jump_optimize_1): Remove inactive but real insns
4471         in jump-to-next-insn optimization.
4472
4473 2000-05-17  Richard Henderson  <rth@cygnus.com>
4474
4475         * toplev.c (rest_of_compilation): Don't call optimize_mode_switching
4476         unless OPTIMIZE_MODE_SWITCHING.  Conditionally set no_new_pseudos.
4477         Don't call recompute_reg_usage if no_new_pseudos is true.
4478         * lcm.c (optimize_mode_switching): Move ifdefs outside function.
4479         Return true if we did work; update global life information.
4480         * basic-block.h (optimize_mode_switching): Update decl.
4481
4482 2000-05-17  Neil Booth  <neilb@earthling.net>
4483
4484         * cpplex.c (expand_name_space): Don't use ptrdiff_t.
4485
4486 2000-05-17  Zack Weinberg  <zack@wolery.cumb.org>
4487
4488         * cpplib.c: New feature, #pragma system_header.
4489         * cpp.texi: Document special treatment of system headers, and
4490         the various mechanisms to get a header that special treatment.
4491
4492 2000-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4493
4494         * system.h (offsetof): Define at the very end, to ensure we prefer
4495         the platform's definition if available.
4496
4497 2000-05-16  Bruce Korb  <bkorb@gnu.org>
4498
4499         * fixinc/fixincl.c: improve the debug displays, ignore SIGPIPE
4500         * fixinc/server.c: likewise
4501         * fixinc/fixfixes.c( char_macro_def_fix ): fix regex
4502         + #ifdef debugging code + use #def constant for
4503         sub-pattern count
4504         * fixinc/inclhack.def( hpux11_fabsf ): Keep HP-UX 11 from stomping
4505         on C++ math namespace
4506
4507 2000-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4508
4509         * fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix):
4510         Don't check the return value of sprintf.  Use asprintf to avoid
4511         buffer overflows.
4512
4513 Wed May 17 17:27:44 2000  Andrew Cagney  <cagney@b1.cygnus.com>
4514
4515         * flags.h (warn_unused_function, warn_unused_label,
4516         warn_unused_parameter, warn_unused_variable, warn_unused_value):
4517         Replace ``warn_unused''.
4518         (set_Wunused): Add declaration.
4519         * toplev.c (set_Wunused): New function.
4520         (warn_unused_function, warn_unused_label, warn_unused_parameter,
4521         warn_unused_variable, warn_unused_value): New variables.
4522         (W_options): Add -Wunused-function, -Wunused-function,
4523         -Wunused-label, -Wunused-parameter, -Wunused-variable and
4524         -Wunused-value.  Delete -Wunused.  Handled in decode_W_option.
4525
4526         * toplev.c (decode_W_option): Update -Wunused flags by calling
4527         set_Wunused.
4528         * c-decl.c (c_decode_option): Ditto for -Wall.
4529
4530         * stmt.c (expand_expr_stmt, expand_expr_stmt,
4531         warn_about_unused_variables): Replace warn_unused with more
4532         explicit warn_unused_value et.al.
4533         * function.c (expand_function_end): Ditto.
4534         * c-typeck.c (internal_build_compound_expr,
4535         internal_build_compound_expr): Ditto.
4536         * c-decl.c (poplevel, pop_label_level): Ditto.
4537         * toplev.c (check_global_declarations): Replace warn_unused with
4538         check for either warn_unused_function or warn_unused_variable.
4539
4540         * gcc.1, invoke.texi (Warning Options): Document
4541         -Wunused-function, -Wunused-function, -Wunused-label,
4542         -Wunused-parameter, -Wunused-variable and -Wunused-value options.
4543
4544 Wed May 17 10:28:12 2000  Philippe De Muyter  <phdm@macqel.be>
4545
4546         * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Find libgcc1.c in
4547         $(srcdir), not in the current directory.
4548
4549 2000-05-16  Richard Henderson  <rth@cygnus.com>
4550
4551         * config/ia64/crtbegin.asm (__dso_handle): Mark hidden if the
4552         assembler supports it.
4553         (.fini, .init): Use a gp-relative indirect call.
4554         (__do_global_dtors_aux): Preserve the gp; rebundle.
4555         (__do_frame_setup): Likewise.
4556         * config/ia64/crtend.asm (.IA_64.unwind): Don't terminate with -1.
4557         (.init): Use a gp-relative indirect call.
4558         (__do_global_ctors_aux): Preserve the gp.
4559
4560 2000-05-16  Richard Henderson  <rth@cygnus.com>
4561
4562         * flow.c (commit_one_edge_insertion): Be prepared for a return
4563         insn to be inserted on the edge with a normal jump.
4564         * jump.c (jump_optimize_1): Don't look to create return isns.
4565
4566         * flow.c (flow_delete_insn): Don't adjust reference count of notes.
4567         * jump.c (jump_optimize_1): Likewise.
4568         (returnjump_p): Verify the argument is a JUMP_INSN.
4569         * rtl.def (NOTE): Add 5th element for NOTE_INSN_DELETED_LABEL.
4570
4571 2000-05-16  Nick Clifton  <nickc@cygnus.com>
4572
4573         * config/m32r/m32r.c (small_insn_p): Use INSN_P() to replace
4574         GET_RTX_CLASS (GET_CODE ()) == 'i'.
4575         (large_insn_p): Ditto.
4576         (m32r_is_insn): New function: Return true if the insn contains
4577         an executable instruction.
4578         (m32r_adjust_insn): Use m32r_is_insn.
4579         (m32r_sched_reorder): Use m32r_is_insn.
4580         (m32r_sched_variable_issue): Use m32r_is_insn.
4581
4582 2000-05-16  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4583
4584         * rs6000/rs6000.c (rs6000_select_section): Treat CONSTRUCTOR like
4585         VAR_DECL.
4586
4587         * rs6000/sysv4.h (ASM_OUTPUT_DWARF_ADDR): Delete unused variable.
4588
4589         * rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Define __unix and __linux
4590         according to given options.
4591
4592 Tue May 16 12:17:31 2000  Jeffrey A Law  (law@cygnus.com)
4593
4594         * mn10200.h (PREFERRED_RELOAD_CLASS): Do not prefer DATA_REGS
4595         if X has VOIDmode either.
4596         (LIMIT_RELOAD_CLASS): Similarly.
4597
4598         * mn10200.md (indirect_jump, tablejump): Use "register_operand",
4599         not "general_operand" to match the processor's capabilities.
4600
4601 2000-05-16  Bruce Korb  <bkorb@gnu.org>
4602
4603         * fixinc/README:  corrected return address
4604         * fixinc/check.diff:  regenerate, now that test works
4605         * fixinc/fixfixes.c(format_fix,format_write): reformatted
4606         (char_macro_def_fix,char_macro_use_fix): corrected and
4607         rewrote to use regex to parse the text
4608         * fixinc/inclhack.def: more testing
4609         * fixinc/fixincl.x:  regenerated
4610
4611         * fixinc/inclhack.def: added several "test_text" attributes
4612         changed several fixes to use `c_fix = format'
4613         re-alphabetized the fixes
4614
4615         * fixinc/check.diff: regenerate
4616         * fixinc/fixincl.x: regenerate
4617         * fixinc/check.tpl: added `sparc' and `netinet' to the list
4618         of created dirs
4619
4620
4621 2000-05-16  Alexandre Oliva  <aoliva@cygnus.com>
4622
4623         * config/mn10300/mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove.
4624
4625 2000-05-15  Richard Henderson  <rth@cygnus.com>
4626
4627         * toplev.c (rest_of_compilation): Run full jump pass before
4628         find_basic_blocks of flow2.
4629
4630 2000-05-15  Richard Henderson  <rth@cygnus.com>
4631
4632         * jump.c: Fix typos and clarify commentary from last change.
4633         (any_condjump_p): Verify SET_SRC is an IF_THEN_ELSE.
4634         (safe_to_remove_jump_p): Remove.
4635         (condjump_label): Use pc_set.
4636
4637 2000-05-15  Richard Henderson  <rth@cygnus.com>
4638
4639         * ifcvt.c (cond_exec_process_insns): Drop USE and CLOBBER insns
4640         that get in the way after reload.
4641         (cond_exec_process_if_block): Skip a label heading THEN block.
4642
4643 2000-05-15  Richard Henderson  <rth@cygnus.com>
4644
4645         * varasm.c (output_constant_pool): Abort instead of converting
4646         (improperly) deleted labels to zero.
4647
4648 2000-05-16  Neil Booth  <NeilB@earthling.net>
4649
4650         * cpplex.c (parse_string2): Update comment.
4651         (cpp_lex_line): No special assertion treatment for '('.
4652         * cpplib.c (DIRECTIVE_TABLE): Remove SYNTAX_ASSERT.
4653         * cpplib.h (SYNTAX_ASSERT): Remove.
4654
4655 Mon May 15 21:45:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4656
4657         * jump.c (condjump_p):  Mark as depreached.
4658         (any_condump_p): New.
4659         (any_uncondump_p): New.
4660         (pc_set): New.
4661         (safe_to_remove_jump_p): New.
4662         * rtl.h (any_condump_p, any_uncondjump_p, pc_set
4663         safe_to_remove_jump_p): Declare.
4664
4665 Mon May 15 21:07:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4666
4667         * calls.c: Re-install both patches reverted by last patch.
4668         (struct arg_data): New field tail_call_reg.
4669         (initialize_argument_information): Initialize tail_call_reg
4670         (load_register_parameters): New argument flags, use
4671         tail_call_reg when emiting tail call sequence.
4672         (expand_call): Update call of load_register_parameters;
4673         copy unadjusted_args_size to adjusted_args_size.
4674
4675 Mon May 15 19:01:42 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4676
4677         * loop.c (scan_loop, strength_reduce, loop_optimize): Change unroll_p
4678         and bct_p parameters to flags.
4679         * loop.h (LOOP_UNROLL, LOOP_BCT): New constants.
4680         * rtl.h (loop_optimize): Update prototype.
4681         * toplev.c (rest_of_compilation): Update call of loop_optimize.
4682
4683 2000-05-15  Jakub Jelinek  <jakub@redhat.com>
4684
4685         * calls.c (expand_call): Move expand_start_target_temps call after
4686         start_sequence().
4687
4688 2000-05-15  Neil Booth  <NeilB@earthling.net>
4689
4690         * cpphash.c (trad_stringify, warn_trad_stringify,
4691         collect_params): Make some pointers pointers to const.
4692         * cpplex.c (auto_expand_name_space) Guaranteed to always
4693         expand by at least one character.
4694         (SPELL_CHAR, SPELL_NONE): Temporarily reverse order.
4695         (struct token_spelling): Use const U_CHAR * rather than PTR.
4696         (expand_name_space): Fix up token pointers if name space
4697         is moved when expanding.
4698         (INIT_NAME, cpp_scan_line, parse_name, parse_number,
4699         parse_string2, save_comment, spell_token, cpp_output_list):
4700         Update so the routines handle tokens with a direct pointer to
4701         their text, rather than an offset into the token's list's namebuf.
4702         (_cpp_lex_line): Rearrange for clarity.
4703
4704         * cpplib.c (_cpp_check_directive): Similarly.
4705         (do_define): Make SYM a pointer to const.
4706         * cpplib.h (struct cpp_name): Replace offset with direct pointer.
4707         (CPP_INT, CPP_FLOAT): Spelling type should be SPELL_IDENT.
4708         (TOK_OFFSET): Delete.
4709         (TOK_NAME): Update.
4710
4711 2000-05-14  Geoffrey Keating  <geoffk@cygnus.com>
4712
4713         * config/rs6000/rs6000.h (RETURN_ADDRESS_OFFSET): Correct for
4714         64-bit ABI.
4715
4716         * config/rs6000/rs6000.c (logical_operand): Rewrite to take MODE
4717         into account.
4718         (logical_u_operand): Delete.
4719         (non_logical_cint_operand): Rewrite to take MODE into account.
4720         (non_logical_u_cint_operand): Delete.
4721         (boolean_operator): New function.
4722         (print_operand): Add new %q operand.
4723         * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_operator,
4724         remove logical_u_operand and non_logical_u_cint_operand,
4725         update logical_operand and non_logical_cint_operand.
4726         * config/rs6000/rs6000.md: Rewrite the patterns for performing
4727         logical operations to use %q.
4728
4729         * config/rs6000/rs6000.md (movsi): Don't modify RTL in-place.
4730         (movdi): Make similar to movsi.
4731         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): There
4732         is no such thing as a DImode CONST_DOUBLE.
4733         * config/rs6000/rs6000.c (output_toc): Likewise.
4734
4735         * config/rs6000/rs6000.c (output_cbranch): Don't output prediction
4736         codes when old mnemonics are in use.  Print register names
4737         for cc registers when requested.
4738
4739         * optabs.c (expand_float): Don't allow mode widening that causes
4740         double rounding.
4741
4742         * invoke.texi (RS/6000 and PowerPC Options): Update -m64/-m32
4743         flags to their current names -maix64 and -maix32.
4744
4745 2000-05-14  Bruce Korb  <bkorb@gnu.org>
4746
4747         * fixinc/fixfixes.c(wrap_fix): new fix - inserts text before
4748         and/or after current text of file
4749         * fixinc/fixlib.c(must_malloc):
4750         * fixinc/fixlib.h(must_malloc): + reformatting
4751         * fixinc/inclhack.def: replace the "1i" and "$a" sed commands
4752         with usages of ``c_fix = wrap;''
4753         Add several tests and use the ``c_fix = format'' fixer more.
4754         * fixinc/fixincl.x: regen
4755         * fixinc/check.diff: regen
4756         * fixinc/check.tpl: emit the associated header with the missing
4757         test message
4758
4759 Sun May 14 17:58:59 2000  Hans-Peter Nilsson  <hp@axis.com>
4760
4761         * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Do not use unset
4762         variables $src and $dst.
4763
4764 2000-05-13  Gabriel Dos Reis <gdr@codesourcery.com>
4765
4766         * diagnostic.h (DIAGNOSTICS_SHOW_PREFIX_ONCE): New macro.
4767         (DIAGNOSTICS_SHOW_PREFIX_NEVER): Likewise.
4768         (DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE): Likewise.
4769         (struct output_buffer: emitted_prefix_p, prefixing_rule): New
4770         fields.
4771         (set_message_prefixing_rule): Declare.
4772
4773         * diagnostic.c: (current_prefixing_rule): New variable.
4774         (set_message_prefixing_rule): Define.
4775         (output_set_prefix): Adjust buffer->emitted_prefix_p.
4776         (init_output_buffer): Adjust Initialization.
4777         (output_emit_prefix): Rewrite.  Take prefixing rules into account.
4778
4779 Sat May 13 11:05:47 2000  Philippe De Muyter  <phdm@macqel.be>
4780
4781         * ifcvt.c (if_convert): Do not free NULL.
4782
4783 2000-05-12  Nick Clifton  <nickc@cygnus.com>
4784
4785         * config/fr30/fr30.c (fr30_move_double): New function:  Emit code
4786         to move a double word value.
4787         (di_operand): New function: Return true if the operand is suitbale
4788         for a double word move operation.
4789         (nonimmediate_di_operand): New function: Return true if the
4790         operand is a DImode register or MEM.
4791
4792         * config/fr30/fr30.h (PREDICATE_CODES): Add di_operand and
4793         nonimmediate_di_operand.
4794
4795         * config/fr30/fr30-protos.h Add fr30_move_double, di_operand, and
4796         nonimmediate_di_operand.
4797
4798         * config/fr30/fr30.md (movdi): New pattern.  Required because
4799         other patterns generate DImode results.
4800         (movdi_insn): New pattern.
4801
4802 2000-05-12  Richard Henderson  <rth@cygnus.com>
4803
4804         * config/alpha/alpha.c (struct shadow_summary): Define
4805         bitfields as type unsigned int.
4806
4807 Sat May 13 00:09:59 2000  Denis Chertykov  <denisc@overta.ru>
4808
4809         * config/avr/t-avr: Added definition of FLOAT while generates
4810         fp-bit.c
4811
4812         * config/avr/avr.md: `NEXT_INSN (insn)' substituted to `insn' in
4813         peepholes for tst+jump = sbrs/sbrc optimization.
4814
4815 Fry May 12 20:03:00 CEST 2000  Jan Hubicka  <jh@suse.cz>
4816
4817         * expr.c (emit_push_insn): Do not adjust stack pointer when
4818         preallocating.
4819
4820 Fri May 12 19:03:58 2000  Philippe De Muyter  <phdm@macqel.be>
4821
4822         * ggc-simple.c (offsetof): Macro fallback definition moved from here ..
4823         * system.h (offsetof): ... to here.
4824
4825 2000-05-12  Richard Henderson  <rth@cygnus.com>
4826
4827         * Makefile.in (final.o): Depend on BASIC_BLOCK_H.
4828         * final.c (final_end_function): Use app_disable.  Rearrange note
4829         handling into a switch.  Emit deleted labels.
4830         (output_asm_label): Generate label strings for deleted labels.
4831         * flow.c (tail_recursion_label_list): New.
4832         (find_basic_blocks_1): Set label_value_list directly.  Collect list
4833         of tail recursion labels from call_placeholders.  Don't add deleted
4834         labels to the label value list.
4835         (cleanup_cfg): Use free_EXPR_LIST_list.
4836         (flow_delete_insn_chain): Turn non-removable labels into notes.
4837         (flow_delete_block): Don't disable deleting the block because of
4838         a non-removable label.
4839         (tail_recursion_label_p): New.
4840         (merge_blocks_move_predecessor_nojumps): Don't disable the merge
4841         because of a label.
4842         (merge_blocks_move_successor_nojumps): Likewise.  Also move a
4843         jump table.
4844         (merge_blocks): Disable a merge because of tail recursion labels.
4845         * ifcvt.c (merge_if_block): Don't disable a merge because of a label.
4846         Use a more accurate measure of not merging the join block.
4847         (find_if_block): Don't disable conversion because of a label.
4848         (find_if_case_1, find_if_case_2): Likewise.
4849         * jump.c (duplicate_loop_exit_test): Preserve the kind of list
4850         element when copying.
4851         (squeeze_notes): Also leave EH notes.
4852         (mark_jump_label): Ignore deleted labels.  Use an INSN_LIST for
4853         REG_LABEL notes.
4854         (delete_insn): Preserve LABEL_NAME in NOTE_SOURCE_FILE when
4855         deleting a label.
4856         * print-rtl.c (print_rtx): Print NOTE_SOURCE_FILE for
4857         NOTE_INSN_DELETED_LABEL.  Print `[# deleted]' for a label_ref
4858         referring to a deleted label.  Convert tail handling to a switch.
4859         * rtl.def (CODE_LABEL): Rearrange elements to be compatible with NOTE
4860         for NOTE_INSN_DELETED_LABEL.
4861         (NOTE): Fix commentary.
4862         * rtl.h (REG_LABEL): Update commentary wrt INSN_LIST.
4863         (REG_CC_SETTER, REG_CC_USER, REG_LIBCALL): Likewise.
4864         (CODE_LABEL_NUMBER, LABEL_NAME): Update index.
4865         (LABEL_NUSES, LABEL_REFS): Likewise.
4866         * unroll.c (copy_loop_body): Don't copy NOTE_INSN_DELETED_LABEL.
4867
4868 2000-05-12  Bruce Korb  <bkorb@gnu.org>
4869
4870         * fixinc/fixfixes.c(format_write): buglet & relaxed rules
4871         * fixinc/check.diff: updated
4872         * fixinc/inclhack.def: corrected & added some test_text-s
4873         * fixinc/genfixes: removed unneeded options to autogen invocation
4874         * fixinc/fixincl.tpl: Specified the output file
4875         * fixinc/fixfixes.c: visual appearance
4876         * fixinc/fixincl.x: regenerate
4877
4878 2000-05-12  Zack Weinberg <zack@wolery.cumb.org>
4879
4880         * fixinc/fixfixes.c (IO_use_fix, IO_defn_fix, CTRL_use_fix,
4881         CTRL_defn_fix): Delete.
4882         (fix_char_macro_defines, fix_char_macro_uses): Rename to
4883         char_macro_def_fix and char_macro_use_fix, respectively.  Put
4884         them into the FIXUP_TABLE.  Get the string to search for from
4885         a c_fix_arg.
4886
4887         (format_write): New function.
4888         (format_fix): Use it.
4889
4890         (FIX_PROC_HEAD): Constify text parameter.
4891         (machine_name_fix): Constify all char *s.
4892         * fixtests.c (skip_quote): Remove double static.
4893
4894         * inclhack.def (io_def_quotes, io_use_quotes, ctrl_def_quotes,
4895         ctrl_use_quotes): Update for new scheme.
4896         * fixincl.x: Regenerate.
4897
4898 2000-05-12  Alexandre Oliva  <aoliva@cygnus.com>
4899
4900         * config/mn10300/mn10300.h (PREFERRED_DEBUGGING_TYPE): Redefine as
4901         DWARF2_DEBUG.
4902         (DWARF2_ASM_LINE_DEBUG_INFO): Define.
4903         (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
4904
4905 2000-05-11  Robert Lipe <robertlipe@usa.net>
4906
4907         * fixinc/inclhack.def (hpux8_bogus_inlines): Delete bypass for SCO.
4908         * fixincl.x: Regenerate.
4909
4910 2000-05-11  Richard Henderson  <rth@cygnus.com>
4911
4912         * calls.c: Revert both 05-09 patches.
4913
4914 2000-05-11  Alexandre Oliva  <aoliva@cygnus.com>
4915
4916         * config/mn10300/mn10300.c (print_operand): Print FP constants in
4917         hexadecimal.
4918         * config/mn10300/mn10300.md (movsf, movdf): Use the `F' constraint
4919         for FP values.
4920
4921         * mklibgcc.in (EQ): Define it to an equal sign in the Makefile,
4922         and replace any occurrences of `=' in multilib dirs with `$(EQ)'.
4923
4924 2000-05-11  Jason Merrill  <jason@casey.cygnus.com>
4925
4926         * fixinc/fixincl.c (run_compiles): Don't crash on null pz_machine.
4927
4928 2000-05-11  Zack Weinberg  <zack@wolery.cumb.org>
4929
4930         * fixinc/fixfixes.c, fixinc/fixtests.c: Update commentary.
4931
4932 Thu May 11 22:28:05 2000  Denis Chertykov  <denisc@overta.ru>
4933
4934         * config/avr/avr-protos.c (jump_over_one_insn_p): New declaration.
4935         * config/avr/avr.c (jump_over_one_insn_p): New function.
4936         * config/avr/avr.md: New peepholes added. Output test and
4937         conditional jump to "sbrc" or "sbrs" command.
4938
4939 2000-05-11  Mark Elbrecht  <snowball3@bigfoot.com>
4940
4941         * cppmain.c (main): Use IS_DIR_SEPARATOR.
4942
4943 2000-05-11  Jakub Jelinek  <jakub@redhat.com>
4944
4945         * except.c (find_exception_handler_labels_1): New function.
4946         (find_exception_handler_labels): Split into two functions, dive
4947         into CALL_PLACEHOLDERs when looking for exception handler labels.
4948
4949 2000-05-11 Stan Cox <scox@cygnus.com>
4950
4951         * regrename.c (replace_reg_in_block): Improve REG_DEAD handling.
4952         * timevar.def (TV_RENAME_REGISTERS): Move before TV_SCHED2.
4953         * toplev.c (rest_of_compilation): Call regrename_optimize before sched2.
4954
4955 2000-05-11  Bruce Korb  <bkorb@gnu.org>
4956
4957         * fixinc/fixfixes.c (double_slash_fix):  obsolete
4958         (else_endif_label_fix): obsolete
4959         (format_fix):  new, unused as yet
4960         (main): obsolete
4961         * fixinc/fixlib.h: added fix description struct for use by format_fix
4962         * fixinc/fixincl.c: removed the struct & test for SIGIOT befure using
4963         * fixinc/Makefile.in:  compile fixfixes.c and fixtests.c as separate
4964         modules.  Removed the vestiges of the script version.
4965         Added support for "make check".
4966         * fixinc/check.diff: base diff file (needs work!!)
4967         * fixinc/check.tpl: quiet the fixup output
4968         * fixinc/fixtests.c (main): obsolete
4969         * fixinc/fixincl.sh:  don't bother copying fixincl to ..
4970         * fixinc/fixincl.tpl:  provide for arguments to c_fix routines
4971
4972 Thu May 11 11:57:02 MET DST 2000  Jan Hubicka <jh@suse.cz>
4973
4974         * toplev.c (rest_of_compilation): Remove dead code after
4975         combine.
4976
4977 2000-05-11  Zack Weinberg  <zack@wolery.cumb.org>
4978
4979         * cpphash.c (collect_funlike_expansion): Make "# is not
4980         followed by a macro argument name" a pedwarn, not an error.
4981         Preserve the # in the output.  Suppress the warning if lang_asm.
4982
4983 Thu May 11 01:19:31 2000  Jeffrey A Law  (law@cygnus.com)
4984
4985         * configure.in (hppa*64*-*-hpux11*): New target for PA64 support.
4986         * configure: Rebuilt.
4987
4988 2000-05-10 Laurynas Biveinis <lauras@softhome.net>
4989
4990         * i386/xm-djgpp.h (XREF_FILE_NAME): Add mising brace.
4991
4992 2000-05-10  Kazu Hirata  <kazu@hxi.com>
4993
4994         * combine.c (try_combine): Fix a typo.
4995
4996 Wed May 10 21:31:44 2000  Jim Wilson  <wilson@cygnus.com>
4997
4998         * config/ia64/ia64.md (insv): Add comment.
4999
5000 2000-05-10  Richard Henderson  <rth@cygnus.com>
5001
5002         * Makefile.in (libgcc.a, stmp-multilib): Depend on FPBIT and DPBIT.
5003         * mklibgcc.in: Rewrite to not use functions.  Don't shortcut
5004         dependancies on FPBIT and DPBIT.
5005
5006 2000-05-10  Nick Clifton  <nickc@redhat.com>
5007
5008         * flow.c (find_auto_inc): Do not bias REG_N_REFS by loop_depth
5009         when optimising for size.
5010         (mark_used_regs:) Ditto.
5011         (try_pre_increment_1): Ditto.
5012
5013 2000-05-10  Zack Weinberg  <zack@wolery.cumb.org>
5014
5015         * cppexp.c (lex): Use %.*s to print non-NUL-terminated string.
5016         Make error message friendlier.
5017
5018         * cpphash.h (struct hashnode): Use struct hack for name
5019         member.
5020         * cpphash.c (struct hashdummy): New.
5021         (eq_HASHNODE): Second argument is a hashdummy, not a HASHNODE.
5022         (make_HASHNODE): No need to set ->name pointer.  Correct
5023         setting of p.
5024         (cpp_lookup): Make 'dummy' a struct hashdummy.  Tidy up a bit.
5025
5026 2000-05-10  Richard Henderson  <rth@cygnus.com>
5027
5028         * flow.c (find_basic_blocks_1): Remove any spare bb_note
5029         after completion.
5030
5031 2000-05-10  Bruce Korb  <bkorb@gnu.org>
5032
5033         * fixinc/gnu-regex.c:  reg_syntax_t re_syntax_options must be static
5034
5035 2000-05-10  Eric Schweitz  <schweitz@nortelnetworks.com>
5036
5037         * dwarfout.c (dwarfout_finish): Call retry_incomplete_types
5038         after we enter .debug.
5039
5040 2000-05-10  Jason Merrill  <jason@casey.cygnus.com>
5041
5042         * dwarf2out.c (gen_subprogram_die): Fixup die_parent for the
5043         abstract instance of a nested inline function.
5044
5045         * stor-layout.c (finish_record_layout): finalize_type_size
5046         before laying out the pending_statics.
5047
5048 Wed 10 May 09:36:47 2000  Neil Booth  <NeilB@earthling.net>
5049
5050         * cpplex.c (spell_token): New function.
5051         (spell_string, spell_comment, spell_name): fold into
5052         spell_token.
5053         (I, S): Add macros.
5054         (E, H): Remove macros.
5055         (save_comment): Save comment opening characters too.
5056         (_cpp_lex_file): Update to use spell_token.  Tidy up comment
5057         handling.
5058         * cpplib.h (I, S): Add macros.
5059         (E, H): Remove macros.
5060         (TTYPE_TABLE): Update entries for new speller.
5061         (SYNTAX_ASSERT): Remove.
5062
5063 Wed 10 May 09:08:30 2000  Neil Booth  <NeilB@earthling.net>
5064
5065         * cpplex.c (_cpp_lex_line): Maintain PREV_WHITESPACE flag
5066         when removing escaped newlines.  Reverse sense of test for
5067         escaped newline.
5068
5069 2000-05-09  Richard Henderson  <rth@cygnus.com>
5070
5071         * flow.c (find_basic_blocks_1): Do not delete the first
5072         bb_note we run across.
5073         (create_basic_block): Use reorder_insns to move an existing
5074         bb_note to the correct place.
5075
5076 2000-05-09  Richard Henderson  <rth@cygnus.com>
5077
5078         * calls.c (expand_call): Increment currently_expanding_call
5079         before calling optimize_tail_recursion.
5080
5081 Tue May  9 18:54:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5082
5083         * reload1.c (reload_combine): Fix errors in last change.
5084
5085 2000-05-09  Zack Weinberg  <zack@wolery.cumb.org>
5086
5087         * gcc.c (used_arg): Skip over a semicolon at the end of the
5088         split-up loop; don't break out of it.
5089
5090         * Makefile.in (WARN_CFLAGS): Add -Wwrite-strings.
5091         (tree.o): Depend on output.h.
5092
5093         * c-decl.c (pending_invalid_xref_file,
5094         current_function_prototype_file): Constify.
5095         (pushdecl): Constify a local char *.
5096         (define_label): Constify filename parameter.
5097         * c-lex.c (init_parse): Constify parameter and return value.
5098         * c-typeck.c (c_expand_asm_operands): Constify filename parameter.
5099         * c-tree.h: Update prototypes.
5100         * c-parse.in: Constify filename member of %union, and if_stmt_file.
5101         * c-parse.y, c-parse.c, c-parse.h, objc/objc-parse.y,
5102         objc/objc-parse.c: Regenerate.
5103
5104         * dwarfout.c (dwarfout_init): Constify main_input_filename parameter.
5105         * dwarfout.h: Update prototypes.
5106         * expr.c (expand_expr): Constify a local char *.
5107         * flags.h: Constify main_input_filename.
5108         * function.c (expand_function_end): Constify filename parameter.
5109         * genrecog.c (make_insn_sequence): Use a character array for
5110         c_test_pos.
5111         (main): Remove unused variables.
5112         * input.h: Constify input_filename, main_input_filename, and
5113         file_stack.name.  Update prototypes.
5114         * output.h: Declare first_global_object_name and
5115         weak_global_object_name here, as const char *.
5116         * stmt.c (expand_asm_operands): Constify filename parameter.
5117         * toplev.c (compile_file, push_srcloc, debug_start_source_file):
5118         Constify filename parameter.
5119         (input_filename, main_input_filename): Constify.
5120         * toplev.h: Update prototypes.
5121         * tree.c: Include output.h.  Don't declare
5122         first_global_object_name or weak_global_object_name.  Clean up string
5123         bashing in get_file_function_name_long.
5124         * tree.h (struct tree_decl): Constify filename member.
5125         (input_filename): Constify.
5126         Update prototypes.
5127         * varasm.c (first_global_object_name, weak_global_object_name):
5128         Constify.
5129         (assemble_start_function, assemble_variable): Clean up string bashing.
5130
5131         * gcc.c: Constify all spec-related strings initialized,
5132         transitively, from string constants.  Constify all strings
5133         and string variables related to multilibs.
5134         (set_spec, read_specs): Cast argument to free to PTR.
5135         (used_arg): Do not modify multilib_matches.  Use strncmp plus
5136         length comparison to compare multilib switches.
5137         * genmultilib: Constify everything declared in multilib.h.
5138
5139 Tue May  9 22:28:03 2000  Denis Chertykov  <denisc@overta.ru>
5140
5141         * flow.c (flow_delete_insn): Use INSN_DELETED_P for marking insn
5142         as deleted.
5143
5144 Tue May  9 20:52:43 2000  Denis Chertykov  <denisc@overta.ru>
5145
5146         * config/avr/avr-protos.h (extra_constraint): change a type of
5147         second argument from char to int to avoid warnings.
5148         (asm_output_byte): Likewise.
5149
5150         * config/avr/avr.c (MAX_LD_OFFSET) New macro.
5151         (initial_elimination_offset): Handle elimination from
5152         FRAME_POINTER_REGNUM to STACK_POINTER_REGNUM.
5153         (legitimate_address_p): Use MAX_LD_OFFSET.
5154         (legitimize_address): Likewise.
5155         (out_movqi_r_mr): Likewise.
5156         (out_movhi_r_mr): Likewise, use `fatal_insn' instead of `fatal'.
5157         (out_movsi_r_mr): Use MAX_LD_OFFSET.
5158         (out_movsi_mr_r): Likewise.
5159         (out_movqi_mr_r): Likewise.
5160         (out_movhi_mr_r): Likewise.
5161         (notice_update_cc): Correct CC for the ashrqi3 with the shift
5162         count as CONST_INT != 6.
5163         (ashlqi3_out): Coding style modifications. Run `fatal_insn' if
5164         shift count is a CONSTANT_P, but not a CONST_INT.
5165         (ashlhi3_out): Coding style modifications.
5166         (ashlsi3_out): Likewise.
5167         (ashrhi3_out): Likewise.
5168         (ashrsi3_out): Likewise.
5169         (lshrhi3_out): Likewise.
5170         (lshrsi3_out): Likewise.
5171         (ashrqi3_out): Generate shift for any known constant count without
5172         scratch register. Run `fatal_insn' if shift count is a CONSTANT_P,
5173         but not a CONST_INT.
5174         (lshrqi3_out): Coding style modifications. Run `fatal_insn' if
5175         shift count is a CONSTANT_P, but not a CONST_INT.
5176         (extra_constraint): change a type of
5177         second argument from char to int to avoid warnings.
5178         (asm_output_byte): Likewise.
5179         (asm_file_end): Output size generated commands count as a hex
5180         number too.
5181
5182         * config/avr/avr.h (RETURN_ADDR_RTX): New macro.
5183
5184         * config/avr/avr.md (addhi3): Fragment commented by &&0 is
5185         removed.
5186         (ashlqi3): Values of "length" attribute changed. Shift count
5187         uses constraints 'n' instead of 'i'.
5188         (ashrqi3): Likewise. Values of "cc" attribute changed. Generate
5189         shifts without clobber register.
5190         (lshrqi3): Shift count uses constraints 'n' instead of 'i'.
5191         (call_insn): Correct test for which_alternative == 1 (was 0).
5192         (call_value_insn): Likewise.
5193
5194         * config/avr/t-avr: Remove definition of FLOAT while generates
5195         fp-bit.c
5196
5197 2000-05-09  Bruce Korb  <bkorb@gnu.org>
5198
5199         * fixinc/check.tpl:  Template for checking fixes
5200         * fixinc/inclhack.def:  Added 'test_text' for many fixes
5201         disable hpux8_bogus_inlines on SCO
5202         * fixinc/fixinc.sco:  Oh, yes, we don't need this any more.
5203
5204 Tue May  9 16:30:27 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5205
5206         * calls.c (expand_call): Reorganize somewhat in order
5207         to avoid unnecesary recalculation inside loop and make
5208         tail call failure code cleaner.
5209
5210 Tue May  9 06:30:20 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5211
5212         * alias.c (nonlocal_reference_p): Minor reformatting.
5213         * reload.c (find_equiv_reg): Simplify logic for
5214         CALL_INSN_FUNCTION_USAGE since can't have SUBREG or pseudos and
5215         some some reformatting.
5216         * reload1.c (reload_combine): Don't assume everything in
5217         CALL_INSN_FUNCTION_USAGE is a REG and clean up code a bit.
5218
5219 2000-05-08  Richard Henderson  <rth@cygnus.com>
5220
5221         * final.c (current_insn_predicate): New.
5222         (final_scan_insn): Set it.
5223         * output.h (current_insn_predicate): Declare.
5224
5225         * ifcvt.c (cond_exec_process_insns): New argument prob_val.
5226         Attach it to call insns.
5227         (cond_exec_process_if_block): Track probability for true and
5228         false branches.
5229         (dead_or_predicable): Likewise.
5230
5231         * predict.c (PROB_NEVER, PROB_VERY_UNLIKELY): New.
5232         (PROB_UNLIKELY, PROB_EVEN, PROB_LIKELY): New.
5233         (PROB_VERY_LIKELY, PROB_ALWAYS): New.
5234         (estimate_probability, expected_value_to_br_prob): Use them.
5235
5236         * config/ia64/ia64-protos.h (ia64_expand_prediction): Declare.
5237         * config/ia64/ia64.c (ia64_print_operand_address): Handle 'j'.
5238         (ia64_expand_prediction): New.
5239         (emit_insn_group_barriers): Don't look at notes.  Emit barriers
5240         as needed after calls.
5241         (ia64_epilogue_uses): Mark b0 used.
5242         * config/ia64/ia64.md (beq_true, beq_false): Remove.
5243         (bne_true, bne_false): Remove.
5244         (eq_return, eq_not_return, ne_return, ne_not_return): Remove.
5245         (br_true, br_false): New.  Use predicate_operator and
5246         ia64_expand_prediction.
5247         (return_true, return_false): Likewise.
5248         (call_internal): Use ia64_expand_prediction.  Don't emit stop bit.
5249         (call_internal1, call_value_internal): Likewise.
5250         (call_value_internal1, call_multiple_values_internal1): Likewise.
5251
5252         * config/ia64/ia64.c (ia64_direct_return): Require frame size zero.
5253
5254         * config/ia64/ia64.md (extendsfdf2): Split only after reload.
5255
5256 2000-05-08  Richard Henderson  <rth@cygnus.com>
5257
5258         * rtlanal.c (may_trap_p): Consider old-style and volatile
5259         asms to trap.
5260
5261 Mon May  8 17:16:48 2000  Jim Wilson  <wilson@cygnus.com>
5262
5263         * config/ia64/ia64.h (RETURN_ADDR_RTX): Use COUNT not count.
5264
5265 2000-05-08  Richard Henderson  <rth@cygnus.com>
5266
5267         * config/ia64/ia64.h (predicate_operator): Declare.
5268
5269         * config/ia64/ia64.md (extendsfdf2): Split the nop case out
5270         of existance.
5271
5272         * gensupport.c (process_rtx): Copy and post-process each member
5273         of the define_insn rtvec individually.
5274
5275 Mon  8 May 22:17:35 2000  Neil Booth  <NeilB@earthling.net>
5276
5277         * cpplex.c (spell_token): New function.
5278         (TOKEN_LEN): Add 1 for whitespace.
5279         (_cpp_lex_file): Update to use spell_token.
5280         * cpplib.h (E): Remove.
5281         (TTYPE_TABLE): Update CPP_VSPACE entry.
5282
5283 2000-05-08  Richard Henderson  <rth@cygnus.com>
5284
5285         * flow.c (init_propagate_block_info): Watch out for conditional
5286         branch to next instruction, and thus one outgoing edge.
5287
5288         * config/ia64/ia64.c (ia64_encode_section_info): Exit early
5289         for global register variables; don't special case __[CD]TOR_LIST__;
5290         mind ggc_p for string allocation.
5291
5292 2000-05-08  Nick Clifton  <nickc@cygnus.com>
5293
5294         * config/i386/i386.h (ELIMINABLE_REGS): Fix comment.
5295
5296 2000-05-08  Bruce Korb  <bkorb@gnu.org>
5297
5298         * fixinc/mkfixinc.sh:  fixinc.sco is no longer used
5299         i?86-*-msdosdjgpp* no longer uses fixincludes
5300         * fixinc/genfixes:  inclhack.sh and fixincl.sh are no longer generated
5301         * fixinc/inclhack.sh:  deleted
5302         * fixinc/hackshell.tpl:  deleted
5303         * fixinc/inclhack.tpl:  deleted
5304         * fixinc/Makefile.in:  Remove dependencies on above
5305         * fixinc/fixincl.sh:  "DO NOT EDIT" text modified
5306
5307 2000-05-08  Andreas Jaeger  <aj@suse.de>
5308
5309         * config/mips/linux.h: Remove undefines which disabled .ctor/.dtor
5310         support.
5311
5312 2000-05-07  Zack Weinberg  <zack@wolery.cumb.org>
5313
5314         * Makefile.in (LOOSE_CFLAGS): Add /g modifiers to both sed
5315         substitutions.
5316
5317 Sun  7 May 08:43:53 2000  Neil Booth  <NeilB@earthling.net>
5318
5319         * cpplex.c: Move new lexer definitions and prototypes
5320         to top.  Conditional include these and the code if
5321         NEW_LEXER is defined.  Rename functions whose names
5322         clash if this code included.
5323
5324 Sun May  7 00:54:57 EDT 2000  John Wehle  (john@feith.com)
5325
5326         * rtl.def (COND_EXEC): Clarify.
5327
5328         * i386.md (extendsidi2): Clobber (reg:CC 17) in the
5329         same fashion as zero_extendsidi2.
5330
5331 2000-05-06  Richard Henderson  <rth@cygnus.com>
5332
5333         * config/ia64/ia64.c (predicate_operator): New.
5334         (ia64_print_operand): Handle 'J'.
5335         (rtx_needs_barrier): Handle COND_EXEC.
5336         * config/ia64/ia64.h (BRANCH_COST): Define.
5337         (PREDICATE_CODES): Update.
5338         * config/ia64/ia64.md: Docuement used unspec values.
5339         (attr predicable): New.
5340         (movxf, movxf_internal): New.
5341         (extendsfdf2): Don't comment out nop.
5342         (floatdidf2): Remove.
5343         (truncxfsf2, truncxfdf2, floatdixf2): New.
5344         (abssi2, absdi2): Put the neg in the "true" slot.
5345         (conditional branch instructions): Mark not predicable.
5346         (cmov*_internal): Use predicate_operator.  Split to cond_exec.
5347         (abs*_internal): Likewise.
5348         (alloc, set_bsp): Mark not predicable.
5349         (barrier, insn_group_barrier, flush_cache): Likewise.
5350         (define_cond_exec): New.
5351
5352 2000-05-06  Richard Henderson  <rth@cygnus.com>
5353
5354         * c-decl.c: Include "tm_p.h".
5355
5356         * config/ia64/ia64-protos.h: Rearrange decls to reduce ifdef madness.
5357         (fetchadd_operand, ia64_expand_fetch_and_op): Declare.
5358         (ia64_expand_op_and_fetch): Declare.
5359         * config/ia64/ia64.c: Include "toplev.h".  Kill trailing whitespace.
5360         (setjmp_operand): Constify variables for XSTR.
5361         (ia64_encode_section_info): Likewise.
5362         (ia64_print_operand): Use %d for exact_log2; cast 32-bit printed
5363         values to int.
5364         (ia64_asm_output_external): Constify name.
5365         (process_set): Use HOST_WIDE_INT_PRINT_DEC for frame size.
5366         (process_for_unwind_directive): Provide switch default.
5367         (ia64_expand_compare_and_swap): Remove unused variables.
5368         (ia64_expand_builtin): Likewise.
5369         * config/ia64/ia64.h (ASM_OUTPUT_BYTE): Mask and cast value to int
5370         for printing.
5371
5372         * config/ia64/ia64.c (sdata_symbolic_operand): Mark unused args.
5373         (symbolic_operand, function_operand, setjmp_operand): Likewise.
5374         (shift_count_operand, shift_32bit_count_operand): Likewise.
5375         (shladd_operand, fetchadd_operand, ia64_function_prologue): Likewise.
5376         (ia64_function_epilogue, ia64_setup_incoming_varargs): Likewise.
5377         (ia64_function_arg_partial_nregs, ia64_function_value): Likewise.
5378         (ia64_print_operand_address, ia64_secondary_reload_class): Likewise.
5379         (ia64_expand_builtin): Likewise.
5380         (call_multiple_values_operation): Make dest_regno unsigned.
5381
5382 2000-05-06  Richard Henderson  <rth@cygnus.com>
5383
5384         * rtl.def (DEFINE_COND_EXEC): New.
5385         * md.texi: Document it.
5386
5387         * gensupport.c (input_file): Remove.
5388         (struct queue_elem): Add lineno.
5389         (rtx_ready_queue): Remove.
5390         (errors): New.
5391         (predicable_default): New.
5392         (predicable_true, predicable_false): New.
5393         (define_attr_queue, define_attr_tail): New.
5394         (define_insn_queue, define_insn_tail): New.
5395         (define_cond_exec_queue, define_cond_exec_tail): New.
5396         (other_queue, other_tail): New.
5397         (queue_pattern): New.
5398         (process_rtx): Add patterns to the appropriate queues.
5399         (is_predicable, identify_predicable_attribute): New.
5400         (n_alternatives, collect_insn_data): New.
5401         (alter_predicate_for_insn, alter_test_for_insn): New.
5402         (shift_output_template, alter_output_for_insn): New.
5403         (process_one_cond_exec, process_define_cond_exec): New.
5404         (init_md_reader): Read the entire file.  Process define_cond_exec.
5405         (read_md_rtx): Return elements from the queues.
5406
5407 2000-05-06  Richard Henderson  <rth@cygnus.com>
5408
5409         * flow.c (mark_set_1): Don't update conditional life info
5410         if the register is not_dead.
5411
5412 2000-05-06  Zack Weinberg  <zack@wolery.cumb.org>
5413
5414         * Makefile.in (STAGESTUFF): Add genrtl.c and genrtl.h.
5415         (mostlyclean): Also delete fixincl, fixinc.sh, and
5416         specs.ready, and make clean in the fixinc subdir.
5417
5418 2000-05-06  Richard Henderson  <rth@cygnus.com>
5419
5420         * Makefile.in (gensupport.o): Compile for the host.
5421         (host-prefix gensuuprt.o): Remove.
5422         (genflags.o): Depend on gensupport.h and OBSTACK_H.
5423         (genattrtab.o): Likewise.
5424         (gencodes.o): Depend on gensupport.h.
5425         (genemit.o, genopinit.o, genrecog.o, genextract.o): Likewise.
5426         (genpeep.o, genattr.o, genoutput.o): Likewise.
5427
5428         * gensupport.c (obstack, rtl_obstack): New.
5429         (init_md_reader): Initialize rtl_obstack.
5430         * gensupport.h (rtl_obstack): Declare.
5431         (message_with_line): Declare.
5432
5433         * genattr.c: Remove all traces of obstack manipulation.
5434         * gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise.
5435         * genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise.
5436
5437         * genattrtab.c (obstack, rtl_obstack): Remove.
5438         (main): Don't init rtl_obstack.
5439         * genflags.c: Likewise.
5440
5441         * genrecog.c (message_with_line): Move ...
5442         * gensupport.c: ... here.
5443
5444 2000-05-06  Richard Henderson  <rth@cygnus.com>
5445
5446         * c-typeck.c (build_c_cast): Remove dead code.
5447
5448 2000-05-06  Richard Henderson  <rth@cygnus.com>
5449
5450         * flow.c (split_edge): Don't allocate global_live_at_start for
5451         the new block unless the old blocks had them as well.
5452
5453         * flow.c (mark_set_1): Respect not_dead when updating reg_live.
5454
5455         * ifcvt.c (noce_process_if_block): Don't use an insn_b from
5456         test_bb if a or b uses x.
5457
5458 2000-05-06  Zack Weinberg  <zack@wolery.cumb.org>
5459
5460         * cpphash.h: Remove conditional #define of __extension__.
5461         * rtl.h: Add __extension__ to RTL_CHECK1, RTL_CHECK2,
5462         RTL_CHECKC1, RTL_CHECKC2, and RTVEC_ELT macros
5463         (ENABLE_RTL_CHECKING only).
5464         * tree.h: Add __extension__ to TREE_CHECK, TREE_CLASS_CHECK,
5465         CST_OR_CONSTRUCTOR_CHECK, and EXPR_CHECK macros
5466         (ENABLE_TREE_CHECKING only).
5467         * varray.h: Add __extension__ to VARRAY_CHECK macro
5468         (ENABLE_CHECKING only).
5469
5470 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
5471
5472         Use new tail-calling mechanism on ARM.
5473         * arm.md (sibcall, sibcall_value): New expands.
5474         (sibcall_insn, sibcall_value_insn, sibcall_epilogue): New insns.
5475         (tailcalling peepholes): Delete.
5476         (push_multi): Simplify.
5477         * arm.c (lr_save_eliminated): Delete definition.
5478         (pattern_really_clobbers_lr, function_really_clobbers_lr): Delete.
5479         (output_return_instruction): Remove checks on lr_save_eliminated.
5480         (output_arm_prologue): Remove old tail-calling code.
5481         (arm_output_epilogue): New parameter, really_return.  All callers
5482         changed.  Handle tail-calling epilogues.
5483         * arm.h (lr_save_eliminated): Delete declaration.
5484         (frame_pointer_needed): Delete declaration.
5485         * arm-protos.h (arm_output_epilogue): Adjust prototype.
5486
5487         * arm.md (is_thumb): Examine symbol thumb_code, not expression
5488         TARGET_ARM.
5489         * arm.c (thumb_code): Define it.
5490         (arm_override_options): Set it.
5491         * arm.h (thumb_code): Declare it.
5492
5493 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
5494
5495         * arm-protos.h (arm_dllexport_name_p, arm_dllimport_name_p): Constify.
5496
5497 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
5498
5499         * arm.c (arm_gen_load_multiple, arm_gen_store_mulitple): Don't add
5500         bogus clobber to insns.
5501         (load_multiple_operation, store_mulitple_operation): Don't check
5502         for it.
5503         * arm.md (ldmsi_postinc, stmsi_postinc): Adjust accordingly.
5504
5505         * arm.md (and_scc, ior_scc): Add missing mode.
5506
5507         * arm.md (call_value_symbol): Remove predicate from op2.
5508
5509         * arm.h (SPECIAL_MODE_PREDICATES): Define.
5510
5511 Sat May  6 06:25:56 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5512
5513         * expr.c (get_subtarget): New function.
5514         (force_operand, expand_expr, do_store_flag): Use it.
5515
5516         * toplev.c (compile_file): Don't take strlen of NAME if null.
5517
5518 2000-05-06  David Edelsohn  <edelsohn@gnu.org>
5519
5520         * xcoffout.c (xcoff_current_include_file,
5521         xcoff_current_function_file, xcoff_lastfile): Constify char *.
5522         (xcoffout_source_file, xcoffout_source_line): Make filename 'const
5523         char *'.
5524         (xcoffout_declare_function): Make name 'const char *'.
5525         (xcoffout_end_epilogue): Make fname 'const char *'
5526         * xcoffout.h (xcoff_current_include_file, xcoff_lastfile,
5527         xcoffout_declare_function, xcoffout_source_line): Match above.
5528
5529         * aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -mpowerpc64 without
5530         -maix64 is error.
5531         * rs6000.c (print_operand): Fix lossage typo.
5532         (output_cbranch): Remove "cr" decoration for now.
5533         * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Make alias 'const char *'.
5534
5535 Sat May  6 06:55:32 2000  Denis Chertykov  <denisc@overta.ru>
5536
5537         * config/avr/avr.c (out_shift_with_cnt): Bugfix for shift by
5538         constant count.
5539
5540 2000-05-05  Bruce Korb  <bkorb@gnu.org>
5541
5542         * fixinc/genfixes: Improve the matching for make target names
5543
5544 2000-05-05  Catherine Moore  <clm@cygnus.com>
5545
5546         * c-common.c (decl_attributes):  For TYPE_DECLs attach the
5547         attribute to the decl.
5548         * c-decl.c (pushdecl): Propagate the USED attribute to the
5549         type copy.
5550
5551 2000-05-05  Richard Henderson  <rth@cygnus.com>
5552
5553         * rtlanal.c (reg_overlap_mentioned_p): Treat parallels in the
5554         same way emit_group_load does.
5555
5556 2000-05-05 Mark Elbrecht <snowball3@bigfoot.com>
5557
5558         * gcc.c (set_input) [HAVE_DOS_STYLE_FILE_SYSTEM]: Skip drive name.
5559
5560         * toplev.c (output_file_directive): Use IS_DIR_SEPARATOR.
5561         (main): Likewise.
5562
5563 2000-05-05 Rodney Brown <RodneyBrown@mynd.com>
5564
5565         * pa.h (FUNCTION_ARG_ADVANCE): Warning removal.
5566
5567 Fri May  5 10:29:21 2000  Marc Espie <espie@cvs.openbsd.org>
5568
5569         * config/openbsd.h (LINK_SPEC): pass correct flags to ld
5570         to support -shared, on platforms with dynamic libraries.
5571
5572 Fri May  5 10:27:06 2000  Philippe De Muyter  <phdm@macqel.be>
5573
5574         * system.h (S_ISBLK): Provide fallback definition.
5575
5576 2000-05-05  Geoff Berry  <geoffb@bops.com>
5577
5578         * extend.texi (Extended Asm): Document inability to give asm
5579         statements access to condition codes.
5580
5581 2000-05-05  Marek Michalkiewicz  <marekm@linux.org.pl>
5582
5583         * varasm.c (asm_emit_uninitialised): Use 0, not NULL
5584         as arg 2 of UNIQUE_SECTION.
5585
5586 Fri May  5 10:11:41 2000  Jeffrey A Law  (law@cygnus.com)
5587
5588         * predict.c: Remove May 4 change.
5589         * bb-reorder.c (make_reorder_chain): Do not perform block movement
5590         if we have predicted the branch at 50-50 probability.
5591
5592 2000-05-05  Richard Henderson  <rth@cygnus.com>
5593
5594         * flow.c (init_propagate_block_info): Fix merge error
5595         in HAVE_conditional_execution code.
5596
5597 Fri May  5 07:43:50 2000  Denis Chertykov  <denisc@overta.ru>
5598
5599         * config/avr/avr.c (out_shift_with_cnt): Genetare a more optimal
5600         shift cycle for unknown shift count. Also generates dec + brpl.
5601         (ashlqi3_out): Don't generate dec + brpl which now generates by
5602         `out_shift_with_cnt'.
5603         (ashlhi3_out): Likewise.
5604         (ashlsi3_out): Likewise.
5605         (ashrqi3_out): Likewise.
5606         (ashrhi3_out): Likewise.
5607         (ashrsi3_out): Likewise.
5608         (lshrqi3_out): Likewise.
5609         (lshrhi3_out): Likewise.
5610         (lshrsi3_out): Likewise.
5611
5612 2000-05-04 Mark Elbrecht <snowball3@bigfoot.com>
5613
5614         * gcc.c (free_split_directories): Correct typo in explanation
5615         of make_relative_prefix.
5616
5617 2000-05-04  Geoff Keating  <geoffk@cygnus.com>
5618
5619         * config/rs6000/rs6000.h (PREDICATE_CODES): Add floating-point
5620         comparison codes to branch_comparison_operator.
5621
5622 2000-05-04  Richard Henderson  <rth@cygnus.com>
5623
5624         * ifcvt.c (noce_process_if_block): Always reset X in the A == B case.
5625
5626 2000-05-04  Richard Henderson  <rth@cygnus.com>
5627
5628         * Makefile.in (FPBIT_FUNCS): Remove _df_to_usi.
5629         (DPBIT_FUNCS): Remove _sf_to_usi.
5630         (stmp-multilib): Pass LIB1ASMSRC to libgcc.mk.
5631
5632         * ifcvt.c (noce_process_if_block): Fail if A or B modified
5633         between condition and jump.
5634
5635         * libgcc2.c (near eh_context_specific): Comment #endif string.
5636         * longlong.h: Don't use strings with embedded newlines.
5637
5638 2000-05-04  Geoff Keating  <geoffk@cygnus.com>
5639
5640         * config/rs6000/rs6000-protos.h: Add output_cbranch.
5641         * config/rs6000/rs6000.c (ccr_bit_negated_p): Delete.
5642         (print_operand): Delete %t and %T codes.
5643         (output_cbranch): New function.  Support branch prediction.
5644         * config/rs6000/rs6000.md: Use output_cbranch for
5645         conditional branches and returns.
5646
5647 2000-05-04  Jason Merrill  <jason@casey.cygnus.com>
5648
5649         * simplify-rtx.c (simplify_ternary_operation): Cast to unsigned.
5650         * stor-layout.c (place_field): Likewise.
5651         * integrate.h (struct inline_remap): Make regno_pointer_align unsigned.
5652         * expr.c (store_expr): Make align unsigned.
5653         * explow.c (plus_constant_wide): Make low words unsigned.
5654         * expmed.c (choose_multiplier): Likewise.
5655         * fold-const.c (fold):  Likewise.
5656         * tree.h (build_int_2): Likewise.
5657         * tree.c (build_int_2_wide, tree_int_cst_msb): Likewise.
5658         * emit-rtl.c (gen_reg_rtx): Add cast to unsigned char*.
5659         (init_emit): Change cast to unsigned char*.
5660         * varasm.c (compare_constant_1): Add cast to char*.
5661         * gcse.c (delete_null_pointer_checks): Change cast to unsigned int*.
5662         * reload1.c (reload): Likewise.
5663
5664         * rtl.h (MEM_SET_IN_STRUCT_P): Use do { } while (0).
5665
5666 Thu May  4 14:37:23 2000  Jeffrey A Law  (law@cygnus.com)
5667
5668         * predict.c (estimate_probability): If no prediction was found, then
5669         predict the successor that is the next physical block (if such a
5670         successor exists).
5671
5672 2000-05-04  Richard Henderson  <rth@cygnus.com>
5673
5674         * config/alpha/t-alpha (LIB2FUNCS_EXTRA): Use qrrnd.asm in place.
5675
5676 2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5677
5678         * system.h: Don't wrap <sys/types.h> with HAVE_SYS_TYPES_H.
5679
5680 2000-05-04  Mumit Khan  <khan@xraylith.wisc.edu>
5681
5682         * i386/cygwin.h (CPP_PREDEFINES): Don't define __STDC__. Move
5683         attribute macros from here ...
5684         (CPP_SPEC): to here.
5685         * i386/mingw32.h (CPP_PREDEFINES): Likewise.
5686         (CPP_SPEC): Likewise.
5687         * i386/crtdll.h (CPP_PREDEFINES): Delete attribute macros.
5688
5689         * Makefile.in ($(HOST_PREFIX_1)gensupport.o): Add build rule.
5690         (libgcc.a): Pass LIB1ASMSRC to libgcc.mk.
5691
5692 2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5693
5694         * bb-reorder.c (get_next_bb_note, get_prev_bb_note): Prototype.
5695
5696         * diagnostic (vbuild_message_string, build_message_string,
5697         build_location_prefix, output_get_prefix, init_output_buffer,
5698         output_notice, vline_wrapper_message_with_location,
5699         v_message_with_decl, default_print_error_function): De-constify.
5700         (set_real_maximum_length): Prototype.
5701
5702         * diagnostic.h (struct output_buffer, init_output_buffer,
5703         output_get_prefix, output_set_prefix): De-constify.
5704
5705         * function.c (init_function_start): Constify.
5706
5707         * gensupport.c (remove_constraints, process_rtx): Prototype.
5708
5709         * gthr-posix.h: Indent uses of #pragma.
5710
5711         * objc/objc-act.c (ggc_mark_imp_list, ggc_mark_hash_table):
5712         Prototype.
5713
5714         * predict.c (find_expected_value): Delete prototype.
5715         (expected_value_to_br_prob): Initialize variable `ev_reg'.
5716
5717         * sbitmap.h (debug_sbitmap): Prototype.
5718
5719         * ssa.c (compute_coalesced_reg_partition): Prototype.
5720
5721         * stor-layout.c (debug_rli): Prototype.
5722
5723         * tree.h (round_down): Prototype.
5724         (init_function_start): Constify.
5725
5726 2000-05-04  Zack Weinberg  <zack@wolery.cumb.org>
5727
5728         * cpphash.h: #define __extension__ away if GCC_VERSION < 2095
5729         (overly conservative).  Change extern inline wrappers to
5730         static inline, define them always, use PARAMS properly.
5731         * cpplex.c (_cpp_get_directive_token): Don't issue pedantic
5732         whitespace warnings for \f and \v at the beginning of a line.
5733
5734 Thu May  4 10:03:50 2000  Jeffrey A Law  (law@cygnus.com)
5735
5736         * haifa-sched.c (schedule_insns): Free the flow edge list when it
5737         is no longer needed
5738
5739 2000-05-04  Bruce Korb  <bkorb@gnu.org>
5740
5741         * fixincl/inclhack.def: added broken_cabs -
5742         Remove `extern double cabs' declarations from math.h
5743         * fixincl/inclhack.sh: regen
5744         * fixincl/fixincl.x: regen
5745         * fixincl/fixincl.c: Remove BOGOSITY code
5746         * fixincl/mkfixinc.sh: Remove code for installing "shell" version
5747
5748 Thu May  4 09:45:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5749
5750         * rtl.h (MEM_COPY_ATTRIBUTES): Also copy RTX_UNCHANGING_P and
5751         MEM_ALIAS_SET.
5752         * alias.c (canon_rtx): Don't copy RTX_UNCHANGING_P or MEM_ALIAS_SET
5753         when calling MEM_COPY_ATTRIBUTES.
5754         * emit-rtl.c (operand_subword, change_address): Likewise.
5755         * explow.c (stabilize): Likewise.
5756         * expr.c (protect_from_queue, emit_move_insn_1): Likewise.
5757         * integrate.c (copy_rtx_and_substitute): Likewise.
5758         * combine.c (combine_simplify_rtx): Don't copy RTX_UNCHANGING_P
5759         when calling MEM_COPY_ATTRIBUTES.
5760         (make_extraction, simplify_shift_const, gen_lowpart_for_combine):
5761         Likewise.
5762         * cse.c (gen_lowpart_if_possible): Likewise.
5763         * function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
5764         * optabs.c (gen_move_insn): Likewise.
5765         * recog.c (validate_replace_rtx_1): Likewise.
5766         * simplify-rtx.c (add_mem_for_addr): Likewise.
5767         * stmt.c (expand_anon_union_decl): Likewise.
5768         * config/arm/arm.md: Likewise.
5769         * config/h8300/h7300.c (fix_bit_operand): Likewise.
5770         * config/m88k/m88k.c (legitimize_address, block_move_loop): Likewise.
5771         (block_move_no_loop, block_move_sequence): Likewise.
5772         * config/rs6000/rs6000.c (expand_block_move_mem): Likewise.
5773         * config/alpha/alpha.c (get_aligned_mem): Likewise.
5774         Clear MEM_ALIAS_SET.
5775         * final.c (alter_subreg): Don't copy MEM_ALIAS_SET when calling
5776         MEM_COPY_ATTRIBUTES.
5777
5778 2000-05-03  Robert Lipe <robertlipe@usa.net>
5779
5780         * configure.in (i[34567]86-*-isc*) [tmake_file]: Add t-i386bare
5781         to suppress libgcc1.
5782         (i[34567]86-*-sco3.2v5*) Likewise.
5783         (i[34567]86-*-sco3.2v4*) Likewise.
5784         (i[34567]86-*-sco) Likewise.
5785         (i[34567]86-*-solaris2) Likewise.
5786         (i[34567]86-*-sysv5*) Likewise.
5787         (i[34567]86-*-sysv4*) Likewise.
5788         (i[34567]86-*-udk*) Likewise.
5789         (i[34567]86-*-sysv*) Likewise.
5790
5791 2000-05-03  Zack Weinberg  <zack@wolery.cumb.org>
5792
5793         * cpphash.h (U): New define, to correct type of string constants.
5794         (ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr): New wrapper
5795         routines, to do casts when passing unsigned strings to libc.
5796         * cppexp.c, cppfiles.c, cpphash.c, cppinit.c, cpplib.c: Use them.
5797
5798         * cppfiles.c (_cpp_execute_include): Make filename an U_CHAR *.
5799         * cpphash.c (_cpp_quote_string): Make string an U_CHAR *.
5800         * cppinit.c (dump_special_to_buffer): Make macro name an U_CHAR *.
5801         * cpplex.c (parse_ifdef, parse_include, validate_else): Make
5802         second argument an U_CHAR *.
5803
5804         * cppinit.c (builtin_array): Make name and value U_CHAR *, add
5805         length field, clean up initializer.
5806         (ISTABLE): Add __extension__ to designated-
5807         initializers version.
5808         * cpplex.c (CHARTAB): Likewise.
5809
5810         * mbchar.c: Add dummy external declaration to the !MULTIBYTE_CHARS
5811         case so the file won't be empty.
5812
5813 Wed May  3 21:01:46 2000  Jason Eckhardt  <jle@cygnus.com>
5814
5815         * bb-reorder.c (struct reorder_block_def): Member succ removed.
5816         (REORDER_BLOCK_SUCC): Removed.
5817         (enum reorder_skip_type): Removed.
5818         (skip_insns_between_block): Renamed to skip_insns_after_block.
5819         Removed second argument. Removed dead code and cleaned up.
5820         (make_reorder_chain): Removed use of REORDER_BLOCK_SUCC.
5821         (reorder_basic_blocks): Remove use of REORDER_SKIP_AFTER. Removed
5822         second parameter to skip_insns_after_block.
5823
5824 Wed May  3 13:29:54 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5825
5826         * tree.c (staticp, case LABEL_DECL): New case.
5827
5828 2000-05-03  Richard Henderson  <rth@cygnus.com>
5829
5830         * Makefile.in (start.encap): Do not depend on LIBGCC1.
5831
5832         * mklibgcc1.in: Fix typo last change.
5833
5834 2000-05-03  Jason Merrill  <jason@casey.cygnus.com>
5835
5836         * Makefile.in (WARN_CFLAGS): Add -pedantic -Wno-long-long.
5837         (LOOSE_CFLAGS): New: CFLAGS without -pedantic and -Wtraditional.
5838         (GCC_CFLAGS): Use it.
5839         (LANG_FLAGS_TO_PASS): New: SUBDIR_FLAGS_TO_PASS with LOOSE_CFLAGS.
5840         * cp/Make-lang.in, java/Make-lang.in, f/Make-lang.in, ch/Make-lang.in,
5841         objc/Make-lang.in: Use it.
5842
5843 2000-05-03  Jason R Thorpe  <thorpej@zembu.com>
5844
5845         * config/i386/i386.md (lshrqi2_cmpno): Use q not r in constraint.
5846
5847 2000-05-03  Richard Henderson  <rth@cygnus.com>
5848
5849         * mklibgcc.in: Restrict OLDCC=GCC test to native.  Equate
5850         LIBGCC1 empty with libgcc1.null.
5851
5852 Wed May  3 12:55:46 2000  Jim Wilson  <wilson@cygnus.com>
5853
5854         * fold-const.c (extract_muldiv, case MAX_EXPR): Don't allow signedness
5855         change.
5856
5857 2000-05-03  Greg McGary  <gkm@gnu.org>
5858
5859         * tree.h (tree_common): Add bounded_flag member.  Remove
5860         inaccurate comment about number of remaining bits.
5861         (BOUNDED_INDIRECT_TYPE_P, BOUNDED_POINTER_TYPE_P,
5862         BOUNDED_REFERENCE_TYPE_P, MAYBE_BOUNDED_INDIRECT_TYPE_P,
5863         MAYBE_BOUNDED_POINTER_TYPE_P, MAYBE_BOUNDED_REFERENCE_TYPE_P,
5864         TREE_BOUNDED, TYPE_MAIN_VARIANTS_PHYSICALLY_EQUAL_P,
5865         TYPE_MAIN_PHYSICAL_VARIANT, TYPE_BOUNDED): New macros.
5866         (TYPE_QUAL_BOUNDED): New constant.
5867         (TYPE_QUALS): Handle bounded qualifier.
5868         (TREE_EXPR_QUALS, TREE_FUNC_QUALS): New macros.
5869         (TYPE_BOUNDED_VALUE, TYPE_BOUNDED_BASE, TYPE_BOUNDED_EXTENT,
5870         TYPE_BOUNDED_SUBTYPE, TYPE_UNBOUNDED_VARIANT, TYPE_POINTER_DEPTH,
5871         TYPE_AMBIENT_BOUNDEDNESS): New macros.
5872         (MAX_POINTER_DEPTH, VA_LIST_POINTER_DEPTH): New constants.
5873         (tree_type): Add pointer_depth member.  Remove
5874         inaccurate comment about number of remaining bits.
5875         (DECL_POINTER_DEPTH): Add macro.
5876         (tree_decl): Add pointer_depth member.
5877
5878 Wed May  3 22:52:53 2000  Denis Chertykov  <denisc@overta.ru>
5879
5880         * config/avr/avr-protos.h (test_hard_reg_class): Declared.
5881         * config/avr/avr.c (ashrhi3_out): optimized shift by 15.
5882         (lshrhi3_out): Likewise.
5883         (ashrsi3_out): bugfix in shift by 8.
5884         (test_hard_reg_class): New function.
5885         * config/avr/avr.md: Bugfix inside conditions in peepholes.
5886         (ashlhi3): removed define_expand of this pattern.
5887         (*ashlhi3_insn): renamed to ashlhi3.
5888         (ashlsi3): removed define_expand of this pattern.
5889         (*ashlsi3_insn): renamed to ashlsi3.
5890         (ashrqi3): removed define_expand of this pattern.
5891         (*ashrqi3_insn): renamed to ashrqi3.
5892         (ashrhi3): removed define_expand of this pattern.
5893         (*ashrhi3_insn): renamed to ashrhi3.
5894         (ashrsi3): removed define_expand of this pattern.
5895         (*ashrsi3_insn): renamed to ashrsi3.
5896         (lshrhi3): removed define_expand of this pattern.
5897         (*lshrhi3_insn): renamed to lshrhi3.
5898         (lshrsi3): removed define_expand of this pattern.
5899         (*lshrsi3_insn): renamed to lshrsi3.
5900
5901 2000-05-03  Rodney Brown  <RodneyBrown@pmsc.com>
5902
5903         * config/mcore/mcore.c: Replacing inclusion of "stdio,h" with
5904         inclusion of "system.h".
5905
5906 Wed May  3 11:43:53 2000  Jim Wilson  <wilson@cygnus.com>
5907
5908         * config/ia64/ia64.c (ia64_encode_section_info): Add check for
5909         TREE_ASM_WRITTEN.
5910
5911 2000-05-03  David Mosberger  <davidm@hpl.hp.com>
5912
5913         * config/ia64/ia64.c (ia64_override_options): Force -mconstant-gp
5914         if -mauto-pic is on.
5915         (ia64_epilogue_uses): Mark "gp" (r1) as used by the epilogue if
5916         -mconstant-gp is in effect and function-descriptors are being used
5917         to make indirect calls.
5918         * config/ia64/ia64.h (MASK_CONST_GP): New macro.
5919         (MASK_AUTO_PIC): Ditto.
5920         (TARGET_CONST_GP): Ditto.
5921         (TARGET_AUTO_PIC): Ditto.
5922         (TARGET_SWITCHES): Add -mconstant-gp and -mauto-pic options.
5923         (ASM_OUTPUT_DOUBLE_INT): Don't generate @fptr() if -mauto-pic or
5924         -mno-pic is in effect.
5925         (ASM_OUTPUT_XDATA_DOUBLE_INT): Ditto.
5926         * config/ia64/ia64.md (movdi): Use gen_load_gprel64() if
5927         -mauto-pic is in effect.
5928         (gprel64_offset): New pattern.
5929         (load_gprel64): Ditto.
5930         (call): Handle -mauto-pic like -mno-pic (don't use fptr).  If
5931         -mconstant-gp is in effect, no need to preserve gp around direct
5932         calls.
5933         (call_value): Ditto.
5934         * config/ia64/linux.h (PROFILE_BEFORE_PROLOGUE): Define.
5935         (FUNCTION_PROFILER): Define.
5936         * config/ia64/sysv4.h (ASM_OUTPUT_CONSTRUCTOR): Don't generate
5937         @fptr() directive when -mno-pic or -mauto-pic is in effect.
5938         (ASM_OUTPUT_DESTRUCTOR): Ditto.
5939
5940 2000-05-03  Richard Henderson  <rth@cygnus.com>
5941
5942         * Makefile.in (STAGESTUFF): Add libgcc libgcc.mk.
5943         (libgcc1.null, libgcc1.cross, libgcc1.a): Remove targets.
5944         (libgcc1-asm.a, libgcc1.S, libgcc2.a): Remove targets.
5945         (mklibgcc, libgcc.mk): New targets.
5946         (libgcc.a): Use libgcc.mk.
5947         (stmp-multilib): Likewise.
5948         (stmp-multilib-sub): Remove.
5949         (mostlyclean): Don't delete libgcc2 temp files.
5950         * configure.in (AC_PROG_CC_C_O): Add.
5951         (NO_MINUS_C_MINUS_O): Substitute it.
5952         (all_outputs): Add mklibgcc.
5953         * mklibgcc.in: New file.
5954
5955 2000-05-03  Jason Merrill  <jason@casey.cygnus.com>
5956
5957         * cppexp.c (op_t): Make an int.
5958
5959         * rtlanal.c (dead_or_set_regno_p): Remove unused variable.
5960
5961         * varasm.c (initializer_constant_valid_p): Fix parenthesis.
5962
5963         * gensupport.c (process_rtx): Fix macros used.
5964
5965 2000-05-03  Richard Henderson  <rth@cygnus.com>
5966
5967         * flow.c (propagate_one_insn): Also don't PROP_REG_INFO for
5968         call-clobbered registers of a call.
5969
5970 Wed May  3 12:40:53 2000  Clinton Popetz  <cpopetz@cygnus.com>
5971
5972         * gensupport.c: New file.
5973         * gensupport.h: New file.
5974         * Makefile.in (HOST_RTL): Depend on gensupport.
5975         (gensupport.o) New rule.
5976         * genattr.c: Use gensupport for reading .md files.
5977         * genattrtab.c: Ditto.
5978         * gencodes.c: Ditto.
5979         * genconfig.c: Ditto.
5980         * genemit.c: Ditto.
5981         * genextract.c: Ditto.
5982         * genflags.c: Ditto.
5983         * genopinit.c: Ditto.
5984         * genoutput.c: Ditto.
5985         * genpeep.c: Ditto.
5986         * genrecog.c: Ditto.
5987         * rtl.def (define_insn_and_split): New DEF_RTL_EXPR.
5988         * md.texi (Insn Splitting): Document define_insn_and_split.
5989
5990 Tue May  2 00:20:30 2000  Jason Eckhardt  <jle@cygnus.com>
5991
5992         * flow.c (verify_flow_info): Added two more sanity checks. The
5993         first checks that the blocks are numbered consecutively. The second
5994         checks that n_basic_blocks is actually equal to the number of
5995         basic blocks in the insn chain.
5996
5997 2000-05-03  Zack Weinberg  <zack@wolery.cumb.org>
5998
5999         * cpplib.h: Add accessor macros for token lists.
6000         * cpplib.c, cpphash.c, cpplex.c: Use them.
6001
6002 Wed May  3 09:29:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6003
6004         * expr.c (expand_expr, case COMPONENT_REF): Don't check for checking
6005         memory usage if not in a function.
6006         * varasm.c (initializer_constant_valid_p, case ADDR_EXPR): Only
6007         return address if static.
6008
6009 Wed May  3 13:14:49 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6010
6011         * ifcvt.c (noce_try_cmove_arith):  Use may_trap_p to thest
6012         whether address may trap.
6013
6014 Tue May  2 23:38:37 2000  Jason Eckhardt  <jle@cygnus.com>
6015
6016         * bb-reorder (chain_reorder_blocks): Changed code to test for
6017         EDGE_FALLTHRU rather than making erroneous assumption that the
6018         first outgoing edge is the fall-through edge.
6019
6020 Tue May  2 18:20:31 2000  Donald Lindsay  <dlindsay@hound.cygnus.com>
6021
6022         * config/mips/mips.c (mips_build_va_list,mips_va_start,mips_va_arg): new
6023         ABI for varargs, across all MIPS. This is incompatible because the
6024         va_list (__builtin_va_list) structure is different, so a compilation
6025         unit passing a va_list and a compilation unit being passed one, should
6026         both be compiled with the same ABI. (The old structure had two
6027         pointers, now it has three.)
6028
6029 Tue May  2 19:18:43 2000  Jason Eckhardt  <jle@cygnus.com>
6030
6031         * bb-reorder.c (struct reorder_block_def): Remove members end,
6032         block_begin, and block_end.
6033         (REORDER_BLOCK_OLD_END): Delete.
6034         (REORDER_BLOCK_BEGIN): Delete.
6035         (REORDER_BLOCK_END): Delete.
6036         (chain_reorder_blocks): Remove dead code.
6037
6038 Tue May  2 17:06:53 2000  Jason Eckhardt  <jle@cygnus.com>
6039
6040         * bb-reorder.c (remove_scope_notes): Check for both types of scope
6041         notes as the end of a basic block before deleting.
6042
6043 2000-05-02  Mumit Khan  <khan@xraylith.wisc.edu>
6044
6045         * final.c (final_start_function): Fix spelling of "necessary".
6046
6047 2000-05-02  Jason Merrill  <jason@casey.cygnus.com>
6048
6049         * toplev.c (debug_ignore_block): Return int.
6050         * dwarf2out.c (dwarf2out_ignore_block): Likewise.
6051         * toplev.h, dwarf2out.h: Adjust.
6052         * emit-rtl.c (remove_unnecessary_notes): Test return value.
6053
6054         * emit-rtl.c (remove_unnecessary_notes): Fix spelling of "necessary".
6055         * toplev.c, final.c, rtl.h: Adjust.
6056
6057 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
6058
6059         * aclocal.m4 (gcc_AC_CHECK_PROG_VER): New macro.
6060         * configure.in: Look for makeinfo in the unified tree, then
6061         for a system makeinfo which is sufficiently new.
6062         * Makefile.in: If configure says makeinfo is too old, don't
6063         build or install Info documentation.
6064
6065 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
6066
6067         * cpphash.c (collect_params): Fix off-by-one error.
6068         (dump_hash_helper): Dump all four macro nodetypes.
6069
6070 2000-05-02  Jakub Jelinek  <jakub@redhat.com>
6071
6072         * cpphash.c (trad_stringify): Adjust p after stringification as
6073         well.
6074
6075 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
6076
6077         * cpplib.h (CPP_POP, parse_cleanup_t): Delete.
6078         (cpp_buffer): Remove cleanup, seen_eof, manual_pop members.
6079
6080         * cppfiles.c (file_cleanup): Delete.
6081         * cpphash.c (macro_cleanup): Delete.
6082         (collect_objlike_expansion, collect_funlike_expansion,
6083         macarg, scan_arguments): Remove CPP_POP case.
6084
6085         * cpplex.c (null_cleanup): Delete.
6086         (cpp_pop_buffer): Do the work that was done in the cleanups
6087         here.  Call _cpp_unwind_if_stack from here.
6088         (_cpp_expand_to_buffer, cpp_scan_buffer_nooutput,
6089         cpp_scan_buffer): Run until we see CPP_EOF and the top of
6090         stack is the buffer _below_ the one we stacked.
6091         (cpp_get_token): Always pop an exhausted buffer.  Return
6092         CPP_EOF unless it's a macro buffer.  Don't call _cpp_handle_eof.
6093         * cpplib.c (skip_if_group): Don't call cpp_get_token to
6094         increment the line number.
6095         (_cpp_handle_eof): Rename to _cpp_unwind_if_stack.
6096
6097         * fix-header.c (read_scan_file) [parsing getchar()]: Run until
6098         we see CPP_EOF and the top of stack is the buffer _below_ the
6099         one we stacked.
6100         * scan-decls.c: Likewise.
6101
6102 2000-05-02  Andrew Haley  <aph@cygnus.com>
6103
6104         * config/ia64/ia64.c (ia64_encode_section_info): Handle the case
6105         where this function is called for the second time on a decl that
6106         has had its section info changed in such a way as to move it out
6107         of small data/bss.
6108         * config/ia64/ia64.h (REDO_SECTION_INFO_P): New definition.
6109
6110 2000-05-01  Richard Henderson  <rth@cygnus.com>
6111
6112         * ifcvt.c (dead_or_predicable): Set merge_bb->end to the insn before
6113         the sequence we're moving, not to merge_bb->head.
6114
6115 2000-05-01  Richard Henderson  <rth@cygnus.com>
6116
6117         * configure.in (alpha*-*-linux-gnulibc1*) [tmake_file]: Remove
6118         reference to alpha/t-linux.
6119         (alpha*-*-linux-gnu*): Likewise.
6120         * configure: Rebuild.
6121
6122         * calls.c (expand_call): Don't emit reg notes for a sibcall.
6123
6124         * flow.c (calculate_global_regs_live): Skip for_each_successor_phi
6125         if not in SSA form.
6126
6127         * ifcvt.c (if_convert): Only verify_flow_info if ENABLE_CHECKING.
6128
6129 2000-05-01  Jason Merrill  <jason@casey.cygnus.com>
6130
6131         * integrate.c (copy_decl_for_inlining): Copy TREE_READONLY and
6132         TREE_THIS_VOLATILE.
6133
6134 2000-05-01  Richard Henderson  <rth@cygnus.com>
6135
6136         * ifcvt.c (noce_emit_cmove): Conditionally compile call to
6137         emit_conditional_move.
6138
6139 2000-05-01  Jakub Jelinek  <jakub@redhat.com>
6140
6141         * config/ia64/linux.h (LINK_SPEC): Use /lib/ld-linux-ia64.so.1
6142         as the dynamic linker.
6143
6144 2000-05-01  Zack Weinberg  <zack@wolery.cumb.org>
6145
6146         * cppfiles.c (open_include_file): Open file in blocking mode.
6147         (read_include_file): Don't fcntl(fd, F_SETFL, 0) anymore.
6148         Only exclude block devices and directories.
6149
6150         * cpphash.c (_cpp_make_hashnode): Rename make_HASHNODE, now
6151         static.  Allocate the hashnode and its string in the same
6152         block of memory.
6153         (del_HASHNODE): Don't free h->name.
6154         (_cpp_lookup): If there is no entry for this string, create
6155         one, of type T_VOID.
6156         (_cpp_lookup_slot): Delete.
6157         * cpphash.h: Update prototypes.
6158
6159         * cpplex.c (maybe_macroexpand): Check for hp->type == T_VOID,
6160         not hp == NULL.
6161         * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert,
6162         do_unassert, cpp_defined): Use _cpp_lookup.  Don't create a
6163         node here, just fill in the value field properly.  "Delete"
6164         entries by setting the value field to T_VOID.  Check for
6165         hp->type == T_VOID, not hp == NULL.
6166
6167         * Makefile.in (cpplib.o): Don't depend on $(HASHTAB_H).
6168         * cpperror.c, cppexp.c, cpplex.c, cpplib.c:  Don't include
6169         hashtab.h.
6170
6171 2000-05-01  Alexandre Oliva  <aoliva@cygnus.com>
6172
6173         * config/mn10300/mn10300.c (print_operand_address): Do not add
6174         zero to SP.
6175
6176         * config/mn10300/mn10300.c (expand_epilogue): If SP is to be
6177         adjusted by less than 256 bytes, use ret regardless of having any
6178         callee-saved register to restore.
6179
6180 2000-05-01 Laurynas Biveinis <lauras@softhome.net>
6181
6182         * tm.texi (TARGET_HAS_F_SETFLKW): Fix typo.
6183
6184 2000-05-01 Mark Elbrecht <snowball3@bigfoot.com>
6185
6186         * config/i386/djgpp.h (INT_ASM_OP): Define.
6187         (CPP_PREDEFINES): Rename MSDOS to __MSDOS__.
6188         (ASM_WEAKEN_LABEL): Define.
6189         (MASK_BNU210): Define.
6190         (SUBTARGET_SWITCHES): Define.
6191         (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Define.
6192         (MAKE_DECL_ONE_ONLY): Define.
6193         (UNIQUE_SECTION_P, UNIQUE_SECTION): Define.
6194
6195 2000-05-01  Mumit Khan  <khan@xraylith.wisc.edu>
6196
6197         * i386/cygwin.h (INT_ASM_OP): Define.
6198
6199 Mon May  1 18:20:06 2000  Denis Chertykov  <denisc@overta.ru>
6200
6201         * config/avr/avr.c (address_cost): renamed to avr_address_cost.
6202         * config/avr/avr.h (ADDRESS_COST): use avr_address_cost.
6203
6204 Mon May  1 17:50:44 2000  Denis Chertykov  <denisc@overta.ru>
6205
6206         * config/avr/avr.c (asm_file_start): output 0 as r0 and 1 as r1 in
6207         __tmp_reg__ and __zero_reg__ initialization.
6208
6209 2000-04-30  Richard Henderson  <rth@cygnus.com>
6210
6211         * flow.c (propagate_one_insn): Mark sets even when the insn is dead.
6212
6213         * ifcvt.c (noce_process_if_block): Fail the conversion if X is
6214         referenced bewteen the condition and the jump.  Don't delete
6215         anything but the jump.
6216
6217 Sun Apr 30 22:48:24 2000  Jason Eckhardt  <jle@cygnus.com>
6218
6219         * bb-reorder.c (scope_def): New struct.
6220         (scope_forest_info): New struct.
6221         (struct reorder_block_def): New member "scope".
6222         (REORDER_BLOCK_SCOPE): New macro.
6223         (relate_bbs_with_scopes): New function and prototype.
6224         (make_new_scope): Likewise.
6225         (build_scope_forest): Likewise.
6226         (remove_scope_notes): Likewise.
6227         (insert_intra_1): Likewise.
6228         (insert_intra_bb_scope_notes): Likewise.
6229         (insert_inter_bb_scope_notes): Likewise.
6230         (rebuild_scope_notes): Likewise.
6231         (free_scope_forest_1): Likewise.
6232         (free_scope_forest): Likewise.
6233         (dump_scope_forest): Likewise.
6234         (dump_scope_forest_1): Likewise.
6235         (chain_reorder_blocks): Set REORDER_BLOCK_SCOPE for new block.
6236         Update REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for new
6237         block.
6238         (reorder_basic_blocks): Added calls to build_scope_scope_forest
6239         and remove_scope_notes before reordering is done. Added calls to
6240         rebuild_scope_notes, free_scope_forest, and reorder_blocks after
6241         after reordering is done.
6242
6243 2000-40-30  Bruce Korb  <bkorb@gnu.org>
6244
6245         * fixinc/inclhack.def:  Added definitions needed by OSR5,
6246         removed two stale entries (defined away with OLD_CPP).
6247         * fixinc/inclhack.sh: regen
6248         * fixinc/fixincl.x: regen
6249
6250 2000-04-30  Richard Henderson  <rth@cygnus.com>
6251
6252         * ifcvt.c (dead_or_predicable): Manually squeeze non-movable notes
6253         from the last insn in the sequence.
6254
6255 2000-04-30  Zack Weinberg  <zack@wolery.cumb.org>
6256
6257         * cpplex.c (cpp_idcmp): New function.
6258         * cpplib.h: Prototype it.
6259         * scan_decls.c (scan_decls): Use it to inspect token names.
6260         * fix-header.c (read_scan_file): Likewise.  Set system_header_p on
6261         the file being run through the preprocessor.
6262         (check_macro_names): Provide length of token to cpp_defined.
6263
6264         * Makefile.in: Remove stale warning message.
6265
6266         * cppfiles.c (redundant_include_p): Provide length of token to
6267         cpp_defined.
6268         * cpphash.c (_cpp_make_hashnode, _cpp_lookup_slot): Hash
6269         values are unsigned int.
6270         (_cpp_lookup, _cpp_lookup_slot): Do not calculate the length.
6271         (_cpp_lookup_slot): Do not calculate the hash, either.
6272         * cpphash.h: Update prototypes.
6273         * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert):
6274         Hashes are unsigned int.  Calculate hash here, pass by value
6275         to _cpp_lookup_slot.
6276
6277 2000-04-30  Bernd Schmidt  <bernds@cygnus.co.uk>
6278
6279         * simplify-rtx.c (check_value_useless): Delete function.
6280         (discard_useless_locs): Don't call it; manage N_USELES_VALUES counter
6281         by hand.
6282         (cselib_invalidate_regno): Likewise.
6283         (cselib_invalidate_mem_1): Likewise.
6284         (references_value_p): Recognize useless values by the fact that they
6285         have no locations.
6286         (discard_useless_values): Likewise.
6287         (cselib_record_set): This may turn a useless value
6288         into a useful one.
6289
6290 2000-04-30  Richard Henderson  <rth@cygnus.com>
6291
6292         * config/d30v: New port.
6293
6294         * configure.in (d30v-*): Set fp format.
6295         * configure: Rebuild.
6296
6297 2000-04-30  Richard Henderson  <rth@cygnus.com>
6298
6299         * ifcvt.c: New file.
6300         * Makefile.in (OBJS): Add it.
6301         (ifcvt.o): New target.
6302         * jump.c (jump_optimize_1): Remove all code related to if-conversion,
6303         and conditional arithmetic.
6304         (find_insert_position): Remove.
6305         * timevar.def (TV_IFCVT, TV_IFCVT2): New.
6306         * toplev.c (DFI_ce, DFI_ce2): New.
6307         (dump_file): Add ce and ce2 dumps.
6308         (rest_of_compilation): Run if_convert a couple o times.  Set
6309         cse_not_expected after cse2.  Don't set no_new_pseudos until
6310         after sched1 or recompute_reg_usage.
6311
6312 2000-04-30  Richard Henderson  <rth@cygnus.com>
6313
6314         * config/alpha/t-crtbe (crtbegin.o): Add "-I.".
6315         (crtend.o, crtbeginS.o, crtendS.o): Likewise.
6316
6317 2000-04-30  Richard Henderson  <rth@cygnus.com>
6318
6319         * flow.c (struct reg_cond_life_info): New.
6320         (struct propagate_block_info): Add reg_cond_dead and reg_cond_reg.
6321         (init_propagate_block_info): Initialize them.
6322         (free_propagate_block_info): Destruct them.
6323         (mark_set_1): Consider conditional life before killing a register.
6324         (mark_regno_cond_dead): New.
6325         (free_reg_cond_life_info): New.
6326         (flush_reg_cond_reg_1, flush_reg_cond_reg): New.
6327         (ior_reg_cond, not_reg_cond, nand_reg_cond): New.
6328         (mark_used_reg): Record conditional life.
6329
6330         * haifa-sched.c (schedule_insns): Disable death counting
6331         sanity check for HAVE_conditional_execution.
6332
6333 2000-04-30  Richard Henderson  <rth@cygnus.com>
6334
6335         * Makefile.in (TIMEVAR_H): New.
6336         (ggc-simple.o, ggc-page.o, toplev.o, timevar.o): Use it.
6337         (timevar.h): Remove rule.
6338
6339 2000-04-29  Richard Henderson  <rth@cygnus.com>
6340
6341         * config/alpha/crtend.asm: Use C comments instead of #.
6342         * config/alpha/crtbegin.asm: Likewise.  Mark __dso_handle hidden.
6343
6344         * config/alpha/elf.h (SELECT_SECTION): Treat CONSTRUCTOR like VAR_DECL.
6345
6346 2000-04-29  Zack Weinberg  <zack@wolery.cumb.org>
6347
6348         * cpphash.h (enum node_type: Take out T_MCONST.
6349         (union hashval): Move into struct hashnode.
6350         (struct hashnode): Pack tighter.  Remove file, line, col
6351         members.
6352         * cpphash.c: Constify most of the macro-definition structures.
6353         (struct definition): Replace by struct object_defn
6354         and struct funct_defn.  Put file, line, column information
6355         here.  All users updated to match.
6356         (_cpp_create_definition, _cpp_macroexpand): Remove special
6357         case for #define WORD OTHERWORD.
6358         * cpplib.c (do_undef): Remove T_MCONST case.
6359
6360         * cpphash.h: Move struct reflist, struct definition, and the
6361         DEFINITION typedef to cpphash.c.  Use 'struct definition *' in
6362         union hashval.  _cpp_free_definition takes a HASHNODE pointer.
6363         * cpphash.c (_cpp_free_definition): Free data pointed to by
6364         MCONST, XCONST, MACRO, and FMACRO nodes properly.
6365         (_cpp_create_definition, del_HASHNODE): Just call
6366         _cpp_free_definition to clear out a hashnode.
6367         * cpplib.c (do_pragma_poison): Likewise.
6368
6369 Sat Apr 29 12:25:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
6370
6371         * config/mn10300/mn10300.h (FIRST_DATA_REGNUM,
6372         LAST_DATA_REGNUM, FIRST_ADDRESS_REGNUM, LAST_ADDRESS_REGNUM,
6373         FIRST_EXTENDED_REGNUM, LAST_EXTENDED_REGNUM): New macros.
6374         (REGNO_SP_P): Redefine in terms of STACK_POINTER_REGNUM.
6375         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_EXTENDED_P,
6376         REGNO_AM33_P): Redefine in terms of the new macros.
6377         (CONDITIONAL_REGISTER_USAGE, REGNO_REG_CLASS): Likewise.
6378         (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
6379         STRUCT_VALUE): Likewise.
6380         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM,
6381         ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Likewise.  Moved.
6382
6383 Sat Apr 29 01:18:45 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6384
6385         * regmove.c (struct record_stack_memrefs_data): New.
6386         (record_stack_memrefs): New function.
6387         (combine_stack_adjustments_for_block): Use it.
6388
6389 Sat Apr 29 01:15:27 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6390
6391         * calls.c (calls_function_1):  Propertly handle TREE_LIST expressions;
6392         use special_function_p to detect alloca.
6393
6394 Fri Apr 28 16:30:33 2000  Marc Espie <espie@cvs.openbsd.org>
6395
6396         * gcc.texi: Fixes for makeinfo 4.0 --html.
6397
6398 2000-04-28  Zack Weinberg  <zack@wolery.cumb.org>
6399
6400         * pcp.h: Delete file.
6401
6402 2000-04-28  Kazu Hirata  <kazu@hxi.com>
6403
6404         * h8300.c (function_epilogue): Clean up flags when the last insn
6405         in a function is a barrier.
6406
6407 2000-04-28  Chris Demetriou  <cgd@sibyte.com>
6408
6409         * configure.in (sparc-hal-solaris2*): protect [] glob from
6410         my expansion.
6411         (mips*-*-ecoff*, mips*-*-elf*, mips*-*-*): use MASK_ defines
6412         rather than hard-coded constants in target_cpu_default2.
6413         * configure: Regenerate.
6414
6415 2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
6416
6417         * tree.c (get_callee_fndecl): Extract the initial value from
6418         a readonly decl.
6419
6420 2000-04-28  Richard Henderson  <rth@cygnus.com>
6421
6422         * varasm.c (record_constant_1): Record the CODE_LABEL when
6423         taking the address of a LABEL_REF.
6424
6425 2000-04-28  Richard Henderson  <rth@cygnus.com>
6426             Jan Hubicka  <jh@suse.cz>
6427
6428         * calls.c (combine_pending_stack_adjustment_and_call): Return the
6429         adjustment; don't do the stack adjust.
6430         (expand_call): Call compute_argument_block_size right before
6431         allocating the block; update comment; don't do alignment sanity
6432         checking for sibling call; use args_size instead of
6433         unadjusted_args_size before args_size is adjusted.  Use
6434         combine_pending_stack_adjustment_and_call to compute stack adjust
6435         for must_preallocate case.
6436
6437         * expr.c (push_block): Remove shadow `temp' in inner scope.
6438
6439 2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
6440
6441         * toplev.c (rest_of_compilation): Call
6442         note_deferral_of_defined_inline_function even if the function
6443         can't be inlined.
6444
6445 2000-04-28  Scott Bambrough  <scottb@netwinder.org>
6446
6447         * cpplex.c (_cpp_scan_line): Fix buffer overwrite.
6448
6449 2000-04-28  Richard Henderson  <rth@cygnus.com>
6450
6451         * toplev.c (rest_of_type_compilation): Fix sdb TIMEVAR typo.
6452
6453 2000-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6454
6455         * timevar.c (init_timevar): DeANSIfy function definition.
6456
6457 2000-04-27  Alex Samuel  <samuel@codesourcery.com>
6458
6459         * Makefile.in (timevar.o): Depend on flags.h.
6460         * timevar.c (unused_stack_instances): New variable.
6461         (timevar_push): Take a timevar_stack_def from
6462         unused_stack_instances if available.
6463         (timevar_pop): Push the popped timevar_stack_def onto
6464         unused_stack_instances.
6465         (TIMEVAR_ENABLE): New macro.
6466         (timevar_def): Make standalone a 1-bit field.  Add field used.
6467         (get_time): Rename parameter to now.  Return after clearing it if
6468         not TIMEVAR_ENABLE.
6469         (init_timevar): Do nothing if not TIMEVAR_ENABLE.
6470         (timevar_pop): Likewise.
6471         (timevar_stop): Likewise.
6472         (timevar_push): Likewise.  Mark the timing variable as used.
6473         (timevar_start): Likewise.
6474         (timevar_print): Do nothing if not TIMEVAR_ENABLE.  Don't print
6475         timevars that were never used.
6476
6477 2000-04-27  Mark Mitchell  <mark@codesourcery.com>
6478
6479         * c-common.c (c_apply_type_quals_to_decl): REFERENCE_TYPES are
6480         always TREE_READONLY.
6481
6482 2000-04-27  Ulrich Drepper  <drepper@cygnus.com>
6483
6484         * i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Generate mem reference
6485         for call instruction with mode QImode.
6486
6487 2000-04-27  Alex Samuel  <samuel@codesourcery.com>
6488
6489         * Makefile.in (OBJS): Add timevar.o.
6490         (toplev.o): Depend on timevar.h.
6491         (ggc-simple.o): Likewise.
6492         (ggc-page.o): Likewise.
6493         (timevar.o): New rule.
6494         (timevar.h): New rule.
6495
6496         * timevar.h: New file.
6497         * timevar.c: Likewise.
6498         * timevar.def: Likewise.
6499
6500         * toplev.h (gc_time, parse_time, varconst_time): Remove.
6501         * toplev.c: Use timevar_push and timevar_pop instead of TIMEVAR
6502         throughout.
6503         (TIMEVAR): Remove macro.
6504         (gc_time, parse_time, varconst_time, integration_time, jump_time,
6505         cse_time, gcse_time, loop_time, cse2_time, branch_prob_time,
6506         flow_time, combine_time, regmove_time, sched_time,
6507         local_alloc_time, global_alloc_time, flow2_time, peephole2_time,
6508         sched2_time, dbr_sched_time, reorder_blocks_time,
6509         rename_registers_time, shorten_branch_time, stack_reg_time,
6510         to_ssa_time, from_ssa_time, final_time, symout_time, dump_time,
6511         all_time): Remove.
6512         (compile_file): Don't initialize time variables.  Call
6513         init_timevar and start TV_TOTAL timer.  Call timevar_print instead
6514         of many calls to print_time.
6515         (rest_of_compilation): Add timing for reload_cse_regs.
6516         (get_run_time): Removed to timevar.c.
6517         (print_time): Likewise.
6518         (get_run_time): Implement using TV_TOTAL time variable.
6519         (print_time): Get total run time from get_run_time.
6520         * ggc-page.c (ggc_collect): Push and pop TV_GC instead of
6521         computing elapsed time explicitly.
6522         * ggc-simple.c (ggc_collect): Likewise.
6523         (gc_time): Remove declaration.
6524
6525 2000-04-27  Mark Mitchell  <mark@codesourcery.com>
6526
6527         * calls.c (combine_pending_stack_adjustment_and_call): New function.
6528         (expand_call): Use it.
6529
6530 2000-04-27  Jan Hubicka  <jh@suse.cz>
6531
6532         * flow.c (mark_set_1):  Handle MEMs in ZERO_EXTRACT/SIGN_EXTRACT
6533         fields.
6534
6535 Thu Apr 27 12:47:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
6536
6537         * config/mn10300/mn10300.md (movhi): Simplify.  Prefer data
6538         registers.
6539
6540 Thu Apr 27 17:33:05 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6541
6542         * function.c (epilogue_done): Pass whole insn to record_insns.
6543
6544 Thu Apr 27 16:55:28 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6545
6546         * cse.c (CSE_ADDRESS_COST): Remove.
6547         (find_best_addr): Add new parameter "MODE", use address_cost instead
6548         of CSE_ADDRESS_COST
6549         (address_cost): New.
6550         (fold_rtx): Update call of find_best_addr.
6551         * rtl.h (address_cost): Declare.
6552         * loop.c (general_induction_var): Add new parameter "MODE", use
6553         address_cost instead of ADDRESS_COST
6554         (init_loop): Use address_cost instead of ADDRESS_COST.
6555         (check_insn_for_givs): Update call of general_induction_var.
6556         (find_mem_givs): Likewise.
6557         (consec_sets_giv): Likewise.
6558         * config/i386/i386.h (ADDRESS_COST): Call ix86_address_cost.
6559         * i386.c (ix86_address_cost): New.
6560         * i386-protos.h (ix86_address_cost): Declare.
6561
6562 Thu Apr 27 11:45:16 2000  Alexandre Oliva  <aoliva@cygnus.com>
6563
6564         * config/mn10300/mn10300.md (movqi): Simplify.  Prefer data
6565         registers.
6566
6567 Thu Apr 27 16:11:00 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6568
6569         * expr.c (store_expr): Use clear_storage instead of direct memset
6570         libcall.
6571
6572 Thu Apr 27 10:36:51 2000  Alexandre Oliva  <aoliva@cygnus.com>
6573
6574         * config/mn10300/mn10300.c (mn10300_address_cost): Test
6575         ASHIFT, AND and LABEL_REF.
6576
6577 Thu Apr 27 15:08:46 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6578
6579         * invoke.texi (-foptimize-sibling-calls): Fix.
6580
6581 Thu Apr 27 14:54:22 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6582
6583         * loop.c (load_mems)  Don't use hard registers for the hoisting.
6584
6585         * unroll.c (unroll_loop): Avoid overflow in the n_iterations
6586         calculation; rename const_equiv array in the preconditioning code
6587         from loop_unroll to loop_unroll_precondition
6588
6589 2000-04-27  Richard Henderson  <rth@cygnus.com>
6590
6591         * flow.c (struct propagate_block_info): Remove new_dead, new_live;
6592         add new_set.
6593         (propagate_one_insn): Clear it.  Don't update reg_live here.
6594         (init_propagate_block_info): Update for pbi member changes.
6595         (free_propagate_block_info): Likewise.
6596         (mark_set_1): Know that zero_extract, sign_extract, and
6597         strict_low_part don't kill their argument.  Alter hard subregs.
6598         Update new_set for non-CLOBBER sets.  Update reg_live.
6599         (find_auto_inc): Update reg_live, not new_dead.
6600         (mark_used_reg): Update reg_live, not new_live.  Examine new_set
6601         to determine if the reg in question was set this insn.  Only update
6602         reg info with PROP_REG_INFO.
6603
6604 2000-04-26  Richard Henderson  <rth@cygnus.com>
6605
6606         * flow.c (allocate_reg_life_data): Set max_regno here ...
6607         (life_analysis): ... not here.
6608
6609         * flow.c (calculate_global_regs_live): Force stack pointer
6610         live at end.
6611
6612 2000-04-26  Richard Henderson  <rth@cygnus.com>
6613
6614         * jump.c (redirect_exp_1): Rework from old redirect_exp.  Never
6615         commit change group changes.
6616         (invert_exp_1): Similarly.
6617         (redirect_exp, invert_exp): Use them.
6618         (redirect_jump_1): New.
6619         (invert_jump_1): New.
6620         (jump_optimize_1): Remove code subsumed by condexec.c.
6621         * rtl.h (invert_jump_1, redirect_jump_1): Declare.
6622
6623 2000-04-26  Richard Henderson  <rth@cygnus.com>
6624
6625         * rtlanal.c (dead_or_set_regno_p): Use find_regno_note.
6626
6627         * genconfig.c (main): Set all HAVE_foo to 1.
6628
6629         * graph.c (node_data): Use GET_NOTE_INSN_NAME instead of local array.
6630
6631 2000-04-26  Alex Samuel  <samuel@codesourcery.com>
6632
6633         * invoke.texi: Document -fssa flag.
6634
6635 2000-04-26  Richard Henderson  <rth@cygnus.com>
6636
6637         * flow.c (count_reg_sets_1): Remove.
6638         (count_reg_sets, count_reg_references): Remove.
6639         (recompute_reg_usage): Implement with update_life_info.
6640         Reallocate life data.
6641
6642 2000-04-26  Richard Henderson  <rth@cygnus.com>
6643
6644         * flow.c (update_life_info): Consider blocks null to mean the
6645         universal set.
6646         (calculate_global_regs_live): Likewise.
6647         (life_analysis): Do that instead of collecting all_blocks.
6648
6649 2000-04-26  Richard Henderson  <rth@cygnus.com>
6650
6651         * flow.c (tidy_fallthru_edge): Don't delete the jump when it's
6652         a still-valid conditional jump.
6653
6654 2000-04-26  Richard Henderson  <rth@cygnus.com>
6655
6656         * jump.c (invert_jump): Always invert REG_BR_PROB.  Do it correctly.
6657
6658         * bb-reorder.c (reorder_basic_blocks): Don't run estimate_probability.
6659         * flow.c (calculate_loop_depth): Remove.
6660         * output.h (calculate_loop_depth): Don't declare.
6661         * toplev.c (rest_of_compilation): Expand calculate_loop_depth
6662         inline; run estimate_probability at the same time.
6663
6664 2000-04-26  Neil Booth  <NeilB@earthling.net>
6665
6666         * cpplib.h: "~=" is not a single pp-token.
6667         * cpplex.c: Correct commentary.
6668
6669 2000-04-26  Richard Henderson  <rth@cygnus.com>
6670
6671         * flow.c (mark_set_1): New arguments code and flags; update all
6672         callers.  Track regno_first and regno_last; do HARD_REGNO_NREGS
6673         test in one place.  Tidy flags tests.  Don't bias REG_N_REFS by
6674         loop_depth when optimizing for size.  Do new_dead update after
6675         emitting REG_UNUSED notes.  Merge mark_set_reg code.
6676         (mark_set_reg): Remove.
6677         (propagate_one_insn): Use mark_set_1 for call-clobbered registers;
6678         arrange to not emit REG_UNUSED notes.
6679
6680 2000-04-26  Richard Henderson  <rth@cygnus.com>
6681
6682         * flow.c (find_auto_inc): Use pbi->bb instead of BLOCK_FOR_INSN.
6683         * ssa.c (convert_from_ssa): Don't run compute_bb_for_insn.
6684
6685 2000-04-26  Richard Henderson  <rth@cygnus.com>
6686
6687         * flow.c (propagate_one_insn): Break out from propagate_block.
6688         (init_propagate_block_info): Likewise.
6689         (free_propagate_block_info): Likewise.
6690         (propagate_block): Use them.  Export.
6691         * basic-block.h: Declare them all.
6692
6693 2000-04-26  Richard Henderson  <rth@cygnus.com>
6694
6695         * basic-block.h (life_analysis): Declare here ...
6696         * output.h: ... not here.
6697         * flow.c (life_analysis): Remove nregs parameter; replace
6698         remove_dead_code with flags.  Remove ssa dead code check.
6699         Only init alias analysis if we'll use it.
6700         * reg-stack.c (reg_to_stack): Update life_analysis arguments.
6701         * ssa.c (convert_to_ssa): Likewise.
6702         (convert_from_ssa): Likewise.
6703         * toplev.c (rest_of_compilation): Likewise.
6704
6705 2000-04-26  Richard Henderson  <rth@cygnus.com>
6706
6707         * flow.c (flow_delete_block): Rename from delete_block.  Export.
6708         * basic-block.h (flow_delete_block): Declare.
6709
6710 2000-04-26  David S. Miller  <davem@redhat.com>
6711
6712         * optabs.c (emit_libcall_block): Verify insns with INSN_P before
6713         taking a PATTERN of it.
6714
6715 2000-04-26  <NeilB@earthling.net>
6716
6717         * cpplex.c (spell_other, spell_char): Remove.
6718         (SPELL_CHAR): New.
6719         (token_spelling, trigraph_map): Use unsigned chars.
6720         (_cpp_lex_line): Tidy up the switch statement.
6721         * cpplib.h: Implement spell_char with spell_string.
6722         (C): New.
6723
6724 2000-04-26  <RodneyBrown@pmsc.com>
6725
6726         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Warning removal.
6727         * pa/pa64-regs.h (HARD_REGNO_MODE_OK): Warning removal.
6728
6729 2000-04-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6730
6731         * dwarf2out.c (dw_cfi_oprnd_struct, dw_fde_struct, add_fde_cfi,
6732         reg_save, dwarf2out_frame_debug_expr, dwarf2out_def_cfa,
6733         dwarf2out_window_save, dwarf2out_args_size, dwarf2out_reg_save,
6734         dwarf2out_return_save, dwarf2out_return_reg,
6735         dwarf2out_stack_adjust, dwarf2out_frame_debug, primary_filename,
6736         add_AT_lbl_id, add_AT_lbl_offset, type_tag, decl_start_label,
6737         gen_compile_unit_die, dwarf2out_init): Constify a char*.
6738
6739         * dwarf2out.h (dwarf2out_init): Likewise.
6740
6741         * dwarfout.c (filename_entry, primary_filename, last_filename,
6742         type_tag, output_compile_unit_die, dwarfout_init): Likewise.
6743
6744         * tree.h (dwarf2out_def_cfa, dwarf2out_window_save,
6745         dwarf2out_args_size, dwarf2out_reg_save, dwarf2out_return_save,
6746         dwarf2out_return_reg): Likewise.
6747
6748 2000-04-26  Andreas Jaeger  <aj@suse.de>
6749
6750         * extend.texi (Function Attributes): Fix description of pure
6751         attribute.
6752
6753 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
6754
6755         * integrate.c (output_inline_function): Do clear DECL_DEFER_OUTPUT
6756         before calling rest_of_compilation.
6757
6758 2000-04-26  Andreas Jaeger  <aj@suse.de>
6759
6760         * config/mips/linux.h: Remove erroneous commit of #if 0/#endif in
6761         last patch.
6762
6763 2000-04-25  Richard Henderson  <rth@cygnus.com>
6764
6765         * cse.c (cse_insn): Emit barrier after unconditional jump.
6766
6767         * calls.c (expand_call): Disable tail call generation once
6768         rtx_equal_function_value_matters is false.
6769
6770         * reg-stack.c (convert_regs_1): Treat EDGE_ABNORMAL_CALL edges
6771         like EDGE_EH edges.
6772
6773 2000-04-25  Jason Merrill  <jason@casey.cygnus.com>
6774
6775         * dwarf2out.c (add_bound_info): Don't crash on an unexpanded SAVE_EXPR.
6776
6777         * dwarfout.c (output_decl): Ignore NAMESPACE_DECLs.
6778
6779         * dwarf2out.c (gen_subprogram_die): The class-scope declaration DIE
6780         is the primary DIE for a member function.
6781         (gen_decl_die): Call set_decl_origin_self here.
6782         * dwarfout.c (output_decl): And here.
6783         * integrate.c (output_inline_function): Not here.
6784         Don't clear DECL_INLINE until after calling rest_of_compilation.
6785         (set_decl_origin_self): No longer static.
6786         * tree.h: Add prototype.
6787         * toplev.c (note_deferral_of_defined_inline_function): Only write
6788         out abstract instance for actual inlines.
6789
6790 2000-04-25  Alexandre Oliva  <aoliva@cygnus.com>
6791
6792         * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Return
6793         EXTENDED_REGS only if TARGET_AM33.
6794         * config/mn10300/mn10300.md (movsi, addsi): Avoid exposing
6795         SP_REGS to register allocation and reloading unless absolutely
6796         necessary.
6797         (movsi3): Remove special-case of adding non-constants to SP.
6798
6799 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6800
6801         * aclocal.m4 (gcc_AC_NEED_DECLARATION): This macro now requires
6802         INCLUDES to search and does not provide any of its own.  Also it
6803         now accepts optional ACTION-IF-NEEDED and ACTION-IF-NOT-NEEDED
6804         parameters.  Also it does not call AC_DEFINE.
6805         (gcc_AC_NEED_DECLARATIONS): Likewise.  Also this macro now calls
6806         AC_DEFINE and provides for automatic entries for autoheader.
6807         (gcc_AC_FUNC_PRINTF_PTR): Cleanup C code in test.
6808
6809         * configure.in (gcc_AC_NEED_DECLARATIONS): Save and restore CFLAGS
6810         so we can pass -I flags and include gansidecl.h/system.h in this
6811         test.
6812
6813         * acconfig.h: Delete all NEED_DECLARATION_* entries.
6814
6815 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6816
6817         * acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
6818         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
6819         ENABLE_GC_ALWAYS_COLLECT): Delete entries.
6820
6821         * configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
6822         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
6823         ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
6824         for these macros.  Clean up spacing and linewraps.
6825
6826 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
6827
6828         * calls.c (expand_call): Use get_callee_fndecl.
6829
6830         * print-tree.c (print_node): Print the chain of an _EXPR.
6831
6832 Tue Apr 25 16:16:04 2000  Andrew MacLeod  <amacleod@cygnus.com>
6833                           Jim Wilson  <wilson@cygnus.com>
6834                           Andrew Haley  <aph@cygnus.com>
6835
6836         * config/ia64/crtbegin.asm: Add IA-64 unwind support.  Correct alloc
6837         and gp save/restore problems.
6838         * config/ia64/crtend.asm: Add IA-64 unwind support.
6839         * config/ia64/ia64.c (ia64_compute_frame_size): Don't include pr_size
6840         in fr_pad_size calculation.
6841         (save_restore_insns): Move PR save area.  Correct uses of
6842         RTX_FRAME_RELATED_P.
6843         (ia64_expand_prologue): Mark alloc with RTX_FRAME_RELATED_P.
6844         (ia64_expand_epilogue): Add eh_epilogue support.
6845         (ia64_function_prologue): Emit .prologue directive.
6846         (ia64_init_machine_status, ia64_mark_machine_status): New functions.
6847         (ia64_override_options): Set init_machine_status and
6848         mark_machine_status.
6849         (rtx_needs_barrier): Handle bsp reads and writes.
6850         (spill_offset, sp_offset, spill_offset_emitted, tmp_reg, tmp_saved):
6851         New static variables.
6852         (process_set, process_for_unwind_directive): New functions.
6853         * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR, ASM_OUTPUT_XDATA_SHORT,
6854         ASM_OUTPUT_XDATA_INT, ASM_OUTPUT_XDATA_DOUBLE_INT, ASM_OUTPUT_EH_CHAR,
6855         ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT, ASM_OUTPUT_EH_DOUBLE_INT): New
6856         macros.
6857         (EH_FRAME_SECTION_ASM_OP): Define to IA_64.unwind section.
6858         (IA64_UNWIND_INFO, HANDLER_SECTION, IA64_UNWIND_EMIT): Define.
6859         (struct machine_function): Define.
6860         * config/ia64/ia64.md (bsp_value, set_bsp, eh_epilogue): New patterns.
6861
6862 2000-04-25  Bruce Korb  <bkorb@gnu.org>
6863
6864         * fixinc/Makefile.in: make the removal of old programs more
6865         robust
6866         * fixinc/mkfixinc.sh: use the two new targets in the Makefile:
6867         install-bin and install-sh
6868
6869 2000-04-25  Nick Clifton  <nickc@cygnus.com>
6870
6871         * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): If not
6872         defined, define to return zero.
6873         (function_cannot_inline_p): If a function has any target
6874         specific attributes, then use the macro
6875         FUNCTION_ATTRIBUTE_INLINABLE_P to allow the target to decide
6876         whether it can be inlined.  If it cannot, issue a suitable
6877         explanation.
6878
6879         * tm.texi: Add a new node 'Inlining' to document the new macro
6880         FUNCTION_ATTRIBUTE_INLINABLE_P.
6881
6882 2000-04-25  Zack Weinberg  <zack@wolery.cumb.org>
6883
6884         * cpplib.h (struct cpp_buffer): Add 'mapped' flag; fix
6885         commentary.
6886
6887 2000-04-25  Neil Booth  <NeilB@earthling.net>
6888
6889         Restore previous patch, plus the following fixes:
6890
6891         * cpphash.c (_cpp_create_definition): Test PREV_WHITESPACE in
6892         flags, not CPP_OPEN_PAREN.
6893         * cpplex.c (expand_token_space, init_token_list,
6894         cpp_free_token_list): Put the dummy token at list->tokens[-1].
6895         (_cpp_lex_line, _cpp_lex_file): token list is 0-based.
6896
6897 Tue Apr 25 14:06:40 2000  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6898
6899         * config/i386/freebsd.h (INT_ASM_OP): Define.
6900
6901 Tue Apr 25 14:51:07 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6902
6903         * loop.c (strength_reduce): Fix typo in the last checkin.
6904
6905 Tue Apr 25 07:33:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6906
6907         * stor-layout.c (finalize_record_size): Simplify to use existing
6908         functions.
6909         (compute_record_mode): No longer static.
6910         * tree.h (compute_record_mode): New declaration.
6911
6912 2000-04-25  Neil Booth  <NeilB@earthling.net>
6913
6914         * Revert my patch below until cause of build failures
6915         determined.
6916
6917 2000-04-25  Richard Henderson  <rth@cygnus.com>
6918
6919         * combine.c (combine_instructions): Add missing argument
6920         to try_combine.
6921
6922         * toplev.c (rest_of_compilation): Delay sibcall optimization
6923         until after emit_eh_context.
6924
6925 2000-04-24  Nick Clifton  <nickc@redhat.com>
6926
6927         * combine.c (combine_instructions): Do not try to combine a
6928         sequence of insns when the second insn has been replaced by a
6929         note.
6930
6931 Mon Apr 24 17:34:18 2000  Mumit Khan  <khan@xraylith.wisc.edu>
6932
6933         * gcc.c (load_specs): New static function.
6934         (read_specs): Use it.
6935
6936         * gcc.c (lookup_compiler): Make multiple passes for case
6937         insensitive filesystems.
6938
6939 2000-04-24  Neil Booth  <NeilB@earthling.net>
6940
6941         * cpphash.c: replace HSPACE_BEFORE with PREV_WHITESPACE.
6942         * cpphash.h (_cpp_check_directive): new.
6943         * cpplex.c (handle_newline, cpp_free_token_list,
6944         init_trigraph_map, trigraph_ok, trigraph_replace,
6945         backslash_start, skip_block_comment, skip_line_comment,
6946         skip_whitespace, parse_name, parse_number, parse_string,
6947         copy_comment, _cpp_lex_line, spell_char, spell_string,
6948         spell_comment, spell_name, spell_other, _cpp_lex_file,
6949         _cpp_output_list): new.
6950         (expand_name_space): take length argument.
6951         (init_token_list): add comment list initialisation.
6952         (cpp_scan_line): use auto_expand_name_space.  PREV_WHITESPACE
6953         instead of HSPACE_BEFORE.
6954
6955         * cpplib.c (_cpp_check_directive): new
6956         * cpplib.h (cpp_name, PREV_WHITESPACE, PREV_COMMENT,
6957         DIGRAPH, UNSIGNED_INT, TOK_NAME): new.
6958         (HSPACE_BEFORE): delete.
6959         (TTYPE_TABLE): rearrange.
6960         (struct cpp_toklist): update.
6961
6962 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6963
6964         * aclocal.m4 (gcc_AC_HEADER_STRING, gcc_AC_FUNC_PRINTF_PTR,
6965         gcc_AC_C_VOLATILE, gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG): Use the three
6966         argument form of AC_DEFINE.
6967
6968         * configure.in (DEFAULT_LINKER, DEFAULT_ASSEMBLER,
6969         HAVE_INTTYPES_H, PACKAGE, VERSION, ENABLE_WIN32_REGISTRY,
6970         WIN32_REGISTRY_KEY, HAVE_GAS_SUBSECTION_ORDERING, HAVE_GAS_WEAK,
6971         HAVE_GAS_HIDDEN, HAVE_AS_REGISTER_PSEUDO_OP, AS_SPARC64_FLAG,
6972         HAVE_AS_OFFSETABLE_LO10, ENABLE_NEW_GXX_ABI): Likewise.
6973
6974         * acconfig.h: Delete stubs made redundant by 3-arg AC_DEFINE.
6975
6976 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6977
6978         * Makefile.in (GCC_FOR_TARGET, GCC_CFLAGS, LIBGCC2_INCLUDES,
6979         deduced.h): Use -isystem, not -I, for including system headers.
6980
6981 2000-04-24  Nick Clifton  <nickc@cygnus.com>
6982
6983         * config/fr30/fr30.md (addsi3): Do not use small add instruction if
6984         the source register is the frame pointer or arg pointer.
6985         (addsi3_small_int): Disallow if source register is the frame
6986         pointer or arg pointer.
6987
6988 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6989
6990         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Delete redundant
6991         call to AC_MSG_RESULT.
6992
6993 2000-04-24  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
6994
6995         * invoke.texi: Correct grammatical errors, document
6996         -fno-gnu-keywords as identical to -fno-asm for C++.
6997
6998 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6999
7000         * aclocal.m4: (GCC_HEADER_STRING, GCC_NEED_DECLARATION,
7001         GCC_NEED_DECLARATIONS, GCC_FUNC_VFPRINTF_DOPRNT,
7002         GCC_FUNC_PRINTF_PTR, GCC_PROG_LN_S, GCC_PROG_LN, GCC_C_VOLATILE,
7003         AC_GCC_C_LONG_DOUBLE, GCC_FUNC_MKDIR_TAKES_ONE_ARG,
7004         EGCS_PROG_INSTALL): Rename autoconf macros with prefix gcc_AC_.
7005
7006         * configure.in (AC_GCC_C_LONG_DOUBLE, GCC_PROG_LN, GCC_PROG_LN_S,
7007         GCC_C_VOLATILE, EGCS_PROG_INSTALL, GCC_HEADER_STRING,
7008         GCC_FUNC_VFPRINTF_DOPRNT, GCC_FUNC_PRINTF_PTR,
7009         GCC_NEED_DECLARATIONS, GCC_FUNC_MKDIR_TAKES_ONE_ARG): Invoke with
7010         new macros names.
7011
7012 2000-04-24  Mumit Khan  <khan@xraylith.wisc.edu>
7013
7014         * c-pragma.c (push_alignment): Use BITS_PER_UNIT macro.
7015         (pop_alignment): Likewise.
7016         (handle_pragma_token): Likewise.
7017
7018 2000-04-24  Robert Lipe <robertlipe@usa.net>
7019
7020         * tree.h (tree_decl): Member `mode' now ENUM_BITFIELD.
7021
7022 2000-04-24  Hiroyuki Machida <machida@sm.sony.co.jp>
7023
7024         * combine.c (try_combine): Update reg_nonzero_bits of
7025         newi2pat before newpat.
7026
7027 Mon Apr 24 10:19:48 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7028
7029         * loop.c (strength_reduce): Simplify test to INSN_P.
7030         (record_giv): Attempt to simplify the add value, use CONSTANT_P
7031         expressions instead of CONST_INT.
7032         (express_from_1): Likewise.
7033
7034 2000-04-24  Mark Mitchell  <mark@codesourcery.com>
7035
7036         * regs.h (reg_n_max): Don't declare.
7037         * flow.c (reg_n_max): Don't define.
7038         * regclass.c (renumber): Don't initialize to zero.
7039         (regno_allocated): Likewise.
7040         (reg_n_max): Define.
7041         (allocate_reg_info): Don't initialize unnecessarily.
7042
7043 Mon Apr 24 00:21:36 2000  Jeffrey A Law  (law@cygnus.com)
7044
7045         * genattrtab.c (find_attr): Initialize unsigned_p, func_units_p
7046         and blockage_p in the newly allocated attribute.
7047
7048 Sun Apr 23 20:16:49 2000  Alexandre Oliva  <aoliva@cygnus.com>
7049
7050         * config/mn10300/mn10300.md (addsi): `inc4' on address
7051         registers does not modify cc, but `inc' on an extended
7052         register does.
7053
7054 Sun Apr 23 16:24:35 2000  Denis Chertykov  <denisc@overta.ru>
7055
7056         * reload.c (find_equiv_reg): Checks all valueno regs
7057         as a reload_reg_p regs.
7058
7059 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
7060
7061         * cpphash.c (collect_objlike_expansion): Add sanity check.
7062         (special_symbol): Remove case T_CONST, T_XCONST, T_MCONST.  If
7063         the buffer is the empty string, return.  Mark __DATE__ and
7064         __TIME__ as XCONST nodes, not MCONST.
7065         (_cpp_macroexpand): Avoid pushing an empty buffer.
7066         (funlike_macroexpand): Don't pop token_buffer here.
7067
7068 Sun Apr 23 18:37:53 2000  Alexandre Oliva  <aoliva@cygnus.com>
7069
7070         * config/mn10300/mn10300.h (REGNO_IN_RANGE_P): New macro.
7071         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P): New macros.
7072         (REGNO_EXTENDED_P, REGNO_AM33_P): New macros.
7073         (REGNO_OK_FOR_BASE_P): Define in terms of them.
7074         (REGNO_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P): Likewise.
7075         (REG_OK_FOR_BASE_P): Define in terms of the REGNO macro.
7076         (REG_OK_FOR_BIT_BASE_P, REG_OK_FOR_INDEX_P): Likewise.
7077
7078 Sun Apr 23 22:23:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7079
7080         * loop.c (simplify_giv_expr):  Be more agressive on simplifying
7081         constant MULT givs.
7082
7083 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
7084
7085         * cpphash.h (struct definition): Move file, line, col members...
7086         (struct hashnode): ... here.  Also add 'disabled' flag.
7087         (enum node_type): Add T_VOID, T_XCONST, T_FMACRO, and
7088         T_IDENTITY.  Remove T_DISABLED.
7089         Update prototypes.
7090
7091         * cpphash.c (_cpp_dump_definition): Split out dump_DEFINITION.
7092         (collect_expansion): Split into collect_objlike_expansion and
7093         collect_funlike_expansion.
7094         (_cpp_macroexpand): Split out scan_arguments, stringify, and
7095         funlike_macroexpand.
7096         (_cpp_compare_defs): Rename compare_defs, make static.
7097         (_cpp_make_hashnode): Initialize hp->disabled.
7098         (macro_cleanup): Adjust for new token types.  Clear
7099         m->disabled.
7100         (_cpp_create_definition): Move code here to determine what
7101         sort of macro it is, and code to check for redefinitions, from
7102         do_define.  Implement a few simple cases without creating a
7103         full DEFINITION.
7104         (_cpp_macroexpand, special_symbol, _cpp_dump_definition):
7105         Handle the simple cases.
7106         (push_macro_expansion): Set buf->has_escapes and hp->disabled
7107         here.
7108
7109         * cppinit.c (builtin_array): Change MCONST to XCONST
7110         everywhere.
7111         * cpplex.c (maybe_macroexpand): Handle IDENTITY macros here;
7112         fix check for disabled and function-like macros.
7113         * cpplib.c (do_define): Move most logic to
7114         _cpp_create_definition.
7115         (do_undef): Handle new special token types.
7116
7117 Sun Apr 23 14:27:44 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7118
7119         * loop.c (maybe_eliminate_biv_1): Use GET_CODE (x) == CONST_INT instead
7120         of CONSTANT_P for mult_val; always use validate_change to update insn.
7121
7122 2000-04-22  Zack Weinberg  <zack@wolery.cumb.org>
7123
7124         * cpphash.c (trad_stringify, add_pat): New functions.
7125         (collect_expansion): Restore support for -traditional syntax.
7126         Use trad_stringify and add_pat.
7127         (_cpp_macroexpand): Restore support for -traditional semantics.
7128         * cpplex.c (_cpp_scan_line): Don't change space_before if we
7129         get a COMMENT token.
7130         (_cpp_lex_token): Provide COMMENT tokens to caller if
7131         traditional and parsing_define_directive.
7132         (skip_comment): Warn about // comments if -Wtraditional.
7133         * cpplib.c (do_define): Fix typo.  Create EMPTY nodes with
7134         proper node type.
7135         (do_undef): Don't warn about undefining EMPTY nodes.
7136
7137 Sat Apr 22 22:35:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7138
7139         * loop.c (strength_reduce): Fix biv removal code.
7140
7141 2000-04-22  Richard Henderson  <rth@cygnus.com>
7142
7143         * predict.c (estimate_probability): Examine both sides of
7144         a branch for no exits.  Use 90% not 50% for predict taken.
7145         Reorg for one copy of note generation code.
7146
7147 2000-04-22  Richard Henderson  <rth@cygnus.com>
7148
7149         * flow.c (mark_used_reg): Hack around rs6000 eliminable pic reg.
7150
7151 2000-04-22  Richard Henderson  <rth@cygnus.com>
7152
7153         * diagnostic.c (init_output_buffer): Don't initialize format_args.
7154         (output_clear): Likewise.
7155         (output_printf): Use va_copy.
7156         (vline_wrapper_message_with_location): Likewise.
7157         (v_message_with_decl): Likewise.
7158         (line_wrapper_printf): VA_START infor buffer.format_args directly.
7159         * system.h (va_copy): Provide default implementation.
7160
7161 2000-04-22  Richard Henderson  <rth@cygnus.com>
7162
7163         * predict.c (expected_value_to_br_prob): Don't bomb if op1 of
7164         the collected condition is not a constant.
7165
7166 2000-04-22  Gabriel Dos Reis  <gdr@codesourcery.com>
7167
7168         * diagnostic.h: New file.
7169
7170         * Makefile.in (diagnostic.o): Depends on diagnostic.h
7171
7172         * diagnostic.c: Tweak.  Rationalize the output logic.  Adjust
7173         various function prototypes.
7174         (diagnostic.h): #include.
7175         (struct output_buffer): Move into diagnostic.h.
7176         (get_output_prefix): Rename to output_get_prefix.  Export.
7177         (init_output_buffer): Export. Break out.  Ajust intialization.
7178         (output_space_left, output_append): Export.
7179         (output_newline): Rename to output_add_newline.  Export.
7180         (output_clear): Nullify additional output_buffer fields.
7181         (output_puts): Rename to output_add_string.  Export.
7182         (dump_output): Rename to output_flush_on.  Export.
7183         (build_location_prefix): Constify return-type.
7184         (emit_output_prefix): Rename to output_emit_prefix. Export.
7185         (set_real_maximum_length): New function.
7186         (output_set_maximum_length): Ditto
7187         (output_clear): Ditto.
7188         (output_add_character): Ditto.
7189         (output_add_integer): Ditto.
7190         (output_add_space): Ditto.
7191         (output_format): Ditto.
7192         (output_printf): Adjust buffer initialization.
7193         (vline_wrapper_message_with_location): Ditto.
7194         (v_message_with_decl): Ditto.  Adjust call to output_puts
7195         and get_output_prefix.
7196         (default_print_error_function): Adjust buffer intialization.
7197
7198 Sat Apr 22 06:45:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7199
7200         * expr.c (preexpand_calls, case CALL_EXPR): Don't look at TYPE_SIZE
7201         of VOID_TYPE.
7202
7203 Fri Apr 21 18:33:09 2000  Alexandre Oliva  <aoliva@cygnus.com>
7204
7205         * config/mn10300/mn10300.h (REGNO_REG_CLASS): Use NO_REGS instead
7206         of explicit 0.
7207
7208 Fri Apr 21 18:30:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
7209
7210         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Provide more
7211         accurate data about SP moves.
7212
7213 Fri Apr 21 18:28:28 2000  Alexandre Oliva  <aoliva@cygnus.com>
7214
7215         * config/mn10300/mn10300.h (ADDITIONAL_REGISTER_NAMES): Added
7216         aliases to AM33 registers.
7217
7218 Fri Apr 21 18:26:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
7219
7220         * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Added register 16
7221         to all EXTENDED bitmaps.
7222
7223 Fri Apr 21 18:17:12 2000  Alexandre Oliva  <aoliva@cygnus.com>
7224
7225         * config/mn10300/mn10300-protos.h (mn10300_address_cost): Declare.
7226         * config/mn10300/mn10300.h (ADDRESS_COST): New macro.
7227         * config/mn10300/mn10300.c (mn10300_address_cost): New function.
7228
7229 Fri Apr 21 18:11:56 2000  Alexandre Oliva  <aoliva@cygnus.com>
7230
7231         * config/mn10300/mn10300.md (movdi, movdf): Do not use `movu' when
7232         the operand is not constant.
7233
7234 Fri Apr 21 14:58:29 2000  Denis Chertykov  <denisc@overta.ru>
7235
7236         * reload.c (find_equiv_reg): Checks all valueno and regno regs
7237         as a call-clobbered regs.
7238
7239 Fri Apr 21 13:30:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7240
7241         * rtl.c: Use NOTE_INSN_REPEATED_LINE_NUMBER and NOTE_INSN_RANGE_BEG.
7242         * rtl.h: Likewise.
7243         * rtl.def: Update comment.
7244         * function.c (expand_function): Use NOTE_INSN_REPEATED_LINE_NUMBER.
7245         * integrate.c (expand_inline_function): Likewise.
7246         * profile.c (branch_prob): Likewise.
7247         * ggc-common.c (ggc_mark_rtx_children): Use NOTE_INSN_RANGE_BEG.
7248         * print-rtl.c (print_rtx): Likewise.
7249         * haifa-sched.c (sched_analyze, unlink_other_notes): Likewise.
7250         (reemit_notes): Likewise; also use enum insn_note.
7251
7252         * stor-layout.c (layout_decl): Only set DECL_MODE if not already set.
7253         (place_field): Properly compute know and actual alignment.
7254
7255         * gengenrtl.c (gencode): Write obstack_alloc_rtx function start
7256         in proper format.
7257
7258         * cse.c (cse_insn): In (set REG0 REG1) case, remove a REG_EQUAL
7259         note for REG1.
7260
7261 2000-04-21  Zack Weinberg  <zack@wolery.cumb.org>
7262
7263         * cpphash.c (struct arg, struct arglist): Const-ify strings.
7264         (warn_trad_stringify, duplicate_arg_p): New helper functions.
7265         (collect_expansion): Rewrite to scan over a token list.
7266         Remove -traditional support.
7267         (collect_formal_parameters): Rename to collect_params; rewrite
7268         to scan over a token list.
7269         (_cpp_create_definition): Adjust to scan a token list.
7270         (_cpp_macroexpand): Remove -traditional support.
7271         (_cpp_compare_defs): Whitespace is now canonicalized.
7272         (comp_def_part): Delete function.
7273
7274         * cpphash.h: Update prototypes.
7275         * cpplex.c (init_token_list): Don't set lineno if there is no
7276         buffer.
7277         (pedantic_whitespace): New function.
7278         (_cpp_scan_line): Mark tokens that had hspace before.  Don't
7279         consume a newline.  Use pedantic_whitespace.
7280         (_cpp_lex_token): Remove support for -traditional macros.
7281         (_cpp_get_define_token): Delete.
7282         (_cpp_get_directive_token): Do the real work here.  Use
7283         pedantic_whitespace.
7284         (_cpp_init_input_buffer): Initialize pfile->directbuf.
7285
7286         * cpplib.c (get_macro_name): Delete.
7287         (do_define): Read the entire line into pfile->directbuf, then
7288         feed the token list to _cpp_create_definition.
7289         * cpplib.h (HSPACE_BEFORE): new define.
7290         (struct cpp_reader): Add a toklist member, "directbuf".
7291
7292         * predict.c (estimate_probability): New heuristic: if a jump
7293         branches around a block with no successors, predict it taken.
7294         Disentangle control flow.
7295
7296 2000-04-20  Richard Henderson  <rth@cygnus.com>
7297
7298         * loop.c (emit_iv_add_mult): Revert last change.
7299
7300 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
7301
7302         * cpplib.h (enum cpp_ttype): Add token types for all
7303         punctuators.  Distinguish pp-numbers from valid C numbers.
7304         Give some tokens better names.  Initialize from macro.
7305         (struct cpp_name, cpp_token, cpp_toklist): New data
7306         structures.
7307         Update prototypes.
7308         * cpplex.c (bump_column, expand_name_space,
7309         expand_token_space, init_token_list, cpp_output_list,
7310         _cpp_scan_line):  New functions.
7311         (output_line_command): Add third argument, new line number.
7312         * cpphash.h: Update prototypes.
7313         * cppexp.c, cpphash.c, cpplib.c, scan-decls.c: Update for new
7314         token names.
7315
7316 2000-04-20  Richard Henderson  <rth@cygnus.com>
7317
7318         * config/alpha/alpha.c (alpha_emit_floatuns): Emit missing barrier.
7319
7320 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
7321
7322         * c-common.c (decl_attributes) [A_ALIAS]: Set TREE_USED on the
7323         object pointed to.
7324
7325 Thu Apr 20 14:19:18 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7326
7327         * loop.c (emit_iv_add_mult):  Simplify it's input and emit
7328         REG_EQUAL note explaining the calculated value.
7329
7330         * calls.c (expand_call): Avoid unnecesary precalculation
7331         and outgoing parameters space guarding for sibling calls.
7332         (store_one_arg): Likewise.
7333
7334 Thu Apr 20 08:01:07 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7335
7336         * toplev.c (enum dump_file_index, dump_file): Add DFI_sibling.
7337         (rest_of_compilation): Write sibling dump file and account
7338         for time as jump time.
7339         * invoke.texi: Update documentation on dump flags.
7340
7341 2000-04-19  Marek Michalkiewicz  <marekm@linux.org.pl>
7342
7343         * avr.c: #include "system.h" instead of <stdio.h> and <stdlib.h>.
7344
7345 2000-04-19  Zack Weinberg  <zack@wolery.cumb.org>
7346
7347         * cpphash.c (special_symbol): Represent an empty macro with
7348         "\r \r " not just "\r ".
7349         (_cpp_macroexpand): Correct condition for the foo ( ) special
7350         case.
7351         (unsafe_chars): Handle EOF as second argument.
7352         (push_macro_expansion): Simplify test for removing escape at
7353         end.  Do not trim both escapes if there is no text in between.
7354
7355 2000-04-19  Jim Blandy  <jimb@redhat.com>
7356
7357         * dwarf2out.c (DWARF2_ADDR_SIZE): New macro.  Use it instead
7358         of PTR_SIZE, when appropriate.
7359
7360 2000-04-19  Mark Mitchell  <mark@codesourcery.com>
7361
7362         * system.h (ONLY_INT_FIELDS): Make sure it is defined.
7363         (USE_ENUM_BITFIELDS): Fix typo.
7364
7365 Wed Apr 19 12:14:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7366
7367         * stor-layout.c (place_field): Set rli->offset_align properly.
7368
7369 2000-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7370
7371         * mips.h (BITS_PER_WORD, UNITS_PER_WORD, UNITS_PER_FPREG,
7372         INT_TYPE_SIZE, LONG_TYPE_SIZE, POINTER_SIZE, POINTER_BOUNDARY,
7373         PARM_BOUNDARY): Remove unnecessary casts.
7374
7375 Wed Apr 19 12:02:37 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7376
7377         * calls.c (precompute_arguments): Remove must_preallocate and
7378         args_size calls.
7379         (expand_call): Update call of precompute_arguments.
7380
7381         * loop.c (check_insn_for_bivs, for_every_insn_in_loop,
7382         check_insn_for_givs): Break out from ...
7383         (strength_reduce) ... here; use for_every_insn_in_loop to call
7384         check_insn_for_givs.
7385         * loop.h (for_every_insn_in_loop): Declare.
7386         (loop_insn_callback): New type.
7387
7388 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
7389
7390         * cpplib.c (do_pragma_poison):  Strings in the token buffer are
7391         not nul-terminated.
7392
7393 Tue Apr 18 16:04:12 2000  Jim Wilson  <wilson@cygnus.com>
7394
7395         * config/ia64/sysv4.h (SELECT_SECTION): Use data_section if
7396         flag_pic and RELOC.
7397
7398 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
7399
7400         * cccp.c, cexp.y, cexp.c, cccp.1: Removed.
7401
7402         * configure.in: Delete --disable-cpplib option and all
7403         references to cpp_main.
7404         * configure: Regenerate.
7405         * Makefile.in: Remove all references to CCCP, CCCP_OBJS,
7406         @cpp_main@, cccp.c, cexp.c, cexp.y, cexp.output, cexp.o,
7407         cccp.o, cccp, or cppmain.  Link cppmain.o straight to
7408         cpp$(exeext).  Add --no-headers to makeinfo command line when
7409         generating INSTALL.  Install and uninstall cpp.1 manpage, not
7410         cccp.1.
7411         * install.texi: Delete all references to cexp.y/cexp.c.
7412         Delete ancient instructions for compiling GCC on 3b1.
7413         * INSTALL: Regenerate.
7414
7415         * cppfiles.c, cpplib.h, jump.c, protoize.c, c-lex.c, mips/t-ecoff,
7416         mips/t-elf, mips/t-r3900: Remove references to cccp.c.
7417         * convex.h, fx80.h, m68k.h, pdp11.h: Remove references to
7418         cexp.c/cexp.y.
7419         * xm-linux.h, xm-os2.h, romp.h: Remove definition of BSTRING,
7420         which is no longer tested anywhere.
7421
7422         * cppinit.c (handle_option): Don't run error message through
7423         gettext twice.
7424
7425 Tue Apr 18 14:16:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7426
7427         * conflict.c (conflict_graph_add): Pass enum type to htab_find_slot.
7428         * cpperror.c (hashtab.h): Now include.
7429         * cppexp.c (hashtab.h): Likewise.
7430         * cpplex.c (hashtab.h): Likewise.
7431         * cppfiles.c (hashtab.h): Likewise.
7432         (find_include_file, _cpp_calc_hash, cpp_read_file): Pass enum type
7433         to htab_find_slot_with_hash.
7434         * cpphash.c (hashtab.h): Now include.
7435         (_cpp_lookup_slot): INSERT is now enum insert_option.
7436         * cpphash.h (_cpp_lookup_slot): Likewise.
7437         * cppinit.c (hashtab.h): Include earlier.
7438         (initialize_builtins): Pass enum to htab_find_slot.
7439         * cpplib.c (hashtab.h): Now include.
7440         (do_define, do_undef): Pass enum type to _cpp_lookup_slot.
7441         (do_pragma_poison, do_assert): Likewise.
7442         * emit-rtl.c (gen_rtx_CONST_INT): Pass enum to
7443         htab_find_slot_with_hash.
7444         * simplify-rtx.c (cselib_lookup_mem, cselib_lookup): Likewise.
7445         * tree.c (type_hash_add): Likewise.
7446         (build1): Minor cleanup.
7447
7448         * ggc-common.c: Add missing blanks.
7449         * print-tree.c (print_node): Print DECL_OFFSET_ALIGN.
7450         * tree.h (DECL_OFFSET_ALIGN): Fix typo in comment.
7451
7452         * stmt.c (mark_case_node): New function.
7453         (mark_case_nesting): Call it.
7454
7455         * expmed.c (emit_store_flag): If comparing two-word integer
7456         with zero, can optimize NE, EQ, GE, and LT.
7457
7458         * c-decl.c (mark_binding_level): Use 'for' instead of `while'.
7459         * conflict.c: Minor cleanups.
7460         * optabs.c: Add blank line
7461         * simplify-rtx.c: Minor cleanups.
7462
7463 2000-04-18  Stan Cox  <scox@cygnus.com>
7464
7465         * gengenrtl.c (genlegend): Fix misspelling.
7466
7467 2000-04-18  Robert Lipe  <robertlipe@usa.net>
7468
7469         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Added.  Check that
7470         bitfields of the host compiler are not signed quantities.
7471         * config.in: Regenerate.
7472         * configure: Regenerate.
7473         * system.h (USE_ENUM_BITFIELDS): Added.
7474         (ENUM_BITFIELDS): Added.
7475         * rtl.h (rtx_def): Members `code', `mode', now ENUM_BITFIELD.
7476         (SHORT_ENUM_BUG): Deleted.
7477         * tree.h (tree_common): Members `code', `mode', `built_in_class',
7478         now ENUM_BITFIELD.
7479         * config/i386/xm-sco.h (ONLY_INT_FIELDS): Deleted.
7480         (CODE_FIELD_BUG): Likewise.
7481         * config/m68k/x-apollo68 (CC): Deleted SHORT_ENUM_BUG.
7482         (OLD_CC): Likewise.
7483         * config/m68k/x-ccur (X_CFLAGS): Likewise.
7484
7485 2000-04-18  Mark Mitchell  <mark@codesourcery.com>
7486
7487         * cpplex.c (_cpp_lex_token): Don't call CPP_BUMP_LINE when the
7488         mark is active.
7489
7490 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
7491
7492         * cppexp.c (lex): Don't assume tokens are NUL terminated.
7493         * cpplib.c (do_include, do_import, do_include_next,
7494         read_line_number, detect_if_not_defined): Likewise.
7495         * cpphash.c (collect_expansion): Likewise.
7496         (special_symbol, _cpp_macroexpand): Check return from
7497         cpp_file_buffer.
7498         * cpphash.h (CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q): Delete
7499         macros.  Delete all uses.
7500
7501         * gcc.dg/cpp-mi.c: Add two more test cases.
7502         * gcc.dg/cpp-mind.h, gcc.dg/cpp-mindp.h: New files.
7503
7504 2000-04-17  Richard Henderson  <rth@cygnus.com>
7505
7506         * bb-reorder.c (fixup_reorder_chain): Don't look up new block again.
7507         (reorder_basic_blocks): If no epilogue in rtl, force last block last.
7508
7509 2000-04-17  Mark Mitchell  <mark@codesourcery.com>
7510
7511         * function.c (expand_function_start): Use hard_function_value to
7512         compute the RTL to use for DECL_RESULT.
7513
7514 Mon Apr 17 23:35:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7515
7516         * i386.c (athlon_cost): Fix lea, divide and XFmode move costs.
7517         (x86_integer_DFmode_moves, x86_partial_reg_dependency,
7518          x86_memory_mismatch_stall): New global variables.
7519         (ix86_adjust_cost): Handle MEMORY_BOTH on places MEMORY_STORE was only
7520         alloved; fix load penalties for Athlon.
7521         * i386.h (x86_integer_DFmode_moves, x86_partial_reg_dependency,
7522         x86_memory_mismatch_stall): Declare.
7523         (TARGET_INTEGER_DFMODE_MOVES, TARGET_PARTIAL_REG_DEPENDENCY,
7524          TARGET_MEMORY_MISMATCH_STALL): New.
7525         * i386.md (athlon scheduling parameters): Fix latencies according to
7526         Athlon Optimization Manual.
7527         (sahf, xchg, fldcw, leave instruction patterns): Set athlon_decode to
7528         vector.
7529         (fsqrt instruction patterns): Set athlon_decode to direct.
7530         (movhi_1): Promote for TARGET_PARTIAL_REG_DEPENDENCY and for
7531         PARTIAL_REGISTER_STALL with !TARGET_HIMODE_MATH machines.
7532         (movqi_1): Handle promoting correctly for TARGET_PARTIAL_REG_DEPENDENCY
7533         and TARGET_PARTIAL_REGISTER_STALL machines.
7534         (pushdf_nointeger): New pattern.
7535         (pushdf_integer): Rename from pushdf.
7536         (movdf_nointger): Enable for !TARGET_INTEGER_DFMODE_MOVES machines.
7537         (movdf_intger): Disable for !TARGET_INTEGER_DFMODE_MOVES machines.
7538
7539 2000-04-17  Richard Henderson  <rth@cygnus.com>
7540
7541         * loop.c (canonicalize_condition): Add WANT_REG argument.
7542         Stop the search if we match it.
7543         * expr.h (canonicalize_condition): Update decl.
7544         * predict.c (expected_value_to_br_prob): Use it.  Track last
7545         expected value note.
7546         (find_expected_value): Remove.
7547
7548         * reorg.c (mostly_true_jump): Always use BR_PROB if present.
7549
7550 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
7551
7552         * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE([AC_FUNC_MMAP]).
7553         (AC_FUNC_MMAP_FILE): New macro, tests read-only private map of
7554         a plain file.
7555         * configure.in: Call AC_FUNC_MMAP_FILE.
7556         * configure: Regenerate.
7557         * config.in: Regenerate.
7558
7559         * intl/loadmsgcat.c: Test HAVE_MMAP_FILE not HAVE_MMAP.
7560         * fixinc/fixincl.c: Likewise.
7561
7562 2000-04-17  Richard Henderson  <rth@cygnus.com>
7563
7564         * builtins.c (expand_builtin_expect): New.
7565         (expand_builtin): Call it.
7566         * builtins.def (BUILT_IN_EXPECT): New.
7567         * c-common.c (c_common_nodes_and_builtins): Declare __builtin_expect.
7568         * extend.texi: Document it.
7569
7570         * predict.c (expected_value_to_br_prob): New.
7571         (find_expected_value): New.
7572         * basic-block.h (expected_value_to_br_prob): Declare.
7573         * toplev.c (rest_of_compilation): Invoke it.
7574
7575         * rtl.h (NOTE_EXPECTED_VALUE): New.
7576         (NOTE_INSN_EXPECTED_VALUE): New.
7577         * rtl.c (note_insn_name): Update.
7578         * print-rtl.c (print_rtx): Reorg NOTE_LINE_NUMBER special
7579         cases; handle NOTE_INSN_EXPECTED_VALUE.
7580
7581 2000-04-17  Jakub Jelinek  <jakub@redhat.com>
7582
7583         * config/sparc/sparc.c (eligible_for_sibcall_delay): Cannot use
7584         leaf sibcall delay slot if flag_pic.
7585         (output_sibcall): Always emit call for leaf sibcall if flag_pic.
7586
7587 2000-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7588
7589         * Makefile.in (stmp-fixproto): Acknowledge errors in fixproto.
7590
7591         * fixproto: If fix-header fails, exit with an error.
7592
7593 Mon Apr 17 14:59:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7594
7595         * cse.c (struct check_depdendence_data): New.
7596         (check_dependence): New function.
7597         (invalidate): Use check_depdenence.
7598
7599 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
7600
7601         * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Adjust, now that
7602         UNITS_PER_WORD is unsigned.
7603
7604         * tree.h (struct tree_common): Remove misleading comment.
7605
7606 2000-04-16  Dave Pitts  <dpitts@cozx.com>
7607
7608         * Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole
7609         message in quotes. Otherwise, IBM's make program treats the '#' as the
7610         start of a comment and ignores the remainder of the line.
7611
7612         * c-lex.c (yylex): Change for EBCDIC, lower case characters preceed
7613         upper case.
7614         * cccp.c (initialize_char_syntax): Allow for holes in EBCDIC.
7615         * cexp.y (initialize_random_junk): Likewise.
7616         * cppfiles.c (find_include_file): Cast alloca return value.
7617         * cppinit.c (initialize_standard_includes): Likewise.
7618         * cpplib.c (cpp_define, cpp_undef): Likewise.
7619         * defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT.
7620         * final.c (output_asm_insn): Allow for holes in EBCDIC.
7621         * fold-const.c (CHARMASK): New.
7622         (real_hex_to_f): Use it.
7623         * real.c (CHARMASK): New.
7624         (etoasc, asctoeg): Use it.
7625         (asctoeg): EBCDIC lower case characters preceed upper case.
7626
7627         * i370.c (mvs_add_label): Change spacing for coding conventions.
7628         * i370.h (ASM_OUTPUT_CASE_LABEL): Change to the data CSECT for the
7629         outputing case vectors.
7630         (ASM_OUTPUT_CASE_END): New, put assembler back into code CSECT.
7631         (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove page check,
7632         since vector in in the data CSECT.
7633         (ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation.
7634         * i370.md (Many patterns): Put the length in the XL directives.
7635         (movdi): Put back STM and MVC in definition.
7636         (floatsidf2): Correct TARGET_ELF_ABI pattern and add back the LE370
7637         pattern using the TCA.
7638         * oe.h (CPP_SPEC): Added to allow trigraphs.
7639         * xm-oe.h (HOST_BITS_PER_LONGLONG): Change to 32. IBM's compiler does
7640         not support the "long long" type.
7641
7642 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
7643
7644         * config/mips/mips-protos.h (mips_legitimate_address_p): New
7645         function.
7646         (mips_reg_mode_ok_for_base_p): Likewise.
7647         * config/mips/mips.h (REG_OK_STRICT_P): Don't define.
7648         (REG_OK_FOR_INDEX_P): Define unconditionally.
7649         (REG_MODE_OK_FOR_BASE_P): Use mips_reg_mode_ok_for_base_p.
7650         (GO_IF_LEGITIMATE_ADDRESS): Use mips_legitimate_address_p.
7651         * config/mips/mips.c (mips16_simple_memory_operand): Adjust now
7652         that GET_MODE_SIZE is unsigned.
7653         (mips_reg_mode_ok_for_base_p): Define.
7654         (mips_legitimate_address_p): Likewise.  Adjust now
7655         that GET_MODE_SIZE is unsigned.
7656         (block_move_loop): Make the number of bytes unsigned.
7657         (expand_block_move): Likewise.
7658         (function_arg): Make the loop counter unsigned to match the
7659         boundary condition.
7660
7661 2000-04-16  Richard Henderson  <rth@cygnus.com>
7662
7663         * rtl.h (enum insn_note): New enumeration.  Subsume
7664         NOTE_INSN_DELETED and friends.
7665         (GET_NOTE_INSN_NAME): Adjust index by NOTE_INSN_BIAS.
7666         * rtl.c (note_insn_name): Tweak string order.
7667
7668 2000-04-15  Zack Weinberg  <zack@wolery.cumb.org>
7669
7670         * cpplex.c (_cpp_read_and_prescan): Enlarge len by setting it
7671         to offset * 2.
7672
7673         * cpplex.c (output_line_command): Remove debugging prints.
7674         (cpp_output_tokens): Don't write out a zero-length buffer or
7675         try to see if it has a newline in it.
7676         (_cpp_expand_to_buffer): Copy the source buffer before pushing.
7677         (_cpp_read_and_prescan): Move shift-down of pushback bytes to
7678         the end of the loop.  Use memmove.  Don't read past the end of
7679         the buffer.  Remove trailing newlines from error messages.
7680
7681 2004-04-16  Neil Booth  <NeilB@earthling.net>
7682
7683         * cpphash.h (SYNTAX_INCLUDE, SYNTAX_ASSERT, directive_handler): new.
7684         * cpplib.c: Add new syntax flags to directive table, and
7685         supporting macros.
7686
7687 2000-04-15  Ulrich Drepper  <drepper@redhat.com>
7688
7689         * i386.c (ix86_expand_epilogue): Yes, the x86 can pop 64k at once
7690         using ret $N.
7691
7692 2000-04-15  David Edelsohn  <edelsohn@gnu.org>
7693
7694         * toplev.c (display_help): Prefix "f" to "sched-verbose=".
7695         * haifa-sched.c: Update -fsched-verbose comments to use "=".
7696
7697 Sat Apr 15 10:59:19 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7698
7699         * Makefile.in (ggc-page.o): Now includes toplev.h.
7700         * ggc-page.c (toplev.h): Now included.
7701         (gc_time): Remove declaration.
7702         (ggc_collect): TIME now long.
7703         * toplev.c (parse_time, varasm_time, gc_time): Still global; all
7704         others static.
7705         * toplev.h (gc_time, parse_time, gc_time): New declarations.
7706
7707         * toplev.c: Make *_time variable long to reduce chance of overflow.
7708         (TIMEVAR): Likewise for `otime'.
7709         (print_time): Arg is now long; compute percentage in FP and round.
7710         * toplev.h (print_time): Arg is long.
7711
7712         * tree.c: Minor whitespace changes.
7713
7714         * configure.in (alpha*-*-*): Add config/alpha/t-alpha.
7715         * configure: Rebuilt.
7716         * libgcc2.c (__fixunstfDI): Renamed from __fixunstfdi.
7717         (__fixunsxfDI): Renamed from __fixunsxfdi.
7718         (__fixunsdfDI): Renamed from __fixunsdfdi.
7719         (__fixunssfDI): Renamed from __fixunssfdi.
7720         (__floatdisf): Use proper type in REP_BIT macro.
7721         (__fixunsxfSI): Renamed from __fixunsxfsi.
7722         (__fixunsdfSI): Renamed from __fixunsdfsi.
7723         (__fixunssfSI): Renamed from __fixunssfsi.
7724         * libgcc2.h: Add cases for MIN_UNITS_PER_WORD > 4.
7725         Change location of macros and upper-case some names as above.
7726         * longlong.h ([alpha]): Use PARAMS, not __P in decl of __udiv__qrnnd.
7727         * config/alpha/t-alpha, config/alpha/qrnnd.asm: New files.
7728
7729         * varasm.c (assemble_variable): Add cast to remove warning.
7730         (immed_real_const_1): Only use CONST[01]_RTX if not in nested function.
7731
7732         * flow.c (count_basic_blocks, find_basic_blocks_1): Remove last change.
7733         * optabs.c (emit_libcall_block): If have REG_EH_REGION, update
7734         region number to -1.
7735
7736 2000-04-15  Richard Earnshaw (rearnsah@arm.com)
7737
7738         * emit-rtl.c (unshare_all_rtl_again): Unmark everything, then
7739         call unshare_all_rtl.
7740
7741         * arm.md (movhi): REGNO_POINTER_ALIGN is now bits.
7742
7743 Fri Apr 14 16:58:45 2000  Jim Wilson  <wilson@cygnus.com>
7744
7745         * config/ia64/lib1funcs.asm (__divdi3, __moddi3, __udivdi3, __umoddi3):
7746         Use .s1 not .s0 for all FP instructions.
7747
7748 2000-04-14  Zack Weinberg  <zack@wolery.cumb.org>
7749
7750         * cpplex.c (cpp_output_tokens, cpp_scan_buffer_nooutput): New public
7751         interfaces.
7752         (safe_fwrite, output_line_command): New static functions.
7753         (cpp_expand_to_buffer): Now private to cpplib.
7754         (cpp_scan_buffer): Take a printer.
7755
7756         * cpphash.h: Update prototypes.
7757         * cpplib.h: Update prototypes.
7758         (cpp_printer): New.
7759         (cpp_buffer): Remove last_nominal_fname.
7760         (cpp_reader): Remove lineno.
7761
7762         * cppmain.c: Use a cpp_printer.
7763         * fix-header.c: No need to inhibit line commands.  Call
7764         cpp_start_read with no printer.
7765
7766         * cpperror.c (cpp_notice_from_errno): Provide default name.
7767         * cppfiles.c (make_IHASH, _cpp_fake_ihash): New functions.
7768         (find_include_file, cpp_read_file): Use make_IHASH.
7769         (file_cleanup): Set control_macro and clear
7770         input_stack_listing_current here.
7771         (_cpp_execute_include): Don't output entering-file marker.
7772         * cpphash.c (special_symbol): Look for the line number in the
7773         buffer, not the reader.
7774         (_cpp_macroexpand): No need to disable line commands.
7775         (_cpp_dump_definition): No need to generate line commands.
7776         (dump_hash_helper): Remove excess newline from output.
7777         * cppinit.c (dump_special_to_buffer): No need to generate line
7778         commands.
7779         (cpp_printer_init): New.
7780         (cpp_start_read): Take a printer, and start it up if it's not
7781         NULL.  No need to generate line commands.
7782         (cpp_finish): Expect no buffers stacked at all.  Take a
7783         printer argument, and flush the output buffer if it's not
7784         NULL.
7785         * cpplex.c (_cpp_lex_token): Return EOF if there's no buffer.
7786         Don't put two hashes at the beginning of an assertion.
7787         (cpp_get_token): Don't increment pfile->lineno or emit line
7788         commands here.  Return EOF if there's no buffer when we get
7789         EOF.
7790         * cpplib.c (do_define, skip_if_group):
7791         No need to disable line commands.
7792         (_cpp_output_line_command): Delete function.
7793         (do_line): Don't emit line commands here, but set things up so
7794         they will be emitted if necessary.  Use _cpp_fake_ihash to
7795         make unique nominal_fnames if necessary.
7796         (do_elif, do_else, _cpp_handle_eof): Call cpp_error_with_line
7797         with 0 for column, not -1.
7798         (_cpp_handle_eof): Don't set the control macro here.  Don't
7799         clear input_stack_listing_current here.  Don't emit line
7800         commands.
7801
7802 2000-04-14  Geoff Keating  <geoffk@cygnus.com>
7803
7804         * config/rs6000/sysv4.h (LINK_START_SOLARIS_SPEC): Define to empty
7805         always, use the default SVR4 start address.
7806
7807         * config/rs6000/linux.h (LINK_SPEC): Don't define.
7808         (LINK_SHLIB_SPEC): Define.
7809         (LINK_START_DEFAULT_SPEC): Define.
7810         (LINK_OS_DEFAULT_SPEC): Define.
7811
7812         * config/rs6000/sysv4.h (ENDFILE_SPEC): Use the %(endfile_*) macros.
7813
7814         * config/rs6000/eabi.asm (__eabi): Call __init rather than
7815         __do_global_ctors to handle constructors.
7816         * config/rs6000/sysv4.h (STARTFILE_ADS_SPEC): Use crtbegin.
7817         (STARTFILE_YELLOWKNIFE_SPEC): Likewise.
7818         (STARTFILE_MVME_SPEC): Likewise.
7819         (STARTFILE_SIM_SPEC): Likewise.
7820         (ENDFILE_ADS_SPEC): Use crtend.
7821         (ENDFILE_YELLOWKNIFE_SPEC): Likewise.
7822         (ENDFILE_MVME_SPEC): Likewise.
7823         (ENDFILE_SIM_SPEC): Likewise.
7824         (STARTFILE_SOLARIS_SPEC): Use crtbegin/crtbeginS.
7825         (ENDFILE_SOLARIS_SPEC): Use crtend/crtendS.
7826         (STARTFILE_LINUX_SPEC): Use crtbeginS for shared objects.
7827         (ENDFILE_LINUX_SPEC): Use crtendS for shared objects.
7828         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Don't build eabi-ctors.o.
7829         (EXTRA_MULTILIB_PARTS): Build crtbeginS/crtendS.
7830         (CRTSTUFF_T_CFLAGS_S): Define.
7831         * config/rs6000/eabi-ctors.c: Delete.
7832
7833         * config/rs6000/eabi-ci.asm (__init): Align stack to 16-byte
7834         boundary.
7835         (__fini): Likewise.
7836         * config/rs6000/eabi-cn.asm (__init): Allow for 16-byte stack frame.
7837         boundary.
7838         (__fini): Likewise.
7839
7840 Fri Apr 14 16:09:02 2000  Jim Wilson  <wilson@cygnus.com>
7841
7842         * combine.c (force_to_mode, case LSHIFTRT): Check that shift shift
7843         plus mask size is smaller or equal to the mode size.
7844
7845 Fri Apr 14 18:07:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7846
7847         * print-rtl.c (print_rtx, case NOTE): Don't blow up if NOTE_BASIC_BLOCK
7848         not yet set.
7849
7850         * expr.c (reload.h): Now included.
7851         (emit_block_move): Set volatile_ok when checking for movstr.
7852         (emit_move_1): Check for replacements in addresses in multi-word case.
7853         * Makefile.in (expr.o): Now includes reload.h.
7854
7855         * flow.c (count_basic_blocks): Remove unused var PREV_CALL.
7856         Never have a LIBCALL end a basic block.
7857         (find_basic_blocks_1): Likewise.
7858         Reorganize CALL_INSN cases.
7859
7860         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Revert last change.
7861
7862 Fri Apr 14 10:54:22 2000  Jim Wilson  <wilson@cygnus.com>
7863
7864         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Drop obsolete
7865         completers from mov.ret instruction.
7866
7867 2000-04-14  Richard Henderson  <rth@cygnus.com>
7868
7869         * fold-const.c (extract_muldiv): Don't distribute and widen
7870         multiply across plus for non-sizetype unsigned types.
7871
7872 2000-04-14  Richard Henderson  <rth@cygnus.com>
7873
7874         * flow.c (find_auto_inc): Don't autoinc eliminable registers.
7875         If the original source is dead in the incr insn, it's dead now.
7876
7877 Fri Apr 14 07:40:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7878
7879         * stor-layout.c (layout_decl): Properly compare KNOWN_ALIGN to
7880         see if DECL_BIT_FIELD needs to still be set.
7881
7882         * tree.h (struct tree_type): Make PRECISION 9 bits and MODE 7.
7883
7884         * dbxout.c (dbxout_type, case INTEGER_TYPE): Don't call
7885         print_int_cst_octal with something that's not an INTEGER_CST.
7886
7887         * config/alpha/alpha.c (alpha_emit_floatuns): Ensure we pass a REG
7888         and not a SUBREG to a FLOAT rtl.
7889
7890 Thu Apr 13 19:39:56 2000  Clinton Popetz  <cpopetz@cygnus.com>
7891
7892         * emit-rtl.c (try_split): Avoid infinite loop if the split
7893         results in a sequence that contains the original insn.
7894
7895 2000-04-13  Andreas Jaeger  <aj@suse.de>
7896
7897         * config/mips/mips.c (expand_block_move): Pass alignment
7898         argument to move_by_pieces in bits, not bytes.
7899
7900         * config/mips/linux.h (CPP_PREDEFINES): Also define __PIC__ and
7901         __pic__ for little endian.
7902
7903 2000-04-13  Andreas Jaeger  <aj@suse.de>
7904
7905         * config/i386/i386-protos.h: Add prototype for
7906         uno_comparison_operator.
7907
7908 Thu Apr 13 15:55:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7909
7910         * alias.c (nonlocal_reference_p): Take care of CALL_INSNS's fusage.
7911         * calls.c (ECF_PURE): New flag.
7912         (emit_call_1): Handle ECF_PURE calls.
7913         (initialize_argument_information): Unset ECF_PURE flag too.
7914         (precompute_arguments): Precompute for ECF_PURE too.
7915         (expand_call): Handle ECF_PURE calls too.
7916         (emit_library_call_value_1): Rename no_queue argument to fn_type,
7917         accept value of 2 as pure function.
7918         (emit_library_call_value, emit_library_call): Rename no_queue argument
7919         to fn_type.
7920         * optabs.c (prepare_cmp_insn): Pass fn_type 2 to memcmp call.
7921
7922         * tree.h (DECL_IS_PURE): New macro.
7923         (struct tree_decl): Add pure_flag.
7924         * c-common.c (enum attrs): Add attribute "pure".
7925         (init_attributes): Initialize attribute "pure"
7926         (decl_attributes): Handle attribute "pure".
7927         * extend.texi (Attribute "pure"): Document.
7928         * calls.c (expand_call): Add (mem:BLK (scratch)) to "equal from"
7929         in pure function.
7930         (flags_from_decl_or_type): Support attribute "pure".
7931
7932 2000-04-13  Jason Merrill  <jason@casey.cygnus.com>
7933
7934         * cpplex.c (_cpp_lex_token): Handle digraphs.  Don't null-terminate
7935         the token except for numbers and identifiers.
7936
7937 Thu Apr 13 00:09:16 EDT 2000  John Wehle  (john@feith.com)
7938
7939         * i386.c (ix86_expand_binary_operator,
7940         ix86_expand_unary_operator): Check no_new_pseudos
7941         instead of reload_in_progress and reload_completed.
7942         (ix86_split_ashldi, ix86_split_ashrdi,
7943         ix86_split_lshrdi): Check no_new_pseudos instead
7944         of reload_completed.
7945
7946 2000-04-12  Jeffrey A Law  (law@cygnus.com)
7947
7948         * function.c (purge_addressof): Unshare any shared rtl created by
7949         purge_addressof and its children.
7950
7951 2000-04-12  Mark Mitchell  <mark@codesourcery.com>
7952
7953         * function.c (aggregate_value_p): VOID_TYPE nodes are never
7954         aggregates.
7955
7956 2000-04-05  Andreas Jaeger  <aj@suse.de>
7957
7958         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Use proper flags if
7959         not compiling PIC code, add flags for mabi=64.
7960         (SUBTARGET_CPP_SIZE_SPEC): New.
7961         (SUBTARGET_CPP_SPEC): New.
7962         (CPP_PREDEFINES): Define __PIC__ and __pic__.  PIC code is default
7963         for MIPS/Linux and lots of code needs these defines.
7964
7965 Wed Apr 12 22:44:11 2000  Hans-Peter Nilsson  <hp@axis.com>
7966
7967         * reorg.c (fill_slots_from_thread): Check side_effects_p when
7968         trying the "opposite arithmetic" approach.
7969
7970 Wed Apr 12 20:51:20 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7971
7972         * sh.h (STRUCT_VALUE): Just 0 for TARGET_HITACHI.
7973         (struct sh_args): Add new field force_mem.
7974         (INIT_CUMULATIVE_ARGS): Initialize it.
7975         (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Act on it.
7976
7977 Wed Apr 12 17:20:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7978
7979         * calls.c (expand_call): Do not reverse args in "equal from" field.
7980         (emit_library_call_value_1): Emit_libcall_block for const and pure
7981         function.
7982
7983 Wed Apr 12 16:00:25 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7984
7985         * reload1.c (reload_combine): Don't enable optimization for fixed
7986         registers when encountering a BARRIER.
7987
7988 Wed Apr 12 15:54:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7989
7990         * builtins.c (expand_builtin_memcmp): Do expansion even with
7991         !HAVE_cmpstrsi, do libcall when gen_strcmpsi fails.
7992
7993         * calls.c (expand_call): Do NO_DEFER_POP unconditionally once
7994         stack is propertly aligned; add sanity checking for aligned
7995         stack pointer.
7996         (expand_library_call_value_1): Add sanity checking for aligned
7997         stack pointer.
7998
7999 Wed Apr 12 07:51:54 2000  Catherine Moore  <clm@cygnus.com>
8000
8001         * calls.c (emit_library_call_value_1): Change 3rd arg to
8002         locate_and_pad_parm to disregard the setting of partial.
8003
8004 Wed Apr 12 08:47:38 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8005
8006         * tree.c (unsave_expr_now_r, unsafe_for_reeval): Properly do TREE_LIST.
8007
8008         * print-rtl.c (print_rtx): For CALL_PLACEHOLDER, output the
8009         CALL_INSN from the normal case.
8010
8011 Fri Apr  7 12:23:04 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8012
8013         * i386.c (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
8014         New global variables.
8015         (ix86_emit_epilogue_adjustment): Do not attempt to use pop for the
8016         adjustment.
8017         * i386.h (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
8018         Declare,
8019         (TARGET_SUB_ESP_4, TARGET_SUB_ESP_8, TARGET_ADD_ESP_4,
8020          TARGET_ADD_ESP_8): New macros.
8021         * i386.md: Add peep2s to convert esp adjustments to push and pop
8022         instructions.
8023         (pushsi_prologue, popsi_epilogue): New patterns.
8024
8025 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
8026
8027         * real.c (toe64): Remove stale #endif from the last change.
8028
8029 2000-04-12  Stephen L Moshier  <moshier@mediaone.net>
8030
8031         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment.
8032         * real.c (toe64): Revert previous change.
8033
8034 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
8035
8036         * objc/objc-act.c: Include ggc.h.
8037         (objc_tree_index, objc_global_trees): Convert most of the
8038         static tree variables into a static array with previous names
8039         as defines.
8040         (objc_ellipsis_node): New variable.
8041         (lang_init): Call objc_act_parse_init and c_parse_init.
8042         Create objc_ellipsis_node.
8043         (build_selector_translation_table): Use objc_ellipsis_node instead
8044         of (tree)1.
8045         (hack_method_prototype): Likewise.
8046         (get_arg_type_list): Likewise.
8047         (start_method_def): Likewise.
8048         (continue_method_def): Likewise.
8049         (gen_method_decl): Likewise.
8050         (ggc_mark_imp_list): New function.
8051         (ggc_mark_hash_table): New function.
8052         (objc_act_parse_init): New function.
8053         * objc/objc-act.h (objc_ellipsis_node): Add extern variable.
8054         * c-parse.in (c_parse_init): For objc add roots of objc specific
8055         local tree variables.
8056         * objc/objc-parse.y: Rebuilt.
8057         * objc/objc-parse.c: Rebuilt.
8058         (opt_parm_list): Use objc_ellipsis_node instead of (tree)1.
8059
8060 Wed Apr 12 01:00:44 EDT 2000  John Wehle  (john@feith.com)
8061
8062         * cse.c (delete_trivially_dead_insns): Also delete insns
8063         that copy a register to itself where the destination is
8064         a strict_low_part.
8065
8066 2000-04-11  Richard Henderson  <rth@cygnus.com>
8067
8068         * flow.c (struct propagate_block_info): Add new_dead, new_live.
8069         (propagate_block): Initialize them.  Use them in parallel instead
8070         of one tmp variable, ie revert much of the 0408 and 0407 functional
8071         changes, but keep the structural changes.
8072         (mark_set_regs): Take new_dead from propagate_block_info instead.
8073         (mark_set_1, mark_set_reg): Likewise.
8074         (mark_used_regs): Likewise with new_live.
8075         (mark_used_reg): Likewise.  Revert 0408 change.
8076
8077 2000-04-11  Nick Clifton  <nickc@cygnus.com>
8078
8079         * config/arm/arm.h: (INCOMING_RETURN_ADDR_RTX): Remove Dwarf2
8080         restriction.
8081         (DWARF_FRAME_RETURN_COLUMN): Remove Dwarf2 restriction.
8082
8083 2000-04-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
8084
8085         * config/elfos.h (SELECT_SECTION): Decide whether to use a data or
8086         const section to output a CONSTRUCTOR based on the same conditions
8087         used for VAR_DECLs.
8088
8089 Tue Apr 11 09:55:59 2000  Jeffrey A Law  (law@cygnus.com)
8090
8091         * pa/long-double.h (FIX_TRUNCTFSI2_LIBCALL): Tweak for PA64.
8092         * pa/pa-protos.h (output_call): Add additional argument indicating
8093         if the call is a sibling/tail call.
8094         (compute_zdepdi_operands, output_64bit_and): Prototype new functions.
8095         (compute_64bit_ior, cmpib_comparison_operator): Likewise.
8096         (function_arg, function_arg_partial_nregs): Likewise
8097         * pa/pa.c (override_options): Always set flag_pic for TARGET_64BIT.
8098         (emit_move_sequence): Zero extend certain constants as needed
8099         for TARGET_64BIT.
8100         (compute_zdepdi_operands, output_64bit_and): New functions.
8101         (output_64bit_ior, function_arg): Likewise.
8102         (cmpib_comparison_operator, function_arg_partial_nregs): Likewise.
8103         (compute_frame_size, hppa_expand_prologue): Handle TARGET_64BIT.
8104         (hppa_expand_epilogue, return_addr_rtx, hppa_va_arg): Likewise.
8105         (hppa_builtin_saveregs, output_cbranch, output_bb): Likewise.
8106         (output_bvb): Likewise.
8107         (output_millicode_call): Return pointer is in %r2 for TARGET_64BIT.
8108         (output_call): New argument 'sibcall'.  Generate sibcall sequences
8109         as needed.
8110         (print_operand); Handle cases 'Q', 'p', and 'z' for TARGET_64BIT.  For
8111         (ouput_arg_descriptor): Do not emit argument descriptors for
8112         TARGET_64BIT.
8113         * pa/pa.h (TARGET_PA_11, TARGET_PA_20): Only define if not already
8114         defined.
8115         (TARGET_64BIT, PROMOTE_FUNCTION_RETURN): Define.
8116         (FUNCTION_OK_FOR_SIBALL): Define.
8117         (CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC): Define.
8118         (CPP_CPU_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS, EXTRA_SPECS): Likewise.
8119         (CPP_SPEC): Use new spec infrastructure.
8120         (BITS_PER_WORD, UNITS_PER_WORD): Handle TARGET_64BIT.
8121         (STACK_BOUNDARY, FUNCTION_BOUNDARY, PIC_OFFSET_TABLE_REGNUM): Likewise.
8122         (RETURN_IN_MEMORY, EXTRA_CONSTRAINT, FIRST_PARM_OFFSET): Likewise.
8123         (REG_PARM_STACK_SPACE, STACK_POINTER_OFFSET): Likewise.
8124         (STACK_DYNAMIC_OFFSET, FUNCTION_VALUE): Likewise.
8125         (FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES): Likewise.
8126         (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise.
8127         (INITIALIZE_TRAMPOLINE, LEGITIMATE_CONSTANT_P): Likewise.
8128         (CONST_OK_FOR_LETTER_P, MOVE_RATIO): Likewise.
8129         (FUNCTION_ARG); Call out to C code.
8130         (FUNCTION_ARG_PARTIAL_NREGS): Likewise.
8131         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Define.
8132         (MIN_UNITS_PER_WORD): Likewise.
8133         * pa/pa.md (cmpdi): New expander.
8134         (scc patterns, movstrsi): Not available for TARGET_64BIT.
8135         (64bit conditional arithmetic): New patterns.
8136         (absdi2, smindi3, umindi3, smaxdi3, umaxdi3): New patterns.
8137         (movsicc): Not available if modes on all the operands to not match.
8138         (movdicc): New expander and associated patterns.
8139         (64bit branches): New patterns.
8140         (pre_load, post_store): Generate appropriate code for TARGET_64BIT.
8141         (pre_ldd, post_std): New patterns.
8142         (64bit addil, load low part): New patterns.
8143         (special movsf constant): Not available for TARGET_64BIT.
8144         (movsf, movdf expanders): Force constants into memory.
8145         (32bit movdf/movdi patterns): Disable for TARGET_64BIT.
8146         (64bit movdf/movdi patterns): New patterns.
8147         (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New patterns
8148         for TARGET_64BIT.
8149         (extendqidi2, extendhidi2, extendsidi2): Similarly.
8150         (adddi3 expander): Allow "arith_operand" for second input.
8151         (32bit adddi3, subdi3, uaddcm): Disable for TARGET_64BIT.
8152         (64bit adddi3, subsi3, uaddcm): New patterns for TARGET_64BIT.
8153         (mulsi3 expander): Revamp slightly so it supports TARGET_64BIT too.
8154         (muldi3): New expander for TARGET_64BIT.
8155         (divsi3, udivsi3, modsi3, umodsi3): Fourth operand must be (reg:SI 2)
8156         for TARGET_64BIT.
8157         (32bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm): Disable
8158         patterns for TARGET_64BIT.
8159         (64bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm, shadd): New
8160         patterns for TARGET_64BIT.
8161         (64bit bit insertion/extractions): New patterns for TARGET_64BIT.
8162         (64bit shifts/rotates): New patterns/expanders for TARGET_64BIT.
8163         (sibcall_epilogue): New expander.
8164         (casesi): Tweak for TARGET_64BIT.
8165         (call expanders): Set & use the outgoing argument pointer.  Use the
8166         64bit call patterns as needed. Add additional arg to output_call.
8167         (call_internal_reg_64bit, call_value_internal_reg_64bit): New pattern.
8168         (sibcall, sibcall_internal_symref): New expanders.
8169         (sibcall_value, sibcall_value_internal_symref
8170         (interspace_jump): Turn into an expander + matching patterns.
8171         (canonicalize_funcptr_for_compare): Not needed for TARGET_64BIT.
8172         * pa/pa64-regs.h: Eliminate trigraph sequences.
8173         * pa/pa64-start.h (TARGET_PA_20): Fix typo.
8174
8175 2000-04-11  Zack Weinberg  <zack@wolery.cumb.org>
8176
8177         * cppexp.c, cpphash.c, cpphash.h, cpplex.c, cpplib.c,
8178         cpplib.h, cppmain.c, fix-header.c, scan-decls.c: Replace
8179         cpp_token with cpp_ttype everywhere.
8180         * cpperror.c, cpphash.c, cpplex.c, cpplib.c, scan-decls.c:
8181         Replace cpp_buf_line_and_col with CPP_BUF_LINE and/or
8182         CPP_BUF_COL.  Line and column numbers are unsigned int, not
8183         long.
8184         * cpplex.c (cpp_buf_line_and_col): Delete.
8185         * cpplib.h (struct cpp_buffer, struct cpp_reader): Change
8186         'long lineno' to 'unsigned int lineno'.
8187         (CPP_BUF_LINE, CPP_BUF_COL): New macros.
8188
8189 2000-04-11  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
8190
8191         * extend.texi: ISO C99 is not a draft anymore.
8192         * invoke.texi: ISO C++ is not a draft anymore.
8193         * cpp.texi: __cplusplus is required by the ISO standard.
8194
8195         * extend.texi (-fthis-is-variable): Undocument.
8196         * flags.h (warn_template_debugging): Remove declaration.
8197         * gcc.1 (-fall-virtual, -fenum-int-equiv, -fthis-is-variable,
8198         -Wenum-clash, -Wtemplate-debugging): Undocument.
8199
8200 2000-04-10  Nick Clifton  <nickc@cygnus.com>
8201
8202         * config/arm/arm.h (HOST_INT): New macro: Declare a HOST_WIDE_INT
8203         integer.
8204         (HOST_UINT): New macro: Declare an unsigned HOST_WIDE_INT
8205         integer.
8206         (ARM_SIGN_EXTEND): Use HOST_UINT.
8207         (STRIP_NAME_ENCODING): Prevent warnings about redefinitions.
8208         (ASM_OUTPUT_LABELREF): Prevent warnings about redefinitions.
8209         (INCOMING_RETURN_ADDR_RTX): Only define if Dwarf2 is supported.
8210         (DWARF_FRAME_RETURN_COLUMN): Only define if Dwarf2 is supported.
8211
8212         * config/arm/arm.c: (const_ok_for_arm): Use HOST_UINT.
8213         (arm_gen_constant): Use HOST_UINT.
8214         (arm_canonicalize_constant): Use HOST_UINT.
8215         (arm_reload_in_hi): Use HOST_UINT.
8216         (arm_reload_out_hi): Use HOST_UINT.
8217         (output_multi_immediate): Use HOST_UINT.
8218         (int_log2): Use HOST_UINT.
8219         (arm_poke_function_name): Use HOST_UINT.
8220         (arm_output_epilogue): Use arm_volatile_func().
8221         (output_thumb_prologue): Use arm_strip_name_encoding().
8222
8223 Mon Apr 10 15:40:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8224
8225         * sbitmap.c (sbitmap_a_subset_b_p): Rework loop to avoid potential
8226         of sequence point problems.
8227
8228 2000-04-10  Nathan Sidwell  <nathan@codesourcery.com>
8229
8230         * rtl.def (ASHIFT, ROTATE, ASHIFTRT, LSHIFTRT, ROTATERT):
8231         Recomment.
8232         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Recomment.
8233
8234 Mon Apr 10 07:21:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8235
8236         * sbitmap.h: Whitespace changes and use upper-case macro args.
8237         (struct simple_bitmap_def): All sizes now unsigned.
8238         (EXECUTE_IF_SET_IN_SBITMAP): Internal vars now _X instead of X_.
8239         * sbitmap.c (sbitmap_alloc): N_ELMS now unsigned; also local vars.
8240         (sbitmap_vector_alloc): Parms and local vars now unsigned.
8241         (sbitmap_zero): Cast bzero arg to PTR.
8242         (sbitmap_vector_zero, sbitmap_vector_one): Parm and Local var unsigned.
8243         (sbitmap_union_of_diffs): Change loop index to unsigned and rework
8244         loop to make structure clearer.
8245         (sbitmap_not, sbitmap_difference, sbitmap_a_and_b): Likewise.
8246         (sbitmap_a_or_b, sbitmap_a_subset_b_p, sbitmap_a_or_b_and_c): Likewise.
8247         (sbitmap_a_and_b_or_c): Likewise.
8248         (sbitmap_intersection_of_succs): Minor cleanups.
8249         (sbitmap_intersection_of_preds, sbitmap_union_of_succs): Likewise.
8250         (sbitmap_union_of_preds): Likewise.
8251         (sbitmap_first_set_bit, dump_sbitmap): Local variables now unsigned.
8252         (debug_sbitmap): New function.
8253
8254         * c-convert.c (convert): Handle REFERENCE_TYPE like POINTER_TYPE.
8255         * c-typeck.c (convert_for_assignment): Likewise.
8256
8257         * expmed.c (init_expmed): Don't free objects we make.
8258         * emit-rtl.c (gen_rtx_CONST_INT, init_emit_once): Minor cleanups.
8259
8260         * expr.c (get_inner_reference): Correct some WITH_RECORD_EXPR cases.
8261         (expand_expr, case CONVERT_EXPR): Pass proper alignment to store_field.
8262
8263         * gcse.c (expr_hash_table_size): Now unsigned.
8264         (compute_ae_gen): Local variable `i' now unsigned.
8265         (compute_ae_kill, pre_insert_copies, pre_delete, pre_gcse): Likewise.
8266         (compute_transout, hoist_code): Likewise.
8267         (compute_local_properties): Likewise, also hash_table_size.
8268         (alloc_expr_hash_table): N_INSNS now unsigned.
8269         (delete_null_pointer_checks): Mark arg F as unused.
8270
8271         * regrename.c: Minor cleanups, including chang some variables
8272         to unsigned int.
8273
8274 2000-04-10  Neil Booth  <NeilB@earthling.net>
8275
8276         * cpplex.c (skip_block_comment): Use pointer arithmetic rather
8277         than GETC ().
8278         * cpphash.h: (CPP_BUMP_BUFFER_LINE_CUR, CPP_BUMP_LINE_CUR): New.
8279
8280 2000-04-10  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
8281
8282         * invoke.texi (-fno-gnu-keywords): Remove classof, headof,
8283         __classof__, and __headof__ from the list of gnu keywords.
8284         (-ansi): Remove -foperator-names from list of implied options.
8285         Do not call it ANSI C++.
8286         (-foperator-names): Document as -fno-operator-names.
8287
8288 2000-04-09  Zack Weinberg  <zack@wolery.cumb.org>
8289
8290         * cpphash.c (timestamp): Delete.
8291         (del_HASHNODE): If type is T_MCONST, free value.cpval.
8292         (special_symbol): Remove unnecessary braces.  Remove
8293         T_VERSION.  Treat T_STDC like T_CONST unless
8294         STDC_0_IN_SYSTEM_HEADERS.  Render both __DATE__ and __TIME__
8295         when one is encountered, then convert them into T_MCONST
8296         nodes.
8297         * cppinit.c (builtin_array): version_string is T_MCONST.
8298         __STDC__ has a "1" in its cpval.  Don't have a terminator
8299         entry.  Clean up which entries are dumped.
8300         (initialize_builtins): Only __STDC__ gets the special
8301         -traditional treatment.  Count the length of builtin_array.
8302         Render version_string here.
8303         * cpphash.h: Remove T_VERSION.  Add T_MCONST.
8304         * cpplib.h (struct cpp_reader): Remove timebuf.
8305
8306 2000-04-09  Richard Henderson  <rth@cygnus.com>
8307
8308         * genrecog.c (pred): Update comparison_operator for the unordered
8309         operators.
8310
8311         * config/i386/i386.c (no_comparison_operator): Disallow unordered
8312         operators.
8313         (fcmov_comparison_operator): Allow UNORDERED/ORDERED.
8314         (uno_comparison_operator): New.
8315         (put_condition_code): Handle UNORDERED/ORDERED.
8316         (unsigned_comparison): Likewise.
8317         (ix86_fp_compare_mode): Broken out of ix86_expand_fp_compare.
8318         (ix86_use_fcomi_compare, ix86_prepare_fp_compare_args): Likewise.
8319         (ix86_expand_fp_compare): Use them.  Take scratch as argument,
8320         update all callers.  Handle all 8 unordered operators.
8321         (ix86_expand_setcc): Lose the unordered argument, update all callers.
8322         (ix86_expand_branch): Likewise.  Don't fully expand fp branches.
8323         * config/i386/i386.h (PREDICATE_CODES): Update.
8324         * config/i386/i386-protos.h (ix86_expand_fp_compare): Declare.
8325         (ix86_expand_branch, ix86_expand_setcc): Update.
8326         * config/i386/i386.md (sunordered, sordered): New.
8327         (suneq, sunge, sungt, sunle, sunlt, sltgt): New.
8328         (bunordered, bordered): New.
8329         (buneq, bunge, bungt, bunle, bunlt, bltgt): New.
8330         (*fp_jcc_1, *fp_jcc_2, *fp_jcc_3, *fp_jcc_4): New.
8331         (*fp_jcc_5, *fp_jcc_6, and splitters): New.
8332
8333 2000-04-09  Philip Blundell  <philb@gnu.org>
8334
8335         * config/arm/arm.h (ARM_NAME_ENCODING_LENGTHS): Strip `*' too.
8336
8337 Sun Apr  9 15:16:14 EDT 2000  John Wehle  (john@feith.com)
8338
8339         * i386.md (fix_truncsfhi2, fix_truncdfhi2,
8340         fix_truncxfhi2): New patterns.
8341         * i386.c (output_fix_trunc): Handle converting to HImode.
8342
8343 2000-04-08  Alex Samuel  <samuel@codesourcery.com>
8344
8345         * ssa.c (convert_to_ssa): Eliminate dead code when calling
8346         life_analysis.
8347         (convert_from_ssa): Call compute_bb_for_insn before life_analysis.
8348         (for_each_successor_phi): Change parameter to basic_block.
8349         (coalesce_regs_in_successor_phi_nodes): Likewise.
8350         (coalesce_regs_in_copies): Likewise.
8351         (compute_coalesced_reg_partition): Use basic_block instead of index.
8352         * rtl.h (convert_to_ssa): Delete.
8353         (convert_from_ssa): Likewise.
8354         (successor_phi_fn): Likewise.
8355         (for_each_successor_phi): Likewise.
8356         (in_ssa_form): Likewise.
8357         * basic-block.h (convert_to_ssa): Moved from rtl.h.
8358         (convert_from_ssa): Likewise.
8359         (successor_phi_fn): Likewise.
8360         (in_ssa_form): Likewise.
8361         (for_each_successor_phi): Likewise.  Change parameter to basic_block.
8362         * flow.c (calculate_global_regs_live): Pass a basic_block to
8363         for_each_successor_phi.
8364
8365 2000-04-08  Richard Henderson  <rth@cygnus.com>
8366
8367         * flow.c (mark_used_reg): Use reg_set_p to determine if a register
8368         was modified in the current insn.
8369
8370 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
8371
8372         * arm/thumb.md: Delete.
8373         * arm/thumb-protos.h: Delete.
8374
8375 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
8376
8377         Merge changes from merged-arm-thumb-backend-branch onto trunk.
8378
8379         2000-04-08  Richard Earnshaw (rearnsha@arm.com)
8380
8381         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000408
8382         into branch.
8383
8384         * arm.md (nop): Use the standard RTL expression.  Don't code as a
8385         define_expand.
8386         (*arm_nop, *thumb_nop): Delete.
8387
8388         * arm.c (const_ok_for_arm): Don't use ANSI extensions for defining
8389         constants.  Use casts instead.
8390         (arm_gen_constant, arm_rtx_costs, arm_reload_in_hi, arm_reload_out_hi,
8391         output_multi_immediate, arm_poke_function_name): Likewise.
8392         * arm.h (ARM_LEGITIIMIZE_RELOAD_ADDRESS, ARM_SIGN_EXTEND,
8393         MASK_RETURN_ADDDR): Likewise.
8394
8395         2000-03-31  Richard Earnshaw (rearnsha@arm.com)
8396
8397         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000325
8398         into branch.
8399
8400         * arm.md (eh_epilogue): New function.
8401         * arm.h (struct machine_function): Move to here ...
8402         * arm.c: ... from here.
8403         (arm_output_epilogue): Support epilogues for __builtin_eh_return.
8404         (thumb_exit): Extra parameter eh_ofs.  All callers changed.
8405         Handle epilogues for __builtin_eh_return.  Make bit-fields unsigned.
8406
8407         2000-03-30  Nick Clifton  <nickc@cygnus.com>
8408
8409         * config/arm/semi.h (ASM_SPEC): Restore definition.
8410         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
8411
8412         * config/arm/elf.h (ASM_SPEC): Restore definition.
8413         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
8414
8415         * config/arm/arm.h (ASM_SPEC): Remove definition.
8416         (SUBTARGET_EXTRA_ASM_SPEC): Remove definition.
8417
8418         2000-03-26  Bernd Schmidt <bernds@cygnus.co.uk>
8419
8420         * config/arm/arm.c: Disable -fschedule-insns for Thumb.
8421
8422         2000-03-24  Nick Clifton  <nickc@cygnus.com>
8423
8424         Various formating tidyups, elimination of compile time
8425         warnings and synchronisation with internal sources:
8426
8427         * config/arm/arm-protos.h (assemble_align): Add prototype.
8428         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
8429         (gen_comapre_reg): Rename to arm_gen_compare_reg.
8430         (arm_return_addr_rtx): Rename to arm_return_addr.
8431
8432         * config/arm/arm.c: Include except.h.
8433         Define shorter typenames for strict minipool_node and struct
8434         minipool_fix.
8435         (arm_return_in_memory): For WinCE return all structures <= 32 bits
8436         in memory.
8437         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
8438         (gen_comapre_reg): Rename to arm_gen_compare_reg.
8439
8440         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
8441         already defined.
8442         (ASM_SPEC): Define if not already defined.
8443         (ASM_OUTPUT_DEF_FROM_DECLS): Define.
8444
8445         * config/arm/arm.md: Rename references to gen_rotated_half_load to
8446         arm_gen_rotated_half_load, and references to gen_comapre_reg to
8447         arm_gen_compare_reg.
8448         (indirect_jump):  Only accept register operands.
8449         (load_indirect_jump): Keep this pattern since combine can generate
8450         it.
8451
8452         * config/arm/coff.h: Include aout.h.
8453         (MULTILIB_DEFAULTS): Only define if not already defined.
8454
8455         * config/arm/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Move definition
8456         into arm.h (so that COFF ports can support thumb based aliases).
8457         (ASM_SPEC): Move definition into arm.h
8458
8459         * config/arm/linux-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Remove
8460         redundant apcs spec.
8461         (ASM_SPEC): Move definition to arm.h
8462
8463         * config/arm/semi.h (ASM_SPEC): Move definition to arm.h
8464
8465         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Add support
8466         for entries in the .bss section
8467
8468         2000-03-23  Nick Clifton  <nickc@cygnus.com>
8469
8470         * config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Pass 0
8471         to thumb_far_jump_used_p.
8472
8473         * config/arm/arm-protos.h (thumb_far_jump_used_p): Take a
8474         single integer parameter.
8475
8476         * config/arm/arm.c (struct machine_function): Add two new
8477         fields, 'far_jump_used' and 'arg_pointer_live'.
8478         (thumb_far_jump_used_p): Once the decision has been made that
8479         far jumps might be used, always return true.
8480         If being called from the initial elimination offset macro then
8481         do not bother to perform the test if the arg pointer is not
8482         being used.
8483         (thumb_unexpand_epilogue): Pass 1 to thumb_far_jump_used_p().
8484         (output_thumb_prologue): Pass 1 to thumb_far_jump_used_p().
8485
8486         2000-03-23  Richard Earnshaw (rearnsha@arm.com)
8487
8488         * arm.c (output_return_instruction): Handle more cases where we can
8489         return from a function with an ldr instruction.
8490         (arm_output_epilogue): Likewise.
8491
8492         * arm.c (thumb_expand_prologue): Don't clobber the frame pointer
8493         if we need to push a large stack frame and there are no callee-saved
8494         registers.
8495
8496         * arm.c (arm_debugger_arg_offset): An offset of 0 is also valid
8497         in ARM code if the frame pointer has been eliminated.
8498
8499         * arm.md (epilogue, *epilogue_insns, consttable_*, align_4): Renumber
8500         unspec_volatile arguments to avoid duplicates.
8501         (consttable_1, consttable_2): Fixes for big-endian mode.
8502
8503         * arm.md (all ARM-mode load insns): Add neg_pool_range attribute
8504         as appropriate.
8505
8506         Re-write constant pool code.
8507         * arm.c (minipool_node, minipool_fix): New types.
8508         (minifix): Delete type.
8509         (arm_add_minipool_constant): Delete.
8510         (arm_compute_minipool_offsets, arm_find_barrier,
8511         arm_find_minipool_constant, fixup_compare, sort_fixups): Likewise.
8512         (get_jump_table_size): Now returns HOST_WIDE_INT.
8513         (move_minipool_fix_forward_ref, add_minipool_forward_ref): New
8514         functions.
8515         (move_minipool_fix_backward_ref, add_minipool_backward_ref): Likewise.
8516         (assign_minipool_offsets, arm_print_value): Likewise.
8517         (dump_minipool): Rewrite.
8518         (arm_barrier_cost): New function.
8519         (create_fix_barrier): New function.
8520         (push_minipool_barrier): New function.
8521         (push_minipool_fix): Record additional information about the fixup
8522         required.
8523         (note_invalid_constants): Remove push for (UNSPEC 3).  Don't
8524         check the mode of what needs fixing.
8525         (arm_reorg): Rewrite.
8526
8527         2000-03-08  Nick Clifton  <nickc@cygnus.com>
8528
8529         * config/arm/arm.md (indirect_jump): Force constant addresses into
8530         a register.
8531
8532         2000-03-01  Bernd Schmidt <bernds@cygnus.co.uk>
8533
8534         * config/arm/arm.md: Add splitter to turn SF moves into SI moves.
8535
8536         2000-02-24  Nick Clifton  <nickc@cygnus.com>
8537
8538         * config/arm/arm.c (thumb_expand_prologue): Make sure that stack
8539         adjust is word aligned.
8540         (thumb_expand_epilogue): Make sure that stack adjust is word
8541         aligned.
8542
8543         * config/arm/elf.h (ASM_FILE_START): Fix type of version string.
8544
8545         2000-02-24  Bernd Schmidt <bernds@cygnus.com>
8546
8547         * config/arm/arm.h (THUMB_GO_IF_LEGITIMATE_ADDRESS): Allow frame
8548         pointer relative addresses.
8549
8550         2000-02-10  Richard Earnshaw  <rearnsha@arm.com>
8551
8552         * arm.c (find_barrier): Find the last barrier within the allowed
8553         range.
8554
8555         2000-02-09  Nick Clifton  <nickc@cygnus.com>
8556
8557         * config/arm/arm-protos.h: Replace PROTO with PARAMS.
8558
8559         2000-02-09  Nick Clifton  <nickc@cygnus.com>
8560
8561         * config/arm/linux-elf.h (FUNCTION_PROFILER): Rename to
8562         ARM_FUNCTION_PROFILER.
8563
8564         * config/arm/netbsd.h (FUNCTION_PROFILER): Rename to
8565         ARM_FUNCTION_PROFILER.
8566
8567         * config/arm/linux-oldld.h: Imported from mainline sources.
8568
8569         2000-02-07  Nick Clifton  <nickc@cygnus.com>
8570
8571         * config/arm/lib1funcs.asm: Merge in thumb functions from
8572         lib1thumb.asm.
8573
8574         * config/arm/lib1thumb.asm: Delete.
8575
8576         2000-02-04  Nick Clifton  <nickc@cygnus.com>
8577
8578         * config/arm/arm.c: Sychronised with current Red hat local
8579         sources.
8580         * config/arm/arm.h: Ditto.
8581         * config/arm/arm-protos.h: Ditto.
8582
8583         2000-02-02  Bernd Schmidt  <bernds@cygnus.co.uk>
8584
8585         * arm.c (soft_df_operand): Reject SUBREGs containing a constant.
8586
8587         * arm.c (arm_gen_movstrqi): Generate halfword stores rather than two
8588         byte stores.
8589
8590         2000-02-02  Nick Clifton  <nickc@cygnus.com>
8591
8592         * config/arm/thumb.c (thumb_exit): Additional fix for same bug.
8593
8594         * config/arm/arm.md (epilogue): Fix rtl checking abort because
8595         (return) was emited using an emit_insn() call.
8596
8597         2000-01-31  Nick Clifton  <nickc@cygnus.com>
8598
8599         * config/arm/arm.c (output_thumb_prologue): Fix bug generating
8600         thumb stack frame.
8601         (thumb_exit): Move frame pointer back into hard frame pointer
8602         register if backtracing is being used.
8603
8604         2000-01-13  Richard Earnshaw (rearnsha@arm.com)
8605
8606         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000113
8607         into branch.
8608
8609         1999-12-15  Bernd Schmidt  <bernds@cygnus.co.uk>
8610
8611         * config/arm/arm.md (neg_pool_offset): Provide default for new
8612         attribute.
8613         (arm_movsi_insn): Add neg_pool_offset attribute.
8614         * config/arm/arm.c (arm_find_barrier): Replace arg FIX with an
8615         rtx for the insn that starts the scan and an unsigned long for its
8616         address.  Add MIN_OFFSET and PINSERTED args.  All callers changed.
8617         Change scan to ignore insns before MIN_OFFSET.  Store size of inserted
8618         instructions in *PINSERTED.
8619         (struct minipool_fixup): Add MIN_ADDRESS elt.
8620         (sort_fixups): Compute it.
8621         (arm_reorg): Changes to support inserting pools before the insn to be
8622         fixed up.
8623
8624         1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
8625
8626         * config/arm/elf.h (MULTILIB_DEFAULTS): Add "marm".
8627         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Add "marm".
8628         * config/arm/coff.h (MULTILIB_DEFAULTS): Add "marm".
8629
8630         Wed Nov  3 10:04:07 1999  Nick Clifton  <nickc@cygnus.com>
8631
8632         * config/arm/semi.h (TARGET_VERSION): Do not define if already
8633         defined.
8634         (TARGET_DEFAULT): Do not define if already defined.
8635
8636         Tue Nov  2 10:37:25 1999  Nick Clifton  <nickc@cygnus.com>
8637
8638         * config/arm/arm.md (anddi3): Allow disjoint source operands.
8639         (iordi3): Allow disjoint source operands.
8640         (xordi3): Allow disjoint source operands.
8641         (negdi2): Permit construction for ARM and Thumb.
8642         (arm_negdi2): Renamed version of old negdi2 pattern.
8643         (thumb_negdi2): New pattern: Only permit non-overlapping
8644         source and destination.
8645
8646         Fri Oct 29 18:52:38 1999  Nick Clifton  <nickc@cygnus.com>
8647
8648         * config/arm/arm.c (thumb_expand_prologue): Emit a USE of the
8649         scratch low register so that it will not be deleted.
8650
8651         Fri Oct 29 15:23:48 1999  Nick Clifton  <nickc@cygnus.com>
8652
8653         * config/arm/pe.h (ARM_PE): Define.
8654
8655         * config/arm/arm.c (arm_valid_machine_decl_attribute): Allow
8656         interfacearm attribute if this is a PE toolchain.
8657         (output_return_instruction): Do not emit anything if the function
8658         has the naked attribute set.
8659         (is_called_in_ARM_mode): If the function has the interfacearm
8660         attribute then return true.
8661         (thumb_expand_prologue): Do not generate a prologue for naked
8662         functions.
8663         (thumb_expand_epilogue): Do not generate an epilogie for a naked
8664         function.
8665         (output_thumb_prologue): Do not bother if the function is naked.
8666         Strip PE encoding from function name before emitting.
8667
8668         Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
8669
8670         * arm.md (pic_load_addr): Fix constraints.
8671
8672         * arm.md (casesi_insn): Fix mis-applied patch.
8673
8674         * arm.md ("core" function unit): Add rules for single- and
8675         multi-cycle insns.
8676         (All TARGET_THUMB patterns): Add "type" attribute information
8677         where needed.
8678         * arm.c (arm_adjust_cost): Reduce the cost of a data dependency if
8679         the following insn is a CALL.
8680
8681         * arm.c (thumb_expand_epilogue): Add a use of the adjusted stack
8682         pointer.
8683         * arm.h (CONDITIONAL_REGISTER_USAGE): Nail down the
8684         ARM_HARD_FRAME_POINTER_REGNUM when TARGET_APCS_FRAME.
8685         (FRAME_POINTER_REQUIRED): Only check TARGET_APCS_FRAME if TARGET_ARM.
8686
8687         Wed Oct 27 14:40:48 1999  Nick Clifton  <nickc@cygnus.com>
8688
8689         * config/arm/linux-gas.h: oops - this file was missed out when the
8690         branch was created...
8691
8692         Tue Oct 26 17:07:38 1999  Richard Earnshaw <rearnsha@arm.com>
8693
8694         * thumb.c: Deleted.  Move contents to ...
8695         * arm.c: ... here.
8696         * t-arm-aout, t-arm-coff, t-arm-elf, t-linux, t-netbsd, t-semi: Remove
8697         rule for thumb.o
8698         * configure.in (arm*-*-*): Remove thumb.o from extra_objs list.
8699         * configure: Regen.
8700
8701         * arm-protos.h: Use RTX_CODE and tidy up long lines.  Don't
8702         declare a prototype for asm_output_align();
8703
8704         * arm.c (thumb_condition_code): Delete.
8705         (arm_print_operand): Always use arm_condition_code array.
8706
8707         * arm.c (thumb_return_addr_rtx): Delete.
8708         (arm_save_machine_status, arm_restore_machine_status): Delete.
8709         (arm_init_machine_status, arm_mark_machine_status): New functions.
8710         (arm_init_expanders): Update accordingly.
8711         (arm_return_addr): Renamed from arm_return_addr_rtx.  Rewrite.
8712         (thumb_expand_prologue): Delete code referencing thumb_return_addr_rtx.
8713         * arm.h (RETURN_ADDR_RTX): Call arm_return_addr().
8714
8715         Tue Oct 26 13:24:16 1999  Nick Clifton  <nickc@cygnus.com>
8716
8717         * configure.in : Fix arm-*-aout target to use new t-arm-aout
8718         script.
8719         * config/arm/t-arm-aout: New file: Makefile script for arm-*-aout
8720         targets.
8721
8722         Tue Oct 26 11:27:12 1999  Nick Clifton  <nickc@cygnus.com>
8723
8724         * config/arm/thumb.c (output_thumb_prologue): Fix bug creating
8725         stack backtrace structure.
8726
8727         * config/arm/arm-protos.h: Add prototypes for functions defined in
8728         arm/pe.h.
8729
8730         * config/arm/arm.c (arm_override_options): Fix selection of
8731         attributes of default processor.
8732
8733         * config/arm/coff.h: Delete needless #include.
8734
8735         * config/arm/pe.c: Delete unused code.
8736
8737         * config/arm/pe.h (CPP_DEFINES): Delete
8738         (SUBTARGET_CPP_SPEC): Define.
8739         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
8740
8741         * config/arm/t-pe: Add -DInhibit_libc to allof libgcc.a to build.
8742
8743         Mon Oct 25 15:42:09 1999  Richard Earnshaw (rearnsha@arm.com)
8744
8745         * arm.h (TARGET_APCS_FRAME): Renamed from TARGET_APCS -- all uses
8746         updated.
8747         (CAN_DEBUG_WITHOUT_FP): Define.
8748         (FIXED_REGISTERS): Make r11 call-saved.
8749         (CALL_USED_REGISTERS): Likewise.
8750         (CONDITIONAL_REGISTER_USAGE): Fix r11 if TARGET_APCS_FRAME.
8751         (FRAME_POINTER_REQUIRED): Correct logic for determining when a
8752         frame-pointer is required.
8753         (TARGET_DEFAULT): Make default setting include ARM_FLAG_APCS_FRAME.
8754         * arm.c (arm_override_options): Warn about -mno-apcs-frame and -g
8755         if the target normally needs a stack frame in non-leaf functions.
8756         (use_return_insn): Correct logic for determining when a return
8757         instruction can be used.
8758         (output_return_instruction): Handle the frame-pointer register as
8759         a normal register when not TARGET_APCS_FRAME.
8760         (arm_output_prologue): Likewise.
8761         (arm_output_epilogue): Likewise.
8762         (output_func_epilogue): Likewise.
8763         (arm_expand_prologue): Likewise.
8764         * netbsd.h semi.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_FRAME.
8765
8766         * arm.c (use_return_insn): No need to check floating point regs if
8767         TARGET_SOFT_FLOAT.
8768         (arm_find_minipool_constant): Correct typo; use GET_CODE to get
8769         the code of value stored in the minipool array.
8770         (arm_add_minipool_constant): Likewise.
8771
8772 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8773
8774         * basic-block.h (conflict_graph_enum_fn): K&R fix.
8775
8776 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8777
8778         * tree.c (tree_expr_nonnegative_p): New function.
8779
8780         * tree.h (tree_expr_nonnegative_p): Declare.
8781
8782         * c-typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to
8783         elide some sign_compare warnings.
8784         (build_conditional_expr): Likewise.
8785
8786 Sat Apr  8 00:21:51 EDT 2000  John Wehle  (john@feith.com)
8787
8788         * i386.md (ashrsi3, ashrhi3, ashrqi3): Fix typo.
8789
8790         * i386.md (floathisf2, floathidf2, floathixf2): New patterns.
8791         * i386.c (print_operand): Use the proper suffix for a 387 HImode
8792         operand.  Abort if a 387 operand has an unsupported size.
8793
8794 2000-04-08  Neil Booth  <NeilB@earthling.net>
8795
8796         * cppexp.c (parse_charconst): Null does not end character
8797         constants.
8798         * cppinit.c (ISTABLE): Null character handled as whitespace.
8799         * cpplex.c (null_warning):  new function.
8800         (skip_string): Emit warning if nulls encountered.
8801         (_cpp_skip_hspace): Emit warning if nulls encountered.
8802         (_cpp_lex_token): Emit warning if nulls encountered.  Drop
8803         them.
8804         * cpp.texi: Update.
8805
8806 2000-04-07  Richard Henderson  <rth@cygnus.com>
8807
8808         * flow.c (loop_depth): Remove.
8809         (reg_next_use, cc0_live, mem_set_list): Replace with ...
8810         (struct propagate_block_info): New.
8811         (life_analysis): Don't allocate reg_next_use.
8812         (propagate_block_delete_insn): Break out of propagate_block.
8813         Use flow_delete_insn to unlink rather than use NOTE_INSN_DELETED.
8814         (propagate_block_delete_libcall): Likewise.
8815         (propagate_block): Create a propagate_block_info struct to pass
8816         to subroutines.  Allocate one not two temporary regsets.  Don't
8817         clobber memory for const calls.  Look for clobbers in
8818         CALL_INSN_FUNCTION_USAGE.
8819         (mark_set_regs): Recognize COND_EXEC.
8820         (mark_set_reg): Break out of mark_set_1.
8821         (mark_used_reg): Break out of mark_used_regs.
8822         (mark_used_regs): Recognize COND_EXEC.
8823         (insn_dead_p): Use propagate_block_info struct.
8824         (libcall_dead_p, invalidate_mems_from_autoinc): Likewise.
8825         (find_auto_inc, try_pre_increment_1): Likewise.
8826         (print_rtl_with_bb): Dump regs live at end too.
8827         (count_reg_sets_1): Pass in loop_depth.
8828         (count_reg_sets, count_reg_references): Likewise.
8829         (recompute_reg_usage): Provide it.
8830
8831 2000-04-07  Richard Henderson  <rth@cygnus.com>
8832
8833         * Makefile.in (conflict.o): Depend on $(RTL_H) and $(BASIC_BLOCK_H)
8834         not the raw files.
8835
8836 2000-04-07  Zack Weinberg  <zack@wolery.cumb.org>
8837
8838         * cpplib.c (do_elif): Skip the rest of the line if we're
8839         not going to bother evaluating it.
8840         (skip_if_group): Clear pfile->only_seen_white.  Reorder loop
8841         to avoid pointless calls to the lexer.
8842
8843 Fri Apr  7 11:50:54 2000  Jim Wilson  <wilson@cygnus.com>
8844
8845         * config/ia64/ia64.c: Delete stdio.h and ctype.h includes.
8846
8847 2000-04-07  Jason Merrill  <jason@casey.cygnus.com>
8848
8849         * calls.c (expand_call): emit_queue if we're trying a sibcall.
8850
8851 2000-04-07  Jakub Jelinek  <jakub@redhat.com>
8852
8853         * config/sparc/t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove.
8854
8855 2000-04-06  Geoff Keating  <geoffk@cygnus.com>
8856
8857         * Makefile.in: Build crtbeginS and crtendS like crtbegin and
8858         crtend so they can be multilibbed.
8859         (STAGESTUFF): Remove s-crt and s-crtS.
8860
8861 2000-04-07  Richard Henderson  <rth@cygnus.com>
8862
8863         * config/alpha/alpha.c (alpha_emit_conditional_move): Fail
8864         if we discover we need a pseudo and no_new_pseudos is true.
8865         * config/alpha/alpha.md (ne:DI insn): New.
8866         (trunctfsf2, sne): Emit NE instead of non-canonical LTU.
8867
8868 2000-04-07  Richard Henderson  <rth@cygnus.com>
8869
8870         * rtl.def (COND_EXEC): New.
8871         * rtl.h (COND_EXEC_TEST, COND_EXEC_CODE): New.
8872         * tm.texi (MAX_CONDITIONAL_EXECUTE): Document.
8873
8874         * genconfig.c (have_cond_arith_flag): Remove.
8875         (have_cond_exec_flag): New.
8876         (walk_insn_part): Detect COND_EXEC, not arithmetic in IF_THEN_ELSE.
8877         (main): Print HAVE_conditional_execution.
8878
8879         * haifa-sched.c (haifa_classify_insn): Recognize COND_EXEC.
8880         (sched_analyze_insn, print_pattern): Likewise.
8881         * reload.c (find_equiv_reg): Likewise.
8882         * rtlanal.c (reg_referenced_p): Likewise.
8883         (note_stores, dead_or_set_regno_p): Likewise.
8884         (reg_overlap_mentioned_p): Rewrite to use a switch.
8885
8886         * ggc.h (struct rtx_def): Forward declare.
8887
8888         * print-rtl.c (debug_rtx_range): New.
8889         * rtl.h (debug_rtx_range): Declare.
8890
8891         * varray.h (VARRAY_ACTIVE_SIZE, VARRAY_POP_ALL): New.
8892
8893         * gcse.c (gcse_main): Don't rebuild the CFG here.
8894         (delete_null_pointer_checks): Likewise.
8895         * ssa.c (convert_to_ssa): Likewise.
8896         * toplev.c (rest_of_compilation): Do it here instead.  Combine
8897         sequential calls to TIMEVAR.  Consistently use `insns' instead of
8898         `get_insns()'.  Always split insns after reload when optimizing.
8899
8900         * basic-block.h (merge_blocks_nomove): Declare.
8901         (tidy_fallthru_edge): Declare.
8902         * flow.c (merge_blocks_nomove): Document as merging into previous
8903         blocks.  Remove cruft from between blocks; remove all edges out of A.
8904         (tidy_fallthru_edge): Export.
8905
8906 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
8907
8908         * ssa.c (compute_conservative_reg_partition): Declare with
8909         void arguments.
8910         * toplev.c (clean_dump_file): Remove previously-deleted function
8911         inadvertantly merged back in.
8912         * conflict.c (conflict_graph_add): Use a single call to
8913         htab_find_slot to look up and insert.
8914
8915 2000-04-06  Richard Henderson  <rth@cygnus.com>
8916
8917         * genrecog.c (*): Rename _last_insn to last_insn.
8918         (make_insn_sequence): Set the position of the peephole2 C test
8919         to be at the last insn.
8920
8921 2000-04-06  Richard Henderson  <rth@cygnus.com>
8922
8923         * flow.c (compute_flow_dominators): Free worklist.
8924
8925 2000-04-06  Michael Matz  <matzmich@cs.tu-berlin.de>
8926
8927         * flow.c (compute_flow_dominators): Process blocks FIFO not LIFO.
8928
8929 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
8930
8931         * rtl.h (INSN_P): New macro.
8932         (successor_phi_fn): New typedef.
8933         (for_each_successor_phi): New prototype.
8934         (in_ssa_form): New variable.
8935         (PHI_NODE_P): Likewise.
8936         * flow.c (calculate_global_regs_live): Add to new_live_at_end from
8937         phi nodes in successors.
8938         (mark_used_regs): Add PHI case.
8939         (set_phi_alternative_reg): New function.
8940         (life_analysis): Assert that dead code elimination is not selected
8941         when in SSA form.
8942         * toplev.c (to_ssa_time): New variable.
8943         (from_ssa_time): Likewise.
8944         (compile_file): Zero to_ssa_time and from_ssa_time.
8945         Print time to convert to and from SSA.
8946         (rest_of_compilation): Time convert_to_ssa and convert_from_ssa.
8947         (print_time): Compute percent fraction as integer.
8948         * ssa.c (PHI_NODE_P): Moved to rtl.h.
8949         (convert_to_ssa): Check if we're already in SSA.
8950         Don't eliminate dead code in life_analysis.
8951         Rerun flow and life analysis at bottom.
8952         (eliminate_phi): Use canonical regnos when adding nodes.
8953         (mark_reg_in_phi): New function.
8954         (mark_phi_and_copy_regs): Likewise.
8955         (convert_from_ssa): Rerun life analysis at top.
8956         Use coalesced partition.
8957         Check for removing a phi node at the end of the block.
8958         (compute_coalesced_reg_partition): New function.
8959         (coalesce_regs_in_copies): Likewise.
8960         (coalesce_reg_in_phi): Likewise.
8961         (coalesce_regs_in_sucessor_phi_nodes): Likewise.
8962         (for_each_successor_phi): Likewise.
8963         (rename_context): New struct.
8964         (rename_block): Use a rename_context with rename_insn_1.  When
8965         renaming sets of a subreg, emit a copy of the entire reg first.
8966         (rename_insn_1): Treat data as a rename_context *.  Save current
8967         insn in set_data.
8968         (rename_set_data): Add field set_insn.
8969         * Makefile.in (HASHTAB_H): Move up in file.
8970         (OBSTACK_H): New macro.
8971         (collect2.o): Use OBSTACK_H in dependencies.
8972         (sdbout.o): Likewise.
8973         (emit-rtl.o): Likewise.
8974         (simplify-rtx.o): Likewise.
8975         (fix-header.o): Likewise.
8976         (OBJS): Add conflict.o.
8977         (conflict.o): New rule.
8978         * basic-block.h: Include partition.h.
8979         (conflict_graph): New typedef.
8980         (conflict_graph_enum_fn): Likewise.
8981         (conflict_graph_new): New prototype.
8982         (conflict_graph_delete): Likewise.
8983         (conflict_graph_add): Likewise.
8984         (conflict_graph_conflict_p): Likewise.
8985         (conflict_graph_enum): Likewise.
8986         (conflict_graph_merge_regs): Likewise.
8987         (conflict_graph_print): Likewise.
8988         (conflict_graph_compute): Likewise.
8989         * conflict.c: New file.
8990
8991 2000-04-06  Jason Merrill  <jason@yorick.cygnus.com>
8992
8993         * tlink.c (read_repo_files): Don't look for .rpo info for
8994         linker flags.
8995
8996 Thu Apr  6 20:39:26 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8997
8998         * sh.h (STRUCT_VALUE, RETURN_IN_MEMORY): Define.
8999
9000 Thu Apr  6 19:34:08 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9001
9002         * config/sh/lib1funcs.asm (___udivsi3_i4):
9003         ( __SH4_SINGLE__ / __SH4_SINGLE_ONLY__ variant): value for fpscr
9004         only depends on FMOVD_WORKS.
9005
9006 Thu Apr  6 19:11:47 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9007
9008         * config/sh/lib1funcs.asm (___udivsi3_i4): When using fmovd,
9009         make double constant 8-byte aligned.
9010
9011 2000-04-06  Jakub Jelinek  <jakub@redhat.com>
9012
9013         * config/sparc/sparc.md (movtf_insn_sp32, movtf_insn_vis_sp32,
9014         movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_hq_vis_sp64,
9015         movtf_no_e_insn_sp64): Accept loading 0.0 into GENERAL_REGS.
9016         (movtf_insn_sp64, movtf_insn_vis_sp64): Likewise.
9017         Accept storing GENERAL_REGS into offsetable memory.
9018         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Don't allow
9019         building a TFmode constant other than 0.0L into GENERAL_REGS.
9020
9021 2000-04-06  Clinton Popetz  <cpopetz@cygnus.com>
9022
9023         * regrename.c (regrename_optimize): Handle no REG_ALLOC_ORDER.
9024
9025 2000-04-06  Zack Weinberg  <zack@wolery.cumb.org>
9026
9027         * cpphash.c (CPP_IS_MACRO_BUFFER, FORWARD, PEEKC): Delete.
9028         (macro_cleanup): No need to cast pbuf->macro.
9029         (collect_expansion): Use _cpp_get_define_token.  Goto done if
9030         it returns VSPACE.  Remove check for trailing space after
9031         CPP_COMMENT.
9032         (_cpp_create_definition): Don't diddle flags here.  Return
9033         directly on error.
9034         (unsafe_chars): Handle c1 being EOF.
9035         (push_macro_expansion): Use unsafe_chars for both accidental-paste
9036         checks.  Don't push the buffer till after we're done with
9037         them.
9038         * cpplex.c (PEEKBUF, GETBUF, FORWARDBUF): New.
9039         (PEEKN, FORWARD, GETC, PEEKC): Use them.
9040         (cpp_push_buffer): Don't set new->alimit.  Set new->mark
9041         appropriately.
9042         (_cpp_parse_assertion): Don't NUL terminate.
9043         (_cpp_lex_token): Fix -traditional macro handling.  Don't skip
9044         hspace before calling _cpp_parse_assertion.  Remove all sets
9045         of only_seen_white. Treat '\f' as hspace.  Don't do anything
9046         special with '\n' here.
9047         (maybe_macroexpand): Handle T_EMPTY hash entries without
9048         pushing a buffer at all.
9049         (cpp_get_token): Handle clearing only_seen_white here.  Handle
9050         incrementing the line number here.  Clear
9051         potential_control_macro as well as only_seen_white, if
9052         appropriate.
9053         (cpp_get_non_space_token): Don't eat CPP_POP tokens.
9054         (_cpp_get_define_token): New function, basically like
9055         _cpp_get_directive_token was but doesn't eat horizontal space.
9056         Don't do anything with only_seen_white here.
9057         (_cpp_get_directive_token): Just call _cpp_get_define_token
9058         repeatedly till it returns non-hspace.
9059
9060         * cpplib.c (PEEKN, FORWARD, GETC, PEEKC): Delete.
9061         (conditional_skip, skip_if_group): Return int.
9062         (DIRECTIVE_TABLE): Change origin of all conditional directives
9063         to "COND".
9064         (TRAD_DIRECT_P): New macro.
9065         (_cpp_handle_directive): Use _cpp_get_directive_token.  Issue
9066         an error for a bogus directive, unless -lang-asm.  Use
9067         TRAD_DIRECT_P. Loop calling handler functions till one returns
9068         zero.
9069         (get_macro_name): Don't diddle flags here.
9070         (do_define): Diddle flags here.  Use _cpp_get_directive_token.
9071         Create T_EMPTY nodes for #define macro /* nothing */.
9072         (do_undef): Don't copy the name.  Use _cpp_get_directive_token.
9073         Use hp->name when calling pass_thru_directive.
9074         (do_if, do_else, do_elif, do_ifdef, do_ifndef, conditional_skip):
9075         Return the result of conditional_skip and/or skip_if_group.
9076         Don't call _cpp_output_line_command.
9077         (consider_directive_while_skipping): Use _cpp_get_directive_token.
9078         Issue -Wtraditional warnings as appropriate.  Don't complain
9079         about unrecognized directives.  If we are to stop skipping,
9080         return the number of the directive that ended the skip.
9081         (skip_if_group): Use _cpp_get_directive_token.  Turn off macro
9082         expansion and line commands while skipping.  Return the result
9083         of consider_directive_while_skipping, if nonzero.
9084         (do_endif): Just set potential_control_macro here.
9085         (validate_else): Use _cpp_get_directive_token.
9086         (do_assert, do_unassert): Don't save pointers into the
9087         token_buffer across calls to the lexer.  Use
9088         _cpp_get_directive_token.
9089
9090         * cpplib.h (cpp_buffer): Remove alimit and colno.  Make mark a
9091         pointer, not an offset.  Replace 'data', which was a generic
9092         pointer, with 'macro', which points to a struct hashnode.
9093         (cpp_reader): Add 'potential_control_macro' pointer.
9094         * cpphash.h (T_UNUSED): Replace with T_EMPTY.
9095         (CPP_BUF_GET, CPP_FORWARD): Delete.
9096         (CPP_IN_COLUMN_1, ADJACENT_TO_MARK): New macros.
9097         (CPP_IS_MACRO_BUFFER, CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK,
9098         ACTIVE_MARK_P): Update.
9099         (_cpp_get_define_token): New internal function.
9100         * cppfiles.c (read_include_file): Don't set fp->alimit or fp->colno.
9101
9102 2000-04-05   Benjamin Kosnik  <bkoz@cygnus.com>
9103
9104         * configure.in: And here.
9105         * configure: Regenerate.
9106         * acconfig.h: Add ENABLE_STD_NAMESPACE to set flag_honor_std if
9107         --enable-libstdcxx-v3 is passed at configure time.
9108         * config.h.in: Regenerate.
9109
9110 2000-04-05  Mark Mitchell  <mark@codesourcery.com>
9111
9112         * final.c (final): Use xcalloc to allocate line_note_exists.
9113         * function.c (free_after_compilation): Free the temp_slots.
9114         (assign_stack_temp_for_type): Use xmalloc to allocate temp_slots.
9115         (combine_temp_slot): Free temp_slots when they get combined.
9116         (purge_addressof): Fix typo in comment.
9117         * stmt.c (mark_goto_fixup): Mark the fixup itself.
9118         (expand_fixup): Allocate the fixup with ggc_alloc_obj.
9119
9120         * ggc.h: Include varray.h.
9121         (ggc_pending_trees): Declare.
9122         (ggc_mark_tree_children): Remove declaration.
9123         (ggc_mark_tree): Just push unmarked trees on ggc_pending_trees.
9124         * ggc-common.c (ggc_pending_trees): New variable.
9125         (ggc_mark_roots): Call ggc_mark_trees.
9126         (ggc_mark_tree_children): Rename to ggc_mark_trees.  Process all
9127         the ggc_pending_trees.
9128         * Makefile.in (GGC_H): New variable.  Use it throughout in place
9129         of ggc.h.
9130
9131 Thu Apr  6 00:30:50 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9132
9133         * sh.h (FUNCTION_ARG_PARTIAL_NREGS): Accomodate an unsigned
9134         GET_MODE_SIZE.
9135
9136 Wed Apr  5 23:17:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9137
9138         * sh.c (sh_insn_length_adjustment): New function.
9139         * sh-protos.h (sh_insn_length_adjustment): Declare.
9140         * sh.h (ADJUST_INSN_LENGTH): Use it.
9141
9142 Wed Apr  5 12:35:18 2000  Hans-Peter Nilsson  <hp@axis.com>
9143
9144         * optabs.c (emit_libcall_block): Remove spurious REG_EQUAL notes
9145         from the insn where REG_RETVAL is added.
9146         (emit_no_conflict_block): Ditto.
9147
9148         * md.texi (Standard Names): Clarify when movX is needed.
9149
9150         * combine.c (simplify_comparison) [MINUS]: Do not replace
9151         all (op (minus A B) 0) with (op A B).
9152
9153 Wed Apr  5 18:03:31 2000  Toshiyasu Morita  (toshi.morita@sega.com)
9154                           J"orn Rennecke <amylaar@cygnus.co.uk>
9155
9156         * sh.md (block_lump_real_i4): Add missing clobber of T_REG
9157         (block_lump_real): Likewise.
9158
9159 2000-04-05  Chris Demetriou  <cgd@netbsd.org>
9160
9161         * mips.h (MASK_DEBUG_A, MASK_DEBUG_B, MASK_DEBUG_C): Zero the
9162         remaining non-zero debugging masks.
9163
9164 Wed Apr  5 09:44:07 2000  Jeffrey A Law  (law@cygnus.com)
9165
9166         * basic-block.h (verify_flow_info): Declare.
9167         (flow_loop_outside_edge_p): Declare.
9168         * flow.c (verify_flow_info): Remove declaration.
9169         (clear_log_links, flow_loop_outside_edge_p): Likewise.
9170
9171 Wed Apr  5 09:34:26 2000  Philippe De Muyter <phdm@macqel.be>
9172
9173         * m68k/m68k-protos.h (finalize_pic): Turn prototype off using `#if 0',
9174         not C++ comments.
9175
9176 2000-04-05  Jakub Jelinek  <jakub@redhat.com>
9177
9178         * config/sparc/sparc.md (snedi_zero+1, neg_snedi_zero+1,
9179         snedi_zero_trunc+1, seqdi_zero+1, neg_seqdi_zero+1,
9180         seqdi_zero_trunc+1): Allow splits only if registers are
9181         different.
9182
9183 2000-04-04  Ulrich Drepper  <drepper@cygnus.com>
9184
9185         * acconfig.h: Add HAVE_GAS_HIDDEN.
9186         * config.in: Regenerated.
9187         * configure.in: Add test for .hidden pseudo-op in gas.
9188         * configure: Regenerated.
9189         * crtstuff.c: Include auto-host.h.
9190         Emit additional .hidden pseudo-op for __dso_handle if the
9191         assembler knows about it.
9192
9193 2000-04-04  Philippe De Muyter  <phdm@macqel.be>
9194
9195         * cpphash.c (_cpp_free_definition): Test argnames, not nargs >= 0,
9196         before freeing argnames.
9197         * cpplib.c (do_ifndef): Cast return value of xstrdup.
9198
9199 2000-04-05  Michael Meissner  <meissner@redhat.com>
9200
9201         * config/rs6000/rs6000.c (print_operand): Patch from Jonathan
9202         Walton <jonboy@gordian.com> to make memory references with update
9203         work wtih -mregnames.
9204
9205 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9206
9207         * regrename.c (regno_first_use_in): Wrap prototype in PARAMS.
9208         (regrename_optimize): Rename variables `def_uses' and
9209         `ext_basic_blocks' to avoid conflicts with similarly named
9210         typedefs in traditional C.
9211
9212         * calls.c (initialize_argument_information): Fix typo in previous
9213         change.
9214
9215 2000-04-04  Richard Henderson  <rth@cygnus.com>
9216
9217         * regrename.c (consider_available): Test fixed_regs not
9218         PIC_OFFSET_TABLE_REGNUM.
9219
9220 2000-04-04  Geoff Keating  <geoffk@cygnus.com>
9221
9222         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbegin,
9223         crtend.
9224         (CRTSTUFF_T_CFLAGS_S): Delete definition.
9225         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Always use crtbegin.
9226         (ENDFILE_LINUX_SPEC): Always use crtend.
9227         * configure.in (powerpc-*-linux-gnulibc1): Don't define extra_parts.
9228         (powerpc-*-linux-gnu): Likewise.
9229         * configure: Regenerate.
9230
9231         * config/rs6000/eabi.h: Don't include sysv4.h.
9232         (MULTILIB_DEFAULTS): Don't define.
9233         * config/rs6000/eabiaix.h: Don't include eabi.h.
9234         * config/rs6000/eabile.h: Delete.
9235         * config/rs6000/eabilesim.h: Delete.
9236         * config/rs6000/eabisim.h: Don't include eabi.h.
9237         * config/rs6000/linux.h: Don't include sysv4.h.
9238         (JUMP_TABLES_IN_TEXT_SECTION): Don't redefine.
9239         (MULTILIB_DEFAULTS): Don't redefine.
9240         * config/rs6000/rtems.h: Don't include eabi.h.
9241         * config/rs6000/sol2.h: Don't include sysv4le.h.
9242         * config/rs6000/sysv4le.h: Don't include sysv4.h.
9243         * config/rs6000/t-ppc: Delete.
9244         * config/rs6000/t-ppcgas: Correct comment.
9245         * config/rs6000/t-ppcos: Correct comment.  Don't build
9246         multilibs for -fPIC, rather use -fPIC -mstrict-align
9247         as default.
9248         * config/rs6000/t-ppc: Delete.
9249         * config/rs6000/vxppc.h: Don't include sysv4.h.
9250         * config/rs6000/vxppcle.h: Delete.
9251         * configure.in: Use multiple header files for p2pc ELF targets
9252         powerpc-eabiaix, powerpc-eabisim, powerpc-rtems, powerpcle-eabi,
9253         powerpcle-eabisim, powerpc-elf, powerpcle-elf, powerpc-linux-gnu,
9254         powerpc-linux-gnulibc1, powerpc-sysv, powerpcle-sysv,
9255         powerpc-vxworks, powerpcle-vxworks.  Assume GAS functionality is
9256         always available for these platforms.
9257
9258 2000-04-04  Richard Henderson  <rth@cygnus.com>
9259
9260         * calls.c (try_to_integrate): Initialize reg_parm_stack_space.
9261
9262 2000-04-04  Stan Cox  <scox@cygnus.com>
9263
9264         * Makefile.in: Add rules for regrename.o
9265         * regrename.c: New file.
9266         * rtl.h (regrename_optimize): Add prototype.
9267         * toplev.c (rename_registers_dump, flag_rename_registers): New variables
9268         (compile_file, decode_d_option): Add support for -frename-registers.
9269         (rest_of_compilation): Call regrename_optimize.
9270         * config/ia64/ia64.h (HARD_REGNO_RENAME_OK, RENAME_EXTENDED_BLOCKS):
9271         New macros.
9272
9273 2000-04-04  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
9274
9275         * Makefile (gccbug): New target.
9276         (doc): Depend on it.
9277         * gcc.texi (Bugs): Link subnodes.
9278         (gccbug): New node.
9279         * gccbug.in (CATEGORIES): Remove gc, host, profiling, libgcc.
9280         Document severities, priorities, and classes in bug form.
9281
9282 2000-04-04  Zack Weinberg  <zack@wolery.cumb.org>
9283
9284         * cpplex.c (trigraph_map, speccase): Combine into single
9285         table, chartab.
9286         (NORMAL, NONTRI): New macros.
9287         (_cpp_read_and_prescan): Change to use unified table.  Use
9288         is_hspace to test for whitespace.
9289
9290         * dbxout.c (CONTIN): If it doesn't have to do anything, give it a
9291         definition that doesn't provoke the "empty body in an
9292         if-statement" warning.
9293
9294 2000-04-04  Clinton Popetz  <cpopetz@cygnus.com>
9295
9296         * builtins.c (expand_builtin_strlen): Force the source to
9297         be a memory address.
9298
9299 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9300
9301         * cpplib.c (D): Adjust to call CONCAT2 macro without whitespace.
9302
9303 Tue Apr  4 19:17:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
9304
9305         * calls.c (ECF_MALLOC, ECF_MAY_BE_ALLOCA, ECF_RETURNS_TWICE,
9306          ECF_LONGJMP, ECF_FORK_OR_EXEC):  New constants.
9307         (ECF_IS_CONST): Rename to ECF_CONST.
9308         (special_function_p): Make static, change interface.
9309         (flags_from_decl_or_type, try_to_integrate): Break out from ...
9310         (expand_call) ... here; convert number of variables to flags.
9311         (emit_library_call_vlue_1): Likewise.
9312         (setjmp_call_p): New function.
9313         (initialize_argument_information): Accepts flags as argument;
9314         return flags.
9315         (precompute_arguments): Likewise.
9316         * tree.h (special_function_p): Remove.
9317         (setjmp_call_p): Add prototype.
9318
9319 2000-04-04  Jakub Jelinek  <jakub@redhat.com>
9320
9321         * config/sparc/sparc.h (RTX_OK_FOR_OFFSET_P): Leave minor margin
9322         so that addresses are offsetable by up to 16 bytes.
9323         (GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+REG addresses for
9324         non-optimizing TARGET_ARCH32 in DF or DI modes because it is not
9325         offsetable.
9326
9327         * config/sparc/sparc.md (movdi_insn_sp64_novis): New pattern.
9328         (movdi_insn_sp64_vis): Renamed from movdi_insn_sp64.
9329         (movsf): Don't force any constant to memory if target is integer
9330         hard register.
9331         Move fp_zero_operand check below the const0_rtx check.
9332         (movtf): Likewise. Also allow fp_zero_operand for stores into
9333         memory.
9334         (movdf): Likewise. Also allow fp_zero_operand for stores into
9335         memory and into integer hard registers.
9336         (clear_df, clear_dfp, movdf_const_intreg_sp32,
9337         movdf_const_intreg_sp64): Remove.
9338         (movdf_insn_sp32, movdf_no_e_insn_sp32): Redo constraints and
9339         conditions.
9340         (movdf_no_e_insn_v9_sp32): New pattern.
9341         (movdf_insn_v9only): Remove.
9342         (movdf_insn_v9only_novis, movdf_insn_v9only_vis): New patterns.
9343         (movdf_insn_sp64): Remove.
9344         (movdf_insn_sp64_novis, movdf_insn_sp64_vis): New patterns.
9345         (movdf_no_e_insn_sp64): Allow storing 0.0 into memory.
9346         (following splits): Rewrite conditions. Add two new splits
9347         for storing 0.0 into memory and registers.
9348         (clear_tf, clear_tf+1, clear_tfp, clear_tfp+1): Remove.
9349         (movtf_insn_sp32): Redo constraints and conditions.
9350         (movtf_insn_vis_sp32): New pattern.
9351         (movtf_no_e_insn_sp32): Redo constraints and conditions.
9352         (movtf_insn_hq_sp64): Likewise.
9353         (movtf_insn_hq_vis_sp64): New pattern.
9354         (movtf_insn_sp64): Redo constraints and conditions.
9355         (movtf_insn_vis_sp64): New pattern.
9356         (movtf_no_e_insn_sp64): Redo constraints and conditions.
9357         (movtf_no_e_insn_sp64+1): New split for storing 0.0L into registers
9358         or memory.
9359         * config/sparc/sparc.c (sparc_override_options): Assume v9 if either
9360         -mvis or -m64 to take down the number of various reload patterns.
9361
9362 Tue Apr  4 00:41:53 2000  Jeffrey A Law  (law@cygnus.com)
9363
9364         * pa/pa-64.h: New file.
9365         * pa/pa64-regs.h: New file.
9366         * pa/pa64-start.h: New file.
9367         * pa/t-pa64: New file.
9368         * pa/xm-pa64hpux.h: New file.
9369
9370 2000-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9371
9372         * sparc.c (output_restore_regs): Prototype.
9373         (sparc_emit_float_lib_cmp): Constification.
9374
9375         * emit-rtl.c (const_int_htab_hash, const_int_htab_eq): Likewise.
9376
9377         * reload1.c (reload_cse_delete_noop_set, reload_cse_simplify):
9378         Prototype.
9379
9380         * simplify-rtx.c (entry_and_rtx_equal_p): Constification.
9381         (get_value_hash, hash_rtx): Likewise.
9382
9383         * ssa.c (compute_conservative_reg_partition): Prototype.
9384
9385         * tree.c (mark_hash_entry): Prototype.
9386
9387 2000-04-03  Zack Weinberg  <zack@wolery.cumb.org>
9388
9389         * bb-reorder.c (verify_insn_chain): #ifdef out unless ENABLE_CHECKING.
9390         * i386.h (FUNCTION_ARG_REGNO_P): Remove unnecessary test for N >= 0.
9391         * i386.md (call_value, call_value_pop): Remove unused variable 'addr'.
9392
9393         * gcc.c (C specs): Pass -fno-show-column to the preprocessor.
9394         * objc/lang-specs.h: Likewise.
9395
9396 2000-04-03  Neil Booth  <NeilB@earthling.net>
9397
9398         * cppexp.c: wrap long lines.  New macros CPP_ICE, SYNTAX_ERROR
9399         and SYNTAX_ERROR2. Replace `' in messages with ''.
9400         (op_to_str): Make re-entrant.
9401         (_cpp_parse_expr): Implement new error macros. Use | rather
9402         than || to logically or 2 boolean integers.  Simply expression
9403         checking we have a left operand iff needed.
9404
9405 2000-04-03  Nick Clifton  <nickc@cygnus.com>
9406
9407         * Makefile.in (diagnostic.o): Depend upon diagnostic.c
9408
9409 2000-04-03  Philip Blundell  <philb@gnu.org>
9410
9411         * config/arm/linux-elf.h (SUBTARGET_EXTRA_LINK_SPEC): Fix typos.
9412
9413 2000-04-03  Felix Lee  <flee@cygnus.com>
9414
9415         * fixinc/server.c (find_shell): New function.  Avoid $SHELL.
9416         (run_shell): Use it.
9417
9418 2000-04-03  Jonathan Larmour  <jlarmour@redhat.co.uk>
9419
9420         * Makefile.in (stmp-int-hdrs): Make include subdir here...
9421         (stmp-fixproto): ...rather than here.
9422
9423 Mon Apr  3 00:50:06 2000  Jason Eckhardt <jle@cygnus.com>
9424
9425         * pa.c (print_operand): Compute 'base' only inside the code paths
9426         that use it.
9427
9428 2000-04-03  Geoffrey Keating  <geoffk@cygnus.com>
9429
9430         * stor-layout.c (byte_from_pos): Use TRUNC_DIV_EXPR rather than
9431         CEIL_DIV_EXPR.
9432
9433 2000-04-03  Philipp Thomas  <pthomas@suse.de>
9434
9435         * i386.h (TARGET_SWITCHES): Remove bogus empty strings, fix typo.
9436
9437 Mon Apr  3 00:02:59 2000  Brad Lucier <lucier@math.purdue.edu>
9438
9439         * Makefile.in (alias.o): Depend on $(TREE_H).
9440
9441 2000-04-02  Zack Weinberg  <zack@wolery.cumb.org>
9442
9443         * cppinit.c (cpp_start_read): Turn off -Wtraditional if
9444         processing C++.
9445         * cpplib.c (_cpp_handle_directive): Improve warnings for
9446         traditional C and indented directives.
9447
9448         * enquire.c, gsyslimits.h, limity.h, config/convex/fixinc.convex,
9449         fixinc/fixinc.irix, fixinc/fixinc.sco, fixinc/fixinc.wrap,
9450         fixinc/inclhack.def: Indent the # of #include_next one space.
9451         * cp/rtti.c: Un-indent #if and #endif.
9452
9453         * cppexp.c (_cpp_parse_expr): If lex returns '#', it's a
9454         syntax error, but an error has already been printed.
9455         * cpplex.c (_cpp_parse_assertion): Give a more specific error
9456         message when called with nothing remaining on the line.
9457         (_cpp_lex_token): If _cpp_parse_assertion fails, return an
9458         OTHER token, not an ASSERTION.
9459         * cpplib.c (do_assert): When we create a 'base' node, clear
9460         its aschain pointer.
9461
9462 2000-04-02  Neil Booth <NeilB@earthling.net>
9463
9464         * cppexp.c:  New typedef op_t.  struct operation and struct
9465         token updated to use it.
9466         (op_to_str): New function.
9467         (_cpp_parse_expr): Error messages modified to use op_to_str.
9468
9469 2000-04-02  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9470
9471         * config/c4x/c4x.c (c4x_function_arg): Check for void_type_node
9472         before checking MUST_PASS_IN_STACK.
9473
9474 2000-04-02  Neil Booth <NeilB@earthling.net>
9475
9476         * cppexp.c:  New FINISHED dummy token.  Combine operator initial
9477         flags and initial priority into a single constant.  New
9478         EQUALITY macro.  New operator flag SHORT_CIRCUIT.
9479         (_parse_cpp_expr): Implement new constants.  Take left operand
9480         checks out of reduction loop.  Handle SHORT_CIRCUIT.  End of
9481         parse indicated by reducing FINISHED token.  Remove new lines
9482         from cpp_error messages.
9483
9484 2000-04-01  Mark Mitchell  <mark@codesourcery.com>
9485
9486         * emit-rtl.c (gen_rtx_CONST_INT): Create cached CONST_INTs on the
9487         permanent obstack.
9488
9489 2000-04-01  Zack Weinberg  <zack@wolery.cumb.org>
9490
9491         * cpplib.c: Include symcat.h.  Add 'origin' field to struct
9492         directive.  Add origin values to DIRECTIVE_TABLE.  Generate
9493         the strings and function names on the fly.  Take the #sccs
9494         entry out of the table if SCCS_DIRECTIVE is not defined.
9495         (_cpp_handle_directive): Decide if the # was at the beginning
9496         of the line here.  Issue -pedantic warnings for extended
9497         directives here.  Warn about K+R directives with the #
9498         indented, and C89/extended directives with the # not indented,
9499         here.
9500         (do_import, do_include_next, do_warning, do_ident, do_sccs,
9501         do_assert, do_unassert): Don't issue pedantic warning here.
9502
9503         * cpphash.h: Add CPP_WTRADITIONAL macro.
9504         * cpplib.h (struct cpp_options): Rename warn_stringify to
9505         warn_traditional; update comments.
9506         * cppinit.c (handle_option): Set warn_traditional not
9507         warn_stringify.
9508         * cpphash.c: Replace CPP_OPTION (pfile, warn_stringify) with
9509         CPP_WTRADITIONAL (pfile).
9510         * cpplex.c (_cpp_lex_token): Don't decide if directives should
9511         be ignored in -traditional mode here.
9512
9513         * cpplex.c: Copy ISTABLE macros from cppinit.c, and adapt them
9514         to initialize speccase[] and trigraph_map[].  Delete all
9515         references to pfile->input_speccase.  Always treat '?' as a
9516         special character.  Remove table-initialization code from
9517         _cpp_init_input_buffer.
9518
9519         * cpplib.h (struct cpp_reader): Remove input_speccase field.
9520         * cppinit.c (cpp_cleanup): Don't free input_speccase.
9521
9522 2000-04-01  Richard Henderson  <rth@cygnus.com>
9523
9524         * Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once.
9525         (mostlyclean): Likewise.
9526
9527         * toplev.c (rtl_dump, jump_opt_dump, etc): Remove.
9528         (struct dump_file_info, enum dump_file_index, dump_file): New.
9529         (open_dump_file): Take a dump_file_index not a suffix, and a decl
9530         not a string.  Clean out file if we havn't yet done so.  Do nothing
9531         if the dump isn't enabled.
9532         (close_dump_file): Do nothing if the dump isn't open.  Dump
9533         graph data if requested.
9534         (dump_rtl, clean_dump_file): Remove.
9535         (compile_file): Don't clean the dump files.  Only finalize .bp dump
9536         if flag_test_coverage or flag_branch_probabilities.  Only finalize
9537         .combine dump if optimizing.  Iterate over dump_file to finalize the
9538         graph dumps.
9539         (rest_of_compilation): Update for open_dump_file/close_dump_file.
9540         Convert all uses of dump_rtl.
9541         (decode_d_option): Iterate over dump_file to implement 'a' and to
9542         locate pass-specific dumps.
9543
9544 2000-04-01  Neil Booth <NeilB@earthling.net>
9545
9546         * cppexp.c: Redefine priority constants.
9547         (_cpp_parse_expr): Replace left and right priority scheme with
9548         single priority logic.  Move LOGICAL to same place as COMPARE.
9549         Remove bogus check for multiple unary +/- operators.
9550
9551 2000-04-01  Neil Booth <NeilB@earthling.net>
9552
9553         * cppexp.c: (_cpp_parse_expr): Numerical constants are pushed
9554         within the switch statement.  Binary operations break out of
9555         the switch naturally.  '(' tokens handled by forcing
9556         immediate shift.  ')' handled by forcing immediate reduce to
9557         the previous '('.  New error messages.
9558
9559 2000-03-31  Geoff Keating  <geoffk@cygnus.com>
9560
9561         * config/rs6000/rs6000.c (print_operand): Don't use %l for 'low
9562         part', it's already in use.  Use %K instead.  Add a return at the
9563         end of what is now %K.
9564         * config/rs6000/rs6000.md (elf_low): Use %K instead of %l.
9565
9566 Sat Apr  1 02:05:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
9567
9568         * builtins.c  (expand_builtin_apply):  Pass proper parameters to
9569         allocate_dynamic_stack_space.
9570         * calls.c (emit_call_1):  Do not adjust stack pointer for SIB,
9571         update stack_pointer_delta; do not update arg_size_so_far.
9572         (compute_argument_block_size): Use stack_delta instead of
9573         stack_pointer_pending and arg_size_so_far.
9574         (expand_call): Add sanity checking for stack_pointer_delta;
9575         save and restore stack_pointer_delta for SIB, use
9576         stack_pointer_delta for alignment; do not update arg_space_so_far.
9577         (emit_library_call_value): Use stack_pointer_delta for alignment.
9578         (store_one_arg): Do not update arg_space_so_far.
9579         * explow.c (adjust_stack, anti_adjust_stack): Update
9580         stack_pointer_delta.
9581         (allocate_dynamic_stack_space): Add sanity checking for
9582         stack_pointer_delta.
9583         * expr.c (init_expr, clear_pending_stack_adjust): Clear
9584         stack_pointer_delta.
9585         (emit_push_insn): Update stack_pointer_delta.
9586         * function.h (struct expr_status): Add x_stack_pointer_delta;
9587         remove x_arg_space_so_far.
9588         (arg_space_so_far): Remove.
9589         (stack_pointer_delta): New macro.
9590
9591 2000-03-31  Zack Weinberg  <zack@wolery.cumb.org>
9592
9593         * cpplib.h: Merge struct cpp_options into struct cpp_reader.
9594         Reorder struct cpp_options and struct cpp_reader for better
9595         packing.  Replace CPP_OPTIONS macro with CPP_OPTION which
9596         takes two args.  Change all 'char' flags to 'unsigned char'.
9597         Move show_column flag into struct cpp_options.  Don't
9598         prototype cpp_options_init.
9599         * cpphash.h, cpperror.c, cppexp.c, cppfiles.c, cpphash.c,
9600         cppinit.c, cpplex.c, cpplib.c:
9601         Replace CPP_OPTIONS (pfile)->whatever with
9602         CPP_OPTION (pfile, whatever), and likewise for
9603         opts = CPP_OPTIONS (pfile); ... opts->whatever;
9604
9605         * cppinit.c (merge_include_chains): Take a cpp_reader *.
9606         Extract CPP_OPTION (pfile, pending) and work with that
9607         directly.
9608         (cpp_options_init): Delete.
9609         (cpp_reader_init): Turn on on-by-default options here.
9610         Allocate the pending structure here.
9611         (cl_options, enum opt_code): Define these from the same table,
9612         kept in a large macro.  Add -fshow-column and -fno-show-column
9613         options.
9614
9615         * cpperror.c (v_message): If show_column is off, don't print
9616         the column number.
9617
9618         * cppmain.c: Update for new interface.
9619         * fix-header.c: Likewise.
9620
9621 2000-03-30  Geoff Keating  <geoffk@cygnus.com>
9622
9623         * config/rs6000/t-aix43 (AR_FLAGS_FOR_TARGET): Adjust for new
9624         definition.
9625         * Makefile.in (AR_FLAGS_FOR_TARGET): Is now the flags that
9626         are passed to any invocation of AR_FOR_TARGET.
9627         (AR_CREATE_FOR_TARGET): New macro.
9628         (AR_EXTRACT_FOR_TARGET): New macro.
9629         (ORDINARY_FLAGS_TO_PASS): Add AR_CREATE_FOR_TARGET,
9630         AR_EXTRACT_FOR_TARGET.
9631         (many places): Use AR_CREATE_FOR_TARGET, AR_EXTRACT_FOR_TARGET
9632         in place of `$(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET)' and
9633         `$(AR_FOR_TARGET) x'.  Pass AR_CREATE_FOR_TARGET and
9634         AR_EXTRACT_FOR_TARGET to sub-makes.
9635
9636 2000-03-31  Neil Booth <NeilB@earthling.net>
9637
9638         * cppexp.c: Delete SKIP_OPERAND.  Correct priority
9639         PAREN_INNER_PRIO.
9640         (_cpp_parse_expr): Check for multiple unary +/- operators.
9641         Correct priorities of ':' and '?'.  Treat ')' as having a
9642         value.  Ensure conditional expression is not void.
9643
9644 2000-03-31  Mark Mitchell  <mark@codesourcery.com>
9645
9646         * alias.c (canon_rtx): Make it global.
9647         (rtx_equal_for_memref_p): CONST_INT equality is now pointer
9648         equality.
9649         * cse.c (struct table_elt): Add canon_exp.
9650         (insert): Clear it.
9651         (invalidate): Canonicalize expressions only once.
9652         * rtl.h (canon_rtx): Declare.
9653
9654 2000-03-30  Mark Mitchell  <mark@codesourcery.com>
9655
9656         * Makefile.in (emit-rtl.o): Depend on HASHTAB_H.
9657         * alias.c (reg_known_value): Add comments.
9658         (init_alias_analysis): Likewise.
9659         * cse.c (exp_equiv_p): CONST_INTs are equal iff they have the same
9660         address.
9661         (cse_basic_block): Fix typo in comment.
9662         * emit-rtl.c: Include hashtab.h.
9663         (const_int_htab): New variable.
9664         (const_int_htab_hash): New function.
9665         (const_int_htab_eq): Likewise.
9666         (rtx_htab_mark_1): Likewise.
9667         (rtx_htab_mark): Likewise.
9668         (gen_rtx_CONST_INT): Cache all CONST_INTs.
9669         (unshare_all_rtx): Fix formatting.
9670         (init_emit_once): Initialize const_int_htab.
9671         * rtl.c (rtx_equal_p): CONST_INTs are equal iff they have the same
9672         address.
9673         * rtl.texi: Document the fact that all CONST_INTs with the same
9674         value are shared.
9675
9676 2000-03-30  Richard Henderson  <rth@cygnus.com>
9677
9678         * alpha.h (FUNCTION_BOUNDARY): Reduce to 128 bits.
9679
9680 2000-03-30  Zack Weinberg  <zack@wolery.cumb.org>
9681
9682         * configure.in: Comment out --enable-c-cpplib stanza.
9683         * configure: Regenerate.
9684
9685 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9686
9687         * expr.c (store_constructor): Properly compute displacement and
9688         alignment when offset is variable.
9689
9690         * expmed.c (store_bit_field, store_fixed_bit_field): Fix more
9691         cases of alignment in bytes.
9692
9693 Thu Mar 30 13:30:40 2000  Jeffrey A Law  (law@cygnus.com)
9694
9695         * c-parse.in (cast_expr): Move change from March 21 into c-parse.in
9696         since it is used to generate c-parse.y.
9697         * objc-parse.c, objc-parse.y: Regenerated.
9698
9699         * function.c (expand_function_end): Pass alignment argument to
9700         emit_block_move in bits, not bytes.
9701
9702 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9703
9704         * expr.c (move_by_pieces_ninsns): Fix one more missing align
9705         correction.
9706
9707         * expmed.c (store_fixed_bit_field): STRUCT_ALIGN is in bits.
9708
9709         * calls.c (expand_call): Pass bit alignment to mark_reg_pointer.
9710         * explow.c (memory_address, allocate_dynamic_stack_space): Likewise.
9711         * function.c (assign_parms): Likewise.
9712         * integrate.c (expand_inline_function): Likewise.
9713         * stmt.c (expand_decl): Likewise.
9714         (copy_rtx_and_substitute): Likewise.
9715         * expr.c (expand_expr, expand_expr_unaligned): Likewise.
9716         (clear_by_pieces): Fix error in last change.
9717         * emit-rtl.c (init_emit): Set known registers alignment in bits.
9718         * function.h (regno_pointer_align): Now unsigned.
9719         * config/arm/arm.c (alignable_memory_operand): REGNO_POINTER_ALIGN
9720         is in bits.
9721         * config/i386/i386.c (aligned_operand): Likewise.
9722         * config/sparc/sparc.c (mem_min_alignment): Likewise.
9723         * config/alpha/alpha.c (aligned_memory_operand): Likewise.
9724         (unaligned_memory_operand): Likewise.
9725         (alpha_expand_block_move, alpha_expand_block_clear): Likewise.
9726         Also make alignments and sizes unsigned and some whitespace cleanup.
9727         (alpha_va_start): Do nothing if VALIST's type is error_mark_node.
9728
9729         * builtins.c (get_pointer_alignment): Use host_integerp & tree_low_cst.
9730         (expand_builtin_apply): Pass alignment to emit_block_move in bits.
9731         (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
9732         (expand_builtin_memset): Likewise, but to clear_storage.
9733         * calls.c (save_fixed_argument_area): Likewise, to move_by_pieces.
9734         (restore_fixed_argument_area): Likewise.
9735         (store_unaligned_arguments_into_pseudos): Likewise, to store_bit_field.
9736         (load_register_parameters): Likewise, to emit_group_load.
9737         (expand_call): Likewise, to emit_group_store and emit_block_move.
9738         (emit_library_call_value_1): Likewise, to emit_block_move.
9739         (store_one_arg): Likewise, and to emit_push_insn.
9740         * expmed.c (extract_bit_field): Alignment is in bits, not bytes.
9741         (extract_fixed_bit_field, extract_split_bit_field): Likewise.
9742         * expr.c (move_by_pieces, move_by_pieces_ninsns): Likewise.
9743         (emit_block_move, emit_group_load, emit_group_store): Likewise.
9744         (clear_by_pieces, clear_storage, emit_push_insn): Likewise.
9745         (expand_assigment, store_expr, store_constructor_field): Likewise.
9746         (expand_expr_unaligned, do_jump, do_compare_and_jump): Likewise.
9747         (store_constructor, store_field, get_inner_reference): Likewise.
9748         Use host_integerp and tree_low_cst; sizes and positions HOST_WIDE_INT.
9749         (expand_expr, case COMPONENT_REF): Likewise.
9750         (copy_blkmode_from_regs): Use UNSIGNED_HOST_WIDE_INT for sizes
9751         and positions; reindent code.
9752         * expr.h (emit_cmp_insn, emit_cmp_and_jump_insns): Alignment unsigned.
9753         * function.c (purge_addressof_1): Pass bit align to store_bit_field.
9754         (assign_parms): Likewise to emit_group_store.
9755         * optabs.c (prepare_cmp_insn): Alignment is in bits.
9756         (emit_cmp_and_jump_insns, emit_cmp_insn): Likewise, and also unsigned.
9757         * stmt.c (expand_value_return): Pass align in bits to emit_group_load.
9758         (expand_return): Likewise to {extract,store}_bit_field.
9759         * stor-layout.c (get_mode_alignment): Minor cleanup.
9760         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Align is in bits.
9761         * config/sh/sh.h (MOVE_BY_PIECES_P): Likewise.
9762
9763 2000-03-29  Nick Clifton  <nickc@cygnus.com>
9764
9765         * config/arm/arm.h: Undo effects of previous delta:
9766         (ASM_SPEC): Do not define.
9767         (SUBTARGET_EXTRA_ASM_SPEC): Do not define.
9768
9769         * config/arm/linux-elf.h: (SUBTARGET_EXTRA_ASM_SPEC) Fix
9770         typo.
9771
9772 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
9773
9774         * cppinit.c (cpp_start_read): Call initialize_dependency_output
9775         only after reading in the primary source file.
9776
9777 2000-03-29  Geoff Keating  <geoffk@cygnus.com>
9778
9779         * c-common.c (c_common_nodes_and_builtins): The first parameter to
9780         __builtin_va_start and __builtin_va_copy is now either a 'va_list'
9781         or a reference to a va_list.
9782         * builtins.c (stabilize_va_list): Simplify now we don't have to
9783         work around C array address decay.
9784         * c-typeck.c (convert_for_assignment): Handle assignment to
9785         a reference parameter by taking the address of the RHS.
9786         * ginclude/stdarg.h (va_start): Don't take address of first parameter.
9787         (va_copy): Likewise.
9788         (__va_copy): Likewise.
9789         * ginclude/varargs.h (va_start): Likewise.
9790         (__va_copy): Likewise.
9791
9792 Wed Mar 29 15:44:53 2000  Jeffrey A Law  (law@cygnus.com)
9793
9794         * i386/djgpp.h: Remove extraneous "+".
9795
9796         * stmt.c (stmt_loop_nest_empty): Fix thinko in last change.
9797
9798         * calls.c (expand_call): Fix typo in last change.
9799
9800 2000-03-29  Jason Merrill  <jason@casey.cygnus.com>
9801
9802         * tree.c (unsave_expr_1): Don't mess with a TARGET_EXPR that hasn't
9803         been expanded.
9804
9805 Wed Mar 29 15:39:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9806
9807         * stor-layout.c (bit_from_pos, byte_from_pos): New functions.
9808         (pos_from_byte, pos_from_bit, normalize_offset): Likewise.
9809         (normalize_rli, rli_size_so_far, rli_size_unit_so_far): Use them.
9810         * tree.c (bit_position, byte_position): Likewise.
9811         * tree.h: Declare new functions.
9812
9813 2000-03-29  Nick Clifton  <nickc@cygnus.com>
9814
9815         * config/arm/arm.c: Minor formatting changes/
9816         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
9817         already defined.
9818         (ASM_SPEC): Define if not already defined.
9819
9820 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
9821
9822         * cppfiles.c (cpp_read_file): Don't pass zero-length string to
9823         _cpp_calc_hash.
9824
9825 2000-03-29  Jakub Jelinek  <jakub@redhat.com>
9826
9827         * dwarf2out.c (gen_enumeration_type_die): If enum has a negative
9828         value, don't output it as unsigned.
9829
9830 Wed Mar 29 10:53:49 2000  Jeffrey A Law  (law@cygnus.com)
9831
9832         * stmt.c (stmt_loop_nest_empty): Allow cfun->stmt to be NULL.
9833
9834 2000-03-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9835
9836         * c-common.c (c_common_nodes_and_builtins): Don't special case
9837         cplus_mode when declaring builtin bzero/bcmp, always avoid
9838         prototype arguments.
9839
9840 2000-03-29  Bruce Korb  <bkorb@gnu.org>
9841
9842         * fixinc/mkfixinc.sh: Initially set the variable "fixincludes"
9843         to a non-file
9844
9845 Wed Mar 29 15:08:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
9846
9847         Convert ACCUMULATE_OUTGOING_ARGS to an expression.
9848         * calls.c (PUSH_ARGS_REVERSED) Change to expression.
9849         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default value.
9850         (struct arg_data): Remove #ifdef ACCUMULATE_OUTGOING_ARGS.
9851         (save_fixed_argument_area, restore_fixed_argument_area):
9852         conditionize by #ifdef REG_PARM_STACK_SPACE only.
9853         (emit_call): Change #ifdefs on ACCUMULATE_OUTGOING_ARGS
9854         to conditions, handle RETURN_POPS_ARGS on ACCUMULATE_OUTGOING_ARGS.
9855         (precompute_register_parameters): Avoid #ifdefs on
9856         ACCUMULATE_OUTGOING_ARGS and PUSH_ARGS_REVERSED.
9857         (stire_one_args): Likewise.
9858         (expand_call): Likewise; conditionize PUSH_ROUNDING code by PUSH_ARGS.
9859         (emit_library_call_value_1): Likewise.
9860         (compute_argument_block_size): Align to STACK_BOUNDARY only for
9861         ACCUMULATE_OUTGOING_ARGS.
9862         * combine.c (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default
9863         value.
9864         (nonzero_bits): Conditionize PUSH_ROUNDING code by USE_PUSH.
9865         (use_crosses_set_p): Likewise.
9866         * all targets (ACCUMULATE_OUTGOING_ARGS define): Change to
9867         #define ACCUMULATE_OUTGOING_ARGS 1.
9868         * i386.c (ix86_compute_frame_size): Handle ACCUMULATE_OUTGOING_ARGS
9869         frames.
9870         * i386.h (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS): New
9871         constants.
9872         (TARGET_PUSH_ARGS, TARGET_ACCUMULATE_OUTGOING_ARGS): New macros.
9873         (TARGET_SWITCHES): Add push-args, no-push-args,
9874         accumulate-outgoing-args and no-accumulate-outgoing-args.
9875         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): New macro.
9876         * expr.c (ACCUMULATE_OUTGONG_ARGS, PUSH_ARGS): Provide default.
9877         (push_block): Avoid ifdefs on ACCUMULATE_OUTGONG_ARGS
9878         and PUSH_ROUNDING.
9879         (emit_push_insn): Likewise.
9880         * final.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
9881         (final_scan_insn): Avoid ifdefs on ACCUMULATE_OUTGOING_ARGS.
9882         * function.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
9883         (STACK_DYNAMIC_OFFSET): Define correctly for both
9884         ACCUMULATE_OUTGOING_ARGS and normal mode.
9885         * invoke.texi (-mpush_args, -maccumulate-outgoing-args): Document.
9886         * tm.texi (PUSH_ARGS): Document.
9887         (ACCUMULATE_OUTGOING_ARGS, PUSH_ROUNDING): Update documentation.
9888
9889 Wed Mar 29 11:51:13 MET DST 2000  Jan Hubicka  <jh@suse.cz>
9890
9891         * flags.h (flag_optimize_sibling_calls): Declare.
9892         * calls.c (expand_call): Fail sibcall when
9893         !flag_optimize_sibling_calls
9894         * invoke.texi (flag_optimize_sibling_calls): Document.
9895         * toplev.c (flag_optimize_sibling_calls): New global variable.
9896         (f_options): Add flag_optimize_sibling_calls.
9897         (rest_of_compilation): Conditionize
9898         optimize_sibling_and_tail_recursive_calls by
9899         flag_optimize_sibling_calls.
9900         (main): Set flag_optimize_sibling_calls for -O2.
9901         * stmt.c (expand_return): Conditionize tail recursion by
9902         flag_optimize_sibling_calls.
9903
9904 2000-03-29  Richard Henderson  <rth@cygnus.com>
9905
9906         * config/i386/att.h (LOCAL_LABEL_PREFIX): Define.
9907         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Use it.
9908
9909 2000-03-29  Nathan Sidwell  <nathan@codesourcery.com>
9910
9911         * except.c (add_eh_table_entry): Mark type_info's as referenced.
9912
9913 2000-03-29  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
9914
9915         * config/rs6000/aix41.h (CPP_SPEC): Define _ANSI_C_SOURCE if -ansi
9916         is given.
9917         * config/rs6000/aix43.h (CPP_SPEC): Likewise.
9918         * config/rs6000/rs6000.h (CPP_SPEC): Moved to...
9919         * config/rs6000/aix.h: then modified likewise.
9920
9921 2000-03-28  Richard Henderson  <rth@cygnus.com>
9922
9923         * rtl.h: Redistribute enum reg_note documentation.
9924         Kill trailing whitespace.
9925         * rtl.c (reg_note_name): Adjust to match enum reg_note tweeks.
9926         Kill trailing whitespace.
9927
9928 2000-03-28  Zack Weinberg  <zack@wolery.cumb.org>
9929
9930         * cppfiles.c (hash_IHASH): Just return i->hash.
9931         (cpp_included): Set dummy.hash using _cpp_calc_hash.  Use
9932         htab_find_with_hash.
9933         (cpp_read_file): Likewise.
9934         (find_include_file): Likewise.  Properly initialize
9935         ih->nshort.  Share ih->name and ih->nshort if possible.
9936         * cpphash.c (_cpp_calc_hash): New function.
9937         (hash_HASHNODE): Just return h->hash.
9938         (_cpp_lookup): Set dummy.hash using _cpp_calc_hash.  Use
9939         htab_find_with_hash.
9940         * cpphash.h: Prototype _cpp_calc_hash.
9941         * cppinit.c (initialize_builtins): Provide a valid hash
9942         to _cpp_make_hashnode, using _cpp_calc_hash.
9943
9944         * cpphash.c (collect_expansion): # is not a special character
9945         in object-like macros.  In -traditional mode, /**/ is not
9946         token paste at the beginning or end of the line.
9947         * cpplib.c (do_include, do_import, do_include_next): If
9948         parse_include fails, return immediately.
9949
9950 2000-03-28  Jason Merrill  <jason@casey.cygnus.com>
9951
9952         * config/arm/arm.md (return peepholes): Update to reflect the new
9953         call insn patterns.
9954         * config/arm/arm.c (arm_volatile_func): Also check
9955         current_function_nothrow.
9956         (output_return_instruction, output_func_prologue): Use it.
9957         (arm_output_epilogue, arm_expand_prologue): Likewise.
9958
9959 2000-03-27  Tom Tromey  <tromey@cygnus.com>
9960
9961         * gcc.c (handle_braces): In {x*...} case, break out of loop if
9962         switch is found.
9963
9964 Tue Mar 28 11:55:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9965
9966         * expr.c (store_constructor): SIZE now signed.
9967         For EXPR_SIZE, don't evaluate size; just needed if constant.
9968         * fold-const.c (fold): Fix a number of cases when folded tree is
9969         wrong type.
9970         * function.c (flush_addressof): Reenable.
9971         * tree.h (flush_addressof): Likewise.
9972         * toplev.c (independent_decode_option): Look at strings_processed.
9973         * config/alpha/alpha.h (MINIMUM_ATOMIC_ALIGNMENT): Cast to unsigned.
9974
9975 Tue Mar 28 08:29:46 2000  Jan Hubicka  <jh@suse.cz>
9976
9977         * sibcall.c (indentify_call_return_value): Find last call in the chain;
9978         Allow stack adjustment after function call.
9979
9980         * regmove.c (struct csa_memlist): Make mem field rtx *.
9981         (record_one_stack_ref): Accept rtx * instead of rtx as parameter.
9982         (try_apply_stack_adjustment): Replace whole MEM rtx.
9983         (combine_stack_adjustments_for_block): Update calls
9984         to record_one_stack_ref.
9985
9986 2000-03-28  Neil Booth  <NeilB@earthling.net>
9987
9988         * cpplex.c (_cpp_read_and_prescan): Mark end of input buffer with
9989         '\\' rather than a null character, so nulls are not special.  Fix
9990         "\\\n" handling in end-of-buffer conditions.  Use trigraph map to
9991         speed trigraph conversion.
9992         (_cpp_init_input_buffer): Initialize trigraph map.
9993
9994 2000-03-27  Alan Modra  <alan@linuxcare.com.au>
9995
9996         * config/i386/i386.c (output_387_binary_op): Correct intel
9997         mode assembly output, and add spaces after commas in AT&T
9998         output.  Correct Unixware assembler comment.  Document input
9999         constraints.  Comment fp operations.  Reduce profligate buffer
10000         size.  Remove extraneous abort.  Localize temp var.
10001         (SYSV386_COMPAT): Define.  Add !SYSV386_COMPAT code.
10002         (output_fix_trunc): Add spaces after commas in assembly output.
10003
10004 2000-03-27  Richard Henderson  <rth@cygnus.com>
10005
10006         * i386-protos.h (ix86_match_ccmode): Declare.
10007         * i386.c (ix86_match_ccmode): New.
10008         (ix86_expand_fp_compare): Update for pattern renames.
10009         (ix86_expand_strlensi_unroll_1): Likewise.
10010         * i386.h (EXTRA_CC_MODES): Add CCZ.
10011         (SELECT_CC_MODE): Use it for EQ/NE zero.
10012         * i386.md (cmpsi_ccz_1): New.
10013         (cmpqi_ccz_1): New.
10014         (*testsi_ccz_1): New.
10015         (testqi_ccz_1): New.
10016         (cmpsi_ccno_1): Rename from cmpsi_0.
10017         (testsi_ccno_1): Rename from testsi_1.
10018         (testqi_ccno_1): Rename from testqi_1.
10019         (*testqi_ext_ccz_0): Rename from testqi_ext_0.
10020         (testqi_ext_ccno_0): Rename from *testqi_ext_1.
10021         (*cmphi_0): Use ix86_match_ccmode.
10022         (*cmpqi_ext_2, *addsi_2, *addhi_2, *addqi_2): Likewise.
10023         (*subsi_2, *subhi_2, *subqi_2, *testhi_1): Likewise.
10024         (*testqi_ext_1, *testqi_ext_2, *testqi_ext_3): Likewise.
10025         (*andsi_2, *andhi_2, *andqi_2, *andqi_ext_0_cc): Likewise.
10026         (*iorsi_2, *iorhi_2, *iorqi_2): Likewise.
10027         (*xorsi_2, *xorhi_2, *xorqi_cc_1): Likewise.
10028         (*one_cmplsi2_2, *one_cmplhi2_2, *one_cmplqi2_2): Likewise.
10029         (*ashlsi3_cmpno, *ashlhi3_cmpno, *ashlqi3_cmpno): Likewise.
10030         (*ashrsi3_cmpno, *ashrhi3_cmpno, *ashrqi3_cmpno): Likewise.
10031         (*lshrsi3_cmpno, *lshrhi3_cmpno, *lshrqi3_cmpno): Likewise.
10032         (appropriate peepholes): Likewise.
10033         (*cmphi_1, *cmpqi_ccno_1, *cmpqi_1): Star out name.
10034         (*subsi_3, *subhi_3, *subqi_3): Remove.
10035         (*negdi2_1+1 splitter): Use CCZ for neg patterns.
10036         (*negsi2_cmp, *neghi2_cmp, *negqi2_cmp): Remove.
10037         (*negsi2_cmpz): Rename from *negsi2_cmpno, use CCZ.
10038         (*neghi2_cmpz, *negqi2_cmpz): Similarly.
10039         (x86_shift_adj_1): Use CCZ.
10040         (*dbra_ge+1, *dbra_ge+2, ffssi2, ffssi_1): Likewise.
10041
10042 2000-03-27  Stan Cox  <scox@cygnus.com>
10043
10044         * resource.h (mark_resource_type): New.
10045         * resource.c (find_dead_or_set_registers, mark_target_live_regs,
10046         find_free_register): Use mark_resource_type.
10047         (mark_set_resources): Change include_delayed_effects
10048         to mark_resource_type.
10049         * reorg.c (steal_delay_list_from_target, try_merge_delay_insns,
10050         redundant_insn, fill_simple_delay_slots, fill_slots_from_thread):
10051         Use mark_resource_type.
10052
10053 2000-03-27  Richard Henderson  <rth@cygnus.com>
10054
10055         * i386.md (call_pop_0, call_value_pop_0): New.
10056         (call_pop_1): Remove constraint from unused arg.  Support sibcalls.
10057         (call_value_pop_1): Likewise.
10058         (call_0, call_value_0): New.
10059         (call_1, call_value_1): Remove constraint from unused arg.
10060
10061 2000-03-27  Nick Clifton  <nickc@cygnus.com>
10062
10063         * invoke.texi (Spec Files): Document new spec % command created by
10064         Tom Tromey's recent patch.
10065
10066 2000-03-27  Jakub Jelinek  <jakub@redhat.com>
10067
10068         * libgcc2.h (MIN_UNITS_PER_WORD): Define to UNITS_PER_WORD
10069         if not defined.
10070
10071 Mon Mar 27 06:04:22 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10072
10073         * expr.c (expand_assignment): Fix typo in last change.
10074
10075         * libgcc2.h: Use MIN_UNITS_PER_WORD, not UNITS_PER_WORD.
10076
10077 Sun Mar 26 20:15:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10078
10079         * c-convert.c (convert): Return if output or input type is ERROR_MARK.
10080         * c-decl.c (duplicate_decls): Only look at DECL_BUILT_IN_NONANSI
10081         and DECL_INLINE if FUNCTION_DECL.
10082         (pushdecl, redeclaration_error_message): Likewise, for DECL_INLINE.
10083         (store_parm_decls): Check for type of PARM_DECL being ERROR_MARK.
10084         Use DECL_WEAK, not DECL_RESULT, to flag for already seen.
10085         (combine_parm_decls): Likewise.
10086         * ggc-common.c (gcc_mark_tree_children, case 'd'): Use DECL_RESULT_FLD.
10087         * print-tree.c (print_node): Likewise.
10088         Only test DECL_PACKED, DECL_INLINE, DECL_BIT_FIELD, and
10089         DECL_TRANSPARENT_UNION on proper decl types.
10090         Properly handly DECL_INCOMING_RTL and DECL_SAVED_INSNS.
10091         * stor-layout.c (layout_decl): Only check DECL_PACKED and
10092         DECL_BIT_FIELD of FIELD_DECL.
10093         * tree.h (DECL_RESULT_FLD): New macro.
10094
10095         * expr.c (expand_assignment): Add code to handle variable-sized
10096         BLKmode case.
10097
10098 2000-03-26  Richard Henderson  <rth@cygnus.com>
10099
10100         * calls.c (expand_call): Pass parms not original exp to
10101         optimize_tail_recursion.  Mind return value instead of looking
10102         for a barrier.
10103         * stmt.c (optimize_tail_recursion): Take parameter list, not entire
10104         call_expr.  Move checks for call_expr and current_function_decl ...
10105         (expand_return): ... here.
10106
10107 2000-03-26  Tom Tromey  <tromey@cygnus.com>
10108
10109         * gcc.c (handle_braces): Recognize `%{<S}' construct.
10110         (SWITCH_OK, SWITCH_FALSE, SWITCH_IGNORE, SWITCH_LIVE): New
10111         defines.
10112         (process_command): Use them.
10113         (check_live_switch): Likewise.
10114         (give_switch): Skip ignored switches.
10115
10116 2000-03-26  Jan Hubicka  <jh@suse.cz>
10117
10118         * jump.c (jump_optimize_1): Fix typo in elide optimizations
10119         for minimal jump pass test.
10120
10121 2000-03-26  Mark Mitchell  <mark@codesourcery.com>
10122
10123         * integrate.c (function_cannot_inline_p): Do inline functions that
10124         return `void'.
10125
10126 Sun Mar 26 11:37:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10127
10128         * stor-layout.c (layout_type, set_sizetype): early_type_list is
10129         now a list of TREE_LIST entries, not types.
10130         * tree.c (build_common_tree_nodes_2): Eliminate dupliate type sets.
10131
10132         * expmed.c (extract_bit_field): Ensure BITS_PER_WORD is signed in MAX.
10133         * config/arm/pe.c (arm_pe_return_in_memory): Use host_integerp and
10134         int_bit_position.
10135         * config/mips/mips.c (function_arg): Likewise; also remove cast
10136         and make variables unsigned or HOST_WIDE_INT and use tree_low_cst.
10137         (mips_function_value): Use int_byte_position and make HOST_WIDE_INT.
10138         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Offsets are unsigned.
10139         * config/mips/mips.h (BITS_PER_WORD, UNITS_PER_WORD): Cast to unsigned.
10140         (UNITS_PER_FPREG, INT_TYPE_SIZE, LONG_TYPE_SIZE): Likewise.
10141         (POINTER_SIZE, POINTER_BOUNDARY,PARM_BOUNDARY): Likewise.
10142         (GP_REG_P, FP_REG_P, MD_REG_P, ST_REG_P): Ensure subtraction signed.
10143         (struct mips_arg): arg_number, arg_words, fp_arg_words, and
10144         num_adjusts now unsigned.
10145         (FUNCTION_ARG_BOUNDARY): Remove unneeded cast.
10146         * config/sparc/sparc.c (struct function_arg_record_value_parms):
10147         NREGS now unsigned.
10148         (function_arg_record_value_1): STARTBITPOS arg now HOST_WIDE_INT
10149         as is BITPOS variable; use host_integerp and int_bit_position.
10150         (function_arg_record_value_2): Likewise.
10151         (function_arg_record_value_3): Arg BITPOS now HOST_WIDE_INT.
10152         Variable REGNO now unsigned.
10153         (function_arg_record_value): NREGS now unsigned.
10154
10155 2000-03-26  Bernd Schmidt  <bernds@cygnus.co.uk>
10156
10157         * jump.c (mark_all_labels): Handle CALL_PLACEHOLDERs.
10158
10159 Sat Mar 25 09:12:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10160
10161         * Rework fields used to describe positions of bitfields and
10162         modify sizes to be unsigned and use HOST_WIDE_INT.
10163         * alias.c (reg_known_value_size): Now unsigned.
10164         * c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position.
10165         (really_start_incremental_init): Use bitsize_zero_node.
10166         (push_init_level, pop_init_level, output_init_element): Likewise.
10167         Use bitsize_unit_node and bitsize_one_node.
10168         (output_pending_init_elements, process_init_element): Likewise.
10169         * combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned.
10170         (make_extraction): Position and length HOST_WIDE_INT and unsigned
10171         HOST_WIDE_INT, respectively.
10172         (get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT.
10173         (num_sign_bit_copies): Returns unsigned.
10174         BITWIDTH now unsigned; rework arithmetic.
10175         Remove recursive call from arg to MAX.
10176         (combine_instructions, init_reg_last_arrays): NREGS now unsigned.
10177         (setup_incoming_promotions, can_combine_p, try_combine, simplify_set):
10178         REGNO now unsigned.
10179         (set_nonzero_bit_and_sign_copies): NUM now unsigned.
10180         (find_split_point, expand_compound_operation, make_extraction): LEN
10181         now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT.
10182         (make_field_assignment): Likewise.
10183         (combine_simplify_rtx): Add cast.
10184         (expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic.
10185         (force_to_mode): WIDTH now unsigned; add cast.
10186         (if_then_else_cond): SIZE now unsigned.
10187         (nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned.
10188         (extended_count): Now returns unsigned.
10189         (simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT.
10190         Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned.
10191         (simplify_comparison): MODE_WIDTH now unsigned.
10192         (update_table_tick): REGNO and ENDREGNO now unsigned; new var R.
10193         (mark_used_regs_combine): Likewise; rework arithmetic.
10194         (record_value_for_reg): REGNO, ENDREGNO, and I now unsigned.
10195         (record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise.
10196         (record_promoted_value): REGNO now unsigned.
10197         (get_last_value_validate): REGNO, ENDREGNO, and J now unsigned.
10198         (get_last_value): REGNO now unsigned.
10199         (use_crosses_set_p): REGNO and ENDREGNO now unsigned.
10200         (reg_dead_regno, reg_dead_endregno): Now unsigned.
10201         (remove_death): Arg REGNO now unsigned.
10202         (move_deaths):  REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned.
10203         (reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO
10204         now unsigned.
10205         * convert.c (convert_to_integer): INPREC and OUTPREC now unsigned.
10206         * cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned.
10207         (struct cse_reg_info): REGNO now unsigned.
10208         (cached_regno): Now unsigned.
10209         (REGNO_QTY_VALID_P): Add cast.
10210         (make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned.
10211         (remove_invalid_regs): Likewise.
10212         (remove_invalid_subreg_refs): Likewise; arg WORD also unsigned
10213         as are variables END and I.
10214         (get_cse_reg_info, insert): Likewise.
10215         (mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned.
10216         (canon_hash): Likewise.
10217         (insert_regs, lookup_for_remove): REGNO now unsigned.
10218         (invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned.
10219         New variable RN.
10220         * dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0.
10221         * dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast.
10222         * emit-rtl.c (subreg_realpart_p): Add cast.
10223         (operand_subword): Arg I is now unsigned as is var PARTWORDS.
10224         (operand_subword_force): Arg I is now unsigned.
10225         * except.c (eh_regs): Variable I is now unsigned.
10226         * explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT.
10227         * expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT;
10228         length is unsigned HOST_WIDE_INT; likewise for internal variables.
10229         (store_split_bit_field, extract_fixed_bit_field): Likewise.
10230         (extract_split_bit_field, store_bit_field, extract_bit_field):
10231         Likewise.
10232         * expr.c (store_constructor_fields, store_constructor, store_field):
10233         Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT.
10234         (expand_assignment, expand_expr, expand_expr_unaligned): Likewise.
10235         (do_jump): Likewise.
10236         (move_by_pieces, move_by_pieces_ninsns, clear_by_pieces):
10237         MAX_SIZE is now unsigned.
10238         (emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned.
10239         (emit_group_store): Likewise.
10240         (emit_move_insn): I now unsigned.
10241         (store_constructor): Use host_integerp, tree_low_cst, and
10242         bitsize_unit_node.
10243         (get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT.
10244         Rework all calculations to use trees and new fields.
10245         * expr.h (promoted_input_arg): Regno now unsigned.
10246         (store_bit_field, extract_bit_field): Adjust types of pos and size.
10247         (mark_seen_cases): Arg is HOST_WIDE_INT.
10248         * flow.c (verify_wide_reg_1): REGNO now unsigned.
10249         * fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT;
10250         precisions and alignments are unsigned.
10251         (optimize_bit_field_compare, fold_truthop): Likewise.
10252         (int_const_binop): Adjust threshold for size_int_type_wide call.
10253         (fold_convert): Likewise.
10254         (size_int_type_wide): Make table larger and fix thinko that only
10255         had half of table used.
10256         (all_ones_mask_p, fold): Precisions are unsigned.
10257         * function.c (put_reg_info_stack): REGNO is unsigned.
10258         (instantiate_decl): Size is HOST_WIDE_INT.
10259         (instantiate_virtual_regs): I is unsigned.
10260         (assign_parms): REGNO, REGNOI, and REGNOR are unsigned.
10261         (promoted_input_arg): REGNO is unsigned.
10262         * function.h (struct function): x_max_parm_reg is now unsigned.
10263         * gcse.c (max_gcse_regno): Now unsigned.
10264         (struct null_pointer_info): min_reg and max_reg now unsigned.
10265         (lookup_set, next_set): REGNO arg now unsigned.
10266         (compute_hash_table): REGNO and I now unsigned.
10267         (handle_avail_expr): regnum_for_replacing now unsigned.
10268         (cprop_insn): REGNO now unsigned.
10269         (delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned.
10270         * ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case.
10271         * global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned.
10272         * hard-reg-set.h (reg_class_size): Now unsigned.
10273         * integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO.
10274         * jump.c (mark_modified_reg): I now unsigned; add cast.
10275         (rtx_equal_for_thread_p): Add cast.
10276         * loop.c (max_reg_before_loop): Now unsigned.
10277         (struct_movable): REGNO now unsigned.
10278         (try_copy_prop): REGNO arg unsigned.
10279         (regs_match_p): XN and YN now unsigned.
10280         (consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned.
10281         (strength_reduce): Likewise; NREGS also unsigned.
10282         (first_increment_giv, last_increment_giv unsigned): Now unsigned.
10283         * loop.h (struct iv_class): REGNO now unsigned.
10284         (max_reg_before_loop, first_increment_giv, last_increment_giv):
10285         Now unsigned.
10286         * machmode.h (mode_size, mode_unit_size): Now unsigned.
10287         (mode_for_size, smallest_mode_for_size): Pass size as unsigned.
10288         * optabs.c (expand_binop): I and NWORDS now unsigned.
10289         (expand_unop): I now unsigned.
10290         * print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do
10291         print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET.
10292         * real.c (significand_size): Now returns unsigned.
10293         * real.h (significand_size): Likewise.
10294         * regclass.c (reg_class_size): Now unsigned.
10295         (choose_hard_reg_mode): Both operands now unsigned.
10296         (record_reg_classes): REGNO and NR now unsigned.
10297         (reg_scan): NREGS now unsigned.
10298         (reg_scan_update): old_max_regno now unsigned.
10299         (reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned.
10300         * reload.c (find_valid_class): BEST_SIZE now unsigned.
10301         (find_dummy_reload): REGNO, NWORDS, and I now unsigned.
10302         (hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned.
10303         Likewise for variable R.
10304         (refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned,
10305         as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R.
10306         (find_equiv_reg): Add casts.
10307         (regno_clobbered_p): Arg REGNO now unsigned.
10308         * reload.h (struct reload): NREGS now unsigned.
10309         (refers_to_regno_for_reload_p): Regno args are unsigned.
10310         (regno_clobbered_p): Likewise.
10311         * reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned.
10312         (compute_use_by_pseudos): REGNO now unsigned.
10313         (find_reg): I and J now unsigned, new variable K, and change loop
10314         variables accordingly; THIS_NREGS now unsigned.
10315         (alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned.
10316         (spill_hard_reg): REGNO arg now unsigned; add casts.
10317         (forget_old_reloads_1): REGNO, NR, and I now unsigned.
10318         (mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned.
10319         (clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO,
10320         END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned.
10321         (reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned.
10322         (choose_reload_regs): MAX_GROUP_SIZE now unsigned.
10323         (emit_reload_insns): REGNO now unsigned.
10324         (reload_cse_move2add): Add cast.
10325         (move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO
10326         and rework loop.
10327         * resource.c (mark_referenced_resources, mark_set_resources): New
10328         variable R; REGNO and LAST_REGNO now unsigned.
10329         (mark_target_live_regs): J and REGNO now unsigned.
10330         * rtl.c (mode_size, mode_unit_size): Now unsigned.
10331         * rtl.h (union rtunion_def): New field rtuint.
10332         (XCUINT): New macro.
10333         (ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT.
10334         (operand_subword, operand_subword_force): Word number is unsigned.
10335         (choose_hard_reg_mode): Operands are unsigned.
10336         (refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned.
10337         (find_regno_note, find_regno_fusage, replace_regs): Likewise.
10338         (regno_use_in, combine_instructions, remove_death): Likewise.
10339         (reg_scan, reg_scan_update): Likewise.
10340         (extended_count): Return is unsigned.
10341         * rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I,
10342         INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO.
10343         (reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned.
10344         (reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned.
10345         (reg_reg_last_1): FIRS and LAST now unsigned.
10346         (dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned.
10347         (dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO
10348         now unsigned.
10349         (find_regno_note, regno_use_in): Arg REGNO now unsigned.
10350         (find_regno_fusage): Likewise; also var REGNOTE now unsigned.
10351         (find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned.
10352         (replace_regs): Arg NREGS now unsigned.
10353         * sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0.
10354         * simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned.
10355         (simplify_binary_operation): Likewise.
10356         (cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and
10357         THIS_LAST now unsigned.
10358         (cselib_record_set): Add cast.
10359         * ssa.c (ssa_max_reg_num): Now unsigned.
10360         (rename_block): REGNO now unsigned.
10361         * stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT;
10362         sizes now unsigned.
10363         (all_cases_count): Just return -1 not -2.
10364         COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT.
10365         Rework tests to use trees whenever possible.
10366         Use host_integerp and tree_low_cst.
10367         (mark_seen_cases): COUNT arg now HOST_WIDE_INT;
10368         Likewise variable NEXT_NODE_OFFSET; XLO now unsigned.
10369         (check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT.
10370         * stor-layout.c (mode_for_size): SIZE arg now unsigned.
10371         (smallest_mode_for_size): Likewise.
10372         (layout_decl): Simplify handing of a specified DECL_SIZE_UNIT.
10373         KNOWN_ALIGN is now an alignment, so simplify code.
10374         Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type.
10375         (start_record_layout): Renamed from new_record_layout_info.
10376         Update to new fields.
10377         (debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far):
10378         New functions.
10379         (place_union_field): Renamed from layout_union_field.
10380         Update to use new fields in rli.
10381         (place_field): Renamed from layout_field.
10382         Major rewrite to use new fields in rli; pass alignment to layout_decl.
10383         (finalize_record_size): Rework to use new fields in rli and handle
10384         union.
10385         (compute_record_mode): Rework to simplify and to use new DECL fields.
10386         (finalize_type_size): Make rounding more consistent.
10387         (finish_union_layout): Deleted.
10388         (layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either.
10389         (layout_type, case RECORD_TYPE): Call new function names.
10390         (initialize_sizetypes): Set TYPE_IS_SIZETYPE.
10391         (set_sizetype): Set TYPE_IS_SIZETYPE earlier.
10392         (get_best_mode): UNIT is now unsigned; remove casts.
10393         * tree.c (bit_position): Compute from new fields.
10394         (byte_position, int_byte_position): New functions.
10395         (print_type_hash_statistics): Cast to remove warning.
10396         (build_range_type): Use host_integerp and tree_low_cst to try to hash.
10397         (build_index_type): Likewise; make subtype of sizetype.
10398         (build_index_2_type): Pass sizetype to build_range_type.
10399         (build_common_tree_nodes): Use size_int and bitsize_int to
10400         initialize nodes; add bitsize_{zero,one,unit}_node.
10401         * tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK.
10402         (DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise.
10403         (DECL_PACKED, DECL_BIT_FIELD): Likewise.
10404         (DECL_FIELD_BITPOS): Deleted.
10405         (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields.
10406         (DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK.
10407         (DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise.
10408         (DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise.
10409         (DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise.
10410         (DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise.
10411         (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise.
10412         (DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK.
10413         (DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK.
10414         (DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise.
10415         (DECL_ALIGN): Adjust to new field in union.
10416         (DECL_OFFSET_ALIGN): New field.
10417         (DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK.
10418         (DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK.
10419         (union tree_decl): Add struct for both aligns.
10420         (enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}.
10421         (bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added.
10422         (struct record_layout_info): Rework fields to have offset
10423         alignment and byte and bit position.
10424         (start_record_layout, place_field): Renamed from old names.
10425         (rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls.
10426         (byte_position, int_byte_position): Likewise.
10427         (get_inner_reference): Change types of position and length.
10428         * unroll.c (unroll_loop): New variable R; use for some loops.
10429         MAX_LOCAL_REGNUM and MAXREGNUM now unsigned.
10430         (calculate_giv_inc): Arg REGNO now unsigned.
10431         (copy_loop_body): REGNO and SRC_REGNO now unsigned.
10432         * varasm.c (assemble_variable): Clean up handling of size using
10433         host_integerp and tree_low_cst.
10434         (decode_addr_const): Use byte, not bit, position.
10435         (output_constructor): bitpos and offsets are HOST_WIDE_INT;
10436         use tree_low_cst and int_bit_position.
10437         * objc/objc-act.c (build_ivar_list_initializer): Use byte_position.
10438
10439 Fri Mar 24 20:13:49 2000  Jason Eckhardt  <jle@cygnus.com>
10440
10441         * bb-reorder.c (REORDER_MOVED_BLOCK_END): Removed.
10442         (reorder_block_def): New members eff_head and eff_end.
10443         (REORDER_BLOCK_EFF_HEAD, REORDER_BLOCK_EFF_END): New macros.
10444         (verify_insn_chain): New function.
10445         (skip_insns_between_block): Add code to skip deleted insns.
10446         Check for note before using.
10447         (chain_reorder_blocks): Replace calls to skip_insns_between_block
10448         with references to REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END.
10449         Check for note before using.
10450         (make_reorder_chain): Use INTVAL rather than XINT to get REG_BR_PROB.
10451         (fixup_reorder_chain): Restructure, clean up, defect removal.
10452         (reorder_basic_blocks): Remove last_insn and references to it.
10453         Moved insn chain verification code into a new function (see above).
10454         Delete defective code that sets last insn.
10455         Initialize REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for
10456         all blocks.
10457
10458 2000-03-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10459
10460         * config/c4x/c4x.h (CPP_SPEC): Remove erroneous space.
10461
10462 2000-03-24  Richard Henderson  <rth@cygnus.com>
10463
10464         * tree.c (lang_safe_for_unsave): Remove.
10465         (unsafe_for_reeval): Transmute and rename from safe_for_unsave,
10466         allowing for two levels of unsafeness.  Remove lang hook.
10467         * tree.h: Update declarations.
10468         * calls.c (expand_call): Rename safe_for_reeval to try_tail_call.
10469         Create temporary VAR_DECLs to protect very unsafe_for_reeval trees.
10470         Always fail sibcalls when there are pending cleanups.
10471
10472 2000-03-24  Geoff Keating  <geoffk@cygnus.com>
10473
10474         * flow.c (propagate_block): When we delete an ADDR_VEC,
10475         also delete the BARRIER following it if there is one.
10476
10477 2000-03-24  Richard Henderson  <rth@cygnus.com>
10478
10479         * builtins.c (expand_builtin_bzero): Convert `length' argument
10480         to sizetype.
10481
10482 2000-03-24  Jakub Jelinek  <jakub@redhat.com>
10483
10484         * sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for
10485         comparison if regno's are equal.
10486         * calls.c (initialize_argument_informat): Add ecf_flags argument.
10487         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
10488         (expand_call): Update caller.
10489         Avoid making a sibling call if argument size of the callee is larger
10490         than argument size of the caller.
10491         Call hard_function_value with outgoing set if in sibcall pass.
10492         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
10493
10494         * final.c (permitted_reg_in_leaf_functions, only_leaf_regs_used):
10495         Change LEAF_REGISTERS from an array initializer to actual array
10496         identifier. Move static global variable into the function.
10497         (leaf_function_p): Allow SIBLING_CALL_P calls even outside of
10498         sequences for leaf functions.
10499         * global.c (global_alloc): Likewise.
10500         * tm.texi (LEAF_REGISTERS): Update documentation.
10501
10502         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Remove the ugly
10503         TARGET_FLAT leaf disabling hack.
10504         (LEAF_REGISTERS): Changed from an array initializer to actual array
10505         identifier to avoid duplication and remove the above hack.
10506         (FUNCTION_OK_FOR_SIBCALL): Define.
10507         * config/sparc/sparc.md (sibcall): New attr type. Use it almost
10508         always like call attribute.
10509         (eligible_for_sibcall_delay): New attribute.
10510         (sibcall): New delay type.
10511         (sibcall, sibcall_value, sibcall_epilogue): New expands.
10512         (sibcall_symbolic_sp32, sibcall_symbolic_sp64,
10513         sibcall_value_symbolic_sp32, sibcall_value_symbolic_sp64): New insns.
10514         * config/sparc/sparc.c (sparc_leaf_regs): New array.
10515         (eligible_for_sibcall_delay, output_restore_regs, output_sibcall):
10516         New functions.
10517         (output_function_epilogue): Move part of the code into
10518         output_restore_regs.
10519         (ultra_code_from_mask, ultrasparc_sched_reorder): Handle
10520         TYPE_SIBCALL.
10521         * sparc-protos.h (output_sibcall, eligible_for_sibcall_delay): New
10522         prototypes.
10523
10524         * config/sparc/sparc.h (REVERSIBLE_CC_MODE): Revert Jan, 25 change
10525         until infrastructure is finished.
10526
10527 Fri Mar 24 13:49:45 2000  Jeffrey A Law  (law@cygnus.com)
10528
10529         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns here.
10530         (save_parm_insns): Not here.
10531
10532 2000-03-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10533
10534         * builtins.c (expand_builtin_bzero): New function.
10535         (expand_builtin): Handle bzero.
10536
10537         * builtins.def: Add BUILT_IN_BZERO.
10538
10539         * c-common.c (c_common_nodes_and_builtins): Provide builtin
10540         prototype & function for bzero.
10541
10542 2000-03-23  Michael Meissner  <meissner@redhat.com>
10543
10544         * config/alpha/alpha.md (TF floating point insns): Undo 2000-03-21
10545         change adding TARGET_FP to the TF floating point insns, except for
10546         trunctfsf2, which generates direct calls to truncdfsf2.
10547
10548 2000-03-23  Geoff Keating  <geoffk@cygnus.com>
10549
10550         * config/rs6000/rs6000.h (ARG_POINTER_CFA_OFFSET): New definition,
10551         try to protect against middle-end changes that break binary
10552         compatibility.
10553         (DWARF_FRAME_REGISTERS): New definition, likewise for backend.
10554
10555 2000-03-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10556
10557         * config/c4x/c4x.md (load_immed_address):  Add DP reg clobber.
10558
10559 Thu Mar 23 17:10:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10560
10561         * calls.c (expand_call): If TARGET is passed by reference and
10562         is readonly, write a CLOBBER.
10563
10564 2000-03-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10565
10566         * builtins.c (expand_builtin): Handle bcmp.
10567
10568         * builtins.def: Add BUILT_IN_BCMP.
10569
10570         * c-common.c (c_common_nodes_and_builtins): Provide builtin
10571         prototype & function for bcmp.
10572
10573 Thu Mar 23 11:34:39 2000  Jim Wilson  <wilson@cygnus.com>
10574
10575         * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC): Move case 6...
10576         (rtx_needs_barrier, case UNSPEC_VOLATILE): to here.
10577         * config/ia64/ia64.md (pr_restore): Change UNSPEC to UNSPEC_VOLATILE.
10578
10579 Thu Mar 23 16:04:40 2000  Andrew Haley  <aph@cygnus.com>
10580
10581         * config/mips/mips.md (movdf_internal1a): Delete (set 'f', 'F')
10582         alternative when using -fp64 -gp32.
10583
10584 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
10585
10586         * config/rs6000/rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define.
10587         * config/alpha/alpha.h (DWARF_FRAME_RETURN_COLUMN): Define.
10588         * config/sparc/sparc.h (DWARF_FRAME_RETURN_COLUMN): Define.
10589
10590         * frame.h (frame_state): Revert last change.
10591         * frame.c (execute_cfa_insn): Just don't record the save of a CFA reg.
10592         * libgcc2.c (throw_helper): Revert last change.
10593
10594 2000-03-22  Richard Henderson  <rth@cygnus.com>
10595
10596         * stmt.c (expand_asm_operands): Don't promote the temporary.
10597
10598 2000-03-22  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
10599
10600         * builtin.c (get_pointer_alignment): Use DECL_P and TYPE_P macros.
10601         * c-common.c (decl_attributes,check_format_info,truthvalue_conversion,
10602           c_get_alias_set): Likewise.
10603         * c-decl.c (duplicate_decls): Likewise.
10604         * c-typeck.c (default_conversion,build_unary_op): Likewise.
10605         * calls.c (initialize_argument_information): Likewise.
10606         * dwarf2out.c (decl_class_context,add_abstract_origin_attribute):
10607         Likewise.
10608         * dwarfout.c (decl_class_context,output_type): Likewise.
10609         * expr.c (get_inner_reference): Likewise.
10610         * fold-const.c (simple_operand_p,fold): Likewise.
10611         * function.c (aggregate_value_p): Likewise.
10612         * stmt.c (expand_asm_operands): Likewise.
10613         * varasm.c (named_section): Likewise.
10614
10615 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
10616
10617         Implement dwarf2 exception handling for the ARM.
10618         * config/arm/arm.h (INCOMING_RETURN_ADDR_RTX): Define.
10619         (DWARF_FRAME_RETURN_COLUMN): Define.
10620         * config/arm/arm.c (emit_multi_reg_push): Return rtx.  Attach
10621         REG_FRAME_RELATED_EXPR note.
10622         (emit_sfm): Likewise.
10623         (arm_expand_prologue): Set RTX_FRAME_RELATED_P on everything.
10624         * dwarf2out.c (reg_save): Handle saving a register to itself.
10625         (dwarf2out_frame_debug_expr): Handle an intermediate cfa reg.
10626         * except.c (eh_regs): Don't use the static chain reg if it's
10627         callee-saved.
10628         * frame.h (frame_state): Add cfa_saved field.
10629         * frame.c (execute_cfa_insn): Set it.
10630         * libgcc2.c (throw_helper): Don't adjust sp if it's restored in
10631         the epilogue.
10632         * function.c (ARG_POINTER_CFA_OFFSET): Default to FIRST_PARM_OFFSET.
10633         Now takes a parm.
10634         (instantiate_virtual_regs): Adjust.
10635         * tm.texi: Adjust.
10636         * config/m68k/m68k.h (ARG_POINTER_CFA_OFFSET): Don't define.
10637         * config/ns32k/ns32k.h (ARG_POINTER_CFA_OFFSET): Don't define.
10638         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): Take a parm.
10639
10640         * dwarf2out.c (reg_number): Refer to FIRST_PSEUDO_REGISTER.
10641         (initial_return_save): Use DWARF_FRAME_REGNUM, not reg_number.
10642
10643 2000-03-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10644
10645         * builtins.def: New file.
10646
10647         * Makefile.in (TREE_H): Depend on builtins.def.
10648
10649         * builtins.c (built_in_names): Use builtins.def.
10650
10651         * tree.h (built_in_function): Likewise.
10652
10653 2000-03-22  Mark Mitchell  <mark@codesourcery.com>
10654
10655         * tree.c (size_in_bytes): Return size_zero_node, not
10656         integer_zero_node.
10657
10658 2000-03-22  Geoff Keating  <geoffk@cygnus.com>
10659
10660         * config/fp-bit.c (pack_d): Correct the case when a denormal
10661         is rounded up and stops being denormal.
10662
10663 2000-03-21  Richard Henderson  <rth@cygnus.com>
10664
10665         * config/alpha/alpha.c (function_arg): Check for void_type_node
10666         before using MUST_PASS_IN_STACK.
10667
10668 2000-03-21  Stephane Carrez  <stcarrez@worldnet.fr>
10669
10670         * regmove.c (combine_stack_adjustments_for_block): Check that
10671         the stack pointer is a valid memory address.
10672
10673 Wed Mar 22 11:44:50 MET 2000  Jan Hubicka  <jh@suse.cz>
10674
10675         * calls.c: re-install Mar 16 emit_library_call merge.
10676
10677 2000-03-21  Jakub Jelinek  <jakub@redhat.com>
10678
10679         * config/sparc/sparc.c (mem_min_alignment): If not optimizing,
10680         we cannot be sure that if reload_completed base register will
10681         be properly aligned.
10682
10683 2000-03-21  Richard Henderson  <rth@cygnus.com>
10684
10685         * flow.c (delete_block): Fix typo last change.
10686
10687 2000-03-21  Mark Mitchell  <mark@codesourcery.com>
10688
10689         * c-common.c (c_expand_expr_stmt): Use COMPLETE_TYPE_OR_VOID_P,
10690         not COMPLETE_TYPE_P, to check the type of the expression.
10691
10692 2000-03-21  Michael Meissner  <meissner@redhat.com>
10693
10694         * config/alpha/alpha.md (floating point insns): Add TARGET_FP to
10695         all floating point insns that just tested the macro
10696         TARGET_HAS_XFLOATING_LIBS.
10697         (movsf/movdf recognizers): Add separate insns if -mno-fp-regs is
10698         used to only use the gprs.
10699
10700 2000-03-21  Nathan Sidwell  <nathan@codesourcery.com>
10701
10702         * tree.h (COMPLETE_TYPE_P): New macro.
10703         (COMPLETE_OR_VOID_TYPE_P): New macro.
10704         (COMPLETE_OR_UNBOUND_ARRAY_TYPE_P): New macro.
10705         * stor-layout.c (layout_type, case VOID_TYPE): Don't set TYPE_SIZE.
10706         * c-aux-info.c (gen_type): Use them.
10707         * c-common.c (c_expand_expr_stmt): Likewise.
10708         * c-decl.c (poplevel, pushdecl, start_decl, finish_decl,
10709         grokdeclarator, grokparms, finish_struct, start_function,
10710         store_parm_decls, combine_parm_decls): Likewise.
10711         * c-parse.y (cast_expr): Likewise.
10712         * c-typeck.c (require_complete_type, c_sizeof, c_sizeof_nowarn,
10713         c_size_in_bytes, c_alignof, build_component_ref,
10714         build_indirect_ref, build_array_ref, convert_arguments,
10715         build_binary_op, pointer_diff, build_unary_op, digest_init: Likewise.
10716         * calls.c (initialize_argument_information): Likewise.
10717         * convert.c (convert_to_integer): Likewise.
10718         * dbxout.c (dbxout_typedefs, dbxout_type, dbxout_symbol): Likewise.
10719         * dwarfout.c (location_or_const_value_attribute,
10720         output_enumeration_type_die, output_structure_type_die,
10721         output_union_type_die, output_type): Likewise.
10722         * expr.c (safe_from_p, expand_expr): Likewise.
10723         * function.c (assign_parms): Likewise.
10724         * sdbout.c (sdbout_symbol, sdbout_one_type): Likewise.
10725         * tree.c (build_array_type, build_function_type,
10726         build_method_type, build_offset_type, build_complex_type): Likewise.
10727         * c-parse.c, c-parse.h: Regenerated.
10728
10729 2000-03-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10730
10731         * config/c4x/rtems.h: Include config/rtems.h.
10732
10733 Tue Mar 21 09:24:00 2000  Denis Chertykov  <denisc@overta.ru>
10734
10735         * config/avr/avr.c (encode_section_info): sets SYMBOL_REF_FLAG if
10736         decl is a FUNCTION_DECL
10737
10738 Mon Mar 20 19:53:53 2000  Jim Wilson  <wilson@cygnus.com>
10739
10740         * config/ia64/ia64.c (ia64_expand_prologue): Don't abort if leaf
10741         function uses output registers.  Don't save RP for leaf functions.
10742         Do save RP even if no epilogue.
10743         * config/ia64/ia64.h (FIXED_REGISTERS): Unmark in/out registers.
10744         (CALL_USED_REGISTERS): Unmark in registers.
10745         (REG_ALLOC_ORDER): Move out regs up, to near the top.  Move in regs up,
10746         to near the middle.
10747
10748 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
10749
10750         * config/rs6000/rs6000.md (bunordered): New expander.
10751         (bordered): New expander.
10752         (buneq): New expander.
10753         (bunge): New expander.
10754         (bungt): New expander.
10755         (bunle): New expander.
10756         (bunlt): New expander.
10757         (bltgt): New expander.
10758
10759         * config/rs6000/rs6000.c (ccr_bit): Handle unordered comparisons.
10760         (ccr_bit_negated_p): New function.
10761         (print_operand): For %C, generate appropriate cror for UNEQ,
10762         UNLT, UNGT, and LTGT.  For %T and %t, use ccr_bit_negated_p.
10763
10764 2000-03-20  Andreas Jaeger  <aj@suse.de>
10765
10766         * sdbout.c (sdbout_one_type): Add braces to avoid "ambigous else"
10767         warning.
10768
10769         * tree.h (safe_for_unsave): Prototype.
10770
10771 2000-03-20  Richard Henderson  <rth@cygnus.com>
10772
10773         * regmove.c (stack_memref_p): Fix typo, reorg for readability.
10774         (combine_stack_adjustments_for_block): Don't allow sp references
10775         in the side of a set we're not fixing up.
10776         * toplev.c (rest_of_compilation): Run combine_stack_adjustments
10777         after life_analysis.
10778
10779 2000-03-20  Richard Henderson  <rth@cygnus.com>
10780
10781         * calls.c (expand_call): Don't bother generating tail call
10782         sequences if there are pending cleanups.  Use
10783         expand_start_target_temps/expand_end_target_temps to elide
10784         cleanups created during sibcall expansion.
10785
10786 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
10787
10788         * configure.in: Set $IFS to a value if it doesn't already have one
10789         in the --enable-checking handling.
10790         * configure: Regenerate.
10791
10792 2000-03-20  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
10793
10794         * c-parse.in (SAVE_WARN_FLAGS): Use size_int.
10795         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
10796         Regenerated.
10797
10798 Mon Mar 20 11:43:15 MET 2000  Jan Hubicka  <jh@suse.cz>
10799
10800         * jump.c (delete_noop_moves): Remove code attempting to
10801         combine stack adjustments.
10802
10803 2000-03-19  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
10804
10805         * emit-rtl.c (push_to_full_sequence, end_full_sequence): New functions.
10806         * except.c (emit_cleanup_handler): Use them.
10807         (expand_end_all_catch): Likewise.
10808         * function.c (fixup_var_refs): Likewise.
10809         (expand_function_end): Clear catch_clauses_last.
10810         * rtl.h (push_to_full_sequence, end_full_sequence): Declare.
10811         * except.h (struct eh_status): New field x_catch_clauses_last.
10812         (catch_clauses_last): New define.
10813
10814         * Makefile.in (tree.o): Depend on HASHTAB_H.
10815         * tree.c: Include hashtab.h.
10816         (struct type_hash): Remove next field.
10817         (TYPE_HASH_SIZE): Remove.
10818         (TYPE_HASH_INITIAL_SIZE): New define.
10819         (type_hash_table): Change type to htab_t.
10820         (type_hash_eq, type_hash_hash, print_type_hash_statistics,
10821         mark_hash_entry): New functions.
10822         (init_obstacks): Allocate type hash.
10823         (type_hash_lookup): Use htab functions.
10824         (type_hash_add, mark_type_hash): Likewise.
10825         (dump_tree_statistics): Call print_type_hash_statistics.
10826
10827 2000-03-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10828
10829         * rs6000/t-aix41: New file.
10830
10831         * configure.in ({rs6000,powerpc}-ibm-aix4.[12]*): Use it.
10832
10833 Sun Mar 19 13:27:30 2000  Hans-Peter Nilsson  <hp@axis.com>
10834
10835         * tm.texi (Driver): Fix typos and tweak entry for
10836         INCLUDE_DEFAULTS.
10837         Move misplaced STRUCT_FORCE_BLK entry ...
10838         (Storage Layout): ... to here.
10839         (Run-time Target): Recommend having TARGET_MASK_... helper macros.
10840
10841 2000-03-19  Richard Henderson  <rth@cygnus.com>
10842
10843         * flow.c (delete_block): Delete the addr_vec along with the block.
10844         (flow_delete_insn): Decrement LABEL_NUSES when deleting insns that
10845         reference labels.
10846
10847         * fold-const.c (extract_muldiv): Apply type check for defined
10848         overflow to multiply as well as divide.
10849
10850         * stor-layout.c (layout_decl): Don't abort on any zero sized decl.
10851
10852 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
10853
10854         * emit-rtl.c (remove_unncessary_notes): Check that all
10855         NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes have an
10856         associated NOTE_BLOCK.
10857         * function.h (identify_blocks): Update comments.
10858         (reorder_blocks): Declare.
10859         * function.c (identify_blocks): Don't take paramters.
10860         (reorder_blocks): Don't take parameters.
10861         * loop.h (find_loop_tree_blocks): Remove.
10862         (unroll_block_trees): Likewise.
10863         * loop.c (loop_optimize): Don't call find_loop_tree_blocks.  Use
10864         reorder_blocks instead of unroll_block_trees.h
10865         * sibcall.c (optimize_sibling_and_tail_recursive_calls): Likewise.
10866         * stmt.c (find_loop_tree_blocks): Remove.
10867         (unroll_block_trees): Likewise.
10868         * toplev.c (rest_of_compilation): Don't call find_loop_tree_blocks
10869         in whole-function mode.
10870         * tree.h (reorder_blocks): Remove declaration.
10871
10872         * expr.c: Include intl.h.
10873         * Makefile.in (expr.o): Depend on intl.h.
10874
10875 2000-03-18  Richard Henderson  <rth@cygnus.com>
10876
10877         * expr.c (emit_move_insn_1): Clarify cannot_inline message.
10878
10879 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
10880
10881         * tree.h (tree_index): Remove enumerals for integer types.
10882         (integer_type_kind): New type.
10883         (integer_types): New variable.
10884         (char_type_node): Adjust.
10885         (signed_char_type_node): Likewise.
10886         (unsigned_char_type_node): Likewise.
10887         (short_integer_type_node): Likewise.
10888         (short_unsigned_type_node): Likewise.
10889         (integer_type_node): Likewise.
10890         (unsigned_type_node): Likewise.
10891         (long_integer_type_node): Likewise.
10892         (long_unsigned_type_node): Likewise.
10893         (long_long_integer_type_node): Likewise.
10894         (long_long_unsigned_type_node): Likewise.
10895         * tree.c (integer_types): New variable.
10896         (init_obstacks): Register it as a root.
10897
10898 Sat Mar 18 14:38:00 2000  Jason Eckhardt  <jle@cygnus.com>
10899
10900         * bb-reorder.c (reorder_basic_blocks): Update PREV_INSN as well as
10901         NEXT_INSN. Update last insn in chain.
10902
10903 2000-03-17  Jason Merrill  <jason@casey.cygnus.com>
10904
10905         * dwarf2out.c (dwarf2out_decl): Don't emit anything for types
10906         with TYPE_DECL_SUPPRESS_DEBUG set.
10907
10908 2000-03-18  Richard Henderson  <rth@cygnus.com>
10909
10910         * flow.c (make_edges): Use INTVAL to access REG_EH_REGION value.
10911
10912 2000-03-18  Richard Henderson  <rth@cygnus.com>
10913
10914         * i386.c (call_insn_operand): Always allow SYMBOL_REF,
10915         care for HALF_PIC_P.
10916         (expander_call_insn_operand): Remove.
10917         (ix86_expand_epilogue): New arg `emit_return' to control return insn.
10918         * i386.h (PREDICATE_CODES): Update.
10919         * i386.md (all call expanders): Remove predicates, remove special
10920         handling for half-pic.
10921         (*call_1, *call_value_1): Handle SIBLING_CALL_P insns.
10922         (*call_pop_pic2, *call_pic2, *call_value_pop_2, *call_value_2): Remove.
10923         (sibcall_epilogue): New.
10924
10925 2000-03-17  Richard Henderson  <rth@cygnus.com>
10926
10927         * rtlanal.c (single_set): Reject if the parallel has anything
10928         except SET or USE or CLOBBER.
10929
10930 2000-03-17  Jeff Law  <law@cygnus.com>
10931             Richard Henderson  <rth@cygnus.com>
10932
10933         * Makefile.in (OBJS): Add sibcall.o.
10934         (sibcall.o): New.
10935         * sibcall.c: New file.
10936         * calls.c (FUNCTION_OK_FOR_SIBCALL): Provide default.
10937         (ECF_IS_CONST, ECF_NOTHROW, ECF_SIBCALL): New.
10938         (emit_call_1): Replace `is_const' and `nothrow' with `ecf_flags'.
10939         Emit sibcall patterns when requested.  Update all callers.
10940         (expand_call): Generate CALL_PLACEHOLDER insns when tail call
10941         elimination seems feasable.
10942         * final.c (leaf_function_p): Sibling calls don't discount being
10943         a leaf function.
10944         * flow.c (HAVE_sibcall_epilogue): Provide default.
10945         (find_basic_blocks_1): Sibling calls don't throw.
10946         (make_edges): Make edge from sibling call to EXIT.
10947         (propagate_block): Don't remove sibcall_epilogue insns.
10948         * function.c (prologue, epilogue): Turn into varrays.  Update all uses.
10949         (sibcall_epilogue): New.
10950         (fixup_var_refs): Scan CALL_PLACEHOLDER sub-sequences.
10951         (identify_blocks_1): Likewise.  Break out from ...
10952         (identify_blocks): ... here.
10953         (reorder_blocks_1): Scan CALL_PLACEHOLDER.  Break out from ...
10954         (reorder_blocks): ... here.
10955         (init_function_for_compilation): Zap prologue/epilogue as varrays.
10956         (record_insns): Extend a varray instead of mallocing new memory.
10957         (contains): Read a varray not array of ints.
10958         (sibcall_epilogue_contains): New.
10959         (thread_prologue_and_epilogue_insns): Emit and record
10960         sibcall_epilogue patterns.
10961         (init_function_once): Allocate prologue/epilogue varrays.
10962         * genflags.c (gen_insn): Treat sibcall patterns as calls.
10963         * integrate.c (save_parm_insns): Recurse on CALL_PLACEHOLDER patterns.
10964         Broken out from ...
10965         (save_for_inline_nocopy): ... here.
10966         (copy_insn_list): Recurse on CALL_PLACEHOLDER patterns.
10967         Broken out from ...
10968         (expand_inline_function): ... here.
10969         (copy_rtx_and_substitute): Handle NOTE_INSN_DELETED_LABEL.
10970         (subst_constants): Handle 'n' formats.
10971         * jump.c (jump_optimize_minimal): New.
10972         (jump_optimize_1): New arg `minimal'; update callers.  Elide most
10973         optimizations if it's set.
10974         * rtl.c (copy_rtx): Do copy jump & call for insns.
10975         * rtl.h (struct rtx_def): Document use of jump and call for insns.
10976         (SIBLING_CALL_P): New.
10977         (sibcall_use_t): New.
10978         * toplev.c (rest_of_compilation): Do init_EXPR_INSN_LIST_cache earlier.
10979         Invoke optimize_sibling_and_tail_recursive_calls.
10980         * tree.c (lang_safe_for_unsave): New.
10981         (safe_for_unsave): New.
10982         * tree.h (lang_safe_for_unsave, safe_for_unsave): Declare.
10983
10984         * alpha.h (FUNCTION_OK_FOR_SIBCALL): New.
10985         * alpha.md (sibcall, sibcall_value, sibcall_epilogue): New.
10986         (*sibcall_osf_1, *sibcall_value_osf_1): New.
10987
10988 2000-03-17  Mark Mitchell  <mark@codesourcery.com>
10989
10990         * objc/objc-act.c (encode_method_prototype): Pass types, not
10991         PARM_DECLs, to int_size_in_bytes.
10992
10993 Fri Mar 17 11:51:34 2000  Jim Wilson  <wilson@cygnus.com>
10994
10995         * config/ia64/ia64.md (mix4right_3op): Swap %1 and %2 in template.
10996
10997         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
10998         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyrights again.
10999
11000 Fri Mar 17 08:09:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11001
11002         * Clean up usages of TREE_INT_CST_LOW.
11003         * c-parse.in (RESTORE_WARN_FLAGS): Use tree_low_cst.
11004         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
11005         Regenerated.
11006         * c-tree.h (min_precision): Move declaration to here.
11007         * c-typeck.c (build_binary_op): Use host_integerp and tree_low_cst.
11008         (build_unary_op, add_pending_init): Use bit_position.
11009         (pending_init_member, process_init_element): Likewise.
11010         (really_start_incremental_init, push_init_level, pop_init_level):
11011         Don't make copies of nodes or modify them in place, use consistent
11012         types when tracking positions, and use tree routines computations.
11013         (set_init_index, output_init_element): Likewise.
11014         (output_pending_init_elements, process_init_element): Likewise.
11015         * dbxout.c (dbxout_type_fields): Use bit_position, host_integerp,
11016         tree_low_cst and int_bit_position; also minor cleanup.
11017         (dbxout_type_method_1, dbxout_range_type, dbxout_type): Likewise.
11018         (print_cst_octal): Precision is unsigned.
11019         (dbxout_symbol): Ensure DECL_INITIAL is in-range and use tree_low_cst.
11020         * dwarf2out.c (ceiling): Input and output are unsigned HOST_WIDE_INT.
11021         (simple_type_align_in_bits): Result is unsigned int.
11022         Use tree_int_low_cst and host_integerp.
11023         (simple_type_size_in_bits): Result is unsigned HOST_WIDE_INT.
11024         (field_byte_offset): Result is HOST_WIDE_INT.
11025         Change types of internal variables so alignments are unsigned int,
11026         offsets are HOST_WIDE_INT and sizes are unsigned HOST_WIDE_INT.
11027         Use host_integerp, tree_low_cst, and int_bit_position.
11028         (add_bit_offset_attribute): Likewise.
11029         (add_data_member_location_attribute): Use tree_cst_low.
11030         (add_bound_info): Use host_integerp, integer_zerop, and integer_onep.
11031         (add_bit_size_attribute): Use tree_low_cst.
11032         (add_pure_or_virtual_attribute, gen_enumeration_type_die): Likewise.
11033         * dwarfout.c: Similar changes to dwarf2out.c.
11034         * expr.c (expand_expr, case ARRAY_REF): Remove redundant code.
11035         * genoutput.c (n_occurences): Return -1 for null string.
11036         (strip_whitespace): Accept null string and make into function.
11037         (scan_operands): Reflect above changes.
11038         * sdbout.c (plain_type_1): Use host_integerp and tree_low_cst.
11039         (sdbout_field_types, sdbout_one_type): Likewise; also use bit_position.
11040         * ssa.c (rename_registers): Add missing cast of arg to bzero.
11041         * tree.c (int_size_in_bytes): Check for too big to represent.
11042         (bit_position, int_bit_position, host_integerp, tree_low_cst): New fns.
11043         * tree.h (host_integerp, tree_low_cst, bit_position, int_bit_position):
11044         New declarations.
11045         (min_precision): Delete from here.
11046         * varasm.c (decode_addr_const): Use host_integerp, bit_position,
11047         and int_bit_position.
11048         * objc/objc-act.c (encode_method_prototype): Sizes are HOST_WIDE_INT.
11049         (encode_method_def): Likewise.
11050         (build_ivar_list_initializer): Use int_bit_position.
11051         (generate_shared_structures): Convert size.
11052         (encode_type, encode_complete_bitfield): Use integer_zerop.
11053         (encode_bitfield): Use tree_low_cst and int_bit_position.
11054
11055 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11056
11057         * config/c4x/c4x.h (CPP_SPEC): Fix typo.
11058
11059 2000-03-17  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
11060
11061         * call.c (special_function_p): It is only malloc if it returns
11062         Pmode.
11063
11064 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11065
11066         * config/c4x/c4x.h (ASM_SPEC, CPP_SPEC, LINK_SPEC): Support C33.
11067         (C33_FLAG, TARGET_C3X): Add macros.
11068         (TARGET_SWITCHES): Add -m33 option.
11069         * config/c4x/c4x.c (c4x_override_options): Test for TARGET_C33.
11070
11071 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11072
11073         * config/c4x/c4x.h (PARALLEL_INSN_FLAG): Add.
11074         (PARALLEL_PACK_FLAG): Delete.
11075         (TARGET_SWITCHES): Update.
11076         (TARGET_PARALLEL): Use PARALLEL_INSN_FLAG.
11077
11078 Thu Mar 16 18:52:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11079
11080         * fold-const.c (fold): Fix a few cases when the returned result
11081         is not of the same type as the input.
11082
11083 2000-03-16  Nick Clifton  <nickc@cygnus.com>
11084
11085         * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Fix compile time
11086         warning.
11087
11088 2000-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11089
11090         * libgcc2.h: Move prototypes above macros with the same name.
11091         Wrap some function prototypes in the conditional which indicates
11092         whether they are supported, i.e. "BITS_PER_UNIT == 8".
11093
11094 2000-03-16  Richard Henderson  <rth@cygnus.com>
11095
11096         * calls.c: Revert last two changes.
11097
11098 2000-03-16  Bernd Schmidt  <bernds@cygnus.co.uk>
11099
11100         * fp-bit.c (_unpack_d): If NO_DENORMALS is defined, anything that
11101         has exponent 0 is a zero.
11102
11103         * simplify-rtx.c (hash_rtx, case MEM/REG): Take into account that
11104         HASH may already be nonzero.  Add code/mode into hash value
11105         immediately after repeat label.
11106         (cselib_lookup): Don't leave the hash table in an inconsistent
11107         state before a hash lookup operation.
11108
11109 Thu Mar 16 17:03:10 MET 2000  Jan Hubicka  <jh@suse.cz>
11110
11111         * i386.md (all HI and QI mode non-move patterns):  Conditionize
11112         by TARGET_[HQ]IMODE_MATH.
11113         * i386.h (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
11114         x86_promote_qi_regs): Declare.
11115         (TARGET_HIMODE_MATH, TARGET_QIMODE_MATH, TARGET_PROMOTE_HI_REGS,
11116         TARGET_PROMOTE_QI_REGS): New macros.
11117         (PROMOTE_MODE): New macro.
11118         * i386.c (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
11119         x86_promote_qi_regs): New global variables.
11120
11121 Thu Mar 16 16:50:44 MET 2000  Jan Hubicka  <jh@suse.cz>
11122
11123         * calls.c (emit_library_call_value_1): Break out from ...; handle
11124         VOIDmode function calls too.
11125         (emit_library_call_value): ... here.
11126         (emit_library_call): Implement by calling emit_library_call_value_1.
11127
11128 Thu Mar 16 16:01:30 MET 2000  Jan Hubicka  <jh@suse.cz>
11129
11130         * calls.c (expand_call): Do sanity checking on arg_space_so_far.
11131         Update arg_space_so_far on stack adjustments.
11132         (emit_library_call, emit_library_call_value): Likewise; take into
11133         account arg_space_so_far and pending_stack_adjust when calculcating
11134         the boundary.
11135
11136 Thu Mar 16 09:02:19 2000  Jason Eckhardt  <jle@cygnus.com>
11137
11138         * flow.c: Move all basic block reordering code into its own file.
11139         (create_basic_block): Externalize.
11140         * bb-reorder.c: New file. Copy all basic block reordering code from
11141         flow.c to this file.
11142         (reorder_basic_blocks): Fix fencepost error in for-loop.
11143         (reorder_basic_blocks): Remove braces from single statement for-loops.
11144         * basic-block.h: Add declaration for create_basic_block.
11145         * Makefile.in: Add rules for bb-reorder.o.
11146
11147 2000-03-16  Neil Booth  <NeilB@earthling.net>
11148
11149         * cppinit.c (handle_option):  Implement #unassert directive
11150         as -A- command line option.
11151         (print_help):  Update.
11152         * cpptexi.c:  Update.
11153
11154 Thu Mar 16 02:14:16 2000  Hans-Peter Nilsson  <hp@bitrange.com>
11155
11156         * md.texi (Standard Names): Document `jump'.
11157
11158 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
11159
11160         * calls.c (emit_call_1): Nothrow functions can still have nonlocal
11161         gotos.
11162
11163 2000-03-15  Geoff Keating  <geoffk@cygnus.com>
11164
11165         Merge changes from newppc-branch onto trunk.
11166
11167         2000-03-15  Geoff Keating  <geoffk@cygnus.com>
11168
11169         * rs6000.c (toc_hash_table): Update for new hash table functions.
11170         (toc_hash_function): Likewise.
11171         (toc_hash_eq): Likewise.
11172         (toc_hash_mark_entry): Likewise.
11173         (toc_hash_mark_table): Likewise.
11174         (output_toc): Likewise.
11175         (rs6000_add_gc_roots): Likewise.
11176
11177         2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11178
11179         * t-aix43 (AR_FOR_TARGET): Deleted.  Moved `-X32_64'...
11180         (AR_FLAGS_FOR_TARGET): here.  New macro.
11181
11182         2000-03-05  Clinton Popetz  <cpopetz@cygnus.com>
11183
11184         * config/rs6000/rs6000.c (rs6000_fpmem_offset, rs6000_fpmem_size,
11185         fpmem_operand) Delete.
11186         (xer_operand) New.
11187         (rs6000_reg_names, alt_reg_names): Change fpmem to xer.
11188         (machine_function): Remove fpmem_size, fpmem_offset, save_toc_p.
11189         (rs6000_save_machine_status, rs6000_restore_machine_status,
11190         rs6000_init_expanders, rs6000_stack_info, debug_stack_info): Remove
11191         references to above variables.
11192         (gpc_reg_operand): Use XER_REGNO_P instead of FPMEM_REGNO_P.
11193         * config/rs6000/rs6000.h (REG_ALLOC_ORDER, REGISTER_NAMES,
11194         DEBUG_REGISTER_NAMES): Chagne fpmem to xer.
11195         (FPMEM_REGNO_P, FPMEM_REGNUM): Delete.
11196         (XER_REGNO_P, XER_REGNO): New.
11197         (rs6000_stack): Remove fpmem_p, fpmem_offset, fpmem_size.
11198         (PREDICATE_CODES): Change fpmem_operand to xer_operand.
11199         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Change FPMEM_REGNO_P to
11200         XER_REGNO_P.
11201         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
11202         REG_CLASS_FROM_LETTER, CLASS_MAX_NREGS): Change FPMEM_REGS to XER_REGS,         and remove FLOAT_OR_FPMEM_REGS.
11203         (CLASS_CANNOT_CHANGE_SIZE): Change to FLOAT_REGS.
11204
11205         2000-02-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11206
11207         * aix.h (FP_SAVE_INLINE, ASM_OUTPUT_INTERNAL_LABEL_PREFIX,
11208         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Move here...
11209         * rs6000.h: from here.
11210
11211         * rs6000-protos.h (rs6000_select_section): Provide prototype.
11212         (rs6000_select_rtx_section): Likewise.
11213         (rs6000_encode_section_info): Likewise.
11214         (sdata_section): Likewise.
11215         (sdata2_section): Likewise.
11216         (sbss_section): Likewise.
11217         * sysv4.h (rs6000_select_section): Delete prototype.
11218         (rs6000_select_rtx_section): Likewise.
11219         (rs6000_encode_section_info): Likewise.
11220         (sdata_section): Likewise.
11221         (sdata2_section): Likewise.
11222         (sbss_section): Likewise.
11223         (REG_SAVE_AREA): Delete definition duplicated in rs6000.h.
11224
11225         * sysv4.h: Delete various unnecessary #undef's and put a comment
11226         on the remaining ones.
11227         Change various comments according to coding standard.
11228
11229         2000-02-29  Clinton Popetz  <cpopetz@cygnus.com>
11230
11231         * config/rs6000/rs6000.h (MQ_REGNO, CR0_REGNO, CR1_REGNO, CR2_REGNO,
11232         CR3_REGNO, CR4_REGNO, MAX_CR_REGNO): Define.
11233         (CR0_REGNO_P) Remove.
11234         * config/rs6000/rs6000.c (gpc_reg_operand, and64_operand, and_operand,
11235         setup_incoming_varargs, mtcrf_operation, print_operand,
11236         rs6000_stack_info, rs6000_emit_prologue, rs6000_emit_epilogue):
11237         Use the above macros.
11238
11239         2000-02-24  Clinton Popetz  <cpopetz@cygnus.com>
11240
11241         * config/rs6000/rs6000.md: Added a new alternative for each
11242         pattern that had a 'x' alternative but no 'y' alternative.
11243         Added a new split for each of the above patterns.
11244
11245         2000-02-18  Geoff Keating  <geoffk@cygnus.com>
11246
11247         * aix41.h (ASM_CPU_SPEC): Delete.
11248         (CPP_CPU_SPEC): Delete.
11249
11250         * aix.h (RS6000_OUTPUT_BASENAME): Define.
11251         (ASM_OUTPUT_LABEL): Define.
11252         (ASM_GLOBALIZE_LABEL): Define.
11253         (STRIP_NAME_ENCODING): Define.
11254         * rs6000.h (RS6000_OUTPUT_BASENAME): Don't define.
11255         (STRIP_NAME_ENCODING): Don't define.
11256         (ASM_OUTPUT_LABEL): Don't define.
11257         (ASM_GLOBALIZE_LABEL): Don't define.
11258         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use assemble_name to output
11259         names, and ASM_OUTPUT_LABEL to output labels, rather than
11260         asm_fprintf.
11261         (ASM_OUTPUT_LABEL): Define.
11262         (ASM_OUTPUT_INT): Use assemble_name.
11263         (ASM_OUTPUT_DWARF_ADDR): Use assemble_name.
11264         (STRIP_NAME_ENCODING): Don't undefine first.
11265         (RS6000_OUTPUT_BASENAME): Make equivalent to assemble_name for
11266         ELF.
11267         (ASM_OUTPUT_LABELREF): Don't prepend underscores to labels
11268         specified with 'asm' even with -fleading-underscore.
11269         * rs6000.c (print_operand): Use assemble_name when !TARGET_AIX.
11270         (output_epilog): Likewise.
11271         (output_toc): Likewise.
11272         * tramp.asm: Handle -fleading-underscore correctly.
11273
11274         * rs6000.md (builtin_setjmp_receiver): Also run for -fPIC and
11275         -mminimal-toc.
11276         (nonlocal_goto_receiver): Delete.
11277         * rs6000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Delete.
11278
11279         * rs6000.h (ASM_OUTPUT_DEF): Don't define.
11280         (SET_ASM_OP): Define.
11281         * sysv4.h (ASM_OUTPUT_DEF): Don't undefine.
11282
11283         * rs6000.h (ASM_OUTPUT_ADDR_VEC_ELT): Don't define.
11284         (ASM_LONG): Define.
11285
11286         * rs6000.c (rs6000_dll_import_ref): Delete, not used.
11287         * rs6000-protos.h (rs6000_dll_import_ref): Delete.
11288
11289         * rs6000.h: Add 'u' to more constants.
11290
11291         2000-02-18  David Edelsohn  <edelsohn@gnu.org>
11292
11293         * rs6000.md (mfcr+shift): Delete PowerPC64 version.
11294
11295         2000-02-15  David Edelsohn  <edelsohn@gnu.org>
11296
11297         * rs6000.c (reg_or_u_cint_operand): New function.
11298         (logical_operand): Handle 64-bit hosts.
11299         (logical_u_operand): New function.
11300         (non_logical_cint_operand): Handle 64-bit hosts.
11301         (non_logical_u_cint_operand): New function.
11302         * rs6000.h (DATA_SECTION_ASM_OP): Add tab.
11303         (PREDICATE_CODES): Define new functions.
11304         * rs6000-protos.h: Declare new functions.
11305         * rs6000.md (iordi3, xordi3): Constant int must be unsigned 32-bits.
11306         (movdi_64): Bracket code intended for 64-bit hosts.  Create
11307         CONST_DOUBLE for 32-bit values.
11308         (scc insns): Generate DImode compares.
11309         (mfcr insns): Create DImode versions.
11310         (sge matchers): New patterns.
11311
11312         2000-02-15  Gabriel Paubert  <paubert@iram.es>
11313
11314         * rs6000.md: Correct instructions length attributes and
11315         constraints on unsigned compare instructions.
11316         (*ne0): Disable for PowerPC64.
11317
11318         2000-02-11  Geoff Keating  <geoffk@cygnus.com>
11319
11320         * rs6000.c (output_function_profiler): Use .long for a 32-bit
11321         quantity, fix profile1.C test failure under -fPIC.
11322
11323         * rs6000.c: Add 'u' to many constants to suppress warnings.
11324         (constant_pool_expr_1): Make static.
11325         (rs6000_emit_eh_toc_restore): Remove unused 'r2'.
11326         * rs6000.h: Add 'u' to many constants to suppress warnings.
11327
11328         * rs6000.c (rs6000_emit_load_toc_table): Use LCTOC..1 under AIX
11329         for the start of the TOC, instead of LCTOC..0.
11330         * aix.h (toc_section): Use LCTOC..1 under AIX for the start
11331         of the TOC.
11332         * rs6000.md (load_toc_aix_si): Use LCTOC..1.
11333         (load_toc_aix_di): Use LCTOC..1.
11334
11335         * rs6000.h (LEGITIMIZE_ADDRESS): Turn into a function.
11336         * rs6000.c (rs6000_legitimize_address): New function from
11337         LEGITIMIZE_ADDRESS.  Only use create_TOC_reference on
11338         symbols in the constant pool that really are TOC references.
11339         (print_operand_address): For ELF, write TOC offsets under
11340         -fPIC as subtractions in the insn.
11341         (output_toc): For ELF, define symbols in TOC as normal labels,
11342         to match RTL.
11343         (create_TOC_reference): Use gen_rtx_PLUS rather than gen_rtx.
11344         * rs6000-protos.h (rs6000_legitimize_address): Prototype.
11345         (create_TOC_reference): Prototype only when RTX_CODE is defined.
11346         * rs6000.md (movsi): Only use create_TOC_reference on
11347         symbols in the constant pool that really are TOC references.
11348
11349         * rs6000.h (MACHINE_DEPENDENT_REORG): Don't define.
11350         * rs6000.c (rs6000_reorg): Delete.
11351         * rs6000-protos.h (rs6000_reorg): Delete.
11352
11353         2000-02-09  Geoff Keating  <geoffk@cygnus.com>
11354
11355         * rs6000.h (INCOMING_RETURN_ADDR_RTX): New macro.
11356
11357         * aix.h (SETUP_FRAME_ADDRESSES): Define.
11358         * rs6000.c [TARGET_AIX] (insn_after_throw): New static variable.
11359         [TARGET_AIX] (rs6000_aix_emit_builtin_unwind_init): New function.
11360         [TARGET_AIX] (rs6000_emit_eh_toc_restore): New function.
11361         * rs6000-protos.h: Prototype rs6000_emit_eh_toc_restore,
11362         rs6000_aix_emit_builtin_unwind_init.
11363         * rs6000.md (eh_epilogue) [TARGET_AIX]: Call
11364         rs6000_emit_eh_toc_restore on AIX.
11365         (return_eh_si): Use r2.
11366         (return_eh_di): Use r2.
11367
11368         * aix43.h: Turn on HAS_INIT_SECTION and LD_INIT_SWITCH,
11369         since we're breaking binary compatibility anyway.
11370
11371         2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
11372
11373         * config/rs6000/rs6000-protos.h: (get_TOC_alias_set, uses_TOC,
11374         constant_pool_expr_p): Declare them.
11375         (constant_pool_expr_p): Declare it.
11376         * config/rs6000/rs6000.c (toc_label_name): Define.
11377         (rs6000_override_options): Set toc_label_name.
11378         (input_operand): Allow any TOC_RELATIVE_EXPR_P.
11379         (get_TOC_alias_set, constant_pool_expr_p, constant_pool_expr_1,
11380         uses_TOC): New functions.
11381         (print_operand): Delete old '*' case.
11382         (print_operand_address): Use LEGITIMATE_CONSTANT_POOL_ADDRESS_P,
11383         and strip off rtl for TOC before calling output_addr_const.
11384         (rs6000_emit_load_toc_table): Use toc_label_name.
11385         * config/rs6000/rs6000.h (TARGET_SWITCHES): Make msched-prolog
11386         the default.
11387         (LEGITIMATE_CONSTANT_POOL_BASE_P): Delete.
11388         (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): New macros.
11389         (LEGITIMATE_CONSTANT_POOL_ADDRESS_P): Use CONSTANT_POOL_EXPR_P.
11390         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Turn symbol_refs
11391         into explicit TOC_REGISTER offsets.
11392         (TOC_REGISTER): New macro.
11393         * config/rs6000/rs6000.md (movsi, movdi): Emit rtl under
11394         TARGET_TOC to reference TOC_REGISTER.
11395         (load_toc_v4_PIC_1b): Add 4 to offset for toc reload.
11396         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Call
11397         uses_TOC before emitting label references.
11398
11399         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
11400
11401         * rs6000.md (stack_tie): Fix warning.
11402
11403         * eabi-ctors.c: Use 'asm' names for the start/end variables,
11404         to handle -fleading-underscore.
11405         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use asm_fprintf and %U.
11406         (USER_LABEL_PREFIX): New macro.
11407         (ASM_OUTPUT_INTERNAL_LABEL_PREFIX): Use asm_fprintf and %L.
11408         (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U.
11409         * t-ppccomm (MULTILIB_MATCHES_SYSV): Note that call-sysv and
11410         call-linux can use the same multilibs.
11411         * t-ppcgas (MULTILIB_OPTIONS): Don't need to have separate call-sysv
11412         and call-linux multilibs.  Do multilib with -fleading-underscore.
11413         (MULTILIB_DIRNAMES): Follow MULTILIB_OPTIONS change.
11414         (MULTILIB_EXCEPTIONS): Remove call-linux exceptions.  Add restrictions
11415         to call-aix.
11416
11417         * sysv4.h (CPP_SYSV_SPEC): Define _SOFT_FLOAT for all those CPUs that
11418         have MASK_SOFT_FLOAT set.
11419         (CPP_FLOAT_DEFAULT_SPEC): New macro.
11420         (SUBTARGET_EXTRA_SPECS): Set `cpp_float_default' to the value of
11421         CPP_FLOAT_DEFAULT_SPEC.
11422
11423         * rs6000.c (ccr_bit): Add some consistency checks and a variable 'reg'.
11424         * rs6000.md: Whitespace change.
11425         * sysv4.h (LINK_TARGET_SPEC): Whitespace change.
11426         * sysv4le.h (LINK_TARGET_SPEC): Whitespace change.
11427
11428         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
11429
11430         * rs6000.md (eh_epilogue): New expander.
11431         (eh_reg_restore): New expand/split/insn combination.
11432         (return_eh_si): New insn.
11433         (return_eh_di): New insn.
11434
11435         * eabi-ci.asm: Put a label at the start of the .eh_frame section.
11436         * eabi-cn.asm: Put a zero at the end of the .eh_frame section.
11437         * eabi-ctors.c (__do_global_ctors): Register this object's
11438         frame.  Clean up.  Call atexit() after the constructors.
11439         (__do_global_dtors): Deregister this object's frame.  Clean up.
11440         Allow for recursive calls to exit().
11441         * rs6000.c (fixuplabelno): New variable.
11442         * sysv4.h (ASM_OUTPUT_INT): Don't do .fixup if not
11443         TARGET_RELOCATABLE, it slows down exec() under linux.
11444         (ASM_OUTPUT_DWARF_ADDR): Do .fixup if TARGET_RELOCATABLE.
11445
11446         * aix.h (ASM_OUTPUT_DWARF_ADDR_VAR): New macro.
11447         (ASM_OUTPUT_DWARF_DELTA_VAR): New macro.
11448         (ASM_OUTPUT_DWARF_DELTA2): New macro.
11449         (ASM_OUTPUT_DWARF_DELTA4): New macro.
11450         (ASM_OUTPUT_DWARF_ADDR_DELTA): New macro.
11451         (ASM_OUTPUT_DWARF_ADDR): New macro.
11452         (ASM_OUTPUT_DWARF_DATA4): New macro.
11453         (ASM_OUTPUT_DWARF_DATA2): New macro.
11454         (ASM_OUTPUT_DWARF_OFFSET4): New macro.
11455         (ASM_OUTPUT_DWARF_OFFSET): New macro.
11456         (UNALIGNED_INT_ASM_OP): New macro, fake definition.
11457
11458         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
11459
11460         * rs6000.c (rs6000_sr_alias_set): New variable.
11461         (rs6000_override_options): Initialise rs6000_sr_alias_set.
11462         (rs6000_emit_stack_tie): New function.
11463         (rs6000_emit_allocate_stack): Specify RTX_FRAME_RELATED_P
11464         in a way that dwarf2out can understand.
11465         (rs6000_frame_related): New function.
11466         (rs6000_emit_prologue): Use rs6000_sr_alias_set.  Specify
11467         RTX_FRAME_RELATED_P in a way that dwarf2out can understand.
11468         Use rs6000_emit_stack_tie when needed.
11469         (rs6000_emit_epilogue): Use rs6000_sr_alias_set.  Don't set
11470         RTX_FRAME_RELATED_P.  Use rs6000_emit_stack_tie when needed.
11471         * rs6000.md (stack_tie): New insn.
11472         (return_internal_si): Allow return value to be in the count
11473         register.
11474         (return_internal_di): Likewise.
11475
11476         * rs6000.c (output_mi_thunk): Remove unused variable `sp'.
11477
11478         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
11479
11480         * sysv4.h (LOCAL_LABEL_PREFIX): Define, for the use of dbxelf.h.
11481
11482         2000-01-31  Geoff Keating  <geoffk@cygnus.com>
11483
11484         * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): New macro.
11485
11486         * rs6000.md (stmw): Use the right POWER opcode.
11487         (lmw): Likewise.
11488
11489         2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11490
11491         * rs6000-protos.h: New file.
11492
11493         * rs6000.c: Include tm_p.h.  Fix compile time warnings.
11494
11495         * rs6000.h: Move prototypes to rs6000-protos.h.  Fix compile time
11496         warnings.
11497
11498         * sysv4.h: Likewise.
11499
11500         2000-01-28  Geoff Keating  <geoffk@cygnus.com>
11501
11502         * ../../configure.in: Delete powerpcle-*-winnt*
11503         and powerpcle-*-pe|powerpcle-*-cygwin*.
11504         * ../../configure: Regenerated.
11505         * cygwin.h: Delete.
11506         * rs6000.h (OBJECT_WINDOWS_NT): Delete.
11507         (TARGET_WINDOWS_NT): Delete.
11508         (ABI_NT): Delete.
11509         (CALL_NT_DLLIMPORT): Delete.
11510         Delete NT-specific code.
11511         * rs6000.md, rs6000.c, sysv4.h: Delete NT-specific code.
11512         * win-nt.h: Delete.
11513         * t-winnt: Delete.
11514         * nt-ci.asm: Delete.
11515         * nt-cn.asm: Delete.
11516         * ntstack.asm: Delete.
11517
11518         2000-01-27  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11519
11520         * rs6000.h (SELECT_RTX_SECTION): Move to aix.h.
11521         (ASM_FILE_START): Likewise.
11522         (ASM_DECLARE_FUNCTION_NAME): Likewise.
11523         (ASM_OUTPUT_LABELREF): Likewise.
11524         (ASM_OUTPUT_SKIP): Likewise.
11525         (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
11526         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
11527         (ASM_OUTPUT_CASE_LABEL): Likewise.
11528         (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
11529         (ASM_OUTPUT_ASCII): Likewise.
11530
11531         2000-01-27  Clinton Popetz  <cpopetz@cygnus.com>
11532
11533         * rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and
11534         reload_toc_labelno for non-prologue TOC reloads.  Also, don't
11535         increment rs6000_pic_labelno here.
11536         (rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table,
11537         and increment rs6000_pic_labelno here.
11538
11539         2000-01-24  Geoffrey Keating  <geoffk@cygnus.com>
11540
11541         * rs6000.md (fctiwz): Use (set (reg) (unspec:DI [(fix:SI ...)]))
11542         rather than (set (subreg:SI (reg)) (fix:SI ...)) so that register
11543         allocation knows (reg) is dead before the insn.
11544
11545         2000-01-21  Geoff Keating  <geoffk@cygnus.com>
11546
11547         * rs6000.md (movsi_to_cr): Correct typo in output template.
11548
11549         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
11550
11551         * rs6000.c (rs6000_pic_labelno): Always define.
11552         (rs6000_pic_func_labelno): Delete.
11553         (lmw_operation): Check for a zero base register,
11554         which doesn't mean what we want.
11555         (stmw_operation): New function.
11556         (print_operand): Define new 'l' modifier.
11557         (rs6000_stack_info): We must save all 64 bits of the registers
11558         if TARGET_POWERPC64.
11559         (rs6000_output_load_toc_table): Delete.
11560         (rs6000_emit_load_toc_table): New function.
11561         (rs6000_allocate_stack_space): Delete.
11562         (rs6000_emit_allocate_stack): New function.
11563         (rs6000_emit_prologue): New function.
11564         (output_prolog): Use rs6000_emit_prologue.
11565         (rs6000_emit_epilogue): Change a few variable names to be
11566         more accurate.  Restore all 64 bits of the registers if
11567         TARGET_POWERPC64.  Only restore the FP registers which were used
11568         if they are being saved/restored one-at-a-time.
11569         (output_mi_thunk): Delete inefficient code generation.
11570         (output_function_profiler): Don't use rs6000_output_load_toc_table.
11571         * rs6000.h: Declare rs6000_emit_load_toc_table,
11572         rs6000_allocate_stack_space, stmw_operation.  Don't declare
11573         rs6000_output_load_toc_table.
11574         * rs6000.md (elf_high): Allow register 0, but discourage it
11575         heavily.
11576         (elf_low): Support loading into register 0.
11577         (load_toc_aix_si): New pattern.
11578         (load_toc_aix_di): New pattern.
11579         (load_toc_v4_pic_si): New pattern.
11580         (load_toc_v4_pic_di): New pattern.
11581         (load_toc_v4_PIC_1): New pattern.
11582         (load_toc_v4_PIC_1b): New pattern.
11583         (load_toc_v4_PIC_2): New pattern.
11584         (builtin_setjmp_receiver): Use rs6000_emit_load_toc_table.
11585         (nonlocal_goto_receiver): Use rs6000_emit_load_toc_table.
11586         (prologue): New expander.
11587         (movesi_from_cr): New pattern.
11588         (stmw): New pattern.
11589         (save_fpregs_si): New pattern.
11590         (save_fpregs_di): New pattern.
11591
11592         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
11593
11594         * rs6000.md (movsi): Don't use force_reg when no_new_pseudos.
11595         (movdi): Likewise.
11596         (movhi): Likewise.
11597         (movqi): Likewise.
11598
11599         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
11600
11601         * rs6000.md (movsi_got): 'unspec 8' returns a SImode result,
11602         at present.
11603         (movsi_got_internal): Likewise.
11604         (movsi_got_internal+1): Likewise.
11605         (set_sp): 'unspec 7' does a SImode clobber.
11606
11607         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
11608
11609         * rs6000.md (floatsidf2): Don't use the fpmem "register", just
11610         allocate a stack temporary.
11611         (floatsidf2_internal): Likewise.
11612         (floatsidf2_internal+1): Likewise.  Don't do bizzare hacks
11613         with unspec.
11614         (floatunssidf2): Don't use the fpmem "register", just
11615         allocate a stack temporary.
11616         (floatunssidf2_internal): Likewise.
11617         (floatunssidf2_internal+1): Likewise.  Don't do bizzare hacks
11618         with unspec.
11619         (floatsidf2_loadaddr): Delete.
11620         (floatsidf2_store1): Delete.
11621         (floatsidf2_store2): Delete.
11622         (floatsidf2_load): Delete.
11623         (fix_truncdfsi2): Don't use the fpmem "register", just
11624         allocate a stack temporary.
11625         (fix_truncdfsi2_internal_si): Delete.
11626         (fix_truncdfsi2_internal_di): Delete.
11627         (fix_truncdfsi2_internal): New insn.
11628         (fix_truncdfsi2_internal+1): Don't use the fpmem "register".
11629         (fix_truncdfsi2_store): Delete.
11630         (fix_truncdfsi2_load): Delete.
11631         (fctiwz): Produce gen_fctiwz.
11632
11633         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
11634
11635         * eabi.h (INVOKE__main): Define.
11636         * rs6000.c (rs6000_stack_info): Don't handle call to NAME__MAIN
11637         specially.
11638         (rs6000_emit_prologue): Likewise.
11639         * rs6000.h (struct rs6000_stack): Don't keep track of whether
11640         this is the main program.
11641
11642         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
11643
11644         * rs6000.c (rs6000_va_arg): Delete some unused variables.
11645
11646         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
11647
11648         * rs6000.c (rs6000_va_arg): On AIX, padding for small arguments
11649         goes after the argument.
11650
11651         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
11652
11653         * rs6000.md: Document 'unspec' values used.
11654         (epilogue): New expander.
11655         (movesi_to_cr_one): New expander.
11656         (movesi_to_cr and following): New pattern.
11657         (lmw): New pattern.
11658         (return_internal_si): New pattern.
11659         (return_internal_di): New pattern.
11660         (return_and_restore_fpregs_si): New pattern.
11661         (return_and_restore_fpregs_di): New pattern.
11662         * rs6000.h: Declare new functions.
11663         * rs6000.c (rs6000_stack_info): Use current_function_is_leaf
11664         rather than rs6000_calls_p.
11665         (rs6000_makes_calls): Delete.
11666         (lmw_operation): New function.
11667         (mtcrf_operation): New function.
11668         (rs6000_emit_epilogue): New function.
11669         (output_epilog): Call rs6000_emit_epilogue and final if
11670         !TARGET_SCHED_PROLOG, instead of writing text unconditionally.
11671
11672         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
11673
11674         * aix43.h (SUBSUBTARGET_SWITCHES): Document switches.
11675         * aix41.h (SUBSUBTARGET_SWITCHES): Document switches.
11676         * aix.h (SUBTARGET_SWITCHES): Document switches.
11677         * rs6000.h: (TARGET_SWITCHES): Don't print options twice.  Make
11678         sched-prolog and sched-epilog the same.  Document all the
11679         switches.
11680         (TARGET_OPTIONS): No longer allow -mdebug-.
11681
11682         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
11683
11684         * rs6000.h (ASM_FILE_END): Move to aix.h.
11685         (EXTRA_SECTIONS): Move to aix.h.
11686         (READONLY_DATA_SECTION): Move to aix.h.
11687         (EXTRA_SECTION_FUNCTIONS): Move to aix.h.
11688         (SELECT_SECTION): Move to aix.h.
11689         (JUMP_TABLES_IN_TEXT_SECTION): Move to aix.h.
11690         (INT_REGNO_P): Use symbolic name for ARG_POINTER_REGNUM.
11691         (LINK_REGISTER_REGNUM): New definition.
11692         (RETURN_ADDR_RTX): Use symbolic name for LINK_REGISTER_REGNUM.
11693         (SLOW_UNALIGNED_ACCESS): Define in a way suitable for both
11694         AIX and SVR4.
11695         * sysv4.h: Delete the code between the inclusion of rs6000.h
11696         and svr4.h.
11697         (DWARF_DEBUGGING_INFO): Don't define, it's defined in elfos.h.
11698         (FP_ARG_MAX_REG): Move generic definition to rs6000.h.
11699         (RS6000_REG_SAVE): Move generic definition to rs6000.h.
11700         (RS6000_SAVE_AREA): Move generic definition to rs6000.h.
11701         * rs6000.md (floatsidf2_loadaddr): The first arg here is Pmode.
11702         (fix_truncdfsi2_internal): Rename to fix_truncdfsi2_internal_si.
11703         (fix_truncdfsi2_internal_di): New pattern.
11704         (fix_truncdfsi2_store): The second arg here is Pmode too.
11705         (fix_truncdfsi2_load): The second arg here is Pmode too.
11706         (tablejumpdi): Now that switch tables hold only SImode values,
11707         gcc needs to know how to add them to the pc which is DImode.
11708         * rs6000.c (rs6000_stack_info): Use symbolic name for
11709         LINK_REGISTER_REGNUM.
11710         (output_mi_thunk) [!TARGET_ELF]: Don't define sp, it's not used.
11711         (output_toc): Delete unused variables s1 and s2.
11712         (output_ascii): Use fputs not fprintf on a variable string.
11713
11714         2000-01-07  David Edelsohn  <edelsohn@gnu.org>
11715
11716         * rs6000.c (processor_target_table): Add power3 as alias for 630.
11717         * aix43.h: Revert Aug 2 change.
11718         (HAS_INIT_SECTION): Define, not visible yet.
11719         (LD_INIT_SWITCH): Define, not visible yet.
11720         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
11721
11722         2000-01-04  Joel Sherrill (joel@OARcorp.com>
11723
11724         * config/rs6000/rtems.h: Include config/rtems.h.
11725
11726         2000-01-04  David Edelsohn  <edelsohn@gnu.org>
11727
11728         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
11729         (SLOW_UNALIGNED_ACCESS): Define.
11730         (CASE_VECTOR_MODE): Always use 32-bit offsets.
11731         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
11732         (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
11733         (toc_section): Likewise and .toc pseudo-op.
11734         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
11735         64-bit mode.
11736         (TEXT_SECTION_ASM_OP): Likewise.
11737         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
11738         32-bit offsets.
11739
11740         1999-12-17  Jakub Jelinek  <jakub@redhat.com>
11741
11742         * config/rs6000/rs6000.h (TARGET_POWERPC64): Make sure
11743         UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
11744         compiling libgcc2.
11745
11746         2000-01-06  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
11747
11748         * rs6000.h: Move more stuff from here...
11749         * aix.h: to here.
11750         * sysv4.h: Cleanup accordingly.
11751         * netware.h: Likewise
11752
11753         2000-01-05  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
11754
11755         * rs6000.h: Continue cleanup.
11756         * aix.h: Likewise.
11757         * lynx.h: Likewise.
11758         * netware.h: Likewise.
11759         * sol2.h: Likewise.
11760         * sysv4.h: Likewise.
11761         * win-nt.h: Likewise.
11762
11763         * rs6000.h (TARGET_SWITCHES): Add descriptions.
11764         (TARGET_OPTIONS): Likewise.
11765
11766         * sysv4.h (SUBTARGET_SWITCHES): Add descriptions.
11767         (SUBTARGET_OPTIONS): Likewise.
11768
11769         * rs6000.md: Fix compile time warnings.
11770
11771         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
11772
11773         vxworks patches from the Cygnus tree originally by
11774         Michael Meissner <meissner@cygnus.com> and Vladimir Makarov
11775         <vmakarov@cygnus.com>.
11776         * sysv4.h (SUBTARGET_SWITCHES): Add vxworks.
11777         (ENDFILE_SPEC): Likewise.
11778         (LIB_VXWORKS_SPEC): New macro.
11779         (STARTFILE_VXWORKS_SPEC): New macro.
11780         (ENDFILE_VXWORKS_SPEC): New macro.
11781         (LINK_START_VXWORKS_SPEC): New macro.
11782         (LINK_OS_VXWORKS_SPEC): New macro.
11783         (CPP_OS_VXWORKS_SPEC): New macro.
11784         (SUBTARGET_EXTRA_SPECS): Add all the vxworks specs.
11785         * vxppc.h: Rewrite to use proper configuration method.
11786         * vxppcle.h: New file.
11787         * ../../configure.in: Add powerpcle-wrs-vxworks*.
11788         * ../../configure: Rebuilt.
11789
11790         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
11791
11792         Lots of changes to rs6000.h, sysv4.h, aix.h,
11793         aix31.h, aix3newas.h, aix41.h, aix43.h, beos.h,
11794         with the aim that rs6000.h is the first header
11795         included and the others override it.
11796         * aix.h: New file.
11797
11798         * x-aix41-gld: Remove.
11799         * x-aix43: Remove.
11800         * x-aix41: Remove target-specific switches, and don't specify
11801         -Wl,-bbigtoc as we don't need it any more.
11802         * ../../configure.in: Use x-aix41 for ppc AIX 4.1 and above.
11803         Use t-aix43 for AIX 4.3 and above.
11804         * ../../configure: Regenerated.
11805
11806         * rs6000.h (TARGET_SWITCHES): Add some initial prolog-scheduling
11807         options, that don't do anything yet.
11808         (MASK_SCHED_PROLOG): New macro.
11809         (MASK_SCHED_EPILOG): New macro.
11810         (TARGET_SCHED_PROLOG): New macro.
11811         (TARGET_SCHED_EPILOG): New macro.
11812
11813         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
11814
11815         * rs6000.c: Correct comment, the `minimal' TOCs are actually
11816         one per translation unit, not one per function.
11817         (output_toc): Also do duplicate constant elimination
11818         for per-translation-unit TOCs.
11819
11820         * rs6000.md (nonlocal_goto_receiver): Put it back as before.  Add
11821         a comment explaining _exactly_ when this pattern gets used.
11822         (builtin_setjmp_receiver): New pattern for better clarity.
11823         (init_v4_pic): Move it into a section dealing with TOC registers.
11824
11825         1999-12-30  Geoff Keating  <geoffk@cygnus.com>
11826
11827         * rs6000.c (toc_hash_table): New variable.
11828         (rs6000_hash_constant): New function.
11829         (toc_hash_function): New function.
11830         (toc_hash_eq): New function.
11831         (toc_hash_mark_entry): New function.
11832         (toc_hash_mark_table): New function.
11833         (output_toc): Don't output duplicate TOC entries in
11834         a single file.
11835         (rs6000_add_gc_roots): Add the hash table as a GC root.
11836         * t-aix43: Move AR_FOR_TARGET and CLIB here from x-aix43,
11837         where they clearly shouldn't be.  This may need to be fixed
11838         later when there is a GNU ar for AIX.
11839         * x-aix43: Don't define CLIB or AR_FOR_TARGET.
11840         Don't define BOOT_LDFLAGS as it is now not necessary.
11841
11842         1999-12-29  Geoff Keating  <geoffk@cygnus.com>
11843
11844         * rs6000.c (rs6000_build_va_list): Use 'char *' rather than 'void *'
11845         for va_list on AIX.  Use unsigned_char_type_node rather than
11846         constructing our own version on svr4.
11847
11848         1999-12-17  Geoff Keating  <geoffk@cygnus.com>
11849
11850         * tramp.asm (__trampoline_size): Delete CYGNUS LOCAL comment,
11851         since patently it's not.
11852
11853         1999-12-08  Geoff Keating  <geoffk@cygnus.com>
11854
11855         * config/rs6000/rs6000.md (nonlocal_goto_receiver): Turn into
11856         define_expand/define_insn pair, and handle restore of the
11857         SVR4 -fpic register.
11858
11859 Wed Mar 15 15:43:38 2000  Jeffrey A Law  (law@cygnus.com)
11860
11861         * acconfig.h (HAVE_GAS_WEAK): New define.
11862         * configure.in (assembler weak support): Check for .weak support.
11863         * config.in, configure: Rebuilt.
11864         * pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Only define if
11865         HAVE_GAS_WEAK is defined.
11866
11867 2000-03-15  Nick Clifton  <nickc@cygnus.com>
11868
11869         * config/arm/arm.c (arm_output_epilogue): Do not pass %c to
11870         asm_fprintf().
11871
11872 2000-03-15  Zack Weinberg  <zack@wolery.cumb.org>
11873
11874         * cppfiles.c (open_include_file): New function.
11875         (find_include_file, cpp_read_file): Use it.
11876
11877 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
11878
11879         * cpphash.c (dump_hash_helper): Take the slot, not the element.
11880
11881 Wed Mar 15 14:28:54 2000  Jason Eckhardt  <jle@cygnus.com>
11882
11883         * flow.c (verify_flow_info): Check for unconditional return.
11884
11885 Wed Mar 15 11:34:27 2000  Jim Wilson  <wilson@cygnus.com>
11886
11887         * config/ia64/ia64.md (restore_stack_nonlocal): New.
11888         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Delete padding nop.
11889         (__ia64_restore_stack_nonlocal): New.
11890         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __restore_stack_nonlocal.
11891
11892 2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11893
11894         * cpphash.c (collect_formal_parameters): Do not complain about
11895         parameter names that just start with `__VA_ARGS__'.
11896
11897 Wed Mar 15 13:26:58 MET 2000  Jan Hubicka  <jh@suse.cz>
11898
11899         * i386.md (movhi_1): Promote movw imm, reg to movl imm, reg and
11900         movw reg, reg to movzwl reg, reg on PARTIAL_REGISTER_STALL machines.
11901         * i386.c (pentiumpro_cost): Set mul cost to 4.
11902         (x86_use_movx): Set for PPro.
11903
11904 Wed Mar 15 13:07:05 MET 2000  Jan Hubicka  <jh@suse.cz>
11905
11906         * i386.md (ix86_compute_frame_size): stack_alignment_needed is
11907         STACK_BOUNDARY for empty frames now.
11908
11909 2000-03-14  Mark Mitchell  <mark@codesourcery.com>
11910
11911         * stor-layout.c (layout_union): Remove.
11912         (layout_union_field): New function, split out from layout_union.
11913         (finish_union_layout): Likewise.
11914         (layout_field): Handle unions by calling layout_union_field.
11915         (finish_record_layout): Handle unions.
11916         (layout_type): Combine RECORD_TYPE, UNION_TYPE, and
11917         QUAL_UNION_TYPE handling.
11918
11919 Wed Feb 23 13:00:06 CET 2000  Jan Hubicka  <jh@suse.cz>
11920
11921         * flow.c (fixup_reorder_chain): Avoid double labels in the basic block;
11922         end of basic block is jump_insn, not barrier; use create_basic_block
11923         instead of creating basic block by hand.
11924
11925 2000-03-14  Jason Eckhardt  <jle@cygnus.com>
11926
11927         * flow.c (reorder_basic_blocks): Account for barriers when writing
11928         over NEXT_INSN (last_bb->end).
11929         (verify_flow_info): Add check for missing barriers.
11930
11931 2000-03-14  Greg McGary  <gkm@gnu.org>
11932
11933         * c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED.
11934         * c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED.
11935         * c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__,
11936         __ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__,
11937         __unbounded, __unbounded__): New keywords.
11938         * c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens.
11939         * c-parse.y, c-parse.c, c-parse.h: Regenerate.
11940         * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
11941
11942 2000-03-14  Bernd Schmidt  <bernds@cygnus.co.uk>
11943
11944         * cselib.h: New file.
11945         * alias.c: Include "cselib.h".
11946         (fixed_scalar_and_varying_struct_p): Accept the addresses of the
11947         MEMs as two new arguments.
11948         (get_addr): New static function.
11949         (find_base_term): Handle VALUEs.
11950         (memrefs_conflict_p): Likewise.
11951         (true_dependence): Call get_addr on the addresses.
11952         Call fixed_scalar_and_varying_struct_p with addresses that have been
11953         passed through get_addr and canon_rtx.
11954         (write_dependence_p): Move DIFFERENT_ALIAS_SETS_P test for consistency
11955         with true_dependence.
11956         Call get_addr on the addresses; don't call canon_rtx on the MEMs.
11957         * loop.c: Include "cselib.h".
11958         (load_mems): Process extended basic block that enters the loop with
11959         cselib.  Use that information to change initialization of the shadow
11960         register so that a constant equivalence is seen by later passes.
11961         * reload1.c: Include "cselib.h".
11962         (reload_cse_invalidate_regno): Delete function.
11963         (reload_cse_mem_conflict_p): Likewise.
11964         (reload_cse_invalidate_mem): Likewise.
11965         (reload_cse_invalidate_rtx): Likewise.
11966         (reload_cse_regno_equal_p): Likewise.
11967         (reload_cse_check_clobber): Likewise.
11968         (reload_cse_record_set): Likewise.
11969         (reg_values): Delete static variable.
11970         (invalidate_regno_rtx): Likewise.
11971         (reload_cse_delete_noop_set): New static function.
11972         (reload_cse_simplify): New static function, broken out of
11973         reload_cse_regs_1.
11974         (reload_cse_noop_set_p): Delete unused argument INSN.
11975         Just call rtx_equal_for_cselib_p on set source and destination.
11976         (reload_cse_regs_1): Break out some code into reload_cse_simplify and
11977         reload_cse_delete_noop_set.  Delete code to keep track of values; use
11978         cselib functions instead.  Delete code to push/pop obstacks.
11979         (reload_cse_simplify_set): Use cselib to find equivalent values.
11980         Delete code to push/pop obstacks.
11981         (reload_cse_simplify_operands): Likewise.
11982         * rtl.def (VALUE): New rtx code.
11983         * rtl.h (union rtunion_def): New elt rt_cselib.
11984         (X0CSELIB, CSELIB_VAL_PTR): New macros.
11985         * simplify_rtx.c: Include "ggc.h", "obstack.h", "cselib.h".
11986         (new_elt_list, new_elt_loc_list, unchain_one_value, clear_table,
11987         unchain_one_elt_list, unchain_one_elt_loc_list, check_useless_values,
11988         discard_useless_locs, discard_useless_values, entry_and_rtx_equal_p,
11989         hash_rtx, new_cselib_val, add_mem_for_addr, get_value_hash,
11990         cselib_lookup_mem, cselib_subst_to_values, cselib_invalidate_regno,
11991         cselib_mem_conflict_p, cselib_invalidate_mem, cselib_invalidate_rtx,
11992         cselib_record_set, cselib_record_sets): New static functions.
11993         (cselib_lookup, cselib_update_varray_sizes, cselib_init,
11994         cselib_finish, cselib_process_insn, rtx_equal_for_cselib_p,
11995         references_value_p): New functions.
11996         (MAX_USELESS_VALUES, REG_VALUES): New macros.
11997         (table, cselib_current_insn, next_unknown_value, cselib_nregs,
11998         n_useless_values, reg_values, callmem, cselib_obstack,
11999         cselib_startobj, empty_vals, empty_elt_lists, empty_elt_loc_lists):
12000         New static variables.
12001         * varray.h (union varray_data_tag): New elt te.
12002         (VARRAY_ELT_LIST_INIT, VARRAY_ELT_LIST): New macros.
12003         * Makefile.in (reload1.o, loop.o, simplify-rtx.o, alias.o): Update
12004         dependencies.
12005
12006 2000-03-14  Nick Clifton  <nickc@cygnus.com>
12007
12008         * gcc.c (do_spec_1): Catch the case where %* is used in a
12009         substitution pattern, but it has not been initialised.
12010         Issue a meaningful error message if an unrecognised operator
12011         is encountered in a spec string.
12012
12013 2000-03-14  Richard Earnshaw <rearnsha@arm.com>
12014
12015         * function.c (prepare_function_start): Correctly initialize
12016         cfun->stack_alignment_needed.
12017
12018 2000-03-14  Zack Weinberg  <zack@wolery.cumb.org>
12019
12020         * cppfiles.c (find_include_file): Don't assume nshort is a
12021         substring of name.
12022
12023 Tue Mar 14 08:42:21 2000  Jeffrey A Law  (law@cygnus.com)
12024
12025         * configure.in (hppa configurations): Add pa32-regs.h to the
12026         list of tm files as appropriate.
12027         * configure: Rebuilt.
12028         * pa.c (compute_frame_size): Remove explicit knowledge about FP
12029         register numbering.
12030         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
12031         (fmpyaddoperands, fmpysuboperands): Likewise.
12032         * pa.h: Remove various definitions which depend on knowing
12033         how registers are numbered.
12034         * pa32-regs.h: New file with PA32 register numbering specific
12035         definitions.
12036
12037 2000-03-14  Richard Henderson  <rth@cygnus.com>
12038
12039         * regmove.c (combine_stack_adjustments): New.
12040         (stack_memref_p, single_set_for_csa): New.
12041         (free_csa_memlist, record_one_stack_memref): New.
12042         (try_apply_stack_adjustment): New.
12043         (combine_stack_adjustments_for_block): New.
12044         * rtl.h (combine_stack_adjustments): Declare.
12045         * toplev.c (rest_of_compilation): Call it.
12046
12047         * i386.md: Revert 2000-01-16 change.
12048
12049 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
12050
12051         * gccbug.in: Add web category, gcc specific classes.
12052
12053 2000-03-14  Nathan Sidwell  <nathan@codesourcery.com>
12054
12055         * stor-layout.c (finalize_record_size): Fix typo.
12056
12057 2000-03-14  Stan Shebs  <shebs@apple.com>
12058
12059         * c-typeck.c (c_alignof): Error on incomplete types.
12060         * extend.texi (Alignment): Document this.
12061
12062 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
12063
12064         * cppfiles.c: Include mkdeps.h.
12065         (find_include_file, read_include_file): Remove _cpp_ prefix
12066         from name, make static.
12067         (_cpp_execute_include): New function, broken out of
12068         do_include.
12069
12070         * cpplib.c: Don't include mkdeps.h.
12071         (struct directive): Remove type field. Reorder entries.  The
12072         function takes only one argument.
12073         (struct if_stack): Make type field an int.
12074         (directive_table): Rename to dtable.  Generate it, the
12075         prototypes of the directive handlers, and the enum for the
12076         directive numbers, from a template macro.
12077         (do_ifndef, do_include_next, do_import): New functions.
12078         (do_define, do_include, do_endif, do_ifdef, do_if, do_else,
12079         do_undef, do_line, do_elif, do_error, do_pragma, do_warning,
12080         do_ident, do_assert, do_unassert, do_sccs): Take only one
12081         argument.
12082         (do_sccs): Define always, but alter behavior based on
12083         SCCS_DIRECTIVE.
12084         (_cpp_handle_directive, consider_directive_while_skipping):
12085         Restructure for new directive table layout.
12086
12087         (pass_thru_directive): Take a directive number, not a pointer
12088         to a struct directive.
12089         (parse_include): New function, broken out of do_include.
12090         (do_include, do_import, do_include_next): Use parse_include
12091         and _cpp_execute_include.
12092         (do_elif, do_else): Test for T_ELSE specifically when checking
12093         for #elif/#else after #else.
12094         (parse_ifdef): New function, broken out of do_ifdef.
12095         (validate_else): Expect a name arg without a leading #.
12096         (if_directive_name): Delete.
12097         (cpp_define, cpp_assert, cpp_undef, cpp_unassert): Call
12098         directive handlers with only one argument.
12099
12100         * cpphash.h: Update prototypes.
12101         (enum node_type): Remove entries for directives.
12102         * Makefile.in: Update dependencies.
12103
12104         * cpphash.c (dump_hash_helper): Only dump nodes of type
12105         T_MACRO.  Emit a newline after each definition.
12106
12107 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
12108
12109         * gccbug.in: New file.
12110         * configure.in (all_outputs): Add gccbug.
12111         * Makefile.in (install-common): Install gccbug.
12112         (GCCBUG_INSTALL_NAME): New variable.
12113         * configure: Rebuilt.
12114
12115 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
12116
12117         * function.c (put_var_into_stack): Use type_for_mode to calculate
12118         part_type.  Use MEM_SET_IN_STRUCT_P.
12119         * expr.c (store_field): Handle CONCAT.
12120         (store_constructor): Use fields_length.
12121         * tree.c (fields_length): New fn.
12122         * tree.h: Declare it.
12123
12124 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
12125
12126         * Makefile.in (LIBCPP_OBJS): Add cpplex.o.
12127         (cpplex.o): New target.
12128         * po/POTFILES.in: Add cpplex.c.
12129
12130         * cpplex.c (_cpp_grow_token_buffer, null_cleanup,
12131         cpp_push_buffer, cpp_pop_buffer, cpp_scan_buffer,
12132         cpp_expand_to_buffer, cpp_buf_line_and_col, cpp_file_buffer,
12133         skip_block_comment, skip_line_comment, skip_comment,
12134         copy_comment, _cpp_skip_hspace, _cpp_skip_rest_of_line,
12135         _cpp_parse_name, skip_string, parse_string,
12136         _cpp_parse_assertion, cpp_get_token, cpp_get_non_space_token,
12137         _cpp_get_directive_token, find_position,
12138         _cpp_read_and_prescan, _cpp_init_input_buffer): Move here.
12139         (maybe_macroexpand, _cpp_lex_token): New functions.
12140
12141         * cpplib.c (SKIP_WHITE_SPACE, eval_if_expr, parse_set_mark,
12142         parse_goto_mark): Delete.
12143         (_cpp_handle_eof): New function.
12144         (_cpp_handle_directive): Rename from handle_directive.
12145         (_cpp_output_line_command): Rename from output_line_command.
12146         (do_if, do_elif): Call _cpp_parse_expr directly.
12147         * cppfiles.c (_cpp_read_include_file): Don't call
12148         init_input_buffer here.
12149         * cpphash.c (quote_string): Move here, rename _cpp_quote_string.
12150         * cppexp.c (_cpp_parse_expr): Diddle parsing_if_directive
12151         here; pop the token_buffer and skip the rest of the line here.
12152         * cppinit.c (cpp_start_read): Call _cpp_init_input_buffer
12153         here.
12154
12155         * cpphash.h (CPP_RESERVE, CPP_IS_MACRO_BUFFER, ACTIVE_MARK_P):
12156         Define here.
12157         (CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, CPP_SET_MARK,
12158         CPP_GOTO_MARK): New macros.
12159         (_cpp_quote_string, _cpp_parse_name, _cpp_skip_rest_of_line,
12160         _cpp_skip_hspace, _cpp_parse_assertion, _cpp_lex_token,
12161         _cpp_read_and_prescan, _cpp_init_input_buffer,
12162         _cpp_grow_token_buffer, _cpp_get_directive_token,
12163         _cpp_handle_directive, _cpp_handle_eof,
12164         _cpp_output_line_command): Prototype them here.
12165         * cpplib.h (enum cpp_token): Add CPP_MACRO.
12166         (CPP_RESERVE, get_directive_token, cpp_grow_buffer,
12167         quote_string, output_line_command): Remove.
12168
12169 2000-03-13  Bernd Schmidt  <bernds@cygnus.co.uk>
12170
12171         * stmt.c (expand_end_case): RANGE may be signed, and when checking
12172         whether it is too large we must also verify that it isn't negative.
12173
12174 2000-03-13  Jakub Jelinek  <jakub@redhat.com>
12175
12176         * config/sparc/sparc.md: Remove all traces of TARGET_LIVE_G0.
12177         (movsi_zero_liveg0): Remove.
12178         (movsf_insn_novis_liveg0): Remove.
12179         (negsi2): Remove.
12180         (negsi2_not_liveg0): Rename to negsi2.
12181         (one_cmplsi2): Remove.
12182         (one_cmplsi2_not_liveg0): Rename to one_cmplsi2.
12183         (one_cmplsi2_liveg0): Remove.
12184         * config/sparc/sparc.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE,
12185         MASK_LIVE_G0, MASK_BROKEN_SAVERESTORE): Remove.
12186         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_LIVE_G0 if.
12187         (PREDICATE_CODES): Remove zero_operand.
12188         * config/sparc/sparc.c: Remove all traces of TARGET_LIVE_G0 and
12189         TARGET_BROKEN_SAVERESTORE.
12190         (zero_operand): Remove.
12191         * config/sparc/splet.h (SUBTARGET_SWITCHES): Remove -mlive-g0,
12192         -mno-live-g0, -mbroken-saverestore and -mno-broken-saverestore
12193         options.
12194         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
12195         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
12196         TARGET_BROKEN_SAVERESTORE): Remove.
12197         * config/sparc/linux.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
12198         Remove.
12199         * config/sparc/linux64.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
12200         Remove.
12201         * config/sparc/sol2.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
12202         Remove.
12203
12204         * config/sparc/sparc.md (return_df_no_fpu): New pattern.
12205
12206 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
12207
12208         * cpplib.c (do_pragma_implementation): Fix off-by-one error
12209         truncating a string.  Don't assume tokens are nul terminated.
12210         Problem noted by Andreas Jaeger <aj@suse.de>
12211
12212 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
12213
12214         * dwarf2out.c (add_name_and_src_coords_attributes): Only add
12215         DW_AT_MIPS_linkage_name for TREE_PUBLIC decls.
12216         (ASM_OUTPUT_DWARF_ADDR_CONST): Don't output trailing newline.
12217
12218 2000-03-13  Richard Earnshaw <rearnsha@arm.com>
12219
12220         * stor-layout.c (new_record_layout_info): Fix typo inside ifdef
12221         STRUCTURE_SIZE_BOUNDARY.
12222
12223 2000-03-13  Mark Mitchell  <mark@codesourcery.com>
12224
12225         * tree.h (record_layout_info_s): New structure.
12226         (record_layout_info): New type.
12227         (new_record_layout_info): New function.
12228         (layout_field): Likewise.
12229         (finish_record_layout): Likewise.
12230         * stor-layout.c (layout_record): Remove.
12231         (new_record_layout_info): New function.
12232         (layout_field): New function, broken out from layout_record.
12233         (finalize_record_size): Likewise.
12234         (compute_record_mode): Likewise.
12235         (finalize_type_size): New function, broken out from layout_type.
12236         (finish_record_layout): Likewise.
12237         (layout_type): Use them.
12238
12239 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
12240
12241         * cpphash.c: Don't include version.h.
12242         (special_symbol) [case T_VERSION]: Look for the string in
12243         hp->value.cpval; don't use version_string.
12244         * cppinit.c (initialize_builtins): Set hp->value.cpval for
12245         __VERSION__ to version_string.
12246         * Makefile.in (cpphash.o): Update deps.
12247
12248 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
12249
12250         Convert cpplib to use libiberty/hashtab.c.
12251
12252         * cpplib.h (struct cpp_reader): Make hashtab and
12253         all_include_files of type 'struct htab *'.  Delete HASHSIZE
12254         and ALL_INCLUDE_HASHSIZE macros.
12255
12256         * cpphash.h: Update prototypes.
12257         (struct hashnode): Remove next, prev, and bucket_hdr members.
12258         Make length a size_t.  Add hash member.
12259         (struct ihash): Remove next member.  Add hash member.  Make
12260         name a flexible array member.
12261
12262         * cppfiles.c: Include hashtab.h.
12263         (include_hash): Delete.
12264         (IHASHSIZE): New macro.
12265         (hash_IHASH, eq_IHASH, _cpp_init_include_hash): New functions.
12266         (cpp_included): Do the hash lookup here.
12267         (_cpp_find_include_file): Rewrite.
12268         (cpp_read_file): Put the "fake" hash entry into the hash
12269         table.  Honor the control_macro, if it turns out we've seen
12270         the file before.  Don't push the buffer here.
12271         (_cpp_read_include_file): Push the buffer here.
12272         (OMODES): New macro.  Use it whenever we call open(2).
12273
12274         * cpphash.c: Include hashtab.h.
12275         (hash_HASHNODE, eq_HASHNODE, del_HASHNODE, dump_hash_helper,
12276         _cpp_init_macro_hash, _cpp_dump_macro_hash, _cpp_make_hashnode,
12277         _cpp_lookup_slot): New functions.
12278         (HASHSIZE): new macro.
12279         (hashf, _cpp_install, _cpp_delete_macro): Delete.
12280         (_cpp_lookup): Use hashtab.h routines.
12281
12282         * cppinit.c: Include hashtab.h.
12283         (cpp_reader_init): Call _cpp_init_macro_hash and
12284         _cpp_init_include_hash.  Don't allocate hashtab directly.
12285         (cpp_cleanup): Just call htab_delete on pfile->hashtab and
12286         pfile->all_include_files.
12287         (initialize_builtins): Use _cpp_make_hashnode and
12288         htab_find_slot to add hash entries.
12289         (cpp_finish): Just call _cpp_dump_macro_hash.
12290         * cpplib.c: Include hashtab.h.
12291         (do_define): Use _cpp_lookup_slot and _cpp_make_hashnode to
12292         create hash entries.
12293         (do_pragma_poison, do_assert): Likewise.
12294         (do_include): Don't push the buffer here.  Don't increment
12295         system_include_depth unless _cpp_read_include_file succeeds.
12296         (do_undef, do_unassert): Use _cpp_lookup_slot and htab_clear_slot
12297         or htab_remove_elt.
12298         (do_pragma_implementation): Use alloca to create copy.
12299
12300         * Makefile.in: Update dependencies.
12301
12302 2000-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12303
12304         * cppinit.c (cl_directive_handler): More K&R fixing.
12305
12306 Sat Mar 11 23:54:26 2000  Jim Wilson  <wilson@cygnus.com>
12307
12308         * config/ia64/ia64.c (ia64_compute_frame_size): Align size to
12309         STACK_BOUNDARY.
12310         * config/ia64/ia64.h (REGISTER_MOVE_COST): Add missing parentheses.
12311
12312 2000-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12313
12314         * cppinit.c (no_arg, no_ass, no_dir, no_fil, no_mac, no_pth):
12315         Change from char[] to macros.
12316
12317 2000-03-12  Neil Booth  <NeilB@earthling.net>
12318
12319         * cppinit.c (cpp_start_read): Update indirect function
12320         call to K&R C.
12321
12322 Sat Mar 11 16:18:12 2000  Jim Wilson  <wilson@cygnus.com>
12323
12324         * config/ia64/ia64.h (ADDITIONAL_REGISTER_NAMES): Fix typo in loc79
12325         entry.
12326
12327         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
12328         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyright messages.
12329
12330 2000-03-11  Neil Booth  <NeilB@earthling.net>
12331
12332         * cppinit.c (struct pending option): Replace undef with a
12333         pointer to a directive handling routine.
12334         (struct cpp_pending): Replace separate assert_ and define_
12335         lists with one directive_ list.
12336         (new_pending_define): Rename new_pending_directive. Extra
12337         argument is the directive's handling routine.
12338         (handle_option): Update to use new_pending_directive.
12339
12340 2000-03-11  Neil Booth  <NeilB@earthling.net>
12341
12342         * cppfiles.c (file_cleanup, _cpp_find_include_file,
12343         remap_filename, _cpp_read_include_file, actual_directory,
12344         hack_vms_include_specification): Replace bcopy(), index() etc
12345         calls.  Add casts to some allocations.  Make some variables
12346         pointers to const [unsigned] char.
12347         * cpphash.c (_cpp_install, macro_cleanup, collect_expansion,
12348         collect_formal_parameters): Similarly.
12349         * cppinit.c (struct pending_option, append_include_chain,
12350         cpp_options_init, cpp_reader_init, initialize_standard_includes,
12351         cpp_start_read, new_pending_define, handle_option): Similarly.
12352         * cpplib.c (cpp_define, copy_comment, do_define, do_include,
12353         do_undef, do_error, do_warning, do_pragma, do_pragma_once,
12354         do_pragma_implementation, detect_if_not_defined,
12355         do_ifdef, skip_if_group, cpp_get_token, parse_string,
12356         do_assert, do_unassert): Similarly.
12357         * cpplib.h (cpp_buffer, cpp_options): Update types.  Update
12358         function prototypes.
12359         * mkdeps.c (deps_add_target, deps_add_dep): cast allocations.
12360
12361 2000-03-10  Richard Henderson  <rth@cygnus.com>
12362
12363         * builtins.c (expand_builtin_strlen): Revert last change.
12364         Use emit_insn_before if we're at the beginning of a sequence.
12365
12366 2000-03-10  Jason Merrill  <jason@casey.cygnus.com>
12367
12368         * builtins.c (expand_builtin_strlen): Make sure that we have something
12369         at the beginning of the sequence.
12370
12371         * toplev.c (rest_of_compilation): Also set TREE_NOTHROW for
12372         deferred inlines.
12373
12374         * invoke.texi (C++ Dialect Options): Document -fno-enforce-eh-specs.
12375
12376 2000-03-10  Richard Henderson  <rth@cygnus.com>
12377
12378         * except.c (can_throw): Use INTVAL on a CONST_INT.
12379         (reachable_handlers): Likewise.
12380         * flow.c (count_basic_blocks, find_basic_blocks_1): Likewise.
12381
12382 2000-03-10  Andreas Jaeger  <aj@suse.de>
12383
12384         * config/mips/linux.h: Undefine MD_EXEC_PREFIX and
12385         MD_STARTFILE_PREFIX since those are not needed on linux.
12386         (ASM_FILE_START): New, from mips/gnu.h.
12387
12388 2000-03-09  Richard Henderson  <rth@cygnus.com>
12389             Alex Samuel  <samuel@codesourcery.com> and others
12390
12391         * Makefile.in (ssa.o): New rule.
12392         (OBJS): Add ssa.o.
12393         (STAGESTUFF): Add *.ssa and *.ussa.
12394         (mostlyclean): Delete *.ssa, *.ussa, */*.ssa, */*.ussa.
12395         * rtl.def (PHI): New RTL expression.
12396         * rtl.h (clear_log_links): New declaration.
12397         (convert_to_ssa): Likewise.
12398         (convert_from_ssa): Likewise.
12399         * flow.c (split_edge): If the entry node falls through to the
12400         split edge's source block, split the entry edge.
12401         (clear_log_links): New function.
12402         * toplev.c (ssa_dump): New variable.
12403         (flag_ssa): Likewise.
12404         (f_options): Add "ssa".
12405         (compile_file): Create SSA dump files.
12406         (rest_of_compilation): Go to and from SSA if enabled.
12407         (decide_d_option): Handle -de for SSA dump files.
12408         * ssa.c: New file.
12409
12410 Thu Mar  9 20:01:38 2000  Jim Wilson  <wilson@cygnus.com>
12411
12412         * expr.c (expand_assignment): For a CALL_EXPR, special case PARM_DECL
12413         same as VAR_DECL.
12414
12415 2000-03-09  Benjamin Kosnik  <bkoz@cygnus.com>
12416
12417         * config/alpha/linux.h (WCHAR_TYPE): Make consistent.
12418
12419 Thu Mar  9 18:10:02 2000  Jeffrey A Law  (law@cygnus.com)
12420
12421         * config/pa/pa-hpux10.h (LIB_SPEC): Correct typo in !p case.
12422         (MD_STARTFILE_PREFIX_1): New macro.
12423
12424 2000-03-09  Robert Lipe  <robertl@sco.com>
12425
12426         * config/ia64/ia64.c: Include system.h.
12427
12428 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
12429
12430         * except.c (nothrow_function_p): If -fno-exceptions, just return.
12431         (init_eh_nesting_info): Likewise.
12432
12433         * tree.h (struct tree_common): Rename raises_flag to nothrow_flag.
12434         (TREE_NOTHROW): Rename from TREE_RAISES.
12435         * toplev.c (rest_of_compilation): Set it.
12436         * print-tree.c (print_node): Adjust.
12437         * tree.c (stabilize_reference, build, build1): Don't set TREE_RAISES.
12438         (stabilize_reference_1, get_unwidened, get_narrower): Likewise.
12439         * calls.c (emit_call_1): Add 'nothrow' parm.  Add
12440         REG_EH_REGION note as appropriate.
12441         (libfunc_nothrow): New fn.
12442         (emit_library_call, emit_library_call_value): Use it.
12443         (expand_call): Check TREE_NOTHROW.
12444
12445         * varasm.c (make_decl_rtl): Skip initial '*' when setting
12446         DECL_ASSEMBLER_NAME.
12447
12448 2000-03-09  Andreas Jaeger  <aj@suse.de>
12449
12450         * mips/linux.h (NO_IMPLICIT_EXTERN_C): Define.
12451         (TARGET_MEM_FUNCTIONS): Define.
12452
12453 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
12454
12455         * i386.c (ix86_valid_type_attribute_p): Use compare_tree_int.
12456
12457         * except.c (can_throw): See through a SEQUENCE.
12458         (nothrow_function_p): New fn.
12459         * except.h: Declare it.
12460         * function.c (current_function_nothrow): New var.
12461         (prepare_function_start): Initialize it.
12462         * output.h: Declare it.
12463         * toplev.c (rest_of_compilation): Set it.
12464         * dwarf2out.c (dwarf2out_begin_prologue): Use it.
12465
12466 2000-03-09  Zack Weinberg  <zack@wolery.cumb.org>
12467
12468         * cpphash.c (collect_formal_parameters): strncmp returns 0 for
12469         match.  (cpp_compare_defs): Count the nul separator when
12470         advancing over argument names.
12471
12472 2000-03-09  Bernd Schmidt  <bernds@cygnus.co.uk>
12473
12474         * recog.c (preprocess_constraints): Matching constraints affect
12475         same alternative/different operand, not same operand/different
12476         alternative.
12477
12478         * reload1.c (eliminate_regs_in_insn): Handle additions of eliminable
12479         register and a constant specially.
12480
12481 2000-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12482
12483         * libgcc2.h: New file.
12484         * libgcc2.c: Move macros, typedefs and prototypes to libgcc2.h.
12485
12486 Wed Mar  8 16:19:42 2000  Jim Wilson  <wilson@cygnus.com>
12487
12488         * configure.in (ia64*-*-elf*, ia64*-*-linux*): New.
12489         * configure: Regenerate.
12490         * config/ia64: New.
12491
12492 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
12493
12494         * Makefile.in (LIBCPP_DEPS): New macro.
12495         (cpplib.o, cpphash.o, cpperror.o, cppexp.o, cppfiles.o): Use
12496         it to declare deps.
12497         * cpperror.c: Include cpphash.h.
12498         * cppexp.c: Include cpphash.h.  Remove MULTIBYTE_CHARS
12499         dingleberry.
12500         (lex): Don't use CPP_WARN_UNDEF.
12501         (_cpp_parse_expr): Return an int, the truth value.
12502         * cppfiles.c: Include cpphash.h.
12503         (_cpp_merge_include_chains): Move to cppinit.c and make static.
12504         * cppinit.c (include_defaults_array): Disentangle.
12505         (cpp_cleanup): Don't free the if stack here.
12506         (cpp_finish): Pop off all buffers, not just one.
12507         * cpplib.c (eval_if_expr): Return int.
12508         (do_xifdef): Rename do_ifdef.
12509         (handle_directive): Don't use CPP_PREPROCESSED.
12510         (cpp_get_token): Don't use CPP_C89.
12511         * fix-header.c: Don't use CPP_OPTIONS.
12512
12513         * cpplib.h: Move U_CHAR, enum node_type, struct
12514         file_name_list, struct ihash, is_idchar, is_idstart,
12515         is_numchar, is_numstart, is_hspace, is_space, CPP_BUF_PEEK,
12516         CPP_BUF_GET, CPP_FORWARD, CPP_PUTS, CPP_PUTS_Q, CPP_PUTC,
12517         CPP_PUTC_Q, CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q,
12518         CPP_BUMP_BUFFER_LINE, CPP_BUMP_LINE, CPP_PREV_BUFFER,
12519         CPP_PRINT_DEPS, CPP_TRADITIONAL, CPP_PEDANTIC, and prototypes
12520         of _cpp_simplify_pathname, _cpp_find_include_file,
12521         _cpp_read_include_file, and _cpp_parse_expr to cpphash.h.
12522         Move struct if_stack to cpplib.c.  Move struct cpp_pending to
12523         cppinit.c.
12524         Change all uses of U_CHAR to be unsigned char instead.
12525         Delete CPP_WARN_UNDEF, CPP_C89, and CPP_PREPROCESSED.
12526
12527 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
12528
12529         * dwarf2out.c (dw_fde_struct): Add 'nothrow'.
12530         (dwarf2out_begin_prologue): Set it.
12531         (output_call_frame_info): Don't emit EH unwind info for leaves.
12532
12533         * flow.c (count_basic_blocks, find_basic_blocks_1): A rethrow
12534         can occur outside of an EH region.
12535         * except.c: Correct comments about rethrow behavior.
12536         (rethrow_symbol_map): Do nothing if !flag_new_exceptions.
12537
12538 2000-03-08  Andrew MacLeod  <amacleod@cygnus.com>
12539
12540         * flow.c (make_edges): Always call make_eh_edge for calls.
12541
12542 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
12543
12544         * cpplib.h (parse_underflow_t, CPP_NULL_BUFFER): Delete.
12545         (struct cpp_buffer): Remove fname and underflow fields.
12546         (struct cpp_reader): Remove get_token field.
12547         (struct include_hash): Rename to struct ihash.  Add typedef to
12548         IHASH.
12549         (struct if_stack): Remove fname field.
12550         (IF_STACK_FRAME): Rename to IF_STACK.
12551
12552         * cpperror.c (print_containing_files): Trust that there are no
12553         macro buffers below the top file buffer.
12554         * cppfiles.c: Replace all references to 'struct include_hash'
12555         with 'IHASH'.  Rename initialize_input_buffer to
12556         init_input_buffer.  Don't set or reference cpp_buffer->fname,
12557         use buffer->ihash->name instead.
12558         * cpphash.c (special_symbol): Use cpp_file_buffer.  Use NULL
12559         not CPP_NULL_BUFFER.
12560         * cppinit.c: Use NULL not CPP_NULL_BUFFER, IF_STACK not
12561         IF_STACK_FRAME, IHASH not struct include_hash.
12562         * cpplib.c: Rename eval_if_expression to eval_if_expr.  Remove
12563         null_underflow.  Use IF_STACK not IF_STACK_FRAME, IHASH not
12564         struct include_hash, NULL not CPP_NULL_BUFFER.  Remove all
12565         references to cpp_buffer->fname (delete entirely, or use
12566         ->ihash->name instead) and IF_STACK->fname.
12567         (cpp_push_buffer): Don't set new->underflow.
12568         (do_include): Use cpp_file_buffer.
12569
12570         * cpphash.c (collect_formal_parameters): Remove duplicate
12571         increment of argslen.  Pedwarn in C99 mode if __VA_ARGS__ is
12572         used as a macro argument name.  Don't append "..." to namebuf
12573         for varargs macros.  After we're done scanning, go through
12574         namebuf and make it NUL separated, not comma separated.
12575         (_cpp_compare_defs): Remove register tag from variables.
12576         Expect defn->argnames to be NUL separated.
12577         (_cpp_dump_definition): Expect defn->argnames to be NUL
12578         separated and in forward order.
12579         * cpphash.h: Update documentation of argnames field.
12580
12581 2000-03-08  Richard Henderson  <rth@cygnus.com>
12582
12583         * builtins.c (expand_builtin_strlen): Be prepared for strlensi
12584         to fail.  Don't pre-expand the source operand.
12585
12586         * i386.md (strlensi): Initialize eoschar and align before use.
12587
12588 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
12589
12590         * expr.c (expand_expr, case ARRAY_REF): Still check for missing
12591         CONSTRUCTOR element.
12592
12593 2000-03-08  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
12594
12595         * mips.c (mips_expand_prologue): If the last
12596         named argument is the vararg marker "va_list", treat it as
12597         an unnamed argument.
12598
12599 2000-03-08  Clinton Popetz  <cpopetz@cygnus.com>
12600
12601         * dbxout.c (dbxout_parms): When correcting for promoted
12602         big-endian parameters, use the mode of the DECL_RTL rather
12603         than UNITS_PER_WORD.
12604
12605 2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
12606
12607         * c-common.h (make_fname_decl): Declare.
12608         * c-common.c (make_fname_decl): Define.
12609         (declare_hidden_char_array): Remove.
12610         (declare_function_name): Use make_fname_decl.
12611         * c-decl.c (c_make_fname_decl): New function.
12612         (init_decl_processing): Set make_fname_decl.
12613
12614 Tue Mar  7 23:50:31 2000  Jeffrey A Law  (law@cygnus.com)
12615
12616         * cccp.c (handle_directive): Initialize backslash_newlines_p.
12617
12618 2000-03-07  Philipp Thomas  <pthomas@suse.de>
12619
12620         * po/POTFILES.in: Remove cppalloc.c from file list.
12621
12622 2000-03-07  Steve Chamberlain  <sac@pobox.com>
12623
12624         * pj.c (pj_expand_prologue): current_function->args_info is
12625         now current_function_args_info.
12626
12627         * pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX,
12628         LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL,
12629         ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define.
12630
12631 2000-03-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12632
12633         * config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is
12634         output as hexadecimal rather than the default octal.
12635
12636 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
12637
12638         * cpphash.c (special_symbol): Fix thinko in previous commit.
12639
12640 2000-03-07  Neil Booth  <NeilB@earthling.net>
12641
12642         * cppexp.c (struct operation, left_shift, right_shift,
12643         cpp_parse_expr): Change some "char"s to "U_CHAR"s, and some
12644         "int"s to "unsigned int"s.
12645         * cpplib.c (detect_if_not_defined, do_assert, do_unassert):
12646         Similarly.
12647         * cpplib.h: Update for above.
12648         * mkdeps.c (deps_init, deps_calc_target): Cast pointers
12649         returned from allocations.
12650
12651         * cppinit.c (opt_comp, parse_options): New functions.
12652         (handle_option): Use parse_option to parse a single command
12653         line option, that possibly takes an argument.
12654         (cpp_handle_options): Sort the array of command line options on
12655         first invocation (non-ASCII hosts only).
12656         (print_help): Update.
12657
12658 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
12659
12660         * mkdeps.c (munge): Fix off-by-one bug and inconsistencies in
12661         backslash counting loops.  Problem noted by Matt Kraai <kraai@ghs.com>.
12662
12663         * cppfiles.c (_cpp_find_include_file): Make sure ih->name is
12664         initialized.
12665         * cppinit.c (cpp_cleanup): Free imp->nshort also.
12666
12667         * cpperror.c (cpp_print_containing_files,
12668         cpp_print_file_and_line, v_cpp_message): Rename to
12669         print_containing_files, print_file_and_line, and v_message.
12670         * cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename
12671         to _cpp_parse_expr, parse_escape, and lex.
12672         (parse_charconst): Remove broken multibyte support.
12673         * cppfiles.c (include_hash): Make static.
12674         (cpp_included): New function.
12675         (merge_include_chains, find_include_file, finclude,
12676         simplify_pathname): Rename to _cpp_merge_include_chains,
12677         _cpp_find_include_file, _cpp_read_include_file, and
12678         _cpp_simplify_pathname.
12679         * cpphash.c (cpp_lookup, free_definition, delete_macro,
12680         cpp_install, create_definition, macroexpand, compare_defs,
12681         dump_definition): Rename to _cpp_lookup, _cpp_free_definition,
12682         _cpp_delete_macro, _cpp_install, _cpp_create_definition,
12683         _cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition.
12684         * cppinit.c (cpp_handle_option): Rename to handle_option, make
12685         static.
12686         * cpplib.c: Remove extern prototype of cpp_parse_expr.
12687
12688         * cpphash.h: Update prototypes.
12689         * cpplib.h: Likewise.  Prototype _cpp_parse_expr here.
12690
12691 2000-03-07  Andrew Haley  <aph@cygnus.com>
12692
12693         * config/mips/mips.h (PTRDIFF_TYPE): Revert broken change;
12694         PTRDIFF_TYPE should be based solely on Pmode.
12695         (SIZE_TYPE): ditto.
12696
12697 2000-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12698
12699         * rtl.h (rtunion_def): Constify member `rtstr'.
12700         (emit_line_note_after, emit_line_note, emit_line_note_force,
12701         emit_note, decode_asm_operands): Constify.
12702
12703         * cse.c (canon_hash): Likewise.
12704
12705         * dbxout.c (dbxout_block): Likewise.
12706
12707         * diagnostic.c (file_and_line_for_asm, v_error_for_asm,
12708         v_warning_for_asm): Likewise.
12709
12710         * dwarfout.c (function_start_label): Likewise.
12711
12712         * emit-rtl.c (emit_line_note_after, emit_line_note, emit_note,
12713         emit_line_note_force): Likewise.
12714
12715         * final.c (last_filename, asm_insn_count, final_scan_insn,
12716         output_source_line): Likewise.
12717
12718         * function.h (struct emit_status): Likewise.
12719
12720         * gcse.c (hash_expr_1): Likewise.
12721
12722         * genattr.c (gen_attr, main): Likewise.
12723
12724         * genattrtab.c (struct function_unit, current_alternative_string,
12725         write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq,
12726         attr_numeral, check_attr_test, check_attr_value,
12727         convert_set_attr_alternative, convert_set_attr,
12728         compute_alternative_mask, simplify_by_exploding, gen_attr,
12729         gen_unit): Likewise.
12730
12731         * genflags.c (gen_insn): Likewise.
12732
12733         * gengenrtl.c (type_from_format): Likewise.
12734
12735         * genopinit.c (gen_insn): Likewise.
12736
12737         * genoutput.c (n_occurrences, process_template, process_template):
12738         Likewise.
12739
12740         * ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
12741         Likewise.
12742
12743         * ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
12744         Likewise.
12745
12746         * ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable,
12747         ggc_set_mark, ggc_get_size): Likewise.
12748
12749         * objc/objc-act.c (build_module_descriptor, finish_objc): Likewise.
12750
12751         * optabs.c (init_one_libfunc): Likewise.
12752
12753         * output.h (assemble_start_function): Likewise.
12754
12755         * recog.c (decode_asm_operands): Likewise.
12756
12757         * toplev.c (rest_of_compilation): Likewise.
12758
12759         * tree.h (emit_line_note_after, emit_line_note,
12760         emit_line_note_force): Likewise.
12761
12762         * varasm.c (asm_output_bss, asm_output_aligned_bss,
12763         asm_emit_uninitialised, assemble_start_function,
12764         assemble_variable, const_hash, compare_constant_1,
12765         find_pool_constant, mark_constant_pool, assemble_alias): Likewise.
12766
12767         * xcoffout.h (DBX_FINISH_SYMBOL): Likewise.
12768
12769         * alpha/alpha.md (call_vms, call_value_vms): Likewise.
12770
12771         * arm/aof.h (ASM_OUTPUT_ASCII): Likewise.
12772
12773         * arm/aout.h (ASM_OUTPUT_ASCII): Likewise.
12774
12775         * arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p,
12776         arm_dllimport_name_p): Likewise.
12777
12778         * arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op):
12779         Likewise.
12780
12781         * arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise.
12782
12783         * arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12784
12785         * arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p,
12786         arm_mark_dllexport, arm_mark_dllimport,
12787         arm_pe_encode_section_info): Likewise.
12788
12789         * arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS,
12790         ASM_FINISH_DECLARE_OBJECT): Likewise.
12791
12792         * arm/thumb.c (thumb_function_prologue): Likewise.
12793
12794         * arm/thumb.h (ASM_OUTPUT_ASCII): Likewise.
12795
12796         * avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12797
12798         * clipper/clix.h (ASM_OUTPUT_ASCII): Likewise.
12799
12800         * fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise.
12801
12802         * i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise.
12803
12804         * i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12805
12806         * i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING,
12807         ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise.
12808
12809         * i386/i386-protos.h (asm_output_function_prefix): Likewise.
12810
12811         * i386/i386.c (asm_output_function_prefix): Likewise.
12812
12813         * i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise.
12814
12815         * i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12816
12817         * i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise.
12818
12819         * i386/sco5.h (ASM_FINISH_DECLARE_OBJECT,
12820         ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII,
12821         ASM_OUTPUT_SECTION_NAME): Likewise.
12822
12823         * i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise.
12824
12825         * i860/paragon.h (ASM_OUTPUT_ASCII): Likewise.
12826
12827         * i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise.
12828
12829         * m32r/m32r.c (m32r_encode_section_info): Likewise.
12830
12831         * mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12832
12833         * mcore/mcore.c (mcore_encode_section_info): Likewise.
12834
12835         * mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12836
12837         * mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12838
12839         * mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12840
12841         * mips/mips.h (ASM_OUTPUT_IDENT): Likewise.
12842
12843         * mips/mips.md (movdi, movsi): Likewise.
12844
12845         * mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12846
12847         * netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12848
12849         * openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12850
12851         * ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
12852         ASM_OUTPUT_ASCII): Likewise.
12853
12854         * rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog,
12855         output_mi_thunk, output_toc): Likewise.
12856
12857         * rs6000/rs6000.md (movsi): Likewise.
12858
12859         * rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise.
12860
12861         * tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise.
12862
12863         * v850/v850.c (print_operand, print_operand_address,
12864         v850_encode_data_area): Likewise.
12865
12866 2000-03-07  Clinton Popetz  <cpopetz@cygnus.com>
12867
12868         * config/mips/mips.md (zero_extendsidi2): Always force operand
12869         one to memory for mips16.
12870
12871 Mon Mar  6 15:22:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12872
12873         * tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts.
12874         (struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT.
12875         (attribute_hash_list, type_hash_canon): hashcode is now unsigned.
12876         (type_hash_lookup, type_hash_add, type_hash_list): Likewise.
12877         (min_precision): Result is unsigned.
12878         (add_double, neg_double, mul_double): Low word is unsigned.
12879         (lshift_double, rshift_double, lrotate_double): Likewise.
12880         (rrotate_double, div_and_round_double): Likewise.
12881         (tree_floor_log2, compare_tree_int): New functions.
12882         (preserve_rtl_expr_temps): New declaration.
12883         * c-common.c (declare_hidden_char_array): Use compare_tree_int.
12884         (decl_attributes): Use tree_log2 to find alignment.
12885         Check for TREE_INT_CST_HIGH for format args.
12886         (min_precision): Now unsigned.
12887         Use tree_floor_log2.
12888         (truthvalue_conversion): Delete long-disabled code.
12889         * c-decl.c (finish_struct): Clean up tests on field width.
12890         (finish_function): Use compare_tree_int.
12891         * c-pragma.c (handle_pragma_token): Use tree_log2 for alignment.
12892         * c-typeck.c (comptypes): Use tree_int_cst_equal.
12893         (default_conversion, digest_init): Use compare_tree_int.
12894         (build_binary_op): Use integer_all_onesp and compare_tree_int.
12895         Fix type errors in forming masks.
12896         * calls.c (initialize_argument_information): Use compare_tree_int.
12897         * dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
12898         * except.c (expand_eh_region_start_tree): Use compare_tree_int.
12899         * expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop.
12900         (store_field): Use compare_tree_int.
12901         (expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT.
12902         (expand_expr, case ARRAY_REF): Use compare_tree_int.
12903         (do_jump, case BIT_AND_EXPR): Use tree_floor_log2.
12904         (do_store_flag): Use compare_tree_int.
12905         * fold-const.c (encode, decode): Low part is always unsigned.
12906         (force_fit_type, add_double, neg_double, mul_double): Likewise.
12907         (lshift_double, rshift_double, lrotate_double): Likewise.
12908         (rrotate_double, div_and_round_double, int_const_binop): Likewise.
12909         (fold_convert): Use compare_tree_int.
12910         (operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal.
12911         (invert_truthvalue, case INTEGER_CST): Likewise.
12912         (fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW.
12913         * mkdeps.c (deps_dummy_targets): Make I unsigned.
12914         * rtl.h (add_double, neg_double, mul_double): Low words are unsigned.
12915         (lshift_double, rshift_double, lrotate_double, rrotate_double):
12916         Likewise.
12917         * stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree.
12918         (expand_end_case): Use compare_tree_int.
12919         (estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
12920         * stor-layout.c (mode_for_size_tree): Use compare_tree_int.
12921         (layout_decl): Likewise.
12922         (layout_record, layout_union): Make sizes unsigned.
12923         (layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype.
12924         (layout_type, case QUAL_UNION_TYPE): Use compare_tree_int.
12925         * tree.c (struct type_hash): hashcode is unsigned.
12926         (build_type_attribute_variant, type_hash_list): Likewise.
12927         (type_hash_lookup, type_hash_add, type_hash_canon): Likewise.
12928         (attribute_hash_list, build_array_type, build_method_type): Likewise.
12929         (build_complex_type): Likewise.
12930         (real_value_from_int_cst): Remove unneeded casts.
12931         (integer_all_onesp): Add casts.
12932         (tree_floor_log2, compare_tree_int): New functions.
12933         (build_index_type): Use tree_int_cst_sgn.
12934         * varasm.c (assemble_variable): Use compare_tree_int.
12935
12936 2000-03-06  Jason Merrill  <jason@casey.cygnus.com>
12937
12938         * cpphash.c (collect_expansion): Also catch ## at start of macro.
12939
12940         * varasm.c (make_decl_rtl): Don't add a number to members of
12941         local classes.
12942         (make_function_rtl): Likewise.
12943
12944 2000-03-06  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
12945
12946         * gcse.c (compute_can_copy): Adjust if/else blocks from rth's
12947         patch from 2000-01-28.
12948
12949 2000-03-06  Clinton Popetz  <cpopetz@cygnus.com>
12950
12951         * config/sh/sh.c: (barrier_align): Handle a delay slot that is
12952         filled with an insn from the jump target.
12953
12954 2000-03-07  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12955
12956         * config/c4x/c4x-protos.h (c4x_global_name): Constify char *.
12957         (c4x_external_ref): Likewise.
12958         * config/c4x/c4x.c (struct name_list): Likewise.
12959
12960 1999-12-16  Ben Collins  <bcollins@debian.org>
12961
12962         * Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth
12963         argument to genmultilib.
12964         * genmultilib: accept new MULTILIB_EXCLUSIONS option and output
12965         the contents into the multilib.h header.
12966         * gcc.c: Declare multilib_exclusions for the specs file.
12967         (set_multilib_dir): Use it.
12968         (print_multilib_info): Likewise.
12969         * t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option
12970         to pass to genmultilib.
12971
12972 2000-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12973
12974         * builtins.c (built_in_class_names, built_in_names): Constify a
12975         char*.
12976
12977         * gmon-sol2.c (monstartup, moncontrol): Cast ptrs to long, not
12978         int.
12979         (_mcleanup): Ensure value matches format specifier in sprintf.
12980
12981         * cpphash.c (special_symbol): Don't needlessly cast away
12982         const-ness.
12983
12984         * cppinit.c (base_name): Delete unused prototype.
12985
12986         * mkdeps.c (deps_init): Make definition K&R safe.
12987
12988         * tree.h (built_in_class_names, built_in_names): Constify a
12989         char*.
12990
12991 2000-03-06  Jakub Jelinek  <jakub@redhat.com>
12992
12993         * config/sparc/sparc.c (eligible_for_epilogue_delay): Accept
12994         floating point instructions for epilogue delay.
12995
12996         * config/sparc/sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs
12997         to gas if it supports .register pseudo.
12998
12999         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to
13000         LONG_DOUBLE_TYPE_SIZE if not defined.
13001         Use MAX_LONG_DOUBLE_TYPE_SIZE instead of
13002         LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses.
13003         * real.c: Likewise.
13004         * gengenrtl.c: Likewise.
13005         * print-rtl.c: Likewise.
13006         * rtl.c: Likewise.
13007         * config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set
13008         MASK_LONG_DOUBLE_128.
13009         * config/sparc/sol2.h (TARGET_DEFAULT): Likewise.
13010         * config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise.
13011         * config/sparc/linux64 (TARGET_DEFAULT): Likewise.
13012         (SUBTARGET_SWITCHES): Define.
13013         (CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling
13014         with -mlong-double-128.
13015         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
13016         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
13017         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
13018         (CC1_SPEC): Include -mlong-double-{64,128} as needed.
13019         * config/sparc/linux.h (SUBTARGET_SWITCHES): Define.
13020         (CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling
13021         with -mlong-double-128.
13022         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
13023         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
13024         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
13025         * config/sparc/sparc.h (MASK_LONG_DOUBLE_128,
13026         TARGET_LONG_DOUBLE_128): Define.
13027         * config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove.
13028         * config/sparc/sparc.c (sparc_override_options): Disallow 64bit
13029         long double on TARGET_ARCH64.
13030
13031 2000-03-06  Mark Mitchell  <mark@codesourcery.com>
13032
13033         * function.c (free_temps_for_rtl_expr): Don't free slots
13034         that have been pushed into a higher level.
13035
13036         Revert this patch:
13037         2000-03-05  Mark Mitchell  <mark@codesourcery.com>
13038
13039 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
13040
13041         * basic-block.h (ALLOCA_REG_SET): Remove.
13042         (INITIALIZE_REG_SET): New macro.
13043         * flow.c (update_life_info): Use it.
13044         (calculate_global_regs_live): Likewise.
13045         (propagate_block): Likewise.
13046         * global.c (build_insn_chain): Likewise.
13047         * haifa-sched.c (schedule_region): Likewise.
13048
13049 2000-03-05  Stephane Carrez  <stcarrez@worldnet.fr>
13050
13051         * dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer.
13052         (ASM_OUTPUT_DWARF_ADDR_CONST): Use UNALIGNED_WORD_ASM_OP.
13053         (DWARF_ARANGES_PAD_SIZE): New define.
13054         (output_aranges): Use it to pad the address range header.
13055         (DWARF_ROUND): Fix for non power of 2 rounding.
13056
13057 2000-03-05  Jason Merrill  <jason@casey.cygnus.com>
13058
13059         * mkdeps.c (deps_calc_target): Remove incorrect 'const'.
13060
13061 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
13062
13063         * tree.def (RTL_EXPR): Update documentation.
13064         * tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro.
13065         * expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE.
13066         * function.c (preserve_rtl_expr_temp): New function.
13067         (preserve_rtl_expr_temps): Likewise.
13068         (preserve_rtl_expr_result): Use it.
13069
13070         Revert this patch:
13071         2000-03-04  Mark Mitchell  <mark@codesourcery.com>
13072
13073 2000-03-04  Thomas Schuster <Thomas.Schuster@gmx.net>
13074
13075         * regmove.c (copy_src_to_dest)  Do not create src->dest move
13076         for unchanging destination.
13077
13078 2000-03-04  Mark Mitchell  <mark@codesourcery.com>
13079
13080         * function.h (struct sequence_stack): Remove rtl_expr.
13081         (struct emit_staus): Likewise.
13082         (seq_rtl_expr): Remove.
13083         * tree.h (free_temps_for_rtl_expr): Don't declare.
13084         (start_sequence_for_rtl_expr): Likewise.
13085         * rtl.h (preserve_rtl_expr_result): Likewise.
13086         * emit-rtl.c (start_sequence): Don't set sequence_rtl_expr.
13087         (start_sequence_for_rtl_expr): Remove.
13088         (push_topmost_sequence): Don't save sequence_rtl_expr.
13089         (pop_topmost_sequence): Remove comment about not restoring it.
13090         (end_sequence): Don't set seq_rtl_expr.
13091         (init_emit): Don't initialize it.
13092         (mark_sequence_stack): Don't mark it.
13093         (mark_emit_status): Likewise.
13094         * except.c (protect_with_terminate): Use
13095         start_sequence_for_rtl_expr, not start_sequence.
13096         * expr.c (expand_expr, case RTL_EXPR): Don't call
13097         preserve_rtl_expr_result or free_temps_for_rtl_expr.
13098         * function.c (assign_stack_temp_for_type): Don't set rtl_expr.
13099         (preserve_rtl_expr_result): Remove.
13100         (free_temps_for_rtl_expr): Likewise.
13101         (pop_temp_slots): Likewise.
13102         (mark_temp_slot): Don't mark the rtl_expr.
13103         * stmt.c (expand_start_stmt_expr): Use start_sequence, not
13104         start_sequence_for_rtl_expr.
13105
13106 2000-03-04  Zack Weinberg  <zack@wolery.cumb.org>
13107
13108         * mkdeps.c, mkdeps.h: New files.
13109         * po/POTFILES.in: Add them.
13110         * Makefile.in (LIBCPP_OBJS): Add mkdeps.o.
13111         (cpplib.o, cppinit.o): Depend on mkdeps.h.
13112         (mkdeps.o): New target.
13113
13114         * cppfiles.c: Delete deps_output.
13115         * cppinit.c: Include mkdeps.h.  Delete known_suffixes,
13116         OBJECT_SUFFIX, and base_name.
13117         (cpp_cleanup): Use deps_free.  Free ihash->name when clearing
13118         the include hash.
13119         (initialize_dependency_output): Use deps_init,
13120         deps_add_target, deps_calc_target, and deps_add_dep.  Remove
13121         all the unnecessary string bashing.
13122         (cpp_finish): Use deps_write.  Remove an unnecessary nesting
13123         level.
13124         * cpplib.c (do_include): Use deps_add_dep.
13125         * cpplib.h (struct cpp_reader): Replace deps_buffer,
13126         deps_allocated_size, deps_size, deps_column members with
13127         single pointer to a struct deps.  Delete prototype of
13128         deps_output.
13129
13130         * cppinit.c: Fix thinko in previous patch.
13131
13132 Sat Mar  4 11:32:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13133
13134         * machmode.h (mode_for_size, smallest_mode_for_size): SIZE now signed.
13135         * stor-layout.c (mode_for_size, smallest_mode_for_size): Likewise.
13136         (mode_for_size_tree): New function.
13137         (layout_decl, layout_type): Call it and clean up BLKmode checks.
13138         * tree.h (mode_for_size_tree): New declaration.
13139
13140         * toplev.c (debug_ignore_block): Mark arg BLOCK as possibly unused.
13141
13142 2000-03-04  Jason Merrill  <jason@casey.cygnus.com>
13143
13144         * stmt.c (is_body_block): Move...
13145         * dwarfout.c, dwarf2out.c: ...from here.
13146         * tree.h: Declare it.
13147         * emit-rtl.c (remove_unncessary_notes): Don't remove the body block.
13148         * final.c (final_start_function): Do call remove_unnecessary_notes
13149         when scheduling.
13150
13151 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
13152
13153         * config/vax/xm-vms.h: Define OBJECT_SUFFIX and EXECUTABLE_SUFFIX.
13154
13155         * cpplib.h (_dollar_ok): New macro.
13156         (is_idchar, is_idstart): Use it.
13157         (IStable): Rename to _cpp_IStable.  Declare it const if
13158         gcc >=2.7 or C99.  Delete all references to FAKE_CONST.
13159         (is_idchar, is_idstart, is_numchar, is_numstart, is_hspace,
13160         is_space): Update for renamed IStable.
13161
13162         * cppinit.c: Delete all references to FAKE_CONST and CAT
13163         macros. Define init_IStable as empty macro if gcc >=2.7 or
13164         C99. Change TABLE() to ISTABLE and hardcode name of table.
13165         (cpp_start_read): Don't change the IStable based on
13166         dollars_in_ident.
13167
13168         * cpphash.c (unsafe_chars): Add pfile argument.  All callers
13169         changed.  Handle '$' for char1 correctly.
13170         * cpplib.c (cpp_get_token): Use is_numchar when parsing numbers.
13171
13172         * cppexp.c (tokentab2): Make const.
13173         (cpp_lex): Make toktab const.
13174         * cppinit.c (include_defaults_array): Make const.
13175         (initialize_standard_includes): Make default_include const.
13176
13177 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
13178
13179         * dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning.
13180         (dwarf2out_decl): Functions can now have DECL_IGNORED_P.
13181         (gen_decl_die): Likewise.
13182         * dwarfout.c (dwarfout_file_scope_decl): Likewise.
13183         (output_decl): Likewise.
13184
13185         * varasm.c (make_function_rtl): If we change the name used in the
13186         rtl, update DECL_ASSEMBLER_NAME accordingly.
13187         (make_decl_rtl): Likewise.
13188
13189         * toplev.c (rest_of_compilation): Tweak formatting.
13190
13191         * toplev.c (rest_of_compilation): find_loop_tree_blocks before
13192         remove_unnecessary_notes.
13193         (debug_ignore_block): New fn.
13194         * toplev.h: Declare it.
13195         * emit-rtl.c (remove_unncessary_notes): Call it.
13196         * dwarf2out.c (dwarf2out_ignore_block): New fn.
13197         * dwarf2out.h: Declare it.
13198         * final.c (final_start_function): Don't call remove_unnecessary_notes
13199         if we did insn scheduling.
13200
13201 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
13202
13203         * cppinit.c (cpp_handle_option): Set opts->pedantic directly.
13204         * cpplib.h: Delete SET_CPP_PEDANTIC.
13205
13206 Fri Mar  3 14:56:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13207
13208         * expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if
13209         result is a RECORD_TYPE.
13210
13211 2000-03-03  Jonathan Larmour  <jlarmour@cygnus.co.uk>
13212
13213         * mips/elf.h (CTOR_LISTS_DEFINED_EXTERNALLY): Added.
13214
13215 2000-03-03  Richard Henderson  <rth@cygnus.com>
13216
13217         * alpha.c (alpha_emit_set_const_1): Re-order cases to prefer
13218         addition over compliments over shifts.
13219
13220 Fri Mar  3 12:49:28 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13221
13222         * reload1.c (reload_combine_note_use): Handle return register USEs.
13223         REG case: Handle multi-hard-register hard regs.
13224
13225 Fri Mar  3 07:38:34 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13226
13227         * md.texi: Document use of '*' in insn pattern name.
13228
13229 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
13230
13231         * calls.c (special_function_p): operator new may not be malloc-like.
13232
13233         * gcse.c (dump_hash_table): Really fix error in last change.
13234
13235 2000-03-02  Denis Chertykov  <denisc@overta.ru>
13236
13237         * avr.c (print_operand): Use print_operand_address instead of
13238         output_addr_const.
13239         * avr/libgcc.S: Cleanup code.
13240
13241 2000-03-02  Richard Henderson  <rth@cygnus.com>
13242
13243         * alpha.c (alpha_emit_set_const_1): Also try c + small constant.
13244
13245 2000-03-02  Mark Mitchell  <mark@codesourcery.com>
13246
13247         * tree.h (TYPE_ALIGN_UNIT): New macro.
13248
13249 2000-03-02  Clinton Popetz  <cpopetz@cygnus.com>
13250
13251         * i386.c: (constant_call_address_operand): Reject CONST_INT.
13252
13253 2000-03-02  Jason Merrill  <jason@casey.cygnus.com>
13254
13255         * cpplib.h (CPP_PEDANTIC): Only true if system_header_p is not set
13256         for the buffer.
13257         (SET_CPP_PEDANTIC): New macro.
13258         * cpplib.c (do_include): Don't bother checking system_header_p.
13259         (do_warning, do_ident, do_assert, do_unassert): Likewise.
13260         * cppinit.c (cpp_handle_option): Use SET_CPP_PEDANTIC.
13261
13262         * function.h (struct expr_status): Add x_arg_space_so_far.
13263         (arg_space_so_far): New macro.
13264         * expr.c (init_expr): Initialize it.
13265         * calls.c (emit_call_1): Reset it.
13266         (compute_argument_block_size, expand_call): Use it.
13267         (expand_call, store_one_arg): Increment it.
13268
13269 Thu Mar  2 17:27:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13270
13271         * varasm.c (output_constant): Strip off a CONVERT_EXPR to
13272         a UNION_TYPE.
13273
13274 2000-03-02  Zack Weinberg  <zack@wolery.cumb.org>
13275
13276         * cppfiles.c (cpp_read_file): New function.
13277
13278         * cpphash.c (collect_expansion): Make sure to reset last_token
13279         to NORM when we hit a string.  Handle trailing whitespace
13280         properly when the expansion is empty.
13281         (create_definition): Disable line commands while parsing the
13282         directive line.
13283         (dump_definition): If pfile->lineno == 0, output a line
13284         command ahead of the dump, and add a trailing newline.
13285
13286         * cppinit.c (append_include_chain): Add fifth argument, which
13287         indicates whether or not system headers are C++ aware.
13288         (initialize_standard_includes): New function,
13289         broken out of read_and_prescan.  Pass 'cxx_aware' value from
13290         the include_defaults_array on to append_include_chain.
13291         (dump_special_to_buffer): Const-ify char array.
13292         (builtin_array): Don't dump __BASE_FILE__.
13293         (cpp_start_read): Use cpp_read_file.  Reorder code for
13294         clarity.  Don't output line commands here for -D/-A/-U
13295         switches.  Don't call deps_output for files included with
13296         -include or -imacros.
13297
13298         * cpplib.c (do_define): Don't pay any attention to the second
13299         argument.
13300         (cpp_expand_to_buffer): Disable line commands while scanning.
13301         (output_line_command): Work in the file buffer.
13302         * cpplib.h: Remove no_record_file flag from struct cpp_reader.
13303         Fix formatting of comments.  Prototype cpp_read_file.
13304
13305 Thu Mar  2 13:29:46 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13306
13307         * c-common.c (c_common_nodes_and_builtins): Make sizetype_endlink
13308         reference the language-equivalent of sizetype.
13309         * c-typeck.c (comptypes): Treat sizetype like its language equivalent.
13310         * fold-const.c (size_binop, size_diffop): Put back checks.
13311         * gcse.c (dump_hash_table): Fix minor error in last change.
13312         * stor-layout.c (set_sizetype): Set TYPE_DOMAIN of sizetype.
13313         Clear TYPE_{NEXT,MAIN}_VARIANT and TYPE_{POINTER,REFERENCE}_to of
13314         all sizetypes.
13315
13316 Thu Mar  2 12:48:45 MET 2000  Jan Hubicka  <jh@suse.cz>
13317
13318         * calls.c (expand_call)  Do not attempt to combine stack adjustments
13319         with inhibit_defer_pop set.
13320
13321 2000-03-01  Mark Mitchell  <mark@codesourcery.com>
13322
13323         * stor-layout.c (layout_decl): Allow front-ends to explicitly set
13324         the DECL_SIZE for a FIELD_DECL.
13325
13326 2000-03-01  Bruce Korb  <bkorb@gnu.org>
13327
13328         * fixinc/inclhack.tpl: remove unused symlinks
13329         * fixinc/README: GCC Maintainer info
13330         * fixinc/inclhack.sh: regen
13331         * fixinc/fixincl.sh: regen
13332
13333 2000-03-01  Zack Weinberg  <zack@wolery.cumb.org>
13334
13335         * cpphash.c (collect_expansion): Trim trailing white space
13336         from macro definitions, but don't go past the last insertion
13337         point.
13338
13339 Wed Mar  1 12:14:31 MET 2000  Jan Hubicka  <jh@suse.cz>
13340
13341         * i386.md (mulqi3): New pattern.
13342
13343 2000-02-29  Zack Weinberg  <zack@wolery.cumb.org>
13344
13345         * cpplib.h (CPP_ASSERTION, CPP_STRINGIZE, CPP_TOKPASTE): New
13346         token types.
13347         (struct cpp_reader): Add parsing_if_directive and
13348         parsing_define_directive flags.
13349         (struct cpp_options): Remove output_conditionals flag.
13350         (check_macro_name): Delete prototype.
13351
13352         * cpphash.h (struct macrodef): Delete.
13353         (struct reflist): Separate from struct definition.
13354         (struct definition): Remove unused fields.  Add column number.
13355         (create_definition): Returns a DEFINITION *.  Takes a
13356         cpp_reader * and an int.
13357
13358         * cpphash.c (SKIP_WHITE_SPACE): Delete.
13359         (PEEKC): Copy defn from cpplib.c.
13360         (rest_extension, REST_EXTENSION_LENGTH): Delete.
13361         (struct arg): New.
13362         (struct arglist): Simplify.
13363         (collect_expansion): Rewrite.  Get tokens by calling
13364         cpp_get_token.  Add more error checking.
13365         (collect_formal_parameters): New function, broken out of
13366         create_definition and reworked to use get_directive_token.
13367         (create_definition): All real work is now in collect_expansion
13368         and collect_formal_parameters.  do_define handles finding the
13369         macro name.  Return a DEFINITION, not a MACRODEF.
13370         (macroexpand): Replace bcopy with memcpy throughout.  Replace
13371         character-at-a-time copy loop with memcpy and pointer increments.
13372         (compare-defs): d1->argnames / d2->argnames might be null.
13373
13374         * cpplib.c (copy_rest_of_line): Delete function.
13375         (skip_rest_of_line): Do all the work ourselves.
13376         (skip_string): New function.
13377         (parse_string): Use skip_string.
13378         (get_macro_name): New function.
13379         (check_macro_name): Delete.
13380         (copy_comment): Use CPP_RESERVE and CPP_PUTC_Q.
13381         (cpp_skip_hspace): Use CPP_BUMP_LINE.
13382         (handle_directive): ICE if we're called on a macro buffer.
13383         (do_define): Determine macro name and type (funlike/objlike)
13384         here.  Expunge all uses of MACRODEF.
13385         (cpp_push_buffer): Set line_base to NULL.
13386         (do_undef, read_line_number): Don't worry about getting a POP token.
13387         (eval_if_expression): Set/reset parsing_if_directive around
13388         cpp_parse_expr. Don't clear only_seen_white.
13389         (skip_if_group): Remove output_conditionals logic.  Use
13390         skip_rest_of_line.
13391         (cpp_get_token): Return ASSERTION, STRINGIZE, and TOKPASTE
13392         tokens under appropriate conditions.
13393         (cpp_unassert): Call do_unassert not do_assert.  Oops.
13394
13395         * cppexp.c (parse_defined): New function, break out of
13396         cpp_lex.
13397         (cpp_lex): We now get CPP_ASSERTION tokens and can check them
13398         ourselves, with cpp_defined.
13399         * cppinit.c (cpp_handle_option, print_help): Delete -ifoutput.
13400
13401         * gcc.dg/20000209-2.c: Turn off -pedantic-errors.
13402         * gcc.dg/strpaste-2.c: New.
13403
13404 2000-02-29  Mark Mitchell  <mark@codesourcery.com>
13405
13406         * fold-const.c (size_binop): Don't asert inputs are the same and
13407         have TYPE_IS_SIZETYPE set.
13408         (size_diffop): Likewise.
13409
13410 2000-02-29  Jason Merrill  <jason@casey.cygnus.com>
13411
13412         * dwarfout.c (output_block): Output abstract blocks even if they
13413         don't have TREE_ASM_WRITTEN set.
13414
13415         * calls.c (emit_library_call): Check for null REG.
13416
13417 2000-03-01  Martin von Loewis  <loewis@informatik.hu-berlin.de>
13418
13419         * c-decl.c (current_function_decl): Move to toplev.c.
13420         (init_decl_processing): Don't add current_function_decl as a ggc
13421         root here.
13422         * dbxout.c (dbxout_symbol): Change return type to int.
13423         (dbxout_symbol_location, dbxout_syms): Likewise.
13424         (dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without
13425         any locals. Use current_function_func_begin_label if set.
13426         * dbxout.h (dbxout_symbol, dbxout_syms): Change return type.
13427         * dwarf2out.c (dwarf2out_begin_prologue): Set
13428         current_function_func_begin_label.
13429         * final.c (final_start_function): Reset it.
13430         * toplev.c (current_function_decl): Define it here.
13431         (current_function_func_begin_label): New variable.
13432         (main): Add both as ggc roots.
13433         * tree.h (current_function_func_begin_label): Declare.
13434
13435 Tue Feb 29 14:07:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13436
13437         * gcse.c: Cleanups throughout: mostly white-space, but also
13438         some minor rearrangement of code.
13439
13440 Tue Feb 29 10:45:59 2000  Jeffrey A Law  (law@cygnus.com)
13441
13442         * calls.c (emit_library_call): Do not abort if FUNCTION_ARG
13443         returns a PARALLEL.  Use emit_group_load and use_group_regs
13444         as needed.
13445         (emit_library_call_value): Similarly.
13446
13447         * pa/t-pa: Use quadlib.c instead of quadlib.asm.
13448         * pa/quadlib.asm: Remove.
13449         * pa/quadlib.c: New file.
13450
13451         * configure.in (hpux10, hpux11, PA32 mode): Use i128 float format.
13452         * configure: Rebuilt.
13453
13454 2000-02-29  Philip Blundell  <pb@futuretv.com>
13455
13456         * config/arm/conix-elf.h: New file.
13457         * configure.in (arm*-*-conix*): New configuration.
13458         * configure: Regenerate.
13459
13460 2000-02-28  Jason Merrill  <jason@casey.cygnus.com>
13461
13462         * dwarf2out.c (gen_block_die): Output abstract blocks even if they
13463         don't have TREE_ASM_WRITTEN set.
13464
13465 Mon Feb 28 21:07:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13466
13467         * Eliminate DECL_FIELD_SIZE.
13468         * builtins.c (built_in_class_names, built_in_names): New variables.
13469         * c-decl.c (finish_struct): Set specified size in DECL_SIZE.
13470         * expr.c (expand_expr, case COMPONENT_REF): Get field size from
13471         DECL_SIZE, not DECL_FIELD_SIZE.
13472         * print-tree.c (print_node): Remove code that prints extra blank
13473         lines in some cases.
13474         Properly handle inline and builtin function cases.
13475         * stor-layout.c (layout_decl): Get specified size from DEC_SIZE.
13476         * tree.h (built_in_class_named, built_in_names): New declarations.
13477         (union tree_decl): Rename internal unions to u1 and u2 and change
13478         some of their components.
13479         Add new field built_in_class.
13480         (DECL_ALIGN, DECL_INCOMING_RTL, DECL_SAVED_INSNS, DECL_FRAME_SIZE):
13481         Reflect above changes.
13482         (DECL_FUNCTION_CODE, DECL_BUILT_IN_CLASS): Likewise.
13483         (DECL_SET_FUNCTION_CODE, DECL_FIELD_SIZE): Deleted.
13484         * objc/objc-act.c (objc_copy_list): Use DECL_SIZE, not DECL_FIELD_SIZE.
13485         (encode_field_decl): Likewise; also remove obsolete test for bitfield.
13486
13487 2000-02-28  Dmitri Makarov  <dim@windriver.com>
13488
13489         * extend.texi: Document ARM's support for long/short calls.
13490
13491         * invoke.texi: Document ARM's -mlong-calls command line switch.
13492
13493         * config/arm/arm-protos.h (arm_is_longcall_p): Add prototype.
13494         (arm_encode_call_attribute): Add prototype.
13495         (arm_set_default_type_attribute): Add prototype.
13496         (arm_strip_name_encoding): Add prototype.
13497
13498         * config/arm/arm.c (arm_init_cumulative_args): replace
13499         initialisation og 'long_calls' field with initialisation of
13500         'call_cookie' field.
13501         (enum arm_pragma_enum): New enum.
13502         (arm_pragma_long_calls): New static variable.
13503         (arm_process_pragma): Also process "#pragma long_calls_off".
13504         (arm_valid_type_attribute_p): Accept short_call attribute.
13505         (arm_comp_type_attributes): Check long/short call attributes.
13506         (arm_encode_call_attribute):  New function:  Encode long_call
13507         or short_call attribute in function name.
13508         (arm_set_default_type_attributes): New function: Assign
13509         default attributes to newly defined type.
13510         (current_file_function_operand): New function: Return true if
13511         the symbol is a function which has already been compiled.
13512         (arm_is_longcall_p): New function: Return true if the
13513         indicated function should be called via a long call.
13514         (arm_get_strip_length): New function.  Returns number of
13515         prefix characters to be stripped from a function's name.
13516         (arm_strip_name_encoding): New function.  Strip prefix characters
13517         from a function's name.
13518
13519         * config/arm/arm.h (CUMULATIVE_ARGS): Replace 'long_call' field
13520         with 'call_cookie'.
13521         (SHORT_CALL_FAG_CHAR): Define.
13522         (LONG_CALL_FAG_CHAR): Define.
13523         (ENCODED_SHORT_CALL_ATTR_P): Define.
13524         (ENCODED_LONG_CALL_ATTR_P): Define.
13525         (ARM_NAME_ENCODING_LENGTHS): Define.
13526         (STRIP_NAME_ENCODING): Define.
13527         (ASM_OUTPUT_LABELREF): Define, and use to strip name encoding.
13528         (ARM_ENCODE_CALL_TYPE): Define.
13529         (ENCODE_SECTION): Invoke ARM_ENCODE_CALL_TYPE.
13530         (ARM_DECLARE_FUNCTION_SIZE): Define.
13531         (SET_DEFAULT_TYPE_ATTRIBUTES): Define.
13532
13533         * config/arm/arm.md (call): Call arm_is_longcall_p to decide
13534         if a long call is needed.
13535         (call_value): Ditto.
13536         (call_symbol): Ditto.
13537
13538         * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Add invocation of
13539         ARM_DECLARE_FUNCTION_SIZE.
13540
13541         * config/arm/pe.h (ARM_PE_FLAG_CHAR): Define.
13542         (SUBTARGET_NAME_ENCODING_LENGTHS): Define.
13543         (ARM_STRIP_NAME_ENCODING): Undefine.
13544         (STRIP_NAME_ENCODING): Undefine.
13545         (ASM_OUTPUT_LABELREF): Use arm_strip_name_encoding.
13546         (ASM_DECLARE_FUNCTION_NAME): Ditto.
13547         (ASM_OUTPUT_COMMON): Ditto.
13548         (ASM_DECLARE_OBJECT_NAME): Ditto.
13549
13550         * config/arm/pe.c (arm_dllexport_name_p): Check for
13551         ARM_PE_FLAG_CHAR.
13552         (arm_dllimport_name_p): Ditto.
13553         (arm_mark_dllexport): Use ARM_PE_FLAG_CHAR.
13554         (arm_mark_dllimport): Ditto.
13555
13556 Mon Feb 28 22:11:12 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13557
13558         * sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Define.
13559
13560 2000-02-28  Mark Mitchell  <mark@codesourcery.com>
13561
13562         * xcoffout.c (xcoffout_begin_function): Fix typo in previous change.
13563
13564 2000-02-28  Zack Weinberg  <zack@wolery.cumb.org>
13565
13566         * tm.texi: Document new target switch, NO_BUILTIN_WCHAR_TYPE.
13567         * cppinit.c (builtin_array): Define __WCHAR_TYPE__ only if
13568         NO_BUILTIN_WCHAR_TYPE is not defined.
13569         (CPP_WCHAR_TYPE): Delete.
13570         * cccp.c (main): Don't change wchar_type if cplusplus.
13571         (special_symbol, initialize_builtins): Honor NO_BUILTIN_WCHAR_TYPE.
13572
13573 2000-02-28  Nick Clifton  <nickc@cygnus.com>
13574
13575         * config/arm/arm-wince-pe.h (SIZE_TYPE): Define to "unsigned long".
13576
13577 Mon Feb 28 14:21:15 2000  Catherine Moore  <clm@cygnus.com>
13578
13579         * config/pa/som.h (MAKE_DECL_ONE_ONLY): Define.
13580         (ASM_WEAKEN_LABEL): Define.
13581
13582 Mon Feb 28 13:07:19 MET 2000  Jan Hubicka  <jh@suse.cz>
13583
13584         * expr.c (store_constructor): Do not emit USE.
13585         * rtl.h (stupid_life_analysis): Remove.
13586
13587 Mon Feb 28 07:03:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13588
13589         * function.c (number_blocks): Reset next_block_index based on
13590         what debugging format is used, not what is defined.
13591
13592         * lcm.c: Minor reformatting throughout.
13593         (reg_dies, reg_becomes_live): Properly handle multiple hard regs.
13594
13595         * toplev.c (rest_of_compilation): Account for time in
13596         optimize_mode_switching.
13597
13598         * jump.c (jump_optimize_1): Don't call delete_barrier_successors
13599         if only marking labels.
13600
13601 Mon Feb 28 12:53:57 MET 2000  Jan Hubicka  <jh@suse.cz>
13602
13603         * calls.c (expand_call): Attempt to combine stack adjustments with
13604         pending stack adjustments.
13605
13606 Mon Feb 28 11:34:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13607
13608         * loop.c (reg_in_basic_block_p): Don't abort when falling through
13609         to the end of the function.
13610
13611 2000-02-27  Mark Mitchell  <mark@codesourcery.com>
13612
13613         * emit-rtl.c (remove_unncessary_notes): Remove notes for empty
13614         blocks.
13615         * final.c (next_block_index): Remove.
13616         (max_block_depth): Likewise.
13617         (pending_blocks): Likewise.
13618         (init_final): Don't initialize them.
13619         (final_start_function): Don't set next_block_index.  Set up
13620         BLOCK_NUMBER.
13621         (final_scan_insn): Use BLOCK_NUMBER, not next_block_index.
13622         * function.h (number_blocks): New function.
13623         * function.c (get_block_vector): New function.
13624         (identify_blocks): Use it.
13625         (reorder_blocks): Set NOTE_BLOCK.
13626         (number_blocks): New function.
13627         * tree.def (BLOCK): Add documentation for TREE_ASM_WRITTEN flag.
13628         * tree.h (BLOCK_NUMBER): New macro.
13629         (tree_block): Add block_num field.
13630         * dbxout.c (next_block_number): Remove.
13631         (dbxout_init): Don't set it.
13632         (dbxout_block): Only output blocks that have TREE_ASM_WRITTEN
13633         set.  Use BLOCK_NUMBER, rather than next_block_num, to determine
13634         block numbers.
13635         * toplev.c (rest_of_compilation): Always call
13636         find_loop_tree_blocks.  Fix indentation.
13637         * dwarf2out.c (next_block_number): Remove.
13638         (gen_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
13639         to determine block numbers.
13640         (gen_inlined_subroutine_die): Likewise.
13641         (gen_block_die): Only output blocks that have TREE_ASM_WRITTEN set.
13642         (decls_for_scope): Don't increment next_block_number.
13643         * dwarfout.c (next_block_number): Remove.
13644         (output_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
13645         to determine block numbers.
13646         (output_inlined_subroutine_die): Likewise.
13647         (output_block): Only output blocks that have TREE_ASM_WRITTEN set.
13648         (output_decls_for_scope): Don't increment next_block_number.
13649         * sdbout.c (next_block_number): Remove.
13650         (sdbout_block): Use BLOCK_NUMBER.
13651         (sdbout_begin_block): Simplify.
13652         * xcoffout.c (next_block_number): Remove.
13653         (xcoffout_block): Use BLOCK_NUMBER, not next_block_number.
13654         (xcoffout_begin_block): Don't set next_block_number.
13655         (xcoffout_begin_function): Likewise. Use BLOCK_NUMBER, not
13656         next_block_number.
13657
13658 Sun Feb 27 16:40:33 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13659
13660         * builtins.c (c_strlen): Use size_diffop and return ssizetype value.
13661         (expand_builtin_strcpy): Pass correct type to size_binop.
13662         (expand_builtin_strcmp): Likewise.
13663         Clean up conditional structure.
13664         * c-decl.c (init_decl_processing): Don't call set_sizetype twice.
13665         (complete_array_type): Don't use size_binop for MAXINDEX.
13666         * c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT.
13667         (c_sizeof_nowarn, c_size_in_bytes): Likewise.
13668         (c_alignof): Use size_one_node.
13669         (build_unary_op): Pass arg of proper type to size_binop.
13670         (really_start_incremental_init, push_init_level): Use sizetype for
13671         constructor{,_bit,_unfilled}_index.
13672         (pop_init_label, output_init_element): Likewise.
13673         (output_pending_init_elements, process_init_element): Likewise.
13674         * calls.c (compute_argument_block_size): Field VAR is ssizetype.
13675         * expr.c (store_expr): Use size_int.
13676         (store_constructor): Use proper types for size_binop args.
13677         (get_inner_reference, expand_expr, case ARRAY_REF): Likewise.
13678         (expand_expr_unaligned): Likewise.
13679         (string_contant): Return object of sizetype.
13680         * expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types.
13681         (ARGS_SIZE_RTX): Call ARGS_SIZE_TREE.
13682         (ARGS_SIZE_TREE): Pass proper types to size_binop.
13683         * fold-const.c (int_const_binop): Refine when size_int is called.
13684         (fold_convert): Likewise.
13685         (size_int_wide): Rework to take KIND as arg, only take low order
13686         bits, handle new sizetype_tab datatype, and chain entries in
13687         size_table.
13688         (size_int_type_wide): New function.
13689         (size_binop): Validate types of arguments.
13690         (ssize_binop): Deleted.
13691         (size_diffop): New function.
13692         (extract_muldiv): Only fold division into multiplication for sizetypes.
13693         * function.c (assign_parms): Use size_diffop and make sure
13694         VAR field is of ssizetype; also pass proper type to size_binop.
13695         (locate_and_pad_parm, pad_to_arg_alignment): Likewise.
13696         (round_down): Deleted from here.
13697         * store-layout.c (sizetype_tab): Now an array.
13698         (sizetype_set, early_root_list): New variables.
13699         (variable_size): Use size_one_node.
13700         (round_up): Pass proper type to size_binop.
13701         (round_down): Moved to here and corrected as above.
13702         (layout_record): Pass proper arg types to size_binop.
13703         (layout_type): Likewise.
13704         If sizetype_set is zero, record the type just laid out.
13705         (make_unsigned_type): Don't call set_sizetype;
13706         (make_signed_type): Likewise; also, call fixup_signed_type.
13707         (initialize_sizetypes): New function.
13708         (set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and
13709         set name of bitsizetype to "bit_size_type".
13710         Fix up type of sizes of all types made before call.
13711         * tm.texi (ROUND_TYPE_SIZE_UNIT): New macro.
13712         * tree.c (fix_sizetype): Deleted.
13713         (build_common_tree_nodes): Call initialize_sizetypes.
13714         (build_common_tree_nodes_2): Don't call fix_sizetype.
13715         * tree.h (TYPE_IS_SIZETYPE): New macro.
13716         (initialize_sizetype): New declaration.
13717         (enum size_type_kind): New type.
13718         (struct sizetype_tab): Deleted.
13719         (sizetype_tab): Now array; adjust sizetype macros.
13720         (size_diffop, size_int_type_wide): New functions.
13721         (size_int_wide): Change number of args and type; access macros changed.
13722         (ssize_int, sbitsize_int): New macros.
13723         * config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int.
13724         (ROUND_TYPE_SIZE_UNIT): New macro.
13725
13726 2000-02-27  Zack Weinberg  <zack@wolery.cumb.org>
13727
13728         * c-lex.c (putback_buffer): Make 'buffer' an unsigned char *.
13729
13730 Sun Feb 27 07:44:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13731
13732         * gcov-io.h (__fetch_long, __store_long, __read_long, __write_long):
13733         Mark as possibly unused.
13734
13735         * cse.c (cse_insn): Delete dead code involving tablejump.
13736         Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE.
13737
13738         * Makefile.in (libcpp.a): Start by deleting it.
13739
13740 2000-02-27  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13741
13742         * cpplib.h (enum file_change_code): Added rename_file.
13743         * cpplib.c (do_line): If a filename is given, set file_change to
13744         rename_file.
13745         (output_line_command): If file_change is rename_file, always
13746         output a # directive with the file name.
13747
13748         * cpplib.c (do_pragma): Accept #pragma without consecutive token.
13749
13750 2000-02-26  Mark Mitchell  <mark@codesourcery.com>
13751
13752         * integrate.c (copy_decl_for_inlining): Preserve TREE_ADDRESSABLE
13753         when copying a PARM_DECL or RESULT_DECL.
13754
13755 2000-02-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13756
13757         * fix-header.c (recognized_function): Also fix prototypes for
13758         functions taking "void".
13759
13760 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
13761
13762         * reload1.c (do_output_reload): Check reg_reloaded_valid before
13763         looking at reg_reloaded_contents.
13764
13765 2000-02-26  Zack Weinberg  <zack@wolery.cumb.org>
13766
13767         * Makefile.in (STMP_FIXINC): New toggle.
13768         (LIBGCC2_DEPS): Delete all references.
13769         (stmp-headers): Delete target.  All references either deleted
13770         or changed to stmp-int-headers.
13771         (all.cross): Don't depend on stmp-headers or STMP_FIXPROTO.
13772         (LIBCPP_OBJS): Take out cppalloc.o.
13773         (cppalloc.o): Delete target.
13774         (stmp-int-hdrs): Depend on $(STMP_FIXINC).
13775         (gen-protos, fix-header): Link with libiberty.a.
13776         * build-make: Don't change FIXINCLUDES.  Override STMP_FIXINC
13777         to empty.
13778
13779         * configure.in: Remove refs to strerror.
13780         * acconfig.h: Take out NEED_DECLARATION_STRERROR.
13781         * system.h: Take out strerror stanza.
13782
13783         * cpperror.c (my_strerror): Delete function.
13784         (cpp_error_from_errno, cpp_notice_from_errno): Use xstrerror.
13785         * cppmain.c (main): Call xmalloc_set_program_name first thing.
13786         * cppalloc.c: Delete file.
13787         * gen-protos.c: Don't provide xrealloc.
13788
13789         * fixinc/fixincl.c, fixinc/fixlib.c, fixinc/procopen.c: Use
13790         xstrerror throughout.
13791
13792 2000-02-26  Bruce Korb  <bkorb@gnu.org>
13793
13794         * fixinc/inclhack.def (undefine_null): the bypass pattern needs to
13795         match for DOS headers, too.
13796         * fixinc/inclhack.sh,fixincl.x: Regenerate.
13797
13798 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
13799
13800         * config/elfos.h (ASM_OUTPUT_LABELREF): Don't define.  The default
13801         is right for most ELF targets.
13802         * config/ns32k/ns32k.h (ASM_OUTPUT_LABELREF): Don't define.
13803         Let the default file use %U properly.
13804         * config/sh/elf.h (ASM_OUTPUT_LABELREF): Don't define.  Use the
13805         default.
13806
13807         * config/fp-bit.c (pack_d): Properly handle rounding of denormal
13808         numbers.
13809
13810 Sat Feb 26 09:39:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13811
13812         * toplev.c (documented_lang_options): Correct spelling error.
13813         (decode_d_option, decode_f_option, main): Likewise.
13814
13815         * toplev.c (print_time): Avoid SIGFPE when all_time is zero.
13816
13817         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Use .set at
13818         to tell assembler it is permitted to expand large constants.
13819
13820 2000-02-25  Mumit Khan  <khan@xraylith.wisc.edu>
13821
13822         * protoize.c: (AUX_INFO_SUFFIX): New macro.
13823         (aux_info_suffix): Use.
13824         (SAVE_SUFFIX): New macro.
13825         (save_suffix): Use.
13826         (munge_compile_parms): Fix typo in NUL. DJGPP supports /dev/null.
13827         (gen_aux_info_file): Use aux_info_suffix instead of ".X".
13828         (edit_file): Handle 8.3 restriction for DOS/DJGPP filenames.
13829
13830         * invoke.texi (Running Protoize): Update documentation.
13831
13832 2000-02-25 Mark Elbrecht <snowball3@bigfoot.com>
13833
13834         * i386/djgpp.h (CPP_PREDEFINES): Remove Unix defines.
13835
13836 2000-02-25  John Wehle  (john@feith.com)
13837
13838         * rtlanal.c (find_last_value): Allow NULL_RTX for valid_to.
13839
13840 2000-02-25  Anthony Green  <green@cygnus.com>
13841
13842         * toplev.c (rest_of_compilation): Rebuild jump labels if
13843         combine_instructions has created a new direct jump.
13844         * combine.c (try_combine): Add new_direct_jump_p argument.  Set it
13845         when appropriate.
13846         (combine_instructions): Call try_combine with new argument.
13847         Return non-null value when new direct jump instruction is created.
13848         * rtl.h: combine_instructions returns an int.
13849
13850 Fri Feb 25 19:49:08 2000  Jeffrey A Law  (law@cygnus.com)
13851
13852         * cse.c (cse_insn): Replace the PATTERN of the insn with an new
13853         jump when changing a computed jump into a jump to a known
13854         target.
13855
13856 Fri Feb 25 19:22:44 2000  Graham Stott <grahams@rcp.co.uk>
13857
13858         * resource.c (mark_referenced_resources): Changed use SET_DEST (...)
13859         to XEXP (..., 0) on RTL nodes which are not SET or CLOBBER.
13860
13861         * i386.md (define_expand "clrstrsi"): Fix typo.
13862
13863 Fri Feb 25 18:49:39 2000  "K. Richard Pixley" <rich@microunity.com>
13864
13865         * rtl.texi: Fix typo.
13866
13867 Fri Feb 25 20:02:35 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13868
13869         * sh.c (calc_live_regs): Multiply value assigned to *COUNT_PTR by
13870         UNITS_PER_WORD.  Change caller initial_elimination_offset.
13871         (rounded_frame_size): Take into account that argument pushed has
13872         changed.  Fix TARGET_ALIGN_DOUBLE problem.
13873
13874 2000-02-25  Geoff Keating  <geoffk@cygnus.com>
13875
13876         * haifa-sched.c (schedule_block): Explain the real reason
13877         we delete REG_SAVE_NOTEs on the first insn of a block.
13878         Don't delete REG_SAVE_NOTES for NOTE_INSN_SETJMP.
13879
13880 2000-02-24  Mark Mitchell  <mark@codesourcery.com>
13881
13882         * input.h (push_srcloc): New function.
13883         (pop_srcloc): Likewise.
13884         * toplev.c (push_srcloc): Define it.
13885         (pop_srcloc): Likewise.
13886
13887 2000-02-24  Richard Henderson  <rth@cygnus.com>
13888
13889         * flow.c (life_analysis): When collecting reg info, clear
13890         regs_ever_live.
13891
13892 Thu Feb 24 22:06:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13893
13894         Fix bug exposed by reload.c no longer rounding the frame
13895         size to BIGGEST_ALIGNMENT:
13896         * sh.c (rounded_frame_size): New function.
13897         (sh_expand_prologue, sh_expand_epilogue): Use it.
13898         (initial_elimination_offset): Likewise.
13899
13900 Thu Feb 24 20:04:11 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13901
13902         Fix breakage from 6th Feb thread_prologue_and_epilogue_insns change:
13903         * sh-protos.h (sh_need_epilogue): Declare.
13904         * sh.c (sh_need_epilogue_known): New static variable.
13905         (sh_need_epilogue): New function.
13906         (function_epilogue): Clear need_epilogue_known.
13907         * sh.md (return): Split into expander / insn pattern.
13908         Make the expander conditional on ! sh_need_epilogue ().
13909
13910 2000-02-24  Nathan Sidwell  <nathan@codesourcery.com>
13911
13912         * machmode.h (get_mode_alignment): Declare.
13913         (GET_MODE_ALIGNMENT): Call it.
13914         * stor-layout.c (get_mode_alignment): New function. Make
13915         sure alignment is always power of 2.
13916
13917 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
13918
13919         * i386.h: Remove useless definition of "I386" and misleading
13920         comment above it.
13921
13922 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
13923
13924         * tree.h (TREE_SET_PERMANENT): New macro.  Document conditions
13925         under which TREE_PERMANENT will be set.
13926         * tree.c (make_node, copy_node, make_tree_vec, tree_cons,
13927         build1): Use TREE_SET_PERMANENT.
13928         * print-tree.c (print_node): Don't report value of
13929         TREE_PERMANENT if ggc_p is true.
13930
13931         * c-common.c (c_get_alias_set): Don't use TREE_PERMANENT to
13932         decide whether to give a type a new alias set.
13933         * objc/objc-act.c (build_objc_string_object): Never copy the string.
13934         * tree.c (make_node): Set DECL_IN_SYSTEM_HEADER irrespective
13935         of value of 'obstack'.
13936
13937
13938 2000-02-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13939
13940         * config/c4x/c4x.c (c4x_process_after_reload): Split all insns.
13941
13942 2000-02-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13943
13944         * cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING.
13945         * cpplib.c (cpp_get_token): Produce them.
13946         * cppexp.c (cpp_lex): Handle them.
13947
13948 2000-02-23  Nick Clifton  <nickc@cygnus.com>
13949
13950         * config/arm/arm.c (arm_comp_type_attributes): Simply and
13951         comment tests on type attributes.
13952
13953 Wed Feb 23 16:42:21 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13954
13955         * final.c (shorten_branches): Make value passed to LOOP_ALIGN
13956         conform to documentation.
13957         * sh.h (LOOP_ALIGN): If aligning loops, call sh_loop_align
13958         to check for special cases.
13959         * sh-protos.h (sh_loop_align): Declare.
13960         * sh.c (sh_loop_align): Define.
13961
13962 2000-02-22  Andrew Haley  <aph@cygnus.com>
13963
13964         * config/mips/mips.h (GAS_ASM_SPEC): Pass -mgp32/-mgp64 to gas.
13965         (SIZE_TYPE): Is 32 bits when using -mgp32.
13966         (PTRDIFF_TYPE): Ditto.
13967
13968 Wed Feb 23 07:26:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13969
13970         * diagnostic.c (init_output_buffer): Handle case of null PREFIX.
13971
13972 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
13973
13974         * config/i386/i386.h: If IN_TARGET_LIBS is defined, make
13975         BIGGEST_FIELD_ALIGNMENT a constant.
13976
13977 2000-02-21  Jason Merrill  <jason@casey.cygnus.com>
13978
13979         * dwarf2out.c (output_line_info): Put the marker for the end of
13980         the line number info at the actual end.
13981         (gen_struct_or_union_type_die): Use decl_function_context
13982         to check for local classes.
13983         * dwarfout.c (output_type): Likewise.
13984
13985 Tue Feb 22 01:38:57 2000  Jeffrey A Law  (law@cygnus.com)
13986
13987         * pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference
13988         for arguments with a mode, but no type.
13989         (FUNCTION_ARG_CALLEE_COPIES): Similarly.
13990         * t-pa (LIB2FUNCS_EXTRA): Add quadlib.asm.
13991         * pa/long_double.h: New file.
13992         * configure.in (hpux10, hpux11 configurations): hpux10 and hpux11
13993         both have 128bit wide long doubles.
13994         * configure: Rebuilt.
13995
13996 2000-02-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13997
13998         * defaults.h (ASM_OUTPUT_ASCII): Constify a char*.
13999
14000         * flow.c (get_common_dest, chain_reorder_blocks, make_reorder_chain,
14001         fixup_reorder_chain, skip_insns_between_block): Add static prototypes.
14002         (life_analysis): Wrap variable `i' with macro ELIMINABLE_REGS.
14003
14004         * haifa-sched.c (rank_for_schedule): Don't cast away const-ness.
14005
14006         * integrate.c (compare_blocks, find_block): Likewise.
14007
14008         * rtl.c (fatal_with_file_and_line): Add ATTRIBUTE_PRINTF_2.
14009
14010         * rtl.h (set_file_and_line_for_stmt): Constify a char*.
14011
14012         * stmt.c (stmt_status, set_file_and_line_for_stmt,
14013         expand_asm_operands): Likewise.
14014
14015 Mon Feb 21 17:06:27 2000  Jason Eckhardt  <jle@cygnus.com>
14016
14017         * predict.c (estimate_probability): Added the pointer heuristic to
14018         the collection of static branch predictors.
14019
14020 2000-02-21  Catherine Moore  <clm@cygnus.com>
14021
14022         * config/mips/mips.h (ASM_SPEC): Add -mfix700.
14023         * invoke.texi (-mfix7000): Document.
14024
14025 2000-02-21  Gabriel Dos Reis  <gdr@codesourcery.com>
14026
14027         * diagnostic.c (init_output_buffer): Make it possible to output at
14028         least 32 characters if we're given a too long prefix.
14029
14030 2000-02-20  Mark Mitchell  <mark@codesourcery.com>
14031
14032         * varasm.c (initializer_constant_valid_p): Call
14033         lang_expand_constant to simplify the constant.
14034
14035 2000-02-20  Bruce Korb  <bkorb@gnu.org>
14036
14037         * fixinc/inclhack.def(stdio_va_list):
14038         typedef needs to be disabled.
14039         * fixinc/inclhack.sh: regen
14040         * fixinc/fixincl.x: regen
14041
14042 2000-02-20  Geoff Keating  <geoffk@cygnus.com>
14043
14044         * print-rtl.c (print_rtx): Don't print addresses when
14045         flag_dump_unnumbered.
14046
14047 2000-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14048
14049         * sparc.c (sparc_output_scratch_registers): Mark parameter with
14050         ATTRIBUTE_UNUSED.
14051         (sparc_va_arg, sparc_flat_output_function_prologue,
14052         sparc_flat_output_function_epilogue): Cast value to unsigned in
14053         comparison.
14054         (sparc_emit_float_lib_cmp): Remove unused variable `cmp'.
14055
14056         * sparc.md: Add default case in switch.
14057
14058 2000-02-19  Richard Henderson  <rth@cygnus.com>
14059
14060         * c-typeck.c (add_pending_init): Don't abort for multiple
14061         fields at the same offset.
14062         (pending_init_member): Test the correct member.
14063
14064 2000-02-19  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
14065
14066         * except.c (start_dynamic_handler) : Use TYPE_MODE (integer_type_node)
14067         instead of SImode.
14068         (start_catch_handler) : Same.
14069
14070 2000-02-19  Brad Lucier  (lucier@math.purdue.edu)
14071
14072         * Makefile.in: Have flow.o depend on $(EXPR_H)
14073
14074 Sat Feb 19 18:43:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14075
14076         * c-common.c (decl_attributes): Set DECL_SIZE_UNIT.
14077         * c-decl.c (duplicate_decls, finish_enum): Likewise.
14078         (finish_decl): Remove -Wlarger-than code from here.
14079         * flags.h (id_clash_len): Now int.
14080         (larger_than_size): Now HOST_WIDE_INT.
14081         * fold-const.c (size_int_wide): No more HIGH parm; NUMBER is signed.
14082         Clean up checking to see if in table.
14083         (make_bit_field_ref): Remove extra parm to bitsize_int.
14084         * ggc-common.c (ggc_mark_tree_children): Mark DECL_SIZE_UNIT.
14085         * print-tree.c (print_node): Print DECL_SIZE_UNIT and TYPE_SIZE_UNIT.
14086         * stmt.c (expand_decl): Use DECL_SIZE_UNIT for stack checking size
14087         and for computing size of decl.
14088         * stor-layout.c (layout_decl): Set DECL_SIZE_UNIT.
14089         Move -Wlarger-than code to here.
14090         (layout_record): Remove extra arg to bitsize_int.
14091         Set TYPE_BINFO_SIZE_UNIT.
14092         (layout_union): Remove extra arg to bitsize_int.
14093         Use proper type for size of QUAL_UNION.
14094         (layout_type): Remove extra arg to bitsize_int.
14095         * toplev.c (id_clash_len): Now int.
14096         (larger_than_size): Now HOST_WIDE_INT.
14097         (decode_W_option): Clean up id-clash and larger-than- cases.
14098         * tree.c (get_identifier, maybe_get_identifier): Remove unneeded casts.
14099         (expr_align, case FUNCTION_DECL): DECL_ALIGN is not defined.
14100         * tree.h (BINFO_SIZE_UNIT, TYPE_BINFO_SIZE_UNIT, DECL_SIZE_UNIT): New.
14101         (struct tree_decl): New field size_unit.
14102         (size_int_wide): No HIGH operand; NUMBER is now signed.
14103         (size_int_2): Deleted.
14104         (size_int, bitsize_int): Don't use it and rework args.
14105         * varasm.c (assemble_variable, output_constructor): Use DECL_SIZE_UNIT.
14106
14107 Fri Feb 18 20:01:58 2000  Jeffrey A Law  (law@cygnus.com)
14108
14109         * pa/quadlib.asm (_U_QFgt, _U_Qfge): Fix flags for _U_Qfcmp call.
14110
14111 2000-02-18  Geoff Keating  <geoffk@cygnus.com>
14112
14113         * invoke.texi (Warning Options): Add an explanation of why
14114         you might want the -Wfloat-equal flag.
14115
14116 Fri Feb 18 20:08:57 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14117
14118         * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned.
14119         * cppinit.c (new_pending_define): Add cast to avoid warning.
14120         * expmed.c (extract_bit_field): Likewise.
14121         * flow.c (enum reorder_skip_type): New type.
14122         (skip_insns_between_blcok): New it.
14123         Rework to avoid warning about possibly undefined variable.
14124         * function.c (assign_parms): Make thisparm_boundary unsigned.
14125         * genrecog.c (write_switch): Cast XWINT result to int.
14126         * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING.
14127         * mips-tfile.c (init_file): Make two versions of FDR intializer:
14128         one for MIPS and one for Alpha.
14129         (get_tag, copy_object): Add casts to avoid warnings.
14130         * optabs.c (init_one_libfunc): Cast NAME to (char *).
14131         * reload.c (find_reloads): Make TYPE enum reload_type.
14132         * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L".
14133         * unroll.c (unroll_loop): Initialize UNROLL_NUMBER.
14134         * varasm.c (compare_constant_1): Add cast to avoid warning.
14135         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC
14136         to (char *).
14137         (alpha_expand_unaligned_load, alpha_expand_unaligned_store):
14138         Cast switch operand of size to int.
14139         (alpha_expand_epilogue): Always initialize fp_offset and sa_reg.
14140         * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort
14141         in unhandled case.
14142
14143 2000-02-18  Nick Clifton  <nickc@cygnus.com>
14144
14145         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate
14146         anything for an alignment of zero.
14147
14148         * config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not generate
14149         anything for an alignment of zero.
14150
14151 2000-02-18  Martin von Loewis  <loewis@informatik.hu-berlin.de>
14152
14153         * gcc.texi (Bug Reporting): Refer to bugs.html.
14154         (Bug Lists): Likewise.
14155         * system.h (GCCBUGURL): New preprocessor define.
14156         * rtl.c (fancy_abort): Use it.
14157         * gcc.c (main): Likewise.
14158
14159 2000-02-18  Richard Henderson  <rth@cygnus.com>
14160
14161         * flow.c (INSN_VOLATILE, SET_INSN_VOLATILE, uid_volatile): Remove.
14162         (life_analysis_1): Subsume into ...
14163         (life_analysis): ... here.  Force PROP_REG_INFO off after reload.
14164         Use update_life_info for the relaxation.
14165         (update_life_info): Update REG_BASIC_BLOCK for registers live on
14166         entry and regs_live_at_setjmp.
14167         (set_noop_p): Simplify.
14168         (notice_stack_pointer_modification_1): Renamed from s/_1//.
14169         (record_volatile_insns): Split into ...
14170         (delete_noop_moves): ... here,
14171         (notice_stack_pointer_modification): ... here,
14172         (insn_dead_p): ... and here.
14173         (propagate_block): Don't query INSN_VOLATILE.
14174         (mark_used_regs): Mind !PROP_REG_INFO.
14175         * toplev.c (rest_of_compilation): Call mark_constant_function here,
14176         not in life_analysis.
14177
14178 Fri Feb 18 01:29:22 EST 2000  John Wehle  (john@feith.com)
14179
14180         * loop.c (canonicalize_condition): New function,
14181         broken out of get_condition.
14182         (get_condition): Use it.
14183         * expr.h (canonicalize_condition): Prototype it.
14184
14185         * tree.h (tree_int_cst_msb): Declare.
14186         * tree.c (tree_int_cst_msb): New function.
14187
14188 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
14189
14190         * stmt.c (set_file_and_line_for_stmt): Don't crash if cfun->stmt
14191         isn't set.
14192
14193         * invoke.texi (-fmessage-length=n): Document.
14194
14195 2000-02-17  Jason Merrill  <jason@casey.cygnus.com>
14196
14197         * bitmap.c (bitmap_operation): Don't leak bitmap elements.
14198
14199 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
14200
14201         * function.c (thread_prologue_and_epilogue_insns): Put a line note
14202         after the prologue.
14203
14204 2000-02-17  Nick Clifton  <nickc@cygnus.com>
14205
14206         * config/arm/thumb.c: Replace includes of system headers with
14207         #include "system.h".
14208
14209 2000-02-16  Richard Henderson  <rth@cygnus.com>
14210
14211         * configure.in (alpha-linux*, alpha-netbsd) [extra_parts]:
14212         Add crtbeginS.o and crtendS.o.
14213         * alpha/elf.h (STARTFILE_SPEC): Use crtbeginS.o.
14214         (ENDFILE_SPEC): Use crtendS.o.
14215         * alpha/t-crtbe (crtbeginS.o, crtendS.o): New targets.
14216
14217         * alpha/crtbegin.asm (__do_frame_takedown): Merge into ...
14218         (__do_global_dtors_aux): ... here.  Call __cxa_finalize if
14219         shared and present.
14220         (__dso_handle): New variable.
14221         * alpha/crtend.asm (__do_global_ctors_aux): Remove runtime
14222         bias to __CTOR_END__.
14223
14224 2000-02-16  Richard Henderson  <rth@cygnus.com>
14225
14226         * Makefile.in (s-crtS, crtbeginS, crtendS): Prefix usage with $(T).
14227
14228 Wed Feb 16 21:40:04 2000  Hans-Peter Nilsson  <hp@bitrange.com>
14229
14230         * longlong.h (__clz_tab): Declare as static to match definition.
14231
14232 2000-02-16 Mark Elbrecht <snowball3@bigfoot.com>
14233
14234         * i386/xm-djgpp.h (LIBSTDCXX): Delete. Moved to config/i386/djgpp.h.
14235         (XREF_FILE_NAME): Define.
14236
14237         * i386/djgpp.h (DATA_SECTION_ASM_OP): Define.
14238         (EH_FRAME_SECTION_ASM_OP): Define.
14239         (IDENT_ASM_OP): Define.
14240         (TEXT_SECTION_ASM_OP): Define.
14241         (CPP_SPEC): Define.
14242         (CTORS_SECTION_ASM_OP): Define.
14243         (CTOR_SECTION_FUNCTION): Use it.
14244         (DTORS_SECTION_ASM_OP): Define.
14245         (DTOR_SECTION_FUNCTION): Use it.
14246
14247 2000-02-16  Zack Weinberg  <zack@wolery.cumb.org>
14248
14249         * reg-stack.c (emit_swap_insn): Do not put a new insn before a
14250         NOTE_BASIC_BLOCK.
14251
14252         * flow.c (dump_regset, debug_regset, dump_bb, debug_bb,
14253         debug_bb_n): New functions.
14254         (dump_flow_info, print_rtl_with_bb): Use dump_regset.
14255         * basic-block.h: Prototype new functions.
14256
14257 Wed Feb 16 21:07:53 2000  Denis Chertykov  <denisc@overta.ru>
14258
14259         * configure.in: Add support for avr target.
14260         * configure: Rebuilt.
14261
14262         * invoke.texi: Add AVR invocation docs.
14263         * install.texi: Add information about AVR.
14264         * md.texi: Add AVR constraint letters description.
14265         * extend.texi: Add description for AVR specific attributes.
14266
14267 2000-02-16  Jason Merrill  <jason@casey.cygnus.com>
14268
14269         * fixinc/fixinc.svr4: Wrap byteorder.h with extern "C".
14270
14271 2000-02-16  Nick Clifton  <nickc@cygnus.com>
14272
14273         * emit-rtl.c (emit_insn): Move RTL check into make_insn_raw.
14274         (make_insn_raw): Move RTL check here.
14275
14276 2000-02-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14277
14278         * version.c: Include gansidecl.h and version.h.
14279
14280         * version.h: Wrap entire file in macro __GCC_VERSION_H__.
14281
14282         * configure.in (gcc_version): When setting, narrow search to
14283         lines containing `version_string'.
14284
14285         * Makefile.in (mainversion): Likewise.
14286         (GCC_H): New variable.
14287         (gcc.h): Delete target.
14288         (gcc.o, gccspec.o, cppspec.o): Depend on $(GCC_H), not gcc.h.
14289         (version.o): Depend on version.h.
14290         (dbxout.o): Don't depend on gcc.h.
14291
14292 Wed Feb 16 15:04:49 2000  Hans-Peter Nilsson  <hp@bitrange.com>
14293                           Michael Meissner  <meissner@cygnus.com>
14294
14295         * md.texi (Simple Constraints): Add item about whitespace.
14296         * genoutput.c (strip_whitespace): New.
14297         (scan_operands) [MATCH_OPERAND, MATCH_SCRATCH]: Call
14298         strip_whitespace for constraints.
14299         Test pointer using NULL, not 0.
14300
14301 2000-02-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14302
14303         * cpplib.c (do_line): Pedwarn for #line > 32767.
14304
14305         * c-lex.c (readescape): Warn about '\x', but do not reject it.
14306
14307 2000-02-15  Jonathan Larmour  <jlarmour@redhat.co.uk>
14308
14309         * gcc.c (default_compilers): Add new __GNUC_PATCHLEVEL__ define
14310         to default cpp spec.
14311         (do_spec_1): Add support for %v3 spec used by __GNUC_PATCHLEVEL__.
14312         * cpp.texi: Document __GNUC_PATCHLEVEL__.
14313         * cpp.1: Likewise.
14314
14315         * objc/lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to
14316         default spec.
14317
14318 2000-02-15  Denis Chertykov  <denisc@overta.ru>
14319
14320         * configure.in: Add support for avr target.
14321
14322 Wed Feb 16 03:21:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14323
14324         * sh.h (OVERRIDE_OPTIONS): Don't set sh_addr_diff_vec_mode.
14325         (sh_addr_diff_vec_mode): Don't declare.
14326         * sh.c (sh_addr_diff_vec_mode): Delete.
14327
14328 Wed Feb 16 01:27:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14329
14330         * sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn.
14331
14332 Wed Feb 16 00:58:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14333
14334         * sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name.
14335         (smulsi3_highpart_i): Name.
14336         (udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes.
14337         (divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise.
14338         (smulsi3_highpart, umulsi3_highpart): Likewise.
14339
14340         (mulsidi3_i, umulsidi3_i): Make rtl describe operation
14341         correctly independent of endianness.
14342         (mulsidi3, umulsidi3): Now define_insn.  Hide details that
14343         confuse the optimizers.
14344         (mulsidi3+1, umulsidi3+1): New define_split.
14345
14346 Tue Feb 15 23:22:26 2000  Andrew Haley  <aph@cygnus.com>
14347
14348         * config/sh/sh.md: Guard insn splits against illegal registers.
14349         * config/sh/sh.h: Correct comment about macros.
14350
14351 Tue Feb 15 22:30:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14352                           Andrew MacLeod  <amacleod@cygnus.com>
14353
14354         * Makefile.in (lcm.o): Depend on insn-attr.h.
14355         * basic-block.h (optimize_mode_switching): Declare.
14356         * lcm.c (tm_p.h, insn-attr.h): #include.
14357         (seginfo, bb_info): New structs.
14358         (antic, transp, comp, delete, insert) : New file-scope static variables.
14359         (new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions.
14360         (reg_becomes_live, optimize_mode_switching): Likewise.
14361         * tm.texi: Add description of mode switching macros.
14362         * toplev.c (rest_of_compilation): Call optimize_mode_switching.
14363
14364         * sh-protos.h (remove_dead_before_cse): Remove prototype.
14365         (fldi_ok, fpscr_set_from_mem): New prototypes.
14366         * sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set.
14367         (CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS):
14368         Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
14369         (sh_flag_remove_dead_before_cse): Remove declaration.
14370         (NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros.
14371         (MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise.
14372         (MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
14373         * sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
14374         (barrier_align): Allow for JUMP_INSNS containing a parallel.
14375         (machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set.
14376         (fldi_ok): New function.
14377         (get_fpscr_rtx): Add fpscr_rtx as GC root.
14378         (emit_sf_insn): Only generate fpu switches when optimize < 1.
14379         (emit_df_insn): Likewise.
14380         (expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete.
14381         (sh_flag_remove_dead_before_cse): Delete.
14382         (get_free_reg, fpscr_set_from_mem): New functions.
14383         * sh.md (movdf, movsf): Remove no_new_pseudos code.
14384         (return): Remove emit_fpscr_use / remove_dead_before_cse calls.
14385
14386 2000-02-15  Loren Rittle  <ljrittle@acm.org>
14387
14388         * ginclude/stddef.h: Correct usage of _BSD_RUNE_T_ for FreeBSD.
14389
14390 2000-02-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14391
14392         * Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o,
14393         cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h.
14394
14395         * cccp.c: Include version.h and/or don't declare `version_string'.
14396         * collect2.c: Likewise.
14397         * alpha.c: Likewise.
14398         * arm/aof.h: Likewise.
14399         * arm/coff.h: Likewise.
14400         * arm/elf.h: Likewise.
14401         * arm/pe.h: Likewise.
14402         * arm/tcoff.h: Likewise.
14403         * arm/telf.h: Likewise.
14404         * arm/tpe.h: Likewise.
14405         * arm/vxarm.h: Likewise.
14406         * convex/convex.c: Likewise.
14407         * i386/dgux.c: Likewise.
14408         * i386/sun386.h: Likewise.
14409         * m88k/m88k.c: Likewise.
14410         * mcore/mcore-pe.h: Likewise.
14411         * mips/mips.h: Likewise.
14412         * romp/romp.h: Likewise.
14413         * sh/sh.c: Likewise.
14414         * cpphash.c: Likewise.
14415         * cppinit.c: Likewise.
14416         * dwarf2out.c: Likewise.
14417         * dwarfout.c: Likewise.
14418         * gcc.c: Likewise.
14419         * gcc.h: Likewise.
14420         * mips-tfile.c: Likewise.
14421         * protoize.c: Likewise.
14422         * toplev.c: Likewise.
14423         * tree.h: Likewise.
14424
14425         * version.c (version_string): Constify a char*.
14426
14427         * version.h: New file.
14428
14429 2000-02-14  Nick Clifton  <nickc@cygnus.com>
14430
14431         * configure.in: Add mcore-elf and mcore-pe targets.
14432         * configure: Regenerate.
14433
14434         * NEWS: Add note that MCore port has been contributed.
14435
14436         * invoke.texi: Document command line switches for MCore port.
14437         * install.texi: Add MCore to list of supported targets.
14438
14439 2000-02-14  Geoff Keating  <geoffk@cygnus.com>
14440
14441         * collect2.c (main) [COLLECT_EXPORT_LIST]: If we have frames,
14442         then we will need to import the frame handling functions.
14443         (scan_prog_file) [COLLECT_EXPORT_LIST]: We will also need
14444         to import the frames themselves.
14445
14446 Mon Feb 14 13:31:01 2000  Stan Cox  <scox@cygnus.com>
14447                           Jason Eckhardt  <jle@cygnus.com>
14448
14449         * basic_block.h: Added prototype for reorder_basic_blocks.
14450         * toplev.c: Changes to add -freorder-blocks and graph dump after
14451         block reordering is done.
14452         * flow.c (reorder_block_def): New structure for use during block
14453         reordering.
14454         (REORDER_BLOCK_*): New macros to access members of above structure.
14455         (skip_insns_between_block, get_common_dest, chain_reorder_blocks,
14456         make_reorder_chain, fixup_reorder_chain, reorder_basic_blocks): New
14457         functions for block reordering.
14458
14459 Mon Feb 14 11:24:44 2000  Hans-Peter Nilsson  <hp@bitrange.com>
14460
14461         * gcc.texi (Passes): Fix typo.
14462         * md.texi (Standard Names): Ditto.
14463         * tm.texi (Storage Layout): Ditto.
14464
14465 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
14466
14467         * cpplib.c (do_define): Only free the old definition if it
14468         actually had one.
14469
14470 2000-02-13   Neil Booth  <NeilB@earthling.net>
14471
14472         * cppfiles.c (read_and_prescan): When emitting deferred
14473         newlines, test speccase[] again instead of checking each
14474         possible whitespace character in turn.  When we encounter \r,
14475         look behind for \n first, then ahead.
14476
14477 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
14478
14479         * cse.c (cse_altered): New internal flag.
14480         (cse_insn): Set it if we changed an insn.
14481         (cse_main): Clear cse_altered before each basic block.
14482         Only garbage collect if cse_altered is true afterward.
14483
14484 Sun Feb 13 14:12:28 2000  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14485
14486         * sparc/sol2.h (LIB_SPEC): Link -ldl if profiling.
14487
14488 Sun Feb 13 13:21:55 2000  Jeffrey A Law  (law@cygnus.com)
14489
14490         * combine.c (simplify_comparison): Fix typo.
14491
14492 Sun Feb 13 12:57:52 2000  Neil Booth <NeilB@earthling.net>
14493
14494         * prefix.c (concat, lookup_key): Use xmalloc and xrealloc
14495         consistently.
14496
14497 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14498
14499         * flow.c (flow_loop_tree_node_add): Use better algorithm by passing
14500         previously inserted node instead of root node.  Caller changed.
14501
14502 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14503
14504         * basic-block.h (FLOW_LOOP_FIRST_BLOCK, FLOW_LOOP_LAST_BLOCK): Delete.
14505
14506 2000-02-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14507
14508         * crtstuff.c (__do_global_ctors_aux, __reg_frame_ctor,
14509         __dereg_frame_dtor): Add prototype argument.
14510
14511         * gthr-dce.h (__gthread_active_p, __gthread_once): Likewise.
14512
14513         * gthr-posix.h (__gthread_active_p, __gthread_once): Likewise.
14514
14515         * gthr-solaris.h (__gthread_active_p, __gthread_once): Likewise.
14516
14517         * gthr-vxworks.h (__gthread_once): Likewise.
14518
14519         * gthr-win32.h (__gthread_active_p, __gthread_once): Likewise.
14520
14521 Sat Feb 12 01:44:26 MET 2000  Jan Hubicka  <jh@suse.cz>
14522
14523         * i386.c (ix86_emit_restore_regs_using_mov): Break out from ...
14524         (ix86_expand_epilogue): ... here. Use mov instead of add to restore
14525         stack pointer in functions w/o saved registers, output LEAVE more often
14526         on TARGET_USE_LEAVE machines.
14527
14528 2000-02-07  Dmitri Makarov  <dim@wrs.com> & Bernd Schmidt <bernds@redhat.com>
14529
14530         * config/arm/arm.c (arm_init_cumulative_args); New function:
14531         Initlaise the CUMULATIE_ARGS strcuture for a function
14532         defintion.
14533         (arm_function_arg): New function: Determine where to place a
14534         function's argument.  Also handles deciding the function's
14535         call cookie.
14536         (current_file_function_operand): New function: Return true if
14537         the symbol is a function which has already been compiled.
14538         (arm_is_long_call_p): New function: Return true if the
14539         indicated function should be called via a long call.
14540         (arm_valid_type_attribute_p): New function: Return true if the
14541         attribute is a valid, arm specific, attribute.
14542         (arm_comp_type_attribute): New function: Return true if the
14543         two types have compatable, arm specific, attributes.
14544
14545         * config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a
14546         structure.
14547         (FUNCTION_ARG): Redefine to call arm_function_arg.
14548         (FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct
14549         structure field.
14550         (INIT_CUMULATIVE_ARGS): Redefine to call
14551         arm_init_cumulative_args.
14552         (FUNCTION_ARG_ADVANCE): Redefine to use correct structure
14553         field.
14554         (SETUP_INCOMING_VARARGS): Redefine to use correct structure
14555         field.
14556         (ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled
14557         functions.
14558         (ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION.
14559         (VALID_MACHINE_TYPE_ATTRIBUTE): Define.
14560         (COMP_TYPE_ATTRIBUTES): Define.
14561
14562         * config/arm/arm.md (call): Call arm_is_long_call_p to decide
14563         if a long call is needed.
14564         (call_value): Call arm_is_long_call_p to decide if a long call
14565         is needed.
14566         (call_symbol): Call arm_is_long_call_p to decide if a long call
14567         is needed.
14568
14569         * config/arm/arm-protos.h: Add prototype for arm_is_long_call_p.
14570
14571 2000-02-11  Denis Chertykov  <denisc@overta.ru>
14572
14573         * README.AVR: New file with information about the avr ports.
14574         * config/avr: New directory with avr port files.
14575
14576 2000-02-11  Andreas Jaeger  <aj@suse.de>
14577
14578         * fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@.
14579
14580 2000-02-11  Zack Weinberg  <zack@wolery.cumb.org>
14581
14582         * cpphash.c: Fix formatting, update commentary.
14583         (dump_definition): Take three separate arguments instead of a
14584         MACRODEF structure argument.
14585         * cpphash.h: Update prototype of dump_definition.
14586         * cppinit.c (cpp_finish): Update call of dump_definition.
14587
14588         * cpplib.c (do_define): Always create new hash entry with
14589         T_MACRO type.  Remove redundant check for redefinition of
14590         poisoned identifier.  Update call of dump_definition.
14591         (do_undef): Don't call check_macro_name.  Rename sym_length to
14592         len.
14593         (do_error, do_warning): Don't use copy_rest_of_line or
14594         SKIP_WHITE_SPACE.
14595         (do_warning): Don't use pedwarn for the actual warning,
14596         only the notice about its not being in the standard.  (Fixes
14597         bug with #warning in system headers.)
14598         (do_ident): Stricter argument checking - accept only a single
14599         string after #ident.  Also, macro-expand the line.
14600         (do_xifdef): Use cpp_defined.  De-obfuscate.
14601
14602         (do_pragma): Split out specific pragma handling to separate
14603         functions.  Use get_directive_token.  Update commentary.  Do
14604         not pass on #pragma once or #pragma poison to the front end.
14605         (do_pragma_once, do_pragma_implementation, do_pragma_poison,
14606         do_pragma_default): New.
14607
14608 Feb 11 12:30:53 2000  Jeffrey A Law  (law@cygnus.com)
14609
14610         * jump.c (jump_optimize_1): The first operand in a relational
14611         can be a CONST_INT.
14612         * optabs.c (emit_conditional_move): Handle relationals which
14613         have a known true/false result.
14614
14615 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
14616
14617         * function.c (thread_prologue_and_epilogue_insns): Don't insert
14618         a RETURN insn into a block which already ends with a jump.
14619
14620 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
14621
14622         * haifa-sched.c (BUF_LEN): Increase a lot.
14623
14624 2000-02-11  Nick Clifton  <nickc@cygnus.com>
14625
14626         * configure.in: Add tm_p_file specification for thumb targets.
14627         * configure: Regenerate.
14628
14629         * config/arm/thumb-protos.h: New file: Prototypes for exported
14630         functions defined in thumb.c.
14631
14632 2000-02-11  Robert Lipe  <robertl@sco.com>
14633
14634         * Makefile.in (bootstrap-lean): Remove additional files.
14635         (bootstrap2-lean): Likewise.
14636         (VOL_FILES): List of files for above.
14637
14638 2000-02-11  Nathan Sidwell  <nathan@acm.org>
14639
14640         * cpphash.c (special_symbol): Remove spurious argument to
14641         cpp_lookup.
14642
14643 2000-02-11  Joel Sherrill (joel@OARcorp.com>
14644
14645         * configure.in: (i*86-*-rtems*): Swapped elf and coff
14646         stanzas.
14647         * configure: Rebuilt.
14648
14649 2000-02-11  Rodney Brown  <RodneyBrown@pmsc.com>
14650
14651         * pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef.
14652
14653 Fri Feb 11 02:59:05 2000  Jeffrey A Law  (law@cygnus.com)
14654
14655         * pa.c, pa.h: Remove trigraph sequences within comments.
14656
14657 Fri Feb 11 02:51:56 2000  Pavel Roskin <pavel_roskin@geocities.com>
14658
14659         * invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics.
14660
14661 Fri Feb 11 02:48:30 2000  Brad Lucier  (lucier@math.purdue.edu)
14662
14663         * sbitmap.h: Make SBITMAP_ELT_BITS unsigned.
14664
14665 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14666
14667         * config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE.
14668
14669 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14670
14671         * config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label.
14672         (ASM_OUTPUT_EXTERNAL): Use c4x_external_ref.
14673         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
14674         (ASM_FILE_END): Use c4x_file_end.
14675         * config/c4x/c4x.c (c4x_global_label): New function.
14676         (c4x_external_ref, c4x_file_end): Likewise.
14677
14678         * config/c4x/c4x-protos.h (c4x_global_label): Add prototype.
14679         (c4x_external_ref, c4x_end_file): Likewise.
14680
14681 2000-02-10  Zack Weinberg  <zack@wolery.cumb.org>
14682
14683         * cppexp.c: Don't include cpphash.h.
14684         (parse_charconst, cpp_lex): Use cpp_defined.
14685         (cpp_lex): Use get_directive_token throughout.  Remove
14686         unnecessary cases from switch.  Move assertion-handling code
14687         down to OTHER case.
14688         (cpp_parse_expr): If we see '+' or '-', check the context to
14689         determine if they are unary or binary operators.  Streamline
14690         the jumps a bit.  Do not call skip_rest_of_line.
14691
14692         * cpplib.c: Make skip_rest_of_line and cpp_skip_hspace
14693         static.  Export get_directive_token.  Update commentary.
14694         (cpp_defined): New function.
14695         (do_define): Remove reference to T_PCSTRING.  Call
14696         free_definition to release memory for old definition, when
14697         redefining a macro.
14698         (eval_if_expression): Set only_seen_white to 0 before calling
14699         cpp_parse_expr.  Call skip_rest_of_line after it returns.
14700         (cpp_read_check_assertion): Don't preserve a pointer into the
14701         token buffer across a call to cpp_get_token.
14702
14703         * Makefile.in (cppexp.o): Don't depend on cpphash.h.
14704         * cppfiles.c (redundant_include_p): Use cpp_defined.
14705         * cpphash.c (free_definition): New function.
14706         (delete_macro): Use it.  Update commentary.
14707         * cpphash.h: Typedef HASHNODE here.  Prototype cpp_lookup and
14708         free_definition.
14709         * cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING
14710         from enum node_type.  Prototype cpp_defined and get_directive_token.
14711         Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace.
14712
14713         * fix-header.c (check_macro_names): Use cpp_defined.
14714         (read_scan_file): Set inhibit_warnings and inhibit_errors in
14715         the options structure.
14716
14717 2000-02-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
14718
14719         * c-pragma.c (maximum_field_alignment): Remove duplicate declaration.
14720
14721 2000-02-10  Jason Merrill  <jason@casey.cygnus.com>
14722
14723         * dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin)
14724         rather than die->die_tag.
14725
14726 Thu Feb 10 16:26:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14727
14728         * combine.c (make_extraction, force_to_mode): Avoid warning on
14729         mixed-signedness conditionals.
14730         (make_field_assignment, nonzero_bits): Likewise.
14731         * expmed.c (store_fixed_bit_field): ALIGN arg now unsigned.
14732         (store_split_bit_field, extract_split_bit_field): Likewise.
14733         (extract_fixed_bit_field, store_bit_field,
14734         * expr.c: Change alignment to be unsigned everywhere.
14735         (move_by_pieces, store_constructor_field, store_constructor):
14736         Alignment parm is unsigned.
14737         (emit_block_move, emit_group_load, emit_group_store): Likewise.
14738         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
14739         (do_compare_rtx_and_jump): Likewise.
14740         (move_by_pieces_ninsns, clear_by_pieces): Likewise.
14741         Compare align with GET_MODE_ALIGNMENT.
14742         (expand_expr_unaligned): Pointer to alignment is pointer to unsigned.
14743         (get_inner_reference): Likewise.
14744         (copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts.
14745         (expand_assignment): Local vars for alignment now unsigned.
14746         (store_constructor, store_field, expand_expr, do_jump): Likewise.
14747         (do_compare_and_jump): Likewise.
14748         (store_field): Call new function expr_align.
14749         * expr.h (emit_block_move, emit_group_load, emit_group_store):
14750         Alignment arg now unsigned.
14751         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
14752         (do_compare_rtx_and_jump, store_bit_field): Likewise.
14753         (extract_bit_field): Likewise.
14754         * fold-const.c (add_double): Add cast to eliminate signedness warning.
14755         * machmode.h (GET_MODE_ALIGNMENT): Result is unsigned.
14756         (get_best_mode): Alignment arg is unsigned.
14757         * rtl.h (move_by_pieces): Likewise.
14758         * store-layout.c (maximum_field_alignment, set_alignment):
14759         Now unsigned.
14760         (layout_decl): Alignment arg is now unsigned.
14761         Remove unneeded casts.
14762         (layout_record, layout_union, layout_type): Remove unneeded casts.
14763         Local alignment variables now unsigned.
14764         (get_best_mode): Alignment arg now unsigned.
14765         * tree.c (expr_align): New function.
14766         * tree.h (expr_align): Likewise.
14767         (maximum_field_alignment, set_alignment): Now unsigned.
14768         (get_inner_reference): Alignment argument is now pointer to unsigned.
14769         * varasm.c (assemble_variable): Add cast to eliminate warning.
14770
14771 Thu Feb 10 12:56:47 2000  Jim Wilson  <wilson@cygnus.com>
14772
14773         * expmed.c (store_bit_field): If op0 and fieldmode are the same size,
14774         then store directly into op0.
14775
14776         * calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for
14777         the CALL_INSN, and emit the note immediately after it.
14778
14779 2000-02-10  Nick Clifton  <nickc@cygnus.com>
14780
14781         * config/arm/thumb.md (epilogue): Include a (return) in the
14782         generated insn, and emit it using emit_jump_insn not
14783         emit_insn.
14784
14785 Thu Feb 10 18:28:59 MET 2000  Jan Hubicka  <jh@suse.cz>
14786
14787         * function.c (assign_temp): Change zero-sized arrays to size 1.
14788         * integrate.c (expand_inline_function): Do not update
14789         stack_alignment_needed
14790         * i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY,
14791         add some sanity checking, remove optimization for function with
14792         zero frame size.
14793
14794 2000-02-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14795
14796         * flow.c (mark_regs_live_at_end): Delete unused variables.
14797
14798         * ggc-page.c (ggc_page_print_statistics): bzero -> memset.
14799
14800         * integrate.c (copy_rtx_and_substitute): Wrap variable `alignment'
14801         in macro FRAME_GROWS_DOWNWARD.
14802
14803         * stmt.c (expand_end_bindings): Delete unused variable.
14804
14805         * unroll.c (iteration_info): Mark parameter `loop' with
14806         ATTRIBUTE_UNUSED.
14807
14808 2000-02-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14809
14810         * fixinc/server.c (load_data): Return NULL if the marker line is
14811         not found.
14812         (run_shell): If load_data returns NULL, retry the command once, in
14813         a new shell.
14814
14815         * configure: Rebuilt.
14816
14817 2000-02-09  Bruce Korb  <bkorb@gnu.org>
14818
14819         * gcc/fixincludes:  ** DELETED **
14820         * gcc/fixcpp:  ** DELETED **
14821         * gcc/fixinc-nt.sed:  ** DELETED **
14822         * gcc/just-fixinc:  ** DELETED **
14823         * gcc/Makefile.in:  Removed out-dated commentary
14824         * gcc/configure.in: Removed fast-fixincludes disablement.
14825         * MAINTAINERS(Ian Taylor) moved to "Write after approval" group.
14826
14827 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
14828         * function.c (thread_prologue_and_epilogue_insns): Uncomment
14829         last change.
14830
14831 2000-02-09  Richard Henderson  <rth@cygnus.com>
14832
14833         * jump.c (delete_insn): Don't delete user labels at -O0.
14834
14835 2000-02-09  Robert Lipe  <robertl@sco.com>
14836
14837         * Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS.
14838         Don't link with HOST_LIBS.
14839
14840 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
14841
14842         * configure.in: Correct --help text for --with-dwarf2.
14843         Put tm-dwarf2.h after other tm files, if it's requested.
14844         * configure: Regenerate.
14845         * config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before
14846         defining it.
14847
14848 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
14849
14850         * cpplib.h: Provide HASHNODE typedef and forward decl of
14851         struct hashnode only.  Kill cpp_hashnode typedef.  MACRODEF,
14852         DEFINITION, struct hashnode, struct macrodef, struct
14853         definition, scan_decls prototype, default defn of
14854         INCLUDE_LEN_FUDGE moved elsewhere.
14855
14856         * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct
14857         definition, and struct hashnode moved here. Remove the unused
14858         'predefined' field from struct definition.  Replace the 'args'
14859         union with its sole member.  All users updated (cpphash.c).
14860         Delete HASHSTEP and MAKE_POS macros, and hashf prototype.  Add
14861         multiple include guard.
14862
14863         * cpphash.c (hashf): Make static; use better algorithm; drop
14864         HASHSIZE parameter; return an unsigned int.
14865         (cpp_lookup): Drop HASH parameter.  PFILE parameter is
14866         used. Calculate HASHSIZE modulus here.
14867         (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus
14868         here.
14869         (create_definition): Drop PREDEFINITION parameter.
14870         * cpplib.c (do_define): Don't calculate a hash value here.
14871         Don't pass (keyword == NULL) to create_definition.
14872
14873         * scan.h: Prototype scan_decls here.
14874         * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here.
14875         * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All
14876         callers of cpp_lookup and cpp_install updated.
14877
14878         * cpphash.c (macarg): Hoist all the flag diddling out of the
14879         function...
14880         (macroexpand): ... and out of the loop that calls macarg.
14881         Skip over the initial paren before macro arguments with
14882         cpp_get_non_space_token; point may be some distance before
14883         that paren.  Abort if it's not there.
14884
14885         * cpplib.c (parse_clear_mark): Delete function.
14886         (parse_set_mark, parse_goto_mark): Make static.
14887         (ACTIVE_MARK_P): New macro.
14888         (skip_block_comment, skip_line_comment): Do not bump the line
14889         if ACTIVE_MARK_P is true.
14890         (cpp_pop_buffer): The buffer to be popped may not have an
14891         active mark.
14892         (cpp_get_token): When looking for the initial paren before
14893         macro arguments, only set a mark in a file buffer, Always
14894         return to that mark before proceeding to call macroexpand or
14895         return a NAME token.
14896
14897         * cpplib.h: Remove prototypes of parse_set_mark,
14898         parse_clear_mark, parse_goto_mark.
14899         (struct cpp_options): Rename 'put_out_comments' to
14900         'discard_comments' and invert its sense.
14901         * cppinit.c, cpphash.c, cpplib.c: All users of
14902         put_out_comments changed to use discard_comments, with
14903         opposite sense.
14904
14905 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
14906
14907         * function.c (thread_prologue_and_epilogue_insns): Don't delete
14908         the edge from a block that both jumps and falls through to the
14909         fallthru block.
14910
14911 2000-02-09  Scott Bambrough  <scottb@netwinder.org>
14912
14913         * config/arm/arm.md (movsi): In PIC mode, make sure that a
14914         constant source address is legitimate.
14915
14916 2000-02-09  Philip Blundell  <pb@futuretv.com>
14917
14918         * config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF
14919         correctly.
14920
14921         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when
14922         generating PIC.
14923         (LEGITIMATE_PIC_OPERAND): Disallow references to labels.
14924
14925 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
14926
14927         * cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer
14928         ends with a newline and a NUL.  Don't be so clever manipulating
14929         strings.
14930
14931 Wed Feb  9 14:18:08 MET 2000  Jan Hubicka  <jh@suse.cz>
14932
14933         * reload1.c (reload) Align stack frame to cfun->stack_alignment_needed,
14934         not to BIGGEST_ALIGNMENT.
14935
14936 2000-02-08  Geoff Keating  <geoffk@cygnus.com>
14937
14938         * dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant.
14939         * dwarf2out.c (dwarf_cfi_name): Print name of new constant.
14940         (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed.
14941         (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended.
14942         * frame.c (execute_cfa_insn): Handle
14943         DW_CFA_GNU_negative_offset_extended.
14944
14945 2000-02-08  Richard Henderson  <rth@cygnus.com>
14946
14947         * flow.c (tidy_fallthru_edges): Split out from ...
14948         (delete_unreachable_blocks): ... here.
14949         (find_basic_blocks): Use it.
14950
14951 Tue Feb  8 15:51:50 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14952
14953         * stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY.
14954
14955 2000-02-08  Zack Weinberg  <zack@wolery.cumb.org>
14956
14957         * Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a.
14958         (gen_protos.o): Don't depend on cpplib.h or cpphash.h.
14959         (fix-header.o): Don't depend on cpphash.h.
14960
14961         * scan.c (hashstr): New function.
14962         * scan.h: Prototype it.
14963         * fix-header.c: Don't include cpphash.h.  Use hashstr.
14964         * gen-protos.c: Don't include cpphash.h or cpplib.h.  Use
14965         hashstr.  Report hash table statistics.  Add private
14966         definition of xrealloc.
14967
14968 2000-02-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14969
14970         * i386.h (TARGET_SWITCHES): Fix typo in option name.
14971
14972 2000-02-08  Clinton Popetz  <cpopetz@cygnus.com>
14973
14974         * function.c (thread_prologue_and_epilogue_insns): Don't replace
14975         jumps with returns unless they are jumps to the fallthru block.
14976
14977 Tue Feb  8 07:53:55 2000  Jan Hubicka  <jh@suse.cz>
14978
14979         * i386.md (addqi3_cc): Fix contraints.
14980
14981 Tue Feb  8 01:39:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
14982
14983         * function.c (emit_return_into_block): Wrap in #ifdef HAVE_return.
14984
14985 2000-02-07  Mark Mitchell  <mark@codesourcery.com>
14986
14987         * cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a
14988         carriage return after a macro name.
14989
14990 2000-02-07  Fred Fish  <fnf@be.com>
14991
14992         * i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing
14993         so the gcc2_compiled symbol doesn't confuse BeOS debuggers.
14994
14995 2000-02-07  Zack Weinberg  <zack@wolery.cumb.org>
14996
14997         * cppfiles.c (deps_output): Count spacers in deps_column.
14998
14999 2000-02-07  Neil Booth  <NeilB@earthling.net>
15000
15001         * cppinit.c (initialize_dependency_output): If there is no
15002         suffix, don't try to look for known suffixes.  Use strrchr.
15003         (cpp_start_read): Remove duplicate initialization.
15004
15005 Mon Feb  7 18:36:41 MET 2000  Jan Hubicka  <jh@suse.cz>
15006
15007         * calls.c (compute_argument_block_size): New argument
15008         preferred_stack_boundary.
15009         (expand_call): update cfun->preferred_stack_boundary, update call of
15010         compute_argument_block_size
15011         (emit_library_call): Increate cfun->preferred_stack_boundary
15012         to PREFERRED_STACK_BOUNDARY
15013         (emit_library_call_value): Likewise.
15014         * explow.c (allocate_dynamic_stack_spave): Likewise.
15015         * function.c (prepare_function_start): Set
15016         cfun->preferred_stack_boundary
15017         * function.h (struct function): Add preferred_stack_boundary field.
15018         * integrate.c (expand_inline_function): Update
15019         cfun->preferred_stack_boundary and cfun->stack_alignment_needed.
15020         (copy_rtx_and_substitute): Align frame to stack_alignment_needed only.
15021         * i386.c (compute_frame_size): Use cfun->preferred_stack_boundary.
15022
15023 2000-02-06  Zack Weinberg  <zack@wolery.cumb.org>
15024
15025         * cpplib.c (my_strerror, cpp_error, cpp_error_with_line,
15026         cpp_error_from_errno, cpp_warning, cpp_warning_with_line,
15027         cpp_pedwarn, cpp_pedwarn_with_line,
15028         cpp_pedwarn_with_file_and_line): Move to cpperror.c.
15029         (cpp_print_file_and_line, v_cpp_error, v_cpp_warning,
15030         v_cpp_error_with_line, v_cpp_warning_with_line,
15031         cpp_message_from_errno, cpp_perror_with_name): Delete.
15032
15033         * cpperror.c (cpp_print_containing_files): Take starting
15034         buffer as argument.
15035         (cpp_file_line_for_message): Rename to cpp_print_file_and_line.
15036         (v_cpp_message): Now called directly by all entry points.
15037         Remove -1 case.
15038         (cpp_pfatal_with_name, cpp_message): Delete.
15039         (cpp_notice_from_errno, cpp_ice): New functions.
15040         (cpp_notice): Is now for reporting error conditions, just
15041         without an associated file.
15042         (cpp_error, cpp_error_with_line): Don't do anything if
15043         opts->inhibit_errors is on.
15044         (cpp_pedwarn_with_file_and_line): Take column argument also.
15045
15046         * cpplib.h: Update prototypes of exported functions.
15047         (struct cpp_options): Add inhibit_errors.
15048
15049         * cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for
15050         non-error messages.  Include intl.h.
15051
15052         * cppinit.c, cppmain.c: Likewise.  Also, use
15053         cpp_notice_from_errno instead of cpp_perror_with_name or
15054         cpp_pfatal_with_name, and cpp_notice instead of cpp_message.
15055
15056         * cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to
15057         report internal errors.
15058
15059         * cpplib.c (do_define): Switch bcopy to memcpy.
15060         Give cpp_pedwarn_with_file_and_line a dummy column argument.
15061
15062         * cpplib.c (copy_rest_of_line): Revert previous change: don't
15063         bail out early if we hit a line comment.
15064
15065 2000-02-06  Richard Henderson  <rth@cygnus.com>
15066
15067         * flow.c (flow_delete_insn, make_edge, remove_edge): Export.
15068         * basic-block.h: Declare them.
15069         * emit-rtl.h (active_insn_p): New.
15070         (next_active_insn, prev_active_insn): Use it.
15071         * rtl.h: Declare it.
15072         * function.c (emit_return_into_block): New.
15073         (thread_prologue_and_epilogue_insns): Insert return insns instead
15074         of epilogues when possible.
15075         * jump.c (jump_optimize_1): Remove code to insert a return insn
15076         on the fallthru to the exit block.
15077
15078         * i386.c (ix86_can_use_return_insn_p): Fail for large poped args
15079         and for non-empty stack frames.
15080         * i386.md (return): Expand to return-pop as needed.
15081
15082 2000-02-06  Richard Henderson  <rth@cygnus.com>
15083
15084         * simplify-rtx.c (simplify_relational_operation): Canonicalize
15085         constant to op1 for testing.
15086
15087 2000-02-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15088
15089         * config/c4x/c4x.md (*ldi_on_overflow): New pattern.
15090         (fixuns_truncqfqi2): Use it.
15091
15092 2000-02-06  Richard Henderson  <rth@cygnus.com>
15093
15094         * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack
15095         as a TYPE_LEA insn.
15096
15097         * i386.md (widening and peepholes): Mask the constant instead of
15098         using gen_lowpart.
15099
15100 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
15101
15102         * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump
15103         input pointer before possibly branching off to the backslash
15104         code.
15105         * cpphash.c (macroexpand): Correctly delete \r escapes when
15106         stringifying parameters.
15107         * cpplib.c (copy_rest_of_line): Go directly to skip_block_comment
15108         if we can; bail out early if we hit a line comment.
15109         (handle_directive): Treat '# 123' in an .S file just like
15110         '# <punctuation>'.  Discard the shifted '#' if we hit '#\n'.
15111         Return 1 for '# not_a_directive'.
15112         (get_directive_token): Pop macro buffers here, so that
15113         cpp_get_token can't sneakily move past a newline.
15114         Add sanity checks.
15115         (cpp_get_token): goto randomchar if handle_directive returns 0.
15116
15117         * cppalloc.c: Update copyright.
15118         * cpplib.c: Merge all the static function prototypes into one
15119         block.
15120         * cpplib.h: Remove #if 0 block.
15121
15122         * cpperror.c: Remove #ifdef EMACS block.
15123         * cppmain.c: Likewise.
15124         * cpphash.c: Remove #if 0 blocks.
15125         * cppinit.c: Remove #if 0 blocks, and the -lint option.
15126         * cpplib.c: Remove #if 0 blocks and code referencing
15127         pcp_inside_if or for_lint.  Remove duplicate error message.
15128         Fix error messages for #else after #else or #elif.  Reformat.
15129         Remove archaic TODO list.
15130         * cpplib.h: Remove pcp_inside_if and for_lint flags.
15131
15132 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
15133
15134         * i386/osf1elf.h: Add missing backslash to multiline string.
15135
15136 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15137
15138         * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg.
15139
15140 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15141
15142         * Makefile.in (c-common.o): Depend on $(EXPR_H).
15143
15144         * c-common.c: Include expr.h.
15145
15146         * c-pragma.c (mark_align_stack): Add prototype.
15147
15148         * caller-save.c (add_stored_regs): Likewise.
15149
15150         * combine.c (record_promoted_value): Likewise.
15151
15152         * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro):
15153         Likewise.
15154
15155         * cppinit.c (new_pending_define): Likewise.
15156
15157         * cpplib.c (skip_block_comment, skip_line_comment): Likewise.
15158
15159         * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists,
15160         AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
15161         AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p,
15162         class_scope_p): Likewise.
15163
15164         * dwarf2out.h (dwarf2out_set_demangle_name_func,
15165         dwarf2out_add_library_unit_info): Likewise.
15166
15167         * ggc.h (ggc_page_print_statistics): Likewise.
15168
15169         * haifa-sched.c (propagate_deps): Likewise.
15170
15171         * reg-stack.c (next_flags_user, record_label_references): Likewise.
15172
15173         * rtl.h (set_stack_check_libfunc): Likewise.
15174
15175         * toplev.h (set_fatal_function): Likewise.
15176
15177         * toplev.c (set_fatal_function): Delete prototype.
15178
15179         * diagnostic.c: Deconstify functions returning malloc'ed ptrs.
15180
15181 2000-02-05  Geoff Keating  <geoffk@cygnus.com>
15182
15183         * ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX.
15184         (FUNC_END): Likewise.
15185
15186 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15187
15188         * caller-save.c: Include tm_p.h.
15189
15190 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15191
15192         * Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2).
15193
15194 2000-02-04  Neil Booth  <NeilB@earthling.net>
15195
15196         * cccp.c (main): Check 'dir' for a NULL pointer before passing
15197         it to strcmp.
15198
15199 2000-02-04  Zack Weinberg  <zack@wolery.cumb.org>
15200
15201         * recog.h: Remove NO_MD_PROTOTYPES ifdefs.
15202         * genflags.c: Use the max_operand_1 logic from genemit.c to
15203         calculate how many arguments gen_insn prototypes have.  Remove
15204         NO_MD_PROTOTYPES ifdefs from the generated file.
15205         * genoutput.c: Don't define NO_MD_PROTOTYPES in the generated
15206         file.  Cast gen_insn initializers to insn_gen_fn.
15207         * config/alpha/vms.h: Don't define NO_MD_PROTOTYPES.
15208         * gcc.texi: Remove documentation of NO_MD_PROTOTYPES.
15209
15210 2000-02-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15211
15212         * fixinc/Makefile.in (HDR): Add machname.h.
15213         (clean): Likewise.
15214
15215 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15216
15217         * config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ...
15218         (c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto.
15219         (c4x_cpu_version): Ditto.
15220         * config/c4x/c4x-protos.h: ... here.
15221
15222 2000-02-04  Jason Merrill  <jason@casey.cygnus.com>
15223
15224         * dwarf2out.c (add_abstract_origin_attribute): Don't call
15225         gen_abstract_function on our context if we're a nested function.
15226
15227 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15228
15229         * config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite.
15230         * config/c4x/libgcc.S (ufix_truncqfhi2n): Fix.
15231
15232 2000-02-04  Bruce Korb  <bkorb@gnu.org>
15233
15234         * fixinc/genfixes(machname.h):
15235         Move the functionality from gen-machine.h into this file.
15236         UNdef MN_NAME_PAT if there are no names to change.
15237         Also, be a little kinder when AutoGen is not present.
15238
15239         * fixinc/Makefile.in(machname.h):
15240         Change the generation rule to use genfixes.
15241
15242         * fixinc/fixfixes.c(machine_name):
15243         machine_name_fix's functionality now dependent upon whether
15244         MN_NAME_PAT is defined.
15245
15246         * fixinc/fixtests.c(machine_name):
15247         ditto.
15248
15249         * fixinc/fixlib.c(mn_get_regexps): conditional on definition
15250         of MN_NAME_PAT.
15251
15252         * fixinc/fixlib.h(mn_get_regexps):
15253         ditto
15254
15255         * fixinc/gen-machine.h: DELETED
15256
15257 2000-02-04  Jan Hubicka  <jh@suse.cz>
15258             Richard Henderson  <rth@cygnus.com>
15259
15260         * i386.c (SAVE_REGS_FIRST): Remove.
15261         (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode.
15262         (ix86_compute_frame_size): Likewise.
15263         (ix86_expand_prologue): Likewise.  Use pro_epilogue_adjust_stack.
15264         (ix86_emit_restore_regs): Remove.
15265         (ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack
15266         when a frame pointer is in use.
15267         (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode.  Use mov
15268         instead of pop to restore a register when profitable; emit leave
15269         when profitable.
15270         (ix86_attr_length_default): Handle pro_epilogue_adjust_stack
15271         as a TYPE_LEA insn.
15272         (ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU.
15273         * i386.md (prologue_allocate_stack): Remove.
15274         (epilogue_deallocate_stack): Remove.
15275         (pro_epilogue_adjust_stack): New.
15276
15277 2000-02-04  Richard Henderson  <rth@cygnus.com>
15278
15279         * function.c (diddle_return_value): Rework to use a callback function.
15280         Use current_function_return_rtx if it's been set up.
15281         (do_clobber_return_reg, clobber_return_register): New.
15282         (do_use_return_reg, use_return_register): New.
15283         (expand_function_end): Use them.
15284         * stmt.c (expand_null_return): Likewise.
15285         * function.h: Declare them.
15286         * flow.c (mark_regs_live_at_end): Use diddle_return_value.
15287         (mark_reg): Change arguments as appropriate for callback.
15288         * integrate.c (expand_inline_function): Revert 19 Jan change.
15289
15290 Fri Feb  4 20:25:42 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15291
15292         * tm.texi (Values in Registers): Fix typo: "fo" "for".
15293         (Misc): Say the scheduler, not the Haifa scheduler.
15294
15295 2000-02-04  Clinton Popetz  <cpopetz@cygnus.com>
15296
15297         * jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs
15298         when in_mem is set.  Update all callers.
15299
15300 2000-02-04  Richard Henderson  <rth@cygnus.com>
15301
15302         * i386/openbsd.h (INT_ASM_OP): Define.
15303
15304 Fri Feb  4 10:51:30 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15305
15306         * tm.texi: Fix various typos.
15307
15308 Thu Feb  3 17:17:32 2000  Steve Ellcey <sje@cup.hp.com>
15309
15310         * config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case.
15311         (MD_STARTFILE_PREFIX_1): New macro.
15312
15313 Thu Feb  3 15:08:13 MET 2000  Jan Hubicka  <jh@suse.cz>
15314
15315         * i386.md (movstrsi, clrstrsi): Support variable sized copies, align
15316         destination when needed.
15317         (strmovsi, strsetsi): New expander.
15318         (strmovsi_1, strsetsi_1): New pattern.
15319         * i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP,
15320         TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros.
15321         (TARGET_SWITCHES) Add align-stringops and inline-all-stringops.
15322         * invoke.texi (align-stringops, inline-all-stringops): Document.
15323
15324 Wed Feb  2 23:04:47 2000   Krister Walfridsson <cato@df.lth.se>
15325
15326         * i386/netbsd.h (INT_ASM_OP): Define.
15327
15328 2000-02-02  Zack Weinberg  <zack@wolery.cumb.org>
15329
15330         * cpplib.h (cpp_reader): Add new flag, no_directives.
15331         * cpphash.c (macarg): Set it.
15332         * cpplib.c (handle_directive): If no_directives is on and we
15333         find a directive, issue an error and discard the line.
15334
15335 Wed Feb  2 13:07:10 2000  Jim Wilson  <wilson@cygnus.com>
15336
15337         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for
15338         FP constants.  Add ! TARGET_FPU check for FP constants.
15339
15340 2000-02-02  Clinton Popetz  <cpopetz@cygnus.com>
15341
15342         * flow.c (find_basic_blocks): Don't kill label_value_list
15343         here.
15344         (cleanup_cfg): Kill it here.
15345
15346 Wed Feb  2 08:12:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15347
15348         * expr.c (store_field): Ensure ALIGN is no stricter than the
15349         alignment of EXP.
15350
15351 2000-02-02  Richard Henderson  <rth@cygnus.com>
15352
15353         * jump.c (delete_insn): Partially revert 19 Jan change;
15354         don't convert unused code labels to notes at -O0.
15355
15356 2000-02-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15357
15358         * toplev.c (rest_of_compilation): Run rebuild_jump_labels after
15359         split_all_insns to recreate REG_LABEL notes for flow2 pass.
15360
15361 2000-02-01  Richard Henderson  <rth@cygnus.com>
15362
15363         * i386.c (general_no_elim_operand): New.
15364         (nonmemory_no_elim_operand): New.
15365         (ix86_expand_move): Copy eliminable operands before a push.
15366         * i386-protos.h: Declare new functions.
15367         * i386.h (CAN_ELIMINATE): Simplify.
15368         (PREDICATE_CODES): Update.
15369         * i386.md (push insns): Don't allow eliminable register operands.
15370
15371 2000-02-01  Richard Henderson  <rth@cygnus.com>
15372
15373         * flow.c (mark_regs_live_at_end): Follow expand_function_end and
15374         replace BLKmode with DECL_RTL's mode.
15375
15376 2000-02-01  Zack Weinberg  <zack@wolery.cumb.org>
15377
15378         * frame.c (find_fde): Convert for loop to do-while so compiler
15379         sees it's always executed at least once.
15380         * libgcc2.c (BBINBUFSIZE): Kill.
15381         (__bb_init_prg): Use fgets.
15382         (__bb_exit_trace_func): Don't paste strings.
15383         * unroll.c (unroll_loop): Initialize unroll_type, not
15384         unroll_number, and tweak logic to match.
15385
15386         * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in
15387         all failure paths.
15388         (ix86_flags_dependant): Likewise.  Disentangle control flow.
15389         (ix86_sched_reorder): Break guts out to
15390         ix86_sched_reorder_pentium and ix86_sched_reorder_ppro.
15391         (ix86_sched_reorder_ppro): Initialize pair2 and insnp before
15392         any possible use.
15393
15394         * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't
15395         use string concatenation.  Don't save and restore esi.
15396
15397         * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def.
15398         (machname.h): Remove script to separate file.  Use two-step
15399         sequence so target is not created if script fails.
15400         * fixinc/gen-machname.h: New file.  Handle case where no non-reserved
15401         identifiers are defined.
15402         * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is
15403         an empty string, machine_name doesn't need to do anything at
15404         all.
15405         (is_cxx_header): Add more cases to regexp.
15406         * fixinc/fixlib.h: Update prototype.
15407         * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of
15408         mn_get_regexps.
15409         * fixinc/fixincl.c: Define NO_BOGOSITY.
15410
15411         * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out.
15412         (hp_sysfile): Add missing comma.
15413         (math_exception): Put the wrapper ifdefs at the beginning and
15414         the end of the file.
15415         * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate.
15416
15417 2000-02-01  Richard Henderson  <rth@cygnus.com>
15418
15419         * sparc.c (fp_zero_operand): Turn into a normal predicate.
15420         Use CONST0_RTX.  Update all callers.
15421         * sparc.h, sparc-protos.h: Update accordingly.
15422         * sparc.md (fp mov insns): Use fp_zero_operand directly
15423         where applicable.
15424
15425 Wed Feb  2 02:59:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15426
15427         * tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS
15428         example.
15429
15430 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15431
15432         * Makefile.in (specs.ready): New target.
15433         (fixinc.sh): Depend on `specs.ready' instead of `specs'.
15434
15435 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15436
15437         * fixinc.irix: Use unique filenames for writing into /tmp,
15438         * fixinc.ptx: Likewise.
15439         * fixinc.sco: Likewise.
15440         * fixinc.svr4: Likewise.
15441         * fixinc.winnt: Likewise.
15442
15443 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15444
15445         * tsystem.h: New file.
15446
15447         * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o,
15448         s-crtS): Depend on tsystem.h.
15449
15450         * crtstuff.c: Include tsystem.h.
15451         * frame.c: Likewise.
15452         * libgcc2.c: Likewise.
15453
15454 Tue Feb  1 19:53:27 CET 2000  Jan Hubicka  <jh@suse.cz>
15455
15456         * builtins.c (expand_builtin_memset): Expand for variable sized
15457         lengths too.
15458
15459 2000-02-01  David Billinghurst <David.Billinghurst@riotinto.com.au>
15460
15461         * config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based
15462         on ABI.
15463
15464 Tue Feb  1 00:57:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15465
15466         * dwarfout.c (SHORT_TYPE_SIZE): Correct default.
15467
15468         * tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE.
15469
15470 2000-01-31  Chandra Chavva <cchavva@cygnus.com>
15471
15472         * combine.c (try_combine) [HAVE_cc0]: Trying to check the missed
15473         case 3->2 combining (combining with splitting) in which 2 is CC0
15474         setter/user and 3 is user. The rest of cases 2->1 and 3->2 are
15475         checked at the begining of the function with the aid of calling
15476         function 'can_combine_p'.
15477
15478 2000-01-31  Dave Brolley  <brolley@redhat.com>
15479
15480         * cccp.c (struct argdata): Redeclare 'newlines' field as 'int'.
15481
15482 2000-01-31  Jason Merrill  <jason@casey.cygnus.com>
15483
15484         * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the
15485         new label.
15486
15487 2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15488
15489         * gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros.
15490
15491         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit):
15492         PROTO -> PARAMS.
15493
15494 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
15495
15496         * i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h,
15497         i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h,
15498         i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h,
15499         i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h,
15500         i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h,
15501         i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
15502         i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h,
15503         i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h,
15504         i386/vxi386.h, i386/win-nt.h, i386/win32.h:
15505         Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES.
15506
15507         * i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h:
15508         Add %(cpp_cpu) to CPP_SPEC.
15509
15510         * i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h:
15511         Add %(cc1_cpu) to CC1_SPEC.
15512
15513 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
15514
15515         * c-decl.c (c_decode_option): Accept optional numeric argument to
15516         -Wformat and set warn_format.
15517         * c-common.c: Don't emit warning about non-constant printf format
15518         string unless warn_format > 1.
15519
15520 2000-01-30  Richard Henderson  <rth@cygnus.com>
15521
15522         * alpha.md (return_internal): Allow after reload only.
15523
15524 2000-01-30  Richard Henderson  <rth@cygnus.com>
15525
15526         * i386.c (ix86_compute_frame_size): Omit padding1 if the
15527         local frame size is zero.
15528
15529 2000-01-30  Richard Henderson  <rth@cygnus.com>
15530
15531         * alpha.c (alpha_expand_epilogue): Don't emit the return insn.
15532         * alpha.h (EPILOGUE_USES): New.  Mark $26 live.
15533         * alpha.md (return): Turn into an expander.
15534         (return_internal): Don't use $26.
15535         (epilogue): Emit the return insn.
15536
15537 2000-01-30  Richard Henderson  <rth@cygnus.com>
15538
15539         * alpha.md (negtf2, abstf2): Fix word order thinko.
15540         (extendsftf2): New.
15541         (trunctfsf2): Avoid intermediate rounding errors.
15542
15543 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
15544
15545         * cppfiles.c (find_position): Drop 'colp' argument, return the
15546         new line base.
15547         (read_and_prescan): Adjust to match.  Don't ever manipulate
15548         line or line_base except via find_position.
15549
15550 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
15551
15552         * c-parse.in: Apply Ulrich's changes from c-parse.y.
15553         * c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c:
15554         Regenerate.
15555
15556 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
15557
15558         * cpperror.c (cpp_file_line_for_message): If 'line' is zero,
15559         just print "<command line>".  If 'filename' is null or an
15560         empty string, print "<stdin>" for the filename.
15561         * cpplib.c (do_define): Don't print the 'location of the
15562         previous definition' message if we're still parsing the
15563         command line.
15564         (cpp_pedwarn_with_file_and_line): Always call
15565         cpp_file_line_for_message.
15566
15567 2000-01-29  Mark Mitchell  <mark@codesourcery.com>
15568
15569         * flow.c (mark_regs_live_at_end): Fix typo.
15570
15571 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
15572
15573         * c-common.c: Adjust variable names, comments, help strings to c99.
15574         * c-lex.c: Likewise.
15575         * c-parse.y: Likewise.
15576         * c-tree.h: Likewise.
15577         * cccp.c: Likewise.
15578         * cpplib.h: Likewise.
15579         * c-decl.c: Likewise.  Recognize options with names "*99" as well.
15580         * cppinit.c: Likewise.
15581
15582 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15583
15584         * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries.
15585         * c4x.c: Define the optab rtx values.
15586         (c4x_add_gc_roots): Add the ggc roots for these optab rtx values.
15587         (c4x_emit_libcall): Use new optab rtx values.
15588         (c4x_emit_libcall3): Likewise.
15589         (c4x_emit_libcall_mulhi): Likewise.
15590         * c4x-protos.h: Add prototypes for optab rtx values and change
15591         prototypes for above c4x_emit_libcall functions.
15592
15593 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15594
15595         * c4x.c (c4x_output_ascii): Restrict line length of output when TI
15596         syntax is used.
15597         (c4x_function_prologue): Use regnames intead of float_reg_names when
15598         TI syntax is used.
15599         (c4x_function_epilogue): Likewise.
15600         (c4x_print_operand): Likewise.
15601         * c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine.
15602         * c4x.md (set_high): Disable for TARGET_TI.
15603
15604 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15605
15606         * c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading
15607         of framepointer + constant to ADDR_REGS class.
15608         * c4x.md (addqi3, addqi3_noclobber_reload): Update.
15609         * c4x.c (std_or_reg_operand): New function.
15610         * c4x-protos.h (std_or_reg_operand): Prototype it.
15611
15612 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15613
15614         * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same
15615                 object names as libgcc2.c.
15616         * libgcc.S: Use newly defined names.
15617
15618 Fri Jan  7 19:48:04 CET 2000  Jan Hubicka  <jh@suse.cz>
15619         * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New
15620         function.
15621         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare.
15622         * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro.
15623         (FLOW_LOOP_LAST_BLOCK): Likewise.
15624
15625 2000-01-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15626
15627         * basic-block.h (struct loop): New fields 'first' and 'last'.
15628         * flow.c (flow_loops_find): Compute loop->first and loop->last.
15629         (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG
15630         and loop->last to check for NOTE_INSN_LOOP_END.
15631
15632 Fri Jan 28 10:57:58 2000  Jason Eckhardt  <jle@cygnus.com>
15633
15634         * predict.c (estimate_probability): Use the new FIRST and LAST fields
15635         of the loop descriptor rather than HEADER and LATCH. Also added
15636         missing break statements as well making some coding style modifications
15637         as suggested by Michael Hayes.
15638
15639 2000-01-28  Richard Henderson  <rth@cygnus.com>
15640
15641         * flow.c (find_basic_blocks): Remove do_cleanup argument.
15642         Break out that code ...
15643         (cleanup_cfg): ... here.
15644         (commit_one_edge_insertion): Detect a return instruction being
15645         emitted to an edge.  Emit a barrier following; clear fallthru.
15646         (commit_edge_insertions): Verify CFG consistency.
15647         * function.c (expand_function_start): Kill unused variable.
15648         (expand_function_end): Likewise.
15649         (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge
15650         to insert the epilogue.
15651
15652         * gcse.c (gcse_main): Adjust for find_basic_blocks change.
15653         (delete_null_pointer_checks): Likewise.
15654         * output.h: Likewise.
15655         * reg-stack.c (reg_to_stack): Likewise.
15656         * toplev.c (rest_of_compilation): Likewise.  Run
15657         thread_prologue_and_epilogue_insns after rebuilding the CFG.
15658
15659 2000-01-28  Richard Henderson  <rth@cygnus.com>
15660
15661         * Makefile.in (flow.o): Revert 24 Jan change.
15662         * flow.c (mark_regs_live_at_end): Likewise.  Force BLKmode
15663         FUNCTION_VALUE result to DECL_RESULT's mode.
15664
15665         * haifa-sched.c (schedule_insns): Don't recompute reg info
15666         after reload.
15667
15668 2000-01-28  Zack Weinberg  <zack@wolery.cumb.org>
15669
15670         * configure.in: Make --enable-cpplib the default.
15671         * configure: Regenerate.
15672         * gcc.dg/990119-1.c: No longer expected to fail.
15673
15674 2000-01-28  Bernd Schmidt  <bernds@cygnus.co.uk>
15675
15676         * jump.c (jump_optimize_1): Delete an optimization that is also done
15677         by merge_blocks in flow.
15678
15679 2000-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15680
15681         * diagnostic.c (build_message_string, output_printf,
15682         line_wrapper_printf): Add ATTRIBUTE_PRINTF_*.
15683         (build_location_prefix): Fix non-literal format string.
15684
15685 2000-01-27  Richard Henderson  <rth@cygnus.com>
15686
15687         * alpha.md (trunctfsf2): New.
15688
15689 2000-01-27  Andrew Hobson  <ahobson@eng.mindspring.net>
15690
15691         * configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH.
15692
15693 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
15694
15695         * cppinit.c (cpp_handle_option): Recognize C++ comments under
15696         -std=gnu89.
15697         * cpplib.c (skip_block_comment, skip_line_comment): Split code
15698         out of...
15699         (skip_comment) ... here.  Permit C++ comments in system
15700         headers always.  Warn about C++ comments in user code under
15701         -std=gnu89 -pedantic.
15702         (copy_comment): Use skip_comment.
15703         (cpp_skip_hspace, cpp_get_token): skip_comment can no longer
15704         return EOF.
15705         (consider_directive_while_skipping, do_else, do_endif): Call
15706         validate_else unconditionally.
15707         (validate_else): Check CPP_PEDANTIC here.  Accept non-comment
15708         text after the conditional in a system header.
15709         * cpplib.h (struct cpp_buffer): Add flag
15710         warned_cplusplus_comments.
15711
15712 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
15713
15714         * emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too.
15715         Use unshare_all_rtl_1.
15716         (unshare_all_rtl_again): New function.
15717         (unshare_all_rtl_1): New function split out of unshare_all_rtl.
15718
15719         * function.c (purge_addressof_1): Use unshare_all_rtl_again
15720         rather than resetting the 'used' flags ourself.
15721
15722         * toplev.c (rest_of_compilation): Add current_function_decl
15723         to the unshare_all_rtl call.
15724         * tree.h: Prototype unshare_all_rtl.
15725         * rtl.h: Prototype unshare_all_rtl_again here.
15726
15727 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
15728
15729         * genoutput.c (output_prologue): Include ggc.h in generated
15730         files.
15731         * Makefile.in (insn-output.o): Depends on ggc.h.
15732
15733 2000-01-27  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
15734             Hans-Peter Nilsson  <hp@bitrange.com>
15735
15736         * ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete.
15737         Remove redundant include of xm-ns32k.h.
15738         * ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions.
15739         Remove redundant include of xm-ns32k.h.
15740         * ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine.
15741         Remove redundant include of xm-ns32k.h.
15742         * ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions.
15743
15744         * ns32k/ns32k.h: Update comment on multiply-add instructions.
15745         (TARGET_SWITCHES): Add documentation strings.
15746         (DWARF_FRAME_REGNUM): Override default definition.
15747         (REG_CLASS_CONTENTS): Add comments.
15748         (SUBSET_P): Format to reduce line length.
15749         (SMALL_REGISTER_CLASSES): Make a run time option.
15750         (GO_IF_NONINDEXED_ADDRESS): Reformat.
15751         (GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before
15752         dereferencing it.  Braces to avoid "ambiguous else" were misplaced.
15753         (regclass_map): fix typo in comment.
15754         * ns32k/ns32k.c: Add spaces before parentheses for consistant style.
15755         Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...).
15756         (trace, reg_or_mem_operand): Delete, unused function.
15757         (calc_address_cost): Small offsets are cheaper than large ones.
15758         (expand_block_move): Generate more efficient code when bytes is a
15759         known at compile time.
15760         * ns32k/ns32k.md: Alternate constraints for multiply-add instructions.
15761         (udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand
15762         instead of reg_or_mem_operand.
15763
15764         * ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs,
15765         not general_operand.  Similarly use "=rm" or stricter, not "=g".
15766         For input operands, use stricter constraints than "g" if not
15767         general_operand.  Similarly use stricter predicate than
15768         "general_operand" when stricter constraints than "g" are present,
15769         except for matching constraints.
15770         (movstrsi): Use "memory_operand" for operands 0 and 1.
15771         (truncsiqi2, truncsihi2, trunchiqi2): Remove.
15772         (udivmoddisi4_internal): Use nonimmediate_operand for operand 0,
15773         not reg_or_mem_operand.
15774         (udivmoddisi4): Ditto.
15775         Use nonimmediate_operand for operand 1, not reg_or_mem_operand.
15776         Use nonimmediate_operand for operand 3, not register_operand.
15777         (udivmoddiqi4_internal): Use register_operand for operand 1, not
15778         reg_or_mem_operand.
15779
15780 2000-01-27  Fred Fish  <fnf@be.com>
15781
15782         * gthr-posix.h: Fix typo; compatibily -> compatibility.
15783         * gthr-single.h: Likewise.
15784         * gthr-solaris.h: Likewise.
15785         * gthr-vxworks.h: Likewise.
15786         * gthr-win32.h: Likewise.
15787         * gthr.h: Likewise.
15788
15789 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
15790
15791         * cppinit.c: Add " (cpplib)" to end of string printed by
15792         -v / --version.
15793
15794 2000-01-27  Richard Henderson  <rth@cygnus.com>
15795
15796         * alpha.c (alpha_emit_conditional_move): Use VOIDmode when
15797         testing for a signed comparison.
15798         (alpha_emit_floatuns): New.
15799         * alpha-protos.h: Declare it.
15800         * alpha.md (floatunsdisf2, floatunsdidf2): New.
15801         (extendsfdf2): Tidy.
15802
15803 2000-01-27  Jakub Jelinek  <jakub@redhat.com>
15804
15805         * config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but
15806         no -g option specifying debugging format, default to -gstabs+.
15807
15808 Wed Jan 26 22:19:14 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
15809
15810         * calls.c (special_function_p): New argument fork_or_exec.
15811         (expand_call): When profile_arc_flag is set and the function
15812         is in the fork_or_exec group, call __bb_fork_func first.
15813         * libgcc2.c, _bb module (__bb_fork_func): New function.
15814         (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock
15815         output file.
15816         * config/svr4.h (TARGET_HAS_F_SETLKW): Define.
15817         * tree.h (special_function_p): Update prototype.
15818
15819 2000-01-26  Richard Henderson  <rth@cygnus.com>
15820
15821         * alpha.c (alpha_split_tfmode_pair): New.
15822         * alpha-protos.h: Declare it.
15823         * alpha.md (abstf2, negtf2): New.
15824         (movtf insn): Add input G constraint.
15825         (movtf splitter): Use alpha_split_tfmode_pair.
15826
15827 2000-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15828
15829         * i386/cygwin.h: PROTO -> PARAMS.
15830
15831 2000-01-26  Jakub Jelinek  <jakub@redhat.com>
15832
15833         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle
15834         TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons
15835         using _Qp_cmp/_Q_cmp and testing the return value.
15836         (print_operand): Call reverse_condition_maybe_unordered if
15837         we are handling CCFPmode or CCFPEmode.
15838         Handle ORDERED, UN* and LTGT comparisons.
15839         * config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32
15840         if not TARGET_HARD_QUAD.
15841         (seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble,
15842         bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt):
15843         Call sparc_emit_float_lib_cmp even on TARGET_ARCH32.
15844         Adjust gen_b* calls so that they reflect return comparison of
15845         sparc_emit_float_lib_cmp.
15846
15847 2000-01-26  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
15848
15849         * config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume
15850         incoming operands array is large enough for one more operand.
15851         (alpha_emit_xfloating_arith): Likewise.
15852
15853 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
15854
15855         * fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a
15856         file with one line and no trailing newline.
15857         Patch by Kaveh Ghazi <ghazi@caip.rutgers.edu>.
15858         * fixinc/fixtests.c (machine_name_test): Fix fencepost error
15859         checking if the match is on the line.
15860         * fixinc/gnu-regex.c: Provide regerror not __regerror.
15861
15862 2000-01-25  Richard Henderson  <rth@cygnus.com>
15863
15864         * sparc.c (output_cbranch): Fix accidental squashing of the
15865         fp branch pre-delay nop.
15866
15867 2000-01-25  Richard Henderson  <rth@cygnus.com>
15868
15869         * tree.def (UNNE_EXPR): Remove.
15870         * c-typeck.c (build_binary_op): Don't handle it.
15871         * expr.c (expand_expr, do_jump, do_store_flag): Likewise.
15872
15873         * rtl.def (UNNE): Remove.
15874         (LTGT): Add.
15875         * jump.c (reverse_condition): Update accordingly.
15876         (swap_condition): Likewise.
15877         (comparison_dominates_p): Handle unordered comparisons.
15878         (reverse_condition_maybe_unordered): New.
15879         * rtl.h (reverse_condition_maybe_unordered): Declare.
15880
15881         * sparc.c (select_cc_mode): Update for UNNE/LTGT.
15882         (output_cbranch): Use reverse_condition_maybe_unordered and LTGT.
15883         * sparc.h (REVERSIBLE_CC_MODE): Always true.  Update docs.
15884         * sparc.md (bltgt): New.
15885
15886 2000-01-25  Nick Clifton  <nickc@redhat.com>
15887
15888         * emit-rtl.c (emit_insn): Only check machine class insns for
15889         improper emission of a RETURN.
15890
15891 2000-01-25  Richard Henderson  <rth@cygnus.com>
15892
15893         * Makefile.in (flow.o): Depend on $(EXPR_H).
15894         * flow.c (mark_regs_live_at_end): Use hard_function_value, i.e.
15895         duplicate the structure of diddle_return_value for keeping regs live.
15896
15897 2000-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15898
15899         * loop.c (current_loop_info): Delete.
15900         (consec_sets_invariant_p): Add loop argument, update callers.
15901         (get_condition_for_loop): Likewise.
15902         (count_nonfixed_reads, update_giv_derive): Likewise.
15903         (simplify_giv_expr, general_induction_var): Likewise.
15904         (consec_sets_giv, recombine_givs): Likewise.
15905         (move_movables): Delete loop_start and loop_end arguments,
15906         add loop argument, and update callers.
15907         (find_mem_givs, check_final_value): Likewise.
15908         (record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise.
15909         (loop_invariant_p): Rename from invariant_p, add loop argument, and
15910         update callers.
15911         (basic_induction_var): Add loop argument, delete loop_level argument,
15912         and update callers.
15913         * unroll.c (iteration_info): Delete loop_start and loop_end arguments,
15914         add loop argument, and update callers.
15915         (find_splittable_regs, find_splittable_givs): Likewise.
15916         (reg_dead_after_loop, loop_find_equiv_value): Likewise.
15917         (final_biv_value, final_giv_value, back_branch_in_range_p): Likewise.
15918         (biv_total_increment): Delete loop_start and loop_end arguments;
15919         update callers.
15920         (precondition_loop_p): Delete loop_start and loop_info arguments;
15921         update callers.
15922         * loop.h (get_condition_for_loop): Add loop argument.
15923         (biv_total_increment): Delete loop_start and loop_end arguments.
15924         (precondition_loop_p): Delete loop_start and loop_info arguments;
15925         add loop argument.
15926         (final_biv_value): Delete loop_start and loop_end arguments;
15927         add loop argument.
15928         (final_giv_value, back_branch_in_range_p): Likewise.
15929
15930 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
15931
15932         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16.
15933
15934 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
15935
15936         * Makefile.in (c-gperf.h) : Change the "See" pointer to
15937         point to the new "generated_files" doc.
15938
15939 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
15940
15941         * config/fp-bit.c (_unord_f2): Fix typo.
15942
15943 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
15944
15945         * c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c,
15946         c-typeck.c, objc/objc-act.c: Remove all references to obstack
15947         functions obsoleted by GC, such as push_obstacks_nochange,
15948         end_temporary_allocation, savealloc, saveable_tree_cons, etc.
15949         and code which existed only to decide whether or not to call
15950         them.  Remove now-unused NESTED argument from start_function;
15951         all callers changed.  Do not change behavior based on ggc_p.
15952         The use of the ixp_obstack in c-iterate.c and the util_obstack
15953         in objc/objc-act.c remain; these are not obsoleted by garbage
15954         collection.
15955         * c-tree.h: Update prototype for start_function.
15956
15957         * c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild.
15958
15959 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
15960
15961         * config/mips/mips.md (zero_extendsidi2_internal): Disable for
15962         mips16.
15963
15964 2000-01-25  Richard Henderson  <rth@cygnus.com>
15965
15966         * sparc-protos.h (select_cc_mode): Declare.
15967         * sparc.c (select_cc_mode): New.  Handle unordered compares.
15968         (output_cbranch): Always reverse via code change.  Handle
15969         unordered compares.  Factor tests and string updates.
15970         * sparc.h (SELECT_CC_MODE): Split out to select_cc_mode.
15971         (REVERSIBLE_CC_MODE): Also exclude CCFPmode.
15972         * sparc.md (bunordered, bordered): New.
15973         (bungt, bunlt, buneq, bunge, bunle): New.
15974
15975 2000-01-25  Richard Henderson  <rth@cygnus.com>
15976
15977         * dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root.
15978         * ggc-common.c (ggc_add_rtx_varray_root): New.
15979         (ggc_mark_rtx_varray): New.
15980         (ggc_mark_rtx_varray_ptr): New.  Shift all ggc_mark_foo_ptr
15981         functions down below ggc_mark_foo.
15982         * ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare.
15983
15984 2000-01-25  Richard Henderson  <rth@cygnus.com>
15985
15986         * alpha.c (secondary_reload_class): Don't allocate a secondary
15987         for integral mode memories into FLOAT_REGS.  Rearrange the more
15988         complicated memory expression inward.
15989
15990 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
15991
15992         * inclhack.def: Fixes to play nicer with FreeBSD, and
15993         corrections to comments.
15994         (cxx_unready): Add select expression.
15995         (irix_sockaddr): Add bypass expression.
15996         (machine_ansi_h_va_list): New fix.
15997         (stdio_va_list): No need to edit _BSD_VA_LIST_.
15998         Split out addition of "#include <stdarg.h>" to...
15999         (stdio_stdarg_h): ... here.
16000         (systypes_for_aix): Rename to systypes_stdlib_size_t.  Apply
16001         to stdlib.h also.  Do not munge _BSD_SIZE_T_.
16002         (sysz_stdlib_for_sun): Delete duplicate fix for unprotected
16003         size_t.
16004         (ultrix_ifdef): Tighten up select expression.
16005
16006         * fixincl.tpl: Exorcise 'exesel'.  Rewrite calculations of
16007         re_ct and max_mach to avoid use of shell.  Make printed names
16008         match names in inclhack.def.  Use static copyright date.
16009         Don't count c_test and test expressions as requiring regex_t
16010         slots.  Add some commentary.
16011         * inclhack.tpl: Do not include the 'This script contains N
16012         fixup scripts' line if PROGRAM is defined.  Use static
16013         copyright date.
16014
16015 2000-01-24  Jason Merrill  <jason@casey.cygnus.com>
16016
16017         * dwarf2out.c: include "varray.h", not dyn-string.h.
16018         (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose.
16019         (addr_const_to_string, addr_to_string): Lose.
16020         (ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c.
16021         (struct dw_val_struct): val_addr is now an rtx.
16022         (add_AT_addr, AT_addr, free_AT, output_aranges): Adjust.
16023         (used_rtx_varray): New varray.
16024         (dwarf2out_init): Initialize it.
16025         (save_rtx): New fn.
16026         (mem_loc_descriptor, add_const_value_attribute): Call it instead of
16027         addr_to_string.
16028         * arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h,
16029         sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST.
16030         * Makefile.in (dwarf2out.o): Update dependencies.
16031
16032 2000-01-24  Richard Henderson  <rth@cygnus.com>
16033
16034         * i386.c (i386_dwarf_output_addr_const): New.
16035         * i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New.
16036
16037         * dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR
16038         if defined.
16039         * dwarfout.c (output_mem_loc_descriptor): Likewise.
16040         * i386.c (i386_simplify_dwarf_addr): New.
16041         * i386.h (ASM_SIMPLIFY_DWARF_ADDR): New.
16042
16043 Mon Jan 24 16:56:10 2000  Jim Wilson  <wilson@cygnus.com>
16044
16045         * dwarf2out.c (gen_struct_or_union_type_die): Set complete if
16046         TYPE_STUB_DECL is NULL.
16047
16048 2000-01-24  Richard Henderson  <rth@cygnus.com>
16049
16050         * builtins.c (expand_tree_builtin): Move ...
16051         * c-common.c (expand_tree_builtin): ... here.
16052
16053 2000-01-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16054
16055         * loop.h (LOOP_INFO): New accessor macro.
16056         * basic-block.h (struct loop): Rename field `info' to `aux'.
16057         * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop).
16058         (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise.
16059         * unroll.c (loop_iterations, unroll_loop): Likewise.
16060
16061 2000-01-24  Christopher Faylor <cgf@cygnus.com>
16062
16063         * config/i386/t-cygwin: Accomodate new winsup directory layout
16064         when searching for include files.
16065
16066 2000-01-24  Richard Henderson  <rth@cygnus.com>
16067
16068         * rtl.def: Add unordered fp comparisions.
16069         * tree.def: Likewise.
16070         * tree.h: Add ISO C 9x unordered fp comparision builtins.
16071
16072         * builtins.c (expand_tree_builtin): New function.
16073         * c-typeck.c (build_function_call): Use it.
16074         (build_binary_op): Support unordered compares.
16075         * c-common.c (c_common_nodes_and_builtins): Add unordered compares.
16076
16077         * combine.c (known_cond): Handle reverse_condition returning UNKNOWN.
16078         (reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed.
16079         * cse.c (fold_rtx): Check FLOAT_MODE_P before reversing.
16080         (record_jump_equiv): Handle reverse_condition returning UNKNOWN.
16081         * jump.c (reverse_condition): Don't abort for UNLE etc, but
16082         return UNKNOWN.
16083         (swap_condition): Handle unordered compares.
16084         (thread_jumps): Check can_reverse before reversing.
16085         * loop.c (get_condition): Likewise.  Allow UNORERED/ORDERED to be
16086         reversed for FP.
16087
16088         * optabs.c (can_compare_p): New argument CODE.  Verify branch or
16089         setcc is present before acking for cmp_optab.  Update all callers.
16090         (prepare_float_lib_cmp, init_optabs): Handle UNORDERED.
16091         * expmed.c (do_cmp_and_jump): Update for can_compare_p.
16092         * expr.c (expand_expr): Likewise.  Support unordered compares.
16093         (do_jump, do_store_flag): Likewise.
16094         * expr.h (enum libfunc_index): Add unordered compares.
16095
16096         * Makefile.in (FPBIT_FUNCS): Add _unord_sf.
16097         (DPBIT_FUNCS): Add _unord_df.
16098         * config/fp-bit.c (_unord_f2): New.
16099         * fp-test.c (main): Try unordered compare builtins.
16100
16101         * alpha-protos.h (alpha_fp_comparison_operator): Declare.
16102         * alpha.c (alpha_comparison_operator): Check mode properly.
16103         (alpha_swapped_comparison_operator): Likewise.
16104         (signed_comparison_operator): Likewise.
16105         (alpha_fp_comparison_operator): New.
16106         (alpha_emit_conditional_branch): Handle unordered compares.
16107         * alpha.h (PREDICATE_CODES): Update.
16108         * alpha.md (fp compares): Use alpha_fp_comparison_operator.
16109         (bunordered, bordered): New.
16110
16111 2000-01-24  Richard Henderson  <rth@cygnus.com>
16112
16113         * alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation.
16114         * alpha.md (movtf): New expander, insn, and splitter.
16115
16116 Mon Jan 24 19:49:47 MET 2000  Jan Hubicka  <jh@suse.cz>
16117
16118         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
16119         dead registers.
16120
16121 Mon Jan 24 17:37:31 MET 2000  Jan Hubicka  <jh@suse.cz>
16122
16123         * i386.h (FIRST_PSEUDO_REGISTER): Set to 21.
16124         (FIXED_REGISTERS, CALL_USED_REGISTERS,
16125          REG_ALLOC_ORDER): Add frame pointer
16126         (FRAME_POINTER_REGNUM): Set to 20
16127         (HARD_FRAME_POINTER_REGNUM): New macro.
16128         (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER
16129         to HARD_FRAME_POINTER.
16130         (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM
16131         (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise.
16132         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
16133         (HI_REGISTER_NAMES): Add "frame".
16134         (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination.
16135         (debug_reg): Handle FRAME_POINTER_REGNUM.
16136         (reg_class): Add arg pointer and frame pointer to NON_Q_REGS,
16137         GENERAL_REGS and INDEX_REGS.
16138         * i386.c (SAVED_REGS_FIRST): new macro.
16139         (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx
16140         (ix86_decompose_address, memory_address_length): Likewise.
16141         (regclass_map): Add frame pointer.
16142         (call_insn_operand): Handle frame_pointer_rtx.
16143         (reg_no_sp_operand): Likewise.
16144         (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx.
16145         (print_operand, legitimize_pic_address): Fix formating.
16146         (ix86_compute_frame_size): Make static, update prototype, new
16147         parameters padding1, padding2, use ix86_nsaved_regs, use
16148         stack_alignment_needed.
16149         (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM
16150         to HARD_FRAME_POINTER_REGNUM conversions.
16151         (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues.
16152         (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues.
16153         (print_reg): Abort on FRAME_POINTER_REGNUM
16154
16155 Mon Jan 24 16:50:08 MET 2000  Jan Hubicka  <jh@suse.cz>
16156
16157         * i386.h (PREDICATE_CODES): Add aligned_operand.
16158         * i386.c (aligned_operand): New function.
16159         (ix86_aligned_p): Kill.
16160         * i386.md (movhi_1): Emit mov for aligned operands.
16161         (promoting peep2s): Use aligned_operand.
16162
16163 2000-01-23  Zack Weinberg  <zack@wolery.cumb.org>
16164
16165         * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular
16166         expression to allow underscores in macro names.
16167         (fix_char_macro_defines): Increment scanning pointer.
16168
16169 2000-01-23  Richard Henderson  <rth@cygnus.com>
16170
16171         * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define.
16172         * alpha/osf5.h: New file.
16173         * configure.in (alpha-*-osf5): Add it to tm_file.
16174
16175         * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target.
16176
16177         * alpha-protos.h (alpha_emit_xfloating_arith): Declare.
16178         (alpha_emit_xfloating_cvt, function_arg): Declare.
16179         * alpha.c (alpha_emit_conditional_branch): Call
16180         alpha_emit_xfloating_compare for TFmode compares.
16181         (alpha_lookup_xfloating_lib_func): New.
16182         (alpha_compute_xfloating_mode_arg): New.
16183         (alpha_emit_xfloating_libcall): New.
16184         (alpha_emit_xfloating_arith): New.
16185         (alpha_emit_xfloating_compare): New.
16186         (alpha_emit_xfloating_cvt): New.
16187         (print_operand): Add default abort case.
16188         (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE.
16189         * alpha.h (TARGET_HAS_XFLOATING_LIBS): New.
16190         (BIGGEST_ALIGNMENT): Increase to 128 bits.
16191         (RETURN_IN_MEMORY): True for TF/TCmode.
16192         (ALPHA_ARG_SIZE): TF/TCmode is passed indirect.
16193         (FUNCTION_ARG): Move to function_arg.
16194         (FUNCTION_ARG_PASS_BY_REFERENCE): New.
16195         (ASM_OUTPUT_LONG_DOUBLE): New.
16196         (ASM_OUTPUT_DOUBLE): Always output bits.
16197         * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New.
16198         (fix_trunctfdi2, floatditf2, floatunsditf2): New.
16199         (extenddftf2, trunctfdf2): New.
16200
16201 2000-01-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
16202
16203         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved...
16204         * config/sparc/sol2.h: ... here.
16205
16206 2000-01-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16207
16208         * basic-block.h (struct loops): New field `levels'.
16209         * flow.c (flow_loops_level_compute): Traverse all outer loops.
16210         (flow_loop_level_compute): Initialise level to 1.
16211         (flow_loops_find): Set loops->levels.
16212         (flow_loops_dump): Print loops->levels.
16213
16214 2000-01-23  Richard Henderson  <rth@cygnus.com>
16215
16216         * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS.
16217         (throw_helper): Iterate over DWARF_FRAME_REGISTERS.
16218
16219 2000-01-23  Richard Henderson  <rth@cygnus.com>
16220
16221         * i386.c (dbx_register_map, svr4_dbx_register_map): New.
16222         * i386.h (DBX_REGISTER_NUMBER): Use them.
16223         * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise.
16224         * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise.
16225         * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise.
16226         * i386/sequent.h: Kill incorrect comment.
16227
16228 2000-01-23  Mark Mitchell  <mark@codesourcery.com>
16229
16230         * ggc-page.c (struct page_entry): Make `context_depth' an
16231         `unsigned short'.
16232         (struct globals): Likewise.
16233
16234 2000-01-23  Clinton Popetz  <cpopetz@cygnus.com>
16235
16236         * loop.c (check_dbra_loop): When checking a loop for
16237         reversability, check the source of any stores to ensure
16238         they don't depend on an initial value.
16239
16240 2000-01-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16241
16242         * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine.
16243
16244 2000-01-22  Zack Weinberg  <zack@wolery.cumb.org>
16245
16246         * fixinc/fixincl.c: Move declarations of 'pz_fname' and
16247         'pz_scan' into scope of entire function.  Only affects
16248         compiles with -DDEBUG.
16249
16250 2000-01-22  Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>
16251
16252         * config/elfos.h (UNIQUE_SECTION): Restore uninitialised data
16253         section naming to that prior to 2000-01-07 patch.
16254         * config/mips/elf.h (UNIQUE_SECTION): Ditto.
16255         * config/mips/elf64.h (UNIQUE_SECTION): Ditto.
16256         * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto.
16257         * config/i386/interix.c (UNIQUE_SECTION): Ditto.
16258         * config/i386/winnt.c (UNIQUE_SECTION): Ditto.
16259
16260 2000-01-22  Bernd Schmidt  <bernds@cygnus.co.uk>
16261
16262         * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a
16263         constant.
16264
16265 2000-01-21  Jim Wilson  <wilson@cygnus.com>
16266
16267         * fixinc/inclhack.tpl: Test for directory before trying to cd into it.
16268         * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate.
16269
16270 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
16271
16272         * cpphash.c (change_newlines): Delete function.
16273         (struct argdata): Delete 'newlines' and 'use_count' fields.
16274         (macroexpand): Remove code referencing those fields.
16275
16276 2000-01-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16277
16278         * loop.c (loops_info): New variable.
16279         (loop_optimize): Allocate loops->array and free it on exit.
16280         Allocate memory for loops_info and assign to each loop,
16281         replacing alloca.
16282         (find_and_verify_loops): Do not allocate loops->array.
16283
16284 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
16285
16286         * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'.
16287
16288 2000-01-21  Jakub Jelinek  <jakub@redhat.com>
16289
16290         * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new
16291         pseudos if expanded after first flow.
16292         (movdi_pic_label_ref): Likewise.
16293
16294 2000-01-20  Richard Henderson  <rth@cygnus.com>
16295
16296         * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0.
16297
16298 2000-01-20  Zack Weinberg  <zack@wolery.cumb.org>
16299
16300         * Makefile.in (fixinc.sh): Depend on specs.
16301         * fixinc/Makefile.in: Add rule to create machname.h.
16302         (fixlib.o): Depend on machname.h.
16303         * fixinc/fixtests.c (machine_name): New test.
16304         * fixinc/fixfixes.c (machine_name): New fix.
16305         * fixinc/fixlib.c (mn_get_regexps): New helper function for
16306         the machine_name test and fix.
16307         * fixinc/fixlib.h: Prototype it.
16308         * fixinc/inclhack.def (machine_name): Use the C test and fix.
16309         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild.
16310
16311         * gcc.c (do_spec_1) [case P]: Take care not to create
16312         identifiers with three leading or trailing underscores.
16313
16314         * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC.
16315         (fixincl): Don't specify libraries twice on link line.
16316         (gnu-regex.o): Remove special rule.
16317         * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was
16318         defined by config.h.  Do not define _REGEX_RE_COMP.
16319         (regcomp): Allocate and initialize a fastmap.
16320         * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP.
16321
16322 2000-01-20  Brad Lucier  <lucier@math.purdue.edu>
16323
16324         * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h.
16325
16326 2000-01-19  Richard Henderson  <rth@cygnus.com>
16327
16328         * flow.c (propagate_block): Replace FIRST, LAST and BNUM
16329         arguments with BB.  Update all callers.  Tidy line wrapping.
16330
16331 2000-01-19  Clinton Popetz  <cpopetz@cygnus.com>
16332
16333         * emit-rtl.c (try_split): Return last_insn if we split the
16334         last_insn.
16335
16336 Thu Jan 20 01:01:23 MET 2000  Jan Hubicka  <jh@suse.cz>
16337
16338         * i386-protos.h (ix86_compute_frame_size): Remove prototype.
16339         (ix86_initial_elimination_offset): Declare.
16340         * i386.c (ix86_nsaved_regs): Break out from ...
16341         (ix86_can_use_return_insn_p): ... here.
16342         (ix86_emit_save_regs): Break out from ...
16343         (ix86_expand_prologue): ... here.
16344         (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break
16345         out from ...
16346         (ix86_expand_epilogue): ... here.
16347         (ix86_compute_frame_size): Make static, add prototype.
16348         (ix86_initial_elimination_offset): Break out from ...
16349         * i386.h (INITIAL_ELIMINATION_OFFSET): ... here.
16350
16351 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16352
16353         * recog.h (OUT_FCN): Delete.
16354
16355         * vax.md: Call `get_insn_template' instead of OUT_FCN.
16356
16357 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16358
16359         * cppalloc.c: PROTO -> PARAMS.
16360         * cpperror.c: Likewise.
16361         * cppfiles.c: Likewise.
16362         * cpplib.c: Likewise.
16363         * cpplib.h: Likewise.
16364
16365         * config/arm/arm-protos.h: PROTO -> PARAMS.
16366         * config/arm/arm.c: Likewise.
16367         * config/c4x/c4x.c: Likewise.
16368         * config/fr30/fr30-protos.h: Likewise.
16369         * config/nextstep.c: Likewise.
16370         * config/pa/pa.c: Likewise.
16371         * config/pj/pj.c: Likewise.
16372         * config/rs6000/rs6000.c: Likewise.
16373         * config/v850/v850-protos.h: Likewise.
16374         * config/v850/v850.c: Likewise.
16375
16376 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16377
16378         * i370-protos.h: New file.
16379
16380         * i370.c: Include tm_p.h.  Fix compile time warnings.
16381
16382         * i370.h: Move prototypes to i370-protos.h.  Fix compile time
16383         warnings.
16384
16385         * i370.md: Likewise.
16386
16387 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16388
16389         * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS.
16390         (target_isinf, target_isnan, eisnan): Mark parameter with
16391         ATTRIBUTE_UNUSED.
16392         (eiisinf): Wrap in INFINITY.
16393         (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY.
16394         (ibmtoe): Remove unused variable `rndsav'.
16395
16396 Wed Jan 19 20:23:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
16397
16398         * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis.
16399         (GO_IF_LEGITIMATE_ADDRESS): Added missing tab.
16400
16401 2000-01-19  Zack Weinberg  <zack@wolery.cumb.org>
16402
16403         * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o.
16404         * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes.
16405         (fix_char_macro_defines, fix_char_macro_uses): New functions.
16406
16407         * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp.
16408         Recognize Emacs mode markers also.
16409         * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of
16410         C++ comments in C++ headers.  Call is_cxx_header only if
16411         necessary.
16412
16413         * fixinc/inclhack.def (avoid_bool): Add select for the problem and
16414         bypass for ncurses.
16415         (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with...
16416         (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes):
16417         ... these, which use the new C fixes.
16418         (math_exception): Escape literal '+' in bypass expression.
16419
16420         * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh:
16421         Regenerate.
16422
16423 2000-01-19  Geoff Keating  <geoffk@cygnus.com>
16424
16425         * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs
16426         inside the MEM.
16427
16428 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16429
16430         * loop.c (loop_optimize): Allocate loop_info structure for each loop
16431         prior to calling scan_loop.
16432
16433 Wed Jan 19 19:54:38 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
16434
16435         * sh.c (find_barrier, gen_block_redirect): Fix indentation.
16436         (split_branches, calc_live_regs): Likewise.
16437
16438 Wed Jan 19 19:12:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
16439
16440         * sh.md (fpu_single, fp_mode): New attributes.
16441
16442 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16443
16444         * loop.c (current_loop_info): Renamed from loop_info_data
16445         and changed to a pointer.
16446         (loop_optimize): Allocate loop_info structure for each loop
16447         and initialise to zero.
16448         (scan_loop): Set current_loop_info.
16449
16450         * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set
16451         on iteration_var.
16452
16453 2000-01-19  Richard Henderson  <rth@cygnus.com>
16454
16455         * stupid.c: Die die die.
16456         * Makefile.in (OBJS): Remove stupid.o.
16457         (stupid.o): Likewise.
16458
16459         * except.c (emit_eh_context): Don't emit USEs for stupid.
16460         * explow.c (probe_stack_range): Likewise.
16461         * flags.h (obey_regdecls): Remove.
16462         * flow.c (find_basic_blocks): Don't run try_merge_blocks
16463         when not optimizing.
16464         (life_analysis): Limit data collection when not optimizing.
16465         (mark_regs_live_at_end): Always mark the return value registers.
16466         (mark_used_regs): Remove dummy RETURN case.
16467         (print_rtl_with_bb): Don't consult obey_regdecls.
16468         * function.c (use_variable, use_variable_after): Remove.
16469         (assign_parms): Consult optimize not obey_regdecls.
16470         (expand_function_start): Don't emit USEs for stupid.
16471         (expand_function_end): Likewise.
16472         * global.c (build_insn_chain): Export.
16473         * integrate.c (expand_inline_function): Kill return-value USE
16474         handling code.
16475         * jump.c (jump_optimize_1): Do simple jump optimizations and
16476         dead code elimination.
16477         (calculate_can_reach_end): Remove check_deleted argument.
16478         (delete_insn): Patch out insns even when not optimizing.
16479         * local-alloc.c (block_alloc): Don't do tying when not optimizing.
16480         * rtl.h (use_variable, use_variable_after): Remove declarations.
16481         (build_insn_chain): Declare.
16482         * stmt.c (expand_value_return): Don't emit USEs for stupid.
16483         (expand_end_bindings): Likewise.
16484         (expand_decl): Likewise.  Consult optimize not obey_regdecls.
16485         * toplev.c (obey_regdecls): Remove.
16486         (rest_of_compilation): Don't set it.  Kill stupid in favour of
16487         flow1, local-alloc, and reload.
16488         (main): Don't set obey_regdecls.
16489
16490         * config/nextstep.c (handle_pragma): Likewise.
16491
16492         * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid.
16493
16494         * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid.
16495
16496 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16497
16498         * alpha-protos.h: PROTO -> PARAMS.
16499         * alpha.c: Likewise.
16500         * elf.h: Likewise.
16501         * h8300.c: Likewise.
16502         * i386-protos.h: Likewise.
16503         * i386.c: Likewise.
16504         * m32r-protos.h: Likewise.
16505         * m32r.c: Likewise.
16506         * mips.c: Likewise.
16507         * mips.md: Likewise.
16508         * gmon-sol2.c: Likewise.
16509         * sparc.c: Likewise.
16510
16511 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16512
16513         * ns32k-protos.h: New file.
16514
16515         * ns32k.c: Fix compile time warnings.
16516
16517         * ns32k.h: Move prototypes to ns32k-protos.h.  Fix compile time
16518         warnings.
16519
16520         * ns32k.md: Likewise.
16521
16522 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16523
16524         * vax-protos.h: New file.
16525
16526         * vax.c: Fix compile time warnings.
16527
16528         * vax.h: Move prototypes to vax-protos.h.  Fix compile time
16529         warnings.
16530
16531         * vax.md: Likewise.
16532
16533         * vaxv.md: Likewise.
16534
16535 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16536
16537         * romp-protos.h: New file.
16538
16539         * romp.c: Fix compile time warnings.
16540
16541         * romp.h: Move prototypes to romp-protos.h.  Fix compile time
16542         warnings.
16543
16544         * romp.md: Likewise.
16545
16546 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16547
16548         * we32k-protos.h: New file.
16549
16550         * we32k.c: Fix compile time warnings.
16551
16552         * we32k.h: Move prototypes to we32k-protos.h.  Fix compile time
16553         warnings.
16554
16555 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16556
16557         * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
16558
16559         * except.c (eh_regs): Likewise.
16560
16561         * final.c (output_operand): Likewise.
16562
16563         * fold-const.c (target_isinf, target_isnan): Likewise.
16564
16565 Tue Jan 18 16:19:55 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
16566
16567         * i386.h (BIGGEST_ALIGNMENT): Set to 128.
16568         (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32)
16569
16570         * i386.md (memstr): Do not use rep stosb for counts divisible by 4
16571         when optimize_size.
16572         (clrstrsi): Rewrite.
16573         (strsethi, strsetqi): New expanders.
16574         (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns.
16575         (cmpstrsi): Emit compare insn before cmpstrsi_1
16576         (cmpstrsi_nz): use flags, set type to str, prefix_length to 1.
16577         (strlensi_1): Likewise.
16578         (cmpstrsi_1): Likewise; do not output compare.
16579         (strlen expander): Do not unroll when optimizing for size.
16580         (*subsi3_carry): Rename to subsi3_carry
16581         (addqi3_cc): New pattern.
16582         * i386.h (processor_costs): Add move_ratio field.
16583         (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE
16584         * i386.c (*_cost): Set move_ratio.
16585         (x86_unroll_strlen): Enable for Athlon, PPro and K6 too.
16586         (x86_expand_strlensi_1): Rewrite the main loop.
16587
16588 2000-01-17  Richard Henderson  <rth@cygnus.com>
16589
16590         * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode.
16591         * cse.c (find_comparison_args, fold_rtx): Likewise.
16592         * integrate.c (subst_constants): Likewise.
16593         * loop.c (get_condition): Likewise.
16594
16595         * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs.
16596
16597         * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF.
16598
16599 2000-01-18  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
16600
16601         * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST.
16602         (RESTORE_WARN_FLAGS): Unpack it.
16603         Change semantic type of extension to ttype.
16604         * c-common.c (split_specs_attrs): Expect an INTEGER_CST.
16605         * c-parse.y, c-parse.c, objc/objc-parse.y,
16606         objc/objc-parse.c: Regenerate.
16607
16608 2000-01-17  Zack Weinberg  <zack@wolery.cumb.org>
16609
16610         * fixinc/fixlib.c: Add copyright notice.
16611         (compile_re): New function.
16612         * fixinc/fixlib.h: Prototype compile_re.
16613
16614         * fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c:
16615         Use compile_re to compile regular expressions.
16616
16617         * fixinc/fixincl.c (egrep_test): Don't bother asking regexec
16618         where the pattern matched.
16619
16620         * fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy,
16621         use 'replace'.
16622         (ultrix_ansi_compat): Likewise.
16623         (interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test,
16624         add egrep test.
16625         (interactv_add2, interactv_add3): Delete.
16626         (x11_sprintf): Don't use filename glob.
16627         * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh:
16628         Regenerate.
16629
16630 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16631
16632         * print-rtl.c: PROTO -> PARAMS.
16633         * real.c: Likewise.
16634         * reg-stack.c: Likewise.
16635         * resource.c: Likewise.
16636         * sdbout.h: Likewise.
16637         * simplify-rtx.c: Likewise.
16638         * stor-layout.c: Likewise.
16639         * stupid.c: Likewise.
16640         * xcoffout.c: Likewise.
16641         * xcoffout.h: Likewise.
16642
16643 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16644
16645         * toplev.c: PROTO -> PARAMS.
16646         * toplev.h: Likewise.
16647         * tree.c: Likewise.
16648         * tree.h: Likewise.
16649         * unroll.c: Likewise.
16650         * varasm.c: Likewise.
16651         * varray.c: Likewise.
16652         * varray.h: Likewise.
16653
16654 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16655
16656         * reload.c: PROTO -> PARAMS.
16657         * reload.h: Likewise.
16658         * reload1.c: Likewise.
16659         * reorg.c: Likewise.
16660         * resource.h: Likewise.
16661         * rtl.c: Likewise.
16662         * rtl.h: Likewise.
16663         * rtlanal.c: Likewise.
16664         * sbitmap.h: Likewise.
16665         * sdbout.c: Likewise.
16666         * stack.h: Likewise.
16667         * stmt.c: Likewise.
16668         * system.h: Likewise.
16669
16670 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16671
16672         * machmode.h: PROTO -> PARAMS.
16673         * mbchar.h: Likewise.
16674         * mips-tdump.c: Likewise.
16675         * mips-tfile.c: Likewise.
16676         * optabs.c: Likewise.
16677         * output.h: Likewise.
16678         * prefix.c: Likewise.
16679         * profile.c: Likewise.
16680         * protoize.c: Likewise.
16681         * real.h: Likewise.
16682         * recog.c: Likewise.
16683         * recog.h: Likewise.
16684         * regclass.c: Likewise.
16685         * regmove.c: Likewise.
16686         * regs.h: Likewise.
16687
16688 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16689
16690         * ggc-common.c: PROTO -> PARAMS.
16691         * ggc-page.c: Likewise.
16692         * ggc-simple.c: Likewise.
16693         * ggc.h: Likewise.
16694         * global.c: Likewise.
16695         * graph.c: Likewise.
16696         * gthr-win32.h: Likewise.
16697         * haifa-sched.c: Likewise.
16698         * halfpic.h: Likewise.
16699         * integrate.c: Likewise.
16700         * integrate.h: Likewise.
16701         * jump.c: Likewise.
16702         * lcm.c: Likewise.
16703         * local-alloc.c: Likewise.
16704         * loop.c: Likewise.
16705         * loop.h: Likewise.
16706
16707 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16708
16709         * genattr.c: PROTO -> PARAMS.
16710         * genattrtab.c: Likewise.
16711         * gencheck.c: Likewise.
16712         * gencodes.c: Likewise.
16713         * genconfig.c: Likewise.
16714         * genemit.c: Likewise.
16715         * genextract.c: Likewise.
16716         * genflags.c: Likewise.
16717         * gengenrtl.c: Likewise.
16718         * genopinit.c: Likewise.
16719         * genoutput.c: Likewise.
16720         * genpeep.c: Likewise.
16721         * genrecog.c: Likewise.
16722
16723 2000-01-16  Mark Mitchell  <mark@codesourcery.com>
16724
16725         * tree.h (BINFO_VPTR_FIELD): Augment documentation.
16726
16727 2000-01-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
16728
16729         * aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro.
16730         * configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP.
16731         * ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO.
16732         * configure, config.in: Rebuilt.
16733
16734 2000-01-16  Zack Weinberg  <zack@wolery.cumb.org>
16735
16736         * config/i386/i386.md: Add peephole to merge successive stack
16737         adjusts.
16738
16739 Sat Jan 15 15:41:14 EST 2000  John Wehle  (john@feith.com)
16740
16741         * gcse.c (insert_insn_end_bb): Use emit_block_insn_before
16742         instead of emit_insn_before.  Also handle NOTE_INSN_BASIC_BLOCK
16743         when walking backwards to find all the parameter loads when
16744         the basic block ends in a call.
16745
16746 2000-01-15  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16747
16748         * loop.c (this_loop_info): Delete.
16749         (uid_loop): Add in place of uid_loop_num.  All uses updated.
16750         (loop_number_exit_count): Delete and replace with entry in loop
16751         structure.  All uses updated.
16752         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
16753         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
16754         (loop_outer_loop): Likewise.
16755         (loop_invalid, loop_number_exit_labels): Likewise.
16756         (loop_used_count_register): Delete and replace with entry in
16757         loop_info structure.
16758         (find_and_verify_loops): Add loops argument.
16759         (verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start,
16760         loop_end, etc. arguments with loop structure pointer.  All callers
16761         changed.
16762         (loop_reg_used_before_p, scan_loop, strength_reduce): Likewise.
16763         (check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise.
16764         (load_mems_and_recount_loop_regs_set, load_mems): Likewise.
16765         (insert_bct): Likewise.
16766         (basic_induction_var): New argument level.
16767         * loop.h (struct loop_info): Delete fields num, loops_enclosed,
16768         vtop, and cont.  Add used_count_register.
16769         (uid_loop): Delete declaration.
16770         (loop_number_exit_count): Likewise.
16771         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
16772         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
16773         (loop_outer_loop, loop_used_count_register): Likewise.
16774         (loop_invalid, loop_number_exit_labels): Likewise.
16775         (unroll_loop): Replace loop_start and loop_end arguments
16776         with loop structure pointer.
16777         (loop_precondition_p, loop_iterations): Likewise.
16778         Include basic-block.h.
16779         * unroll.c: (unroll_loop): Replace loop_start and loop_end arguments
16780         with loop structure pointer.
16781         (loop_precondition_p, loop_iterations): Likewise.
16782         * basic-block.h (struct loop): New entries vtop, cont,
16783         cont_dominator, start, end, top, scan_start, exit_labels,
16784         exit_count.
16785         * Makefile.in (LOOP_H): Add basic-block.h to dependencies.
16786
16787 2000-01-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
16788
16789         * defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT.
16790
16791 2000-01-14  Nathan Sidwell  <sidwell@codesourcery.com>
16792
16793         * config.in: Rebuilt for 2000-01-13 change to acconfig.h.
16794
16795 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16796
16797         * pdp11-protos.h: New file.
16798
16799         * pdp11.c: Include tm_p.h.  Add static prototypes.  Fix compile
16800         time warnings.
16801
16802         * pdp11.h: Move prototypes to pdp11-protos.h.  Fix compile time
16803         warnings.
16804
16805         * pdp11.md: Likewise.
16806
16807         * 2bsd.h: Likewise.
16808
16809 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16810
16811         * mn10300-protos.h: New file.
16812
16813         * mn10300.c: Include tm_p.h.  Add static prototypes.  Fix compile
16814         time warnings.
16815
16816         * mn10300.h: Move prototypes to mn10300-protos.h.  Fix compile time
16817         warnings.
16818
16819         * mn10300.md: Likewise.
16820
16821 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16822
16823         * mn10200-protos.h: New file.
16824
16825         * mn10200.c: Include tm_p.h.  Add static prototypes.  Fix compile
16826         time warnings.
16827
16828         * mn10200.h: Move prototypes to mn10200-protos.h.  Fix compile time
16829         warnings.
16830
16831         * mn10200.md: Likewise.
16832
16833 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16834
16835         * h8300-protos.h: New file.
16836
16837         * h8300.c: Include tm_p.h.  Add static prototypes.  Fix compile
16838         time warnings.
16839
16840         * h8300.h: Move prototypes to h8300-protos.h.  Fix compile time
16841         warnings.
16842
16843         * h8300.md: Likewise.
16844
16845 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16846
16847         * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED.
16848         (asm_emit_uninitialised): Likewise.
16849
16850 2000-01-13  Gavin Romig-Koch  <gavin@cygnus.com>
16851
16852         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New.
16853         * config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE.
16854
16855 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
16856
16857         * config/mips/mips.c (override_options): Don't turn on extra
16858         alignment for mips16.
16859
16860 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
16861
16862         * config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit
16863         eabi, and make sure queued POSTINCREMENT rtl is emitted at
16864         the right point.
16865
16866 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
16867
16868         * builtins.c (PAD_VARARGS_DOWN): Define.
16869         (std_expand_builtin_va_arg): Use the above macro.
16870         * config/mips/mips.h (PAD_VARARGS_DOWN): Define.
16871         * tm.texi (Register Arguments): Document the above macro.
16872
16873 2000-01-14  Nick Clifton  <nickc@cygnus.com>
16874
16875         * emit-rtl.c (emit_insn): If checking is enabled, make sure
16876         that this function has not been used to emit a jump
16877         instruction.
16878
16879         * jump.c (return_jump_1): Cope with being passed a null rtx.
16880
16881 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16882
16883         * eh-common.h: PROTO -> PARAMS.
16884         * emit-rtl.c: Likewise.
16885         * errors.c: Likewise.
16886         * errors.h: Likewise.
16887         * except.c: Likewise.
16888         * except.h: Likewise.
16889         * explow.c: Likewise.
16890         * expmed.c: Likewise.
16891         * expr.c: Likewise.
16892         * expr.h: Likewise.
16893         * final.c: Likewise.
16894         * fix-header.c: Likewise.
16895         * flow.c: Likewise.
16896         * fold-const.c: Likewise.
16897         * function.c: Likewise.
16898         * function.h: Likewise.
16899         * gcc.c: Likewise.
16900         * gcov-io.h: Likewise.
16901         * gcov.c: Likewise.
16902         * gcse.c: Likewise.
16903
16904 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16905
16906         * sh-protos.h: New file.
16907
16908         * sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h.
16909         Add static prototypes.  Fix compile time warnings.
16910
16911         * sh.h: Move prototypes to sh-protos.h.  Fix compile time warnings.
16912         * sh.md: Likewise.
16913         * elf.h: Likewise.
16914
16915 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16916
16917         * arc-protos.h: New file.
16918
16919         * arc.c: Include tm_p.h.  Add static prototypes.  Fix compile
16920         time warnings.
16921
16922         * arc.h: Move prototypes to arc-protos.h.  Fix compile time
16923         warnings.
16924
16925         * arc.md: Likewise.
16926
16927 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16928
16929         * dsp16xx-protos.h: New file.
16930
16931         * dsp16xx.c: Include tm_p.h.  Add static prototypes.  Fix compile
16932         time warnings.
16933
16934         * dsp16xx.h: Move prototypes to dsp16xx-protos.h.  Fix compile time
16935         warnings.
16936
16937         * dsp16xx.md: Likewise.
16938
16939 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16940
16941         * convex-protos.h: New file.
16942
16943         * convex.c: Include tm_p.h.  Add static prototypes.  Fix compile
16944         time warnings.
16945
16946         * convex.h: Move prototypes to convex-protos.h.  Fix compile time
16947         warnings.
16948
16949 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16950
16951         * elxsi-protos.h: New file.
16952
16953         * elxsi.c: Include tm_p.h.  Add static prototypes.  Fix compile
16954         time warnings.
16955
16956         * elxsi.h: Move prototypes to elxsi-protos.h.  Fix compile time
16957         warnings.
16958
16959         * elxsi.md: Likewise.
16960
16961 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
16962
16963         * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant
16964         case for moving from HI/LO/HI_LO_REG.  This makes the behavior
16965         match the comment for MIPS16.
16966
16967 Fri Jan 14 00:28:06 2000  Jeffrey A Law  (law@cygnus.com)
16968
16969         * flow.c (split_edge): Do not call set_block_for_insn if we
16970         do not have a basic_block_for_insn structure.
16971
16972         * fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain
16973         and destination functions are 32bit aligned within the trampoline.
16974         (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes.
16975         (TRAMPOLINE_ALIGNMENT): Define.
16976
16977         * cse.c (cse_insn): When changing (set (pc) (reg)) to
16978         (set (pc) (label_ref)), verify the change creates a valid insn.
16979
16980         * fr30.c (call_operand): Tighten and rework to match rules for
16981         call RTL expressions.
16982         * fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs.
16983         * fr30.md (call patterns): Improve constraints.
16984
16985 Thu Jan 13 23:44:03 2000  Richard Henderson  <rth@cygnus.com>
16986
16987         * fr30.c (fr30_expand_epilogue): Revert last change.
16988         Use emit_jump_insn for the return insn.
16989
16990 Thu Jan 13 14:46:03 2000  Jason Eckhardt  <jle@cygnus.com>
16991                           Stan Cox  <scox@cygnus.com>
16992
16993         * predict.c: New file. Preliminary infrastructure work for static
16994         branch prediction and basic block reordering.
16995         * basic-block.h: Add prototype for estimate_probability.
16996         * Makefile.in: Add rules for predict.o.
16997
16998 2000-01-13  Jason Merrill  <jason@yorick.cygnus.com>
16999
17000         * fixincludes (va_list): Use __not_va_list__ for the dummy.
17001         * fixinc/*: Likewise.
17002
17003 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17004
17005         * cccp.c: PROTO -> PARAMS.
17006         * cexp.y: Likewise.
17007         * collect2.c: Likewise.
17008         * combine.c: Likewise.
17009         * convert.h: Likewise.
17010         * cse.c: Likewise.
17011         * dbxout.c: Likewise.
17012         * dbxout.h: Likewise.
17013         * diagnostic.c: Likewise.
17014         * doprint.c: Likewise.
17015         * dwarf2out.c: Likewise.
17016         * dwarf2out.h: Likewise.
17017         * dwarfout.c: Likewise.
17018         * dwarfout.h: Likewise.
17019         * dyn-string.h: Likewise.
17020
17021 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17022
17023         * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in
17024         macro conditionals guarding use.
17025
17026         * dwarf2out.c: Include "tm_p.h".
17027
17028         * function.c (locate_and_pad_parm): Mark parameter with
17029         ATTRIBUTE_UNUSED.
17030         (expand_function_end): Likewise for variable `context'.
17031
17032         * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return.
17033
17034 2000-01-13  Nick Clifton  <nickc@cygnus.com>
17035
17036         * config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed
17037         register to prevent compile time warnings.
17038
17039 2000-01-13  Zack Weinberg  <zack@wolery.cumb.org>
17040
17041         * longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv'
17042         to avoid -Wtraditional warning.
17043
17044 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17045
17046         * 1750a-protos.h: New file.
17047
17048         * 1750a.c: Include tm_p.h.  Add static prototypes.  Fix compile
17049         time warnings.
17050
17051         * 1750a.h: Move prototypes to 1750a-protos.h.  Fix compile time
17052         warnings.
17053
17054         * 1750a.md: Likewise.
17055
17056 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17057
17058         * a29k-protos.h: New file.
17059
17060         * a29k.c: Include tm_p.h.  Add static prototypes.  Fix compile
17061         time warnings.
17062
17063         * a29k.h: Move prototypes to a29k-protos.h.  Fix compile time
17064         warnings.
17065
17066 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17067
17068         * clipper-protos.h: New file.
17069
17070         * clipper.c: Include tm_p.h.  Add static prototypes.  Fix compile
17071         time warnings.
17072
17073         * clipper.h: Move prototypes to clipper-protos.h.  Fix compile time
17074         warnings.
17075
17076 Thu Jan 13 16:03:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
17077
17078         * reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS.
17079
17080 2000-01-13  Nathan Sidwell  <sidwell@codesourcery.com>
17081
17082         * configure.in (--enable-new-gxx-abi): New option.
17083         * acconfig.h (ENABLE_NEW_GXX_ABI): New define.
17084         * Makefile.in (GXX_ABI_FLAG): New variable.
17085         * configure: Regenerate.
17086
17087 2000-01-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17088
17089         * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK.
17090         * tm.texi (FORCE_STRUCT_BLK): Document.
17091         * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro.
17092
17093 Wed Jan 12 23:12:47 2000  Hans-Peter Nilsson  <hp@axis.com>
17094
17095         * config/ns32k/ns32k.md: Revert Jan 9 change.
17096
17097         * genrecog.c (maybe_both_true_2): Do not compare a predicate-test
17098         to a mode-test, if the predicate is address_operand.
17099
17100 Wed Jan 12 22:34:00 2000  Jeffrey A Law  (law@cygnus.com)
17101
17102         * combine.c (if_then_else_cond): Be careful about what kinds
17103         of RTL expressions are passed to operand_subword.
17104
17105         * flow.c (split_edge): If we have to insert a new jump, make
17106         sure to associate it with a basic block.
17107
17108         * flow.c (commit_one_edge_insertion): A block with one successor
17109         can end in a JUMP_INSN that is not a simplejump.
17110
17111 2000-01-12  Robert Lipe  <robertl@sco.com>
17112
17113         * i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor".
17114         (BUILD_VA_LIST_TYPE): Define.
17115         (EH_FRAME_SECTION_ASM_OP): Explictly define to better interact
17116         with crtstuff.c.
17117
17118 2000-01-12  Jason Merrill  <jason@casey.cygnus.com>
17119
17120         * cccp.c (do_pragma): Add cast to (char *).
17121
17122 2000-01-12  Richard Henderson  <rth@cygnus.com>
17123             Fred Fish  <fnf@be.com>
17124             Jason Merrill  <jason@cygnus.com>
17125
17126         * configure.in (i?86-*-beos{pe,elf,}*): Recognize.
17127         * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files.
17128         * i386/beos-elf.h, i386/beos-pe.h: New files.
17129
17130         * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New.
17131         * cross-make (SYSTEM_HEADER_DIR): Define using
17132         CROSS_SYSTEM_HEADER_DIR.
17133
17134         * gcc.c (LIBRARY_PATH_ENV): Provide default.
17135         (process_command): Use it.
17136         (main): Likewise.  Kill trailing = from env vars.
17137         (build_search_list): Put it back.
17138         * collect2.c (main): Use LIBRARY_PATH_ENV.
17139
17140         * configure.in (GCC_NEED_DECLARATIONS): Add environ.
17141         * toplev.c: Use NEED_DECLARATION_ENVIRON.
17142
17143         * tm.texi (Frame Layout): Document SMALL_STACK.
17144         * c-common.c (c_common_nodes_and_builtins): Check it.
17145
17146         * system.h: Undef alloca after including glibc's <stdlib.h>,
17147         if USE_C_ALLOCA is defined.
17148
17149         * gcc.c (set_input): New fn.
17150         (main): After all input files are compiled, reset the input file
17151         info to the first.
17152
17153         * aclocal.m4 (rindex, index): If already defined, don't attempt
17154         to redefine.
17155
17156         * ginclude/varargs.h: (__va_list__): Define ifndef.
17157         * ginclude/stdarg.h: Likewise.
17158
17159         * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int
17160         instead of unsigned char.
17161
17162         * hash.h (true, false, boolean): Undef before enum.
17163
17164         * expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be
17165         proper type of "HOST_WIDE_INT *", rather than their natural type of
17166         "unsigned HOST_WIDE_INT *".
17167
17168 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17169
17170         * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets.
17171
17172         * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED.
17173
17174         * regclass.c (choose_hard_reg_mode): Likewise.
17175
17176         * reload.c (find_valid_class, strict_memory_address_p): Likewise.
17177
17178         * reorg.c (optimize_skip): Wrap prototype in macro conditionals.
17179
17180 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17181
17182         * c-common.c: PROTO -> PARAMS.
17183         * c-common.h: Likewise.
17184         * c-decl.c: Likewise.
17185         * c-iterate.c: Likewise.
17186         * c-lang.c: Likewise.
17187         * c-lex.c: Likewise.
17188         * c-lex.h: Likewise.
17189         * c-parse.in: Likewise.
17190         * c-pragma.c: Likewise.
17191         * c-pragma.h: Likewise.
17192         * c-tree.h: Likewise.
17193         * c-typeck.c: Likewise.
17194         * objc/objc-act.c: Likewise.
17195         * objc/objc-act.h: Likewise.
17196
17197 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17198
17199         * m88k-protos.h: New file.
17200
17201         * m88k.c: Include tm_p.h.  Add static prototypes.  Fix compile
17202         time warnings.
17203
17204         * m88k.h: Move prototypes to m88k-protos.h.  Fix compile time warnings.
17205
17206         * m88k.md: Likewise.
17207
17208         * tekXD88.h: Likewise.
17209
17210 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17211
17212         * m68k-protos.h: New file.
17213
17214         * m68k.c: Include tm_p.h.  Add static prototypes.  Fix compile
17215         time warnings.
17216
17217         * m68k.h: Move prototypes to m68k-protos.h.  Fix compile time warnings.
17218
17219         * mot3300.h: Likewise.
17220
17221 2000-01-12  Richard Earnshaw <rearnsha@arm.com>
17222
17223         * haifa-sched.c (split_edges): Pass edgeset_size as second arg to
17224         extract_bitlst.
17225         (extract_bitlist): Declare bitlen.
17226
17227 2000-01-12  Zack Weinberg  <zack@wolery.cumb.org
17228
17229         * cccp.c: Accept and ignore -lang-fortran.
17230
17231         * c-typeck.c (build_c_cast): Issue -Wcast-qual warnings if the
17232         qualifiers don't match at any level of pointerness.
17233
17234 2000-01-12  Robert Lipe  <robertl@sco.com>
17235
17236         * i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT.
17237
17238 2000-01-12  Bernd Schmidt  <bernds@cygnus.co.uk>
17239
17240         * reload1.c (reload_reg_unavailable): New static variable.
17241         (reload_reg_free_p): Test it.
17242         (reload_reg_free_for_value_p): Test it instead of
17243         reload_reg_used.
17244         (choose_reload_regs_init): Compute it.
17245
17246 Wed Jan 12 03:24:41 2000  Toshiyasu Morita (toshi.morita@sega.com)
17247
17248         * reorg.c (fill_slots_from_thread): Check modified_in_p
17249         before replacing.
17250
17251 Wed Jan 12 03:20:31 2000  John Marshall <john_w_marshall@palm.com>
17252
17253         * gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format
17254         these nodes even if INTERNALS is not set.
17255
17256 Wed Jan 12 09:39:22 2000  Nick Burrett  <nick.burrett@btinternet.com>
17257
17258         * gcse.c (delete_null_pointer_checks_1): Cope when
17259         get_condition cannot determine the condition.
17260
17261 2000-01-12  Gabriel Dos Reis  <gdr@codesourcery.com>
17262
17263         * toplev.h (set_message_length): Declare.
17264
17265         * diagnostic.c (obstack_chunk_alloc): Define macro.
17266         (obstack_chunk_free): Likewise.
17267         (struct output_buffer): New data structure.
17268         (vmessage): Remove.
17269         (output_maximum_width): New variable.
17270         (doing_line_wrapping, set_message_length, init_output_buffer,
17271         get_output_prefix, output_space_left, emit_output_prefix,
17272         output_newline, output_append, output_puts, dump_output,
17273         vbuild_message_string, build_message_string, build_location_prefix,
17274         voutput_notice, output_printf, line_wrapper_printf,
17275         vline_wrapper_message_with_location):  New functions. Implement
17276         automatic line wrapping.
17277         (v_message_with_decl): Make it handle automatic line wrapping.
17278         (v_error_with_file_and_line): Likewise.
17279         (v_warning_with_file_and_line): Likewise.
17280         (announce_function): Likewise.
17281         (default_print_error_function): Likewise.
17282
17283 2000-01-11 16:24 -0800  Zack Weinberg  <zack@wolery.cumb.org>
17284
17285         * cpplib.h (struct cpp_options): Change lang_asm to char.
17286         Add lang_fortran.
17287         * cppinit.c (builtin_array): Take out __STDC_VERSION__, it's
17288         done in cpp_handle_option now.
17289         (initialize_builtins): Take out special case code used only by
17290         __STDC_VERSION__.
17291         (cpp_handle_option): Turn off trigraphs and trigraph warnings
17292         if -traditional.  Recognize -lang-fortran and set
17293         lang_fortran, also turn off cplusplus_comments.
17294         (print_help): Document -lang-fortran.
17295         * cpplib.c (handle_directive): Ignore `# 123 "file"' if
17296         lang_asm. Ignore all directives other than `# 123 "file"' if
17297         CPP_PREPROCESSED.
17298         (cpp_get_token): If -traditional, don't recognize directives
17299         unless the # is in column 1.
17300         (parse_string): If lang_fortran or lang_asm, silently
17301         terminate strings ('' or "") at end of line.
17302         Remove unnecessary braces.
17303
17304 2000-01-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17305             Richard Henderson  <rth@cygnus.com>
17306
17307         * resource.c (mark_referenced_resources): Mark a set strict_low_part
17308         as used.
17309         * config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set
17310         strict_low_part when possible.
17311
17312 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17313
17314         * alias.c: PROTO -> PARAMS.
17315         * basic-block.h: Likewise.
17316         * bitmap.c: Likewise.
17317         * bitmap.h: Likewise.
17318         * builtins.c: Likewise.
17319         * c-aux-info.c: Likewise.
17320         * caller-save.c: Likewise.
17321         * calls.c: Likewise.
17322
17323 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17324
17325         * Makefile.in (toplev.o): Depend on regs.h.
17326
17327         * output.h (tdesc_section): Prototype.
17328
17329         * regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED.
17330
17331         * sdbout.c: Include "tm_p.h".
17332
17333         * toplev.c: Include "regs.h".
17334
17335 Tue Jan 11 11:37:58 2000  Mike Stump  <mrs@wrs.com>
17336
17337         * unroll.c (unroll_loop): Add EH support.
17338
17339 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17340
17341         * pa-protos.h: New file.
17342
17343         * pa.c: Include recog.h and tm_p.h.
17344         (compute_zdepwi_operands, compute_movstrsi_length,
17345         remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d,
17346         find_addr_reg, import_milli): Add static prototypes.
17347         (pa_cpu_string, pa_arch_string): Constify a char*.
17348         (legitimize_pic_address): Pass argument `mode' to pic_label_operand.
17349         (read_only_operand): Add argument `mode'.
17350         (singlemove_string, output_move_double, output_fp_move_double,
17351         output_block_move, output_and, output_ior, output_ascii,
17352         remove_useless_addtr_insns, milli_names, output_mul_insn,
17353         output_div_insn, output_mod_insn, output_arg_descriptor,
17354         output_cbranch, output_bb, output_bvb, output_dbra, ,
17355         output_millicode_call, output_call, hppa_encode_label,
17356         output_parallel_movb, output_parallel_addb): Constify a char*.
17357         (hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED.
17358         (output_parallel_addb): Remove extra arg to `constrain_operands'
17359
17360         * pa.h:  Move all prototypes to pa-protos.h.
17361         (pa_cpu_string, pa_arch_string): Constify a char*.
17362         (LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument.
17363
17364         * pa.md: Call `function_label_operand' with mode argument.
17365         Likewise for `read_only_operand'.
17366         Fix nesting of parens in call to `symbolic_operand'.
17367
17368 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17369
17370         * i860-protos.h: New file.
17371
17372         * i860.c: Include tm_p.h.  Add static prototypes.  Fix compile
17373         time warnings.
17374
17375         * i860.h: Move prototypes to i860-protos.h.  Fix compile time warnings.
17376
17377         * i860.md: Likewise.
17378
17379 Tue Jan 11 18:59:35 MET 2000  Jan Hubicka <jh@suse.cz>
17380
17381         * i386.md (movstrsi expander): Rewrite.
17382         (movstrsi_1 insn): Deleted.
17383         (strmovhi, strmovqi expander): New expanders.
17384         (movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns.
17385         * i386.c (x86_single_stringop): New global variable.
17386         * i386.h (x86_single_stringop): Declare.
17387         (TARGET_SINGLE_STRINGOP): New macro.
17388
17389 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
17390
17391         * config/mips/mips.c (mips_va_arg): For EABI, emit the queued
17392         integer vararg POSTINCREMENT before the destination of the jump
17393         for the hard fp case.
17394         (function_arg_pass_by_reference): Pass a copy of CUM to
17395         FUNCTION_ARG.
17396
17397         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check
17398         for CONSTANT_ADDRESS_P above while loop for subreg.
17399
17400 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
17401
17402         * flow.c (propagate_block): When a prologue/epilogue insn
17403         is marked dead, unconditionally clear libcall_is_dead and
17404         insn_is_dead, and only dump rtl if warnings aren't being
17405         suppressed.
17406
17407 Tue Jan 11 16:26:47 MET 2000  Jan Hubicka <jh@suse.cz>
17408
17409         * i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD.
17410         * i386.md (FIRST_PSEUDO_REGISTER): Set to 20.
17411         (FIXED_REGISTERS): Set dirflag as fixed.
17412         (CALL_USED_REGISTERS): Set dirflag as used.
17413         (REG_ALLOC_ORDER): Set dirflag as last one.
17414         (DIRFLAG_REG): New macro.
17415         (MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility.
17416         (HI_REGISTER_NAMES): Add dirflag.
17417         (DEBUF_PRINT_REG): Handle dirflag.
17418         * i386.md (type attribute): New cld and str types.
17419         (length_opcode attribute): Set cld and str to 1.
17420         (memory attribute): Set str to unknown - it is not clear from the
17421         patterns.
17422         (pent_np function unit): Prefixed string operations takes 12 cycles
17423         minimally; cld takes 2 cycles.
17424         (ppro_uops attribute): Str is "many" and cld is "few".
17425         (ppro_p0 unit): Handle cld here.
17426         (k6_alux unit): Handle cld and str types.
17427         (k6_load unit): It is ocupied by str opcodes.
17428         (k6_store unit): It is ocupied by str opcodes.
17429         (athlon_decode): Str is vector decoded.
17430         (athlon_ieu): Handle str and cld.
17431         (cld pattern): New.
17432         (movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction
17433         (movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1,
17434         cmpstrsi_nz_1 insn): Do not output cld instruction
17435
17436 Tue Jan 11 06:14:39 2000  David Starner <dstarner98@aasaa.ofe.org>
17437
17438         * gcc.texi (G++ and GCC): Add Java and Chill.
17439         (Bug Critera): Don't list languages.
17440
17441         * gcc.texi (Incompatibilities): No longer claim most C compilers
17442         are K&R.
17443
17444         * gcc.texi (G++ and GCC): Update other front-ends list.
17445
17446 Tue Jan 11 05:49:01 2000  Jeffrey A Law  (law@cygnus.com)
17447
17448         * i386.c (ix86_expand_setcc): Fix typo.
17449         (ix86_expand_movcc): Similarly.
17450
17451         * Band-aid until haifa's bitset implementation is nuked.
17452         * haifa-sched.c (extract_bitlst): New parameter for size of the
17453         bitset in bits.  All callers changed.  Avoid looking at undefined
17454         bits in the bitset.
17455         (edgeset_bitsize): New variable.
17456         (schedule_region): Initialize edgeset_bitsize.
17457
17458 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17459
17460         * Makefile.in (optabs.o): Depend on real.h
17461         (resource.o): Depend on insn-attr.h
17462
17463         * builtins.c (result_vector): Wrap prototype in macro conditions
17464         governing definition and use.
17465
17466         * c-common.c: Include tm_p.h.
17467
17468         * c-lex.c: Likewise.
17469
17470         * elfos.h: Constify a char*.
17471
17472         * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length.
17473         (get_attr_length, shorten_branches, profile_after_prologue): Mark
17474         parameter with ATTRIBUTE_UNUSED.
17475
17476         * fold-const.c (exact_real_inverse): Wrap variable `i' in
17477         CHECK_FLOAT_VALUE.
17478
17479         * haifa-sched.c (schedule_insns): Mark parameter with
17480         ATTRIBUTE_UNUSED.
17481
17482         * optabs.c: Include real.h.
17483
17484         * real.h (ereal_atof): Add prototype arguments.
17485
17486         * resource.c: Include insn-attr.h.
17487
17488         * sdbout.c (sdbout_queue_anonymous_type,
17489         sdbout_dequeue_anonymous_types): Wrap in macro
17490         SDB_ALLOW_FORWARD_REFERENCES.
17491         (sdbout_init, sdbout_start_new_source_file): Mark parameter with
17492         ATTRIBUTE_UNUSED.
17493
17494         * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return.
17495
17496         * stupid.c: Include tm_p.h.
17497
17498         * tree.c (real_value_from_int_cst): Mark parameter with
17499         ATTRIBUTE_UNUSED.
17500
17501 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17502
17503         * i960-protos.h: New file.
17504
17505         * i960.c: Include tm_p.h.  Add static prototypes.  Fix compile
17506         time warnings.
17507
17508         * i960.h: Move prototypes to i960-protos.h.  Fix compile time warnings.
17509
17510 2000-01-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17511
17512         * combine.c (expand_field_assignment): Do not discard SUBREGs
17513         while computing nonzero_bits.
17514
17515 2000-01-09  Nick Clifton  <nickc@cygnus.com>
17516
17517         * config/arm/arm.c: Fix compile time warnings about signed vs
17518         unsigned constants.
17519         * config/arm/arm.h: Fix compile time warnings about signed vs
17520         unsigned constants.
17521
17522 2000-01-09  Philip Blundell  <philb@gnu.org>
17523
17524         * config/arm/arm.c (output_return_instruction): Use `ldr' rather
17525         than `ldm' with only one register.
17526         * config/arm/arm.md (push_multi): Use `str' rather than `stm' with
17527         only one register.
17528
17529         * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is
17530         clobbered.
17531
17532 Sun Jan  9 17:50:23 2000  Hans-Peter Nilsson  <hp@axis.com>
17533
17534         * config/ns32k/ns32k.md (load or push effective address): Operand 1
17535         must have SImode.
17536
17537 2000-01-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17538
17539         * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around
17540         assignment used as truth value.
17541
17542         * function.c (assign_temp): Mark parameter `dont_promote' with
17543         ATTRIBUTE_UNUSED.  Wrap variable `unsignedp' with macro
17544         PROMOTE_FOR_CALL_ONLY.
17545
17546         * genrecog.c (write_subroutine): Mark variable `operands' with
17547         ATTRIBUTE_UNUSED.
17548
17549         * optabs.c (prepare_cmp_insn): Mark parameter `align' with
17550         ATTRIBUTE_UNUSED.
17551
17552         * sdbout.c (sdbout_init): Likewise for parameter `asm_file'.
17553         (sdbout_begin_block, sdbout_end_block): Likewise for `file'.
17554
17555         * toplev.c (note_deferral_of_defined_inline_function): Likewise
17556         for `decl'.
17557
17558 2000-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17559
17560         * config/c4x.h: Tidy up comments.
17561         * config/c4x.c: Likewise.
17562
17563 Sun Jan  9 01:02:55 EST 2000  John Wehle  (john@feith.com)
17564
17565         * fold-const.c (lshift_double, rshift_double): Handle
17566         shifting by 2 * HOST_BITS_PER_WIDE_INT correctly.
17567
17568 2000-01-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17569
17570         * toplev.c (rest_of_compilation): Initialize cse_not_expected as
17571         in prepare_function_start().
17572
17573 Sat Jan  8 12:12:46 2000  Nick Clifton  <nickc@cygnus.com>
17574
17575         * config/v850/v850.c (expand_epilogue): Interrupt functions no
17576         longer allocate extra stack for function calls.
17577
17578 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17579
17580         * config/c4x/c4x.md (*subqf3_set): Fix typo.
17581
17582 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17583
17584         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0.
17585
17586 2000-01-07  David Edelsohn  <edelsohn@gnu.org>
17587
17588         * rs6000.c (processor_target_table): Add power3 as alias for 630.
17589         * aix43.h: Revert Aug 2 change.
17590         (HAS_INIT_SECTION): Define, not visible yet.
17591         (LD_INIT_SWITCH): Define, not visible yet.
17592         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
17593
17594         * glimits.h (__LONG_MAX__): Recognize 64-bit AIX too.
17595
17596         * collect2.c (main): Expand ld2 size further.
17597         (export_object_lst): Cast assignment to avoid warning.
17598         (main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support.
17599         (scan_prog_file, COFF): Do not collect initialization or
17600         finalization functions generated for entire shared object if
17601         init/fini support present.
17602
17603 2000-01-07  Nick Clifton  <nickc@cygnus.com>
17604
17605         * config/elfos.h: Tidy up formatting of marcos.  Make sure
17606         that .section directives are always prefixed by a tab.
17607
17608         * config/svr4.h: Add #include "elfos.h" and remove duplicate
17609         definitions.
17610
17611 2000-01-07  Matt Austern  <austern@sgi.com>
17612
17613         * fold-const.c (real_hex_to_f): Remove duplicate declaration of
17614         expon.
17615
17616 Fri Jan  7 01:55:34 2000  Jeffrey A Law  (law@cygnus.com)
17617
17618         * Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of
17619         crtstuff.c.
17620         (crtbegin.o, s-crtS): Likewise.
17621
17622 2000-01-06  Richard Henderson  <rth@cygnus.com>
17623
17624         * alpha.md (adddi_2+1): Limit offset such that it will be
17625         loadable with a single ldah+lda pair.
17626         (adddi_2+2): Explicitly fail split if we can't make it work.
17627
17628 2000-01-06  Mumit Khan  <khan@xraylith.wisc.edu>
17629
17630         * protoize.c: Conditionally include unistd.h.
17631         (IS_SAME_PATH_CHAR): New macro.
17632         (IS_SAME_PATH): New macro.
17633         (CPLUS_FILE_SUFFIX): New macro.
17634         (cplus_suffix): New static variable.
17635         (is_abspath): New static function.
17636         (in_system_include_dir): Handle DOS style pathnames.
17637         (file_could_be_converted): Likewise.
17638         (file_normally_convertible): Likewise.
17639         (directory_specified_p): Likewise.
17640         (file_excluded_p): Likewise.
17641         (abspath): Likewise.
17642         (shortpath): Likewise.
17643         (referenced_file_is_newer): Likewise.
17644         (save_def_or_dec): Likewise.
17645         (do_processing): Likewise.
17646         (main): Likewise.
17647         (edit_file): Likewise. Use rename instead of link.
17648         (rename_c_file): Likewise. Don't rename syscalls file.
17649         (munge_compile_params): Define null device for DOS based systems.
17650         (process_aux_info_file): Use binary mode if appliable.
17651         (edit_file): Likewise.
17652         * invoke.texi (Running Protoize): Document C++ suffixes used.
17653
17654         * cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and
17655         IS_DIR_SEPARATOR macros.
17656         * collect2.c: Likewise.
17657         * cppinit.c: Likewise.
17658         * dwarf2out.c: Likewise.
17659         * gcc.c: Likewise.
17660         * gcov.c: Likewise.
17661         * prefix.c: Likewise.
17662         * rtl.c: Likewise.
17663         * toplev.c: Likewise.
17664         * system.h: And move to here.
17665
17666         * prefix.c (update_path): Fix typo in variable name.
17667
17668 2000-01-06  Richard Henderson  <rth@cygnus.com>
17669
17670         * flow.c (mark_set_1): Use loop_depth+1 as reference weight.
17671         (find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise.
17672         (count_reg_sets_1, count_reg_references): Likewise.
17673         (flow_loops_level_compute): Start counting actual loop depth at 1.
17674         (flow_loops_find): Likewise.
17675         * local-alloc.c (update_equiv_regs): Likewise.
17676         * regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change.
17677
17678 2000-01-06  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
17679
17680         * defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to
17681         FIRST_PSEUDO_REGISTER
17682         * dwarf2out.c: Don't include frame.h
17683         * dwarfout.c: Likewise
17684         * Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on
17685         frame.h
17686
17687 Thu Jan  6 13:44:59 CET 2000  Jan Hubicka  <jh@suse.cz>
17688
17689         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
17690         dead registers.
17691
17692         * i386.c (movsf splitter): Fix typo in my last checkin.
17693
17694 2000-01-05  Nick Clifton  <nickc@cygnus.com>
17695
17696         * varasm.c (IN_NAMED_SECTION): Allow targets to provide their
17697         own definition of this macro.
17698         (asm_emit_uninitialised): Invoke UNIQUE_SECTION if either
17699         flag_data_sections or UNIQUE_SECTION_P are true.
17700
17701         * tm.texi (UNIQUE_SECTION): Document that it can be called for
17702         unitialised data decls.
17703
17704         * config/i386/winnt.c (i386_pe_unique_section): Cope with
17705         being called for uninitialised data.
17706
17707         * config/i386/interix.c (i386_pe_unique_section): Cope with
17708         being called for uninitialised data.
17709
17710         * config/mips/elf.h (UNIQUE_SECTION): Cope with being called
17711         for uninitialised data.
17712
17713         * config/mips/elf64.h (UNIQUE_SECTION): Cope with being called
17714         for uninitialised data.
17715
17716         * config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called
17717         for uninitialised data.
17718
17719         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Define.
17720         (UNIQUE_SECTION_P): Always generate a unique section if
17721         flag_data_sections is true.
17722         (UNIQUE_SECTION): Also generate unique sections for
17723         uninitialised data.
17724         (ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section().
17725         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use
17726         named_section().
17727
17728 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17729
17730         * config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF,
17731         SI, or DI.
17732
17733 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17734
17735         * config/c4x/c4x.md (udivqi3, divqi3): Delete.
17736         (umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise.
17737         (*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New.
17738         (*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise.
17739         (*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise.
17740
17741         * c4x.h (INIT_TARGET_OPTABS): Define to init libcalls.
17742
17743 2000-01-05 11:25 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
17744
17745         * c-decl.c (finish_enum): Simplify code to determine minimum and
17746         maximum values of the enum, and calculate the type.  Remove check
17747         for FUNCTION_DECLs in the values list, which cannot happen.  Replace
17748         the DECL_INITIAL of each enumeration constant with a copy converted
17749         to the enumeration type.  When updating variant types, don't bother
17750         updating the type itself.
17751
17752         * c-typeck.c (build_binary_op): Simplify conditional expressions
17753         when weeding out spurious signed-unsigned warnings.  Add new
17754         spurious warning category: if the unsigned quantity is an enum
17755         and its maximum value fits in signed_type(result_type).  Update
17756         commentary.
17757         (build_conditional_expr): Warn here if one alternative is signed
17758         and the other is unsigned.
17759
17760 2000-01-05  Nick Clifton  <nickc@cygnus.com>
17761
17762         * config/fr30/fr30.h: Remove extraneous comments.
17763
17764 2000-01-05  Bernd Schmidt  <bernds@cygnus.co.uk>
17765
17766         * reload1.c (choose_reload_regs): When disabling a reload, also
17767         set reload_spill_index to -1.
17768
17769 2000-01-04  Joel Sherrill (joel@OARcorp.com>
17770
17771         * configure.in (m68*-*-rtemscoff*): New target, formal name for
17772         old m68*-*-rtems*.
17773         (m68*-*-rtemself*): New target.
17774         (mips64orion-*-rtems*): Remove duplicate definition of tm_file.
17775         (sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*.
17776         (sparc*-*-rtemself*): New target.
17777         (sparc*-*-rtems*): Now elf not a.out.
17778         * config/i386/rtems.h: Include config/rtems.h.
17779         * config/i386/rtemself.h: Include config/rtems.h.
17780         * config/i960/rtems.h: Include config/rtems.h.
17781         * config/m68k/rtems.h: Include config/rtems.h.
17782         * config/m68k/rtemself.h: Include config/rtems.h.
17783         * config/mips/rtems64.h: Include config/rtems.h.
17784         * config/pa/rtems.h: Include config/rtems.h.
17785         * config/rs6000/rtems.h: Include config/rtems.h.
17786         * config/sh/rtems.h: Include config/rtems.h.
17787         * config/sh/rtemself.h: Include config/rtems.h.
17788         * config/sparc/rtems.h: Include config/rtems.h.
17789         * config/sparc/rtemself.h: Include config/rtems.h
17790
17791 Tue Jan  4 23:59:26 2000  Denis Chertykov <denisc@overta.ru>
17792
17793         * final.c (shorten_branches): Correctly compute length of
17794         asms without operands.
17795
17796 Tue Jan  4 22:55:41 2000  Steve Chamberlain <sac@pobox.com>
17797
17798         * configure.in: Add pj target.
17799         * configure: Regenerate.
17800         * config/pj: New directory.
17801         * config/pj/lib1funcs.S: New file.
17802         * config/pj/linux.h: New file.
17803         * config/pj/pj.c: New file.
17804         * config/pj/pj.md: New file.
17805         * config/pj/pjl.h: New file.
17806         * config/pj/t-pj: New file.
17807         * config/pj/xm-pj.h: New file
17808
17809 Tue Jan  4 22:30:16 2000  Jeffrey A Law  (law@cygnus.com)
17810
17811         * toplev.c (rest_of_compilation): Run shorten-branches before
17812         reg-stack for now.
17813
17814 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17815
17816         * config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behaviour of
17817         macros so that they're consistent with their names.
17818         * config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise.
17819         * config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise.
17820
17821 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17822
17823         * config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never
17824         modified inadvertently.
17825
17826 2000-01-04  Joel Sherrill <joel@OARcorp.com>
17827
17828         * configure.in (v850*-*-rtems*): New target.
17829         * configure: Regenerate.
17830         * config/v850/rtems.h: New file.
17831
17832 2000-01-04  Mumit Khan  <khan@xraylith.wisc.edu>
17833
17834         * gthr-win32.h (__gthread_active_p): Support Mingw MT runtime.
17835         (__gthread_key_create): Likewise.
17836         (__gthread_key_dtor):  Likewise.
17837         (__gthread_once): Fix logic.
17838         (__gthread_key_delete): Cast away constness.
17839
17840         * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option.
17841         * invoke.texi: Document.
17842         * i386/mingw32.h (CPP_SPEC): Use.
17843         (LIBGCC_SPEC): Likewise.
17844         * i386/crtdll.h (LIBGCC_SPEC): Likewise.
17845
17846 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
17847
17848         * rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine.
17849         (HANDLE_PRAGMA_PACK): Undefine.
17850         (SLOW_UNALIGNED_ACCESS): Define.
17851
17852 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
17853
17854         * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
17855         to default definition.
17856         (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment.
17857         (store_fixed_bit_field): Call macro with word_mode and alignment.
17858         (extract_bit_field): Call macro with relevant mode and alignment.
17859         * expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
17860         to default definition.
17861         (move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode
17862         and alignment.
17863         (move_by_pieces_ninsns): Likewise.
17864         (clear_by_pieces): Likewise.
17865         (emit_push_insn): Likewise.
17866         (store_field): Call macro with relevant mode and alignment.
17867         (expand_expr): Likewise.
17868         (expand_expr_unaligned): Likewise.
17869
17870         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
17871         (SLOW_UNALIGNED_ACCESS): Define.
17872         (CASE_VECTOR_MODE): Always use 32-bit offsets.
17873         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
17874         (EXTRA_SECTION_FUNCTIONS): Indent .csect pseudo-op.
17875         (toc_section): Likewise and .toc pseudo-op.
17876         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
17877         64-bit mode.
17878         (TEXT_SECTION_ASM_OP): Likewise.
17879         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
17880         32-bit offsets.
17881
17882         * a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters.
17883         * alpha.h (SLOW_UNALIGNED_ACCESS): Likewise.
17884         * arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise.
17885         * gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise.
17886         * fr30.h (SLOW_UNALIGNED_ACCESS): Likewise.
17887
17888 Tue Jan  4 11:44:13 2000  Jeffrey A Law  (law@cygnus.com)
17889
17890         * regclass.c: Revert my Jan 4 change to loop cost computation.
17891
17892 Tue Jan  4 19:22:39 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
17893
17894         * regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing
17895         compilation.
17896
17897 2000-01-04  Stan Cox  <scox@cygnus.com>
17898
17899         * haifa-sched.c (build_control_flow): Change unreachable simple
17900         loop test to check if current block has only one predecessor.
17901         (find_rgns): Initialize degree.  Use dest as degree index, not src.
17902
17903 2000-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17904
17905         * builtins.c (expand_builtin_strlen): Initialize variable `icode'.
17906
17907         * calls.c (expand_call): Likewise for
17908         `old_stack_arg_under_construction'.
17909
17910         * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'.
17911
17912         * function.c (pad_to_arg_alignment): Likewise for `save_var' and
17913         `save_constant'.
17914
17915         * gcc.c (execute): Likewise for `ut' and `st'.
17916
17917         * genattrtab.c (attr_rtx): Likewise for `rt_val'.
17918
17919         * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'.
17920
17921         * jump.c (jump_optimize_1): Likewise for `temp2'.
17922
17923         * local-alloc.c (block_alloc): Likewise for `r1'.
17924
17925         * loop.c (recombine_givs): Likewise for `life_start' and `life_end'.
17926
17927         * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'.
17928         (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'.
17929
17930         * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node'
17931         and `set2'.
17932
17933         * reload.c (find_reloads): Likewise for `goal_alternative_number'
17934         and `goal_earlyclobber'.
17935
17936         * scan-decls.c (scan_decls): Likewise for `prev_id_end'.
17937
17938         * sdbout.c (sdbout_one_type): Likewise for `member_scl'.
17939
17940         * stupid.c (stupid_life_analysis): Likewise for `chain'.
17941
17942         * unroll.c (copy_loop_body): Likewise for `copy'.
17943
17944         * varasm.c (output_constructor): Likewise for `byte'.
17945
17946 Tue Jan  4 15:34:34 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
17947
17948         * i386.c (ix86_expand_move): Allow pushes of memory, offload to memory
17949         all FP constants for constant->reg moves.
17950         (ix86_split_to_parts): Try to convert memory address into immediate
17951         when available in the constant pool.
17952         * i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg
17953         moves.
17954         (LEGITIMATE_CONSTANT_P): Return 1.
17955         * i386.md (pushsf): New splitter to convert constant pool memory
17956         reference to immediate.
17957         (mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before
17958         reload.
17959
17960 2000-01-04  Bernd Schmidt  <bernds@cygnus.co.uk>
17961
17962         * i386.md (ashlsi3_cmpno): Don't accept variables shifts.
17963         (ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno,
17964         ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise.
17965         (rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno,
17966         rotrhi3_cmpno, rotrqi3_cmpno): Likewise.
17967
17968 2000-01-04  Martin von Löwis  <loewis@informatik.hu-berlin.de>
17969
17970         * ginclude/stdbool.h:  Support compilation as C++.
17971
17972 Tue Jan  4 01:35:13 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
17973
17974         * fold-const.c (make_range): Don't try to reverse an unbounded range.
17975
17976 Tue Jan  4 00:18:46 2000  Jeffrey A Law  (law@cygnus.com)
17977
17978         * regclass.c (regclass): Properly compute loop_cost.  Adjust
17979         comments.
17980
17981         * regclass.c: Fix minor whitespace problems.
17982
17983 2000-01-03  Anthony Green  <green@cygnus.com>
17984
17985         * config/i386/i386.md (builtin_setjmp_receiver): New pattern.
17986         Restore the pic register if required.
17987
17988 2000-01-03  Ulrich Drepper  <drepper@cygnus.com>
17989
17990         * c-common.c (format_char_info): Update comment.
17991         (check_format_info): Recognize 'z' modifier in the same way 'Z'
17992         was recognized.  Emit warning for formats new in ISO C99 only
17993         if flag_isoc9x is not set.
17994
17995 Mon Jan  3 12:59:54 2000  Mark P. Mitchell  <mark@codesourcery.com>
17996
17997         * config/mips/iris6gld.h: Fix typo in -mabi=n32 specs.
17998
17999 Mon Jan  3 15:33:37 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
18000
18001         * combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to
18002         SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND.
18003         (make_compound_operation): Choose cheaper alternative between
18004         ZERO_EXTEND and SIGN_EXTEND when sign bit is not set.
18005
18006         * regclass.c (op_costs): Remove global variable.
18007         (record_reg_classes): New parameter "op_costs" and "reg_pref".
18008         (record_operand_costs): Break out from ...
18009         (scan_one_insn): ... here.
18010         (dump_regclass): Make dumps nicer.
18011         (regclass): Dump preferrences choosed and changes done during passes.
18012
18013 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
18014
18015         * config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC.
18016
18017 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
18018
18019         * config/sparc/sparc.c (gen_df_reg): New function.
18020         * config/sparc/sparc-protos.h (gen_df_reg): Add prototype.
18021         * config/sparc/sparc.md (movtf_no_e_insn_sp64+1,
18022         movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1,
18023         movtf_cc_reg_sp64+1): Use it.
18024
18025 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
18026
18027         * integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on
18028         copied LABEL_DECLs.
18029
18030 Mon Jan  3 02:54:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
18031
18032         * config/i386/i386.c (ix86_expand_unary_operator): Function
18033         definition made void.
18034         (ix86_expand_binary_operator): Update outdated preceding comment.
18035         * config/i386/i386-protos.h (ix86_expand_unary_operator): Update
18036         prototype.
18037
18038         * config/i386/i386.c (override_options): Fix option-name typo.
18039
18040 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
18041
18042         * system.h (CEIL): Define.
18043         * builtins.c (CEIL): Remove.
18044         * expmed.c (CEIL): Likewise.
18045         * expr.c (CEIL): Likewise.
18046         * stor-layout.c (CEIL): Likewise.
18047
18048 2000-01-02  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
18049
18050         * expr.c (store_constructor_field): Fix typo introduced with last
18051         gcc2 merge.
18052
18053 2000-01-01  Mark Mitchell  <mark@codesourcery.com>
18054
18055         * tree.h (BINFO_N_BASETYPES): New macro.
18056
18057 2000-01-01  Bernd Schmidt  <bernds@cygnus.co.uk>
18058
18059         * expmed.c (emit_store_flag): Prevent losing a pending stack
18060         adjust the same way we prevent losing queued increments.
18061
18062 See ChangeLog.2 for earlier changes.