OSDN Git Service

Warning patch:
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2000-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2
3         * mips.c (function_arg_pass_by_reference): Don't do automatic
4         aggregate initialization.
5         (machine_dependent_reorg): Initialize variable `mode'.
6         
7         * mips.md (absdi2): Change variable `regno1' to unsigned int.
8         (reload_indi): Rename loword/hiword to lo_word/hi_word to avoid
9         conflicts with sys/param.h macro of the same name.
10         (reload_outdi): Likewise.
11
12 2000-07-15  Michael Meissner  <meissner@redhat.com>
13
14         * fold-const.c (fold): When optimizing FOO++ == CONST into ++FOO
15         == CONST + INCREMENT, don't overwrite the tree node for FOO++,
16         create a new node instead.
17
18 2000-07-15  Neil Booth  <NeilB@earthling.net>
19
20         * README.Portability: Correct example about calling a function
21         through a pointer to function.  Format wide paragraphs.
22
23 2000-07-15  Michael Meissner  <meissner@redhat.com>
24
25         * README.Portability: Update integer suffixes and function
26         prototype sections.
27
28 2000-07-15  Neil Booth  <NeilB@earthling.net>
29
30         * README.Portability: Small update.
31
32 2000-07-15  Neil Booth  <NeilB@earthling.net>
33
34         * README.Portability: New file.
35
36 Fri Jul 14 18:13:53 2000  Mark P Mitchell  <mark@codesourcery.com>
37
38         * INSTALL: Give special instructions for building GCC on Irix 6.
39         * config/mips/x-iris6 (CC): Don't set it.
40         (OLDCC): Likewise.
41
42 2000-07-14  Jason Merrill  <jason@redhat.com>
43
44         * dwarf2out.c (dwarf2out_frame_debug_expr): If we store the CFA 
45         register in the stack and later in another register, use the new
46         register.
47
48 Fri Jul 14 10:25:53 2000  Clinton Popetz  <cpopetz@cygnus.com>
49
50         * config/mips/mips.md: (absdi2): Handle sign_extend for
51         second operand.
52
53 2000-07-14  Nathan Sidwell  <nathan@codesourcery.com>
54
55         * cpplib.c (do_pragma_dependency): Tidy warning messages.
56
57 2000-07-14  Zack Weinberg  <zack@wolery.cumb.org>
58
59         * .cvsignore: Correct typo.
60
61 2000-07-13  Mark Mitchell  <mark@codesourcery.com>
62
63         * .cvsignore: Add generated YACC files.
64         * objc/.cvsignore: New file.
65         
66 2000-07-14  Neil Booth  <NeilB@earthling.net>
67
68         * cpplex.c (adjust_column): New funcion.
69         (skip_whitespace): Use it.
70         (skip_block_comment): Use it, and warn about /*/* with
71         -Wcomments.
72
73 2000-07-14  Neil Booth  <NeilB@earthling.net>
74
75         * cpphash.c (struct macro_info): Add new members.
76         (_cpp_free_definition): Delete the macro directly.
77         (count_params): Return void, with first token of
78         expansion in struct macro_info on success.
79         (parse_define): Return int.  Hoist syntax checking from
80         save_macro_expansion.  Leave call to save_expansion to
81         _cpp_create_definition.
82         (alloc_macro): Needs just 2 arguments.
83         (free_macro): Delete.
84         (save_expansion): Don't perform syntax check.
85         (_cpp_create_definition): Call save_expansion.
86
87 2000-07-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
88
89         * genrecog.c (write_header): Split long string.
90
91         * cpphash.c (macro_info): Don't use the `signed' keyword.
92
93         * system.h (alloca): Prototype if __GNUC__ && __SIZE_TYPE__.
94
95 2000-07-13  Jakub Jelinek  <jakub@redhat.com>
96
97         * calls.c (stored_args_map): New variable.
98         (check_sibcall_argument_overlap_1): New.
99         (check_sibcall_argument_overlap): New.
100         (expand_call): Initialize stored_args_map.
101         Call check_sibcall_argument_overlap.
102
103 2000-07-13  Bruce Korb  <bkorb@gnu.org>
104
105         * fixinc/fixfixes.c: move EXIT_BROKEN to header, add sub-expr max count
106         (emit_gnu_type): utility procedure for gnu_type_fix
107         (gnu_type_fix): implement various pre-processor guards around
108         standard types so these types can be defined over and over
109         * fixinc/fixincl.tpl: add a "gnu_type_map" that forces the standard
110         types alluded to above will have GNU-compliant base types
111         * fixinc/fixlib.h: add EXIT_BROKEN define and the gnu_type_map struct
112         * fixinc/inclhack.def: add test_text entries and utilize the new
113         "gnu_types" fix for the ptrdiff_t, size_t and wchar_t types.
114         * fixinc/fixincl.x: regenerate
115
116 2000-07-12  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
117
118         * diagnostic.c (vline_wrapper_message_with_location,
119         v_message_with_file_and_line, v_error_with_file_and_file,
120         v_error_for_asm, v_warning_for_asm, vfatal,
121         v_warning_with_file_and_line, v_pedwarn_with_file_and_line,
122         vsorry, verror, vwarning, vpedwarn): Remove.
123         (diagnostic_for_asm): New function.
124         (pedwarn, error, warning, pedwarn_with_file_and_line,
125         error_with_file_and_line, warning_with_file_and_line, sorry,
126         error_for_asm, warning_for_asm, fatal): Reimplement.
127         (finish_diagnostic): Clear diagnostic info as well.
128         
129 2000-07-13  Neil Booth  <NeilB@earthling.net>
130
131         * c-common.h (flag_digraphs): New.
132         * c-decl.c (c_decode_option): Set flag_digraphs as appropriate.
133         * c-lex.c (yylex): Use flag_digraphs to decide whether to
134         honour digraphs.
135         
136 2000-07-13  Zack Weinberg  <zack@wolery.cumb.org>
137
138         * gcc.c (do_spec_1): Add new %B operator.
139         (set_input): Prepare for %B.
140
141         (link_command_spec): Move up with the other tm.h-
142         overrideable specs.  Factor out the portion conditional on
143         LINK_LIBGCC_SPECIAL into a new spec, %(link_libgcc).
144         (struct compiler): Just have a single spec string.  All users
145         updated.
146         (default_compilers): Remove unnecessary braces.
147         (static_specs): Update.
148
149         (trad_capable_cpp, cpp_options, cc1_options, asm_options): New
150         named specs.
151         (C and assembly specs): Use the new named specs, as appropriate.
152
153         * objc/lang-specs.h: Use the new named specs.  
154         Remove unnecessary braces.
155
156 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
157
158         * gcc.c (execute): If a subprocess gets a fatal signal, report
159         strsignal() of the signal number, and ask for a bug report.
160         Do not do this for SIGPIPE if there's already been an error.
161
162         * tradcpp.c: Don't include signal.h.  Don't catch SIGPIPE.
163         Delete pipe_closed.
164
165         * tradcif.c: Remove.
166
167 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
168
169         * final.c (profile_function): Do not emit profile counters in
170         the data section, if NO_PROFILE_COUNTERS is defined.
171         * tm.texi: Document NO_PROFILE_COUNTERS.  Update doc for
172         FUNCTION_PROFILER.
173
174         * config/i386/linux.h (NO_PROFILE_COUNTERS): Define.
175         (FUNCTION_PROFILER): Just emit a call to mcount.
176
177 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
178
179         * tradcpp.c (main): Rename 'perror' label to 'sys_error'.
180
181         * cppexp.c, cpphash.c, cpphash.h, cppinit.c, cpplex.c,
182         cpplib.c, cpplib.h: Eradicate all traces of code dependent on
183         traditional, lang_chill, or lang_fortran.
184
185         * cppfiles.c: #undef strcmp to suppress warning about macros
186         used without arguments.
187         (_cpp_execute_include): Use f, not fname, in "No include path"
188         error.
189         (_cpp_pop_file_buffer): New function.
190         * cpplib.c: Don't include <sys/mman.h>.
191         (cpp_push_buffer): Set line_base and lineno in new buffer.
192         (cpp_pop_buffer): Use _cpp_pop_file_buffer.
193
194         * cpplex.c: Move all prototypes and structure declarations to the
195         top of the file.  Properly parenthesise some macro arguments.
196         (cpp_scan_line): New function.
197         (special_symbol [case T_INCLUDE_DEPTH]): Use pfile->include_depth,
198         don't need to walk up the stack counting.
199
200 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
201
202         * c-common.c (combine_strings): Emit a pedantic warning when a
203         string length is greater than the minimum ANSI C is required
204         to support.
205
206 Wed Jul 12 13:24:30 2000  Jeffrey A Law  (law@cygnus.com)
207
208         * pa/xm-pa64.h (NO_SYS_SIGLIST): Kill.
209         * d30v/xm-d30v.h (NO_SYS_SIGLIST): Kill.
210
211 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
212
213         * c-decl.c (define_label): Warn about identifier conflicts with
214         labels in traditional C.
215
216         * c-parse.in (unop +): Warn about the unary plus operator for
217         traditional C.
218
219         * c-typeck.c (store_init_value): Warn about automatic aggregate
220         initialization for traditional C.
221
222         * invoke.texi (-Wtraditional): Document new warnings.
223
224 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
225
226         * Makefile.in (c-errors.o): Fix thinko in dependency.
227
228 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
229
230         * gcc.c (C specs [!USE_CPPLIB]): Invoke tradcpp if any of
231         -traditional, -ftraditional, or -traditional-cpp was given.
232         Do not pass -traditional to the preprocessor.
233         (.S spec): Likewise.  Don't bother defining __ASSEMBLER__, the
234         preprocessor does it automatically.
235         * objc/lang-specs.h: Likewise.  Don't bother defining __OBJC__.
236
237         * ch/lang-specs.h: Always use tradcpp.  Do not pass
238         -traditional, -trigraphs, or -pedantic to the preprocessor.
239         * f/lang-specs.h (.F spec): Likewise.  Don't bother defining
240         _LANGUAGE_FORTRAN.
241
242 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
243
244         * cppexp.c (LOGICAL): Delete macro.
245         (_cpp_parse_expr): Do not use UNARY for unary +.  Implement ||
246         and && directly.
247
248         * cpphash.c (HASHSIZE): Increase to 4096.
249         (struct hashdummy): Add hash field.
250         (eq_HASHNODE): Compare unreduced hashes, then lengths, then
251         the string values using memcmp.
252         (cpp_lookup): Set dummy.hash.
253
254 Wed Jul 12 13:15:16 2000  Marc Espie <espie@openbsd.org>
255
256         * configure.in (m88k-openbsd): Express configuration using new fragment
257         style.
258         * configure: Rebuilt.
259         * m88k/aout-dbx.h: New.
260         * m88k/openbsd.h: New.
261         * m88k/xm-openbsd.h: New.
262
263 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
264
265         * expr.c (expand_expr): Return const0_rtx, not error_mark_node.
266
267 2000-07-12  Richard Henderson  <rth@cygnus.com>
268
269         * reload.c (push_secondary_reload): Make sure to add the new
270         reload at the end, after acquiring secondary memory.
271
272 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
273
274         * cpplex.c (is_macro_disabled): Use CPP_WTRADITIONAL.
275
276         * c-decl.c (set_current_function_name_declared, anon_aggr_type_p,
277         lang_expand_stmt): Mark parameters with ATTRIBUTE_UNUSED.
278
279         * c-parse.in (stmt): Delete unused variables.
280
281         * convert.c (convert_to_vector): Likewise.
282
283         * gensupport.c (process_rtx): Declare attr as `rtvec' not `rtx'.
284
285         * tree.c (finish_vector_type): Prototype.
286
287 2000-07-12  Bruce Korb  <bkorb@gnu.org>
288
289         * fixinc/fixfixes.c: use xmalloc
290         * fixinc/fixincl.c(initialize): set program name for xmalloc
291         * fixinc/fixlib.c(must_malloc): obsolete
292         (is_cxx_header): no longer used - disabled
293         (skip_quote): inserted and disabled for future use
294         * fixinc/fixlib.h: reflects above
295         * fixinc/fixtests.c: removed dinkleberries
296
297 2000-07-12  Neil Booth  <NeilB@earthling.net>
298
299         * cpphash.h: (TOKEN_SPELL) Pulled from cpplex.c.
300         * cpplex.c (TOKEN_SPELL) Move to cpphash.h.
301
302         * cpphash.c: (struct macro_info, alloc_macro, free_macro,
303         struct toklist_dummy): New.
304         (cpp_free_definition): Free macros with free_macro.
305         (count_params): Don't save paramter spellings.  Save macro
306         information in a struct macro_info.
307         (parse_define): Don't allocate a token list.
308         (save_expansion): Allocate the macro's token list, and
309         save parameter spellings if necessary.  Use TOKEN_SPELL.
310         (cpp_create_definition): Make list const.
311
312 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
313
314         * c-typeck.c (pedwarn_c99): Move to
315         * c-errors.c: ... Here.
316         * toplev.h (verror, vwarning, vpedwarn): Remove prototypes.
317         * diagnostic.c (verror, vwarning, vpedwarn): Make static.
318         * Makefile.in (C_AND_OBJC_OBJS): Include c-errors.o
319         (c-errors.o): List dependency.
320
321 2000-07-12  Mark Mitchell  <mark@codesourcery.com>
322
323         * c-parse.c: Remove.
324         * c-parse.h: Likewise.
325         * c-parse.y: Likewise.
326         * objc/objc-parse.c: Likewise.
327         * objc/objc-pasre.y: Likewise.
328
329 2000-07-11  Rodney Brown  <RodneyBrown@pmsc.com>
330
331         * gcc.texi: Fix minor typos
332         * extend.texi: Fix minor typos
333
334 2000-07-11  Marc Espie <espie@openbsd.org>
335
336         * collect2.c (main): Recognize .lo as object files.
337
338 2000-07-11  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
339
340         * pa.c (hppa_encode_label): Store labels in gc memory when ggc_p is
341         true.
342
343         * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Extend test to detect systems
344         with MAP_ANONYMOUS and MAP_ANON.
345         * configure, config.in: Rebuilt.
346
347 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
348
349         * diagnostic.c (save_output_state): Remove.
350         (restore_output_state): Likewise.
351         (clear_text_info): New function.
352         (clear_diagnostic_info): Likewise.
353         (output_text_length, is_starting_newline, output_prefix,
354         line_wrap_cutoff, ideal_line_wrap_cutoff, prefix_was_emitted_for,
355         prefixing_policy, output_buffer_ptr_to_format_args): New macros
356         (set_real_maximum_length, output_set_maximum_length,
357         output_set_prefix, output_get_prefix, output_set_maximum_length,
358         output_destroy_prefix, init_output_buffer,
359         reshape_diagnostic_buffer, output_space_left, output_emit_prefix,
360         output_add_newline, output_add_character, output_add_space,
361         output_append_r, output_append, wrap_text, output_format,
362         output_do_printf, output_printf, output_do_verbatim,
363         output_verbatim, verbatim): Use them.
364         (output_clear): Split into cleat_text_info and
365         clear_diagnostic_info.
366         (struct output_state): Move to...
367
368         * diagnostic.h: ...Here
369         (struct output_buffer): Adjust.
370
371 2000-07-11  Zack Weinberg  <zack@wolery.cumb.org>
372
373         * cpplex.c (parse_name): No longer inline (premature optimization).
374         (do_pop_context): Fold into pop_context.
375         (pop_context): Returns int.
376         (lex_next): Hoist test for end of directive into pop_context.
377         (push_macro_context): Returns int; takes just reader and token.
378         Hoist test for excessive nesting to caller.
379         (push_arg_context): Returns void; takes just reader and token.
380         Do not call stringify_arg or get_raw_token.
381         (get_raw_token): Convert tail recursion through push_arg_context
382         to a loop at this level.  Call stringify_arg here if appropriate.
383         (maybe_paste_with_next): Convert tail recursion to a while loop.
384         Hoist test of paste_level to caller.
385
386         (stringify_arg): Push arg context at beginning.
387         (cpp_get_token): Split out core into _cpp_get_token.  Call
388         process_directive here.  Throw away CPP_PLACEMARKER tokens.
389         (_cpp_get_token): Convert tail recursion through
390         push_macro_context to a loop at this level.
391         (_cpp_glue_header_name, is_macro_disabled, stringify_arg,
392         _cpp_get_raw_token): Use _cpp_get_token.
393         (_cpp_skip_rest_of_line): Drop the context stack directly; do
394         not call pop_context.
395         (_cpp_run_directive): Call lex_next directly.
396
397         * cpphash.h: Prototype _cpp_get_token.
398         * cppexp.c (lex): Use it.
399         * cpphash.c (parse_define): Use it.
400         * cpplib.c (get_define_node, do_undef, parse_include,
401         read_line_number, do_line, do_ident, do_pragma, do_pragma_gcc,
402         do_pragma_implementation, do_pragma_poison, do_pragma_dependency,
403         parse_ifdef, validate_else): Use it.
404         (cpp_push_buffer): Tweak error message; abort if anyone tries
405         to push a buffer while macro expansions are stacked.
406
407 2000-07-11  Donn Terry  <donnte@microsoft.com>
408
409         * cpplex.c (free_macro_args, save_token): Cast arg of free
410         and/or xrealloc to PTR.
411         (_cpp_init_input_buffer): Clear all fields of the base context.
412
413 Tue Jul 11 15:28:21 CDT 2000  Clinton Popetz  <cpopetz@cygnus.com>
414
415         * gensupport.c (process_rtx): Make rtl checking stop
416         complaining about the define_insn while it is being
417         converted from a define_insn_and_split.
418
419 Tue Jul 11 16:26:17 2000  Clinton Popetz  <cpopetz@cygnus.com>
420
421         * config/mips/mips.c (simple_memory_operand): Access the
422         INTVAL of the address, not it's containing MEM.
423
424 2000-07-11  Bruce Korb  <bkorb@gnu.org>
425
426         * fixinc/fixtests.c(double_slash): obsolete
427         (else_endif_label): likewise
428         * fixinc/inclhack.def(irix_multiline_cmnt): obsolete
429         (libc1_ifdefd_memx): correct initial comment
430         and omit the #if/#endif pair from the memxxx declarations
431         * fixinc/fixincl.x: regen
432
433 2000-07-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
434
435         * cpplex.c (T, I, S, C, N): Avoid non-constant initializers.
436
437 2000-07-11  Neil Booth  <NeilB@earthling.net>
438
439         * cpp.texi: Update.
440
441 2000-07-11  Neil Booth  <NeilB@earthling.net>
442
443         * cppinit.c: (cpp_reader_init): Allow digraphs by default.
444         (handle_option): Set digraphs according to standard.
445         Merge OPT_lang_c89 handler with OPT_std_c89.
446
447         * cpplex.c: (lex_line, can_paste): Honour digraphs in
448         accordance with the digraphs flag.
449
450         * cpplib.h: (struct cpp_options): New option digraphs.
451
452 2000-07-10  Hans-Peter Nilsson  <hp@axis.com>
453             Bruce Korb  <bkorb@gnu.org>
454
455         * fixinc/inclhack.def (libc1_ifdefd_memx): New fix.
456         * fixinc/fixincl.x: Regenerate.
457         * fixinc/tests/base/testing.h: Add testcase.
458
459 2000-07-10  Richard Henderson  <rth@cygnus.com>
460
461         * config/ia64/ia64.c (got_symbolic_operand): New.
462         (symbolic_operand, move_operand): Revert 0701 change.
463         * config/ia64/ia64.h (PREDICATE_CODES): Update.
464         * config/ia64/ia64-protos.h (got_symbolic_operand): Declare.
465         * config/ia64/ia64.md (movdi): Revert 0701 wrt symbolic_operand;
466         split the offset into a 14-bit low part instead of a 13-bit low part.
467         (load_fptr): Mark the mem as unchanging.
468         (load_symptr): Use got_symbolic_operand.
469
470 2000-07-10  Nick Clifton  <nickc@cygnus.com>
471
472         * libgcc2.c (next_stack_level): Cast result of computation to
473         (void **) so that the assignment does not generate a warning.
474
475 2000-07-10  Chandrakala Chavva  <cchavva@redhat.com>
476
477         * flags.h : Add new variable flag_single_precision_constant.
478         * toplev.c (display_help) : Add -fsingle-precision-constant option.
479         (flag_single_precision_constant): New.
480         * c-lex.c (yylex): Convert floating point constant to single
481         precision constant.
482         * invoke.texi : Add documentation for this new option.
483
484 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
485
486         * diagnostic.c (output_octal): Second parameter is unsigned.
487         (output_long_octal): Likewise.
488         (output_hexadecimal): Likewise.
489         (output_long_hexadecimal): Likewise.
490         (output_format): Adjust arguments extraction. Tweak.
491         (output_verbatim, verbatim): End variable argument list.
492         (report_diagnostic): Improve documentation.
493
494 2000-07-10  Benjamin Chelf  <chelf@codesourcery.com>
495
496         * c-common.h (build_stmt): Declare.
497         (build_continue_stmt): Likewise.
498         (build_break_stmt): Likewise.
499         (build_return_stmt): Likewise.
500
501         * c-decl.c (do_case): Rewrite to do what previously done in
502         c-parse.in.
503
504         * c-semantics.c (build_stmt): Define.
505         (build_return_stmt): Likewise.
506         (build_break_stmt): Likewise.
507         (build_continue_stmt): Likewise.
508         (build_case_label): Likewise.
509
510         * c-parse.in (BREAK): Change to build tree, then generate RTL.
511         (CONTINUE): Likewise.
512         (RETURN): Likewise.
513         (CASE): Likewise.
514         (DEFAULT): Likewise.
515
516         * c-parse.y: Regenerate.
517         * c-pasre.c: Likewise.
518
519 2000-07-09  Jason Merrill  <jason@redhat.com>
520
521         * expr.c (expand_expr): Bail earlier if we get an error_mark_node.
522
523         * tree.h (STRIP_NOPS): Check for error_mark_node.
524         (STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Likewise.
525         (dwarf2out_*): Remove duplicate declarations.
526
527         * c-decl.c (duplicate_decls): Copy DECL_ABSTRACT_ORIGIN from
528         DECL_ABSTRACT_ORIGIN, not DECL_ORIGIN.
529
530 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
531
532         * diagnostic.c (wrap_text): New function.
533         (maybe_wrap_text): Likewise.
534         (output_add_string): Use it.
535         (output_format): Likewise.
536         (count_error): Use verbatim instead of notice.
537         (report_error_function): Likewise. Don't use plain fprintf.
538         (finish_diagnostic): New function.
539         (output_do_verbatim): Tweak.  Commonalize functionalities in
540         output_verbatim and verbatim.
541         (output_verbatim): Adjust.
542         (verbatim): Likewise.
543         (report_diagnostic): Define.
544
545         * diagnostic.h (report_diagnostic): Prototype.
546
547 2000-07-09  Zack Weinberg  <zack@wolery.cumb.org>
548
549         * cppexp.c (_cpp_parse_expr): Don't use unary plus.
550
551 2000-07-09  Neil Booth  <NeilB@earthling.net>
552
553         * cpphash.h: ISvspace, is_vspace, is_nvspace: New.
554         IShspace, ISspace: Update.
555
556         * cppinit.c: ISTABLE: Update.
557         V: New.
558
559         * cpplex.c (IS_HSPACE, S_NEWLINE): Remove.
560         (IS_DIRECTIVE): Rename KNOWN_DIRECTIVE.
561         (skip_block_comment, skip_line_comment, parse_string,
562         lex_line): Use is_vspace rather than IS_NEWLINE.
563         (skip_whitespace, lex_line): Clean up to use is_nvspace.
564         (lex_line): Use KNOWN_DIRECTIVE.  Any kind of directive
565         gets a BOL flag.
566         (lex_next): Unconditionally stop if within a directive.
567         Treat directives within macro invocations as directives
568         (after parse_args emits error), not as the argument.
569
570 2000-07-09  Gabriel Dos Reis  <gdr@codesourcery.com>
571
572         * diagnostic.c (diagnostic_args): New macro.
573         (diagnostic_msg): Likewise.
574         (output_formatted_integer): Likewise.
575         (output_state): New data type.
576         (digit_buffer): Make global.
577         (output_add_integer): Rename to output_decimal. Squeeze
578         digit_buffer.
579         (output_long_decimal, output_unsigned_decimal,
580         output_long_unsigned_decimal, output_octal, output_long_octal,
581         output_hexadecimal, output_long_hexadecimal): New functions.
582         (output_append_r): New function.
583         (output_append): Tweak.
584         (output_flush_on): Rename to output_to_stream.
585         (output_format): Change prototype.  Improve documentation. Handle
586         more format specifiers.
587         (build_location_prefix): Rename to context_as_prefix.
588         (output_notice): Rename to output_do_printf.
589         (output_printf): Tweak.
590         (line_wrapper_printf): Likewise.
591         (vline_wrapper_message_with_location): Adjust call to renamed
592         functions.
593         (v_message_with_decl): Likewise.
594         (default_print_error_function): Likewise.
595         (save_output_state): New function.
596         (restore_output_state): Likewise.
597         (output_do_verbatim): Likewise.
598         (output_verbatim): Define.
599         (verbatim): Likewise.
600
601         * diagnostic.h (printer_fn): Change return type from void to int.
602         Improve documentation.
603         (output_add_integer): Rename to output_decimal.
604         (output_flush_on, output_format): Don't export.
605         (output_verbatim, verbatim): Declare.
606
607 2000-07-08  Toon Moene  <toon@moene.indiv.nluug.nl>
608
609         * fold-const.c (extract_muldiv) case PLUS_EXPR, MINUS_EXPR:
610         Check whether c divides op1 exactly if operation is not
611         multiplication.
612
613 2000-07-08  Richard Henderson  <rth@cygnus.com>
614
615         * final.c (final): Do not abort when reg-stack introduces
616         a new insn.
617
618 2000-07-08  Zack Weinberg  <zack@wolery.cumb.org>
619
620         * cpplib.h (struct cpp_name): Now struct cpp_string.
621         (CPP_INT, CPP_FLOAT, CPP_NUMBER, CPP_COMMENT,
622         CPP_HEADER_NAME): Change to type S.
623         (struct cpp_token): Rename 'name' field to 'str'.  Add 'node'
624         field, a cpp_hashnode *.  All references to val.name updated
625         to use val.str or val.node as appropriate.
626         (struct cpp_reader): Add spec_nodes field.
627         (cpp_idcmp): Now cpp_ideq; takes a token * and a char *.
628
629         * cpphash.h (struct spec_nodes): New.
630         (enum spell_type): Reorder.  Only SPELL_STRING tokens use
631         val.str.  All references to 'spelling > SPELL_NONE' updated to
632         match.
633
634         (CPP_IN_SYSTEM_HEADER): Check pfile->buffer and
635         pfile->buffer->inc are not NULL before dereferencing them.
636
637         * cpplex.c (parse_name): Take a pointer to the current token,
638         plus current position and limit as args; return the new
639         position; don't copy the text of a name into the string
640         buffer, instead call cpp_lookup and store the node pointer.
641         If extending a token, copy out the text of the old into a
642         scratch buffer, append the new, look that up and store the new
643         node pointer.  Inline.
644         (maybe_paste_with_next): If the result of paste is a NAME,
645         then look up the pasted text and store its node pointer.
646         (lex_line): Adjust for new parse_name interface.
647         Check for L"str", L'str' using spec_nodes->n_L.
648         (spell_token): SPELL_IDENT tokens have their spelling in
649         val.node->name.  Handle SPELL_STRING tokens that don't have
650         string delimiters.
651         (_cpp_expand_name_space,
652         (can_paste): Check for L ## "str" using spec_nodes->n_L.
653         (cpp_get_token, special_symbol): No need to call cpp_lookup.
654         (cpp_idcmp): Now cpp_ideq; take a token * and a const char *;
655         return 1=equal 0=not, not a tristate.
656
657         * cpphash.c (var_args_str): Delete.
658         (find_param): Compare node fields directly.
659         (is__va_args__): Use CPP_PEDANTIC.  Just compare
660         token->val.node with spec_nodes->n__VA_ARGS__.
661         (dump_funlike_macro): Don't use var_args_str.
662
663         * cpplib.c (_cpp_check_directive): Just walk through
664         spec_nodes->dirs comparing pointers.
665         (get_define_node, do_pragma_poison, detect_if_not_defined,
666         parse_ifdef): The identifier has already been looked up.
667         (do_ifdef, do_ifndef): parse_ifdef won't return a poisoned
668         node.
669         (do_if): Only call detect_if_not_defined at beginning of file.
670         (_cpp_parse_assertion): Only copy string pointers for
671         SPELL_STRING tokens.
672         (pragma_dispatch): Take a node pointer and examine its name
673         field.
674         (_cpp_init_stacks): Also initialize the spec_nodes structure.
675
676         * cppinit.c (cpp_reader_init): Call _cpp_init_stacks after
677         _cpp_init_macros.
678         (cpp_cleanup): Free pfile->spec_nodes.  Call _cpp_cleanup_* in
679         reverse order from the corresponding _cpp_init_* routines.
680
681         * cppexp.c (parse_number, parse_charconst, parse_defined,
682         lex): Check val.node->type instead of calling cpp_defined.
683         Use spec_nodes entries where appropriate.
684
685         * fix-header.c, scan-decls.c: Update for interface changes.
686
687 2000-07-08  Geoffrey Keating  <geoffk@cygnus.com>
688
689         * config/rs6000/rs6000.c (rs6000_emit_move): Fix conditions for
690         emitting aux_truncdfsf2.
691
692 2000-07-03  Donn Terry  (donnte@microsoft.com)
693
694         * cppinit.c (print_help): split overlong line into ISO C89
695         maximum chunks.
696
697 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
698
699         * cppexp.c: Update all code for new lexer interface.
700         (op_t, operator codes, struct token, tokentab2, op_to_str): Remove.
701         (struct suffix, vsuf_1, vsuf_2, vsuf_3, op_to_prio): New.
702         * cpplex.c (token_names): Trim leading CPP_ from names; make
703         the strings unsigned.
704         (_cpp_spell_operator): New.
705         (is_macro_disabled): Disable all macros if rescanning
706         preprocessed text.
707         (_cpp_get_directive_token): Remove.
708
709         * cppinit.c: Don't set no_macro_expand.
710         * cpplib.c (read_line_number, do_line): Check only for EOF,
711         not VSPACE.
712         * cpphash.h: Update prototypes.
713         * cpplib.h (CPP_VSPACE): Remove.
714         (struct cpp_reader): Remove no_macro_expand.
715
716 2000-07-08  Neil Booth  <NeilB@earthling.net>
717
718         * cpphash.c (is__va_args__): New function.
719         (count_params): Fix line reported in error messages.  Use
720         is__va_args__.  Don't return ')' on error.  Flag GNU style
721         rest args macro definitions.
722         (parse_define): Check macro name is not __VA_ARGS__.
723         (save_expansion): Check identifier in non-varargs-macro is
724         not __VA_ARGS__.  Don't flag GNU_VARARGS.
725         * cpplex.c (parse_args): Accept no argument iff GNU_REST_ARGS.
726         (maybe_paste_with_next): Use per-macro GNU_REST_ARGS rather
727          than per-token GNU_VARARGS.
728         * cpplib.h (GNU_VARARGS): Remove.
729         (GNU_REST_ARGS): New.
730
731 Sat Jul  8 01:38:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
732
733         * i386.md (call_pop, call, call_value_pop): Do not set
734         current_function_uses_pic_offset_table for calls to static
735         functions or indirect calls.
736
737 2000-07-07  Jim Wilson  <wilson@cygnus.com>
738
739         * config/ia64/ia64.c (rws_access_reg): New local write_count.  If
740         is_predicate_reg, then take max write_count of register pair.
741
742 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
743
744         * tradcpp.c (main): Rename label `include' to `add_include' to
745         avoid conflicts with variable `include' in traditional C.
746
747 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
748
749         * integrate.c (copy_insn_list): Remove REG_LABEL notes.
750
751 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
752
753         * sibcall.c (uses_addressof): Add INMEM argument, check for
754         current_function_internal_arg_pointer outside of MEM rtxs in addition
755         to ADDRESSOFs.
756         (sequence_uses_addressof): Update caller.
757
758 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
759
760         * tradcpp.c (initialize_builtins): Honor NO_BUILTIN_SIZE_TYPE
761         and friends.
762
763 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
764
765         * system.h (UNION_INIT_ZERO): New macro for initializing union
766         members in structs.
767
768         * cpplex.c (placemarker_token, eof_token): Use UNION_INIT_ZERO.
769
770 2000-07-07  Neil Booth  <NeilB@earthling.net>
771
772         * cpp.texi: Update.
773
774 Fri Jul  7 07:47:35 2000  Jeffrey A Law  (law@cygnus.com)
775
776         * final.c (final): Detect out of bounds array access to
777         the insn_lengths array.
778
779 2000-07-07  Kazu Hirata  <kazu@hxi.com>
780
781         * fold-const.c (fold): Fix a comment typo.
782
783 2000-07-07  Neil Booth  <NeilB@earthling.net>
784
785         * cpp.texi: Update to new lexer.
786
787 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
788
789         * tradcpp.c: New file.
790         * tradcif.y: New file.
791         * tradcif.c: New generated file.
792
793         * Makefile.in: Add rules to build tradcpp.o, tradcif.o,
794         $(srcdir)/tradcif.c.  Add tradcpp to STAGESTUFF and
795         dependencies of C.  Install tradcpp from install-common, in
796         $(libsubdir).
797
798 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
799
800         * cppinit.c: Include cppdefault.h.  Refer to
801         cpp_GCC_INCLUDE_DIR and cpp_GCC_INCLUDE_DIR_len, not directly
802         to GCC_INCLUDE_DIR and its length.
803         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
804         USER_LABEL_PREFIX, REGISTER_PREFIX, struct default_include,
805         STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT):  Move to
806         cppdefault.h.
807         (include_defaults_array): Move to cppdefault.c.
808
809         * cppdefault.h: New file.
810         * cppdefault.c: New file.
811
812         * Makefile.in (LIBCPP_OBJS): Add cppdefault.o.
813         (cppinit.o): Don't apply $(PREPROCESSOR_DEFINES) to this file.
814         (cppdefault.o): New rule; apply $(PREPROCESSOR_DEFINES) to
815         this file.
816
817 Thu Jul  6 18:30:36 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
818
819         * reload.c (push_reload): When seeing if can reuse a register,
820         check extra registers against widest of INMODE and OUTMODE.
821
822 2000-07-06  Neil Booth  <NeilB@earthling.net>
823
824         * cpplib.c: (_cpp_parse_assertion):  Perform hash lookups
825         based on full length of predicate.
826
827 2000-07-06  Hans-Peter Nilsson  <hp@axis.com>
828
829         * timevar.c: [HAVE_SYS_RESOURCE_H]: Include <sys/resource.h>.
830         [NEED_DECLARATION_GETRUSAGE]: Declare getrusage.
831
832 2000-07-05  Kazu Hirata  <kazu@hxi.com>
833
834         * h8300-proto.h: Fix formatting.
835         * h8300.c: Likewise.
836         * h8300.h: Likewise.
837
838 2000-07-05  Jim Wilson  <wilson@cygnus.com>
839
840         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): If FR_REGNO_P, disallow
841         CCmode.
842
843 2000-07-05  Rodney Brown  <RodneyBrown@pmsc.com>
844
845         * invoke.texi: Fix minor typos
846         * md.texi: Fix minor typos
847
848 2000-07-05  Zack Weinberg  <zack@wolery.cumb.org>
849
850         * cpplib.c (_cpp_parse_assertion): Fix buffer overrun.
851
852 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
853
854         * cpplex.c: Don't include sys/mman.h.
855         (cpp_push_buffer, cpp_pop_buffer): Moved to cpplib.c.
856
857         * cpplib.c: Include sys/mman.h and obstack.h.
858         (cpp_push_buffer): Moved from cpplex.c; allocate buffers on an
859         obstack.
860         (cpp_pop_buffer): Moved from cpplex.c; free buffers from an obstack.
861         (_cpp_unwind_if_stack): Now static, unwind_if_stack.  Don't
862         bother freeing if stack entries (they will be freed with their buffer).
863         (do_endif): Free if stack entries from the buffer obstack.
864         (push_conditional): Allocate if stack entries from the buffer obstack.
865
866         (find_answer): Rename to _cpp_find_answer.
867         (do_assert, do_unassert): Update.
868
869         * cpphash.h: Update prototypes.
870         (xobnew): New convenience macro.
871         * cpplib.h (struct cpp_reader): Add hash_ob and buffer_ob fields.
872         Update comments.
873         (struct cpp_hashnode): Remove disabled field.
874
875         * cppinit.c: Don't include hashtab.h or splay-tree.h.
876         (report_missing_guard): Moved to cppfiles.c.
877         (cpp_reader_init): Call cpp_init_stacks, cpp_init_macros,
878         cpp_init_includes.
879         (cpp_cleanup): Call cpp_cleanup_stacks, cpp_cleanup_macros,
880         cpp_cleanup_includes.  Don't destroy hashtab or
881         all_include_files here.
882         (cpp_finish): Use _cpp_report_missing_guards.
883
884         * cppfiles.c (report_missing_guard): Moved from cppinit.c.
885         (_cpp_init_include_table): Rename _cpp_init_includes.
886         (_cpp_cleanup_includes, _cpp_report_missing_guards): New.
887
888         * cppexp.c (parse_assertion): Update for new name of
889         find_answer.
890
891         * Makefile.in (cpplib.o, cpphash.o, cppinit.o): Update deps.
892
893 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
894
895         * cpplib.c (do_ident): s/VSPACE/EOF/
896
897 2000-07-05  Neil Booth  <NeilB@earthling.net>
898
899         * cpplex.c: Fix trigraph replacement within strings.
900
901 2000-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
902
903         * rs6000/aix.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier.
904
905         * xcoffout.c (assign_type_number): Constify.
906         (xcoffout_source_file): Add static prototype.  Don't needlessly
907         cast away const-ness.
908
909 2000-07-04  Jason Merrill  <jason@redhat.com>
910
911         * frame.h (frame_state): Move base_offset to end.
912
913 Mon Jul  3 21:31:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
914
915         * calls.c (emit_library_call_value_1): Revert previous change.
916
917 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
918
919         * fix-header.c (struct partial_proto): Remove unnecessary fields.
920         (recognized_extern, recognized_function, read_scan_file):
921         Update for new scheme.
922         (check_protection): It's still a multiple include guard even
923         if it doesn't always trigger.
924         * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
925         new scheme.
926         * scan.h: Declare struct cpp_token.  Update prototypes.
927
928 2000-07-03  Neil Booth  <neilb@earthling.net>
929             Zack Weinberg  <zack@wolery.cumb.org>
930
931         Complete overhaul of the lexer and macro expander.
932
933         * cpphash.c (object_defn, funct_defn, push_macro_expansion,
934         arg, arglist, argdata, reflist, collect_objlike_expansion,
935         collect_funlike_expansion, collect_params,
936         warn_trad_stringify, trad_stringify, duplicate_arg_p, add_pat,
937         unsafe_chars, macarg, compare_defs, special_symbol,
938         scan_arguments, stringify, funlike_macroexpand,
939         _cpp_quote_string, monthnames): Delete.
940         (cpp_lookup, _cpp_free_definition, dump_funlike_macro,
941         _cpp_create_definition, _cpp_dump_definition,
942         dump_hash_helper): Adjust.
943         (find_param, count_params, parse_define, var_args_str,
944         check_macro_redefinition, save_expansion): New.
945
946         * cpplex.c (skip_block_comment, skip_line_comment, parse_name,
947         parse_string, output_line_command, trigraph_replace,
948         lex_line, cpp_push_buffer, cpp_pop_buffer, cpp_output_tokens,
949         cpp_scan_buffer_nooutput, cpp_scan_buffer, cpp_free_toklist,
950         cpp_idcmp, _cpp_get_directive_token, _cpp_init_input_buffer,
951         _cpp_skip_rest_of_line): Modify.
952
953         (maybe_macroexpand, skip_comment, copy_comment, skip_string,
954         find_position, null_warning, bump_column, expand_name_space,
955         pedantic_whitespace, _cpp_output_list, _cpp_slice_toklist,
956         _cpp_squeeze_toklist, _cpp_scan_until, _cpp_skip_hspace,
957         _cpp_parse_name, _cpp_lex_token, cpp_get_non_space_token,
958         _cpp_prescan): Delete.
959
960         (dump_param_spelling, process_directive, lex_next,
961         is_macro_disabled, stringify_arg, expand_context_stack,
962         output_token, make_string_token, alloc_number_token,
963         special_symbol, duplicate_token, maybe_paste_with_next,
964         can_paste, prevent_macro_expansion, restore_macro_expansion,
965         get_temp_token, release_temp_tokens, quote_string,
966         token_names, token_spellings, _cpp_expand_name_space,
967         _cpp_glue_header_name, _cpp_reserve_name_space,
968         digraph_spellings, trigraph_ok, skip_whitespace, save_comment,
969         placemarker_token, eof_token, cpp_context, macro_args,
970         get_raw_token, parse_arg, parse_args, save_token,
971         push_arg_context, push_macro_context, pop_context,
972         do_pop_context, free_macro_args, _cpp_get_line,
973         _cpp_run_directive): New.
974
975         * cpplib.c (validate_else, parse_include, push_conditional,
976         pass_thru_directive, read_line_number, parse_ifdef,
977         detect_if_not_defined, _cpp_check_directive, do_define,
978         do_undef, do_include, do_import, do_include_next, do_error,
979         do_warning, do_ident, do_pragma, pragma_dispatch, gcc_pragmas,
980         top_pragmas, do_pragma_gcc, do_pragma_implementation,
981         do_pragma_poison, do_pragma_system_header,
982         do_pragma_dependency, do_sccs, do_ifdef, do_ifndef, do_else,
983         dl_elif, do_endif, _cpp_unwind_if_stack, do_assert,
984         do_unassert, cpp_define, cpp_undef, cpp_assert, cpp_unassert,
985         cpp_defined): Update for new scheme.
986         (strtoul_for_line, get_define_node, dump_macro_name,
987         _cpp_check_linemarker, _cpp_parse_assertion): New.
988         (_cpp_handle_directive, do_pragma_default): Delete.
989
990         * cpphash.h (struct predicate): Now struct answer.
991         (enum spell_type, struct token_spelling, struct directive,
992         directive_handler): New.
993         Update prototypes.  Remove unused macros.
994         * cpplib.h: Update prototypes.  Remove unused macros,
995         structure definitions, and fields.
996
997         * cpperror.c (print_containing_files, v_message): Adjust.
998         * cppexp.c (parse_assertion, lex, parse_escape,
999         _cpp_parse_expr): Adjust.
1000         * cppfiles.c (open_include_file, _cpp_execute_include,
1001         _cpp_compare_file_date, cpp_read_file, read_include_file):
1002         Adjust.
1003         * cppinit.c (dump_special_to_buffer): Delete.
1004         (append_include_chain, merge_include_chains, cpp_reader_init,
1005         cpp_cleanup, initialize_builtins, builtin_array, cpp_start_read,
1006         cpp_finish, handle_option, print_help): Adjust.
1007         * cppmain.c (main): Adjust.
1008
1009 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
1010
1011         * cppspec.c (lang_specific_driver): Use double quotes in error
1012         message.
1013
1014 Mon Jul  3 16:53:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
1015
1016         * calls.c (emit_library_call_value_1): Use valreg instead
1017         of hard_libcall_value.
1018
1019 2000-07-03  Geoff Keating  <geoffk@cygnus.com>
1020
1021         * config/rs6000/rs6000.c (rs6000_emit_move): New function.
1022         * config/rs6000/rs6000-proto.h: Prototype rs6000_emit_move.
1023         * config/rs6000/rs6000.md (movsi): Use rs6000_emit_move.
1024         (movhi): Likewise.
1025         (movqi): Likewise.
1026         (movdf): Likewise.
1027         (movsf): Likewise.
1028         (movdi): Likewise.
1029         (movti): Likewise.
1030
1031         * expmed.c (expand_mult_highpart): Use op1 instead of wide_op1 when
1032         mode instead of wider_mode is being used.
1033
1034 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
1035
1036         * config/i386/i386.md (movstrictqi_xor): Use 'q' constraint instead
1037         of 'r'. Use q_regs_operand.
1038         (andsi_1+2): Use q_regs_operand.
1039
1040 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
1041
1042         * builtins.c (get_memory_rtx): Always put into alias set 0.
1043
1044 2000-07-03  Nick Clifton  <nickc@cygnus.com>
1045
1046         * config/arm/arm.md: Fix post increment and pre increment
1047         peepholes so that they do not generate UNPREDICATBLE opcodes.
1048         (ie ones where the increment clobbers the source/destination).
1049
1050 2000-07-01  Marek Michalkiewicz  <marekm@linux.org.pl>
1051
1052         * config/avr/avr.c (out_adj_frame_ptr): Make "frame pointer
1053         change too big for -mtiny-stack" a warning, if larger than 63.
1054         (out_set_stack_ptr): Change the logic so -mno-interrupts is
1055         always safe to use on possible future devices.
1056         (function_prologue): Write SPH before SPL, for consistency.
1057         If interrupt_func_p true, we know we have enabled interrupts.
1058         (avr_num_arg_regs): New function.  Round up to even number of
1059         bytes if no -mpack-args or if calling a libgcc function.
1060         (function_arg, function_arg_advance): Use it.
1061         (output_movsisf, ashlsi3_out, ashrsi3_out, lshrsi3_out):
1062         Output "movw" if available.
1063         (out_tsthi, out_tstsi, ashlqi3_out, lshrqi3_out): Change uses
1064         of TEST_HARD_REG_CLASS macro to test_hard_reg_class function.
1065         (asm_output_section_name): Add blanks for consistent output.
1066         (encode_section_info): Set TREE_READONLY for progmem data to
1067         avoid gas warnings about changed section attributes.
1068         (avr_hard_regno_mode_ok): Force non-QImode data to start in
1069         even numbered registers on devices with "movw".
1070         * config/avr/avr.h (MASK_*): Define bits for target_flags.
1071         (TARGET_SWITCHES): Mark help strings for translation.
1072         Add new -mpack-args and -menhanced switches.
1073         (TARGET_OPTIONS): Mark help strings for translation.
1074         (progmem_section): Add section attributes.
1075         * config/avr/avr.md (*movhi, call_insn, call_value_insn):
1076         Output "movw" if available.
1077         (mulqi3, mulqihi3, umulqihi3, mulhi3, *tablejump_enh):
1078         New patterns.
1079         * config/avr/libgcc.S (_mulqi3, _divqi3): Update to the new
1080         call convention (arguments aligned on even registers).
1081         (_cleanup, _exit): Make weak symbols libc can override.
1082
1083 2000-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1084
1085         * fp-bit.h: New file.
1086
1087         * fp-bit.c: Move common code, prototypes, etc into fp-bit.h.
1088         Comment #endif statements.
1089         (__thenan_sf, __thenan_df): Add missing braces around initializer.
1090
1091 Mon Jul  3 00:32:47 2000  Jeffrey A Law  (law@cygnus.com)
1092
1093         * gcse.c (compute_pre_data): Compute ae_kill using other local
1094         properties instead of calling compute_ae_kill.
1095
1096         * alias.c (init_alias_analysis): Do not call
1097         prologue_epilogue_contains until after reload has completed.
1098
1099 2000-07-02  Benjamin Chelf  <chelf@codesourcery.com>
1100
1101         * c-common.h (genrtl_begin_compound_stmt): Remove declaration.
1102         (genrtl_finish_compound_stmt): Likewise.
1103         (genrtl_compound_stmt): Change to return void.
1104
1105         * c-semantics.c (genrtl_begin_compound_stmt): Remove function and
1106         move code from here to ...
1107         (genrtl_compound_stmt): ... here.
1108         (genrtl_finish_compound_stmt): Remove.
1109         (expand_stmt): Add comment.
1110
1111 2000-07-02  Zack Weinberg  <zack@wolery.cumb.org>
1112
1113         * c-typeck.c (build_indirect_ref): Use COMPLETE_OR_VOID_TYPE_P
1114         and VOID_TYPE_P.
1115
1116 2000-07-02  Jakub Jelinek  <jakub@redhat.com>
1117
1118         * cpplib.h (struct cpp_reader): New field include_depth.
1119         (struct cpp_printer): Rename last_bsd to last_id.
1120         * cppfiles.c (read_include_file): Bump include_depth.
1121         * cpplex.c (cpp_pop_buffer): Decrement include_depth.
1122         (output_line_command): Output correct #line if a header
1123         is including itself and is not protected against multiple inclusion.
1124         Use include_depth instead of buffer_stack_depth, last_id instead of
1125         last_bsd.
1126         * cppinit.c (cpp_start_read): Initialize last_id instead of
1127         last_bsd.
1128
1129 2000-07-01  Benjamin Chelf  <chelf@codesourcery.com>
1130
1131         * Makefile.in (C_AND_OBJC_OBJS): Added c-semantics.o.
1132         (c-semantics.o): New target.
1133
1134         * c-common.h (TREE_LANG_FLAG_?): Added documentation.
1135         (genrtl_do_pushlevel): Moved from cp/cp-tree.h.
1136         (genrtl_clear_out_block): Likewise.
1137         (genrtl_goto_stmt): Likewise.
1138         (genrtl_expr_stmt): Likewise.
1139         (genrtl_decl_stmt): Likewise.
1140         (genrtl_if_stmt): Likewise.
1141         (genrtl_while_stmt): Likewise.
1142         (genrtl_do_stmt): Likewise.
1143         (genrtl_return_stmt): Likewise.
1144         (genrtl_for_stmt): Likewise.
1145         (genrtl_break_stmt): Likewise.
1146         (genrtl_continue_stmt): Likewise.
1147         (genrtl_scope_stmt): Likewise.
1148         (genrtl_switch_stmt): Likewise.
1149         (genrtl_case_label): Likewise.
1150         (genrtl_begin_compound_stmt): Likewise.
1151         (gerntl_finish_compound_stmt): Likewise.
1152         (genrtl_compound_stmt): Likewise.
1153         (genrtl_asm_stmt): Likewise.
1154         (genrtl_decl_cleanup): Likewise.
1155         (DECL_ANON_UNION_ELEMS): Likewise.
1156         (emit_local_var): Likewise.
1157         (make_rtl_for_local_static): Likewise.
1158         (expand_cond): Likewise.
1159         (expand_stmt): Likewise.
1160         (c_expand_return): Likewise.
1161         (c_expand_start_case): Likewise.
1162         (do_case): Likewise.
1163         (COMPOUND_STMT_NO_SCOPE): Likewise.
1164         (c_expand_asm_operands): Likewise.
1165         (NEW_FOR_SCOPE_P): New macro.
1166         (expand_expr_stmt_fn): New type.
1167
1168         (set_current_function_name_declared): Likewise.
1169         (current_function_name_declared): Likewise.
1170         (lang_expand_stmt): Likewise.
1171         (stmts_are_full_exprs_p): Likewise.
1172         (anon_aggr_type_p): Likewise.
1173         (lang_expand_expr_stmt): Likewise.
1174         (build_case_label): Likewise.
1175
1176         * c-decl.c (lang_expand_expr_stmt): Initialize.
1177         (stmts_are_full_exprs_p): Define.
1178         (current_function_name_declared): Likewise.
1179         (do_case): Likewise.
1180         (lang_expand_stmt): Likewise.
1181         (set_current_function_name_declared): Likewise.
1182         (anon_aggr_type_p): Likewise.
1183
1184         * c-semantics.c: New file.
1185         (expand_cond): Moved from cp/semantics.c.
1186         (genrtl_do_pushlevel): Likewise.
1187         (genrtl_clear_out_block): Likewise.
1188         (genrtl_goto_stmt): Likewise.
1189         (genrtl_expr_stmt): Likewise.
1190         (genrtl_decl_stmt): Likewise.
1191         (genrtl_if_stmt): Likewise.
1192         (genrtl_while_stmt): Likewise.
1193         (genrtl_do_stmt): Likewise.
1194         (genrtl_return_stmt): Likewise.
1195         (genrtl_for_stmt): Likewise.
1196         (genrtl_break_stmt): Likewise.
1197         (genrtl_continue_stmt): Likewise.
1198         (genrtl_scope_stmt): Likewise.
1199         (genrtl_switch_stmt): Likewise.
1200         (genrtl_case_label): Likewise.
1201         (genrtl_begin_compound_stmt): Likewise.
1202         (genrtl_finish_compound_stmt): Likewise.
1203         (genrtl_compound_stmt): Likewise.
1204         (genrtl_asm_stmt): Likewise.
1205         (genrtl_decl_cleanup): Likewise.
1206         (make_rtl_for_local_static): Moved from cp/decl.c.
1207         (emit_local_var): Likewise.
1208         (expand_stmt): Define.
1209
1210         * c-tree.h: (c_expand_asm_operands): Moved to c-common.h.
1211         (c_expand_return): Likewise.
1212         (c_expand_start_case): Likewise.
1213
1214 2000-07-01  Richard Henderson  <rth@cygnus.com>
1215
1216         * config/ia64/ia64.c (symbolic_operand): Reject CONST expressions
1217         with the low 13 bits set.
1218         (move_operand): Check for CONST|SYMBOL_REF|LABEL_REF directly.
1219         * config/ia64/ia64.md (movdi): Likewise.  Expand a CONST with one
1220         of the low 13 bits into a CONST plus an adddi3.
1221         (load_symptr): Set RTX_UNCHANGING_P.
1222
1223 2000-06-30  Mark Mitchell  <mark@codesourcery.com>
1224
1225         * Makefile.in (c-common.o): Don't depend on c-tree.h or c-lex.h.
1226         * c-common.c (ridpointers): Declare.
1227         * c-common.h (enum rid): Declare.
1228         (NORID): Likewise.
1229         (ridpointers): Likewise.
1230         * c-lex.c (ridpointers): Don't declare.
1231         (init_lex): Initialize ridpointers.
1232         * c-lex.h (enum rid): Don't declare.
1233         (NORID): Likewise.
1234         (RID_FIRST_MODIFIER): Likewise.
1235         (ridpointers): Likewise.
1236
1237 2000-06-30  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1238
1239         * pa/som.h (ASM_WEAKEN_LABEL): Export weak data symbols so that they
1240         have global scope.
1241
1242 2000-06-30  Martin von Loewis  <loewis@informatik.hu-berlin.de>
1243
1244         * invoke.texi (-Wreturn-type): In C++, a missing return type is
1245         always an error.
1246
1247 2000-06-30  Catherine Moore  <clm@cygnus.com>
1248
1249         * c-common.c (decl_attributes):  Differentiate between
1250         types and type decls for alignment.
1251
1252 2000-06-30  Nathan Sidwell  <nathan@codesourcery.com>
1253
1254         * cpp.texi: Document #pragma GCC dependency
1255         * cppfiles.c (open_include_file): Set date to unknown.
1256         (_cpp_compare_file_date): New function.
1257         (read_include_file): Set file date.
1258         * cpphash.h (struct include_file): Add date member.
1259         (_cpp_compare_file_date): Prototype.
1260         * cpplib.c (parse_include): Add trail parameter. Adjust.
1261         (do_include): Adjust parse_include call.
1262         (do_import): Likewise.
1263         (do_include_next): Likewise.
1264         (gcc_pragmas): Add dependency pragma.
1265         (do_pragma_dependancy): New pragma.
1266
1267 2000-06-29  Jason Merrill  <jason@redhat.com>
1268
1269         * dwarf2out.c (output_loc_operands): Don't abort on codes that have
1270         no operands.
1271
1272 2000-06-29  Jim Wilson  <wilson@cygnus.com>
1273
1274         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Return NO_REGS for
1275         a volatile mem and FR_REGS.
1276
1277 2000-06-29  Mark Mitchell  <mark@codesourcery.com>
1278
1279         * c-common.c: Include c-common.h, not c-lex.h or c-tree.h.
1280         * c-common.h (flag_const_strings): Declare.
1281         (warn_format): Likewise.
1282         (flag_traditional): Likewise.
1283         (flag_isoc99): Likewise.
1284         (warn_parentheses): Likewise.
1285         (warn_conversion): Likewise.
1286         (C_TYPE_OBJECT_P): Likewise.
1287         (C_TYPE_INCOMPLETE_P): Likewise.
1288         (C_TYPE_FUNCTION_P): Likewise.
1289         (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
1290         (C_EXP_ORIGINAL_CODE): Likewise.
1291         (build_unary_op): Likewise.
1292         (build_binary_op): Likewise.
1293         (lvalue_p): Likewise.
1294         (default_conversion): Likewise.
1295         (common_type): Likewise.
1296         * c-tree.h (C_TYPE_OBJECT_P): Remove.
1297         (C_TYPE_INCOMPLETE_P): Likewise.
1298         (C_TYPE_FUNCTION_P): Likewise.
1299         (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
1300         (C_EXP_ORIGINAL_CODE): Likewise.
1301         (common_type): Likewise.
1302         (default_conversion): Likewise.
1303         (build_binary_op): Likewise.
1304         (build_unary_op): Likewise.
1305         (lvalue_p): Likewise.
1306         (flag_const_strings): Likewise.
1307         (warn_format): Likewise.
1308         (warn_conversion): Likewise.
1309         (flag_traditional): Likewise.
1310         (flag_isoc99): Likewise.
1311         (warn_parentheses): Likewise.
1312
1313 2000-06-29  James E. Wilson  <wilson@cygnus.com>
1314
1315         * config/ia64/linux.h (LINK_SPEC): Change so.1 to so.2.
1316
1317         * config/ia64/ia64.h (MODES_TIEABLE_P): Only tie if mode class is the
1318         same.  Only tie XFmode with XFmode.
1319
1320 2000-06-29  Zack Weinberg  <zack@wolery.cumb.org>
1321
1322         * c-decl.c, timevar.c, tlink.c: Include intl.h.
1323         * Makefile.in: Update deps.
1324
1325 2000-06-29  Andrew Haley  <aph@cygnus.com>
1326
1327         * toplev.c (main): On an IA-64, make flag_unwind_tables defauit
1328         to true.
1329
1330 2000-06-29  Andrew Haley  <aph@cygnus.com>
1331
1332         * config/ia64/linux.h (JMP_BUF_SIZE): Size is in Pmode units, not
1333         bytes: remove the multiply by 8.
1334
1335 2000-06-29  Philipp Thomas  <pthomas@suse.de>
1336
1337         * rtl.c : Revert NLS changes.
1338         * gcc.c : Fix bug in display_help introced by my last changes.
1339
1340 Wed Jun 28 21:09:33 2000   Raja R Harinath <harinath@cs.umn.edu>
1341
1342         * dbxout.c (dbxout_symbol, case RESULT_DECL, VAR_DECL): Use
1343         DECL_CONTEXT, not DECL_FIELD_CONTEXT.
1344
1345 2000-06-29  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1346
1347         * flow.c (flow_depth_first_order_compute): Fix algorithm.
1348
1349 2000-06-28  Philipp Thomas  <pthomas@suse.de>
1350
1351         * c-decl.c : Mark strings for translation.
1352         (parmlist_tags_warning): Use distinct messages instead
1353         of conditional expressions.
1354         * diagnostic.c (v_message_with_decl): Mark string for translation.
1355         * gcc.c: Mark messages for translation.
1356         (display_help): Combine messages into one string where necessary.
1357         * mips-tfile: Add intl.h. Mark messages for translation.
1358         * rtl.c (fatal_with_file_and_line): Modify function for NLS. Mark
1359         messages for translation.
1360         * timevar.c: Mark messages for translation.
1361         * tlink.c: Likewise.
1362         * toplev.c: Likewise.
1363
1364 Wed Jun 28 15:39:26 2000  Donn Terry (donnte@microsoft.com)
1365
1366         * i386-interix.h (STRIP_NAME_ENCODING): Declare _new_name properly.
1367
1368         * alpha/alpha-interix.h: Delete redundant -Asystem(interix),
1369         use -isystem instead of -idirafter.
1370         * i386/i386-interix.h: Likewise.
1371
1372 2000-06-28  Jason Merrill  <jason@redhat.com>
1373
1374         * dwarf2out.c (output_loc_operands): Don't support >1 byte output
1375         unless DWARF2_DEBUGGING_INFO is defined.
1376         (ASM_OUTPUT_DWARF_*): Wrap normal output defs with #ifndefs.
1377
1378 2000-06-28  Richard Henderson  <rth@cygnus.com>
1379
1380         * config/alpha/alpha.c (summarize_insn): Ignore SCRATCH.
1381
1382 2000-06-28  Jakub Jelinek  <jakub@redhat.com>
1383
1384         * cpplex.c (output_line_command): Output correct #line if a header
1385         is including itself and is not protected against multiple inclusion.
1386
1387 2000-06-28  Zack Weinberg  <zack@wolery.cumb.org>
1388
1389         * cppfiles.c (open_include_file): If open(2) returns EMFILE or
1390         ENFILE, close all cached file descriptors and try again.
1391         (_cpp_execute_include): Keep a count of the number of times
1392         each header is included.
1393         (close_cached_fd): New function.
1394         * cpphash.h (struct include_file): Rename before to
1395         include_count; all users updated.  Make include_count and sysp
1396         unsigned short.
1397         * cppinit.c (cpp_finish): If -H, report headers that could use
1398         reinclude guards.
1399         (report_missing_guard): New function.
1400
1401 Wed Jun 28 14:46:58 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1402
1403         * i386.md (prologue_set_got): Set length_immediate field.
1404         (testqi_ccno_1):  Add missing '@' character.
1405
1406 2000-06-27  Jason Merrill  <jason@redhat.com>
1407
1408         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Use
1409         DWARF_FRAME_REGNUM.
1410
1411 2000-06-27  Andrew Macleod <amacleod@cygnus.com>
1412
1413         * dwarf2out.c (ASM_OUTPUT_DWARF_DATA2): Provide default when no
1414         unsigned macros available.
1415
1416 2000-06-27  Richard Henderson  <rth@cygnus.com>
1417
1418         * config/ia64/ia64.c (emit_insn_group_barriers): Special case
1419         epilogue_deallocate_stack.
1420
1421         * config/ia64/ia64.c (ia64_print_operand) [case D]: Emit
1422         completers for UNORDERED and ORDERED as well.
1423         * config/ia64/ia64.md (bunordered, bordered): New.
1424         (sunordered, sordered): New.
1425
1426 Tue Jun 27 12:14:12 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1427
1428         * genattrtab.c (write_attr_value): Do not abort for CONST_INT operands.
1429         * i386.c (ix86_attr_length_default): Kill.
1430         (ix86_attr_length_immediate_default, ix86_attr_length_address_default):
1431         New.
1432         * i386-protos.h (ix86_attr_length_default): Kill
1433         (ix86_attr_length_immediate_default, ix86_attr_length_address_default):
1434         Add prototype
1435         * i386.md (attribute type): Add "test".
1436         (attribute length_prefix): Kill.
1437         (attribute length_opcode): Kill.
1438         (attribute i387, mode, length_immediate, length_address, prefix_data16,
1439         prefix_rep, prefix_0f, modrm): New.
1440         (attribute length): Compute using the new attributes.
1441         (attribute pent_prefix): New.
1442         (attribute pent_pair): Compute using pent_prefix.
1443         (all insn patterns): Set mode,modrm and immediate_length attributes where
1444         needed.
1445         (cmpsi patterns): Compute sizes propertly for test instruction.
1446         (movsi, movhi patterns): Compute sizes propertly for eax shortcuts.
1447         (movstricthi_xor, movstrictqi_xor): New patterns.
1448         (andsi/andhi): Use splitters to generate xor instructions.
1449         (xorqi_ext_1): New pattern.
1450         (movstricthi->movstricthi_xor peep2): New.
1451
1452 Tue Jun 27 12:03:03 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1453
1454         * i386.md (addqi_low_1): Remove.
1455
1456 2000-06-27  Philipp Thomas  <pthomas@suse.de>
1457
1458         * 1750a.h: Mark help strings for options/switches for translation.
1459         * a29k.h: Likewise.
1460         * alpha.h: Likewise.
1461         * arm.h: Likewise.
1462         * pe.h: Likewise.
1463         * riscix.h: Likewise.
1464         * c4x.h: Likewise.
1465         * clipper.h: Likewise.
1466         * convex.h: Likewise.
1467         * elxsi.h: Likewise.
1468         * fr30.h: Likewise.
1469         * fx80.h: Likewise.
1470         * h8300.h: Likewise.
1471         * i370.h: Likewise.
1472         * cygwin.h: Likewise.
1473         * dgux.h: Likewise.
1474         * djgpp.h: Likewise.
1475         * i386.h: Likewise.
1476         * osf1elf.h: Likewise.
1477         * osfrose.h: Likewise.
1478         * sco5.h: Likewise.
1479         * win32.h: Likewise.
1480         * i860.h: Likewise.
1481         * paragon.h: Likewise.
1482         * i960.h: Likewise.
1483         * ia64.h: Likewise.
1484         * m32r.h: Likewise.
1485         * mcore.h: Likewise.
1486         * mips.h: Likewise.
1487         * mn10300.h: Likewise.
1488         * ns32k.h: Likewise.
1489         * pdp11.h: Likewise.
1490         * pj.h: Likewise.
1491         * aix.h: Likewise.
1492         * aix41.h: Likewise.
1493         * aix43.h: Likewise.
1494         * beos.h: Likewise.
1495         * rs6000.h: Likewise.
1496         * sysv4.h: Likewise.
1497         * linux.h: Likewise.
1498         * linux64.h: Likewise.
1499         * sp64-elf.h: Likewise.
1500         * sparc.h: Likewise.
1501         * splet.h: Likewise.
1502         * v850.h: Likewise.
1503         * convex.h (TARGET_SWITCHES): Provide descriptions and mark them
1504         for translation.
1505         * sp86x-aout.h: Remove bogus first definition of SUBTARGET_SWITCHES.
1506         Properly document option and mark for translation.
1507         * sp86x-elf.h: Likewise.
1508
1509 2000-06-27  Bernd Schmidt  <bernds@cygnus.co.uk>
1510
1511         Add MMX and SSE registers to i386 machine description.
1512         * i386-protos.h (ix86_constant_alignment, ix86_data_alignment,
1513         ix86_local_alignment): Declare.
1514
1515         * i386.h (TARGET_MMX, TARGET_SSE): New.
1516         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS,
1517         REG_ALLOC_ORDER, HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
1518         REG_CLASS_NAMES, REG_CLASS_CONTENTS,REG_CLASS_FROM_LETTER,
1519         enum reg_class, HI_REGISTER_NAMES): Added MMX/SSE registers.
1520         (FIRST_SSE_REG, LAST_SSE_REG, SSE_REGNO_P): New.
1521         (FIRST_MMX_REG, LAST_MMX_REG, MMX_REGNO_P, MMX_REG_P): New macros.
1522         (RETURN_IN_MEMORY): Handle MMX/SSE.
1523         (REG_PARM_STACK_SPACE): Added so the first three TImode parameters
1524         also get stack space.
1525         (MUST_PASS_IN_STACK): Added TImode to the default definition.
1526         (CUMULATIVE_ARGS): Added sse_nregs, sse_regno and sse_words.
1527         (MMX_REGISTER_NAMES): New.
1528         (ALIGN_MODE_128): New macro.
1529         (CONSTANT_ALIGNMENT): Code moved out-of-line; just call the function.
1530         (DATA_ALIGNMENT): Likewise.
1531         (LOCAL_ALIGNMENT): Likewise.
1532         (CONDITIONAL_REGISTER_USAGE): Make MMX/SSE regs fixed if not
1533         TARGET_MMX/TARGET_SSE.
1534         (VALID_SSE_REG_MODE, VALID_MMX_REG_MODE): New macros.
1535         (REG_CLASS_FROM_LETTER): 'y' for MMX regs.
1536         (SECONDARY_MEMORY_NEEDED): Be conservative about copying between
1537         SSE/MMX regs and something else.
1538         (CLASS_MAX_NREGS): 1 for SSE and MMX regs.
1539         (REGISTER_MOVE_COST): 10 if trying to move between MMX and SSE regs,
1540         3 if moving between MMX regs and something else.
1541
1542         * i386.c (reg_class): Add SSE_REGS, MMX_REGS.
1543         (regclass_map): Add MMX/SSE registers.
1544         (print_operand): Add code to print XMMWORD as appropriate.
1545         (ix86_split_movdi): Abort for MMX regs.
1546         (init_cumulative_args): Also allow SSE_REGS
1547         (function_arg_advance, function_arg): Likewise
1548         (print_reg): Support 'm'.  Add case for TImode.
1549         (override_options): TARGET_SSE implies TARGET_MMX.
1550         (ix86_constant_alignment, ix86_data_alignment, ix86_local_alignment):
1551         New functions.
1552
1553         * config/i386/unix.h (VALUE_REGNO): VECTOR_MODE values go to
1554         FIRST_SSE_REG.
1555         * config/i386/ptx4-i.h (RETURN_IN_MEMORY): Return MMX values in
1556         memory.
1557         * config/i386/sysv4.h (RETURN_IN_MEMORY): Likewise.
1558         * config/i386/i386elf.h (RETURN_IN_MEMORY): Likewise.
1559
1560 2000-06-26  Geoff Keating  <geoffk@cygnus.com>
1561
1562         * ssa.c (struct rename_set_data): Change the name of field
1563         'set_dest' to 'old_reg'.  Add comments.
1564         (struct rename_context): Change the name of 'set_data' to
1565         'new_renames'.  Add new field 'done_renames'.
1566         (create_delayed_rename): New function.
1567         (apply_delayed_renames): New function.
1568         (rename_insn_1): Use the new functions.  Handle CLOBBERS.  Handle
1569         SUBREGs and similar by emitting a move.
1570         (new_registers_for_updates): Delete, functionality moved to
1571         apply_delayed_renames.
1572         (rename_block): Handle moves emitted by rename_insn_1 by putting
1573         them into a SEQUENCE with the original insn.  Add sanity checks
1574         and comments.
1575         (rename_equivalent_regs_in_insn): Don't handle SUBREGs specially.
1576         (rename_equivalent_regs): Expand SEQUENCEs out to individual insns.
1577
1578 2000-06-26  Andrew Macleod <amacleod@cygnus.com>
1579             Jason Merrill <jason@redhat.com>
1580
1581         * dwarf2.h (enum dwarf_call_frame_info): Add
1582         DW_CFA_def_cfa_expression.
1583         * dwarf2out.c (union dw_cfi_oprnd_struct): Add a pointer to a
1584         dw_loc_descr_struct entry.
1585         (struct cfa_loc): New structure to track a CFA location.
1586         (lookup_cfa): Take a cfa_loc parameter instead of a reg and an offset.
1587         (lookup_cfa_1): Take a cfa_loc parameter instead of a reg and an
1588         offset, plus handle DW_CFA_def_cfa_expression.
1589         (def_cfa_1): Use to be dwarf2out_def_cfa, only now it uses a
1590         cfa_loc record.
1591         (dwarf2out_def_cfa): Entry point maintained for compatability.
1592         (dwarf_cfi_name): Add DW_CFA_def_cfa_expression.
1593         (cfa_reg, cfa_offset): Replace with cfa_loc record 'cfa'.
1594         (cfa_store_reg, cfa_store_offset): Replace with cfa_loc 'cfa_store'.
1595         (initial_return_save, dwarf2out_stack_adjust): Use cfa.reg, not
1596         cfa_reg.
1597         (dwarf2out_frame_debug_expr): Use new cfa_loc records. Recognize rtl
1598         sequences for the new DW_CFA_def_cfa_expression record.
1599         (dwarf2out_frame_debug): Use new variables/fields.A
1600         (output_cfi): Handle DW_CFA_def_cfa_expression.
1601         (output_cfa_loc): New function to generate a CFI record for
1602         DW_CFA_def_cfa_expression.
1603         (get_cfa_from_loc_descr): New function to get a cfa_loc record from
1604         a dw_loc_descr sequeunce.
1605         (build_loc_descr): Build a dw_loc_descr from a cfa_loc record.
1606         (dwarf_stack_op_name, new_loc_descr, add_loc_descr, size_of_loc_descr,
1607         size_of_locs, output_loc_operands, output_loc_sequence): Move into
1608         unwind info section.
1609         * frame.h (frame_state): Add base_offset and indirect fields.
1610         * frame-dwarf2.c (decode_stack_op): New function to interpret a
1611         dw_loc_descr operation.
1612         (execute_cfa_insn): Add support for DW_CFA_def_cfa_expression.
1613         (struct frame_state): Add base offset and indirect fields.
1614         * libgcc2.c (next_stack_level): Support indirect loading for CFA.
1615
1616 2000-06-26  Joseph S. Myers  <jsm28@cam.ac.uk>
1617
1618         * c-decl.c (grokdeclarator): Don't warn about `long long' in C99.
1619         Make warnings about implicit int be pedwarns in C99.  Don't warn
1620         about duplicate type qualifiers in C99.
1621         (start_function): Make warning about implict int return type be a
1622         pedwarn in C99.
1623         * c-lex.c (yylex): Don't warn about `long long' in C99.
1624         * c-typeck.c (c_expand_return): In C99, always pedwarn about
1625         `return' with no value in function returning non-void.
1626
1627 2000-06-26  Richard Henderson  <rth@cygnus.com>
1628
1629         * c-typeck.c (pedwarn_c99): New.
1630         * diagnostic.c (verror, vwarning, vpedwarn): Export.
1631         * toplev.h: Prototype them.
1632
1633 2000-06-26  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1634
1635         * c-typeck.c (digest_init): Return error_mark_node node when
1636         TREE_TYPE (init)  == error_mark_node.
1637
1638 2000-06-26  Philipp Thomas  <pthomas@suse.de>
1639
1640         * aclocal.m4 (AM_WITH_NLS): Don't set MSGFMT or GMSGFMT to no,
1641         test for msgfmt without path instead.
1642         * configure: Rebuilt.
1643
1644 2000-06-25 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
1645
1646         * gengenrtl.c (special_rtx): Fix typo in comment.
1647
1648 2000-06-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1649
1650         * mklibgcc.in (LIB2FUNCS): Add missing space.
1651
1652 2000-06-24  Bernd Schmidt  <bernds@cygnus.co.uk>
1653
1654         * tree.h (enum tree_index): Add vector type nodes.
1655         Add accessor macros for them.
1656         (TYPE_REPRESENATION_TYPE): New macro.
1657         * tree.c (build_common_tree_nodes_2): Build these nodes.
1658         (finish_vector_type): New function.
1659         * c-common.c (type_for_mode): Handle vector modes.
1660         * tm.texi (VECTOR_MODE_SUPPORTED_P): Document.
1661
1662         * dbxout.c (dbxout_type): Handle VECTOR_TYPEs.
1663         * dwarf.h (enum dwarf_fundamental_type): Add 128 bit integers.
1664         * dwarf2out.c (lookup_type_die): Handle VECTOR_TYPEs.
1665         (gen_type_die): Likewise.
1666         * dwarfout.c (dwarf_fund_type_name): Handle 128 bit integers.
1667         (fundamental_type_code): Likewise.
1668         (type_is_fundamental): VECTOR_TYPEs aren't.
1669         (output_type): Handle VECTOR_TYPEs.
1670
1671 2000-06-25  Kazu Hirata  <kazu@hxi.com>
1672
1673         * config/arm.c: Fix a comment typo.
1674         * config/arm.h: Likewise.
1675
1676 2000-06-25  Philipp Thomas  <pthomas@suse.de>
1677
1678         * aclocal.m4 (AM_WITH_NLS): Set create_catalogs=no if no catalog
1679         compiler found.
1680         AM_GNU_GETTEXT: Don't set CATALOGS if create_catalogs=no.
1681         * configure: Rebuilt.
1682
1683 2000-06-25  John David Anglin  <dave.anglin@nrc.ca>
1684
1685         * config/vax/vax.h (TARGET_SWITCHES): Provide descriptions.
1686
1687 2000-06-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1688
1689         * mklibgcc.in: Prefer LIB1ASMFUNCS over LIB2FUNCS when generating
1690         libgcc.a.
1691
1692 2000-06-24  Marc Espie <espie@cvs.openbsd.org>
1693
1694         * collect2.c (resolve_lib_name): Move '/' check out of loop.
1695
1696 2000-06-24  Dirk Duellmann  <Dirk.Duellmann@cern.ch>
1697
1698         * ginclude/stddef.h (NULL): define for non-gnu C++ parsers as 0.
1699
1700 2000-06-24  Jakub Jelinek  <jakub@redhat.com>
1701
1702         * stmt.c (expand_decl_cleanup): Emit a dummy insn after
1703         last_unconditional_cleanup.
1704
1705 2000-06-24  Bernd Schmidt  <bernds@cygnus.co.uk>
1706
1707         * tree.def (VECTOR_TYPE): New node type.
1708         * tree.h: Adjust some comments to reflect addition of vector types.
1709         (TYPE_VECTOR_SUBPARTS): New macro.
1710         * stor-layout.c (layout_type): Handle VECTOR_TYPE.
1711         * c-convert.c (convert): Likewise.
1712         * convert.c (convert_to_integer): Handle vector modes.
1713         (convert_to_vector): New function.
1714         * convert.h (convert_to_vector): Declare.
1715         * expr.c (convert_move): Handle vector modes.
1716         * expmed.c (extract_bit_field): Don't abort for vector modes.
1717
1718 2000-06-24  Marek Michalkiewicz  <marekm@linux.org.pl>
1719
1720         * config/avr/avr-protos.h (avr_hard_regno_mode_ok): New prototype.
1721         * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr):
1722         New functions, common code moved from function_{prologue,epilogue}
1723         and extended to support the -mtiny-stack option.
1724         (function_prologue, function_epilogue): Use them.
1725         Use lo8/hi8 consistently for asm output readability.
1726         (avr_hard_regno_mode_ok): New function.
1727         * config/avr/avr.h (TARGET_SWITCHES): Fix typo.  Add -mtiny-stack.
1728         (UNITS_PER_WORD): Define as 4 (not 1) when compiling libgcc2.c.
1729         (HARD_REGNO_MODE_OK): Call the avr_hard_regno_mode_ok function.
1730         * config/avr/avr.md (*mov_sp_r): Add support for -mtiny-stack.
1731         Write SPH before SPL.
1732         (*movqi): No need to disable interrupts for just one "out"
1733         in alternative 5.  Change length attribute from 4 to 1.
1734         * config/avr/libgcc.S (__prologue_saves__, __epilogue_restores__):
1735         Write SPH before SPL.
1736
1737 2000-06-24  Bernd Schmidt  <bernds@cygnus.co.uk>
1738
1739         * rtl.texi (Vector Operations): New node.
1740         (Arithmetic): Add ss_plus, us_plus, ss_minus, us_minus.
1741         (Conversions): Add ss_truncate, us_truncate.
1742         * rtl.def (VEC_MERGE, VEC_SELECT, VEC_CONCAT, VEC_REORDER,
1743         VEC_CONST, VEC_DUPLICATE, SS_PLUS, SS_MINUS, SS_TRUNCATE,
1744         US_TRUNCATE): New rtx codes.
1745         * machmode.def: Add vector modes.
1746         * machmode.h (enum mode_class): Add MODE_VECTOR_INT and
1747         MODE_VECTOR_FLOAT.
1748         (INTEGER_MODE_P): Check for MODE_VECTOR_INT.
1749         (FLOAT_MODE_P): Check for MODE_VECTOR_FLOAT.
1750         (VECTOR_MODE_P): New.
1751
1752 2000-06-24  Nathan Sidwell  <nathan@codesourcery.com>
1753
1754         * cpp.texi: Clarify #pragma GCC namespace.
1755
1756 2000-06-24  Philipp Thomas  <pthomas@suse.de>
1757
1758         * aclocal.m4(AM_GNU_GETTEXT): If LINGUAS isn't set, build
1759         all catalogs specified in ALL_LINGUAS.
1760         * configure: Rebuilt.
1761
1762 2000-06-23  Jakub Jelinek  <jakub@redhat.com>
1763
1764         * config/sparc/sparc.md (reload_outdi+1): Handle
1765         HOST_BITS_PER_WIDE_INT == 64 case correctly.
1766         (adddi3_insn_sp32+1, adddi3_insn_sp32+2, andsi3+2): Likewise.
1767
1768 2000-06-23  Geoffrey Keating  <geoffk@cygnus.com>
1769
1770         * alias.c (fixed_scalar_and_varying_struct_p): Don't examine
1771         struct vs. scalar-ness when -fno-strict-aliasing.
1772
1773 2000-06-23  Nathan Sidwell  <nathan@codesourcery.com>
1774
1775         * cpplib.c (struct pragma_entry): New structure.
1776         (pragma_dispatch): Pragma dispatcher.
1777         (top_pragmas, gcc_pragmas): New static variables.
1778         (do_pragma): Use pragma_dispatch.
1779         (do_pragma_gcc): New pragma handler.
1780         * cpp.texi: Update.
1781
1782 2000-06-23  Jakub Jelinek  <jakub@redhat.com>
1783
1784         * calls.c (compute_argument_addresses): Force stack slots into
1785         alias set 0.
1786         * expr.c (emit_push_insn): Force pushes into alias set 0.
1787
1788 2000-06-23  Richard Henderson  <rth@cygnus.com>
1789
1790         * config/ia64/ia64.md (pred_rel_mutex): Only take one register.
1791         * config/ia64/ia64.c (emit_predicate_relation_info): Adjust to match.
1792
1793 2000-06-22  Jason Merrill  <jason@redhat.com>
1794
1795         * toplev.c (compile_file): Always call timevar_print.
1796         * Makefile.in (calls.o): Depend on TIMEVAR_H.
1797
1798 2000-06-22  Nathan Sidwell  <nathan@codesourcery.com>
1799
1800         * varasm.c (constant_descriptor): Make contents unsigned char.
1801         (mark_const_hash_entry): Adjust.
1802         (const_hash): Just hash the code of unknown nodes.
1803         (compare_constant_1): Adjust for unsigned char.
1804         Use language specific expander on unknown nodes.
1805         (record_constant_1): Likewise.
1806
1807 2000-06-21  Zack Weinberg  <zack@wolery.cumb.org>
1808
1809         * cppfiles.c (cpp_make_system_header): New function.
1810         * cpplib.h: Prototype it.
1811         * cpplib.c (do_line, do_pragma_system_header): Use it.
1812         * fix-header.c (read_scan_file): Use it.
1813
1814         * fix-header.c (check_macro_names): Cast second arg of
1815         cpp_defined to const unsigned char *.
1816         (read_scan_file): Make getchar_call const unsigned char.
1817
1818 2000-06-21  Zack Weinberg  <zack@wolery.cumb.org>
1819
1820         * cppfiles.c: Include splay-tree.h, not hashtab.h.
1821         (redundant_include_p, make_IHASH, hash_IHASH, eq_IHASH): Delete.
1822         (destroy_include_file_node): New.
1823         (_cpp_init_include_hash): Rename _cpp_init_include_table.
1824         Create a splay tree, not a hash table.
1825         (open_include_file): Look up the path in the include table,
1826         do the multiple include optimization here, etc.
1827         (cpp_included): Walk the path.
1828         (find_include_file): Just walk the path calling
1829         open_include_file, or call it directly for an absolute path.
1830         (_cpp_fake_ihash): Rename _cpp_fake_include and update for new
1831         scheme.
1832         (read_include_file): Update for new scheme.  Don't close the
1833         file unless reading fails.
1834         (_cpp_execute_include, cpp_read_file): Tweak for new scheme.
1835
1836         * cpphash.h (struct ihash, NEVER_REINCLUDE): Delete.
1837         (struct include_file): New.
1838         (NEVER_REREAD, DO_NOT_REREAD, CPP_IN_SYSTEM_HEADER): New
1839         macros.
1840         (CPP_PEDANTIC, CPP_WTRADITIONAL): Update.
1841         Update prototypes.
1842
1843         * cppinit.c: Include splay-tree.h.
1844         (cpp_reader_init, cpp_cleanup): Update.
1845
1846         * cpplib.h (struct cpp_buffer): Change ihash field to
1847         'struct include_file *inc'.  Remove system_header_p.
1848         (struct cpp_reader): Change all_include_files to a
1849         struct splay_tree_s *.
1850
1851         * cpplex.c: Update all references to cpp_buffer->ihash and/or
1852         cpp_buffer->system_header_p.
1853         (cpp_pop_buffer): Close file here, only if DO_NOT_REREAD.
1854
1855         * Makefile.in (SPLAY_TREE_H): New macro.
1856         (cppfiles.o, cppinit.o): Update dependencies.
1857
1858 Wed Jun 21 11:05:48 2000  Martin Buchholz <martin@xemacs.org>
1859
1860         * invoke.texi (g++): "g++" is not a script anymore.
1861
1862 2000-06-20  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1863
1864         * function.c (round_down): Delete obsolete prototype.
1865
1866         * pa.h (CPP_SPEC): Add whitespace after -D__STDC_EXT__.
1867
1868 2000-06-20  Zack Weinberg  <zack@wolery.cumb.org>
1869
1870         * configure.in: Use 'test a = b' not 'test a == b'.
1871         * configure: Regen.
1872
1873         * Makefile.in (fix-header): Link with $(LIBS) not $(HOST_LIBS).
1874
1875         * Makefile.in: Remove all references to HOST_INTLLIBS.
1876
1877         * cpplex.c (parse_name): Don't warn about $ in identifiers if
1878         skipping.
1879
1880 2000-06-20  Philipp Thomas  <pthomas@suse.de>
1881
1882         * config/pa/pa.h(TARGET_SWITCHES): Require binutils 2.10 or later
1883         for PA 2.0.
1884
1885 Mon Jun 19 23:26:40 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
1886
1887         * Take REG_INC notes into account.
1888
1889 2000-06-19  Zack Weinberg  <zack@wolery.cumb.org>
1890
1891         * c-parse.in (undeclared_variable_notice): Moved to c-typeck.c.
1892         (primary: IDENTIFIER): Just call build_external_ref.
1893         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
1894         Regenerate.
1895         * c-lex.c (lastiddecl): Remove.
1896         (yylex): Replace all instances of lastiddecl with local
1897         variables.
1898
1899         * c-typeck.c (build_external_ref): New function.  Treat decls
1900         with C_DECL_ANTICIPATED mostly the same as nonexistent decls.
1901         Look up the decl from the id here.  Call lookup_objc_ivar.
1902         * c-lang.c (lookup_objc_ivar): Stub.
1903         * objc/objc-act.c (lookup_objc_ivar): New function.
1904
1905         * c-tree.h: Prototype lookup_objc_ivar and build_external_ref.
1906         * c-lex.h: Don't declare lastiddecl.
1907
1908 2000-06-19  Benjamin Chelf  <chelf@codesourcery.com>
1909
1910         * c-common.h (IF_COND): Added documentation.
1911         (THEN_CLAUSE): Likewise.
1912         (ELSE_CLAUSE): Likewise.
1913         (WHILE_COND): Likewise.
1914         (WHILE_BODY): Likewise.
1915         (DO_COND): Likewise.
1916         (DO_BODY): Likewise.
1917         (RETURN_EXPR): Likewise.
1918         (EXPR_STMT_EXPR): Likewise.
1919         (FOR_INIT_STMT): Likewise.
1920         (FOR_COND): Likewise.
1921         (FOR_EXPR): Likewise.
1922         (FOR_BODY): Likewise.
1923         (SWITCH_COND): Likewise.
1924         (SWITCH_BODY): Likewise.
1925         (CASE_LOW): Likewise.
1926         (CASE_HIGH): Likewise.
1927         (GOTO_DESTINATION): Likewise.
1928         (COMPOUND_BODY): Likewise.
1929         (ASM_CV_QUAL): Likewise.
1930         (ASM_STRING): Likewise.
1931         (ASM_OUTPUTS): Likewise.
1932         (ASM_INPUTS): Likewise.
1933         (ASM_CLOBBERS): Likewise.
1934         (DECL_STMT_DECL): Likewise.
1935         (STMT_EXPR_STMT): Likewise.
1936         (LABEL_STMT_LABEL): Likewise.
1937
1938         * c-common.def: Added documenetion for SRCLOC, EXPR_STMT,
1939         COMPOUND_STMT, DECL_STMT, IF_STMT, FOR_STMT, WHILE_STMT, DO_STMT,
1940         RETURN_STMT, BREAK_STMT, CONTINUE_STMT, SWITCH_STMT, GOTO_STMT,
1941         LABEL_STMT, ASM_STMT, SCOPE_STMT, CASE_LABEL, STMT_EXPR.
1942
1943 2000-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1944
1945         * configure.in (--enable-checking): Update --help doc to reflect
1946         new defaults.  Ensure $ac_save_IFS is set before $IFS is changed.
1947
1948 Sun Jun 18 21:42:15 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1949
1950         * gcse.c (insert_insn_end_bb): Always put after NOTE_INSN_BASIC_BLOCK.
1951
1952         * function.c (put_var_into_stack): Don't reference DECL_ fields
1953         if input is a SAVE_EXPR.
1954         Use set_mem_attributes in COMPLEX case.
1955
1956 2000-06-18  Richard Henderson  <rth@cygnus.com>
1957
1958         * config/ia64/ia64-protos.h (process_for_unwind_directive): Declare.
1959         (ia64_file_start): Declare.
1960         * config/ia64/ia64.h (ADDL_REGNO_P): Don't compare unsigned against 0.
1961         (GR_REGNO_P): Likewise.
1962         * config/ia64/ia64.c: Many prototypes.
1963         (ia64_reg_numbers): Constify.
1964         (ia64_input_reg_names, ia64_local_reg_names): Likewise.
1965         (ia64_section_threshold): Make unsigned.
1966         (ia64_print_operand): Constify.
1967         (fix_range): Constify.
1968         (ia64_init_builtins): Don't compare signed vs unsigned.
1969         (ia64_expand_builtin): Likewise.
1970
1971         * config/ia64/ia64.h (EXTRA_CONSTRAINT): New.
1972         (CONSTRAINT_OK_FOR_Q): New.
1973         * config/ia64/ia64.md (movdi_internal): Use Q for fp<->mem.
1974         (movsf_internal, movdf_internal): Likewise.
1975         (cmovdi_internal): Rewrite so that constraints and predicates match;
1976         simplify splitters.
1977         (cmovsi_internal): Likewise.
1978
1979         * config/ia64/ia64.h (ASM_SPEC): Add -x for gas.
1980         (ASM_FILE_START): New.
1981         * config/ia64/ia64.c (ia64_file_start): New.
1982         (rtx_needs_barrier): Handle pred.rel.mutex.
1983         (emit_predicate_relation_info): New.
1984         * config/ia64/ia64.md (pred_rel_mutex): New.
1985         * config/ia64/linux.h (ASM_SPEC): Define.
1986         * config/ia64/sysv4.h (ASM_FILE_START): Define.
1987
1988         * config/ia64/ia64.c (ia64_encode_section_info): Fix thinko
1989         filtering global register variables.
1990
1991 2000-06-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1992
1993         * c-common.c (add_c_tree_codes): Fix definition for traditional C.
1994
1995 2000-06-17  Michael Meissner  <meissner@redhat.com>
1996
1997         * gcc.c (do_spec_1, '%v3' case): Do not abort if patch level is
1998         not present and there is a field after a '-'.
1999
2000 2000-06-17  Bruce Korb  <bkorb@gnu.org>
2001
2002         * fixinc/check.tpl:  finish the implementation of multiple tests
2003         for a single fix
2004         * fixinc/inclhack.def(ctrl_quotes_def): add a second test
2005         (io_quotes_def): add a second test
2006         (various): reorder `files' so that "limits.h" is never first
2007         * fixinc/tests/base/*: update the testing output
2008
2009 Sat Jun 17 10:33:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2010
2011         * gcc.texi: Remove reference to stupid.c.
2012
2013 2000-06-16  Benjamin Chelf  <chelf@codesourcery.com>
2014
2015         * c-common.c (c_tree_code_type): New array.
2016         (c_tree_code_length): Likewise.
2017         (c_tree_code_name): Likewise.
2018         (add_c_tree_codes): New function.
2019
2020         * c-common.h (add_c_tree_codes): Declare.
2021         (enum c_tree_code): New enum.
2022
2023         * c-lex.c (init_parse): Added call to add_c_tree_codes.
2024
2025 2000-06-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2026
2027         * fixinc/inclhack.def (ctrl_quotes_def, io_quotes_def): Modify
2028         select pattern to also match macro defs with only one argument.
2029
2030 Thu Jun 15 18:56:12 2000  Jeffrey A Law  (law@cygnus.com)
2031
2032         * i386.md: Create new [right,left] rotate and right shift
2033         patterns to optimize shift by 1 bit for certain ia32 processors.
2034         Update patterns which perform left shifts to optimize shift by
2035         1 bit for certain ia32 processors.
2036         * i386.c (const_int_1_operand): New predicate.
2037         * i386.h (PREDICATE_CODES): Handle const_int_1_operand.
2038         * i386-protos.h (const_int_1_operand): Prototype.
2039
2040 Wed Jun 14 23:46:26 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2041
2042         * mips.c (machine_dependent_reorg): Fix braces for nested if.
2043
2044 2000-06-14  Geoff Keating  <geoffk@cygnus.com>
2045
2046         * rs6000.c (toc_hash_eq): Use CODE_LABEL_NUMBER to compare
2047         LABEL_REFs.
2048
2049 2000-06-14  Richard Henderson  <rth@cygnus.com>
2050
2051         * conflict.c (conflict_graph_compute): Don't look for REG_INC.
2052
2053         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Don't emit
2054         auto-inc code.
2055
2056         * print-rtl.c (print_rtx): Emit space before mem alias set.
2057
2058 2000-06-14  David Edelsohn  <edelsohn@gnu.org>
2059
2060         * rs6000.c (expand_block_move): Fix typo in earlier change.
2061         (print_operand): Remove unused variables neg and op.
2062         (toc_hash_mark_entry): Fix prototype.
2063
2064 2000-06-14  Benjamin Chelf  <chelf@codesourcery.com>
2065
2066         * c-common.h (IF_COND): Moved here from cp/cp-tree.h.
2067         (THEN_CLAUSE): Likewise.
2068         (ELSE_CLAUSE): Likewise.
2069         (WHILE_COND): Likewise.
2070         (WHILE_BODY): Likewise.
2071         (DO_COND): Likewise.
2072         (DO_BODY): Likewise.
2073         (RETURN_EXPR): Likewise.
2074         (EXPR_STMT_EXPR): Likewise.
2075         (FOR_INIT_STMT): Likewise.
2076         (FOR_COND): Likewise.
2077         (FOR_EXPR): Likewise.
2078         (FOR_BODY): Likewise.
2079         (SWITCH_COND): Likewise.
2080         (SWITCH_BODY): Likewise.
2081         (CASE_LOW): Likewise.
2082         (CASE_HIGH): Likewise.
2083         (GOTO_DESTINATION): Likewise.
2084         (COMPOUND_BODY): Likewise.
2085         (ASM_CV_QUAL): Likewise.
2086         (ASM_STRING): Likewise.
2087         (ASM_OUTPUTS): Likewise.
2088         (ASM_INPUTS): Likewise.
2089         (ASM_CLOBBERS): Likewise.
2090         (DECL_STMT_DECL): Likewise.
2091         (STMT_EXPR_STMT): Likewise.
2092         (LABEL_STMT_LABEL): Likewise.
2093         (SCOPE_BEGIN_P): Likewise.
2094         (SCOPE_END_P): Likewise.
2095         (SCOPE_STMT_BLOCK): Likewise.
2096         (SCOPE_NULLIFIED_P): Likewise.
2097         (SCOPE_NO_CLEANUPS_P): Likewise.
2098         (SCOPE_PARTIAL_P): Likewise.
2099         (ASM_VOLATILE_P): Likewise.
2100         (STMT_LINENO): Likewise.
2101         (STMT_LINENO_FOR_FN_P): Likewise.
2102
2103         * c-common.def: New file. Added SRCLOC, SIZEOF_EXPR, ARROW_EXPR,
2104         ALIGNOF_EXPR, EXPR_STMT, COMPOUND_STMT, DECL_STMT, IF_STMT,
2105         FOR_STMT, WHILE_STMT, DO_STMT, RETURN_STMT, BREAK_STMT,
2106         CONTINUE_STMT, SWITCH_STMT, GOTO_STMT, LABEL_STMT, ASM_STMT,
2107         SCOPE_STMT, CASE_LABEL, STMT_EXPR.
2108
2109         * gencheck.c (tree_codes[]): Added '#include "c-common.def"'.
2110
2111 2000-06-14  David O'Brien  <obrien@FreeBSD.org>
2112
2113         * gcc.c (main): Quiet compiler warnings.  argv is assumed to be
2114         writable in parts of the GCC code.
2115
2116         * config/elfos.h (ASM_GENERATE_INTERNAL_LABEL): Make printf
2117         specification match cast.
2118
2119 Wed Jun 14 09:25:57 2000  Jeffrey A Law  (law@cygnus.com)
2120
2121         * configure.in: Revert AC_TYPE_GETGROUPS patch from June 13.
2122         * configure, config.in: Rebuilt.
2123         * sys-protos.h: Similarly.
2124
2125 Wed Jun 14 03:39:58 EDT 2000  John Wehle  (john@feith.com)
2126
2127         * ifcvt.c (EDGE_COMPLEX): Move definition ...
2128         * basic-block.h (EDGE_COMPLEX): ... here.
2129
2130         * loop.c (check_dbra_loop): Specify the register when
2131         generating REG_NONNEG notes and don't generate duplicates.
2132
2133 2000-06-13  Jakub Jelinek  <jakub@redhat.com>
2134
2135         * tree.h (TYPE_USER_ALIGN, DECL_USER_ALIGN): Define.
2136         (struct tree_type, struct tree_decl): Add user_align member.
2137         * stor-layout.c (layout_decl): Set DECL_USER_ALIGN.
2138         (place_union_field): If BIGGEST_FIELD_ALIGNMENT is defined
2139         and DECL_USER_ALIGN 0, cap alignment to this value.
2140         (place_field): Likewise.
2141         (finalize_type_size): Set TYPE_USER_ALIGN.
2142         (layout_type): Likewise.
2143         (initialize_sizetypes): Likewise.
2144         * c-common.c (decl_attributes): Set TYPE_USER_ALIGN resp.
2145         DECL_USER_ALIGN to 1.
2146         * c-decl.c (duplicate_decls): Set DECL_USER_ALIGN.
2147         (xfer_tag): Set TYPE_USER_ALIGN.
2148         (finish_struct): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN.
2149         (finish_enum): Likewise.
2150         * stmt.c (expand_decl): Set DECL_USER_ALIGN.
2151         (expand_anon_union_decl): Likewise.
2152         * tree.c (make_node): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN.
2153         (build_index_type): Set TYPE_USER_ALIGN.
2154         (build_range_type): Likewise.
2155         (build_common_tree_nodes_2): Likewise.
2156         * tm.texi (BIGGEST_FIELD_ALIGNMENT): Document the changed meaning.
2157
2158 2000-06-13  Andreas Jaeger  <aj@suse.de>
2159
2160         * configure.in: Use --enable-checking=misc,tree,gc by default if
2161         no --enable-checking option is given and for
2162         --enable-checking=yes.
2163         * configure: Rebuilt.
2164
2165 2000-06-13  Richard Henderson  <rth@cygnus.com>
2166
2167         * libgcc2.c (ia64_throw_helper): Use __builtin_return_address.
2168         (__throw): Don't pass the address of a label.
2169
2170         * config/ia64/ia64.c (ia64_compute_frame_size): Use
2171         current_function_is_leaf.
2172         (ia64_expand_prologue): Likewise.  Modify return_address_pointer_rtx
2173         instead of reg_names[RETURN_ADDRESS_REGNUM].
2174         (ia64_init_machine_status): Reset return_address_pointer_rtx.
2175         * config/ia64/ia64.h (RETURN_ADDRESS_POINTER_REGNUM): Rename
2176         from RETURN_ADDRESS_REGNUM.  Update all uses.
2177         (RETURN_ADDR_RTX): Use return_address_pointer_rtx; return
2178         zero instead of null on failure.
2179         (ELIMINABLE_REGS): Add ra->b0 elimination.
2180         (CAN_ELIMINATE): Update accordingly.
2181         (INITIAL_ELIMINATION_OFFSET): Likewise.
2182         (REGISTER_NAMES): Use an illegal assembler name for
2183         RETURN_ADDRESS_POINTER_REGNUM.
2184
2185 2000-06-13  Richard Henderson  <rth@cygnus.com>
2186
2187         * config/ia64/ia64.h (enum reg_class): Remove FR_INT_REGS, FR_FP_REGS,
2188         GR_AND_FR_INT_REGS, GR_AND_FR_FP_REGS.
2189         (REG_CLASS_NAMES): Likewise.
2190         (REG_CLASS_CONTENTS): Likewise.
2191         (FR_FP_REGNO_P, FR_INT_REGNO_P): Remove.
2192         (HARD_REGNO_MODE_OK): Remove references to them.
2193         (REGNO_REG_CLASS): Likewise.
2194         (REG_CLASS_FROM_LETTER): Likewise.
2195         (CLASS_MAX_NREGS): Likewise.
2196         (REGISTER_MOVE_COST): Likewise.
2197         * config/ia64/ia64.c (ia64_secondary_reload_class): Likewise.
2198         * config/ia64/ia64.md (*): Replace "e" constraints with "f".
2199         (movqi_internal): Special case moves from zero.
2200         (movhi_internal, movsi_internal): Likewise.
2201         (movdi_internal): Likewise.  Fill out "f" constraints.
2202         (movsf_internal): Fill out "r" constraints.
2203         (movdf_internal): Likewise.
2204
2205 2000-06-13  Richard Henderson  <rth@cygnus.com>
2206
2207         * flow.c (insn_dead_p): Keep sets to PIC_OFFSET_TABLE_REGNUM
2208         alive before reload.
2209
2210         * haifa-sched.c (struct deps): Add in_post_call_group_p.
2211         (add_dependence): Handle notes between SCHED_GROUP_P insns.
2212         (remove_dependence): Always define.
2213         (set_sched_group_p): New.
2214         (sched_analyze_2): Use it.
2215         (sched_analyze_insn): Don't special-case naked uses.  Look for
2216         and extend in_post_call_group_p.
2217         (sched_analyze): Clear stale SCHED_GROUP_P.  Set in_post_call_group_p.
2218         (init_deps): Clear in_post_call_group_p.
2219
2220 2000-06-13  Richard Henderson  <rth@cygnus.com>
2221
2222         * combine.c (subst): Use CLASS_CANNOT_CHANGE_MODE and
2223         CLASS_CANNOT_CHANGE_MODE_P instead of CLASS_CANNOT_CHANGE_SIZE
2224         and hard-coded tests.
2225         (simplify_set): Likewise.
2226         (gen_lowpart_for_combine): Likewise.
2227         * emit-rtl.c (gen_lowpart_common): Likewise.
2228         * global.c (find_reg): Likewise.
2229         * local-alloc.c (find_free_reg): Likewise.
2230         * recog.c (register_operand): Likewise.
2231         * regclass.c (init_reg_sets_1): Likewise.
2232         (record_operand_costs, regclass): Likewise.
2233         * reload.c (push_reload): Likewise.
2234         * reload1.c (choose_reload_regs): Likewise.
2235         * flow.c (mark_used_regs): Conditionally set REG_CHANGES_MODE.
2236         * local-alloc.c (struct qty): Rename changes_size to changes_mode.
2237         Update all references.
2238         * regs.h (struct reg_info_def): Likewise.
2239         (REG_CHANGES_MODE): Rename from REG_CHANGES_SIZE.
2240         * tm.texi (CLASS_CANNOT_CHANGE_MODE): Document.
2241         (CLASS_CANNOT_CHANGE_MODE_P): Likewise.
2242
2243         * config/alpha/alpha.h (CLASS_CANNOT_CHANGE_MODE): Rename.
2244         (CLASS_CANNOT_CHANGE_MODE_P): New.
2245         * config/mips/mips.h: Likewise.
2246         * config/pa/pa32-regs.h: Likewise.
2247         * config/pa/pa64-regs.h: Likewise.
2248         * config/rs6000/rs6000.h: Likewise.
2249         * config/sh/sh.h: Likewise.
2250         * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE): New.
2251         (CLASS_CANNOT_CHANGE_MODE_P): New.
2252         * config/avr/avr.h (CLASS_CANNOT_CHANGE_SIZE): Remove dead code.
2253         * config/d30v/d30v.h: Likewise.
2254
2255 2000-06-13  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2256
2257         * configure.in: Add AC_TYPE_GETGROUPS test.
2258         * sys-protos.h: Use GETGROUPS_T * for second arg of getgroups.
2259         * configure: Rebuilt.
2260         * config.in: Rebuilt.
2261
2262 2000-06-13  Richard Henderson  <rth@cygnus.com>
2263
2264         * explow.c (set_mem_attributes): Do nothing for NULL type.
2265
2266 Tue Jun 13 14:45:10 2000  Jeffrey A Law  (law@cygnus.com)
2267
2268         * config/m68k/openbsd.h (ASM_SPEC): pass down options to assembler
2269         correctly.
2270
2271 2000-06-13  James E. Wilson  <wilson@cygnus.com>
2272
2273         * config/ia64/ia64.md (movxf_internal): Add missing "e" to ldf/stf.
2274
2275 Tue Jun 13 14:05:35 2000  Jeffrey A Law  (law@cygnus.com)
2276
2277         * Makefile.in (gensupport.o): Remove bogus $(HOST_PREFIX) reference.
2278
2279 2000-06-13  Philipp Thomas  <pthomas@suse.de>
2280
2281         * configure.in(ALL_LINGUAS): Changed en_UK to en_GB.
2282         * configure: Rebuilt.
2283
2284 2000-06-07  David O'Brien  <obrien@FreeBSD.org>
2285
2286         * configure.in:  Adjust FreeBSD bits to match changes to config.guess.
2287         We now default to ELF for the i386, and a.out is the special case.
2288         * configure:  Rebuilt.
2289
2290 Tue Jun 13 10:05:30 2000  Hans-Peter Nilsson  <hp@axis.com>
2291
2292         * final.c (final_scan_insn): Delete notes between cc0 setter and
2293         user when restarting from setter.
2294
2295 2000-06-13  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2296
2297         * vax.h (INDEX_TERM_P): Define evaluation order of &&'s in || and
2298         cast to squelch signed/unsigned warnings.
2299
2300 2000-06-13  Zack Weinberg  <zack@wolery.cumb.org>
2301
2302         * cpplib.c (handle_directive): Print non-NUL-terminated string
2303         with %.*s.
2304
2305 2000-06-12  Michael Meissner  <meissner@redhat.com>
2306
2307         * ifcvt.c (dead_or_predicable): Don't do conditional execution
2308         path if the machine needs extra support to do conditional
2309         execution.
2310
2311 Mon Jun 12 17:04:17 2000  Jeffrey A Law  (law@cygnus.com)
2312
2313         * print-rtl.c (print_rtx, case MEM): Use HOST_WIDE_INT_PRINT_DEC
2314         to print the alias set.
2315         * print-tree.c (print_node, DECL_* nodes and case 't'): Similarly.
2316
2317 2000-06-12  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2318
2319         * config/float-vax.h: Add GFLOAT defines.
2320
2321 Mon Jun  12  9:44:00 2000  Mark Klein  <mklein@dis.com>
2322
2323         * configure.in: Update tm dependencies for MPE.
2324         * configure: Rebuilt.
2325
2326 2000-06-12  H.J. Lu  <hjl@gnu.org>
2327
2328         * gengenrtl.c (obstack_alloc_rtx): Correct the allocated size.
2329
2330 2000-06-12  David Edelsohn  <edelsohn@gnu.org>
2331
2332         * aix41.h (SUBTARGET_SWITCHES): Delete threads.
2333         (CPP_SPEC): Change mthreads to pthread.
2334         (LIB_SPEC): Likewise.
2335         (STARTFILE_SPEC): Likewise.
2336         * aix43.h (SUBTARGET_SWITCHES): Delete threads.
2337         (CPP_SPEC): Change mthreads to pthread.
2338         (LIB_SPEC): Likewise.
2339         (STARTFILE_SPEC): Likewise.
2340         * rs6000-protos.h (reg_or_arith_cint_operand): New.
2341         * rs6000.c (reg_or_arith_cint_operand): New.
2342         (num_insns_constant_wide): Decorate unsigned constant.
2343         * rs6000.h (PREDICATE_CODES): Add reg_or_arith_cint_operand.
2344         * rs6000.md (addsi3): Use new predicate.
2345         (subsi3, adddi3, subdi3): Likewise.
2346
2347 2000-06-12  Mark Mitchell  <mark@codesourcery.com>
2348
2349         * c-common.c (lang_get_alias_set): Fix typo.
2350
2351 2000-06-12  Richard Earnshaw <rearnsha@arm.com>
2352
2353         * flow.c (mark_used_regs): Revert last change.
2354         (life_analysis): Remove PROP_AUTOINC if running after reload.
2355         (propagate_one_insn): PROP_AUTOINC is always off after reload.
2356
2357 2000-06-11  Richard Earnshaw <rearnsha@arm.com>
2358
2359         * flow.c (mark_used_regs): Don't call find_auto_inc after reload
2360         has run.
2361
2362 2000-06-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2363
2364         * bb-reorder.c (build_scope_forest): Initialize variable
2365         `curr_scope'.
2366
2367         * calls.c (expand_call): Likewise for variables
2368         `save_pending_stack_adjust' and `save_stack_pointer_delta'.
2369
2370         * i386.c (function_arg_advance, function_arg): Cast to avoid
2371         signed/unsigned warnings.
2372
2373         * i386.h (MEMORY_MOVE_COST): Likewise.
2374
2375         * ifcvt.c (cond_exec_process_if_block): Initialize variables
2376         `else_start' and `else_end'.
2377
2378         * libgcc2.h (__eh_alloc, __eh_free): Prototype.
2379
2380         * regrename.c (rr_replace_reg): Initialize variable `dest_subregno'.
2381
2382 2000-06-10  Mark Mitchell  <mark@codesourcery.com>
2383
2384         * Makefile.in (libintl.a): Depend on intl.all.
2385
2386 2000-06-09  H.J. Lu  (hjl@gnu.org)
2387
2388         * Makefile.in (c-parse.o): Also depend on output.h.
2389
2390 2000-06-09  Rodney Brown  <RodneyBrown@mynd.com>
2391
2392         * mcore-protos.h: discards const warning removal.
2393         * mcore.c: discards const warning removal.
2394
2395 2000-06-09  Kazu Hirata  <kazu@hxi.com>
2396
2397         * config/h8300/lib1funcs.asm: Declare the machine architecture at
2398         the beginning of the file.
2399
2400 2000-06-09  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2401
2402         * real.h:  Add prototype for ldexp.
2403
2404 2000-06-09  Zack Weinberg  <zack@wolery.cumb.org>
2405
2406         * ggc-none.c, ggc-simple.c, ggc-page.c (ggc_alloc_obj): Rename
2407         it ggc_alloc, drop second argument, never clear returned memory.
2408         * ggc-common.c (ggc_alloc_string): Use ggc_alloc.
2409         (ggc_alloc_cleared): New.
2410         * ggc.h: Prototype ggc_alloc and ggc_alloc_cleared, not
2411         ggc_alloc_obj.  Remove ggc_alloc macro.
2412         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Use ggc_alloc.
2413
2414         * rtl.c (rtvec_alloc): Clear the vector always.
2415         (rtx_alloc): Clear the first word always.  Remove dirty
2416         obstack tricks (this routine is no longer a bottleneck).
2417         * tree.c (make_node): Clear the new node always.
2418         (make_tree_vec): Likewise.
2419         (tree_cons): Clear the common structure always.
2420         (build1): Likewise; also, clear TREE_COMPLEXITY.
2421         * gengenrtl.c: Use puts wherever possible.  Remove extra
2422         newlines.
2423         (gendef): Clear the first word of an RTX in the generator
2424         function, irrespective of ggc_p.  Initialize '0' slots to
2425         NULL.
2426         (genlegend): Don't generate obstack_alloc_rtx routine, just a
2427         thin wrapper macro around obstack_alloc.
2428
2429         * stmt.c (expand_fixup): Use ggc_alloc.
2430         * c-typeck.c (add_pending_init): Use ggc_alloc.
2431         * emit-rtl.c (init_emit_once): Clear CONST_DOUBLE_CHAIN(tem).
2432         * varasm.c (immed_double_const): Set CONST_DOUBLE_MEM(r) to
2433         const0_rtx when it is created.
2434         (immed_real_const_1): Set CONST_DOUBLE_CHAIN(r) to NULL_RTX if
2435         we are not in a function.
2436
2437         * tree.c (tree_class_check_failed): Make second arg an int.
2438         * tree.h: Update prototype.
2439
2440 2000-06-09  Geoff Keating  <geoffk@cygnus.com>
2441
2442         * tree.h (VOID_TYPE_P): Don't look at the TYPE_MAIN_VARIANT
2443         of an error_mark_node.
2444
2445 Fri Jun  9 20:35:13 2000  Denis Chertykov  <denisc@overta.ru>
2446
2447         * config/avr/avr.c (asm_output_section_name): bugfix.
2448
2449 2000-06-09  Jason Merrill  <jason@casey.soma.redhat.com>
2450
2451         * timevar.def: Add TV_EXPAND.
2452         * timevar.c (timevar_print): Update timing information.
2453         * calls.c (try_to_integrate): Push to TV_INTEGRATION for inlining.
2454
2455         * stmt.c (expand_return): Check for error_mark_node.
2456
2457 2000-06-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2458
2459         * configure.in: Also avoid wrapping auto-build.h with IN_GCC.
2460
2461         * scan-types.sh (VALUE) Wrap use with double quotes to protect
2462         variable against filename expansion when it contains "char *".
2463
2464         * system.h (SSIZE_MAX): Delete backup definition.
2465
2466         * cppfiles.c (read_include_file): Use INTTYPE_MAXIMUM(ssize_t)
2467         instead of SSIZE_MAX.
2468
2469 2000-06-09  Jakub Jelinek  <jakub@redhat.com>
2470
2471         * configure.in: Check whether gas supports -relax.
2472         * configure, config.in: Rebuilt.
2473         * config/sparc/sparc.h (ASM_RELAX_SPEC): Define.
2474         (EXTRA_SPECS): Add asm_relax.
2475         (ASM_SPEC): Add %(asm_relax).
2476         (TARGET_SWITCHES): Add -mrelax and -mno-relax.
2477         * config/sparc/linux64.h (LINK_ARCH_SPEC): Rename to LINK_SPEC.
2478         (LINK_SPEC): Pass -relax to linker unless -mno-relax or -r.
2479         (ASM_SPEC): Add %(asm_relax).
2480         * config/sparc/linux.h (LINK_SPEC, ASM_SPEC): Likewise.
2481         * config/sparc/sparc.c (output_sibcall): If HAVE_AS_RELAX_OPTION,
2482         never use sethi/jmpl for leaf tail calls.  Use or with rs2 %g0
2483         instead of mov, so that gas can further optimize it.
2484
2485 2000-06-08  James E. Wilson  <wilson@bletchleypark.cygnus.com>
2486
2487         * dwarf2out.c (size_of_die, case dw_val_class_const): Use
2488         size_of_sleb128.
2489         (value_format, case dw_val_class_const): Use sdata format.
2490         (output_die): Call output_sleb128.
2491
2492 2000-06-08  James E. Wilson  <wilson@cygnus.com>
2493
2494         * dwarf2out.c (ASM_OUTPUT_DWARF_DATA8): Add new macro that uses
2495         UNALIGNED_DOUBLE_INT_ASM_OP.  Rename old macro to
2496         ASM_OUTPUT_DWARF_CONST_DOUBLE.
2497         (output_die, case dw_val_class_unsigned_const): Correct call to
2498         ASM_OUTPUT_DWARF_DATA8.
2499         (output_die, case dw_val_class_long_long): Use
2500         ASM_OUTPUT_DWARF_CONST_DOUBLE.
2501         * tree.c (host_integerp): Accept unsigned HOST_WIDE_INT values when
2502         pos is zero.
2503
2504         * config/ia64/ia64-protos.h (ia64_output_end_prologue): Add.
2505         (output_function_prologue): Fix mispelling.
2506         (output_function_prologue, output_function_epilogue): Reorder to
2507         match ia64.c definition order.
2508         * config/ia64/ia64.c (ia64_expand_prologue): Add comment.
2509         (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on stack restore insns.
2510         Use r3 instead of r2 for large stack restores.
2511         (ia64_output_end_prologue): New function.
2512         (process_set): Emit ".restore sp" for epilogue stack restores.
2513         * config/ia64/ia64.h (FUNCTION_END_PROLOGUE): Define.
2514
2515 2000-06-08  Jakub Jelinek  <jakub@redhat.com>
2516
2517         * dbxout.c (dbxout_type_fields): Don't segfault on fields with
2518         incomplete types.
2519
2520 2000-06-08  Nathan Sidwell  <nathan@codesourcery.com>
2521
2522         * frame.c (end_fde_sort): Remove extraneous erratic array test.
2523
2524 2000-06-08  Denis Perchine <dyp@perchine.com>
2525
2526         * frame.c (start_fde_sort): Don't malloc (0).
2527
2528 2000-06-07  Zack Weinberg  <zack@wolery.cumb.org>
2529
2530         * c-decl.c (pushdecl): Do not call COMPLETE_TYPE_P on
2531         error_mark_node.
2532         * print-tree.c (print_node): The transparent_union_flag means
2533         different things for unions and arrays.  Do not inspect it
2534         with TYPE_TRANSPARENT_UNION.
2535
2536 2000-06-06  Jakub Jelinek  <jakub@redhat.com>
2537
2538         * cpplib.c (do_ifdef, do_ifndef): Don't segfault if parse_ifdef
2539         returned NULL.
2540
2541 Wed Jun  7 20:34:33 2000  Denis Chertykov  <denisc@overta.ru>
2542
2543         * config/avr/avr.c (asm_output_section_name): output section
2544         attributes.
2545         * config/avr/libgcc.S (.text.libgcc): declare section attributes.
2546
2547 2000-06-06  James E. Wilson  <wilson@cygnus.com>
2548
2549         * frame.h (struct unwind_info_ptr): Collapse version, flags, and length
2550         fields into header field.
2551         (IA64_UNW_HDR_LENGTH, IA64_UNW_HDR_FLAGS, IA64_UNW_HDR_VERSION): New
2552         macros to access length, flags, and version info from header field.
2553         * config/ia64/crtbegin.asm (__do_frame_setup_aux): Delete here.
2554         * config/ia64/crtend.asm (__do_frame_setup_aux): Add here.
2555         (__do_global_ctors_aux): Fix caller.
2556         * config/ia64/frame-ia64.c (get_unwind_record): Change parameter
2557         prologue_flag to header.  Pass to read_P_record.
2558         (read_P_record): New argument header.  Implement P4 format.
2559         Multiply P7_T_SIZE by 16.
2560         (execute_one_ia64_descriptor): New static local region_header.  Pass to
2561         get_unwind_record.  Copy r to region_header if r is a header record.
2562         (print_all_records): Likewise.
2563         (__build_ia64_frame_state): Use IA64_UNW_HDR_LENGTH.
2564         (__get_personality, __get_except_table): Likewise.
2565         * config/ia64/ia64.c (process_set): Do not divide offsets by 4.
2566
2567 2000-06-06  Philipp Thomas  <pthomas@suse.de>
2568
2569         * configure.in (AC_C_INLINE): Added.
2570         * aclocal.m4 (AM_WITH_NLS): Enable --with-included-gettext by default.
2571         * configure: Regenerate.
2572
2573 2000-06-06  Mark Mitchell  <mark@codesourcery.com>
2574
2575         * c-common.h (c_language_kind): New type.
2576         (c_language): New variab.e
2577         * c-common.c (lang_get_alias_set): Don't put structures in
2578         non-zero alias sets in C++.
2579         * c-decl.c (c_language): Define it.
2580         * c-lex.c (doing_objc_thang): Remove.
2581         * c-tree.h (doing_objc_thang): Make it a macro.
2582         * objc/objc-act.c (lang_decode_option): Set c_language, not
2583         doing_objc_thang.
2584
2585 2000-06-06  Gabriel Dos Reis  <gdr@codesourcery.com>
2586
2587         * diagnostic.c (output_maximum_width): Remove.
2588         (doing_line_wrapping): Tweak.
2589         (diagnostic_buffer): New object.
2590         (global_output_buffer): New object.
2591         (output_destroy_prefix): New function.
2592         (default_initialize_buffer): Likewise.
2593         (reshape_diagnostic_buffer): Likewise.
2594         (initialize_diagnostics): Likewise.
2595         (output_clear): Tweak.
2596         (line_wrapper_printf): Adjust call to init_output_buffer.
2597         (vline_wrapper_message_with_location): Likewise.  Use
2598         output_destroy_prefix.
2599         (v_message_with_decl): Likewise.
2600
2601         * diagnostic.h (struct output_buffer): Constify prefix.
2602         (init_output_buffer, output_get_prefix): Constify.
2603         (diagnostic_message_length_per_line): Likewise.
2604         (reshape_diagnostic_buffer): Declare.
2605         (default_initialize_buffer): Declare.
2606         (initialize_diagnostics): Declare.
2607         (diagnostic_buffer): Declare new obbject.
2608
2609         * toplev.c: #include diagnostic.h
2610         (display_help): Document diagnostic formatting options.
2611         (decode_f_option): Handle diagnostic formatting options.
2612         (main): Setup initialization for diagnostic messages outputter.
2613
2614         * toplev.h (set_message_length): Remove.
2615
2616         * Makefile.in (toplev.o): Depends upon diagnostic.h
2617
2618         * invoke.texi : Document diagnostics formatting options.
2619
2620 Tue Jun  6 19:25:32 2000  Philippe De Muyter  <phdm@macqel.be>
2621
2622         * configure.in (Make the links): Typo fix : the file that must be
2623         included without #ifdef IN_GCC is `auto-host.h', not `auto-config.h'.
2624         * configure: File rebuilt.
2625
2626 2000-06-06  Nathan Sidwell  <nathan@codesourcery.com>
2627
2628         * eh-common.h (EH_ALLOC_SIZE, EH_ALLOC_ALIGN): New #defines.
2629         (eh_context): Add alloc_mask and alloc_buffer emergency fallback
2630         space.
2631         * libgcc2.c (__eh_alloc): Moved from cp/exception.cc. Fallback on
2632         emergency eh_context buffer, if malloc fails.
2633         (__eh_free): Moved from cp/exception.cc. Release to emergency
2634         eh_context buffer, if appropriate.
2635
2636 2000-06-06  Jason Merrill  <jason@casey.soma.redhat.com>
2637
2638         * expr.c (store_expr): Fix typo.
2639
2640 2000-06-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2641
2642         * m68k.c (legitimize_pic_address): Move prototype ...
2643
2644         * m68k-protos.h (legitimize_pic_address): ... here.
2645
2646         * m68k.md (legitimize_pic_address): Delete prototypes.
2647         (untyped_call): Invoke GEN_CALL(), not gen_call().
2648
2649         * nextstep.c: Include system.h and toplev.h.
2650         (get_directive_line): Don't prototype.
2651         (handle_pragma): Mark parameters with ATTRIBUTE_UNUSED and constify.
2652
2653         * nextstep.h (handle_pragma): Prototype.
2654         (SECTION_FUNCTION): Prototype FUNCTION().  Move prototype of
2655         objc_section_init ...
2656         (EXTRA_SECTION_FUNCTIONS): ... here.
2657
2658 Tue Jun  6 08:17:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2659
2660         * sdbout.c (struct sdb_file): NAME now const.
2661         (sdbout_init): input_file_name now const.
2662         (sdbout_start_new_source_file): FILENAME now const.
2663         * sdbout.c (sdbout_init, sdbout_start_new_source_file): Reflect above.
2664
2665 2000-06-06  Gabriel Dos Reis  <gdr@codesourcery.com>
2666
2667         * c-typeck.c (build_conditional_expr): Handle complex data types.
2668
2669 2000-06-05  Jason Merrill  <jason@casey.soma.redhat.com>
2670
2671         * explow.c (maybe_set_unchanging): New function, broken out from...
2672         (set_mem_attributes): Here.
2673         * expr.h: Declare it.
2674         * stmt.c (expand_decl): Call it.
2675
2676 2000-06-05  Richard Henderson  <rth@cygnus.com>
2677
2678         * reload1.c (choose_reload_regs): Mind CLASS_CANNOT_CHANGE_SIZE
2679         while looking for a register to inherit from.
2680
2681 2000-06-05  Jason Merrill  <jason@casey.soma.redhat.com>
2682
2683         * Makefile.in (libgcc.ready): Lose.
2684         (libgcc.mk): Just use mv, not move-if-change.
2685         (LIBGCC_DEPS): New macro.
2686         (libgcc.a): Use it.
2687         (stmp-multilib): Likewise.
2688         * mklibgcc.in (stmp-dirs): New target.  Make everything depend on
2689         it rather than the directories themselves.
2690         (LIB2ADD): Depend on the list file rather than 'force'.
2691
2692         * fold-const.c (fold, case COND_EXPR): Elide conversion between
2693         cv-qualified versions of types.
2694
2695 Mon Jun  5 14:06:18 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2696
2697         * config/sparc/sparc.c (short_branch): Correct error in range
2698         computation.
2699
2700 2000-06-05  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2701
2702         * fixinc/inclhack.def: New include hacks for ultrix.
2703         * (nested_ultrix): Replaced by ultrix_nested_svc.
2704         * (ultrix_atof_param): test_text string added.
2705         * (ultrix_ifdef): Modified select string.
2706
2707 2000-06-05  Zack Weinberg  <zack@wolery.cumb.org>
2708
2709         * objc/objc-act.c (generate_method_descriptors): Register
2710         objc_method_prototype_template as a GC root.
2711         (comp_method_with_proto): Register function_type as a GC root.
2712         (comp_proto_with_proto): Replace function_type1 and
2713         function_type2 with a two-element array; register it as a GC root.
2714
2715         (generate_protocols, build_protocol_initializer,
2716         generate_protocol_list, build_category_initializer,
2717         build_shared_structure_initializer): Do not cache cast_type
2718         and/or cast_type2.
2719
2720 2000-06-05  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2721
2722         * function.c (assign_parms): Add missing argument to set_mem_attributes
2723         call.
2724
2725 2000-06-05  Nathan Sidwell  <nathan@codesourcery.com>
2726
2727         * tree.h (VOID_TYPE_P): New macro.
2728         (COMPLETE_OR_VOID_TYPE_P): Use VOID_TYPE_P.
2729         * c-decl.c (grokdeclarator): Use VOID_TYPE_P.
2730         (get_parm_info): Likewise.
2731         (store_parm_decls): Likewise.
2732         (combine_parm_decls): Likewise.
2733         (finish_function): Likewise.
2734         * c-typeck.c (build_function_call): Likewise.
2735         (build_binary_op): Likewise.
2736         (build_conditional_expr): Likewise.
2737         (internal_build_compound_expr): Likewise.
2738         (convert_for_assignment): Likewise.
2739         * stmt.c (expend_expr_stmt): Likewise.
2740         (warn_if_unused_value): Likewise.
2741         (expand_return): Likewise.
2742         * c-parse.in (primary): Likewise.
2743         * c-parse.y, c-parse.c, c-parse.h: Regenerate.
2744         * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
2745
2746 Mon Jun  5 06:46:28 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2747
2748         * alias.c (get_alias_set): If compnent is addressable, use alias
2749         set of component.
2750         * c-decl.c (init_decl_processing): Don't call record_component_aliases.
2751         (grokdeclarator): Likewise.
2752         * c-typeck.c (common_type): Likewise.
2753
2754 2000-06-04  Alex Samuel  <samuel@codesourcery.com>
2755
2756         * Makefile.in (OBJS): Remove dyn_string.o
2757         (dyn-string.o): Delete rule.
2758         * dyn-string.c: Delete file
2759         * dyn-string.h: Likewise.
2760
2761 2000-06-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2762
2763         * Makefile.in (intl.*): Honor non-zero exit codes in the intl
2764         subdir.
2765
2766 2000-06-03  Geoff Keating  <geoffk@cygnus.com>
2767
2768         * alias.c (record_component_aliases): Don't inspect
2769         DECL_NONADDRESSABLE_P of non-FIELD_DECL components of structures.
2770
2771 Sat Jun  3 19:05:30 2000  Michael Meissner  <meissner@redhat.com>
2772
2773         * ifcvt.c (process_insns): If IFCVT_MODIFY_INSN is defined, call
2774         it with the pattern to do machine dependent work.
2775         (cond_exec_process_if_block): If IFCVT_MODIFY_TESTS is defined,
2776         use it to modify the true/false tests used in conditional
2777         execution.  If IFCVT_MODIFY_FINAL and IFCVT_MODIFY_CANCEL are
2778         defined, invoke them if the conversion to conditional execution
2779         was successful or not.
2780
2781         * tm.texi (IFCVT_MODIFY_TESTS): Document.
2782         (IFCVT_MODIFY_INSN): Ditto.
2783         (IFCVT_MODIFY_FINAL): Ditto.
2784         (IFCVT_MODIFY_CANCEL): Ditto.
2785
2786 Sat Jun  3 15:26:13 2000  Matt Kraai <kraai@alumni.carnegiemellon.edu>
2787
2788         * toplev.c (main): Fix misspellings of possibility and language.
2789
2790 2000-06-03  Richard Henderson  <rth@cygnus.com>
2791
2792         * alias.c (record_alias_subset): Initialize has_zero_child in the
2793         superset.
2794
2795 2000-06-03  Richard Earnshaw (rearnsha@arm.com)
2796
2797         * arm.md (untyped_call): Use GEN_CALL macro.
2798
2799 2000-06-02  Pekka Nikander  <pnr@teldanex.tcm.hut.fi>
2800
2801         * Makefile.in: Use $(MAKE) not "make"
2802
2803 Fri Jun  2 19:31:03 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2804
2805         * alias.c (struct alias_set_entry): New field has_zero_child.
2806         (mem_in_disjoint_alias_sets_p): Return 0 if set in either ase.
2807         (get_alias_set): If language-dependent routine set TYPE_ALIAS_SET,
2808         do nothing.
2809         Call record_component_aliases for aggregate types.
2810         (record_alias_subset): Set has_zero_child.
2811         (record_component_aliases, case ARRAY_TYPE): Do nothing if
2812         TYPE_NONALIASES_COMPONENT.
2813         (record_component_aliases, case RECORD_TYPE): Test
2814         DECL_NONADDRESSABLE_P.
2815         * c-decl.c (grokdeclarator): Set DECL_NONADDRESSABLE_P instead
2816         of TREE_ADDRESSABLE.
2817         * calls.c (initialize_argument_information): Only test
2818         TYPE_TRANSPARENT_UNION for UNION_TYPE.
2819         * function.c (assign_parms): Likewise.
2820         * integrate.c (function_cannot_inline_p): Likewise.
2821         * stor-layout.c (finish_record_layout): Don't call
2822         record_component_aliases.
2823         * tree.h (struct tree_int_cst): Use struct tree_common.
2824         (struct tree_real_cst, struct tree_string): Likewise.
2825         (struct tree_complex, struct tree_identifier): Likewise.
2826         (struct tree_list, struct tree_vec, struct tree_exp): Likewise.
2827         (struct tree_block, struct tree_type, struct tree_decl): Likewise.
2828         (TYPE_TRANSPARENT_UNION): Use UNION_TYPE_CHECK.
2829         (TYPE_NONALIASES_COMPONENT): New macro.
2830         (TYPE_AMBIENT_BOUNDEDNESS): Use FUNCTION_TYPE_CHECK.
2831         (DECL_NONADDRESSABLE_P): New macro.
2832         (struct tree_decl): Reorder bits for clarity of how many left;
2833         add non_adressable.
2834
2835 2000-06-02  Jason Merrill  <jason@casey.soma.redhat.com>
2836
2837         * Makefile.in (libgcc.a): Also depend on $(LIB2ADD).
2838         * mklibgcc.in (force): New target.
2839         Make LIB2ADD stuff depend on it.
2840
2841 2000-06-02  Richard Henderson  <rth@cygnus.com>
2842
2843         * alias.c (lang_get_alias_set): Remove.
2844         (get_alias_set): Call it directly, not indirectly.
2845         * c-common.c (lang_get_alias_set): Rename from c_get_alias_set.
2846         * c-common.h (c_get_alias_set): Don't declare.
2847         * c-decl.c (init_decl_processing): Don't set lang_get_alias_set.
2848         * expr.h (lang_get_alias_set): Declare as function, not pointer.
2849
2850 2000-06-02  Bruce Korb  <bkorb@gnu.org>
2851
2852         * fixinc/server.c(sig_handler):  resume closing server on SIGPIPE
2853         (server_setup):  define the server's master pid
2854         (close_server):  actually do the deed IFF we are the server's master
2855
2856 2000-06-02  Jakub Jelinek  <jakub@redhat.com>
2857
2858         * c-common.c (c_get_alias_set): Check whether signed_type did not
2859         return its argument before calling get_alias_set on the result.
2860
2861 2000-06-02  Andrew MacLeod  <amacleod@cygnus.com>
2862
2863         * expr.c (emit_group_load): Fix typo, GET_MODE not GET_CODE.
2864
2865 Fri Jun  2 00:22:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2866
2867         * sh.h (CPP_SPEC): Add -D__NOMACSAVE__ for -mnomacsave.
2868         (CONDITIONAL_REGISTER_USAGE): Mac registers are call used
2869         for TARGET_NOMACSAVE.
2870         (NOMACSAVE_BIT): Define.
2871         (TARGET_NOMACSAVE): Define.
2872         (TARGET_SWITCHES): Add "nomacsave".
2873
2874 2000-06-02  Toshiyasu Morita  <toshi.morita@sega.com>
2875
2876         * sh.md (untyped_call): Remove excess parameters
2877
2878 2000-06-01  Loren J. Rittle  <ljrittle@acm.org>
2879
2880         * fixinc/inclhack.def (osf_namespace_a): Relax expression to
2881         match that used before the conversion to c_fix style.
2882         * fixinc/fixincl.x: regenerate
2883
2884 2000-06-01  Stan Cox  <scox@cygnus.com>
2885
2886         * varray.h (VARRAY_PUSH_GENERIC_PTR, VARRAY_PUSH_CHAR_PTR): Fix
2887         macro argument typo.
2888
2889 2000-06-01  Zack Weinberg  <zack@wolery.cumb.org>
2890
2891         * cpplex.c (maybe_macroexpand): Use CPP_WTRADITIONAL.  Improve
2892         error message.
2893         * cpplib.c (parse_include): Remove support for VAX-C
2894         "#include starlet" misfeature.
2895
2896 2000-05-31 Laurynas Biveinis <lauras@softhome.net>
2897
2898         * cppfiles.c: conditionally define O_BINARY.
2899         (open_include_file): pass O_BINARY to open().
2900
2901 2000-06-01  Richard Henderson  <rth@cygnus.com>
2902
2903         * i960.c (i960_br_predict_opcode): Remove.
2904         (i960_print_operand) [+]: Emit branch prediction hints.
2905         (i960_function_arg): Return early for VOIDmode.
2906         (i960_round_align): Return early for incomplete types.
2907         * i960.h (PRINT_OPERAND_PUNCT_VALID_P): New.
2908         * i960.md (all conditional branches): Add "%+".
2909
2910 Thu Jun  1 12:24:21 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2911
2912         * alias.c (get_alias_set): Don't call language-specific routine more
2913         than is needed and clean up code a bit.
2914         * c-common.c (c_get_alias_set): All references whose type
2915         is char get alias set 0, but character types need not.
2916         * varasm.c (make_function_rtl): Don't call set_mem_attributes.
2917         (make_decl_rtl): Don't call it for FUNCTION_DECL.
2918
2919 2000-06-01  Bruce Korb  <bkorb@gnu.org>
2920
2921         * fixinc/tests/base/...: new base result files
2922
2923 Thu Jun  1 09:37:35 2000  Clinton Popetz  <cpopetz@cygnus.com>
2924
2925         * config/i386/i386.c (ix86_use_fcomi_compare): Make global.
2926         * config/i386/i386-protos.h (ix86_use_fcomi_compare): Declare.
2927         * config/i386/i386.md (*fp_jcc_3, *fp_jcc_4): Disable if we
2928         will use FCOMI.
2929
2930 2000-06-01  Richard Henderson  <rth@cygnus.com>
2931
2932         * Makefile.in (c-decl.o): Depend on $(EXPR_H), not expr.h.
2933
2934         * c-decl.c (init_decl_processing): Set lang_get_alias_set first thing.
2935
2936 2000-05-31  Richard Henderson  <rth@cygnus.com>
2937
2938         * config/ia64/ia64.c (sdata_symbolic_operand): Consider small
2939         CONSTANT_POOL_ADDRESS_P addresses for .sdata.
2940         * config/ia64/sysv4.h (SELECT_RTX_SECTION): New.
2941
2942 2000-05-31  Richard Henderson  <rth@cygnus.com>
2943
2944         * config/ia64/ia64-protos.h (ia64_expand_prediction): Remove.
2945         * config/ia64/ia64.c (ia64_expand_prediction): Move code ...
2946         (ia64_print_operand) [+]: ... here.  Use current_output_insn.
2947         * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): New.
2948         * config/ia64/ia64.md (all branch/call patterns): Use %+.
2949
2950 2000-05-31  Richard Henderson  <rth@cygnus.com>
2951
2952         * ifcvt.c (cond_exec_process_insns): Don't ever ignore clobbers.
2953
2954 2000-05-31  Richard Henderson  <rth@cygnus.com>
2955
2956         * ifcvt.c (merge_if_block): Be prepared for JOIN to have no
2957         remaining edges.
2958         (find_if_block): Allow THEN with no outgoing edges.
2959         * flow.c (merge_blocks_nomove): Remove a barrier not following
2960         a jump as well.
2961
2962 2000-05-31  Richard Henderson  <rth@cygnus.com>
2963
2964         * flow.c (propagate_block): Move initialization of mem_set_list ...
2965         (init_propagate_block_info): ... here.  Also track blocks with
2966         no successors; don't scan insns if ! PROP_SCAN_DEAD_CODE.
2967
2968 2000-05-31  Richard Henderson  <rth@cygnus.com>
2969
2970         * jump.c (jump_optimize_1): Revert 05-18 change.
2971
2972 2000-05-31  Mark Mitchell  <mark@codesourcery.com>
2973
2974         * invoke.texi: Remove documentation for -fguiding-decls.
2975
2976 2000-05-31  Richard Henderson  <rth@cygnus.com>
2977
2978         * configure.in: Fix typo last change.
2979
2980 2000-05-31  Philipp Thomas  <pthomas@suse.de>
2981
2982         * configure.in (enable-nls): Enable if build == host, i.e. when
2983         not building a canadian cross compiler.
2984         (enable-maintainer-mode): Added for use with i18n.
2985         * aclocal.m4 (AM_GNU_GETTEXT): Only build catalogs that are a
2986         cross section of ALL_LINGUAS and LINGUAS.
2987         * configure: Rebuild.
2988
2989 2000-05-31  Bruce Korb  <bkorb@gnu.org>
2990
2991         * fixinc/check.tpl: rework to use test result tree
2992         * fixinc/Makefile.in: change invocation of check script
2993         * fixinc/check.diff: No longer needed
2994         * fixinc/fixincl.x: regenerate
2995         * fixinc/inclhack.def:  add new tests
2996         * fixinc/tests/base/arch/i960/archI960.h:  New test result
2997         * fixinc/tests/base/curses.h: modified test result
2998         * fixinc/tests/base/stdio.h: ditto
2999         * fixinc/tests/base/time.h: ditto
3000         * fixinc/tests/base/sys/asm.h: ditto
3001         * fixinc/tests/base/sys/stat.h: ditto
3002         * fixinc/tests/base/sys/wait.h: ditto
3003
3004 Wed May 31 13:17:20 2000  Philippe De Muyter  <phdm@macqel.be>
3005
3006         * except.c (clear_function_eh_region): Do not free NULL.
3007
3008 Wed May 31 08:07:52 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3009
3010         * Makefile.in (c-decl.o): Depend on rtl.h and expr.h.
3011         * alias.c (struct alias_entry): alias_set is HOST_WIDE_INT.
3012         (REG_BASE_VALUE): Remove unneeded cast to unsigned.
3013         (get_alias_set_entry): ALIAS_SET arg is HOST_WIDE_INT.
3014         (find_base_decl): New function, from c_find_base_decl in c-common.c.
3015         (new_alias_set): Moved from tree.c; return is HOST_WIDE_INT.
3016         (get_alias_set): Likewise.
3017         Major rework to do more things and allow language-specific code
3018         to just handle special-cases.
3019         (record_alias_subset): Args are HOST_WIDE_INT.
3020         (record_component_alias): Local vars are HOST_WIDE_INT.
3021         Don't handle COMPLEX_EXPR.
3022         (get_varargs_alias_set): Moved from builtins.c.
3023         (get_frame_alias_set): New function.
3024         * builtins.c (expand_builtin_return_address): Use frame alias set.
3025         (expand_builtin_setjmp, expand_builtin_longjmp): Use alias set
3026         for setjmp buffer.
3027         (get_memory_rtx): Rework to use set_mem_attributes.
3028         (get_varargs_alias_set): Deleted from here.
3029         * c-common.c (c_apply_type_quals_to_decl): Alias sets now HOST_WIDE_INT.
3030         (c_find_base_decl): Deleted from here.
3031         (c_get_alias_set): Remove many cases and rework to just handle
3032         C-specific cases.
3033         * c-common.h (c_get_alias_set): Returns HOST_WIDE_INT.
3034         * c-decl.c (rtl.h, expr.h): Now included.
3035         (init_decl_processing): Call record_component_aliases on array types.
3036         (grokdeclarator): Likewise.
3037         Set TREE_ADDRESSABLE for all fields that are not bitfields.
3038         * c-typeck.c (common_type): Call record_component_aliases for array.
3039         * caller-save.c (setup_save_areas): Rework register loop for unsigned.
3040         Set all save areas to the frame alias set.
3041         * calls.c (initialie_argument_information): Call set_mem_attributes.
3042         (compute_argument_addresses, expand_call): Likewise.
3043         * explow.c (set_mem_attributes): New function.
3044         (stabilize): Use MEM_COPY_ATTRIBUTES and force_reg.
3045         * expr.c (struct move_by_pieces): Remove {to,from}_{struct,readonly}.
3046         LEN and OFFSET now HOST_WIDE_INT.
3047         (clear_by_pieces): Similar changes.
3048         (move_by_pieces): LEN now HOST_WIDE_INT; don't set deleted fields.
3049         (move_by_pieces_ninsns): Now returns unsigned HOST_WIDE_INT.
3050         (move_by_pieces_1): Don't use deleted fields, use MEM_COPY_ATTRIBUTES.
3051         (clear_by_pieces_1): Likewise.
3052         (emit_push_insn): Call set_mem_attributes.
3053         (expand_expr, case INDIRECT_REF): Likewise.
3054         (expand_expr, case VAR_DECL): Call change_address.
3055         * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE): Use host_integerp and
3056         tree_low_cst.
3057         (get_varargs_alias_set, get_frame_alias_set): New decls.
3058         (record_base_value, record_alias_subset, lang_get_alias_set): Likewise.
3059         (new_alias_set, set_mem_attributes): Likewse.
3060         * function.c (struct temp_slot): ALIAS_SET is HOST_WIDE_INT.
3061         (assign_stack_temp_for_type): Likewise.
3062         Can split slot even if alias set since can copy.
3063         Set MEM_ALIAS_SET and MEM_SET_IN_STRUCT_P.
3064         (assign_temp): Use host_integerp and tree_low_cst.
3065         (put_var_into_stack): Properly handle SAVE_EXPR.
3066         (put_addressof_into_stack): Likewise.
3067         (assign_parms): Call set_mem_attributes.
3068         Delete #if 0 code.
3069         (fix_lexical_address): Put reference to chain into frame alias set.
3070         (expand_function_start): Call set_mem_attributes.
3071         * integrate.c (expand_inline_function): Likewise.
3072         * recog.c (adj_offsettable_operand): Use MEM_COPY_ATTRIBUTES.
3073         * regmove.c (try_apply_stack_adjustment): Likewise.
3074         * reload.c (push_reload, make_memloc): Likewise.
3075         * reload1.c (alter_reg): Make alias sets for spilled pseudos.
3076         * rtl.def (MEM): Update comment.
3077         * rtl.h (MEM_ALIAS_SET): Now uses XCWINT.
3078         (move_by_pieces): Change length to HOST_WIDE_INT.
3079         (record_base_value, record_alias_subset): Delete from here.
3080         * stmt.c (expand_decl): Call set_mem_attributes.
3081         * stor-layout.c (finish_record_layout): Call record_component_aliases.i
3082         * toplev.c (compile_file): Call init_alias_once earlier.
3083         * tree.c (lang_get_alias_set, get_alias_set, new_alias_set): Deleted
3084         from here: now in alias.c.
3085         * tree.h (struct tree_type): alias_set is HOST_WIDE_INT.
3086         (struct tree_decl): Likewise.
3087         (get_alias_set, new_alias_set, lang_get_alias_set): Deleted from here.
3088         * varasm.c (make_function_rtl, make_decl_rtl): Call set_mem_attributes.
3089         (output_constant_def, force_const_mem): Likewise.
3090
3091         * flow.c (propagate_block): If block has no successors, stores to
3092         frame are dead if not used.
3093
3094 2000-05-31  Nathan Sidwell  <nathan@codesourcery.com>
3095
3096         * stmt (expand_end_case): Reorder conversion sequence for jump
3097         table to avoid extra truncations.
3098
3099 Wed May 31 01:31:42 2000  Jeffrey A Law  (law@cygnus.com)
3100
3101         * ifcvt.c (cond_exec_process_if_block): Do nothing if the last insn
3102         in the block is more than just a simple conditional branch.
3103         (noce_process_if_block): Similarly.
3104
3105 Tue May 30 22:25:57 2000  Alexandre Oliva  <aoliva@cygnus.com>
3106
3107         * optabs.c (prepare_float_lib_cmp): Protect *px and *py from
3108         queue.
3109
3110 2000-05-30  Michael Meissner  <meissner@redhat.com>
3111
3112         * dwarf2out.c (dwarf2out_frame_debug_expr): Ignore HIGH
3113         instructions.  Treat LO_SUM operations as loading the full integer
3114         constant.
3115
3116 2000-05-30  Richard Henderson  <rth@cygnus.com>
3117
3118         * combine.c (get_pos_from_mask): Test exact_log2 result as signed.
3119
3120 2000-05-30  Richard Henderson  <rth@cygnus.com>
3121
3122         * bb-reorder.c (emit_jump_to_block_after): Protect use of HAVE_return.
3123
3124 2000-05-30  Bruce Korb  <bkorb@gnu.org>
3125
3126         * fixinc/tests/*:  Added expected result files for fixinc's make check
3127         * fixinc/fixfixes(char_macro_*_fix): Restore original algorithm
3128
3129 2000-05-30  Richard Henderson  <rth@cygnus.com>
3130
3131         * config/alpha/alpha.md (*setne_internal): Use match_operator
3132         instead of working down from insn.
3133
3134 2000-05-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3135
3136         * invoke.texi (-Wtraditional): Update WRT function macros.
3137
3138 Tue May 30 09:57:32 2000  Philippe De Muyter  <phdm@macqel.be>
3139
3140         * except.c (free_exception_table): Do not free NULL.
3141
3142 2000-05-29  Zack Weinberg  <zack@wolery.cumb.org>
3143
3144         * cpplib.c (do_if): Don't save and restore only_seen_white here.
3145         * cppexp.c (_cpp_parse_expr): Save and restore only_seen_white
3146         and skipping here.
3147
3148 2000-05-29  Richard Earnshaw (rearnsha@arm.com)
3149
3150         * flow.c (mark_used_reg): If a register is unconditionally live,
3151         remove any conditional death information.
3152
3153 2000-05-29  Richard Henderson  <rth@cygnus.com>
3154
3155         * final.c (current_output_insn): New.
3156         (final_scan_insn): Set it.
3157         * output.h: Declare it.
3158
3159 2000-05-29  Richard Henderson  <rth@cygnus.com>
3160
3161         * stor-layout.c (finalize_record_size): Fix typo.
3162
3163         * jump.c (redirect_jump): Don't emit NOTE_INSN_FUNCTION_END
3164         if nlabel is null.
3165
3166 2000-05-29  Zack Weinberg  <zack@wolery.cumb.org>
3167
3168         * cpplib.h (cpp_reader): Remove if_stack.  Change
3169         potential_control_macro to a cpp_hashnode *.  Add skipping flag.
3170         * cpphash.h (struct ihash): Change control_macro to a
3171         cpp_hashnode * and shorten name to cmacro.
3172         Add NEVER_REINCLUDE constant.
3173
3174         * cppfiles.c (redundant_include_p): Drop cpp_reader argument.
3175         Examine the cmacro node directly, no need to call cpp_defined.
3176         (_cpp_execute_include, read_include_file): Set cmacro to
3177         NEVER_REINCLUDE, not U"".
3178         * cpplex.c (cpp_push_buffer): Don't set new->if_stack.
3179         (cpp_get_token): If pfile->skipping is true, discard text and
3180         keep scanning until we hit a directive; don't expand macros.
3181
3182         * cpplib.c (struct if_stack): Remove if_succeeded, add
3183         was_skipping. Change control_macro to a cpp_hashnode * and
3184         shorten name to cmacro.  Remove typedef IF_STACK.
3185         (parse_ifdef), detect_if_not_defined): Return a cpp_hashnode *.
3186         (conditional_skip, skip_if_group,
3187         consider_directive_while_skipping): Delete.
3188         (push_conditional): New.
3189         (_cpp_handle_directive): Don't process directives other than
3190         conditionals if we are skipping.
3191
3192         (do_ifdef, do_ifndef, do_if, do_else, do_elif, do_endif):
3193         Update to new scheme.
3194         (validate_else): Skip rest of line here, unconditionally.
3195         (_cpp_unwind_if_stack): The stack is per-buffer.  Force
3196         pfile->skipping off.
3197
3198         (all): Remove `scare quotes' from error messages.
3199
3200 2000-05-29  Richard Henderson  <rth@cygnus.com>
3201
3202         * function.c (emit_return_into_block): New line_note arg; emit it.
3203         (thread_prologue_and_epilogue_insns): Attempt to locate a line note
3204         for the close brace to accompany HAVE_return.  Move all line notes
3205         following the epilogue to before the NOTE_INSN_EPILOGUE_BEG.
3206
3207 2000-05-29  Richard Henderson  <rth@cygnus.com>
3208
3209         * longlong.h [__alpha] (count_leading_zeros): New.
3210         (count_trailing_zeros): New.
3211         (COUNT_LEADING_ZEROS_0): New.
3212
3213         * config/alpha/alpha.c (alpha_zero_comparison_operator): New.
3214         (alpha_split_conditional_move): New.
3215         * config/alpha/alpha-protos.h: Prototype them.
3216         * config/alpha/alpha.h (PREDICATE_CODES): Update.
3217         (CPP_CPU_DEFAULT_SPEC): Fix typo for EV67.
3218         * config/alpha/alpha.md: Update ffs cix commentary.
3219         (*ze_and_ne): New.
3220         (*nabssf2, *nabsdf2): New.
3221         (*mov[qhsd]icc_internal): Use add_operand.
3222         (if_then_else constant splitters): New.
3223         (*cmp_sadd_di, *cmp_sadd_si, *cmp_sadd_sidi): New.
3224         (*cmp_ssub_di, *cmp_ssub_si, *cmp_ssub_sidi): New.
3225
3226 2000-05-29  Richard Henderson  <rth@cygnus.com>
3227
3228         * combine.c (force_to_mode) [MINUS]: Convert subtraction from
3229         a constant to NEG or NOT when conditions allow.
3230
3231         * combine.c (combine_simplify_rtx): Don't create an if_then_else
3232         unless both args are general_operand.  Don't canonicalize plus
3233         to ior unless it helps.
3234
3235         * toplev.c (rest_of_compilation): Set no_new_pseudos after flow1;
3236         instead track register_life_up_to_date.  Toggle no_new_pseudos
3237         around if_convert.
3238
3239 2000-05-28  Geoff Keating  <geoffk@cygnus.com>
3240
3241         * config/rs6000/rs6000.c (output_cbranch): Escape '%' characters
3242         so output_operand doesn't see them.
3243
3244 Sun May 28 18:37:07 2000  Clinton Popetz  <cpopetz@cygnus.com>
3245
3246         * lcm.c (make_preds_opaque): Fix comment.
3247         (optimize_mode_switching): Use NORMAL_MODE instead of
3248         MODE_USES_IN_EXIT_BLOCK.  Change leftover instance of
3249         FP_MODE_NONE to no_mode.  Rename MODE_AT_ENTRY to NORMAL_MODE.
3250         Handle insertions before an existing NOTE_INSN_BASIC_BLOCK.
3251         * tm.texi (OPTIMIZE_MODE_SWITCHING): Refer to NORMAL_MODE.
3252         (MODE_USES_IN_EXIT_BLOCK): Delete.
3253         (MODE_AT_ENTRY) Rename to NORMAL_MODE.
3254         * sh.h (MODE_USES_IN_EXIT_BLOCK): Delete.
3255         (MODE_AT_ENTRY): Rename to NORMAL_MODE.
3256         (MODE_NEEDED): Don't look for USE.
3257         (EPILOGUE_USES): Define.
3258
3259 Sun May 28 23:26:59 2000  Philippe De Muyter <phdm@macqel.be>
3260
3261         * mklibgcc.in (all): Variable initialised to `libgcc'.
3262
3263 2000-05-28  Gabriel Dos Reis  <gdr@codesourcery.com>
3264
3265         * toplev.h (skip_leading_substring): New macro.
3266         * toplev.c (decode_f_option): Use skip_leading_substring instead
3267         of strncmp.
3268         (decode_W_option): Likewise.
3269
3270 2000-05-28  Nick Clifton  <nickc@cygnus.com>
3271
3272         * tm.texi (CONDITIONAL_REGISTER_USAGE): Document that it can
3273         modify reg_names.
3274
3275 2000-05-28  Richard Henderson  <rth@cygnus.com>
3276
3277         * regclass.c (record_operand_costs): Protect reg_changes_size
3278         with CLASS_CANNOT_CHANGE_SIZE.
3279
3280         * loop.c (instrument_loop_bct): Set JUMP_LABEL on the new insn.
3281
3282 2000-05-28  Richard Henderson  <rth@cygnus.com>
3283
3284         * function.c (diddle_return_value): A pcc-style struct return
3285         returns a pointer.
3286
3287 2000-05-27  Zack Weinberg  <zack@wolery.cumb.org>
3288
3289         * cppfiles.c: Read files in, using mmap if possible, then
3290         prescan them separately.
3291         (read_file, read_with_read): New functions.
3292         * cpplex.c: Don't define UCHAR_MAX.
3293         (_cpp_read_and_prescan): Rename to _cpp_prescan.  Don't read
3294         the file here.
3295
3296         * cppinit.c (handle_option): Automatically define __cplusplus,
3297         __OBJC__, __ASEEMBLER__, _LANGUAGE_FORTRAN here when we see
3298         the respective -lang switch.
3299
3300         * cpphash.h (enum node_type, struct hashnode, _cpp_lookup
3301         prototype): Move to...
3302         * cpplib.h: ... here.  Rename struct hashnode to struct
3303         cpp_hashnode and give it a typedef.  Rename _cpp_lookup to
3304         cpp_lookup.  Add 'fe_value' slot, a union tree_node *.
3305
3306 2000-05-27  Geoffrey Keating  <geoffk@cygnus.com>
3307
3308         * config/rs6000/rs6000.md (movsi): Constify 'name'.
3309
3310         * regclass.c [CLASS_CANNOT_CHANGE_SIZE]
3311         (class_can_change_size): New variable.
3312         (reg_changes_size): New variable.
3313         (init_reg_sets_1): Initialise class_can_change_size.
3314         (record_operand_costs): Remove subreg_changes_size.
3315         Don't pass it around.  Instead update reg_changes_size.
3316         (regclass): Initialise and free reg_changes_size.  If a register
3317         changes size, don't preference it to a class that contains
3318         registers that can't change size.
3319         (record_reg_classes): Don't look at subreg_changes_size.
3320
3321 2000-05-27  Richard Henderson  <rth@cygnus.com>
3322
3323         * print-rtl.c (reg_names): Remove const.
3324         * regclass.c (reg_names): Likewise.
3325         * regs.h (reg_names): Likewise.
3326         * hard-reg-set.h (reg_names): Likewise.
3327
3328 2000-05-27  Richard Henderson  <rth@cygnus.com>
3329
3330         * config/rs6000/rs6000.md (untyped_call): Use GEN_CALL.
3331
3332 2000-05-27  Richard Henderson  <rth@cygnus.com>
3333
3334         * config/alpha/alpha.c (alpha_does_function_need_gp): Test
3335         TARGET_PROFILING_NEEDS_GP in the if, instead of with an ifdef.
3336         (alpha_expand_prologue): Emit prologue_mcount if needed.
3337         * config/alpha/alpha.h (TARGET_PROFILING_NEEDS_GP): Default to 0.
3338         * config/alpha/alpha.md (prologue_mcount): New.
3339         * config/alpha/linux.h (FUNCTION_PROFILER): Remove.
3340         (TARGET_PROFILING_NEEDS_GP): Undef before redefining.
3341         * config/alpha/netbsd.h: Likewise.
3342
3343 2000-05-27  Richard Henderson  <rth@cygnus.com>
3344
3345         * config/alpha/elf.h (SELECT_SECTION): Mirror Kenner's May 19
3346         change to config/elfos.h.
3347
3348 2000-05-27  Richard Henderson  <rth@cygnus.com>
3349
3350         * Makefile.in (resource.o): Depend on except.h.
3351         * except.h (output_exception_table_data): Prototype.
3352         * genconfig.c (gen_peephole2): Prototype.
3353         * genemit.c (main): Include ggc.h.
3354         * genoutput.c: Revert parts of last change: include errors.h
3355         (main): Set progname.
3356         * recog.c: Include hard-reg-set.h before recog.h.
3357         * resource.c: Include except.h.
3358
3359         * config/alpha/alpha-protos.h (alpha_arg_info_reg_val): Protect
3360         with RTX_CODE.
3361         (alpha_write_linkage): Protect with BUFSIZ.
3362         (alpha_need_linkage): Update prototype.
3363         * config/alpha/alpha.c (function_arg): Move VMS code here.
3364         (alpha_links_base): Remove.
3365         (alpha_links): New.
3366         (mark_alpha_links_node, mark_alpha_links): New.
3367         (alpha_write_one_linkage): New.
3368         (alpha_need_linkage): Use a splay tree.  Build the linkage symbol.
3369         (alpha_write_linkage): Use splay_tree_foreach.
3370         * config/alpha/alpha.md (call_vms): Use alpha_need_linkage
3371         to get the linkage symbol.
3372         (call_value_vms): Likewise.
3373         * config/alpha/elf.h (output_file_directive): Remove decl.
3374         (ctors_section, dtors_section): Prototype.
3375         (sbss_section, sdata_section): Prototype.
3376         * config/alpha/vms.h (FUNCTION_ARG): Remove.
3377         (readonly_section, link_section, literals_section): Prototype.
3378         (ctors_section, dtors_section): Prototype.
3379         (vms_valid_decl_attribute_p): Remove decl.
3380         (alpha_arg_type, alpha_arg_info_reg_val): Likewise.
3381
3382 2000-05-27  Geoff Keating  <geoffk@cygnus.com>
3383
3384         * reload.c (get_secondary_mem): Don't widen floating-point modes.
3385
3386         * combine.c (subst): Honour CLASS_CANNOT_CHANGE_SIZE when
3387         substituting the REG in a (subreg:X (reg:Y ...)).
3388
3389 2000-05-28  Neil Booth  <NeilB@earthling.net>
3390
3391         * cpplex.c (_cpp_lex_line): Merge vertical space.  Flag
3392         first token of a line BOL.  Update EOF code for this.
3393         Remove illegal directive check - it appears in the (not
3394         yet committed) caller.
3395         * cpplib.h (BOL): New flag.
3396
3397 2000-05-28  Neil Booth  <NeilB@earthling.net>
3398
3399         * cpplex.c (_cpp_init_toklist): No comment space to initialise.
3400         (_cpp_free_toklist): No comment space to free.
3401         (expand_comment_space): Remove.
3402         (save_comment_space): Place the comment in the current token and
3403         not in a separate comment space.
3404         (_cpp_lex_line): Save comments during plain code and #define
3405         directives only.
3406         * cpplib.h (struct _cpp_toklist): Remove comment space.
3407
3408 2000-05-28  Neil Booth  <NeilB@earthling.net>
3409
3410         * cppexp.c (parse_assertion): Supply extra argument to
3411         _cpp_init_toklist.
3412         * cpplib.c (do_assert, do_unassert): Similarly.
3413         * cpphash.h (_cpp_init_toklist) Update.
3414         (_cpp_expand_token_space): New.
3415         (DUMMY_TOKEN, NO_DUMMY_TOKEN): New.
3416         * cpplex.c (_cpp_init_toklist): New argument.
3417         (parse_string2): New argument multiline_ok.
3418         (spell_token): Take a const cpp_token *.
3419         (INIT_NAME): Replace with INIT_TOKEN_NAME.  Update tokens_used.
3420         (SPELL_ macros): Replace with enum.
3421         (expand_token_space): Replace with _cpp_expand_token_space.
3422         Take COUNT argument.
3423         (IS_DIRECTIVE): Update.
3424         (_cpp_lex_line): Update token structure before parsing number.
3425         Don't assume start at beginning of token list.
3426         (save_comment): Use INIT_TOKEN_NAME.
3427
3428 2000-05-27  Zack Weinberg  <zack@wolery.cumb.org>
3429
3430         * configure.in (stage1_warn_cflags): Add -Wstrict-prototypes
3431         -Wmissing-prototypes.
3432         * configure: Regenerate.
3433         * gcc.texi: Remove explanation of MD_CALL_PROTOTYPES.
3434
3435         * builtins.c, calls.c: Change all instances of gen_call_* or
3436         gen_sibcall_* to GEN_CALL_* and GEN_SIBCALL_*.
3437         * calls.c (struct_value_size_rtx): Separate definition from
3438         initialization to avoid unused variable warning.
3439
3440         * genflags.c (gen_macro): New function.
3441         (gen_proto): Call it for gen_call_* and gen_sibcall_*.
3442         (gen_nonproto): Delete.
3443         (gen_insn): Put all insns on the same obstack.
3444         (main): Generate prototypes for everything unconditionally.
3445
3446         * configure.in: Add AC_CHECK_TYPE(ssize_t).  Remove commented
3447         out check for wchar_t.
3448         * acconfig.h: Add template for ssize_t.  Remove @TOP@.
3449         * system.h: Add infrastructure for defining missing
3450         TYPE_MAX/TYPE_MIN macros.  Use it to provide fallback
3451         definitions of UCHAR_MAX and SSIZE_MAX.
3452         * configure: Regenerate.
3453         * config.in: Regenerate.
3454
3455         * Makefile.in (libgcc2.ready): Rename to libgcc.ready.
3456         Depend on $(LANGUAGES) as well as $(GCC_PATCHES) and fixed
3457         headers.
3458         (clean): No need to delete libgcc1.a, libgcc1-asm.a,
3459         libgcc2.a, or libgcc1.null.
3460
3461 2000-05-27  Richard Henderson  <rth@cygnus.com>
3462
3463         * Makefile.in (recog.o): Don't depend on resource.h.
3464         * recog.c: Don't include resource.h.
3465         (recog_last_allowed_insn): Remove.
3466         (recog_next_insn): Remove.
3467         (struct peep2_insn_data): New.
3468         (peep2_insn_data, peep2_current): New.
3469         (peep2_next_insn): New.
3470         (peep2_regno_dead_p, peep2_reg_dead_p): New.
3471         (peep2_find_free_register): New.
3472         (peephole2_optimize): Track life information by insn as we go.
3473         * recog.h: Update declarations.
3474         * resource.c (find_free_register, reg_dead_p): Remove.
3475         * resource.h: Remove their declarations.
3476         * toplev.c: Include hard-reg-set.h before recog.h.
3477
3478         * genconfig.c (max_insns_per_peep2): New.
3479         (gen_peephole2): New.
3480         (main): Call it.
3481         * genemit.c (output_peephole2_scratches): Generate calls to
3482         peep2_find_free_register; adjust surrounding code.
3483         (main): Have insn-emit.c include hard-reg-set.h before recog.h.
3484         * genrecog.c (change_state): Don't track last_insn.
3485         (write_action): Write into *_pmatch_len before accepting.
3486         (write_tree): Adjust peephole2_insns and subroutines to match.
3487
3488         * config/i386/i386.md (all peepholes): Use peep2_regno_dead_p.
3489
3490         * config/alpha/alpha.c (hard_fp_register_operand): Mind the mode.
3491         (hard_int_register_operand): New.
3492         * config/alpha/alpha-protos.h: Declare it.
3493         * config/alpha/alpha.h (PREDICATE_CODES): Update.
3494         * config/alpha/alpha.md (peep2 patterns): Use hard_int_register_operand
3495         as needed; use peep2_reg_dead_p instead of dead_or_set_p.
3496
3497 2000-05-27  Richard Henderson  <rth@cygnus.com>
3498
3499         * function.c (thread_prologue_epilogue_insns): Don't move the
3500         line note at the head of the chain.  Only force a lineno note
3501         before the end of block 0.
3502
3503 2000-05-27  Richard Henderson  <rth@cygnus.com>
3504
3505         * gensupport.c (collect_insn_data): Record the maximum number
3506         of alternatives, not the last seen.
3507
3508         * genoutput.c: Don't include errors.h.
3509         (struct data): Add lineno member.
3510         (have_error): New.
3511         (scan_operands): Use message_with_line instead of error.
3512         (validate_insn_alternatives): Likewise.
3513         (gen_insn): Accept and store the pattern's line number.
3514         (gen_peephole, gen_expand, gen_split): Likewise.
3515         (main): Don't set progname.  Pass line_no to gen_foo.
3516
3517 2000-05-27  Richard Henderson  <rth@cygnus.com>
3518
3519         * config/d30v/d30v.c (d30v_print_operand): Handle ':'.
3520         * config/d30v/d30v.h (PRINT_OPERAND_PUNCT_VALID_P): Accept ':'.
3521         * config/d30v/d30v.md (attr predicable): New.
3522         (all insn patterns): Mark non-predicable patterns; use %: on the rest.
3523         (andsi3*): Unify into one pattern.
3524         (iorsi3*, xorsi3*): Likewise.
3525         (peephole2 patterns): Use peep2_reg_dead_p; verify not a
3526         conditional return.
3527         (old cond_exec patterns): Remove.
3528         (define_cond_exec): New.
3529
3530 Sat May 27 11:01:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3531
3532         * tree.h (TREE_CODE_LENGTH): New macro.
3533         * c-common.c (c_find_base_decl): Use it.
3534         * expr.c (safe_from_p): Likewise.
3535         * print-tree.c (print_node): Likewise.
3536         * tree.c (make_node, copy_node, get_identifier): Likewie.
3537         (first_rtl_op, contains_placeholder_p, substitute_in_expr): Likewise.
3538         (build, build_nt, build_parse_node, simple_cst_equal): Likewise.
3539         * fold-const.c (make_range): Likewise.
3540         (fold): Likewise; also use first_rtl_op.
3541         * c-iterate.c (collect_iterators): Use first_rtl_op.
3542         * calls.c (calls_function_1): Likewise; also rename TYPE to CLASS.
3543         Use IS_EXPR_CODE_CLASS.
3544         (preexpand_calls): Likewise.
3545         * ggc-common.c (ggc_mark_trees): Rework to use first_rtl_op
3546         and TREE_CODE_LENGTH.
3547         * stmt.c (warn_if_unused_value): If no operands, no unused value.
3548
3549 2000-05-26  Geoffrey Keating  <geoffk@cygnus.com>
3550
3551         * config/rs6000/rs6000.md (movsi_internal1): Use '%a1' rather
3552         than '%1(%*)'.
3553         (movdi_internal64): Likewise.
3554
3555         * config/rs6000/rs6000.md: Correct order of operands for DImode
3556         boolean patterns.
3557
3558         * config/rs6000/rs6000.c (boolean_or_operator): New function.
3559         * config/rs6000/rs6000-protos.h (boolean_or_operator): Prototype it.
3560         * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_or_operator.
3561         * config/rs6000/rs6000.md: Use boolean_or_operator instead of
3562         boolean_operator for the boolean patterns without NOTs.
3563
3564         * config/rs6000/rs6000.c (reg_or_logical_cint_operand): Rename
3565         from reg_or_u_cint_operand.  Change comment and behaviour.
3566         (logical_operand): Clean up, add assertion.
3567         (non_logical_cint_operand): Also check for
3568         reg_or_logical_cint_operand.
3569         * config/rs6000/rs6000.h (PREDICATE_CODES): Update.
3570         * config/rs6000/rs6000.md (iorsi3): Use reg_or_logical_cint_operand
3571         in the expander.
3572         (xorsi3): Likewise.
3573         (iordi3): Likewise.
3574         (xordi3): Likewise.
3575
3576 2000-05-26  Mark Mitchell  <mark@codesourcery.com>
3577
3578         * tree.h (struct record_layout_info): Rename to (struct
3579         record_layout_info_s).
3580         * stor-layout.c (start_record_layout): Replace
3581         `record_layout_info' with `record_layout_info_s'.
3582
3583 2000-05-26  Richard Earnshaw  <rearnsha@arm.com>
3584
3585         * flow.c (find_label_refs): New function.
3586         (find_basic_blocks_1): Call it for each alternative of a call
3587         placeholder.
3588
3589 2000-05-26  Richard Earnshaw  <rearnsha@arm.com>
3590
3591         * ifcvt.c (cond_exec_get_condition): Set test_if to the SET_SRC
3592         of get_pc.
3593
3594 2000-05-25  Richard Henderson  <rth@cygnus.com>
3595
3596         * config/alpha/alpha.c (alpha_comparison_operator): Don't be
3597         so strict about DImode.
3598         (alpha_swapped_comparison_operator): Likewise.
3599         * config/alpha/alpha.md (*setne_internal): Name it.  Allow
3600         any integer output mode.
3601         (*setcc_internal): Likewise.
3602         (*setcc_swapped_internal): Likewise.
3603         (*movdicc_internal, *movdicc_lbc, *movdicc_lbs): Name them.
3604         (*mov[qhs]icc_internal): New.
3605         (*mov[qhs]icc_lbc, *mov[qhs]icc_lbs): New.
3606
3607 2000-05-25  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
3608
3609         * vax.h (CPP_SPEC): Define __GFLOAT and GFLOAT when -mg is specified.
3610
3611 2000-05-25  Richard Henderson  <rth@cygnus.com>
3612
3613         * bb-reorder.c (reorder_block_def): Reorder elements for size.
3614         Remove add_jump; add next; replace flags with visited.
3615         (rbd_init): Remove.
3616         (REORDER_BLOCK_HEAD, REORDER_BLOCK_VISITED): Remove.
3617         (REORDER_BLOCK_FLAGS, REORDER_BLOCK_INDEX): Remove.
3618         (REORDER_BLOCK_ADD_JUMP, REORDER_BLOCK_EFF_HEAD): Remove.
3619         (REORDER_BLOCK_EFF_END, REORDER_BLOCK_SCOPE): Remove.
3620         (RBI): New.
3621         (reorder_index, reorder_last_visited): Remove.
3622         (skip_insns_after_block): Rewrite to use a switch.
3623         (get_common_dest): Remove.
3624         (chain_reorder_blocks): Remove.
3625         (record_effective_endpoints): Split out from reorder_basic_blocks.
3626         (make_reorder_chain): Likewise.  Loop until all blocks are placed.
3627         (make_reorder_chain_1): Renamed from old make_reorder_chain.
3628         Only construct the reorder chain, do not move insns.  Try harder
3629         to tail recurse.
3630         (label_for_bb, emit_jump_to_block_after): New.
3631         (fixup_reorder_chain): Use them.  Do bulk block movement.  Examine
3632         and adjust the jump insns appropriately.  Fixup basic_block_info.
3633         (verify_insn_chain): Always define.
3634         (relate_bbs_with_scopes): Call xmalloc, not xcalloc.  Fix thinko
3635         in allocation size.
3636         (make_new_scope): Don't write zeros to calloc'd space.
3637         (build_scope_forest): Rely on xrealloc to DTRT.
3638         (reorder_basic_blocks): Don't build loop nest.  Don't fail if
3639         profile_arc_flag.  Streamline EH test.
3640
3641         * flow.c (redirect_edge_succ, redirect_edge_pred): New.
3642         * basic-block.h: Declare them.
3643
3644 2000-05-25  Alexandre Oliva  <aoliva@cygnus.com>
3645
3646         * emit-rtl.c (reset_used_decls): New function.
3647         (unshare_all_rtl_again): Call it.
3648
3649 2000-05-25  Zack Weinberg  <zack@wolery.cumb.org>
3650
3651         * cpplex.c (maybe_macroexpand): Warn about function-like
3652         macros used in non-function context, if -Wtraditional.
3653
3654 2000-05-25  Mark Mitchell  <mark@codesourcery.com>
3655
3656         * recog.c (peephole2_optimize): Use INSN_P.
3657
3658 2000-05-25  Richard Henderson  <rth@cygnus.com>
3659
3660         * ifcvt.c (seq_contains_jump): New.
3661         (noce_try_store_flag_constants): Use it to fail conversion.
3662         (noce_try_store_flag_inc, noce_try_store_flag_mask): Likewise.
3663
3664 2000-05-25  Mark Mitchell  <mark@codesourcery.com>
3665
3666         * except.h (can_throw): Declare it.
3667         * except.c (can_throw): Give it external linkage.
3668         * resource.c (find_dead_or_set_registers): Use can_throw.
3669
3670 2000-05-25  Richard Henderson  <rth@cygnus.com>
3671
3672         * flow.c (mark_set_1): Don't record conditionally dead memory.
3673
3674 2000-05-25  Jan Hubicka  <jh@suse.cz>
3675
3676         * combine.c (try_combine): Use any_condjump_p, any_uncondjump_p
3677         and pc_set at the place of simplejump_p and condjump_p.
3678         * cse.c (record_jump_equiv): Likewise.
3679         * emit-rtl.c (emit): Likewise.
3680         * explow.c (find_next_ref): Likewise.
3681         * flow.c (tidy_fallthru_edge): Likewise.
3682         (init_propagate_block_info): Likewise.
3683         * gcse.c (delete_null_pointer_checks): Likewise.
3684         * ifcvt.c (cond_exec_get_condition, noce_get_condition,
3685         dead_or_predicable): Likewise.
3686         * integrate.c (copy_insn_list): Likewise.
3687         * loop.c (scan_loop, verify_dominator, find_and_verify_loops,
3688         for_each_insn_in_loop, check_dbra_loop, get_condition,
3689         insert_bct, load_mems): Likewise.
3690         * resource.c (find_dead_or_set_registers): Likewise.
3691         * sibcalls.c (simplejump_p): Likewise.
3692         * unroll.c (copy_loop_body, reg_dead_after_loop): Likewise.
3693
3694 2000-05-25  David Edelsohn  <edelsohn@gnu.org>
3695
3696         * rs6000.c (expand_block_move): Add 64-bit PowerPC doubleword move
3697         to STRING case.  Use doubleword STRING move for TARGET_POWERPC64
3698         when unaligned.
3699         * rs6000.h (CONST_OK_FOR_LETTER_P, 'J'): unsigned HOST_WIDE_INT.
3700         (RETURN_ADDR_RTX): Use COUNT and FRAME, not count and frame.
3701         (LEGITIMIZE_RELOAD_ADDRESS): unsigned HOST_WIDE_INT high.
3702         * rs6000.md: Name various internal patterns.
3703
3704 2000-05-25  Jan Hubicka  <jh@suse.cz>
3705
3706         * jump.c (invert_exp_1): Remove first argument, use pc_set
3707         to get the expression.
3708         (redirect_exp): Make static; redirect only the pc_set expression,
3709         remove first argument.
3710         (invert_exp): Remove first argument, make static.
3711         (jump_optimize): Use any_condjump_p, any_uncondjump_p and
3712         any_onlyjump at most places where we originaly did condjump_p
3713         and simplejump_p.
3714         (jump_back_p, follow_jumps, thread_jumps): Likewise.
3715         (delete_barrier_succesors): Use pc_set.
3716         (invert_jump_1, invert_jump, redirect_jump_1, redirect_jump): Update
3717         calls of invert_exp and redirect_exp.
3718         * rtl.h (redirect_exp, invert_exp): Remove.
3719         * unroll.c (copy_loop_body): Use invert_jump and redirect_jump.
3720
3721 2000-05-25  Richard Henderson  <rth@cygnus.com>
3722
3723         * stmt.c (expand_end_bindings): Fix thinko last change.
3724
3725 2000-05-25  Andrew MacLeod  <amacleod@cygnus.com>
3726             Andrew Haley  <aph@cygnus.com>
3727
3728         * except.c  (func_eh_entry): Add emitted field.
3729         (new_eh_region_entry): Set emitted field to 0;
3730         (output_exception_table_entry): Only emit previously un-emitted data,
3731         and send it to the eh_data section.
3732         (output_exception_table): Break out common parts. Output
3733         exception table for entire compilation unit to eh_data section.
3734         (output_exception_table_data): Common parts of output_exception_table.
3735         Send output to eh_data section.
3736         (output_function_exception_table): Output exception table data for
3737         a single function to eh_data section.
3738         (free_exception_table): New external to free the table.
3739         * except.h (free_exception_table): Add prototype.
3740         (output_function_exception_table): Add prototype.
3741         * final.c (final_end_function): Output function exception table
3742         for IA64_UNWIND_INFO.
3743         (final_scan_insn): Emit any unwind directives for an insn.
3744
3745         * frame-dwarf2.c: New file containing all DWARF 2 specific code
3746         from frame.c.
3747         * frame.c: Remove all DWARF 2 specific code.
3748         * config/ia64/frame-ia64.c: New file.
3749         (gthread_stuff): Make all gthread available with
3750         IA64_UNWIND_INFO.
3751         (dwarf_fde): Define an IA64 struct for dwarf_fde.
3752         (__register_frame_info, __register_frame): Move to common area of file.
3753         (__register_frame_info_table, __register_frame_table): Move to common i
3754         area.
3755         (__deregister_frame_info, __deregister_frame): Move to common area.
3756         (__frame_init, find_fde): New versions for IA64_UNWIND_INFO.
3757         (read_uleb128): New version for ia64.
3758         (get_unwind_record): Read the next IA-64 unwind record.
3759         (read_R_record): Read a region header record.
3760         (process_a_b_reg_code): X record helper.
3761         (read_X_record): Read an X format record.
3762         (read_B_record): Read a B format record.
3763         (P3_record_types): List of record types matching the P3 format.
3764         (P7_record_types): List of record types matching the P7 format.
3765         (P8_record_types): List of record types matching the P8 format.
3766         (read_P_record): Read a P format record.
3767         (init_ia64_reg_loc): Set default fields for a register.
3768         (init_ia64_unwind_frame): Set defaults for all register records.
3769         (execute_one_ia64_descriptor): Execute one descriptor record.
3770         (rse_address_add): Calculate the position of a local reg in memory.
3771         (normalize_reg_loc): Turn a location descriptor into a memory address.
3772         (maybe_normalize_reg_loc): Only normalize a descriptor if it falls
3773         within a specified PC offset range.
3774         (get_real_reg_value): Given a register location, retrieve its value.
3775         (set_real_reg_value): Change the value of a register location.
3776         (copy_reg_value): Copy reg values, if needed.
3777         (copy_saved_reg_state): Copy all registers that need to be copied.
3778         (process_state_between): Normalize all frame register records that
3779         fall within the specified PC range.
3780         (frame_translate): Take a processed frame description, and turn
3781         everything into addresses.
3782         (build_ia64_frame_state ): Find and create frame state record for a PC.
3783         (get_personality): Get the personality routine for a given frame.
3784         (get_except_table): Get the exception table for a given frame.
3785         (record_name): Unwind record names for debugging.
3786         (print_record): Print and unwind record.
3787         (print_all_records): Print an entire unwind image.
3788         (__ia64_backtrace): Print a backtrace.
3789         (ia64_backtrace_helper): New function.
3790         (__register_frame_info_aux): New function.
3791         * config/ia64/crtend.asm (__do_frame_setup_aux): New function.
3792
3793         * frame.h (enum unw_record_type): New unwind record types.
3794         (struct unw_p_record, unw_b_record, unw_x_record) : New unwind records.
3795         (struct unw_r_record, unwind_record): New unwind record structs.
3796         (struct unwind_info_ptr): Unwind information layout.
3797         (IA64_UNW_LOC_TYPE_*): Macros for different types for location
3798         descriptors.
3799         (struct ia64_reg_loc): Register location description.
3800         (struct ia64_frame_state): Location of all registers in a frame.
3801         (struct object): Add pc_base and fde_end for IA64_UNWIND_INFO.
3802         * libgcc2.c (__ia64_personality_v1): Personality routine.
3803         (__calc_caller_bsp): Calculate the bsp register for the caller's
3804         frame.
3805         (ia64_throw_helper): Figure out who to return to and set up the
3806         registers.
3807         (__throw): Throw routine.
3808
3809         * output.h (assemble_eh_align, assemble_eh_label): New functions
3810         to generate EH info where we want it.
3811         (assemble_eh_integer): New function.
3812         * toplev.c (compile_file): Output module level exception table for
3813         non-ia64 targets.
3814         (main): Set exceptions_via_longjump and flag_new_exceptions based
3815         on IA64_UNWIND_INFO too.
3816
3817         * varasm.c (assemble_eh_label): Generate a label via
3818         ASM_OUTPUT_EH_LABEL if it has been specified.
3819         (assemble_eh_align): Generate an alignment directive via
3820         ASM_OUTPUT_EH_ALIGN if it has been specified.
3821         (assemble_eh_label): Generate an integer value via
3822         ASM_OUTPUT_EH_type if they have been specified.
3823         * config/ia64/ia64.c (rtx_needs_barrier): Add flushrs.
3824         (ia64_init_builtins): Add __builtin_ia64_bsp
3825         and __builtin_ia64_flushrs.
3826         (ia64_expand_builtin): Add IA64_BUILTIN_BSP and
3827         IA64_BUILTIN_FLUSHRS.
3828         * config/ia64/ia64.h (ia64_builtins): Add IA64_BUILTIN_BSP and
3829         IA64_BUILTIN_FLUSHRS.
3830
3831         * config/ia64/ia64.md (flushrs): New insn to flush the register
3832         stack.  Add to unspec list.
3833
3834         * config/ia64/crtbegin.asm (frame_object): Change size.
3835         (__do_frame_setup_aux): New function.
3836         * config/ia64/crtend.asm: call __do_frame_setup_aux.
3837         * config/ia64/t-ia64 (LIB2ADDEH): Add.
3838         * Makefile.in (LIB2ADDEH): Add.
3839         (LIB2ADD): Use LIB2ADDEH.
3840
3841 2000-05-24  Richard Henderson  <rth@cygnus.com>
3842
3843         * recog.c (offsettable_address_p): If mode size is zero, assume
3844         BIGGEST_ALIGNMENT.
3845
3846 2000-05-24  J. David Anglin  <dave@hiauly.hia.nrc.ca>
3847
3848         * configure.in: Check for -Wno-long-long option support and improve
3849         handling of warning CFLAGS for stages 1 and 2.
3850         * Makefile.in (WARN_CFLAGS): Move definition to configure.in.
3851         * configure: Regenerate.
3852
3853 Wed May 24 19:37:53 2000  Jeffrey A Law  (law@cygnus.com)
3854
3855         * gcc.texi: Remove contributor list.  Instead include contrib.texi.
3856         * contrib.texi: New file.
3857
3858 Thu May 25 02:27:22 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3859
3860         * loop.c (basic_induction_var): Avoid double recording of an increment.
3861
3862 Thu May 25 02:19:27 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3863
3864         * Back out this patch:
3865         Tue Dec  7 19:22:06 1999  Richard Henderson  <rth@cygnus.com>
3866           * loop.h (struct induction): Add multi_insn_incr.
3867           * loop.c (basic_induction_var): New multi_insn_incr argument.
3868           Set it if we search back through previous insns for the biv.
3869           (record_biv): New multi_insn_incr argument; fill in struct induction.
3870           (strength_reduce): Discard an iv with multiple bivs, any of
3871           which require multiple insns to increment.
3872
3873         * loop.c (check_insn_for_bivs): Remove bits copied from above patch.
3874
3875 Thu May 25 02:09:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3876
3877         * rtl.h (loc_mentioned_in_p): Declare.
3878         * reload.c (loc_mentioned_in_p): Moved from here...
3879         * rtlanal.c (loc_mentioned_in_p): to here.  No longer static.
3880         Fix loop increment for 'E' handling.
3881         * loop.c (strength_reduce): When doing biv->giv conversion,
3882         take multi-insn biv increments into account.
3883
3884 2000-05-24  Jason Merrill  <jason@casey.soma.redhat.com>
3885
3886         * stmt.c (expand_end_bindings): Look through NOTEs to find a
3887         BARRIER.
3888
3889 2000-05-24  Mark Mitchell  <mark@codesourcery.com>
3890
3891         * calls.c (expand_call): Handle cleanups in tail-recursion
3892         arguments analagously to cleanups in sibling calls.
3893
3894 2000-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3895
3896         * simplify-rtx.c: Rename macro SIGN_EXTEND to HWI_SIGN_EXTEND.
3897         All callers changed.
3898
3899 2000-05-24  Alexandre Oliva  <aoliva@cygnus.com>
3900
3901         * expr.c (expand_assignment, store_expr, expand_expr,
3902         expand_expr_unaligned): Set in_check_memory_usage while emitting
3903         chkr_check_addr libcall.
3904
3905 2000-05-24  Nick Clifton  <nickc@cygnus.com>
3906
3907         * fold-const.c (extract_muldiv): When constructing a
3908         multiplier/divisor, do not expect const_binop to correctly
3909         determine if overflow has occured, so check explicitly.
3910
3911 2000-05-24  Alexandre Oliva  <aoliva@cygnus.com>
3912
3913         * c-decl.c (build_enumerator): Don't modify the value's type,
3914         convert it.
3915
3916 2000-05-24  Andreas Jaeger  <aj@suse.de>
3917
3918         * mips.h (LINKER_ENDIAN_SPEC): Pass -EL to linker by default.
3919
3920 2000-05-24  Eric Christopher <echristo@cygnus.com>
3921
3922         * configure.in: Redefine inhibit_libc conditions.
3923         * libgcc2.c: Remove inhibit_libc conditional define.
3924         * configure: Regenerate.
3925
3926 2000-05-24  Phil Edwards  <pme@sourceware.cygnus.com>
3927
3928         * configure.in:  For --enable-languages=LIST, check for empty LIST.
3929         * configure:  Regenerate.
3930
3931 2000-05-24  Lars Brinkhoff  <lars@nocrew.org>
3932
3933         * pdp11.h (STACK_BOUNDARY): Define.
3934
3935 2000-05-24  Jakub Jelinek  <jakub@redhat.com>
3936
3937         * ifcvt.c (if_convert): Update life info globally.
3938
3939 2000-05-24  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
3940
3941         * emit-rtl.c (unshare_all_decls): New function.
3942         (unshare_all_rtl): Call it.
3943
3944 2000-05-23  Nick Clifton  <nickc@cygnus.com>
3945
3946         * configure.in: Treat 'strongarm' as if it were 'arm' when
3947         determining cpu type.
3948
3949         * configure: Regenerate.
3950
3951         * config/arm/arm.c: Change 'char *' to 'const char *' for cases
3952         where constant strings are involved.
3953
3954         * config/arm/arm.h (arm_condition_codes): Change type to 'const
3955         char *'.
3956
3957         * config/arm/arm-protos.h: Change 'char *' to 'const char *' for
3958         cases where constant strings are involved.
3959
3960 Tue May 23 15:08:31 2000  Clinton Popetz  <cpopetz@cygnus.com>
3961
3962         * config/sh/sh.c (gen_far_branch, split_branches): Update
3963         to reflect new prototypes for redirect_jump and invert_jump.
3964         (sh_insn_length_adjustment): Get rid of const warnings.
3965
3966 2000-05-23  Kazu Hirata  <kazu@hxi.com>
3967
3968         * invoke.texi (Options for Debugging Your Program or GCC): Update
3969         the names of dump files.
3970
3971 Tue May 23 13:58:52 2000  Philippe De Muyter  <phdm@macqel.be>
3972
3973         * configure.in (NO_MINUS_C_MINUS_O): Fix thinko in previous fix.
3974         * configure: Regenerated.
3975
3976 2000-05-23  Zack Weinberg  <zack@wolery.cumb.org>
3977
3978         * simplify-rtx.c (SIGN_EXTEND): New macro.
3979         (simplify_unary_operation, simplify_binary_operation,
3980         simplify_relational_operation): Use SIGN_EXTEND.  Make low
3981         halves of (low, high) pairs unsigned if they weren't already.
3982         (simplify_ternary_operation): Cast INTVAL to unsigned before
3983         comparing to a MODE_BITSIZE.
3984
3985 2000-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3986
3987         * aclocal.m4 (gcc_AC_CHECK_DECL, gcc_AC_CHECK_DECLS): New macros
3988         rewritten from the internals of gcc_AC_NEED_DECLARATION{S}.
3989
3990         * configure.in (gcc_AC_CHECK_DECLS): Call this instead of
3991         gcc_AC_NEED_DECLARATIONS.
3992
3993         * dwarfout.c: Don't prototype time().
3994
3995         * gcc.c: Check HAVE_DECL_* instead of NEED_DECLARATION_*.
3996
3997         * system.h: Likewise.
3998
3999         * toplev.c: Likewise.
4000
4001 2000-05-23  Zack Weinberg  <zack@wolery.cumb.org>
4002
4003         * c-decl.c (pushdecl): Invert sense of test for non-global types.
4004
4005 Tue May 23 18:11:42 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4006
4007         * reload1.c (reload_cse_move2add): Honor TRULY_NOOP_TRUNCATION.
4008
4009 2000-05-23  Jonathan Larmour  <jlarmour@redhat.co.uk>
4010
4011         * config/mips/elf64.h (CTOR_LISTS_DEFINED_EXTERNALLY): Define
4012
4013 Tue May 23 06:50:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4014
4015         * config/alpha/alpha.c: Remove #ifdef HAIFA since now only scheduler.
4016         (alpha_start_function): Never write ..ng label if VMS or NT.
4017         (alpha_align_insns): Remove GP_IN_USE arg.
4018         Alignment now unsigned.
4019         (alpha_reorg): Don't pass GP_IN_USE arg to alpha_align_insns.
4020         * config/alpha/alpha.md (prologue_ldgp): Split into one define_expand
4021         and two define_insn's.
4022
4023 2000-05-22  Richard Henderson  <rth@cygnus.com>
4024
4025         * combine.c (simplify_comparison): Use trunc_int_for_mode.
4026
4027 2000-05-22  Richard Henderson  <rth@cygnus.com>
4028
4029         * stor-layout.c (place_field): Change rli->size to rli->offset.
4030
4031 2000-05-22  Richard Henderson  <rth@cygnus.com>
4032
4033         * function.c (thread_prologue_and_epilogue_insns): Make sure
4034         existing line number notes appear after the prologue.
4035
4036 Mon May 22 21:49:00 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4037
4038         * config/alpha/alpha.c (alpha_fnname): New static variable.
4039         (print_operand, case '~'): New case.
4040         (alpha_expand_prologue): Emit prologue_ldgp insn if needed.
4041         (alpha_start_function): Set alpha_fnname.
4042         Write "ng" label if no ldgp; don't write ldgp insn.
4043         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): New case '~'.
4044         * config/alpha/alpha.md (prologue_ldgp): New define_insn.
4045
4046 Mon May 22 11:30:48 2000  Clinton Popetz  <cpopetz@cygnus.com>
4047
4048         * jump.c (jump_optimize_1): Don't increment LABEL_NUSES
4049         on deleted labels.
4050
4051 2000-05-22  Zack Weinberg  <zack@wolery.cumb.org>
4052
4053         * varasm.c (eh_frame_section): Revert change to argument list.
4054
4055 Mon May 22 13:14:03 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4056
4057         * optabs.c (can_extend_p): Allow unsignedp to have any nonzero value.
4058         (gen_extend_insn, can_fix_p, can_float_p): Likewise.
4059
4060         * final.c (final_scan_insn, case NOTE_INSN_FUNCTION_BEG): Remove
4061         dangling "else" that causes "break" to be conditional.
4062         Also remove unneeded code at start.
4063
4064 Mon May 22 17:31:35 2000  Philippe De Muyter  <phdm@macqel.be>
4065
4066         * m68k/m68k.h (STORE_FLAG_VALUE): Macro set to (-1), not -1.
4067         * fx80/fx80.h, i370/i370.h, m88k/m88k.h (STORE_FLAG_VALUE): Ditto.
4068         * gmicro/gmicro.h, we32k/we32k.h (STORE_FLAG_VALUE): Ditto.
4069
4070 2000-05-22  Jakub Jelinek  <jakub@redhat.com>
4071
4072         * config/sparc/sparc.md (movdf_insn_v9only_vis): fzero has
4073         just one argument.
4074
4075 Mon May 22 06:57:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4076
4077         * alias.c (record_component_aliases): New function.
4078         * tree.h: Clean up some declarations and comments.
4079         (record_component_aliases): New declaration.
4080         * tree.c (get_alias_set): If type and has alias set, use it.
4081
4082 2000-05-22  Richard Henderson  <rth@cygnus.com>
4083
4084         * simplify-rtx.c (simplify_ternary_operation): Try to simplify
4085         IF_THEN_ELSE to a setcc form.
4086         * jump.c (can_reverse_comparison_p): Be prepared for insn null.
4087
4088 2000-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4089
4090         * fixinc/inclhack.def (sun_malloc): Handle `calloc'.
4091         (sun_malloc, sysz_stdtypes_for_sun): Add test_text.
4092
4093 Sun May 21 16:42:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4094
4095         * combine.c (try_combine): Handle i3_subst_into_i2 case when I2 is
4096         not a PARALLEL.
4097
4098 2000-05-20  Alexandre Oliva  <aoliva@cygnus.com>
4099
4100         * config/mn10300/mn10300.md (movdi, movdf): 64-bit clean-up.
4101         * config/mn10300/mn10300.c (print_operand): Likewise.
4102
4103         * final.c (split_double): Right shift of negative values is not
4104         portable.
4105
4106         * ifcvt.c (if_convert): Scan and kill dead code.
4107
4108         * emit-rtl.c (unshare_all_rtl): Store the copied rtx.
4109
4110 2000-05-20  Zack Weinberg  <zack@wolery.cumb.org>
4111
4112         * diagnostic.c: Eliminate implicit int.
4113         * except.c, gcc.c: Add static prototypes.
4114         * final.c (final_end_function): Mark file arg ATTRIBUTE_UNUSED.
4115         * gensupport.c (process_rtx): Use XVEC to initialize vector
4116         slot of 'split'.
4117
4118         * print-rtl.c: If DEBUG_REGISTER_NAMES, define static
4119         debug_reg_names instead of static reg_names.  If not, define
4120         global reg_names.
4121         * regclass.c: Don't define global reg_names unless
4122         DEBUG_REGISTER_NAMES is defined.
4123
4124         * reload1.c (order_regs_for_reload): Remove unused variable.
4125         * varasm.c: Include output.h after defaults.h.  Define
4126         eh_frame_section as function of no args, not of unspecified args.
4127
4128         * gcc.c: Constify argbuf; arguments to store_arg,
4129         process_command, main; elements of struct command and struct
4130         switchstr; local variables in execute, process_command, main.
4131
4132 2000-05-20  Bruce Korb  <bkorb@gnu.org>
4133
4134         * fixinc/inclhack.def:  many applications of c_fix=format + tests
4135         * fixinc/check.diff:  regenerated
4136         * fixinc/fixincl.x:  regenerated
4137
4138 Sat May 20 09:30:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4139
4140         * alias.c: Clarify some comments.
4141         (record_base_value): REGNO is unsigned.
4142         * rtl.h (record_base_value): Likewise.
4143
4144         * alias.c (aliases_everything_p): Don't special-case QImode here.
4145         * c-common.c (c_get_alias_set): Do it here.
4146         Handle BIT_FIELD_REF by getting alias info for arg.
4147         Use POINTER_TYPE_P.
4148
4149 2000-05-20  Alexandre Oliva  <aoliva@cygnus.com>
4150
4151         * mklibgcc.in: Restore rule to create ${dir}.
4152
4153 Sat May 20 08:45:41 2000  H.J. Lu  <hjl@gnu.org>
4154
4155         * Makefile.in (libgcc.mk): Depend on xgcc$(exeext) for
4156         GCC_FOR_TARGET used by MULTILIBS.
4157         * mklibgcc.in: Make sure each .o file depends on the
4158         directory it will be in.
4159         Make the multilib directory depends libgcc.
4160
4161 Sat May 20 08:29:28 2000  H.J. Lu  <hjl@gnu.org>
4162
4163         * Makefile.in (bootstrap): Unset LANG_LIB2FUNCS for stage 1.
4164
4165 Sat May 20 07:27:35 2000  Alexandre Oliva  <aoliva@cygnus.com>
4166
4167         * fold-const.c (make_range): Handle degenerated intervals.
4168         Fixes c-torture/execute/991221-1.c
4169
4170 Fri May 19 18:16:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4171
4172         * cse.c (cse_basic_block): Only call find_reg_note if REG_NOTES not 0.
4173         * reload.c (find_equiv_reg): Likewise.
4174         * alias.c (init_alias_analysis): Likewise.
4175         Only call prologue_epilogue_contains on insns.
4176         * basic-block.h (REG_SET_TO_HARD_REG_SET): Call new function.
4177         * bb-reorder.c (hard-reg-set.h): Include earlier.
4178         * haifa-sched.c (hard-reg-set.h): Likewise.
4179         * ifcvt.c (hard-reg-set.h): Likewise.
4180         * local-alloc.c (hard-reg-set.h): Likewise.
4181         * loop.c (hard-reg-set.h): Likewise.
4182         * predict.c (hard-reg-set.h): Likewise.
4183         * regrename.c (hard-reg-set.h): Likewise.
4184         * flow.c (hard-reg-set.h): Likewise.
4185         (reg_set_to_hard_reg_set): New function.
4186         * bitmap.c (regs.h, basic-block.h): No longer include.
4187         (bitmap.h): Now include.
4188         * conflict.c (hard-reg-set.h): Include.
4189         * profile.c (hard-reg-set.h): Likewise.
4190         * print-rtl.c (hard-reg-set.h): Likewise.
4191         * sbitmap.c (hard-reg-set.h): Likewise.
4192         * toplev.c (hard-reg-set.h): Likewise.
4193         * unroll.c (hard-reg-set.h, basic-block.h): Likewise.
4194         * hard-reg-set.h (reg_names): Now constant.
4195         * regs.h (reg_names): Likewise.
4196         * regclass.c (reg_names): Likewise.
4197         * loop.h (basic-block.h): No longer include.
4198         (bitmap.h): Now include.
4199         * reload1.c (order_regs_for_reload): Avoid loop over reg sets.
4200         * Makefile.in (LOOP_H, sbitmap.o, profile.o): Reflect above changes.
4201         (toplev.o, print-rtl.o, conflict.o, unroll.o, bitmap.o): Likewise.
4202
4203 2000-05-19  Jan Hubicka  <jh@suse.cz>
4204             Richard Henderson  <rth@cygnus.com>
4205
4206         * basic-block.h (struct edge_def): New field "count".
4207         (struct basic_block_def): Likewise.
4208         * flow.c (entry_exit_blocks): Add count fileds.
4209         (split_edge): Keep count information up-to-date.
4210         (dump_edge_info, dump_flow_info): Dump count fields.
4211
4212         * final.c (count_instrumented_edges): Rename to edge from arc.
4213         (end_final): Update users.
4214         * profile.c: Include expr.h, basic-block.h.
4215         (struct adj_list, ARC_TARGET, ARC_SOURCE, ARC_COUNT): Kill.
4216         (struct bb_info, label_to_bb, label_to_bb_size, bb_graph): Kill.
4217         (ignore_next_note, return_label_execution_count): Kill.
4218         (bbg_file_name, da_file_name): Kill.
4219         (edge_info, bb_info): New structures.
4220         (EDGE_INFO, BB_INFO, GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): New macros.
4221         (count_instrumented_edges, total_num_edges): Rename to edge from arc.
4222         (total_num_edges_instrumented): Likewise.
4223         (init_arc, expand_spanning_tree): Kill.
4224         (fill_spanning_tree, tablejump_entry_p): Kill.
4225         (instrument_edges):  Rewrite from instrument_arcs to use
4226         commit_edge_insertions infrastructure.
4227         (compute_branch_probabilities): Remove arguments; rewrite for
4228         CFG infrastructure; use rtl_dump_file directly.
4229         (branch_prob, find_spanning_tree): Likewise.
4230         (union_groups, find_group): New.
4231         (init_branch_prob): Make bbg_file_name and da_file_name local.
4232         (end_branch_prob): Use rtl_dump_file directly.
4233         (init_edge_profiler): Rename to edge from arc.
4234         (output_arc_profiler): Kill.
4235         (gen_edge_profiler): New.
4236         (output_func_start_profiler): Turn off profiling.  Make the
4237         constructor static when we can.
4238         * rtl.h (branch_prob, end_branch_prob): Update prototypes.
4239
4240         * toplev.c (DFI_flow): Remove.
4241         (DFI_cfg, DFI_life): New.
4242         (dump_file): Update accordingly.
4243         (compile_file): Call end_branch_prob if profile_arc_flag too.
4244         (rest_of_compilation): Move flow1 cfg creation to DFI_cfg.  Do edge
4245         profiling after the CFG is built.  Move flow1 life analysis to
4246         DFI_life.  Always estimate remaining probabilities.
4247
4248 2000-05-19  Richard Henderson  <rth@cygnus.com>
4249
4250         * ifcvt.c (find_if_case_2): Don't allow THEN to be EXIT.
4251
4252         * flow.c (make_edges): The sibling call edge to exit is abnormal.
4253
4254 2000-05-19  Richard Henderson  <rth@cygnus.com>
4255
4256         * jump.c (redirect_jump): Add delete_unused argument.  Don't
4257         remove labels and code following when LABEL_NUSES goes to zero.
4258         (invert_jump): Likewise.
4259         (jump_optimize_1): Fix redirect/invert arguments.
4260         (do_cross_jump, thread_jumps): Likewise.
4261         * flow.c (split_edge): Likewise.
4262         * reorg.c (optimize_skip): Likewise.
4263         (reorg_redirect_jump, relax_delay_slots, dbr_schedule): Likewise.
4264         * profile.c (instrument_arcs): Likewise.
4265         * loop.c (find_and_verify_loops): Likewise.  Fix indentation.
4266         * rtl.h: Update prototypes.
4267
4268 Fri May 19 12:05:13 2000  Clinton Popetz  <cpopetz@cygnus.com>
4269
4270         * ssa.c (convert_from_ssa): Tell life_analysis we need death
4271         notes.
4272         (make_regs_equivalent_over_bad_edges): Only look at abnormal
4273         critical edges.
4274
4275 2000-05-19  Zack Weinberg  <zack@wolery.cumb.org>
4276
4277         * cpphash.c (funlike_macroexpand): Make sure not to walk p1
4278         past l1 when deleting whitespace and markers.
4279
4280         * cpplex.c (_cpp_scan_until): Clear AUX field of tokens.
4281         * cpplib.c (do_unassert): Put the list to compare against on
4282         the stack.
4283
4284 2000-05-19  Bruce Korb  <bkorb@gnu.org>
4285
4286         * fixinc/README:  cleaned up old documentation
4287         * fixinc/check.diff: regenerated & verified on OSR5 on ix86
4288         * fixinc/check.tpl: compute the list of needed directories
4289         emit "#if defined(name)" because of conflict
4290         omit machine name differences from output differences
4291         * fixinc/inclhack.def( m88k_multi_incl ):  Use `wrap' function
4292         (machine_name): change test text to use `sed' markers
4293         * fixinc/fixincl.x: regen
4294
4295 Fri May 19 06:49:35 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4296
4297         * config/elfos.h (SELECT_SECTION): Don't access DECL_INITIAL of
4298         a CONSTRUCTOR.
4299
4300 2000-05-18  Chris Demetriou  <cgd@sibyte.com>
4301
4302         * gcc.texi (MULTILIB_EXCEPTIONS): Correct example and update
4303         it to match the current practice.
4304
4305 2000-05-18  Mark Mitchell  <mark@codesourcery.com>
4306
4307         * Makefile.in (STAGESTUFF): Fix typo in spelling of s-under.
4308
4309 2000-05-18  Richard Henderson  <rth@cygnus.com>
4310
4311         * rtlanal.c (insn_dependant_p, insn_dependant_p_1): New.
4312         * rtl.h (insn_dependant_p): Declare it.
4313         * loop.c (strength_reduce): Use it.
4314
4315 2000-05-18  Alexandre Oliva  <aoliva@cygnus.com>
4316
4317         * config/mn10300/mn10300.c (expand_prologue, expand_epilogue):
4318         16-bit and 64-bit clean-up.
4319
4320 2000-05-18 Mark Elbrecht <snowball3@bigfoot.com>
4321
4322         * configure.in (*-pc-msdosdjgpp): Set float_format to none.
4323         * configure: Rebuilt.
4324
4325 2000-05-18  Zack Weinberg  <zack@wolery.cumb.org>
4326
4327         * genopinit.c: Use $ for escape sequences in optab patterns.
4328         Remove backslashes from optab patterns.  Change $A, $B, $C to
4329         expand to (int) whatever instead of just whatever; remove
4330         explicit (int) from all optab patterns.
4331
4332         * gensupport.c (xmalloc, xrealloc, xstrdup): Provide.
4333         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c,
4334         genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
4335         genrecog.c: Remove private copies of xmalloc, xrealloc, and
4336         xstrdup.
4337
4338 2000-05-18  Richard Henderson  <rth@cygnus.com>
4339
4340         * jump.c (jump_optimize_1): Base minimum insn count during
4341         find_cross_jump on BRANCH_COST.
4342
4343 2000-05-18  Jakub Jelinek  <jakub@redhat.com>
4344
4345         * print-rtl.c (print_rtx): Only print note line number as string
4346         if between NOTE_INSN_BIAS and NOTE_INSN_MAX.
4347         * final.c (final_scan_insn): Do nothing for note line number 0.
4348
4349 2000-05-18  Jakub Jelinek  <jakub@redhat.com>
4350
4351         * gcc-common.c (ggc_mark_rtx_children): Mark NOTE_EXPECTED_VALUE
4352         from NOTE_INSN_EXPECTED_VALUE notes and NOTE_SOURCE_FILE from
4353         NOTE_INSN_DELETED_LABEL.
4354
4355 2000-05-18  Nick Clifton  <nickc@cygnus.com>
4356
4357         * config/arm/unknown-elf.h (UNIQUE_SECTION): Place constant,
4358         uninitialised data in .rodata not .bss, and do not interpret an
4359         error in the initialisation value as meaning that the variable
4360         should be placed in the .bss section.
4361
4362 Thu May 18 12:10:18 2000  Philippe De Muyter  <phdm@macqel.be>
4363
4364         * configure.in (NO_MINUS_C_MINUS_O): Test `$ac_cv_prog_cc_${ac_cc}_c_o',
4365         not `$ac_cv_prog_cc_cc_c_o'.
4366         * configure: Regenerated.
4367
4368 2000-05-18  Chris Demetriou  <cgd@sibyte.com>
4369             Richard Henderson  <rth@cygnus.com>
4370
4371         * c-common.h (enum c_tree_index): Add g77 type entries.
4372         (g77_integer_type_node, g77_uinteger_type_node): New.
4373         (g77_longint_type_node, g77_ulongint_type_node): New.
4374         * c-decl.c (init_decl_processing): Initialize them.
4375
4376 2000-05-18  Richard Henderson  <rth@cygnus.com>
4377
4378         * config/h8300/h8300.md (subs patterns): Use %G to negate.
4379
4380         * config/h8300/h8300.c (ok_for_bclr): Take a HOST_WIDE_INT.
4381         (small_power_of_two): Likewise; use exact_log2.
4382         (adds_subs_operand, one_insn_adds_subs_operand): Remove.
4383         (output_adds_subs): Remove.
4384         (two_insn_adds_subs_operand): New.
4385         (split_adds_subs): New.
4386         * config/h8300/h8300-protos.h: Update.
4387         * config/h8300/h8300.h (CONST_OK_FOR_J): Cast to uns HOST_WIDE_INT.
4388         (CONST_OK_FOR_L): Match strict adds operands.
4389         (CONST_OK_FOR_N): Match struct subs operands.
4390         * config/h8300/h8300.md (adds_subs insns): Remove.
4391         (addhi patterns): Output adds/subs directly.
4392         (addsi_h8300h): Likewise.
4393         (addhi/addsi splitters): New.  Decompose two_insn_adds_subs_operand.
4394
4395 2000-05-18  Zack Weinberg  <zack@wolery.cumb.org>
4396
4397         * cppexp.c (parse_assertion): New.
4398         (lex): Call it for CPP_HASH.  Remove CPP_ASSERTION case.
4399         (_cpp_parse_expr): Remove case '#'.  Don't set
4400         parsing_if_directive.
4401         * cpphash.c (collect_objlike_expansion,
4402         collect_funlike_expansion, collect_params,
4403         _cpp_create_definition): The list no longer has a trailing
4404         VSPACE token.
4405         * cpphash.h (enum node_type): Add T_ASSERTION.
4406         (struct hashnode): Remove aschain, add pred.
4407         (struct predicate): New.
4408         Update prototypes.
4409
4410         * cpplex.c (expand_token_space): Handle both offset and
4411         nonoffset lists.
4412         (init_token_list, _cpp_free_token_list, _cpp_parse_assertion): Delete.
4413         (_cpp_init_toklist, _cpp_clear_toklist, _cpp_free_toklist,
4414         _cpp_slice_toklist, _cpp_squeeze_toklist, _cpp_equiv_tokens,
4415         _cpp_equiv_toklists): New.
4416         (_cpp_scan_line): Rename to _cpp_scan_until; add ability to
4417         stop at any single-character token, not just newline.
4418         (_cpp_lex_token): Remove special cases for #define and #if.
4419         (cpp_get_token): Expect # as a separate token type.  Remove
4420         DIRECTIVE case.
4421         (_cpp_get_directive_token): Remove DIRECTIVE case.
4422         (_cpp_lex_line, _cpp_lex_file, _cpp_init_input_buffer): Update.
4423
4424         * cpplib.c (_cpp_check_directive): Set dirno and
4425         SYNTAX_INCLUDE bit of flags, not dir_handler and dir_flags.
4426         (_cpp_handle_directive): Run # <number> through the same logic
4427         as normal directives.
4428         (do_define): Don't set parsing_define_directive.  Use
4429         _cpp_scan_until.  The list does not have a VSPACE at the end.
4430         (do_if): Save, clear, and restore only_seen_white around
4431         _cpp_parse_expr.
4432         (skip_if_group): s/CPP_DIRECTIVE/CPP_HASH/
4433         (do_assert, do_unassert): Rewrite.
4434
4435         * cpplib.h (TTYPE_TABLE): Remove CPP_ASSERTION.
4436         (LIST_OFFSET): New flag.
4437         (struct cpp_toklist): Replace dir_handler and dir_flags with
4438         dirno and flags.
4439         (struct cpp_reader): Remove parsing_if_directive and
4440         parsing_define_directive.
4441
4442 2000-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4443
4444         * fixinc/inclhack.def (broken_cabs): Update fix to handle comments
4445         following the cabs decl which terminate on the following line.
4446         Add the corresponding test_text case.
4447
4448 2000-05-18  Neil Booth  <NeilB@earthling.net>
4449
4450         * cppinit.c (cpp_reader_init): Initialise col_adjust and
4451         default tab stop size.
4452         (no_num, OPT_ftabstop): New.
4453         (handle_option): Handle "ftabstop=" command-line option.
4454         (print_help): Document it.
4455         * cpplex.c (COLUMN): Remove.
4456         (handle_newline): Reset col_adjust.
4457         (skip_whitespace): Update col_adjust as tabs encountered.
4458         (_cpp_lex_line): Update to use col_adjust.  Call
4459         skip_whitespace for all whitespace.
4460         * cpplib.h (struct cpp_options): New member tabstop.
4461         (struct cpp_reader): New member col_adjust.
4462         (CPP_BUF_COL): Update.
4463         (CPP_BUF_COLUMN): New.
4464         * cpp.texi: Document "-ftabstop=" command line option.
4465
4466 Wed May 17 18:19:41 2000  Philippe De Muyter  <phdm@macqel.be>
4467
4468         * configure.in (NO_MINUS_C_MINUS_O): Macro made availabe for AC_OUTPUT
4469         files.
4470         * configure: Rebuilt.
4471
4472 Wed May 17 18:06:12 2000  John David Anglin <dave@hiauly1.hia.nrc.ca>
4473
4474         * mklibgcc.in Add missing -DL$name when compiling modules in libgcc1.c.
4475
4476         * tree.c (build_common_tree_nodes): Do not build TI nodes unless
4477         HOST_BITS_PER_WIDE_INT is >= 64.
4478
4479 2000-05-17  Richard Henderson  <rth@cygnus.com>
4480
4481         * jump.c (jump_optimize_1): Remove inactive but real insns
4482         in jump-to-next-insn optimization.
4483
4484 2000-05-17  Richard Henderson  <rth@cygnus.com>
4485
4486         * toplev.c (rest_of_compilation): Don't call optimize_mode_switching
4487         unless OPTIMIZE_MODE_SWITCHING.  Conditionally set no_new_pseudos.
4488         Don't call recompute_reg_usage if no_new_pseudos is true.
4489         * lcm.c (optimize_mode_switching): Move ifdefs outside function.
4490         Return true if we did work; update global life information.
4491         * basic-block.h (optimize_mode_switching): Update decl.
4492
4493 2000-05-17  Neil Booth  <neilb@earthling.net>
4494
4495         * cpplex.c (expand_name_space): Don't use ptrdiff_t.
4496
4497 2000-05-17  Zack Weinberg  <zack@wolery.cumb.org>
4498
4499         * cpplib.c: New feature, #pragma system_header.
4500         * cpp.texi: Document special treatment of system headers, and
4501         the various mechanisms to get a header that special treatment.
4502
4503 2000-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4504
4505         * system.h (offsetof): Define at the very end, to ensure we prefer
4506         the platform's definition if available.
4507
4508 2000-05-16  Bruce Korb  <bkorb@gnu.org>
4509
4510         * fixinc/fixincl.c: improve the debug displays, ignore SIGPIPE
4511         * fixinc/server.c: likewise
4512         * fixinc/fixfixes.c( char_macro_def_fix ): fix regex
4513         + #ifdef debugging code + use #def constant for
4514         sub-pattern count
4515         * fixinc/inclhack.def( hpux11_fabsf ): Keep HP-UX 11 from stomping
4516         on C++ math namespace
4517
4518 2000-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4519
4520         * fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix):
4521         Don't check the return value of sprintf.  Use asprintf to avoid
4522         buffer overflows.
4523
4524 Wed May 17 17:27:44 2000  Andrew Cagney  <cagney@b1.cygnus.com>
4525
4526         * flags.h (warn_unused_function, warn_unused_label,
4527         warn_unused_parameter, warn_unused_variable, warn_unused_value):
4528         Replace ``warn_unused''.
4529         (set_Wunused): Add declaration.
4530         * toplev.c (set_Wunused): New function.
4531         (warn_unused_function, warn_unused_label, warn_unused_parameter,
4532         warn_unused_variable, warn_unused_value): New variables.
4533         (W_options): Add -Wunused-function, -Wunused-function,
4534         -Wunused-label, -Wunused-parameter, -Wunused-variable and
4535         -Wunused-value.  Delete -Wunused.  Handled in decode_W_option.
4536
4537         * toplev.c (decode_W_option): Update -Wunused flags by calling
4538         set_Wunused.
4539         * c-decl.c (c_decode_option): Ditto for -Wall.
4540
4541         * stmt.c (expand_expr_stmt, expand_expr_stmt,
4542         warn_about_unused_variables): Replace warn_unused with more
4543         explicit warn_unused_value et.al.
4544         * function.c (expand_function_end): Ditto.
4545         * c-typeck.c (internal_build_compound_expr,
4546         internal_build_compound_expr): Ditto.
4547         * c-decl.c (poplevel, pop_label_level): Ditto.
4548         * toplev.c (check_global_declarations): Replace warn_unused with
4549         check for either warn_unused_function or warn_unused_variable.
4550
4551         * gcc.1, invoke.texi (Warning Options): Document
4552         -Wunused-function, -Wunused-function, -Wunused-label,
4553         -Wunused-parameter, -Wunused-variable and -Wunused-value options.
4554
4555 Wed May 17 10:28:12 2000  Philippe De Muyter  <phdm@macqel.be>
4556
4557         * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Find libgcc1.c in
4558         $(srcdir), not in the current directory.
4559
4560 2000-05-16  Richard Henderson  <rth@cygnus.com>
4561
4562         * config/ia64/crtbegin.asm (__dso_handle): Mark hidden if the
4563         assembler supports it.
4564         (.fini, .init): Use a gp-relative indirect call.
4565         (__do_global_dtors_aux): Preserve the gp; rebundle.
4566         (__do_frame_setup): Likewise.
4567         * config/ia64/crtend.asm (.IA_64.unwind): Don't terminate with -1.
4568         (.init): Use a gp-relative indirect call.
4569         (__do_global_ctors_aux): Preserve the gp.
4570
4571 2000-05-16  Richard Henderson  <rth@cygnus.com>
4572
4573         * flow.c (commit_one_edge_insertion): Be prepared for a return
4574         insn to be inserted on the edge with a normal jump.
4575         * jump.c (jump_optimize_1): Don't look to create return isns.
4576
4577         * flow.c (flow_delete_insn): Don't adjust reference count of notes.
4578         * jump.c (jump_optimize_1): Likewise.
4579         (returnjump_p): Verify the argument is a JUMP_INSN.
4580         * rtl.def (NOTE): Add 5th element for NOTE_INSN_DELETED_LABEL.
4581
4582 2000-05-16  Nick Clifton  <nickc@cygnus.com>
4583
4584         * config/m32r/m32r.c (small_insn_p): Use INSN_P() to replace
4585         GET_RTX_CLASS (GET_CODE ()) == 'i'.
4586         (large_insn_p): Ditto.
4587         (m32r_is_insn): New function: Return true if the insn contains
4588         an executable instruction.
4589         (m32r_adjust_insn): Use m32r_is_insn.
4590         (m32r_sched_reorder): Use m32r_is_insn.
4591         (m32r_sched_variable_issue): Use m32r_is_insn.
4592
4593 2000-05-16  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4594
4595         * rs6000/rs6000.c (rs6000_select_section): Treat CONSTRUCTOR like
4596         VAR_DECL.
4597
4598         * rs6000/sysv4.h (ASM_OUTPUT_DWARF_ADDR): Delete unused variable.
4599
4600         * rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Define __unix and __linux
4601         according to given options.
4602
4603 Tue May 16 12:17:31 2000  Jeffrey A Law  (law@cygnus.com)
4604
4605         * mn10200.h (PREFERRED_RELOAD_CLASS): Do not prefer DATA_REGS
4606         if X has VOIDmode either.
4607         (LIMIT_RELOAD_CLASS): Similarly.
4608
4609         * mn10200.md (indirect_jump, tablejump): Use "register_operand",
4610         not "general_operand" to match the processor's capabilities.
4611
4612 2000-05-16  Bruce Korb  <bkorb@gnu.org>
4613
4614         * fixinc/README:  corrected return address
4615         * fixinc/check.diff:  regenerate, now that test works
4616         * fixinc/fixfixes.c(format_fix,format_write): reformatted
4617         (char_macro_def_fix,char_macro_use_fix): corrected and
4618         rewrote to use regex to parse the text
4619         * fixinc/inclhack.def: more testing
4620         * fixinc/fixincl.x:  regenerated
4621
4622         * fixinc/inclhack.def: added several "test_text" attributes
4623         changed several fixes to use `c_fix = format'
4624         re-alphabetized the fixes
4625
4626         * fixinc/check.diff: regenerate
4627         * fixinc/fixincl.x: regenerate
4628         * fixinc/check.tpl: added `sparc' and `netinet' to the list
4629         of created dirs
4630
4631
4632 2000-05-16  Alexandre Oliva  <aoliva@cygnus.com>
4633
4634         * config/mn10300/mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove.
4635
4636 2000-05-15  Richard Henderson  <rth@cygnus.com>
4637
4638         * toplev.c (rest_of_compilation): Run full jump pass before
4639         find_basic_blocks of flow2.
4640
4641 2000-05-15  Richard Henderson  <rth@cygnus.com>
4642
4643         * jump.c: Fix typos and clarify commentary from last change.
4644         (any_condjump_p): Verify SET_SRC is an IF_THEN_ELSE.
4645         (safe_to_remove_jump_p): Remove.
4646         (condjump_label): Use pc_set.
4647
4648 2000-05-15  Richard Henderson  <rth@cygnus.com>
4649
4650         * ifcvt.c (cond_exec_process_insns): Drop USE and CLOBBER insns
4651         that get in the way after reload.
4652         (cond_exec_process_if_block): Skip a label heading THEN block.
4653
4654 2000-05-15  Richard Henderson  <rth@cygnus.com>
4655
4656         * varasm.c (output_constant_pool): Abort instead of converting
4657         (improperly) deleted labels to zero.
4658
4659 2000-05-16  Neil Booth  <NeilB@earthling.net>
4660
4661         * cpplex.c (parse_string2): Update comment.
4662         (cpp_lex_line): No special assertion treatment for '('.
4663         * cpplib.c (DIRECTIVE_TABLE): Remove SYNTAX_ASSERT.
4664         * cpplib.h (SYNTAX_ASSERT): Remove.
4665
4666 Mon May 15 21:45:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4667
4668         * jump.c (condjump_p):  Mark as depreached.
4669         (any_condump_p): New.
4670         (any_uncondump_p): New.
4671         (pc_set): New.
4672         (safe_to_remove_jump_p): New.
4673         * rtl.h (any_condump_p, any_uncondjump_p, pc_set
4674         safe_to_remove_jump_p): Declare.
4675
4676 Mon May 15 21:07:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4677
4678         * calls.c: Re-install both patches reverted by last patch.
4679         (struct arg_data): New field tail_call_reg.
4680         (initialize_argument_information): Initialize tail_call_reg
4681         (load_register_parameters): New argument flags, use
4682         tail_call_reg when emiting tail call sequence.
4683         (expand_call): Update call of load_register_parameters;
4684         copy unadjusted_args_size to adjusted_args_size.
4685
4686 Mon May 15 19:01:42 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4687
4688         * loop.c (scan_loop, strength_reduce, loop_optimize): Change unroll_p
4689         and bct_p parameters to flags.
4690         * loop.h (LOOP_UNROLL, LOOP_BCT): New constants.
4691         * rtl.h (loop_optimize): Update prototype.
4692         * toplev.c (rest_of_compilation): Update call of loop_optimize.
4693
4694 2000-05-15  Jakub Jelinek  <jakub@redhat.com>
4695
4696         * calls.c (expand_call): Move expand_start_target_temps call after
4697         start_sequence().
4698
4699 2000-05-15  Neil Booth  <NeilB@earthling.net>
4700
4701         * cpphash.c (trad_stringify, warn_trad_stringify,
4702         collect_params): Make some pointers pointers to const.
4703         * cpplex.c (auto_expand_name_space) Guaranteed to always
4704         expand by at least one character.
4705         (SPELL_CHAR, SPELL_NONE): Temporarily reverse order.
4706         (struct token_spelling): Use const U_CHAR * rather than PTR.
4707         (expand_name_space): Fix up token pointers if name space
4708         is moved when expanding.
4709         (INIT_NAME, cpp_scan_line, parse_name, parse_number,
4710         parse_string2, save_comment, spell_token, cpp_output_list):
4711         Update so the routines handle tokens with a direct pointer to
4712         their text, rather than an offset into the token's list's namebuf.
4713         (_cpp_lex_line): Rearrange for clarity.
4714
4715         * cpplib.c (_cpp_check_directive): Similarly.
4716         (do_define): Make SYM a pointer to const.
4717         * cpplib.h (struct cpp_name): Replace offset with direct pointer.
4718         (CPP_INT, CPP_FLOAT): Spelling type should be SPELL_IDENT.
4719         (TOK_OFFSET): Delete.
4720         (TOK_NAME): Update.
4721
4722 2000-05-14  Geoffrey Keating  <geoffk@cygnus.com>
4723
4724         * config/rs6000/rs6000.h (RETURN_ADDRESS_OFFSET): Correct for
4725         64-bit ABI.
4726
4727         * config/rs6000/rs6000.c (logical_operand): Rewrite to take MODE
4728         into account.
4729         (logical_u_operand): Delete.
4730         (non_logical_cint_operand): Rewrite to take MODE into account.
4731         (non_logical_u_cint_operand): Delete.
4732         (boolean_operator): New function.
4733         (print_operand): Add new %q operand.
4734         * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_operator,
4735         remove logical_u_operand and non_logical_u_cint_operand,
4736         update logical_operand and non_logical_cint_operand.
4737         * config/rs6000/rs6000.md: Rewrite the patterns for performing
4738         logical operations to use %q.
4739
4740         * config/rs6000/rs6000.md (movsi): Don't modify RTL in-place.
4741         (movdi): Make similar to movsi.
4742         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): There
4743         is no such thing as a DImode CONST_DOUBLE.
4744         * config/rs6000/rs6000.c (output_toc): Likewise.
4745
4746         * config/rs6000/rs6000.c (output_cbranch): Don't output prediction
4747         codes when old mnemonics are in use.  Print register names
4748         for cc registers when requested.
4749
4750         * optabs.c (expand_float): Don't allow mode widening that causes
4751         double rounding.
4752
4753         * invoke.texi (RS/6000 and PowerPC Options): Update -m64/-m32
4754         flags to their current names -maix64 and -maix32.
4755
4756 2000-05-14  Bruce Korb  <bkorb@gnu.org>
4757
4758         * fixinc/fixfixes.c(wrap_fix): new fix - inserts text before
4759         and/or after current text of file
4760         * fixinc/fixlib.c(must_malloc):
4761         * fixinc/fixlib.h(must_malloc): + reformatting
4762         * fixinc/inclhack.def: replace the "1i" and "$a" sed commands
4763         with usages of ``c_fix = wrap;''
4764         Add several tests and use the ``c_fix = format'' fixer more.
4765         * fixinc/fixincl.x: regen
4766         * fixinc/check.diff: regen
4767         * fixinc/check.tpl: emit the associated header with the missing
4768         test message
4769
4770 Sun May 14 17:58:59 2000  Hans-Peter Nilsson  <hp@axis.com>
4771
4772         * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Do not use unset
4773         variables $src and $dst.
4774
4775 2000-05-13  Gabriel Dos Reis <gdr@codesourcery.com>
4776
4777         * diagnostic.h (DIAGNOSTICS_SHOW_PREFIX_ONCE): New macro.
4778         (DIAGNOSTICS_SHOW_PREFIX_NEVER): Likewise.
4779         (DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE): Likewise.
4780         (struct output_buffer: emitted_prefix_p, prefixing_rule): New
4781         fields.
4782         (set_message_prefixing_rule): Declare.
4783
4784         * diagnostic.c: (current_prefixing_rule): New variable.
4785         (set_message_prefixing_rule): Define.
4786         (output_set_prefix): Adjust buffer->emitted_prefix_p.
4787         (init_output_buffer): Adjust Initialization.
4788         (output_emit_prefix): Rewrite.  Take prefixing rules into account.
4789
4790 Sat May 13 11:05:47 2000  Philippe De Muyter  <phdm@macqel.be>
4791
4792         * ifcvt.c (if_convert): Do not free NULL.
4793
4794 2000-05-12  Nick Clifton  <nickc@cygnus.com>
4795
4796         * config/fr30/fr30.c (fr30_move_double): New function:  Emit code
4797         to move a double word value.
4798         (di_operand): New function: Return true if the operand is suitbale
4799         for a double word move operation.
4800         (nonimmediate_di_operand): New function: Return true if the
4801         operand is a DImode register or MEM.
4802
4803         * config/fr30/fr30.h (PREDICATE_CODES): Add di_operand and
4804         nonimmediate_di_operand.
4805
4806         * config/fr30/fr30-protos.h Add fr30_move_double, di_operand, and
4807         nonimmediate_di_operand.
4808
4809         * config/fr30/fr30.md (movdi): New pattern.  Required because
4810         other patterns generate DImode results.
4811         (movdi_insn): New pattern.
4812
4813 2000-05-12  Richard Henderson  <rth@cygnus.com>
4814
4815         * config/alpha/alpha.c (struct shadow_summary): Define
4816         bitfields as type unsigned int.
4817
4818 Sat May 13 00:09:59 2000  Denis Chertykov  <denisc@overta.ru>
4819
4820         * config/avr/t-avr: Added definition of FLOAT while generates
4821         fp-bit.c
4822
4823         * config/avr/avr.md: `NEXT_INSN (insn)' substituted to `insn' in
4824         peepholes for tst+jump = sbrs/sbrc optimization.
4825
4826 Fry May 12 20:03:00 CEST 2000  Jan Hubicka  <jh@suse.cz>
4827
4828         * expr.c (emit_push_insn): Do not adjust stack pointer when
4829         preallocating.
4830
4831 Fri May 12 19:03:58 2000  Philippe De Muyter  <phdm@macqel.be>
4832
4833         * ggc-simple.c (offsetof): Macro fallback definition moved from here ..
4834         * system.h (offsetof): ... to here.
4835
4836 2000-05-12  Richard Henderson  <rth@cygnus.com>
4837
4838         * Makefile.in (final.o): Depend on BASIC_BLOCK_H.
4839         * final.c (final_end_function): Use app_disable.  Rearrange note
4840         handling into a switch.  Emit deleted labels.
4841         (output_asm_label): Generate label strings for deleted labels.
4842         * flow.c (tail_recursion_label_list): New.
4843         (find_basic_blocks_1): Set label_value_list directly.  Collect list
4844         of tail recursion labels from call_placeholders.  Don't add deleted
4845         labels to the label value list.
4846         (cleanup_cfg): Use free_EXPR_LIST_list.
4847         (flow_delete_insn_chain): Turn non-removable labels into notes.
4848         (flow_delete_block): Don't disable deleting the block because of
4849         a non-removable label.
4850         (tail_recursion_label_p): New.
4851         (merge_blocks_move_predecessor_nojumps): Don't disable the merge
4852         because of a label.
4853         (merge_blocks_move_successor_nojumps): Likewise.  Also move a
4854         jump table.
4855         (merge_blocks): Disable a merge because of tail recursion labels.
4856         * ifcvt.c (merge_if_block): Don't disable a merge because of a label.
4857         Use a more accurate measure of not merging the join block.
4858         (find_if_block): Don't disable conversion because of a label.
4859         (find_if_case_1, find_if_case_2): Likewise.
4860         * jump.c (duplicate_loop_exit_test): Preserve the kind of list
4861         element when copying.
4862         (squeeze_notes): Also leave EH notes.
4863         (mark_jump_label): Ignore deleted labels.  Use an INSN_LIST for
4864         REG_LABEL notes.
4865         (delete_insn): Preserve LABEL_NAME in NOTE_SOURCE_FILE when
4866         deleting a label.
4867         * print-rtl.c (print_rtx): Print NOTE_SOURCE_FILE for
4868         NOTE_INSN_DELETED_LABEL.  Print `[# deleted]' for a label_ref
4869         referring to a deleted label.  Convert tail handling to a switch.
4870         * rtl.def (CODE_LABEL): Rearrange elements to be compatible with NOTE
4871         for NOTE_INSN_DELETED_LABEL.
4872         (NOTE): Fix commentary.
4873         * rtl.h (REG_LABEL): Update commentary wrt INSN_LIST.
4874         (REG_CC_SETTER, REG_CC_USER, REG_LIBCALL): Likewise.
4875         (CODE_LABEL_NUMBER, LABEL_NAME): Update index.
4876         (LABEL_NUSES, LABEL_REFS): Likewise.
4877         * unroll.c (copy_loop_body): Don't copy NOTE_INSN_DELETED_LABEL.
4878
4879 2000-05-12  Bruce Korb  <bkorb@gnu.org>
4880
4881         * fixinc/fixfixes.c(format_write): buglet & relaxed rules
4882         * fixinc/check.diff: updated
4883         * fixinc/inclhack.def: corrected & added some test_text-s
4884         * fixinc/genfixes: removed unneeded options to autogen invocation
4885         * fixinc/fixincl.tpl: Specified the output file
4886         * fixinc/fixfixes.c: visual appearance
4887         * fixinc/fixincl.x: regenerate
4888
4889 2000-05-12  Zack Weinberg <zack@wolery.cumb.org>
4890
4891         * fixinc/fixfixes.c (IO_use_fix, IO_defn_fix, CTRL_use_fix,
4892         CTRL_defn_fix): Delete.
4893         (fix_char_macro_defines, fix_char_macro_uses): Rename to
4894         char_macro_def_fix and char_macro_use_fix, respectively.  Put
4895         them into the FIXUP_TABLE.  Get the string to search for from
4896         a c_fix_arg.
4897
4898         (format_write): New function.
4899         (format_fix): Use it.
4900
4901         (FIX_PROC_HEAD): Constify text parameter.
4902         (machine_name_fix): Constify all char *s.
4903         * fixtests.c (skip_quote): Remove double static.
4904
4905         * inclhack.def (io_def_quotes, io_use_quotes, ctrl_def_quotes,
4906         ctrl_use_quotes): Update for new scheme.
4907         * fixincl.x: Regenerate.
4908
4909 2000-05-12  Alexandre Oliva  <aoliva@cygnus.com>
4910
4911         * config/mn10300/mn10300.h (PREFERRED_DEBUGGING_TYPE): Redefine as
4912         DWARF2_DEBUG.
4913         (DWARF2_ASM_LINE_DEBUG_INFO): Define.
4914         (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
4915
4916 2000-05-11  Robert Lipe <robertlipe@usa.net>
4917
4918         * fixinc/inclhack.def (hpux8_bogus_inlines): Delete bypass for SCO.
4919         * fixincl.x: Regenerate.
4920
4921 2000-05-11  Richard Henderson  <rth@cygnus.com>
4922
4923         * calls.c: Revert both 05-09 patches.
4924
4925 2000-05-11  Alexandre Oliva  <aoliva@cygnus.com>
4926
4927         * config/mn10300/mn10300.c (print_operand): Print FP constants in
4928         hexadecimal.
4929         * config/mn10300/mn10300.md (movsf, movdf): Use the `F' constraint
4930         for FP values.
4931
4932         * mklibgcc.in (EQ): Define it to an equal sign in the Makefile,
4933         and replace any occurrences of `=' in multilib dirs with `$(EQ)'.
4934
4935 2000-05-11  Jason Merrill  <jason@casey.cygnus.com>
4936
4937         * fixinc/fixincl.c (run_compiles): Don't crash on null pz_machine.
4938
4939 2000-05-11  Zack Weinberg  <zack@wolery.cumb.org>
4940
4941         * fixinc/fixfixes.c, fixinc/fixtests.c: Update commentary.
4942
4943 Thu May 11 22:28:05 2000  Denis Chertykov  <denisc@overta.ru>
4944
4945         * config/avr/avr-protos.c (jump_over_one_insn_p): New declaration.
4946         * config/avr/avr.c (jump_over_one_insn_p): New function.
4947         * config/avr/avr.md: New peepholes added. Output test and
4948         conditional jump to "sbrc" or "sbrs" command.
4949
4950 2000-05-11  Mark Elbrecht  <snowball3@bigfoot.com>
4951
4952         * cppmain.c (main): Use IS_DIR_SEPARATOR.
4953
4954 2000-05-11  Jakub Jelinek  <jakub@redhat.com>
4955
4956         * except.c (find_exception_handler_labels_1): New function.
4957         (find_exception_handler_labels): Split into two functions, dive
4958         into CALL_PLACEHOLDERs when looking for exception handler labels.
4959
4960 2000-05-11 Stan Cox <scox@cygnus.com>
4961
4962         * regrename.c (replace_reg_in_block): Improve REG_DEAD handling.
4963         * timevar.def (TV_RENAME_REGISTERS): Move before TV_SCHED2.
4964         * toplev.c (rest_of_compilation): Call regrename_optimize before sched2.
4965
4966 2000-05-11  Bruce Korb  <bkorb@gnu.org>
4967
4968         * fixinc/fixfixes.c (double_slash_fix):  obsolete
4969         (else_endif_label_fix): obsolete
4970         (format_fix):  new, unused as yet
4971         (main): obsolete
4972         * fixinc/fixlib.h: added fix description struct for use by format_fix
4973         * fixinc/fixincl.c: removed the struct & test for SIGIOT befure using
4974         * fixinc/Makefile.in:  compile fixfixes.c and fixtests.c as separate
4975         modules.  Removed the vestiges of the script version.
4976         Added support for "make check".
4977         * fixinc/check.diff: base diff file (needs work!!)
4978         * fixinc/check.tpl: quiet the fixup output
4979         * fixinc/fixtests.c (main): obsolete
4980         * fixinc/fixincl.sh:  don't bother copying fixincl to ..
4981         * fixinc/fixincl.tpl:  provide for arguments to c_fix routines
4982
4983 Thu May 11 11:57:02 MET DST 2000  Jan Hubicka <jh@suse.cz>
4984
4985         * toplev.c (rest_of_compilation): Remove dead code after
4986         combine.
4987
4988 2000-05-11  Zack Weinberg  <zack@wolery.cumb.org>
4989
4990         * cpphash.c (collect_funlike_expansion): Make "# is not
4991         followed by a macro argument name" a pedwarn, not an error.
4992         Preserve the # in the output.  Suppress the warning if lang_asm.
4993
4994 Thu May 11 01:19:31 2000  Jeffrey A Law  (law@cygnus.com)
4995
4996         * configure.in (hppa*64*-*-hpux11*): New target for PA64 support.
4997         * configure: Rebuilt.
4998
4999 2000-05-10 Laurynas Biveinis <lauras@softhome.net>
5000
5001         * i386/xm-djgpp.h (XREF_FILE_NAME): Add mising brace.
5002
5003 2000-05-10  Kazu Hirata  <kazu@hxi.com>
5004
5005         * combine.c (try_combine): Fix a typo.
5006
5007 Wed May 10 21:31:44 2000  Jim Wilson  <wilson@cygnus.com>
5008
5009         * config/ia64/ia64.md (insv): Add comment.
5010
5011 2000-05-10  Richard Henderson  <rth@cygnus.com>
5012
5013         * Makefile.in (libgcc.a, stmp-multilib): Depend on FPBIT and DPBIT.
5014         * mklibgcc.in: Rewrite to not use functions.  Don't shortcut
5015         dependancies on FPBIT and DPBIT.
5016
5017 2000-05-10  Nick Clifton  <nickc@redhat.com>
5018
5019         * flow.c (find_auto_inc): Do not bias REG_N_REFS by loop_depth
5020         when optimising for size.
5021         (mark_used_regs:) Ditto.
5022         (try_pre_increment_1): Ditto.
5023
5024 2000-05-10  Zack Weinberg  <zack@wolery.cumb.org>
5025
5026         * cppexp.c (lex): Use %.*s to print non-NUL-terminated string.
5027         Make error message friendlier.
5028
5029         * cpphash.h (struct hashnode): Use struct hack for name
5030         member.
5031         * cpphash.c (struct hashdummy): New.
5032         (eq_HASHNODE): Second argument is a hashdummy, not a HASHNODE.
5033         (make_HASHNODE): No need to set ->name pointer.  Correct
5034         setting of p.
5035         (cpp_lookup): Make 'dummy' a struct hashdummy.  Tidy up a bit.
5036
5037 2000-05-10  Richard Henderson  <rth@cygnus.com>
5038
5039         * flow.c (find_basic_blocks_1): Remove any spare bb_note
5040         after completion.
5041
5042 2000-05-10  Bruce Korb  <bkorb@gnu.org>
5043
5044         * fixinc/gnu-regex.c:  reg_syntax_t re_syntax_options must be static
5045
5046 2000-05-10  Eric Schweitz  <schweitz@nortelnetworks.com>
5047
5048         * dwarfout.c (dwarfout_finish): Call retry_incomplete_types
5049         after we enter .debug.
5050
5051 2000-05-10  Jason Merrill  <jason@casey.cygnus.com>
5052
5053         * dwarf2out.c (gen_subprogram_die): Fixup die_parent for the
5054         abstract instance of a nested inline function.
5055
5056         * stor-layout.c (finish_record_layout): finalize_type_size
5057         before laying out the pending_statics.
5058
5059 Wed 10 May 09:36:47 2000  Neil Booth  <NeilB@earthling.net>
5060
5061         * cpplex.c (spell_token): New function.
5062         (spell_string, spell_comment, spell_name): fold into
5063         spell_token.
5064         (I, S): Add macros.
5065         (E, H): Remove macros.
5066         (save_comment): Save comment opening characters too.
5067         (_cpp_lex_file): Update to use spell_token.  Tidy up comment
5068         handling.
5069         * cpplib.h (I, S): Add macros.
5070         (E, H): Remove macros.
5071         (TTYPE_TABLE): Update entries for new speller.
5072         (SYNTAX_ASSERT): Remove.
5073
5074 Wed 10 May 09:08:30 2000  Neil Booth  <NeilB@earthling.net>
5075
5076         * cpplex.c (_cpp_lex_line): Maintain PREV_WHITESPACE flag
5077         when removing escaped newlines.  Reverse sense of test for
5078         escaped newline.
5079
5080 2000-05-09  Richard Henderson  <rth@cygnus.com>
5081
5082         * flow.c (find_basic_blocks_1): Do not delete the first
5083         bb_note we run across.
5084         (create_basic_block): Use reorder_insns to move an existing
5085         bb_note to the correct place.
5086
5087 2000-05-09  Richard Henderson  <rth@cygnus.com>
5088
5089         * calls.c (expand_call): Increment currently_expanding_call
5090         before calling optimize_tail_recursion.
5091
5092 Tue May  9 18:54:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5093
5094         * reload1.c (reload_combine): Fix errors in last change.
5095
5096 2000-05-09  Zack Weinberg  <zack@wolery.cumb.org>
5097
5098         * gcc.c (used_arg): Skip over a semicolon at the end of the
5099         split-up loop; don't break out of it.
5100
5101         * Makefile.in (WARN_CFLAGS): Add -Wwrite-strings.
5102         (tree.o): Depend on output.h.
5103
5104         * c-decl.c (pending_invalid_xref_file,
5105         current_function_prototype_file): Constify.
5106         (pushdecl): Constify a local char *.
5107         (define_label): Constify filename parameter.
5108         * c-lex.c (init_parse): Constify parameter and return value.
5109         * c-typeck.c (c_expand_asm_operands): Constify filename parameter.
5110         * c-tree.h: Update prototypes.
5111         * c-parse.in: Constify filename member of %union, and if_stmt_file.
5112         * c-parse.y, c-parse.c, c-parse.h, objc/objc-parse.y,
5113         objc/objc-parse.c: Regenerate.
5114
5115         * dwarfout.c (dwarfout_init): Constify main_input_filename parameter.
5116         * dwarfout.h: Update prototypes.
5117         * expr.c (expand_expr): Constify a local char *.
5118         * flags.h: Constify main_input_filename.
5119         * function.c (expand_function_end): Constify filename parameter.
5120         * genrecog.c (make_insn_sequence): Use a character array for
5121         c_test_pos.
5122         (main): Remove unused variables.
5123         * input.h: Constify input_filename, main_input_filename, and
5124         file_stack.name.  Update prototypes.
5125         * output.h: Declare first_global_object_name and
5126         weak_global_object_name here, as const char *.
5127         * stmt.c (expand_asm_operands): Constify filename parameter.
5128         * toplev.c (compile_file, push_srcloc, debug_start_source_file):
5129         Constify filename parameter.
5130         (input_filename, main_input_filename): Constify.
5131         * toplev.h: Update prototypes.
5132         * tree.c: Include output.h.  Don't declare
5133         first_global_object_name or weak_global_object_name.  Clean up string
5134         bashing in get_file_function_name_long.
5135         * tree.h (struct tree_decl): Constify filename member.
5136         (input_filename): Constify.
5137         Update prototypes.
5138         * varasm.c (first_global_object_name, weak_global_object_name):
5139         Constify.
5140         (assemble_start_function, assemble_variable): Clean up string bashing.
5141
5142         * gcc.c: Constify all spec-related strings initialized,
5143         transitively, from string constants.  Constify all strings
5144         and string variables related to multilibs.
5145         (set_spec, read_specs): Cast argument to free to PTR.
5146         (used_arg): Do not modify multilib_matches.  Use strncmp plus
5147         length comparison to compare multilib switches.
5148         * genmultilib: Constify everything declared in multilib.h.
5149
5150 Tue May  9 22:28:03 2000  Denis Chertykov  <denisc@overta.ru>
5151
5152         * flow.c (flow_delete_insn): Use INSN_DELETED_P for marking insn
5153         as deleted.
5154
5155 Tue May  9 20:52:43 2000  Denis Chertykov  <denisc@overta.ru>
5156
5157         * config/avr/avr-protos.h (extra_constraint): change a type of
5158         second argument from char to int to avoid warnings.
5159         (asm_output_byte): Likewise.
5160
5161         * config/avr/avr.c (MAX_LD_OFFSET) New macro.
5162         (initial_elimination_offset): Handle elimination from
5163         FRAME_POINTER_REGNUM to STACK_POINTER_REGNUM.
5164         (legitimate_address_p): Use MAX_LD_OFFSET.
5165         (legitimize_address): Likewise.
5166         (out_movqi_r_mr): Likewise.
5167         (out_movhi_r_mr): Likewise, use `fatal_insn' instead of `fatal'.
5168         (out_movsi_r_mr): Use MAX_LD_OFFSET.
5169         (out_movsi_mr_r): Likewise.
5170         (out_movqi_mr_r): Likewise.
5171         (out_movhi_mr_r): Likewise.
5172         (notice_update_cc): Correct CC for the ashrqi3 with the shift
5173         count as CONST_INT != 6.
5174         (ashlqi3_out): Coding style modifications. Run `fatal_insn' if
5175         shift count is a CONSTANT_P, but not a CONST_INT.
5176         (ashlhi3_out): Coding style modifications.
5177         (ashlsi3_out): Likewise.
5178         (ashrhi3_out): Likewise.
5179         (ashrsi3_out): Likewise.
5180         (lshrhi3_out): Likewise.
5181         (lshrsi3_out): Likewise.
5182         (ashrqi3_out): Generate shift for any known constant count without
5183         scratch register. Run `fatal_insn' if shift count is a CONSTANT_P,
5184         but not a CONST_INT.
5185         (lshrqi3_out): Coding style modifications. Run `fatal_insn' if
5186         shift count is a CONSTANT_P, but not a CONST_INT.
5187         (extra_constraint): change a type of
5188         second argument from char to int to avoid warnings.
5189         (asm_output_byte): Likewise.
5190         (asm_file_end): Output size generated commands count as a hex
5191         number too.
5192
5193         * config/avr/avr.h (RETURN_ADDR_RTX): New macro.
5194
5195         * config/avr/avr.md (addhi3): Fragment commented by &&0 is
5196         removed.
5197         (ashlqi3): Values of "length" attribute changed. Shift count
5198         uses constraints 'n' instead of 'i'.
5199         (ashrqi3): Likewise. Values of "cc" attribute changed. Generate
5200         shifts without clobber register.
5201         (lshrqi3): Shift count uses constraints 'n' instead of 'i'.
5202         (call_insn): Correct test for which_alternative == 1 (was 0).
5203         (call_value_insn): Likewise.
5204
5205         * config/avr/t-avr: Remove definition of FLOAT while generates
5206         fp-bit.c
5207
5208 2000-05-09  Bruce Korb  <bkorb@gnu.org>
5209
5210         * fixinc/check.tpl:  Template for checking fixes
5211         * fixinc/inclhack.def:  Added 'test_text' for many fixes
5212         disable hpux8_bogus_inlines on SCO
5213         * fixinc/fixinc.sco:  Oh, yes, we don't need this any more.
5214
5215 Tue May  9 16:30:27 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5216
5217         * calls.c (expand_call): Reorganize somewhat in order
5218         to avoid unnecesary recalculation inside loop and make
5219         tail call failure code cleaner.
5220
5221 Tue May  9 06:30:20 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5222
5223         * alias.c (nonlocal_reference_p): Minor reformatting.
5224         * reload.c (find_equiv_reg): Simplify logic for
5225         CALL_INSN_FUNCTION_USAGE since can't have SUBREG or pseudos and
5226         some some reformatting.
5227         * reload1.c (reload_combine): Don't assume everything in
5228         CALL_INSN_FUNCTION_USAGE is a REG and clean up code a bit.
5229
5230 2000-05-08  Richard Henderson  <rth@cygnus.com>
5231
5232         * final.c (current_insn_predicate): New.
5233         (final_scan_insn): Set it.
5234         * output.h (current_insn_predicate): Declare.
5235
5236         * ifcvt.c (cond_exec_process_insns): New argument prob_val.
5237         Attach it to call insns.
5238         (cond_exec_process_if_block): Track probability for true and
5239         false branches.
5240         (dead_or_predicable): Likewise.
5241
5242         * predict.c (PROB_NEVER, PROB_VERY_UNLIKELY): New.
5243         (PROB_UNLIKELY, PROB_EVEN, PROB_LIKELY): New.
5244         (PROB_VERY_LIKELY, PROB_ALWAYS): New.
5245         (estimate_probability, expected_value_to_br_prob): Use them.
5246
5247         * config/ia64/ia64-protos.h (ia64_expand_prediction): Declare.
5248         * config/ia64/ia64.c (ia64_print_operand_address): Handle 'j'.
5249         (ia64_expand_prediction): New.
5250         (emit_insn_group_barriers): Don't look at notes.  Emit barriers
5251         as needed after calls.
5252         (ia64_epilogue_uses): Mark b0 used.
5253         * config/ia64/ia64.md (beq_true, beq_false): Remove.
5254         (bne_true, bne_false): Remove.
5255         (eq_return, eq_not_return, ne_return, ne_not_return): Remove.
5256         (br_true, br_false): New.  Use predicate_operator and
5257         ia64_expand_prediction.
5258         (return_true, return_false): Likewise.
5259         (call_internal): Use ia64_expand_prediction.  Don't emit stop bit.
5260         (call_internal1, call_value_internal): Likewise.
5261         (call_value_internal1, call_multiple_values_internal1): Likewise.
5262
5263         * config/ia64/ia64.c (ia64_direct_return): Require frame size zero.
5264
5265         * config/ia64/ia64.md (extendsfdf2): Split only after reload.
5266
5267 2000-05-08  Richard Henderson  <rth@cygnus.com>
5268
5269         * rtlanal.c (may_trap_p): Consider old-style and volatile
5270         asms to trap.
5271
5272 Mon May  8 17:16:48 2000  Jim Wilson  <wilson@cygnus.com>
5273
5274         * config/ia64/ia64.h (RETURN_ADDR_RTX): Use COUNT not count.
5275
5276 2000-05-08  Richard Henderson  <rth@cygnus.com>
5277
5278         * config/ia64/ia64.h (predicate_operator): Declare.
5279
5280         * config/ia64/ia64.md (extendsfdf2): Split the nop case out
5281         of existance.
5282
5283         * gensupport.c (process_rtx): Copy and post-process each member
5284         of the define_insn rtvec individually.
5285
5286 Mon  8 May 22:17:35 2000  Neil Booth  <NeilB@earthling.net>
5287
5288         * cpplex.c (spell_token): New function.
5289         (TOKEN_LEN): Add 1 for whitespace.
5290         (_cpp_lex_file): Update to use spell_token.
5291         * cpplib.h (E): Remove.
5292         (TTYPE_TABLE): Update CPP_VSPACE entry.
5293
5294 2000-05-08  Richard Henderson  <rth@cygnus.com>
5295
5296         * flow.c (init_propagate_block_info): Watch out for conditional
5297         branch to next instruction, and thus one outgoing edge.
5298
5299         * config/ia64/ia64.c (ia64_encode_section_info): Exit early
5300         for global register variables; don't special case __[CD]TOR_LIST__;
5301         mind ggc_p for string allocation.
5302
5303 2000-05-08  Nick Clifton  <nickc@cygnus.com>
5304
5305         * config/i386/i386.h (ELIMINABLE_REGS): Fix comment.
5306
5307 2000-05-08  Bruce Korb  <bkorb@gnu.org>
5308
5309         * fixinc/mkfixinc.sh:  fixinc.sco is no longer used
5310         i?86-*-msdosdjgpp* no longer uses fixincludes
5311         * fixinc/genfixes:  inclhack.sh and fixincl.sh are no longer generated
5312         * fixinc/inclhack.sh:  deleted
5313         * fixinc/hackshell.tpl:  deleted
5314         * fixinc/inclhack.tpl:  deleted
5315         * fixinc/Makefile.in:  Remove dependencies on above
5316         * fixinc/fixincl.sh:  "DO NOT EDIT" text modified
5317
5318 2000-05-08  Andreas Jaeger  <aj@suse.de>
5319
5320         * config/mips/linux.h: Remove undefines which disabled .ctor/.dtor
5321         support.
5322
5323 2000-05-07  Zack Weinberg  <zack@wolery.cumb.org>
5324
5325         * Makefile.in (LOOSE_CFLAGS): Add /g modifiers to both sed
5326         substitutions.
5327
5328 Sun  7 May 08:43:53 2000  Neil Booth  <NeilB@earthling.net>
5329
5330         * cpplex.c: Move new lexer definitions and prototypes
5331         to top.  Conditional include these and the code if
5332         NEW_LEXER is defined.  Rename functions whose names
5333         clash if this code included.
5334
5335 Sun May  7 00:54:57 EDT 2000  John Wehle  (john@feith.com)
5336
5337         * rtl.def (COND_EXEC): Clarify.
5338
5339         * i386.md (extendsidi2): Clobber (reg:CC 17) in the
5340         same fashion as zero_extendsidi2.
5341
5342 2000-05-06  Richard Henderson  <rth@cygnus.com>
5343
5344         * config/ia64/ia64.c (predicate_operator): New.
5345         (ia64_print_operand): Handle 'J'.
5346         (rtx_needs_barrier): Handle COND_EXEC.
5347         * config/ia64/ia64.h (BRANCH_COST): Define.
5348         (PREDICATE_CODES): Update.
5349         * config/ia64/ia64.md: Docuement used unspec values.
5350         (attr predicable): New.
5351         (movxf, movxf_internal): New.
5352         (extendsfdf2): Don't comment out nop.
5353         (floatdidf2): Remove.
5354         (truncxfsf2, truncxfdf2, floatdixf2): New.
5355         (abssi2, absdi2): Put the neg in the "true" slot.
5356         (conditional branch instructions): Mark not predicable.
5357         (cmov*_internal): Use predicate_operator.  Split to cond_exec.
5358         (abs*_internal): Likewise.
5359         (alloc, set_bsp): Mark not predicable.
5360         (barrier, insn_group_barrier, flush_cache): Likewise.
5361         (define_cond_exec): New.
5362
5363 2000-05-06  Richard Henderson  <rth@cygnus.com>
5364
5365         * c-decl.c: Include "tm_p.h".
5366
5367         * config/ia64/ia64-protos.h: Rearrange decls to reduce ifdef madness.
5368         (fetchadd_operand, ia64_expand_fetch_and_op): Declare.
5369         (ia64_expand_op_and_fetch): Declare.
5370         * config/ia64/ia64.c: Include "toplev.h".  Kill trailing whitespace.
5371         (setjmp_operand): Constify variables for XSTR.
5372         (ia64_encode_section_info): Likewise.
5373         (ia64_print_operand): Use %d for exact_log2; cast 32-bit printed
5374         values to int.
5375         (ia64_asm_output_external): Constify name.
5376         (process_set): Use HOST_WIDE_INT_PRINT_DEC for frame size.
5377         (process_for_unwind_directive): Provide switch default.
5378         (ia64_expand_compare_and_swap): Remove unused variables.
5379         (ia64_expand_builtin): Likewise.
5380         * config/ia64/ia64.h (ASM_OUTPUT_BYTE): Mask and cast value to int
5381         for printing.
5382
5383         * config/ia64/ia64.c (sdata_symbolic_operand): Mark unused args.
5384         (symbolic_operand, function_operand, setjmp_operand): Likewise.
5385         (shift_count_operand, shift_32bit_count_operand): Likewise.
5386         (shladd_operand, fetchadd_operand, ia64_function_prologue): Likewise.
5387         (ia64_function_epilogue, ia64_setup_incoming_varargs): Likewise.
5388         (ia64_function_arg_partial_nregs, ia64_function_value): Likewise.
5389         (ia64_print_operand_address, ia64_secondary_reload_class): Likewise.
5390         (ia64_expand_builtin): Likewise.
5391         (call_multiple_values_operation): Make dest_regno unsigned.
5392
5393 2000-05-06  Richard Henderson  <rth@cygnus.com>
5394
5395         * rtl.def (DEFINE_COND_EXEC): New.
5396         * md.texi: Document it.
5397
5398         * gensupport.c (input_file): Remove.
5399         (struct queue_elem): Add lineno.
5400         (rtx_ready_queue): Remove.
5401         (errors): New.
5402         (predicable_default): New.
5403         (predicable_true, predicable_false): New.
5404         (define_attr_queue, define_attr_tail): New.
5405         (define_insn_queue, define_insn_tail): New.
5406         (define_cond_exec_queue, define_cond_exec_tail): New.
5407         (other_queue, other_tail): New.
5408         (queue_pattern): New.
5409         (process_rtx): Add patterns to the appropriate queues.
5410         (is_predicable, identify_predicable_attribute): New.
5411         (n_alternatives, collect_insn_data): New.
5412         (alter_predicate_for_insn, alter_test_for_insn): New.
5413         (shift_output_template, alter_output_for_insn): New.
5414         (process_one_cond_exec, process_define_cond_exec): New.
5415         (init_md_reader): Read the entire file.  Process define_cond_exec.
5416         (read_md_rtx): Return elements from the queues.
5417
5418 2000-05-06  Richard Henderson  <rth@cygnus.com>
5419
5420         * flow.c (mark_set_1): Don't update conditional life info
5421         if the register is not_dead.
5422
5423 2000-05-06  Zack Weinberg  <zack@wolery.cumb.org>
5424
5425         * Makefile.in (STAGESTUFF): Add genrtl.c and genrtl.h.
5426         (mostlyclean): Also delete fixincl, fixinc.sh, and
5427         specs.ready, and make clean in the fixinc subdir.
5428
5429 2000-05-06  Richard Henderson  <rth@cygnus.com>
5430
5431         * Makefile.in (gensupport.o): Compile for the host.
5432         (host-prefix gensuuprt.o): Remove.
5433         (genflags.o): Depend on gensupport.h and OBSTACK_H.
5434         (genattrtab.o): Likewise.
5435         (gencodes.o): Depend on gensupport.h.
5436         (genemit.o, genopinit.o, genrecog.o, genextract.o): Likewise.
5437         (genpeep.o, genattr.o, genoutput.o): Likewise.
5438
5439         * gensupport.c (obstack, rtl_obstack): New.
5440         (init_md_reader): Initialize rtl_obstack.
5441         * gensupport.h (rtl_obstack): Declare.
5442         (message_with_line): Declare.
5443
5444         * genattr.c: Remove all traces of obstack manipulation.
5445         * gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise.
5446         * genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise.
5447
5448         * genattrtab.c (obstack, rtl_obstack): Remove.
5449         (main): Don't init rtl_obstack.
5450         * genflags.c: Likewise.
5451
5452         * genrecog.c (message_with_line): Move ...
5453         * gensupport.c: ... here.
5454
5455 2000-05-06  Richard Henderson  <rth@cygnus.com>
5456
5457         * c-typeck.c (build_c_cast): Remove dead code.
5458
5459 2000-05-06  Richard Henderson  <rth@cygnus.com>
5460
5461         * flow.c (split_edge): Don't allocate global_live_at_start for
5462         the new block unless the old blocks had them as well.
5463
5464         * flow.c (mark_set_1): Respect not_dead when updating reg_live.
5465
5466         * ifcvt.c (noce_process_if_block): Don't use an insn_b from
5467         test_bb if a or b uses x.
5468
5469 2000-05-06  Zack Weinberg  <zack@wolery.cumb.org>
5470
5471         * cpphash.h: Remove conditional #define of __extension__.
5472         * rtl.h: Add __extension__ to RTL_CHECK1, RTL_CHECK2,
5473         RTL_CHECKC1, RTL_CHECKC2, and RTVEC_ELT macros
5474         (ENABLE_RTL_CHECKING only).
5475         * tree.h: Add __extension__ to TREE_CHECK, TREE_CLASS_CHECK,
5476         CST_OR_CONSTRUCTOR_CHECK, and EXPR_CHECK macros
5477         (ENABLE_TREE_CHECKING only).
5478         * varray.h: Add __extension__ to VARRAY_CHECK macro
5479         (ENABLE_CHECKING only).
5480
5481 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
5482
5483         Use new tail-calling mechanism on ARM.
5484         * arm.md (sibcall, sibcall_value): New expands.
5485         (sibcall_insn, sibcall_value_insn, sibcall_epilogue): New insns.
5486         (tailcalling peepholes): Delete.
5487         (push_multi): Simplify.
5488         * arm.c (lr_save_eliminated): Delete definition.
5489         (pattern_really_clobbers_lr, function_really_clobbers_lr): Delete.
5490         (output_return_instruction): Remove checks on lr_save_eliminated.
5491         (output_arm_prologue): Remove old tail-calling code.
5492         (arm_output_epilogue): New parameter, really_return.  All callers
5493         changed.  Handle tail-calling epilogues.
5494         * arm.h (lr_save_eliminated): Delete declaration.
5495         (frame_pointer_needed): Delete declaration.
5496         * arm-protos.h (arm_output_epilogue): Adjust prototype.
5497
5498         * arm.md (is_thumb): Examine symbol thumb_code, not expression
5499         TARGET_ARM.
5500         * arm.c (thumb_code): Define it.
5501         (arm_override_options): Set it.
5502         * arm.h (thumb_code): Declare it.
5503
5504 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
5505
5506         * arm-protos.h (arm_dllexport_name_p, arm_dllimport_name_p): Constify.
5507
5508 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
5509
5510         * arm.c (arm_gen_load_multiple, arm_gen_store_mulitple): Don't add
5511         bogus clobber to insns.
5512         (load_multiple_operation, store_mulitple_operation): Don't check
5513         for it.
5514         * arm.md (ldmsi_postinc, stmsi_postinc): Adjust accordingly.
5515
5516         * arm.md (and_scc, ior_scc): Add missing mode.
5517
5518         * arm.md (call_value_symbol): Remove predicate from op2.
5519
5520         * arm.h (SPECIAL_MODE_PREDICATES): Define.
5521
5522 Sat May  6 06:25:56 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5523
5524         * expr.c (get_subtarget): New function.
5525         (force_operand, expand_expr, do_store_flag): Use it.
5526
5527         * toplev.c (compile_file): Don't take strlen of NAME if null.
5528
5529 2000-05-06  David Edelsohn  <edelsohn@gnu.org>
5530
5531         * xcoffout.c (xcoff_current_include_file,
5532         xcoff_current_function_file, xcoff_lastfile): Constify char *.
5533         (xcoffout_source_file, xcoffout_source_line): Make filename 'const
5534         char *'.
5535         (xcoffout_declare_function): Make name 'const char *'.
5536         (xcoffout_end_epilogue): Make fname 'const char *'
5537         * xcoffout.h (xcoff_current_include_file, xcoff_lastfile,
5538         xcoffout_declare_function, xcoffout_source_line): Match above.
5539
5540         * aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -mpowerpc64 without
5541         -maix64 is error.
5542         * rs6000.c (print_operand): Fix lossage typo.
5543         (output_cbranch): Remove "cr" decoration for now.
5544         * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Make alias 'const char *'.
5545
5546 Sat May  6 06:55:32 2000  Denis Chertykov  <denisc@overta.ru>
5547
5548         * config/avr/avr.c (out_shift_with_cnt): Bugfix for shift by
5549         constant count.
5550
5551 2000-05-05  Bruce Korb  <bkorb@gnu.org>
5552
5553         * fixinc/genfixes: Improve the matching for make target names
5554
5555 2000-05-05  Catherine Moore  <clm@cygnus.com>
5556
5557         * c-common.c (decl_attributes):  For TYPE_DECLs attach the
5558         attribute to the decl.
5559         * c-decl.c (pushdecl): Propagate the USED attribute to the
5560         type copy.
5561
5562 2000-05-05  Richard Henderson  <rth@cygnus.com>
5563
5564         * rtlanal.c (reg_overlap_mentioned_p): Treat parallels in the
5565         same way emit_group_load does.
5566
5567 2000-05-05 Mark Elbrecht <snowball3@bigfoot.com>
5568
5569         * gcc.c (set_input) [HAVE_DOS_STYLE_FILE_SYSTEM]: Skip drive name.
5570
5571         * toplev.c (output_file_directive): Use IS_DIR_SEPARATOR.
5572         (main): Likewise.
5573
5574 2000-05-05 Rodney Brown <RodneyBrown@mynd.com>
5575
5576         * pa.h (FUNCTION_ARG_ADVANCE): Warning removal.
5577
5578 Fri May  5 10:29:21 2000  Marc Espie <espie@cvs.openbsd.org>
5579
5580         * config/openbsd.h (LINK_SPEC): pass correct flags to ld
5581         to support -shared, on platforms with dynamic libraries.
5582
5583 Fri May  5 10:27:06 2000  Philippe De Muyter  <phdm@macqel.be>
5584
5585         * system.h (S_ISBLK): Provide fallback definition.
5586
5587 2000-05-05  Geoff Berry  <geoffb@bops.com>
5588
5589         * extend.texi (Extended Asm): Document inability to give asm
5590         statements access to condition codes.
5591
5592 2000-05-05  Marek Michalkiewicz  <marekm@linux.org.pl>
5593
5594         * varasm.c (asm_emit_uninitialised): Use 0, not NULL
5595         as arg 2 of UNIQUE_SECTION.
5596
5597 Fri May  5 10:11:41 2000  Jeffrey A Law  (law@cygnus.com)
5598
5599         * predict.c: Remove May 4 change.
5600         * bb-reorder.c (make_reorder_chain): Do not perform block movement
5601         if we have predicted the branch at 50-50 probability.
5602
5603 2000-05-05  Richard Henderson  <rth@cygnus.com>
5604
5605         * flow.c (init_propagate_block_info): Fix merge error
5606         in HAVE_conditional_execution code.
5607
5608 Fri May  5 07:43:50 2000  Denis Chertykov  <denisc@overta.ru>
5609
5610         * config/avr/avr.c (out_shift_with_cnt): Genetare a more optimal
5611         shift cycle for unknown shift count. Also generates dec + brpl.
5612         (ashlqi3_out): Don't generate dec + brpl which now generates by
5613         `out_shift_with_cnt'.
5614         (ashlhi3_out): Likewise.
5615         (ashlsi3_out): Likewise.
5616         (ashrqi3_out): Likewise.
5617         (ashrhi3_out): Likewise.
5618         (ashrsi3_out): Likewise.
5619         (lshrqi3_out): Likewise.
5620         (lshrhi3_out): Likewise.
5621         (lshrsi3_out): Likewise.
5622
5623 2000-05-04 Mark Elbrecht <snowball3@bigfoot.com>
5624
5625         * gcc.c (free_split_directories): Correct typo in explanation
5626         of make_relative_prefix.
5627
5628 2000-05-04  Geoff Keating  <geoffk@cygnus.com>
5629
5630         * config/rs6000/rs6000.h (PREDICATE_CODES): Add floating-point
5631         comparison codes to branch_comparison_operator.
5632
5633 2000-05-04  Richard Henderson  <rth@cygnus.com>
5634
5635         * ifcvt.c (noce_process_if_block): Always reset X in the A == B case.
5636
5637 2000-05-04  Richard Henderson  <rth@cygnus.com>
5638
5639         * Makefile.in (FPBIT_FUNCS): Remove _df_to_usi.
5640         (DPBIT_FUNCS): Remove _sf_to_usi.
5641         (stmp-multilib): Pass LIB1ASMSRC to libgcc.mk.
5642
5643         * ifcvt.c (noce_process_if_block): Fail if A or B modified
5644         between condition and jump.
5645
5646         * libgcc2.c (near eh_context_specific): Comment #endif string.
5647         * longlong.h: Don't use strings with embedded newlines.
5648
5649 2000-05-04  Geoff Keating  <geoffk@cygnus.com>
5650
5651         * config/rs6000/rs6000-protos.h: Add output_cbranch.
5652         * config/rs6000/rs6000.c (ccr_bit_negated_p): Delete.
5653         (print_operand): Delete %t and %T codes.
5654         (output_cbranch): New function.  Support branch prediction.
5655         * config/rs6000/rs6000.md: Use output_cbranch for
5656         conditional branches and returns.
5657
5658 2000-05-04  Jason Merrill  <jason@casey.cygnus.com>
5659
5660         * simplify-rtx.c (simplify_ternary_operation): Cast to unsigned.
5661         * stor-layout.c (place_field): Likewise.
5662         * integrate.h (struct inline_remap): Make regno_pointer_align unsigned.
5663         * expr.c (store_expr): Make align unsigned.
5664         * explow.c (plus_constant_wide): Make low words unsigned.
5665         * expmed.c (choose_multiplier): Likewise.
5666         * fold-const.c (fold):  Likewise.
5667         * tree.h (build_int_2): Likewise.
5668         * tree.c (build_int_2_wide, tree_int_cst_msb): Likewise.
5669         * emit-rtl.c (gen_reg_rtx): Add cast to unsigned char*.
5670         (init_emit): Change cast to unsigned char*.
5671         * varasm.c (compare_constant_1): Add cast to char*.
5672         * gcse.c (delete_null_pointer_checks): Change cast to unsigned int*.
5673         * reload1.c (reload): Likewise.
5674
5675         * rtl.h (MEM_SET_IN_STRUCT_P): Use do { } while (0).
5676
5677 Thu May  4 14:37:23 2000  Jeffrey A Law  (law@cygnus.com)
5678
5679         * predict.c (estimate_probability): If no prediction was found, then
5680         predict the successor that is the next physical block (if such a
5681         successor exists).
5682
5683 2000-05-04  Richard Henderson  <rth@cygnus.com>
5684
5685         * config/alpha/t-alpha (LIB2FUNCS_EXTRA): Use qrrnd.asm in place.
5686
5687 2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5688
5689         * system.h: Don't wrap <sys/types.h> with HAVE_SYS_TYPES_H.
5690
5691 2000-05-04  Mumit Khan  <khan@xraylith.wisc.edu>
5692
5693         * i386/cygwin.h (CPP_PREDEFINES): Don't define __STDC__. Move
5694         attribute macros from here ...
5695         (CPP_SPEC): to here.
5696         * i386/mingw32.h (CPP_PREDEFINES): Likewise.
5697         (CPP_SPEC): Likewise.
5698         * i386/crtdll.h (CPP_PREDEFINES): Delete attribute macros.
5699
5700         * Makefile.in ($(HOST_PREFIX_1)gensupport.o): Add build rule.
5701         (libgcc.a): Pass LIB1ASMSRC to libgcc.mk.
5702
5703 2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5704
5705         * bb-reorder.c (get_next_bb_note, get_prev_bb_note): Prototype.
5706
5707         * diagnostic (vbuild_message_string, build_message_string,
5708         build_location_prefix, output_get_prefix, init_output_buffer,
5709         output_notice, vline_wrapper_message_with_location,
5710         v_message_with_decl, default_print_error_function): De-constify.
5711         (set_real_maximum_length): Prototype.
5712
5713         * diagnostic.h (struct output_buffer, init_output_buffer,
5714         output_get_prefix, output_set_prefix): De-constify.
5715
5716         * function.c (init_function_start): Constify.
5717
5718         * gensupport.c (remove_constraints, process_rtx): Prototype.
5719
5720         * gthr-posix.h: Indent uses of #pragma.
5721
5722         * objc/objc-act.c (ggc_mark_imp_list, ggc_mark_hash_table):
5723         Prototype.
5724
5725         * predict.c (find_expected_value): Delete prototype.
5726         (expected_value_to_br_prob): Initialize variable `ev_reg'.
5727
5728         * sbitmap.h (debug_sbitmap): Prototype.
5729
5730         * ssa.c (compute_coalesced_reg_partition): Prototype.
5731
5732         * stor-layout.c (debug_rli): Prototype.
5733
5734         * tree.h (round_down): Prototype.
5735         (init_function_start): Constify.
5736
5737 2000-05-04  Zack Weinberg  <zack@wolery.cumb.org>
5738
5739         * cpphash.h: #define __extension__ away if GCC_VERSION < 2095
5740         (overly conservative).  Change extern inline wrappers to
5741         static inline, define them always, use PARAMS properly.
5742         * cpplex.c (_cpp_get_directive_token): Don't issue pedantic
5743         whitespace warnings for \f and \v at the beginning of a line.
5744
5745 Thu May  4 10:03:50 2000  Jeffrey A Law  (law@cygnus.com)
5746
5747         * haifa-sched.c (schedule_insns): Free the flow edge list when it
5748         is no longer needed
5749
5750 2000-05-04  Bruce Korb  <bkorb@gnu.org>
5751
5752         * fixincl/inclhack.def: added broken_cabs -
5753         Remove `extern double cabs' declarations from math.h
5754         * fixincl/inclhack.sh: regen
5755         * fixincl/fixincl.x: regen
5756         * fixincl/fixincl.c: Remove BOGOSITY code
5757         * fixincl/mkfixinc.sh: Remove code for installing "shell" version
5758
5759 Thu May  4 09:45:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5760
5761         * rtl.h (MEM_COPY_ATTRIBUTES): Also copy RTX_UNCHANGING_P and
5762         MEM_ALIAS_SET.
5763         * alias.c (canon_rtx): Don't copy RTX_UNCHANGING_P or MEM_ALIAS_SET
5764         when calling MEM_COPY_ATTRIBUTES.
5765         * emit-rtl.c (operand_subword, change_address): Likewise.
5766         * explow.c (stabilize): Likewise.
5767         * expr.c (protect_from_queue, emit_move_insn_1): Likewise.
5768         * integrate.c (copy_rtx_and_substitute): Likewise.
5769         * combine.c (combine_simplify_rtx): Don't copy RTX_UNCHANGING_P
5770         when calling MEM_COPY_ATTRIBUTES.
5771         (make_extraction, simplify_shift_const, gen_lowpart_for_combine):
5772         Likewise.
5773         * cse.c (gen_lowpart_if_possible): Likewise.
5774         * function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
5775         * optabs.c (gen_move_insn): Likewise.
5776         * recog.c (validate_replace_rtx_1): Likewise.
5777         * simplify-rtx.c (add_mem_for_addr): Likewise.
5778         * stmt.c (expand_anon_union_decl): Likewise.
5779         * config/arm/arm.md: Likewise.
5780         * config/h8300/h7300.c (fix_bit_operand): Likewise.
5781         * config/m88k/m88k.c (legitimize_address, block_move_loop): Likewise.
5782         (block_move_no_loop, block_move_sequence): Likewise.
5783         * config/rs6000/rs6000.c (expand_block_move_mem): Likewise.
5784         * config/alpha/alpha.c (get_aligned_mem): Likewise.
5785         Clear MEM_ALIAS_SET.
5786         * final.c (alter_subreg): Don't copy MEM_ALIAS_SET when calling
5787         MEM_COPY_ATTRIBUTES.
5788
5789 2000-05-03  Robert Lipe <robertlipe@usa.net>
5790
5791         * configure.in (i[34567]86-*-isc*) [tmake_file]: Add t-i386bare
5792         to suppress libgcc1.
5793         (i[34567]86-*-sco3.2v5*) Likewise.
5794         (i[34567]86-*-sco3.2v4*) Likewise.
5795         (i[34567]86-*-sco) Likewise.
5796         (i[34567]86-*-solaris2) Likewise.
5797         (i[34567]86-*-sysv5*) Likewise.
5798         (i[34567]86-*-sysv4*) Likewise.
5799         (i[34567]86-*-udk*) Likewise.
5800         (i[34567]86-*-sysv*) Likewise.
5801
5802 2000-05-03  Zack Weinberg  <zack@wolery.cumb.org>
5803
5804         * cpphash.h (U): New define, to correct type of string constants.
5805         (ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr): New wrapper
5806         routines, to do casts when passing unsigned strings to libc.
5807         * cppexp.c, cppfiles.c, cpphash.c, cppinit.c, cpplib.c: Use them.
5808
5809         * cppfiles.c (_cpp_execute_include): Make filename an U_CHAR *.
5810         * cpphash.c (_cpp_quote_string): Make string an U_CHAR *.
5811         * cppinit.c (dump_special_to_buffer): Make macro name an U_CHAR *.
5812         * cpplex.c (parse_ifdef, parse_include, validate_else): Make
5813         second argument an U_CHAR *.
5814
5815         * cppinit.c (builtin_array): Make name and value U_CHAR *, add
5816         length field, clean up initializer.
5817         (ISTABLE): Add __extension__ to designated-
5818         initializers version.
5819         * cpplex.c (CHARTAB): Likewise.
5820
5821         * mbchar.c: Add dummy external declaration to the !MULTIBYTE_CHARS
5822         case so the file won't be empty.
5823
5824 Wed May  3 21:01:46 2000  Jason Eckhardt  <jle@cygnus.com>
5825
5826         * bb-reorder.c (struct reorder_block_def): Member succ removed.
5827         (REORDER_BLOCK_SUCC): Removed.
5828         (enum reorder_skip_type): Removed.
5829         (skip_insns_between_block): Renamed to skip_insns_after_block.
5830         Removed second argument. Removed dead code and cleaned up.
5831         (make_reorder_chain): Removed use of REORDER_BLOCK_SUCC.
5832         (reorder_basic_blocks): Remove use of REORDER_SKIP_AFTER. Removed
5833         second parameter to skip_insns_after_block.
5834
5835 Wed May  3 13:29:54 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5836
5837         * tree.c (staticp, case LABEL_DECL): New case.
5838
5839 2000-05-03  Richard Henderson  <rth@cygnus.com>
5840
5841         * Makefile.in (start.encap): Do not depend on LIBGCC1.
5842
5843         * mklibgcc1.in: Fix typo last change.
5844
5845 2000-05-03  Jason Merrill  <jason@casey.cygnus.com>
5846
5847         * Makefile.in (WARN_CFLAGS): Add -pedantic -Wno-long-long.
5848         (LOOSE_CFLAGS): New: CFLAGS without -pedantic and -Wtraditional.
5849         (GCC_CFLAGS): Use it.
5850         (LANG_FLAGS_TO_PASS): New: SUBDIR_FLAGS_TO_PASS with LOOSE_CFLAGS.
5851         * cp/Make-lang.in, java/Make-lang.in, f/Make-lang.in, ch/Make-lang.in,
5852         objc/Make-lang.in: Use it.
5853
5854 2000-05-03  Jason R Thorpe  <thorpej@zembu.com>
5855
5856         * config/i386/i386.md (lshrqi2_cmpno): Use q not r in constraint.
5857
5858 2000-05-03  Richard Henderson  <rth@cygnus.com>
5859
5860         * mklibgcc.in: Restrict OLDCC=GCC test to native.  Equate
5861         LIBGCC1 empty with libgcc1.null.
5862
5863 Wed May  3 12:55:46 2000  Jim Wilson  <wilson@cygnus.com>
5864
5865         * fold-const.c (extract_muldiv, case MAX_EXPR): Don't allow signedness
5866         change.
5867
5868 2000-05-03  Greg McGary  <gkm@gnu.org>
5869
5870         * tree.h (tree_common): Add bounded_flag member.  Remove
5871         inaccurate comment about number of remaining bits.
5872         (BOUNDED_INDIRECT_TYPE_P, BOUNDED_POINTER_TYPE_P,
5873         BOUNDED_REFERENCE_TYPE_P, MAYBE_BOUNDED_INDIRECT_TYPE_P,
5874         MAYBE_BOUNDED_POINTER_TYPE_P, MAYBE_BOUNDED_REFERENCE_TYPE_P,
5875         TREE_BOUNDED, TYPE_MAIN_VARIANTS_PHYSICALLY_EQUAL_P,
5876         TYPE_MAIN_PHYSICAL_VARIANT, TYPE_BOUNDED): New macros.
5877         (TYPE_QUAL_BOUNDED): New constant.
5878         (TYPE_QUALS): Handle bounded qualifier.
5879         (TREE_EXPR_QUALS, TREE_FUNC_QUALS): New macros.
5880         (TYPE_BOUNDED_VALUE, TYPE_BOUNDED_BASE, TYPE_BOUNDED_EXTENT,
5881         TYPE_BOUNDED_SUBTYPE, TYPE_UNBOUNDED_VARIANT, TYPE_POINTER_DEPTH,
5882         TYPE_AMBIENT_BOUNDEDNESS): New macros.
5883         (MAX_POINTER_DEPTH, VA_LIST_POINTER_DEPTH): New constants.
5884         (tree_type): Add pointer_depth member.  Remove
5885         inaccurate comment about number of remaining bits.
5886         (DECL_POINTER_DEPTH): Add macro.
5887         (tree_decl): Add pointer_depth member.
5888
5889 Wed May  3 22:52:53 2000  Denis Chertykov  <denisc@overta.ru>
5890
5891         * config/avr/avr-protos.h (test_hard_reg_class): Declared.
5892         * config/avr/avr.c (ashrhi3_out): optimized shift by 15.
5893         (lshrhi3_out): Likewise.
5894         (ashrsi3_out): bugfix in shift by 8.
5895         (test_hard_reg_class): New function.
5896         * config/avr/avr.md: Bugfix inside conditions in peepholes.
5897         (ashlhi3): removed define_expand of this pattern.
5898         (*ashlhi3_insn): renamed to ashlhi3.
5899         (ashlsi3): removed define_expand of this pattern.
5900         (*ashlsi3_insn): renamed to ashlsi3.
5901         (ashrqi3): removed define_expand of this pattern.
5902         (*ashrqi3_insn): renamed to ashrqi3.
5903         (ashrhi3): removed define_expand of this pattern.
5904         (*ashrhi3_insn): renamed to ashrhi3.
5905         (ashrsi3): removed define_expand of this pattern.
5906         (*ashrsi3_insn): renamed to ashrsi3.
5907         (lshrhi3): removed define_expand of this pattern.
5908         (*lshrhi3_insn): renamed to lshrhi3.
5909         (lshrsi3): removed define_expand of this pattern.
5910         (*lshrsi3_insn): renamed to lshrsi3.
5911
5912 2000-05-03  Rodney Brown  <RodneyBrown@pmsc.com>
5913
5914         * config/mcore/mcore.c: Replacing inclusion of "stdio,h" with
5915         inclusion of "system.h".
5916
5917 Wed May  3 11:43:53 2000  Jim Wilson  <wilson@cygnus.com>
5918
5919         * config/ia64/ia64.c (ia64_encode_section_info): Add check for
5920         TREE_ASM_WRITTEN.
5921
5922 2000-05-03  David Mosberger  <davidm@hpl.hp.com>
5923
5924         * config/ia64/ia64.c (ia64_override_options): Force -mconstant-gp
5925         if -mauto-pic is on.
5926         (ia64_epilogue_uses): Mark "gp" (r1) as used by the epilogue if
5927         -mconstant-gp is in effect and function-descriptors are being used
5928         to make indirect calls.
5929         * config/ia64/ia64.h (MASK_CONST_GP): New macro.
5930         (MASK_AUTO_PIC): Ditto.
5931         (TARGET_CONST_GP): Ditto.
5932         (TARGET_AUTO_PIC): Ditto.
5933         (TARGET_SWITCHES): Add -mconstant-gp and -mauto-pic options.
5934         (ASM_OUTPUT_DOUBLE_INT): Don't generate @fptr() if -mauto-pic or
5935         -mno-pic is in effect.
5936         (ASM_OUTPUT_XDATA_DOUBLE_INT): Ditto.
5937         * config/ia64/ia64.md (movdi): Use gen_load_gprel64() if
5938         -mauto-pic is in effect.
5939         (gprel64_offset): New pattern.
5940         (load_gprel64): Ditto.
5941         (call): Handle -mauto-pic like -mno-pic (don't use fptr).  If
5942         -mconstant-gp is in effect, no need to preserve gp around direct
5943         calls.
5944         (call_value): Ditto.
5945         * config/ia64/linux.h (PROFILE_BEFORE_PROLOGUE): Define.
5946         (FUNCTION_PROFILER): Define.
5947         * config/ia64/sysv4.h (ASM_OUTPUT_CONSTRUCTOR): Don't generate
5948         @fptr() directive when -mno-pic or -mauto-pic is in effect.
5949         (ASM_OUTPUT_DESTRUCTOR): Ditto.
5950
5951 2000-05-03  Richard Henderson  <rth@cygnus.com>
5952
5953         * Makefile.in (STAGESTUFF): Add libgcc libgcc.mk.
5954         (libgcc1.null, libgcc1.cross, libgcc1.a): Remove targets.
5955         (libgcc1-asm.a, libgcc1.S, libgcc2.a): Remove targets.
5956         (mklibgcc, libgcc.mk): New targets.
5957         (libgcc.a): Use libgcc.mk.
5958         (stmp-multilib): Likewise.
5959         (stmp-multilib-sub): Remove.
5960         (mostlyclean): Don't delete libgcc2 temp files.
5961         * configure.in (AC_PROG_CC_C_O): Add.
5962         (NO_MINUS_C_MINUS_O): Substitute it.
5963         (all_outputs): Add mklibgcc.
5964         * mklibgcc.in: New file.
5965
5966 2000-05-03  Jason Merrill  <jason@casey.cygnus.com>
5967
5968         * cppexp.c (op_t): Make an int.
5969
5970         * rtlanal.c (dead_or_set_regno_p): Remove unused variable.
5971
5972         * varasm.c (initializer_constant_valid_p): Fix parenthesis.
5973
5974         * gensupport.c (process_rtx): Fix macros used.
5975
5976 2000-05-03  Richard Henderson  <rth@cygnus.com>
5977
5978         * flow.c (propagate_one_insn): Also don't PROP_REG_INFO for
5979         call-clobbered registers of a call.
5980
5981 Wed May  3 12:40:53 2000  Clinton Popetz  <cpopetz@cygnus.com>
5982
5983         * gensupport.c: New file.
5984         * gensupport.h: New file.
5985         * Makefile.in (HOST_RTL): Depend on gensupport.
5986         (gensupport.o) New rule.
5987         * genattr.c: Use gensupport for reading .md files.
5988         * genattrtab.c: Ditto.
5989         * gencodes.c: Ditto.
5990         * genconfig.c: Ditto.
5991         * genemit.c: Ditto.
5992         * genextract.c: Ditto.
5993         * genflags.c: Ditto.
5994         * genopinit.c: Ditto.
5995         * genoutput.c: Ditto.
5996         * genpeep.c: Ditto.
5997         * genrecog.c: Ditto.
5998         * rtl.def (define_insn_and_split): New DEF_RTL_EXPR.
5999         * md.texi (Insn Splitting): Document define_insn_and_split.
6000
6001 Tue May  2 00:20:30 2000  Jason Eckhardt  <jle@cygnus.com>
6002
6003         * flow.c (verify_flow_info): Added two more sanity checks. The
6004         first checks that the blocks are numbered consecutively. The second
6005         checks that n_basic_blocks is actually equal to the number of
6006         basic blocks in the insn chain.
6007
6008 2000-05-03  Zack Weinberg  <zack@wolery.cumb.org>
6009
6010         * cpplib.h: Add accessor macros for token lists.
6011         * cpplib.c, cpphash.c, cpplex.c: Use them.
6012
6013 Wed May  3 09:29:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6014
6015         * expr.c (expand_expr, case COMPONENT_REF): Don't check for checking
6016         memory usage if not in a function.
6017         * varasm.c (initializer_constant_valid_p, case ADDR_EXPR): Only
6018         return address if static.
6019
6020 Wed May  3 13:14:49 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6021
6022         * ifcvt.c (noce_try_cmove_arith):  Use may_trap_p to thest
6023         whether address may trap.
6024
6025 Tue May  2 23:38:37 2000  Jason Eckhardt  <jle@cygnus.com>
6026
6027         * bb-reorder (chain_reorder_blocks): Changed code to test for
6028         EDGE_FALLTHRU rather than making erroneous assumption that the
6029         first outgoing edge is the fall-through edge.
6030
6031 Tue May  2 18:20:31 2000  Donald Lindsay  <dlindsay@hound.cygnus.com>
6032
6033         * config/mips/mips.c (mips_build_va_list,mips_va_start,mips_va_arg): new
6034         ABI for varargs, across all MIPS. This is incompatible because the
6035         va_list (__builtin_va_list) structure is different, so a compilation
6036         unit passing a va_list and a compilation unit being passed one, should
6037         both be compiled with the same ABI. (The old structure had two
6038         pointers, now it has three.)
6039
6040 Tue May  2 19:18:43 2000  Jason Eckhardt  <jle@cygnus.com>
6041
6042         * bb-reorder.c (struct reorder_block_def): Remove members end,
6043         block_begin, and block_end.
6044         (REORDER_BLOCK_OLD_END): Delete.
6045         (REORDER_BLOCK_BEGIN): Delete.
6046         (REORDER_BLOCK_END): Delete.
6047         (chain_reorder_blocks): Remove dead code.
6048
6049 Tue May  2 17:06:53 2000  Jason Eckhardt  <jle@cygnus.com>
6050
6051         * bb-reorder.c (remove_scope_notes): Check for both types of scope
6052         notes as the end of a basic block before deleting.
6053
6054 2000-05-02  Mumit Khan  <khan@xraylith.wisc.edu>
6055
6056         * final.c (final_start_function): Fix spelling of "necessary".
6057
6058 2000-05-02  Jason Merrill  <jason@casey.cygnus.com>
6059
6060         * toplev.c (debug_ignore_block): Return int.
6061         * dwarf2out.c (dwarf2out_ignore_block): Likewise.
6062         * toplev.h, dwarf2out.h: Adjust.
6063         * emit-rtl.c (remove_unnecessary_notes): Test return value.
6064
6065         * emit-rtl.c (remove_unnecessary_notes): Fix spelling of "necessary".
6066         * toplev.c, final.c, rtl.h: Adjust.
6067
6068 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
6069
6070         * aclocal.m4 (gcc_AC_CHECK_PROG_VER): New macro.
6071         * configure.in: Look for makeinfo in the unified tree, then
6072         for a system makeinfo which is sufficiently new.
6073         * Makefile.in: If configure says makeinfo is too old, don't
6074         build or install Info documentation.
6075
6076 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
6077
6078         * cpphash.c (collect_params): Fix off-by-one error.
6079         (dump_hash_helper): Dump all four macro nodetypes.
6080
6081 2000-05-02  Jakub Jelinek  <jakub@redhat.com>
6082
6083         * cpphash.c (trad_stringify): Adjust p after stringification as
6084         well.
6085
6086 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
6087
6088         * cpplib.h (CPP_POP, parse_cleanup_t): Delete.
6089         (cpp_buffer): Remove cleanup, seen_eof, manual_pop members.
6090
6091         * cppfiles.c (file_cleanup): Delete.
6092         * cpphash.c (macro_cleanup): Delete.
6093         (collect_objlike_expansion, collect_funlike_expansion,
6094         macarg, scan_arguments): Remove CPP_POP case.
6095
6096         * cpplex.c (null_cleanup): Delete.
6097         (cpp_pop_buffer): Do the work that was done in the cleanups
6098         here.  Call _cpp_unwind_if_stack from here.
6099         (_cpp_expand_to_buffer, cpp_scan_buffer_nooutput,
6100         cpp_scan_buffer): Run until we see CPP_EOF and the top of
6101         stack is the buffer _below_ the one we stacked.
6102         (cpp_get_token): Always pop an exhausted buffer.  Return
6103         CPP_EOF unless it's a macro buffer.  Don't call _cpp_handle_eof.
6104         * cpplib.c (skip_if_group): Don't call cpp_get_token to
6105         increment the line number.
6106         (_cpp_handle_eof): Rename to _cpp_unwind_if_stack.
6107
6108         * fix-header.c (read_scan_file) [parsing getchar()]: Run until
6109         we see CPP_EOF and the top of stack is the buffer _below_ the
6110         one we stacked.
6111         * scan-decls.c: Likewise.
6112
6113 2000-05-02  Andrew Haley  <aph@cygnus.com>
6114
6115         * config/ia64/ia64.c (ia64_encode_section_info): Handle the case
6116         where this function is called for the second time on a decl that
6117         has had its section info changed in such a way as to move it out
6118         of small data/bss.
6119         * config/ia64/ia64.h (REDO_SECTION_INFO_P): New definition.
6120
6121 2000-05-01  Richard Henderson  <rth@cygnus.com>
6122
6123         * ifcvt.c (dead_or_predicable): Set merge_bb->end to the insn before
6124         the sequence we're moving, not to merge_bb->head.
6125
6126 2000-05-01  Richard Henderson  <rth@cygnus.com>
6127
6128         * configure.in (alpha*-*-linux-gnulibc1*) [tmake_file]: Remove
6129         reference to alpha/t-linux.
6130         (alpha*-*-linux-gnu*): Likewise.
6131         * configure: Rebuild.
6132
6133         * calls.c (expand_call): Don't emit reg notes for a sibcall.
6134
6135         * flow.c (calculate_global_regs_live): Skip for_each_successor_phi
6136         if not in SSA form.
6137
6138         * ifcvt.c (if_convert): Only verify_flow_info if ENABLE_CHECKING.
6139
6140 2000-05-01  Jason Merrill  <jason@casey.cygnus.com>
6141
6142         * integrate.c (copy_decl_for_inlining): Copy TREE_READONLY and
6143         TREE_THIS_VOLATILE.
6144
6145 2000-05-01  Richard Henderson  <rth@cygnus.com>
6146
6147         * ifcvt.c (noce_emit_cmove): Conditionally compile call to
6148         emit_conditional_move.
6149
6150 2000-05-01  Jakub Jelinek  <jakub@redhat.com>
6151
6152         * config/ia64/linux.h (LINK_SPEC): Use /lib/ld-linux-ia64.so.1
6153         as the dynamic linker.
6154
6155 2000-05-01  Zack Weinberg  <zack@wolery.cumb.org>
6156
6157         * cppfiles.c (open_include_file): Open file in blocking mode.
6158         (read_include_file): Don't fcntl(fd, F_SETFL, 0) anymore.
6159         Only exclude block devices and directories.
6160
6161         * cpphash.c (_cpp_make_hashnode): Rename make_HASHNODE, now
6162         static.  Allocate the hashnode and its string in the same
6163         block of memory.
6164         (del_HASHNODE): Don't free h->name.
6165         (_cpp_lookup): If there is no entry for this string, create
6166         one, of type T_VOID.
6167         (_cpp_lookup_slot): Delete.
6168         * cpphash.h: Update prototypes.
6169
6170         * cpplex.c (maybe_macroexpand): Check for hp->type == T_VOID,
6171         not hp == NULL.
6172         * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert,
6173         do_unassert, cpp_defined): Use _cpp_lookup.  Don't create a
6174         node here, just fill in the value field properly.  "Delete"
6175         entries by setting the value field to T_VOID.  Check for
6176         hp->type == T_VOID, not hp == NULL.
6177
6178         * Makefile.in (cpplib.o): Don't depend on $(HASHTAB_H).
6179         * cpperror.c, cppexp.c, cpplex.c, cpplib.c:  Don't include
6180         hashtab.h.
6181
6182 2000-05-01  Alexandre Oliva  <aoliva@cygnus.com>
6183
6184         * config/mn10300/mn10300.c (print_operand_address): Do not add
6185         zero to SP.
6186
6187         * config/mn10300/mn10300.c (expand_epilogue): If SP is to be
6188         adjusted by less than 256 bytes, use ret regardless of having any
6189         callee-saved register to restore.
6190
6191 2000-05-01 Laurynas Biveinis <lauras@softhome.net>
6192
6193         * tm.texi (TARGET_HAS_F_SETFLKW): Fix typo.
6194
6195 2000-05-01 Mark Elbrecht <snowball3@bigfoot.com>
6196
6197         * config/i386/djgpp.h (INT_ASM_OP): Define.
6198         (CPP_PREDEFINES): Rename MSDOS to __MSDOS__.
6199         (ASM_WEAKEN_LABEL): Define.
6200         (MASK_BNU210): Define.
6201         (SUBTARGET_SWITCHES): Define.
6202         (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Define.
6203         (MAKE_DECL_ONE_ONLY): Define.
6204         (UNIQUE_SECTION_P, UNIQUE_SECTION): Define.
6205
6206 2000-05-01  Mumit Khan  <khan@xraylith.wisc.edu>
6207
6208         * i386/cygwin.h (INT_ASM_OP): Define.
6209
6210 Mon May  1 18:20:06 2000  Denis Chertykov  <denisc@overta.ru>
6211
6212         * config/avr/avr.c (address_cost): renamed to avr_address_cost.
6213         * config/avr/avr.h (ADDRESS_COST): use avr_address_cost.
6214
6215 Mon May  1 17:50:44 2000  Denis Chertykov  <denisc@overta.ru>
6216
6217         * config/avr/avr.c (asm_file_start): output 0 as r0 and 1 as r1 in
6218         __tmp_reg__ and __zero_reg__ initialization.
6219
6220 2000-04-30  Richard Henderson  <rth@cygnus.com>
6221
6222         * flow.c (propagate_one_insn): Mark sets even when the insn is dead.
6223
6224         * ifcvt.c (noce_process_if_block): Fail the conversion if X is
6225         referenced bewteen the condition and the jump.  Don't delete
6226         anything but the jump.
6227
6228 Sun Apr 30 22:48:24 2000  Jason Eckhardt  <jle@cygnus.com>
6229
6230         * bb-reorder.c (scope_def): New struct.
6231         (scope_forest_info): New struct.
6232         (struct reorder_block_def): New member "scope".
6233         (REORDER_BLOCK_SCOPE): New macro.
6234         (relate_bbs_with_scopes): New function and prototype.
6235         (make_new_scope): Likewise.
6236         (build_scope_forest): Likewise.
6237         (remove_scope_notes): Likewise.
6238         (insert_intra_1): Likewise.
6239         (insert_intra_bb_scope_notes): Likewise.
6240         (insert_inter_bb_scope_notes): Likewise.
6241         (rebuild_scope_notes): Likewise.
6242         (free_scope_forest_1): Likewise.
6243         (free_scope_forest): Likewise.
6244         (dump_scope_forest): Likewise.
6245         (dump_scope_forest_1): Likewise.
6246         (chain_reorder_blocks): Set REORDER_BLOCK_SCOPE for new block.
6247         Update REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for new
6248         block.
6249         (reorder_basic_blocks): Added calls to build_scope_scope_forest
6250         and remove_scope_notes before reordering is done. Added calls to
6251         rebuild_scope_notes, free_scope_forest, and reorder_blocks after
6252         after reordering is done.
6253
6254 2000-40-30  Bruce Korb  <bkorb@gnu.org>
6255
6256         * fixinc/inclhack.def:  Added definitions needed by OSR5,
6257         removed two stale entries (defined away with OLD_CPP).
6258         * fixinc/inclhack.sh: regen
6259         * fixinc/fixincl.x: regen
6260
6261 2000-04-30  Richard Henderson  <rth@cygnus.com>
6262
6263         * ifcvt.c (dead_or_predicable): Manually squeeze non-movable notes
6264         from the last insn in the sequence.
6265
6266 2000-04-30  Zack Weinberg  <zack@wolery.cumb.org>
6267
6268         * cpplex.c (cpp_idcmp): New function.
6269         * cpplib.h: Prototype it.
6270         * scan_decls.c (scan_decls): Use it to inspect token names.
6271         * fix-header.c (read_scan_file): Likewise.  Set system_header_p on
6272         the file being run through the preprocessor.
6273         (check_macro_names): Provide length of token to cpp_defined.
6274
6275         * Makefile.in: Remove stale warning message.
6276
6277         * cppfiles.c (redundant_include_p): Provide length of token to
6278         cpp_defined.
6279         * cpphash.c (_cpp_make_hashnode, _cpp_lookup_slot): Hash
6280         values are unsigned int.
6281         (_cpp_lookup, _cpp_lookup_slot): Do not calculate the length.
6282         (_cpp_lookup_slot): Do not calculate the hash, either.
6283         * cpphash.h: Update prototypes.
6284         * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert):
6285         Hashes are unsigned int.  Calculate hash here, pass by value
6286         to _cpp_lookup_slot.
6287
6288 2000-04-30  Bernd Schmidt  <bernds@cygnus.co.uk>
6289
6290         * simplify-rtx.c (check_value_useless): Delete function.
6291         (discard_useless_locs): Don't call it; manage N_USELES_VALUES counter
6292         by hand.
6293         (cselib_invalidate_regno): Likewise.
6294         (cselib_invalidate_mem_1): Likewise.
6295         (references_value_p): Recognize useless values by the fact that they
6296         have no locations.
6297         (discard_useless_values): Likewise.
6298         (cselib_record_set): This may turn a useless value
6299         into a useful one.
6300
6301 2000-04-30  Richard Henderson  <rth@cygnus.com>
6302
6303         * config/d30v: New port.
6304
6305         * configure.in (d30v-*): Set fp format.
6306         * configure: Rebuild.
6307
6308 2000-04-30  Richard Henderson  <rth@cygnus.com>
6309
6310         * ifcvt.c: New file.
6311         * Makefile.in (OBJS): Add it.
6312         (ifcvt.o): New target.
6313         * jump.c (jump_optimize_1): Remove all code related to if-conversion,
6314         and conditional arithmetic.
6315         (find_insert_position): Remove.
6316         * timevar.def (TV_IFCVT, TV_IFCVT2): New.
6317         * toplev.c (DFI_ce, DFI_ce2): New.
6318         (dump_file): Add ce and ce2 dumps.
6319         (rest_of_compilation): Run if_convert a couple o times.  Set
6320         cse_not_expected after cse2.  Don't set no_new_pseudos until
6321         after sched1 or recompute_reg_usage.
6322
6323 2000-04-30  Richard Henderson  <rth@cygnus.com>
6324
6325         * config/alpha/t-crtbe (crtbegin.o): Add "-I.".
6326         (crtend.o, crtbeginS.o, crtendS.o): Likewise.
6327
6328 2000-04-30  Richard Henderson  <rth@cygnus.com>
6329
6330         * flow.c (struct reg_cond_life_info): New.
6331         (struct propagate_block_info): Add reg_cond_dead and reg_cond_reg.
6332         (init_propagate_block_info): Initialize them.
6333         (free_propagate_block_info): Destruct them.
6334         (mark_set_1): Consider conditional life before killing a register.
6335         (mark_regno_cond_dead): New.
6336         (free_reg_cond_life_info): New.
6337         (flush_reg_cond_reg_1, flush_reg_cond_reg): New.
6338         (ior_reg_cond, not_reg_cond, nand_reg_cond): New.
6339         (mark_used_reg): Record conditional life.
6340
6341         * haifa-sched.c (schedule_insns): Disable death counting
6342         sanity check for HAVE_conditional_execution.
6343
6344 2000-04-30  Richard Henderson  <rth@cygnus.com>
6345
6346         * Makefile.in (TIMEVAR_H): New.
6347         (ggc-simple.o, ggc-page.o, toplev.o, timevar.o): Use it.
6348         (timevar.h): Remove rule.
6349
6350 2000-04-29  Richard Henderson  <rth@cygnus.com>
6351
6352         * config/alpha/crtend.asm: Use C comments instead of #.
6353         * config/alpha/crtbegin.asm: Likewise.  Mark __dso_handle hidden.
6354
6355         * config/alpha/elf.h (SELECT_SECTION): Treat CONSTRUCTOR like VAR_DECL.
6356
6357 2000-04-29  Zack Weinberg  <zack@wolery.cumb.org>
6358
6359         * cpphash.h (enum node_type: Take out T_MCONST.
6360         (union hashval): Move into struct hashnode.
6361         (struct hashnode): Pack tighter.  Remove file, line, col
6362         members.
6363         * cpphash.c: Constify most of the macro-definition structures.
6364         (struct definition): Replace by struct object_defn
6365         and struct funct_defn.  Put file, line, column information
6366         here.  All users updated to match.
6367         (_cpp_create_definition, _cpp_macroexpand): Remove special
6368         case for #define WORD OTHERWORD.
6369         * cpplib.c (do_undef): Remove T_MCONST case.
6370
6371         * cpphash.h: Move struct reflist, struct definition, and the
6372         DEFINITION typedef to cpphash.c.  Use 'struct definition *' in
6373         union hashval.  _cpp_free_definition takes a HASHNODE pointer.
6374         * cpphash.c (_cpp_free_definition): Free data pointed to by
6375         MCONST, XCONST, MACRO, and FMACRO nodes properly.
6376         (_cpp_create_definition, del_HASHNODE): Just call
6377         _cpp_free_definition to clear out a hashnode.
6378         * cpplib.c (do_pragma_poison): Likewise.
6379
6380 Sat Apr 29 12:25:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
6381
6382         * config/mn10300/mn10300.h (FIRST_DATA_REGNUM,
6383         LAST_DATA_REGNUM, FIRST_ADDRESS_REGNUM, LAST_ADDRESS_REGNUM,
6384         FIRST_EXTENDED_REGNUM, LAST_EXTENDED_REGNUM): New macros.
6385         (REGNO_SP_P): Redefine in terms of STACK_POINTER_REGNUM.
6386         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_EXTENDED_P,
6387         REGNO_AM33_P): Redefine in terms of the new macros.
6388         (CONDITIONAL_REGISTER_USAGE, REGNO_REG_CLASS): Likewise.
6389         (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
6390         STRUCT_VALUE): Likewise.
6391         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM,
6392         ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Likewise.  Moved.
6393
6394 Sat Apr 29 01:18:45 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6395
6396         * regmove.c (struct record_stack_memrefs_data): New.
6397         (record_stack_memrefs): New function.
6398         (combine_stack_adjustments_for_block): Use it.
6399
6400 Sat Apr 29 01:15:27 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6401
6402         * calls.c (calls_function_1):  Propertly handle TREE_LIST expressions;
6403         use special_function_p to detect alloca.
6404
6405 Fri Apr 28 16:30:33 2000  Marc Espie <espie@cvs.openbsd.org>
6406
6407         * gcc.texi: Fixes for makeinfo 4.0 --html.
6408
6409 2000-04-28  Zack Weinberg  <zack@wolery.cumb.org>
6410
6411         * pcp.h: Delete file.
6412
6413 2000-04-28  Kazu Hirata  <kazu@hxi.com>
6414
6415         * h8300.c (function_epilogue): Clean up flags when the last insn
6416         in a function is a barrier.
6417
6418 2000-04-28  Chris Demetriou  <cgd@sibyte.com>
6419
6420         * configure.in (sparc-hal-solaris2*): protect [] glob from
6421         my expansion.
6422         (mips*-*-ecoff*, mips*-*-elf*, mips*-*-*): use MASK_ defines
6423         rather than hard-coded constants in target_cpu_default2.
6424         * configure: Regenerate.
6425
6426 2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
6427
6428         * tree.c (get_callee_fndecl): Extract the initial value from
6429         a readonly decl.
6430
6431 2000-04-28  Richard Henderson  <rth@cygnus.com>
6432
6433         * varasm.c (record_constant_1): Record the CODE_LABEL when
6434         taking the address of a LABEL_REF.
6435
6436 2000-04-28  Richard Henderson  <rth@cygnus.com>
6437             Jan Hubicka  <jh@suse.cz>
6438
6439         * calls.c (combine_pending_stack_adjustment_and_call): Return the
6440         adjustment; don't do the stack adjust.
6441         (expand_call): Call compute_argument_block_size right before
6442         allocating the block; update comment; don't do alignment sanity
6443         checking for sibling call; use args_size instead of
6444         unadjusted_args_size before args_size is adjusted.  Use
6445         combine_pending_stack_adjustment_and_call to compute stack adjust
6446         for must_preallocate case.
6447
6448         * expr.c (push_block): Remove shadow `temp' in inner scope.
6449
6450 2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
6451
6452         * toplev.c (rest_of_compilation): Call
6453         note_deferral_of_defined_inline_function even if the function
6454         can't be inlined.
6455
6456 2000-04-28  Scott Bambrough  <scottb@netwinder.org>
6457
6458         * cpplex.c (_cpp_scan_line): Fix buffer overwrite.
6459
6460 2000-04-28  Richard Henderson  <rth@cygnus.com>
6461
6462         * toplev.c (rest_of_type_compilation): Fix sdb TIMEVAR typo.
6463
6464 2000-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6465
6466         * timevar.c (init_timevar): DeANSIfy function definition.
6467
6468 2000-04-27  Alex Samuel  <samuel@codesourcery.com>
6469
6470         * Makefile.in (timevar.o): Depend on flags.h.
6471         * timevar.c (unused_stack_instances): New variable.
6472         (timevar_push): Take a timevar_stack_def from
6473         unused_stack_instances if available.
6474         (timevar_pop): Push the popped timevar_stack_def onto
6475         unused_stack_instances.
6476         (TIMEVAR_ENABLE): New macro.
6477         (timevar_def): Make standalone a 1-bit field.  Add field used.
6478         (get_time): Rename parameter to now.  Return after clearing it if
6479         not TIMEVAR_ENABLE.
6480         (init_timevar): Do nothing if not TIMEVAR_ENABLE.
6481         (timevar_pop): Likewise.
6482         (timevar_stop): Likewise.
6483         (timevar_push): Likewise.  Mark the timing variable as used.
6484         (timevar_start): Likewise.
6485         (timevar_print): Do nothing if not TIMEVAR_ENABLE.  Don't print
6486         timevars that were never used.
6487
6488 2000-04-27  Mark Mitchell  <mark@codesourcery.com>
6489
6490         * c-common.c (c_apply_type_quals_to_decl): REFERENCE_TYPES are
6491         always TREE_READONLY.
6492
6493 2000-04-27  Ulrich Drepper  <drepper@cygnus.com>
6494
6495         * i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Generate mem reference
6496         for call instruction with mode QImode.
6497
6498 2000-04-27  Alex Samuel  <samuel@codesourcery.com>
6499
6500         * Makefile.in (OBJS): Add timevar.o.
6501         (toplev.o): Depend on timevar.h.
6502         (ggc-simple.o): Likewise.
6503         (ggc-page.o): Likewise.
6504         (timevar.o): New rule.
6505         (timevar.h): New rule.
6506
6507         * timevar.h: New file.
6508         * timevar.c: Likewise.
6509         * timevar.def: Likewise.
6510
6511         * toplev.h (gc_time, parse_time, varconst_time): Remove.
6512         * toplev.c: Use timevar_push and timevar_pop instead of TIMEVAR
6513         throughout.
6514         (TIMEVAR): Remove macro.
6515         (gc_time, parse_time, varconst_time, integration_time, jump_time,
6516         cse_time, gcse_time, loop_time, cse2_time, branch_prob_time,
6517         flow_time, combine_time, regmove_time, sched_time,
6518         local_alloc_time, global_alloc_time, flow2_time, peephole2_time,
6519         sched2_time, dbr_sched_time, reorder_blocks_time,
6520         rename_registers_time, shorten_branch_time, stack_reg_time,
6521         to_ssa_time, from_ssa_time, final_time, symout_time, dump_time,
6522         all_time): Remove.
6523         (compile_file): Don't initialize time variables.  Call
6524         init_timevar and start TV_TOTAL timer.  Call timevar_print instead
6525         of many calls to print_time.
6526         (rest_of_compilation): Add timing for reload_cse_regs.
6527         (get_run_time): Removed to timevar.c.
6528         (print_time): Likewise.
6529         (get_run_time): Implement using TV_TOTAL time variable.
6530         (print_time): Get total run time from get_run_time.
6531         * ggc-page.c (ggc_collect): Push and pop TV_GC instead of
6532         computing elapsed time explicitly.
6533         * ggc-simple.c (ggc_collect): Likewise.
6534         (gc_time): Remove declaration.
6535
6536 2000-04-27  Mark Mitchell  <mark@codesourcery.com>
6537
6538         * calls.c (combine_pending_stack_adjustment_and_call): New function.
6539         (expand_call): Use it.
6540
6541 2000-04-27  Jan Hubicka  <jh@suse.cz>
6542
6543         * flow.c (mark_set_1):  Handle MEMs in ZERO_EXTRACT/SIGN_EXTRACT
6544         fields.
6545
6546 Thu Apr 27 12:47:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
6547
6548         * config/mn10300/mn10300.md (movhi): Simplify.  Prefer data
6549         registers.
6550
6551 Thu Apr 27 17:33:05 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6552
6553         * function.c (epilogue_done): Pass whole insn to record_insns.
6554
6555 Thu Apr 27 16:55:28 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6556
6557         * cse.c (CSE_ADDRESS_COST): Remove.
6558         (find_best_addr): Add new parameter "MODE", use address_cost instead
6559         of CSE_ADDRESS_COST
6560         (address_cost): New.
6561         (fold_rtx): Update call of find_best_addr.
6562         * rtl.h (address_cost): Declare.
6563         * loop.c (general_induction_var): Add new parameter "MODE", use
6564         address_cost instead of ADDRESS_COST
6565         (init_loop): Use address_cost instead of ADDRESS_COST.
6566         (check_insn_for_givs): Update call of general_induction_var.
6567         (find_mem_givs): Likewise.
6568         (consec_sets_giv): Likewise.
6569         * config/i386/i386.h (ADDRESS_COST): Call ix86_address_cost.
6570         * i386.c (ix86_address_cost): New.
6571         * i386-protos.h (ix86_address_cost): Declare.
6572
6573 Thu Apr 27 11:45:16 2000  Alexandre Oliva  <aoliva@cygnus.com>
6574
6575         * config/mn10300/mn10300.md (movqi): Simplify.  Prefer data
6576         registers.
6577
6578 Thu Apr 27 16:11:00 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6579
6580         * expr.c (store_expr): Use clear_storage instead of direct memset
6581         libcall.
6582
6583 Thu Apr 27 10:36:51 2000  Alexandre Oliva  <aoliva@cygnus.com>
6584
6585         * config/mn10300/mn10300.c (mn10300_address_cost): Test
6586         ASHIFT, AND and LABEL_REF.
6587
6588 Thu Apr 27 15:08:46 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6589
6590         * invoke.texi (-foptimize-sibling-calls): Fix.
6591
6592 Thu Apr 27 14:54:22 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6593
6594         * loop.c (load_mems)  Don't use hard registers for the hoisting.
6595
6596         * unroll.c (unroll_loop): Avoid overflow in the n_iterations
6597         calculation; rename const_equiv array in the preconditioning code
6598         from loop_unroll to loop_unroll_precondition
6599
6600 2000-04-27  Richard Henderson  <rth@cygnus.com>
6601
6602         * flow.c (struct propagate_block_info): Remove new_dead, new_live;
6603         add new_set.
6604         (propagate_one_insn): Clear it.  Don't update reg_live here.
6605         (init_propagate_block_info): Update for pbi member changes.
6606         (free_propagate_block_info): Likewise.
6607         (mark_set_1): Know that zero_extract, sign_extract, and
6608         strict_low_part don't kill their argument.  Alter hard subregs.
6609         Update new_set for non-CLOBBER sets.  Update reg_live.
6610         (find_auto_inc): Update reg_live, not new_dead.
6611         (mark_used_reg): Update reg_live, not new_live.  Examine new_set
6612         to determine if the reg in question was set this insn.  Only update
6613         reg info with PROP_REG_INFO.
6614
6615 2000-04-26  Richard Henderson  <rth@cygnus.com>
6616
6617         * flow.c (allocate_reg_life_data): Set max_regno here ...
6618         (life_analysis): ... not here.
6619
6620         * flow.c (calculate_global_regs_live): Force stack pointer
6621         live at end.
6622
6623 2000-04-26  Richard Henderson  <rth@cygnus.com>
6624
6625         * jump.c (redirect_exp_1): Rework from old redirect_exp.  Never
6626         commit change group changes.
6627         (invert_exp_1): Similarly.
6628         (redirect_exp, invert_exp): Use them.
6629         (redirect_jump_1): New.
6630         (invert_jump_1): New.
6631         (jump_optimize_1): Remove code subsumed by condexec.c.
6632         * rtl.h (invert_jump_1, redirect_jump_1): Declare.
6633
6634 2000-04-26  Richard Henderson  <rth@cygnus.com>
6635
6636         * rtlanal.c (dead_or_set_regno_p): Use find_regno_note.
6637
6638         * genconfig.c (main): Set all HAVE_foo to 1.
6639
6640         * graph.c (node_data): Use GET_NOTE_INSN_NAME instead of local array.
6641
6642 2000-04-26  Alex Samuel  <samuel@codesourcery.com>
6643
6644         * invoke.texi: Document -fssa flag.
6645
6646 2000-04-26  Richard Henderson  <rth@cygnus.com>
6647
6648         * flow.c (count_reg_sets_1): Remove.
6649         (count_reg_sets, count_reg_references): Remove.
6650         (recompute_reg_usage): Implement with update_life_info.
6651         Reallocate life data.
6652
6653 2000-04-26  Richard Henderson  <rth@cygnus.com>
6654
6655         * flow.c (update_life_info): Consider blocks null to mean the
6656         universal set.
6657         (calculate_global_regs_live): Likewise.
6658         (life_analysis): Do that instead of collecting all_blocks.
6659
6660 2000-04-26  Richard Henderson  <rth@cygnus.com>
6661
6662         * flow.c (tidy_fallthru_edge): Don't delete the jump when it's
6663         a still-valid conditional jump.
6664
6665 2000-04-26  Richard Henderson  <rth@cygnus.com>
6666
6667         * jump.c (invert_jump): Always invert REG_BR_PROB.  Do it correctly.
6668
6669         * bb-reorder.c (reorder_basic_blocks): Don't run estimate_probability.
6670         * flow.c (calculate_loop_depth): Remove.
6671         * output.h (calculate_loop_depth): Don't declare.
6672         * toplev.c (rest_of_compilation): Expand calculate_loop_depth
6673         inline; run estimate_probability at the same time.
6674
6675 2000-04-26  Neil Booth  <NeilB@earthling.net>
6676
6677         * cpplib.h: "~=" is not a single pp-token.
6678         * cpplex.c: Correct commentary.
6679
6680 2000-04-26  Richard Henderson  <rth@cygnus.com>
6681
6682         * flow.c (mark_set_1): New arguments code and flags; update all
6683         callers.  Track regno_first and regno_last; do HARD_REGNO_NREGS
6684         test in one place.  Tidy flags tests.  Don't bias REG_N_REFS by
6685         loop_depth when optimizing for size.  Do new_dead update after
6686         emitting REG_UNUSED notes.  Merge mark_set_reg code.
6687         (mark_set_reg): Remove.
6688         (propagate_one_insn): Use mark_set_1 for call-clobbered registers;
6689         arrange to not emit REG_UNUSED notes.
6690
6691 2000-04-26  Richard Henderson  <rth@cygnus.com>
6692
6693         * flow.c (find_auto_inc): Use pbi->bb instead of BLOCK_FOR_INSN.
6694         * ssa.c (convert_from_ssa): Don't run compute_bb_for_insn.
6695
6696 2000-04-26  Richard Henderson  <rth@cygnus.com>
6697
6698         * flow.c (propagate_one_insn): Break out from propagate_block.
6699         (init_propagate_block_info): Likewise.
6700         (free_propagate_block_info): Likewise.
6701         (propagate_block): Use them.  Export.
6702         * basic-block.h: Declare them all.
6703
6704 2000-04-26  Richard Henderson  <rth@cygnus.com>
6705
6706         * basic-block.h (life_analysis): Declare here ...
6707         * output.h: ... not here.
6708         * flow.c (life_analysis): Remove nregs parameter; replace
6709         remove_dead_code with flags.  Remove ssa dead code check.
6710         Only init alias analysis if we'll use it.
6711         * reg-stack.c (reg_to_stack): Update life_analysis arguments.
6712         * ssa.c (convert_to_ssa): Likewise.
6713         (convert_from_ssa): Likewise.
6714         * toplev.c (rest_of_compilation): Likewise.
6715
6716 2000-04-26  Richard Henderson  <rth@cygnus.com>
6717
6718         * flow.c (flow_delete_block): Rename from delete_block.  Export.
6719         * basic-block.h (flow_delete_block): Declare.
6720
6721 2000-04-26  David S. Miller  <davem@redhat.com>
6722
6723         * optabs.c (emit_libcall_block): Verify insns with INSN_P before
6724         taking a PATTERN of it.
6725
6726 2000-04-26  <NeilB@earthling.net>
6727
6728         * cpplex.c (spell_other, spell_char): Remove.
6729         (SPELL_CHAR): New.
6730         (token_spelling, trigraph_map): Use unsigned chars.
6731         (_cpp_lex_line): Tidy up the switch statement.
6732         * cpplib.h: Implement spell_char with spell_string.
6733         (C): New.
6734
6735 2000-04-26  <RodneyBrown@pmsc.com>
6736
6737         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Warning removal.
6738         * pa/pa64-regs.h (HARD_REGNO_MODE_OK): Warning removal.
6739
6740 2000-04-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6741
6742         * dwarf2out.c (dw_cfi_oprnd_struct, dw_fde_struct, add_fde_cfi,
6743         reg_save, dwarf2out_frame_debug_expr, dwarf2out_def_cfa,
6744         dwarf2out_window_save, dwarf2out_args_size, dwarf2out_reg_save,
6745         dwarf2out_return_save, dwarf2out_return_reg,
6746         dwarf2out_stack_adjust, dwarf2out_frame_debug, primary_filename,
6747         add_AT_lbl_id, add_AT_lbl_offset, type_tag, decl_start_label,
6748         gen_compile_unit_die, dwarf2out_init): Constify a char*.
6749
6750         * dwarf2out.h (dwarf2out_init): Likewise.
6751
6752         * dwarfout.c (filename_entry, primary_filename, last_filename,
6753         type_tag, output_compile_unit_die, dwarfout_init): Likewise.
6754
6755         * tree.h (dwarf2out_def_cfa, dwarf2out_window_save,
6756         dwarf2out_args_size, dwarf2out_reg_save, dwarf2out_return_save,
6757         dwarf2out_return_reg): Likewise.
6758
6759 2000-04-26  Andreas Jaeger  <aj@suse.de>
6760
6761         * extend.texi (Function Attributes): Fix description of pure
6762         attribute.
6763
6764 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
6765
6766         * integrate.c (output_inline_function): Do clear DECL_DEFER_OUTPUT
6767         before calling rest_of_compilation.
6768
6769 2000-04-26  Andreas Jaeger  <aj@suse.de>
6770
6771         * config/mips/linux.h: Remove erroneous commit of #if 0/#endif in
6772         last patch.
6773
6774 2000-04-25  Richard Henderson  <rth@cygnus.com>
6775
6776         * cse.c (cse_insn): Emit barrier after unconditional jump.
6777
6778         * calls.c (expand_call): Disable tail call generation once
6779         rtx_equal_function_value_matters is false.
6780
6781         * reg-stack.c (convert_regs_1): Treat EDGE_ABNORMAL_CALL edges
6782         like EDGE_EH edges.
6783
6784 2000-04-25  Jason Merrill  <jason@casey.cygnus.com>
6785
6786         * dwarf2out.c (add_bound_info): Don't crash on an unexpanded SAVE_EXPR.
6787
6788         * dwarfout.c (output_decl): Ignore NAMESPACE_DECLs.
6789
6790         * dwarf2out.c (gen_subprogram_die): The class-scope declaration DIE
6791         is the primary DIE for a member function.
6792         (gen_decl_die): Call set_decl_origin_self here.
6793         * dwarfout.c (output_decl): And here.
6794         * integrate.c (output_inline_function): Not here.
6795         Don't clear DECL_INLINE until after calling rest_of_compilation.
6796         (set_decl_origin_self): No longer static.
6797         * tree.h: Add prototype.
6798         * toplev.c (note_deferral_of_defined_inline_function): Only write
6799         out abstract instance for actual inlines.
6800
6801 2000-04-25  Alexandre Oliva  <aoliva@cygnus.com>
6802
6803         * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Return
6804         EXTENDED_REGS only if TARGET_AM33.
6805         * config/mn10300/mn10300.md (movsi, addsi): Avoid exposing
6806         SP_REGS to register allocation and reloading unless absolutely
6807         necessary.
6808         (movsi3): Remove special-case of adding non-constants to SP.
6809
6810 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6811
6812         * aclocal.m4 (gcc_AC_NEED_DECLARATION): This macro now requires
6813         INCLUDES to search and does not provide any of its own.  Also it
6814         now accepts optional ACTION-IF-NEEDED and ACTION-IF-NOT-NEEDED
6815         parameters.  Also it does not call AC_DEFINE.
6816         (gcc_AC_NEED_DECLARATIONS): Likewise.  Also this macro now calls
6817         AC_DEFINE and provides for automatic entries for autoheader.
6818         (gcc_AC_FUNC_PRINTF_PTR): Cleanup C code in test.
6819
6820         * configure.in (gcc_AC_NEED_DECLARATIONS): Save and restore CFLAGS
6821         so we can pass -I flags and include gansidecl.h/system.h in this
6822         test.
6823
6824         * acconfig.h: Delete all NEED_DECLARATION_* entries.
6825
6826 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6827
6828         * acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
6829         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
6830         ENABLE_GC_ALWAYS_COLLECT): Delete entries.
6831
6832         * configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
6833         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
6834         ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
6835         for these macros.  Clean up spacing and linewraps.
6836
6837 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
6838
6839         * calls.c (expand_call): Use get_callee_fndecl.
6840
6841         * print-tree.c (print_node): Print the chain of an _EXPR.
6842
6843 Tue Apr 25 16:16:04 2000  Andrew MacLeod  <amacleod@cygnus.com>
6844                           Jim Wilson  <wilson@cygnus.com>
6845                           Andrew Haley  <aph@cygnus.com>
6846
6847         * config/ia64/crtbegin.asm: Add IA-64 unwind support.  Correct alloc
6848         and gp save/restore problems.
6849         * config/ia64/crtend.asm: Add IA-64 unwind support.
6850         * config/ia64/ia64.c (ia64_compute_frame_size): Don't include pr_size
6851         in fr_pad_size calculation.
6852         (save_restore_insns): Move PR save area.  Correct uses of
6853         RTX_FRAME_RELATED_P.
6854         (ia64_expand_prologue): Mark alloc with RTX_FRAME_RELATED_P.
6855         (ia64_expand_epilogue): Add eh_epilogue support.
6856         (ia64_function_prologue): Emit .prologue directive.
6857         (ia64_init_machine_status, ia64_mark_machine_status): New functions.
6858         (ia64_override_options): Set init_machine_status and
6859         mark_machine_status.
6860         (rtx_needs_barrier): Handle bsp reads and writes.
6861         (spill_offset, sp_offset, spill_offset_emitted, tmp_reg, tmp_saved):
6862         New static variables.
6863         (process_set, process_for_unwind_directive): New functions.
6864         * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR, ASM_OUTPUT_XDATA_SHORT,
6865         ASM_OUTPUT_XDATA_INT, ASM_OUTPUT_XDATA_DOUBLE_INT, ASM_OUTPUT_EH_CHAR,
6866         ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT, ASM_OUTPUT_EH_DOUBLE_INT): New
6867         macros.
6868         (EH_FRAME_SECTION_ASM_OP): Define to IA_64.unwind section.
6869         (IA64_UNWIND_INFO, HANDLER_SECTION, IA64_UNWIND_EMIT): Define.
6870         (struct machine_function): Define.
6871         * config/ia64/ia64.md (bsp_value, set_bsp, eh_epilogue): New patterns.
6872
6873 2000-04-25  Bruce Korb  <bkorb@gnu.org>
6874
6875         * fixinc/Makefile.in: make the removal of old programs more
6876         robust
6877         * fixinc/mkfixinc.sh: use the two new targets in the Makefile:
6878         install-bin and install-sh
6879
6880 2000-04-25  Nick Clifton  <nickc@cygnus.com>
6881
6882         * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): If not
6883         defined, define to return zero.
6884         (function_cannot_inline_p): If a function has any target
6885         specific attributes, then use the macro
6886         FUNCTION_ATTRIBUTE_INLINABLE_P to allow the target to decide
6887         whether it can be inlined.  If it cannot, issue a suitable
6888         explanation.
6889
6890         * tm.texi: Add a new node 'Inlining' to document the new macro
6891         FUNCTION_ATTRIBUTE_INLINABLE_P.
6892
6893 2000-04-25  Zack Weinberg  <zack@wolery.cumb.org>
6894
6895         * cpplib.h (struct cpp_buffer): Add 'mapped' flag; fix
6896         commentary.
6897
6898 2000-04-25  Neil Booth  <NeilB@earthling.net>
6899
6900         Restore previous patch, plus the following fixes:
6901
6902         * cpphash.c (_cpp_create_definition): Test PREV_WHITESPACE in
6903         flags, not CPP_OPEN_PAREN.
6904         * cpplex.c (expand_token_space, init_token_list,
6905         cpp_free_token_list): Put the dummy token at list->tokens[-1].
6906         (_cpp_lex_line, _cpp_lex_file): token list is 0-based.
6907
6908 Tue Apr 25 14:06:40 2000  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6909
6910         * config/i386/freebsd.h (INT_ASM_OP): Define.
6911
6912 Tue Apr 25 14:51:07 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6913
6914         * loop.c (strength_reduce): Fix typo in the last checkin.
6915
6916 Tue Apr 25 07:33:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6917
6918         * stor-layout.c (finalize_record_size): Simplify to use existing
6919         functions.
6920         (compute_record_mode): No longer static.
6921         * tree.h (compute_record_mode): New declaration.
6922
6923 2000-04-25  Neil Booth  <NeilB@earthling.net>
6924
6925         * Revert my patch below until cause of build failures
6926         determined.
6927
6928 2000-04-25  Richard Henderson  <rth@cygnus.com>
6929
6930         * combine.c (combine_instructions): Add missing argument
6931         to try_combine.
6932
6933         * toplev.c (rest_of_compilation): Delay sibcall optimization
6934         until after emit_eh_context.
6935
6936 2000-04-24  Nick Clifton  <nickc@redhat.com>
6937
6938         * combine.c (combine_instructions): Do not try to combine a
6939         sequence of insns when the second insn has been replaced by a
6940         note.
6941
6942 Mon Apr 24 17:34:18 2000  Mumit Khan  <khan@xraylith.wisc.edu>
6943
6944         * gcc.c (load_specs): New static function.
6945         (read_specs): Use it.
6946
6947         * gcc.c (lookup_compiler): Make multiple passes for case
6948         insensitive filesystems.
6949
6950 2000-04-24  Neil Booth  <NeilB@earthling.net>
6951
6952         * cpphash.c: replace HSPACE_BEFORE with PREV_WHITESPACE.
6953         * cpphash.h (_cpp_check_directive): new.
6954         * cpplex.c (handle_newline, cpp_free_token_list,
6955         init_trigraph_map, trigraph_ok, trigraph_replace,
6956         backslash_start, skip_block_comment, skip_line_comment,
6957         skip_whitespace, parse_name, parse_number, parse_string,
6958         copy_comment, _cpp_lex_line, spell_char, spell_string,
6959         spell_comment, spell_name, spell_other, _cpp_lex_file,
6960         _cpp_output_list): new.
6961         (expand_name_space): take length argument.
6962         (init_token_list): add comment list initialisation.
6963         (cpp_scan_line): use auto_expand_name_space.  PREV_WHITESPACE
6964         instead of HSPACE_BEFORE.
6965
6966         * cpplib.c (_cpp_check_directive): new
6967         * cpplib.h (cpp_name, PREV_WHITESPACE, PREV_COMMENT,
6968         DIGRAPH, UNSIGNED_INT, TOK_NAME): new.
6969         (HSPACE_BEFORE): delete.
6970         (TTYPE_TABLE): rearrange.
6971         (struct cpp_toklist): update.
6972
6973 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6974
6975         * aclocal.m4 (gcc_AC_HEADER_STRING, gcc_AC_FUNC_PRINTF_PTR,
6976         gcc_AC_C_VOLATILE, gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG): Use the three
6977         argument form of AC_DEFINE.
6978
6979         * configure.in (DEFAULT_LINKER, DEFAULT_ASSEMBLER,
6980         HAVE_INTTYPES_H, PACKAGE, VERSION, ENABLE_WIN32_REGISTRY,
6981         WIN32_REGISTRY_KEY, HAVE_GAS_SUBSECTION_ORDERING, HAVE_GAS_WEAK,
6982         HAVE_GAS_HIDDEN, HAVE_AS_REGISTER_PSEUDO_OP, AS_SPARC64_FLAG,
6983         HAVE_AS_OFFSETABLE_LO10, ENABLE_NEW_GXX_ABI): Likewise.
6984
6985         * acconfig.h: Delete stubs made redundant by 3-arg AC_DEFINE.
6986
6987 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6988
6989         * Makefile.in (GCC_FOR_TARGET, GCC_CFLAGS, LIBGCC2_INCLUDES,
6990         deduced.h): Use -isystem, not -I, for including system headers.
6991
6992 2000-04-24  Nick Clifton  <nickc@cygnus.com>
6993
6994         * config/fr30/fr30.md (addsi3): Do not use small add instruction if
6995         the source register is the frame pointer or arg pointer.
6996         (addsi3_small_int): Disallow if source register is the frame
6997         pointer or arg pointer.
6998
6999 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7000
7001         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Delete redundant
7002         call to AC_MSG_RESULT.
7003
7004 2000-04-24  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
7005
7006         * invoke.texi: Correct grammatical errors, document
7007         -fno-gnu-keywords as identical to -fno-asm for C++.
7008
7009 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7010
7011         * aclocal.m4: (GCC_HEADER_STRING, GCC_NEED_DECLARATION,
7012         GCC_NEED_DECLARATIONS, GCC_FUNC_VFPRINTF_DOPRNT,
7013         GCC_FUNC_PRINTF_PTR, GCC_PROG_LN_S, GCC_PROG_LN, GCC_C_VOLATILE,
7014         AC_GCC_C_LONG_DOUBLE, GCC_FUNC_MKDIR_TAKES_ONE_ARG,
7015         EGCS_PROG_INSTALL): Rename autoconf macros with prefix gcc_AC_.
7016
7017         * configure.in (AC_GCC_C_LONG_DOUBLE, GCC_PROG_LN, GCC_PROG_LN_S,
7018         GCC_C_VOLATILE, EGCS_PROG_INSTALL, GCC_HEADER_STRING,
7019         GCC_FUNC_VFPRINTF_DOPRNT, GCC_FUNC_PRINTF_PTR,
7020         GCC_NEED_DECLARATIONS, GCC_FUNC_MKDIR_TAKES_ONE_ARG): Invoke with
7021         new macros names.
7022
7023 2000-04-24  Mumit Khan  <khan@xraylith.wisc.edu>
7024
7025         * c-pragma.c (push_alignment): Use BITS_PER_UNIT macro.
7026         (pop_alignment): Likewise.
7027         (handle_pragma_token): Likewise.
7028
7029 2000-04-24  Robert Lipe <robertlipe@usa.net>
7030
7031         * tree.h (tree_decl): Member `mode' now ENUM_BITFIELD.
7032
7033 2000-04-24  Hiroyuki Machida <machida@sm.sony.co.jp>
7034
7035         * combine.c (try_combine): Update reg_nonzero_bits of
7036         newi2pat before newpat.
7037
7038 Mon Apr 24 10:19:48 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7039
7040         * loop.c (strength_reduce): Simplify test to INSN_P.
7041         (record_giv): Attempt to simplify the add value, use CONSTANT_P
7042         expressions instead of CONST_INT.
7043         (express_from_1): Likewise.
7044
7045 2000-04-24  Mark Mitchell  <mark@codesourcery.com>
7046
7047         * regs.h (reg_n_max): Don't declare.
7048         * flow.c (reg_n_max): Don't define.
7049         * regclass.c (renumber): Don't initialize to zero.
7050         (regno_allocated): Likewise.
7051         (reg_n_max): Define.
7052         (allocate_reg_info): Don't initialize unnecessarily.
7053
7054 Mon Apr 24 00:21:36 2000  Jeffrey A Law  (law@cygnus.com)
7055
7056         * genattrtab.c (find_attr): Initialize unsigned_p, func_units_p
7057         and blockage_p in the newly allocated attribute.
7058
7059 Sun Apr 23 20:16:49 2000  Alexandre Oliva  <aoliva@cygnus.com>
7060
7061         * config/mn10300/mn10300.md (addsi): `inc4' on address
7062         registers does not modify cc, but `inc' on an extended
7063         register does.
7064
7065 Sun Apr 23 16:24:35 2000  Denis Chertykov  <denisc@overta.ru>
7066
7067         * reload.c (find_equiv_reg): Checks all valueno regs
7068         as a reload_reg_p regs.
7069
7070 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
7071
7072         * cpphash.c (collect_objlike_expansion): Add sanity check.
7073         (special_symbol): Remove case T_CONST, T_XCONST, T_MCONST.  If
7074         the buffer is the empty string, return.  Mark __DATE__ and
7075         __TIME__ as XCONST nodes, not MCONST.
7076         (_cpp_macroexpand): Avoid pushing an empty buffer.
7077         (funlike_macroexpand): Don't pop token_buffer here.
7078
7079 Sun Apr 23 18:37:53 2000  Alexandre Oliva  <aoliva@cygnus.com>
7080
7081         * config/mn10300/mn10300.h (REGNO_IN_RANGE_P): New macro.
7082         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P): New macros.
7083         (REGNO_EXTENDED_P, REGNO_AM33_P): New macros.
7084         (REGNO_OK_FOR_BASE_P): Define in terms of them.
7085         (REGNO_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P): Likewise.
7086         (REG_OK_FOR_BASE_P): Define in terms of the REGNO macro.
7087         (REG_OK_FOR_BIT_BASE_P, REG_OK_FOR_INDEX_P): Likewise.
7088
7089 Sun Apr 23 22:23:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7090
7091         * loop.c (simplify_giv_expr):  Be more agressive on simplifying
7092         constant MULT givs.
7093
7094 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
7095
7096         * cpphash.h (struct definition): Move file, line, col members...
7097         (struct hashnode): ... here.  Also add 'disabled' flag.
7098         (enum node_type): Add T_VOID, T_XCONST, T_FMACRO, and
7099         T_IDENTITY.  Remove T_DISABLED.
7100         Update prototypes.
7101
7102         * cpphash.c (_cpp_dump_definition): Split out dump_DEFINITION.
7103         (collect_expansion): Split into collect_objlike_expansion and
7104         collect_funlike_expansion.
7105         (_cpp_macroexpand): Split out scan_arguments, stringify, and
7106         funlike_macroexpand.
7107         (_cpp_compare_defs): Rename compare_defs, make static.
7108         (_cpp_make_hashnode): Initialize hp->disabled.
7109         (macro_cleanup): Adjust for new token types.  Clear
7110         m->disabled.
7111         (_cpp_create_definition): Move code here to determine what
7112         sort of macro it is, and code to check for redefinitions, from
7113         do_define.  Implement a few simple cases without creating a
7114         full DEFINITION.
7115         (_cpp_macroexpand, special_symbol, _cpp_dump_definition):
7116         Handle the simple cases.
7117         (push_macro_expansion): Set buf->has_escapes and hp->disabled
7118         here.
7119
7120         * cppinit.c (builtin_array): Change MCONST to XCONST
7121         everywhere.
7122         * cpplex.c (maybe_macroexpand): Handle IDENTITY macros here;
7123         fix check for disabled and function-like macros.
7124         * cpplib.c (do_define): Move most logic to
7125         _cpp_create_definition.
7126         (do_undef): Handle new special token types.
7127
7128 Sun Apr 23 14:27:44 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7129
7130         * loop.c (maybe_eliminate_biv_1): Use GET_CODE (x) == CONST_INT instead
7131         of CONSTANT_P for mult_val; always use validate_change to update insn.
7132
7133 2000-04-22  Zack Weinberg  <zack@wolery.cumb.org>
7134
7135         * cpphash.c (trad_stringify, add_pat): New functions.
7136         (collect_expansion): Restore support for -traditional syntax.
7137         Use trad_stringify and add_pat.
7138         (_cpp_macroexpand): Restore support for -traditional semantics.
7139         * cpplex.c (_cpp_scan_line): Don't change space_before if we
7140         get a COMMENT token.
7141         (_cpp_lex_token): Provide COMMENT tokens to caller if
7142         traditional and parsing_define_directive.
7143         (skip_comment): Warn about // comments if -Wtraditional.
7144         * cpplib.c (do_define): Fix typo.  Create EMPTY nodes with
7145         proper node type.
7146         (do_undef): Don't warn about undefining EMPTY nodes.
7147
7148 Sat Apr 22 22:35:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7149
7150         * loop.c (strength_reduce): Fix biv removal code.
7151
7152 2000-04-22  Richard Henderson  <rth@cygnus.com>
7153
7154         * predict.c (estimate_probability): Examine both sides of
7155         a branch for no exits.  Use 90% not 50% for predict taken.
7156         Reorg for one copy of note generation code.
7157
7158 2000-04-22  Richard Henderson  <rth@cygnus.com>
7159
7160         * flow.c (mark_used_reg): Hack around rs6000 eliminable pic reg.
7161
7162 2000-04-22  Richard Henderson  <rth@cygnus.com>
7163
7164         * diagnostic.c (init_output_buffer): Don't initialize format_args.
7165         (output_clear): Likewise.
7166         (output_printf): Use va_copy.
7167         (vline_wrapper_message_with_location): Likewise.
7168         (v_message_with_decl): Likewise.
7169         (line_wrapper_printf): VA_START infor buffer.format_args directly.
7170         * system.h (va_copy): Provide default implementation.
7171
7172 2000-04-22  Richard Henderson  <rth@cygnus.com>
7173
7174         * predict.c (expected_value_to_br_prob): Don't bomb if op1 of
7175         the collected condition is not a constant.
7176
7177 2000-04-22  Gabriel Dos Reis  <gdr@codesourcery.com>
7178
7179         * diagnostic.h: New file.
7180
7181         * Makefile.in (diagnostic.o): Depends on diagnostic.h
7182
7183         * diagnostic.c: Tweak.  Rationalize the output logic.  Adjust
7184         various function prototypes.
7185         (diagnostic.h): #include.
7186         (struct output_buffer): Move into diagnostic.h.
7187         (get_output_prefix): Rename to output_get_prefix.  Export.
7188         (init_output_buffer): Export. Break out.  Ajust intialization.
7189         (output_space_left, output_append): Export.
7190         (output_newline): Rename to output_add_newline.  Export.
7191         (output_clear): Nullify additional output_buffer fields.
7192         (output_puts): Rename to output_add_string.  Export.
7193         (dump_output): Rename to output_flush_on.  Export.
7194         (build_location_prefix): Constify return-type.
7195         (emit_output_prefix): Rename to output_emit_prefix. Export.
7196         (set_real_maximum_length): New function.
7197         (output_set_maximum_length): Ditto
7198         (output_clear): Ditto.
7199         (output_add_character): Ditto.
7200         (output_add_integer): Ditto.
7201         (output_add_space): Ditto.
7202         (output_format): Ditto.
7203         (output_printf): Adjust buffer initialization.
7204         (vline_wrapper_message_with_location): Ditto.
7205         (v_message_with_decl): Ditto.  Adjust call to output_puts
7206         and get_output_prefix.
7207         (default_print_error_function): Adjust buffer intialization.
7208
7209 Sat Apr 22 06:45:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7210
7211         * expr.c (preexpand_calls, case CALL_EXPR): Don't look at TYPE_SIZE
7212         of VOID_TYPE.
7213
7214 Fri Apr 21 18:33:09 2000  Alexandre Oliva  <aoliva@cygnus.com>
7215
7216         * config/mn10300/mn10300.h (REGNO_REG_CLASS): Use NO_REGS instead
7217         of explicit 0.
7218
7219 Fri Apr 21 18:30:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
7220
7221         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Provide more
7222         accurate data about SP moves.
7223
7224 Fri Apr 21 18:28:28 2000  Alexandre Oliva  <aoliva@cygnus.com>
7225
7226         * config/mn10300/mn10300.h (ADDITIONAL_REGISTER_NAMES): Added
7227         aliases to AM33 registers.
7228
7229 Fri Apr 21 18:26:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
7230
7231         * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Added register 16
7232         to all EXTENDED bitmaps.
7233
7234 Fri Apr 21 18:17:12 2000  Alexandre Oliva  <aoliva@cygnus.com>
7235
7236         * config/mn10300/mn10300-protos.h (mn10300_address_cost): Declare.
7237         * config/mn10300/mn10300.h (ADDRESS_COST): New macro.
7238         * config/mn10300/mn10300.c (mn10300_address_cost): New function.
7239
7240 Fri Apr 21 18:11:56 2000  Alexandre Oliva  <aoliva@cygnus.com>
7241
7242         * config/mn10300/mn10300.md (movdi, movdf): Do not use `movu' when
7243         the operand is not constant.
7244
7245 Fri Apr 21 14:58:29 2000  Denis Chertykov  <denisc@overta.ru>
7246
7247         * reload.c (find_equiv_reg): Checks all valueno and regno regs
7248         as a call-clobbered regs.
7249
7250 Fri Apr 21 13:30:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7251
7252         * rtl.c: Use NOTE_INSN_REPEATED_LINE_NUMBER and NOTE_INSN_RANGE_BEG.
7253         * rtl.h: Likewise.
7254         * rtl.def: Update comment.
7255         * function.c (expand_function): Use NOTE_INSN_REPEATED_LINE_NUMBER.
7256         * integrate.c (expand_inline_function): Likewise.
7257         * profile.c (branch_prob): Likewise.
7258         * ggc-common.c (ggc_mark_rtx_children): Use NOTE_INSN_RANGE_BEG.
7259         * print-rtl.c (print_rtx): Likewise.
7260         * haifa-sched.c (sched_analyze, unlink_other_notes): Likewise.
7261         (reemit_notes): Likewise; also use enum insn_note.
7262
7263         * stor-layout.c (layout_decl): Only set DECL_MODE if not already set.
7264         (place_field): Properly compute know and actual alignment.
7265
7266         * gengenrtl.c (gencode): Write obstack_alloc_rtx function start
7267         in proper format.
7268
7269         * cse.c (cse_insn): In (set REG0 REG1) case, remove a REG_EQUAL
7270         note for REG1.
7271
7272 2000-04-21  Zack Weinberg  <zack@wolery.cumb.org>
7273
7274         * cpphash.c (struct arg, struct arglist): Const-ify strings.
7275         (warn_trad_stringify, duplicate_arg_p): New helper functions.
7276         (collect_expansion): Rewrite to scan over a token list.
7277         Remove -traditional support.
7278         (collect_formal_parameters): Rename to collect_params; rewrite
7279         to scan over a token list.
7280         (_cpp_create_definition): Adjust to scan a token list.
7281         (_cpp_macroexpand): Remove -traditional support.
7282         (_cpp_compare_defs): Whitespace is now canonicalized.
7283         (comp_def_part): Delete function.
7284
7285         * cpphash.h: Update prototypes.
7286         * cpplex.c (init_token_list): Don't set lineno if there is no
7287         buffer.
7288         (pedantic_whitespace): New function.
7289         (_cpp_scan_line): Mark tokens that had hspace before.  Don't
7290         consume a newline.  Use pedantic_whitespace.
7291         (_cpp_lex_token): Remove support for -traditional macros.
7292         (_cpp_get_define_token): Delete.
7293         (_cpp_get_directive_token): Do the real work here.  Use
7294         pedantic_whitespace.
7295         (_cpp_init_input_buffer): Initialize pfile->directbuf.
7296
7297         * cpplib.c (get_macro_name): Delete.
7298         (do_define): Read the entire line into pfile->directbuf, then
7299         feed the token list to _cpp_create_definition.
7300         * cpplib.h (HSPACE_BEFORE): new define.
7301         (struct cpp_reader): Add a toklist member, "directbuf".
7302
7303         * predict.c (estimate_probability): New heuristic: if a jump
7304         branches around a block with no successors, predict it taken.
7305         Disentangle control flow.
7306
7307 2000-04-20  Richard Henderson  <rth@cygnus.com>
7308
7309         * loop.c (emit_iv_add_mult): Revert last change.
7310
7311 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
7312
7313         * cpplib.h (enum cpp_ttype): Add token types for all
7314         punctuators.  Distinguish pp-numbers from valid C numbers.
7315         Give some tokens better names.  Initialize from macro.
7316         (struct cpp_name, cpp_token, cpp_toklist): New data
7317         structures.
7318         Update prototypes.
7319         * cpplex.c (bump_column, expand_name_space,
7320         expand_token_space, init_token_list, cpp_output_list,
7321         _cpp_scan_line):  New functions.
7322         (output_line_command): Add third argument, new line number.
7323         * cpphash.h: Update prototypes.
7324         * cppexp.c, cpphash.c, cpplib.c, scan-decls.c: Update for new
7325         token names.
7326
7327 2000-04-20  Richard Henderson  <rth@cygnus.com>
7328
7329         * config/alpha/alpha.c (alpha_emit_floatuns): Emit missing barrier.
7330
7331 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
7332
7333         * c-common.c (decl_attributes) [A_ALIAS]: Set TREE_USED on the
7334         object pointed to.
7335
7336 Thu Apr 20 14:19:18 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7337
7338         * loop.c (emit_iv_add_mult):  Simplify it's input and emit
7339         REG_EQUAL note explaining the calculated value.
7340
7341         * calls.c (expand_call): Avoid unnecesary precalculation
7342         and outgoing parameters space guarding for sibling calls.
7343         (store_one_arg): Likewise.
7344
7345 Thu Apr 20 08:01:07 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7346
7347         * toplev.c (enum dump_file_index, dump_file): Add DFI_sibling.
7348         (rest_of_compilation): Write sibling dump file and account
7349         for time as jump time.
7350         * invoke.texi: Update documentation on dump flags.
7351
7352 2000-04-19  Marek Michalkiewicz  <marekm@linux.org.pl>
7353
7354         * avr.c: #include "system.h" instead of <stdio.h> and <stdlib.h>.
7355
7356 2000-04-19  Zack Weinberg  <zack@wolery.cumb.org>
7357
7358         * cpphash.c (special_symbol): Represent an empty macro with
7359         "\r \r " not just "\r ".
7360         (_cpp_macroexpand): Correct condition for the foo ( ) special
7361         case.
7362         (unsafe_chars): Handle EOF as second argument.
7363         (push_macro_expansion): Simplify test for removing escape at
7364         end.  Do not trim both escapes if there is no text in between.
7365
7366 2000-04-19  Jim Blandy  <jimb@redhat.com>
7367
7368         * dwarf2out.c (DWARF2_ADDR_SIZE): New macro.  Use it instead
7369         of PTR_SIZE, when appropriate.
7370
7371 2000-04-19  Mark Mitchell  <mark@codesourcery.com>
7372
7373         * system.h (ONLY_INT_FIELDS): Make sure it is defined.
7374         (USE_ENUM_BITFIELDS): Fix typo.
7375
7376 Wed Apr 19 12:14:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7377
7378         * stor-layout.c (place_field): Set rli->offset_align properly.
7379
7380 2000-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7381
7382         * mips.h (BITS_PER_WORD, UNITS_PER_WORD, UNITS_PER_FPREG,
7383         INT_TYPE_SIZE, LONG_TYPE_SIZE, POINTER_SIZE, POINTER_BOUNDARY,
7384         PARM_BOUNDARY): Remove unnecessary casts.
7385
7386 Wed Apr 19 12:02:37 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7387
7388         * calls.c (precompute_arguments): Remove must_preallocate and
7389         args_size calls.
7390         (expand_call): Update call of precompute_arguments.
7391
7392         * loop.c (check_insn_for_bivs, for_every_insn_in_loop,
7393         check_insn_for_givs): Break out from ...
7394         (strength_reduce) ... here; use for_every_insn_in_loop to call
7395         check_insn_for_givs.
7396         * loop.h (for_every_insn_in_loop): Declare.
7397         (loop_insn_callback): New type.
7398
7399 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
7400
7401         * cpplib.c (do_pragma_poison):  Strings in the token buffer are
7402         not nul-terminated.
7403
7404 Tue Apr 18 16:04:12 2000  Jim Wilson  <wilson@cygnus.com>
7405
7406         * config/ia64/sysv4.h (SELECT_SECTION): Use data_section if
7407         flag_pic and RELOC.
7408
7409 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
7410
7411         * cccp.c, cexp.y, cexp.c, cccp.1: Removed.
7412
7413         * configure.in: Delete --disable-cpplib option and all
7414         references to cpp_main.
7415         * configure: Regenerate.
7416         * Makefile.in: Remove all references to CCCP, CCCP_OBJS,
7417         @cpp_main@, cccp.c, cexp.c, cexp.y, cexp.output, cexp.o,
7418         cccp.o, cccp, or cppmain.  Link cppmain.o straight to
7419         cpp$(exeext).  Add --no-headers to makeinfo command line when
7420         generating INSTALL.  Install and uninstall cpp.1 manpage, not
7421         cccp.1.
7422         * install.texi: Delete all references to cexp.y/cexp.c.
7423         Delete ancient instructions for compiling GCC on 3b1.
7424         * INSTALL: Regenerate.
7425
7426         * cppfiles.c, cpplib.h, jump.c, protoize.c, c-lex.c, mips/t-ecoff,
7427         mips/t-elf, mips/t-r3900: Remove references to cccp.c.
7428         * convex.h, fx80.h, m68k.h, pdp11.h: Remove references to
7429         cexp.c/cexp.y.
7430         * xm-linux.h, xm-os2.h, romp.h: Remove definition of BSTRING,
7431         which is no longer tested anywhere.
7432
7433         * cppinit.c (handle_option): Don't run error message through
7434         gettext twice.
7435
7436 Tue Apr 18 14:16:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7437
7438         * conflict.c (conflict_graph_add): Pass enum type to htab_find_slot.
7439         * cpperror.c (hashtab.h): Now include.
7440         * cppexp.c (hashtab.h): Likewise.
7441         * cpplex.c (hashtab.h): Likewise.
7442         * cppfiles.c (hashtab.h): Likewise.
7443         (find_include_file, _cpp_calc_hash, cpp_read_file): Pass enum type
7444         to htab_find_slot_with_hash.
7445         * cpphash.c (hashtab.h): Now include.
7446         (_cpp_lookup_slot): INSERT is now enum insert_option.
7447         * cpphash.h (_cpp_lookup_slot): Likewise.
7448         * cppinit.c (hashtab.h): Include earlier.
7449         (initialize_builtins): Pass enum to htab_find_slot.
7450         * cpplib.c (hashtab.h): Now include.
7451         (do_define, do_undef): Pass enum type to _cpp_lookup_slot.
7452         (do_pragma_poison, do_assert): Likewise.
7453         * emit-rtl.c (gen_rtx_CONST_INT): Pass enum to
7454         htab_find_slot_with_hash.
7455         * simplify-rtx.c (cselib_lookup_mem, cselib_lookup): Likewise.
7456         * tree.c (type_hash_add): Likewise.
7457         (build1): Minor cleanup.
7458
7459         * ggc-common.c: Add missing blanks.
7460         * print-tree.c (print_node): Print DECL_OFFSET_ALIGN.
7461         * tree.h (DECL_OFFSET_ALIGN): Fix typo in comment.
7462
7463         * stmt.c (mark_case_node): New function.
7464         (mark_case_nesting): Call it.
7465
7466         * expmed.c (emit_store_flag): If comparing two-word integer
7467         with zero, can optimize NE, EQ, GE, and LT.
7468
7469         * c-decl.c (mark_binding_level): Use 'for' instead of `while'.
7470         * conflict.c: Minor cleanups.
7471         * optabs.c: Add blank line
7472         * simplify-rtx.c: Minor cleanups.
7473
7474 2000-04-18  Stan Cox  <scox@cygnus.com>
7475
7476         * gengenrtl.c (genlegend): Fix misspelling.
7477
7478 2000-04-18  Robert Lipe  <robertlipe@usa.net>
7479
7480         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Added.  Check that
7481         bitfields of the host compiler are not signed quantities.
7482         * config.in: Regenerate.
7483         * configure: Regenerate.
7484         * system.h (USE_ENUM_BITFIELDS): Added.
7485         (ENUM_BITFIELDS): Added.
7486         * rtl.h (rtx_def): Members `code', `mode', now ENUM_BITFIELD.
7487         (SHORT_ENUM_BUG): Deleted.
7488         * tree.h (tree_common): Members `code', `mode', `built_in_class',
7489         now ENUM_BITFIELD.
7490         * config/i386/xm-sco.h (ONLY_INT_FIELDS): Deleted.
7491         (CODE_FIELD_BUG): Likewise.
7492         * config/m68k/x-apollo68 (CC): Deleted SHORT_ENUM_BUG.
7493         (OLD_CC): Likewise.
7494         * config/m68k/x-ccur (X_CFLAGS): Likewise.
7495
7496 2000-04-18  Mark Mitchell  <mark@codesourcery.com>
7497
7498         * cpplex.c (_cpp_lex_token): Don't call CPP_BUMP_LINE when the
7499         mark is active.
7500
7501 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
7502
7503         * cppexp.c (lex): Don't assume tokens are NUL terminated.
7504         * cpplib.c (do_include, do_import, do_include_next,
7505         read_line_number, detect_if_not_defined): Likewise.
7506         * cpphash.c (collect_expansion): Likewise.
7507         (special_symbol, _cpp_macroexpand): Check return from
7508         cpp_file_buffer.
7509         * cpphash.h (CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q): Delete
7510         macros.  Delete all uses.
7511
7512         * gcc.dg/cpp-mi.c: Add two more test cases.
7513         * gcc.dg/cpp-mind.h, gcc.dg/cpp-mindp.h: New files.
7514
7515 2000-04-17  Richard Henderson  <rth@cygnus.com>
7516
7517         * bb-reorder.c (fixup_reorder_chain): Don't look up new block again.
7518         (reorder_basic_blocks): If no epilogue in rtl, force last block last.
7519
7520 2000-04-17  Mark Mitchell  <mark@codesourcery.com>
7521
7522         * function.c (expand_function_start): Use hard_function_value to
7523         compute the RTL to use for DECL_RESULT.
7524
7525 Mon Apr 17 23:35:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7526
7527         * i386.c (athlon_cost): Fix lea, divide and XFmode move costs.
7528         (x86_integer_DFmode_moves, x86_partial_reg_dependency,
7529          x86_memory_mismatch_stall): New global variables.
7530         (ix86_adjust_cost): Handle MEMORY_BOTH on places MEMORY_STORE was only
7531         alloved; fix load penalties for Athlon.
7532         * i386.h (x86_integer_DFmode_moves, x86_partial_reg_dependency,
7533         x86_memory_mismatch_stall): Declare.
7534         (TARGET_INTEGER_DFMODE_MOVES, TARGET_PARTIAL_REG_DEPENDENCY,
7535          TARGET_MEMORY_MISMATCH_STALL): New.
7536         * i386.md (athlon scheduling parameters): Fix latencies according to
7537         Athlon Optimization Manual.
7538         (sahf, xchg, fldcw, leave instruction patterns): Set athlon_decode to
7539         vector.
7540         (fsqrt instruction patterns): Set athlon_decode to direct.
7541         (movhi_1): Promote for TARGET_PARTIAL_REG_DEPENDENCY and for
7542         PARTIAL_REGISTER_STALL with !TARGET_HIMODE_MATH machines.
7543         (movqi_1): Handle promoting correctly for TARGET_PARTIAL_REG_DEPENDENCY
7544         and TARGET_PARTIAL_REGISTER_STALL machines.
7545         (pushdf_nointeger): New pattern.
7546         (pushdf_integer): Rename from pushdf.
7547         (movdf_nointger): Enable for !TARGET_INTEGER_DFMODE_MOVES machines.
7548         (movdf_intger): Disable for !TARGET_INTEGER_DFMODE_MOVES machines.
7549
7550 2000-04-17  Richard Henderson  <rth@cygnus.com>
7551
7552         * loop.c (canonicalize_condition): Add WANT_REG argument.
7553         Stop the search if we match it.
7554         * expr.h (canonicalize_condition): Update decl.
7555         * predict.c (expected_value_to_br_prob): Use it.  Track last
7556         expected value note.
7557         (find_expected_value): Remove.
7558
7559         * reorg.c (mostly_true_jump): Always use BR_PROB if present.
7560
7561 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
7562
7563         * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE([AC_FUNC_MMAP]).
7564         (AC_FUNC_MMAP_FILE): New macro, tests read-only private map of
7565         a plain file.
7566         * configure.in: Call AC_FUNC_MMAP_FILE.
7567         * configure: Regenerate.
7568         * config.in: Regenerate.
7569
7570         * intl/loadmsgcat.c: Test HAVE_MMAP_FILE not HAVE_MMAP.
7571         * fixinc/fixincl.c: Likewise.
7572
7573 2000-04-17  Richard Henderson  <rth@cygnus.com>
7574
7575         * builtins.c (expand_builtin_expect): New.
7576         (expand_builtin): Call it.
7577         * builtins.def (BUILT_IN_EXPECT): New.
7578         * c-common.c (c_common_nodes_and_builtins): Declare __builtin_expect.
7579         * extend.texi: Document it.
7580
7581         * predict.c (expected_value_to_br_prob): New.
7582         (find_expected_value): New.
7583         * basic-block.h (expected_value_to_br_prob): Declare.
7584         * toplev.c (rest_of_compilation): Invoke it.
7585
7586         * rtl.h (NOTE_EXPECTED_VALUE): New.
7587         (NOTE_INSN_EXPECTED_VALUE): New.
7588         * rtl.c (note_insn_name): Update.
7589         * print-rtl.c (print_rtx): Reorg NOTE_LINE_NUMBER special
7590         cases; handle NOTE_INSN_EXPECTED_VALUE.
7591
7592 2000-04-17  Jakub Jelinek  <jakub@redhat.com>
7593
7594         * config/sparc/sparc.c (eligible_for_sibcall_delay): Cannot use
7595         leaf sibcall delay slot if flag_pic.
7596         (output_sibcall): Always emit call for leaf sibcall if flag_pic.
7597
7598 2000-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7599
7600         * Makefile.in (stmp-fixproto): Acknowledge errors in fixproto.
7601
7602         * fixproto: If fix-header fails, exit with an error.
7603
7604 Mon Apr 17 14:59:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7605
7606         * cse.c (struct check_depdendence_data): New.
7607         (check_dependence): New function.
7608         (invalidate): Use check_depdenence.
7609
7610 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
7611
7612         * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Adjust, now that
7613         UNITS_PER_WORD is unsigned.
7614
7615         * tree.h (struct tree_common): Remove misleading comment.
7616
7617 2000-04-16  Dave Pitts  <dpitts@cozx.com>
7618
7619         * Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole
7620         message in quotes. Otherwise, IBM's make program treats the '#' as the
7621         start of a comment and ignores the remainder of the line.
7622
7623         * c-lex.c (yylex): Change for EBCDIC, lower case characters preceed
7624         upper case.
7625         * cccp.c (initialize_char_syntax): Allow for holes in EBCDIC.
7626         * cexp.y (initialize_random_junk): Likewise.
7627         * cppfiles.c (find_include_file): Cast alloca return value.
7628         * cppinit.c (initialize_standard_includes): Likewise.
7629         * cpplib.c (cpp_define, cpp_undef): Likewise.
7630         * defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT.
7631         * final.c (output_asm_insn): Allow for holes in EBCDIC.
7632         * fold-const.c (CHARMASK): New.
7633         (real_hex_to_f): Use it.
7634         * real.c (CHARMASK): New.
7635         (etoasc, asctoeg): Use it.
7636         (asctoeg): EBCDIC lower case characters preceed upper case.
7637
7638         * i370.c (mvs_add_label): Change spacing for coding conventions.
7639         * i370.h (ASM_OUTPUT_CASE_LABEL): Change to the data CSECT for the
7640         outputing case vectors.
7641         (ASM_OUTPUT_CASE_END): New, put assembler back into code CSECT.
7642         (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove page check,
7643         since vector in in the data CSECT.
7644         (ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation.
7645         * i370.md (Many patterns): Put the length in the XL directives.
7646         (movdi): Put back STM and MVC in definition.
7647         (floatsidf2): Correct TARGET_ELF_ABI pattern and add back the LE370
7648         pattern using the TCA.
7649         * oe.h (CPP_SPEC): Added to allow trigraphs.
7650         * xm-oe.h (HOST_BITS_PER_LONGLONG): Change to 32. IBM's compiler does
7651         not support the "long long" type.
7652
7653 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
7654
7655         * config/mips/mips-protos.h (mips_legitimate_address_p): New
7656         function.
7657         (mips_reg_mode_ok_for_base_p): Likewise.
7658         * config/mips/mips.h (REG_OK_STRICT_P): Don't define.
7659         (REG_OK_FOR_INDEX_P): Define unconditionally.
7660         (REG_MODE_OK_FOR_BASE_P): Use mips_reg_mode_ok_for_base_p.
7661         (GO_IF_LEGITIMATE_ADDRESS): Use mips_legitimate_address_p.
7662         * config/mips/mips.c (mips16_simple_memory_operand): Adjust now
7663         that GET_MODE_SIZE is unsigned.
7664         (mips_reg_mode_ok_for_base_p): Define.
7665         (mips_legitimate_address_p): Likewise.  Adjust now
7666         that GET_MODE_SIZE is unsigned.
7667         (block_move_loop): Make the number of bytes unsigned.
7668         (expand_block_move): Likewise.
7669         (function_arg): Make the loop counter unsigned to match the
7670         boundary condition.
7671
7672 2000-04-16  Richard Henderson  <rth@cygnus.com>
7673
7674         * rtl.h (enum insn_note): New enumeration.  Subsume
7675         NOTE_INSN_DELETED and friends.
7676         (GET_NOTE_INSN_NAME): Adjust index by NOTE_INSN_BIAS.
7677         * rtl.c (note_insn_name): Tweak string order.
7678
7679 2000-04-15  Zack Weinberg  <zack@wolery.cumb.org>
7680
7681         * cpplex.c (_cpp_read_and_prescan): Enlarge len by setting it
7682         to offset * 2.
7683
7684         * cpplex.c (output_line_command): Remove debugging prints.
7685         (cpp_output_tokens): Don't write out a zero-length buffer or
7686         try to see if it has a newline in it.
7687         (_cpp_expand_to_buffer): Copy the source buffer before pushing.
7688         (_cpp_read_and_prescan): Move shift-down of pushback bytes to
7689         the end of the loop.  Use memmove.  Don't read past the end of
7690         the buffer.  Remove trailing newlines from error messages.
7691
7692 2004-04-16  Neil Booth  <NeilB@earthling.net>
7693
7694         * cpphash.h (SYNTAX_INCLUDE, SYNTAX_ASSERT, directive_handler): new.
7695         * cpplib.c: Add new syntax flags to directive table, and
7696         supporting macros.
7697
7698 2000-04-15  Ulrich Drepper  <drepper@redhat.com>
7699
7700         * i386.c (ix86_expand_epilogue): Yes, the x86 can pop 64k at once
7701         using ret $N.
7702
7703 2000-04-15  David Edelsohn  <edelsohn@gnu.org>
7704
7705         * toplev.c (display_help): Prefix "f" to "sched-verbose=".
7706         * haifa-sched.c: Update -fsched-verbose comments to use "=".
7707
7708 Sat Apr 15 10:59:19 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7709
7710         * Makefile.in (ggc-page.o): Now includes toplev.h.
7711         * ggc-page.c (toplev.h): Now included.
7712         (gc_time): Remove declaration.
7713         (ggc_collect): TIME now long.
7714         * toplev.c (parse_time, varasm_time, gc_time): Still global; all
7715         others static.
7716         * toplev.h (gc_time, parse_time, gc_time): New declarations.
7717
7718         * toplev.c: Make *_time variable long to reduce chance of overflow.
7719         (TIMEVAR): Likewise for `otime'.
7720         (print_time): Arg is now long; compute percentage in FP and round.
7721         * toplev.h (print_time): Arg is long.
7722
7723         * tree.c: Minor whitespace changes.
7724
7725         * configure.in (alpha*-*-*): Add config/alpha/t-alpha.
7726         * configure: Rebuilt.
7727         * libgcc2.c (__fixunstfDI): Renamed from __fixunstfdi.
7728         (__fixunsxfDI): Renamed from __fixunsxfdi.
7729         (__fixunsdfDI): Renamed from __fixunsdfdi.
7730         (__fixunssfDI): Renamed from __fixunssfdi.
7731         (__floatdisf): Use proper type in REP_BIT macro.
7732         (__fixunsxfSI): Renamed from __fixunsxfsi.
7733         (__fixunsdfSI): Renamed from __fixunsdfsi.
7734         (__fixunssfSI): Renamed from __fixunssfsi.
7735         * libgcc2.h: Add cases for MIN_UNITS_PER_WORD > 4.
7736         Change location of macros and upper-case some names as above.
7737         * longlong.h ([alpha]): Use PARAMS, not __P in decl of __udiv__qrnnd.
7738         * config/alpha/t-alpha, config/alpha/qrnnd.asm: New files.
7739
7740         * varasm.c (assemble_variable): Add cast to remove warning.
7741         (immed_real_const_1): Only use CONST[01]_RTX if not in nested function.
7742
7743         * flow.c (count_basic_blocks, find_basic_blocks_1): Remove last change.
7744         * optabs.c (emit_libcall_block): If have REG_EH_REGION, update
7745         region number to -1.
7746
7747 2000-04-15  Richard Earnshaw (rearnsah@arm.com)
7748
7749         * emit-rtl.c (unshare_all_rtl_again): Unmark everything, then
7750         call unshare_all_rtl.
7751
7752         * arm.md (movhi): REGNO_POINTER_ALIGN is now bits.
7753
7754 Fri Apr 14 16:58:45 2000  Jim Wilson  <wilson@cygnus.com>
7755
7756         * config/ia64/lib1funcs.asm (__divdi3, __moddi3, __udivdi3, __umoddi3):
7757         Use .s1 not .s0 for all FP instructions.
7758
7759 2000-04-14  Zack Weinberg  <zack@wolery.cumb.org>
7760
7761         * cpplex.c (cpp_output_tokens, cpp_scan_buffer_nooutput): New public
7762         interfaces.
7763         (safe_fwrite, output_line_command): New static functions.
7764         (cpp_expand_to_buffer): Now private to cpplib.
7765         (cpp_scan_buffer): Take a printer.
7766
7767         * cpphash.h: Update prototypes.
7768         * cpplib.h: Update prototypes.
7769         (cpp_printer): New.
7770         (cpp_buffer): Remove last_nominal_fname.
7771         (cpp_reader): Remove lineno.
7772
7773         * cppmain.c: Use a cpp_printer.
7774         * fix-header.c: No need to inhibit line commands.  Call
7775         cpp_start_read with no printer.
7776
7777         * cpperror.c (cpp_notice_from_errno): Provide default name.
7778         * cppfiles.c (make_IHASH, _cpp_fake_ihash): New functions.
7779         (find_include_file, cpp_read_file): Use make_IHASH.
7780         (file_cleanup): Set control_macro and clear
7781         input_stack_listing_current here.
7782         (_cpp_execute_include): Don't output entering-file marker.
7783         * cpphash.c (special_symbol): Look for the line number in the
7784         buffer, not the reader.
7785         (_cpp_macroexpand): No need to disable line commands.
7786         (_cpp_dump_definition): No need to generate line commands.
7787         (dump_hash_helper): Remove excess newline from output.
7788         * cppinit.c (dump_special_to_buffer): No need to generate line
7789         commands.
7790         (cpp_printer_init): New.
7791         (cpp_start_read): Take a printer, and start it up if it's not
7792         NULL.  No need to generate line commands.
7793         (cpp_finish): Expect no buffers stacked at all.  Take a
7794         printer argument, and flush the output buffer if it's not
7795         NULL.
7796         * cpplex.c (_cpp_lex_token): Return EOF if there's no buffer.
7797         Don't put two hashes at the beginning of an assertion.
7798         (cpp_get_token): Don't increment pfile->lineno or emit line
7799         commands here.  Return EOF if there's no buffer when we get
7800         EOF.
7801         * cpplib.c (do_define, skip_if_group):
7802         No need to disable line commands.
7803         (_cpp_output_line_command): Delete function.
7804         (do_line): Don't emit line commands here, but set things up so
7805         they will be emitted if necessary.  Use _cpp_fake_ihash to
7806         make unique nominal_fnames if necessary.
7807         (do_elif, do_else, _cpp_handle_eof): Call cpp_error_with_line
7808         with 0 for column, not -1.
7809         (_cpp_handle_eof): Don't set the control macro here.  Don't
7810         clear input_stack_listing_current here.  Don't emit line
7811         commands.
7812
7813 2000-04-14  Geoff Keating  <geoffk@cygnus.com>
7814
7815         * config/rs6000/sysv4.h (LINK_START_SOLARIS_SPEC): Define to empty
7816         always, use the default SVR4 start address.
7817
7818         * config/rs6000/linux.h (LINK_SPEC): Don't define.
7819         (LINK_SHLIB_SPEC): Define.
7820         (LINK_START_DEFAULT_SPEC): Define.
7821         (LINK_OS_DEFAULT_SPEC): Define.
7822
7823         * config/rs6000/sysv4.h (ENDFILE_SPEC): Use the %(endfile_*) macros.
7824
7825         * config/rs6000/eabi.asm (__eabi): Call __init rather than
7826         __do_global_ctors to handle constructors.
7827         * config/rs6000/sysv4.h (STARTFILE_ADS_SPEC): Use crtbegin.
7828         (STARTFILE_YELLOWKNIFE_SPEC): Likewise.
7829         (STARTFILE_MVME_SPEC): Likewise.
7830         (STARTFILE_SIM_SPEC): Likewise.
7831         (ENDFILE_ADS_SPEC): Use crtend.
7832         (ENDFILE_YELLOWKNIFE_SPEC): Likewise.
7833         (ENDFILE_MVME_SPEC): Likewise.
7834         (ENDFILE_SIM_SPEC): Likewise.
7835         (STARTFILE_SOLARIS_SPEC): Use crtbegin/crtbeginS.
7836         (ENDFILE_SOLARIS_SPEC): Use crtend/crtendS.
7837         (STARTFILE_LINUX_SPEC): Use crtbeginS for shared objects.
7838         (ENDFILE_LINUX_SPEC): Use crtendS for shared objects.
7839         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Don't build eabi-ctors.o.
7840         (EXTRA_MULTILIB_PARTS): Build crtbeginS/crtendS.
7841         (CRTSTUFF_T_CFLAGS_S): Define.
7842         * config/rs6000/eabi-ctors.c: Delete.
7843
7844         * config/rs6000/eabi-ci.asm (__init): Align stack to 16-byte
7845         boundary.
7846         (__fini): Likewise.
7847         * config/rs6000/eabi-cn.asm (__init): Allow for 16-byte stack frame.
7848         boundary.
7849         (__fini): Likewise.
7850
7851 Fri Apr 14 16:09:02 2000  Jim Wilson  <wilson@cygnus.com>
7852
7853         * combine.c (force_to_mode, case LSHIFTRT): Check that shift shift
7854         plus mask size is smaller or equal to the mode size.
7855
7856 Fri Apr 14 18:07:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7857
7858         * print-rtl.c (print_rtx, case NOTE): Don't blow up if NOTE_BASIC_BLOCK
7859         not yet set.
7860
7861         * expr.c (reload.h): Now included.
7862         (emit_block_move): Set volatile_ok when checking for movstr.
7863         (emit_move_1): Check for replacements in addresses in multi-word case.
7864         * Makefile.in (expr.o): Now includes reload.h.
7865
7866         * flow.c (count_basic_blocks): Remove unused var PREV_CALL.
7867         Never have a LIBCALL end a basic block.
7868         (find_basic_blocks_1): Likewise.
7869         Reorganize CALL_INSN cases.
7870
7871         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Revert last change.
7872
7873 Fri Apr 14 10:54:22 2000  Jim Wilson  <wilson@cygnus.com>
7874
7875         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Drop obsolete
7876         completers from mov.ret instruction.
7877
7878 2000-04-14  Richard Henderson  <rth@cygnus.com>
7879
7880         * fold-const.c (extract_muldiv): Don't distribute and widen
7881         multiply across plus for non-sizetype unsigned types.
7882
7883 2000-04-14  Richard Henderson  <rth@cygnus.com>
7884
7885         * flow.c (find_auto_inc): Don't autoinc eliminable registers.
7886         If the original source is dead in the incr insn, it's dead now.
7887
7888 Fri Apr 14 07:40:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7889
7890         * stor-layout.c (layout_decl): Properly compare KNOWN_ALIGN to
7891         see if DECL_BIT_FIELD needs to still be set.
7892
7893         * tree.h (struct tree_type): Make PRECISION 9 bits and MODE 7.
7894
7895         * dbxout.c (dbxout_type, case INTEGER_TYPE): Don't call
7896         print_int_cst_octal with something that's not an INTEGER_CST.
7897
7898         * config/alpha/alpha.c (alpha_emit_floatuns): Ensure we pass a REG
7899         and not a SUBREG to a FLOAT rtl.
7900
7901 Thu Apr 13 19:39:56 2000  Clinton Popetz  <cpopetz@cygnus.com>
7902
7903         * emit-rtl.c (try_split): Avoid infinite loop if the split
7904         results in a sequence that contains the original insn.
7905
7906 2000-04-13  Andreas Jaeger  <aj@suse.de>
7907
7908         * config/mips/mips.c (expand_block_move): Pass alignment
7909         argument to move_by_pieces in bits, not bytes.
7910
7911         * config/mips/linux.h (CPP_PREDEFINES): Also define __PIC__ and
7912         __pic__ for little endian.
7913
7914 2000-04-13  Andreas Jaeger  <aj@suse.de>
7915
7916         * config/i386/i386-protos.h: Add prototype for
7917         uno_comparison_operator.
7918
7919 Thu Apr 13 15:55:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7920
7921         * alias.c (nonlocal_reference_p): Take care of CALL_INSNS's fusage.
7922         * calls.c (ECF_PURE): New flag.
7923         (emit_call_1): Handle ECF_PURE calls.
7924         (initialize_argument_information): Unset ECF_PURE flag too.
7925         (precompute_arguments): Precompute for ECF_PURE too.
7926         (expand_call): Handle ECF_PURE calls too.
7927         (emit_library_call_value_1): Rename no_queue argument to fn_type,
7928         accept value of 2 as pure function.
7929         (emit_library_call_value, emit_library_call): Rename no_queue argument
7930         to fn_type.
7931         * optabs.c (prepare_cmp_insn): Pass fn_type 2 to memcmp call.
7932
7933         * tree.h (DECL_IS_PURE): New macro.
7934         (struct tree_decl): Add pure_flag.
7935         * c-common.c (enum attrs): Add attribute "pure".
7936         (init_attributes): Initialize attribute "pure"
7937         (decl_attributes): Handle attribute "pure".
7938         * extend.texi (Attribute "pure"): Document.
7939         * calls.c (expand_call): Add (mem:BLK (scratch)) to "equal from"
7940         in pure function.
7941         (flags_from_decl_or_type): Support attribute "pure".
7942
7943 2000-04-13  Jason Merrill  <jason@casey.cygnus.com>
7944
7945         * cpplex.c (_cpp_lex_token): Handle digraphs.  Don't null-terminate
7946         the token except for numbers and identifiers.
7947
7948 Thu Apr 13 00:09:16 EDT 2000  John Wehle  (john@feith.com)
7949
7950         * i386.c (ix86_expand_binary_operator,
7951         ix86_expand_unary_operator): Check no_new_pseudos
7952         instead of reload_in_progress and reload_completed.
7953         (ix86_split_ashldi, ix86_split_ashrdi,
7954         ix86_split_lshrdi): Check no_new_pseudos instead
7955         of reload_completed.
7956
7957 2000-04-12  Jeffrey A Law  (law@cygnus.com)
7958
7959         * function.c (purge_addressof): Unshare any shared rtl created by
7960         purge_addressof and its children.
7961
7962 2000-04-12  Mark Mitchell  <mark@codesourcery.com>
7963
7964         * function.c (aggregate_value_p): VOID_TYPE nodes are never
7965         aggregates.
7966
7967 2000-04-05  Andreas Jaeger  <aj@suse.de>
7968
7969         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Use proper flags if
7970         not compiling PIC code, add flags for mabi=64.
7971         (SUBTARGET_CPP_SIZE_SPEC): New.
7972         (SUBTARGET_CPP_SPEC): New.
7973         (CPP_PREDEFINES): Define __PIC__ and __pic__.  PIC code is default
7974         for MIPS/Linux and lots of code needs these defines.
7975
7976 Wed Apr 12 22:44:11 2000  Hans-Peter Nilsson  <hp@axis.com>
7977
7978         * reorg.c (fill_slots_from_thread): Check side_effects_p when
7979         trying the "opposite arithmetic" approach.
7980
7981 Wed Apr 12 20:51:20 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7982
7983         * sh.h (STRUCT_VALUE): Just 0 for TARGET_HITACHI.
7984         (struct sh_args): Add new field force_mem.
7985         (INIT_CUMULATIVE_ARGS): Initialize it.
7986         (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Act on it.
7987
7988 Wed Apr 12 17:20:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7989
7990         * calls.c (expand_call): Do not reverse args in "equal from" field.
7991         (emit_library_call_value_1): Emit_libcall_block for const and pure
7992         function.
7993
7994 Wed Apr 12 16:00:25 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7995
7996         * reload1.c (reload_combine): Don't enable optimization for fixed
7997         registers when encountering a BARRIER.
7998
7999 Wed Apr 12 15:54:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8000
8001         * builtins.c (expand_builtin_memcmp): Do expansion even with
8002         !HAVE_cmpstrsi, do libcall when gen_strcmpsi fails.
8003
8004         * calls.c (expand_call): Do NO_DEFER_POP unconditionally once
8005         stack is propertly aligned; add sanity checking for aligned
8006         stack pointer.
8007         (expand_library_call_value_1): Add sanity checking for aligned
8008         stack pointer.
8009
8010 Wed Apr 12 07:51:54 2000  Catherine Moore  <clm@cygnus.com>
8011
8012         * calls.c (emit_library_call_value_1): Change 3rd arg to
8013         locate_and_pad_parm to disregard the setting of partial.
8014
8015 Wed Apr 12 08:47:38 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8016
8017         * tree.c (unsave_expr_now_r, unsafe_for_reeval): Properly do TREE_LIST.
8018
8019         * print-rtl.c (print_rtx): For CALL_PLACEHOLDER, output the
8020         CALL_INSN from the normal case.
8021
8022 Fri Apr  7 12:23:04 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8023
8024         * i386.c (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
8025         New global variables.
8026         (ix86_emit_epilogue_adjustment): Do not attempt to use pop for the
8027         adjustment.
8028         * i386.h (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
8029         Declare,
8030         (TARGET_SUB_ESP_4, TARGET_SUB_ESP_8, TARGET_ADD_ESP_4,
8031          TARGET_ADD_ESP_8): New macros.
8032         * i386.md: Add peep2s to convert esp adjustments to push and pop
8033         instructions.
8034         (pushsi_prologue, popsi_epilogue): New patterns.
8035
8036 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
8037
8038         * real.c (toe64): Remove stale #endif from the last change.
8039
8040 2000-04-12  Stephen L Moshier  <moshier@mediaone.net>
8041
8042         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment.
8043         * real.c (toe64): Revert previous change.
8044
8045 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
8046
8047         * objc/objc-act.c: Include ggc.h.
8048         (objc_tree_index, objc_global_trees): Convert most of the
8049         static tree variables into a static array with previous names
8050         as defines.
8051         (objc_ellipsis_node): New variable.
8052         (lang_init): Call objc_act_parse_init and c_parse_init.
8053         Create objc_ellipsis_node.
8054         (build_selector_translation_table): Use objc_ellipsis_node instead
8055         of (tree)1.
8056         (hack_method_prototype): Likewise.
8057         (get_arg_type_list): Likewise.
8058         (start_method_def): Likewise.
8059         (continue_method_def): Likewise.
8060         (gen_method_decl): Likewise.
8061         (ggc_mark_imp_list): New function.
8062         (ggc_mark_hash_table): New function.
8063         (objc_act_parse_init): New function.
8064         * objc/objc-act.h (objc_ellipsis_node): Add extern variable.
8065         * c-parse.in (c_parse_init): For objc add roots of objc specific
8066         local tree variables.
8067         * objc/objc-parse.y: Rebuilt.
8068         * objc/objc-parse.c: Rebuilt.
8069         (opt_parm_list): Use objc_ellipsis_node instead of (tree)1.
8070
8071 Wed Apr 12 01:00:44 EDT 2000  John Wehle  (john@feith.com)
8072
8073         * cse.c (delete_trivially_dead_insns): Also delete insns
8074         that copy a register to itself where the destination is
8075         a strict_low_part.
8076
8077 2000-04-11  Richard Henderson  <rth@cygnus.com>
8078
8079         * flow.c (struct propagate_block_info): Add new_dead, new_live.
8080         (propagate_block): Initialize them.  Use them in parallel instead
8081         of one tmp variable, ie revert much of the 0408 and 0407 functional
8082         changes, but keep the structural changes.
8083         (mark_set_regs): Take new_dead from propagate_block_info instead.
8084         (mark_set_1, mark_set_reg): Likewise.
8085         (mark_used_regs): Likewise with new_live.
8086         (mark_used_reg): Likewise.  Revert 0408 change.
8087
8088 2000-04-11  Nick Clifton  <nickc@cygnus.com>
8089
8090         * config/arm/arm.h: (INCOMING_RETURN_ADDR_RTX): Remove Dwarf2
8091         restriction.
8092         (DWARF_FRAME_RETURN_COLUMN): Remove Dwarf2 restriction.
8093
8094 2000-04-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
8095
8096         * config/elfos.h (SELECT_SECTION): Decide whether to use a data or
8097         const section to output a CONSTRUCTOR based on the same conditions
8098         used for VAR_DECLs.
8099
8100 Tue Apr 11 09:55:59 2000  Jeffrey A Law  (law@cygnus.com)
8101
8102         * pa/long-double.h (FIX_TRUNCTFSI2_LIBCALL): Tweak for PA64.
8103         * pa/pa-protos.h (output_call): Add additional argument indicating
8104         if the call is a sibling/tail call.
8105         (compute_zdepdi_operands, output_64bit_and): Prototype new functions.
8106         (compute_64bit_ior, cmpib_comparison_operator): Likewise.
8107         (function_arg, function_arg_partial_nregs): Likewise
8108         * pa/pa.c (override_options): Always set flag_pic for TARGET_64BIT.
8109         (emit_move_sequence): Zero extend certain constants as needed
8110         for TARGET_64BIT.
8111         (compute_zdepdi_operands, output_64bit_and): New functions.
8112         (output_64bit_ior, function_arg): Likewise.
8113         (cmpib_comparison_operator, function_arg_partial_nregs): Likewise.
8114         (compute_frame_size, hppa_expand_prologue): Handle TARGET_64BIT.
8115         (hppa_expand_epilogue, return_addr_rtx, hppa_va_arg): Likewise.
8116         (hppa_builtin_saveregs, output_cbranch, output_bb): Likewise.
8117         (output_bvb): Likewise.
8118         (output_millicode_call): Return pointer is in %r2 for TARGET_64BIT.
8119         (output_call): New argument 'sibcall'.  Generate sibcall sequences
8120         as needed.
8121         (print_operand); Handle cases 'Q', 'p', and 'z' for TARGET_64BIT.  For
8122         (ouput_arg_descriptor): Do not emit argument descriptors for
8123         TARGET_64BIT.
8124         * pa/pa.h (TARGET_PA_11, TARGET_PA_20): Only define if not already
8125         defined.
8126         (TARGET_64BIT, PROMOTE_FUNCTION_RETURN): Define.
8127         (FUNCTION_OK_FOR_SIBALL): Define.
8128         (CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC): Define.
8129         (CPP_CPU_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS, EXTRA_SPECS): Likewise.
8130         (CPP_SPEC): Use new spec infrastructure.
8131         (BITS_PER_WORD, UNITS_PER_WORD): Handle TARGET_64BIT.
8132         (STACK_BOUNDARY, FUNCTION_BOUNDARY, PIC_OFFSET_TABLE_REGNUM): Likewise.
8133         (RETURN_IN_MEMORY, EXTRA_CONSTRAINT, FIRST_PARM_OFFSET): Likewise.
8134         (REG_PARM_STACK_SPACE, STACK_POINTER_OFFSET): Likewise.
8135         (STACK_DYNAMIC_OFFSET, FUNCTION_VALUE): Likewise.
8136         (FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES): Likewise.
8137         (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise.
8138         (INITIALIZE_TRAMPOLINE, LEGITIMATE_CONSTANT_P): Likewise.
8139         (CONST_OK_FOR_LETTER_P, MOVE_RATIO): Likewise.
8140         (FUNCTION_ARG); Call out to C code.
8141         (FUNCTION_ARG_PARTIAL_NREGS): Likewise.
8142         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Define.
8143         (MIN_UNITS_PER_WORD): Likewise.
8144         * pa/pa.md (cmpdi): New expander.
8145         (scc patterns, movstrsi): Not available for TARGET_64BIT.
8146         (64bit conditional arithmetic): New patterns.
8147         (absdi2, smindi3, umindi3, smaxdi3, umaxdi3): New patterns.
8148         (movsicc): Not available if modes on all the operands to not match.
8149         (movdicc): New expander and associated patterns.
8150         (64bit branches): New patterns.
8151         (pre_load, post_store): Generate appropriate code for TARGET_64BIT.
8152         (pre_ldd, post_std): New patterns.
8153         (64bit addil, load low part): New patterns.
8154         (special movsf constant): Not available for TARGET_64BIT.
8155         (movsf, movdf expanders): Force constants into memory.
8156         (32bit movdf/movdi patterns): Disable for TARGET_64BIT.
8157         (64bit movdf/movdi patterns): New patterns.
8158         (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New patterns
8159         for TARGET_64BIT.
8160         (extendqidi2, extendhidi2, extendsidi2): Similarly.
8161         (adddi3 expander): Allow "arith_operand" for second input.
8162         (32bit adddi3, subdi3, uaddcm): Disable for TARGET_64BIT.
8163         (64bit adddi3, subsi3, uaddcm): New patterns for TARGET_64BIT.
8164         (mulsi3 expander): Revamp slightly so it supports TARGET_64BIT too.
8165         (muldi3): New expander for TARGET_64BIT.
8166         (divsi3, udivsi3, modsi3, umodsi3): Fourth operand must be (reg:SI 2)
8167         for TARGET_64BIT.
8168         (32bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm): Disable
8169         patterns for TARGET_64BIT.
8170         (64bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm, shadd): New
8171         patterns for TARGET_64BIT.
8172         (64bit bit insertion/extractions): New patterns for TARGET_64BIT.
8173         (64bit shifts/rotates): New patterns/expanders for TARGET_64BIT.
8174         (sibcall_epilogue): New expander.
8175         (casesi): Tweak for TARGET_64BIT.
8176         (call expanders): Set & use the outgoing argument pointer.  Use the
8177         64bit call patterns as needed. Add additional arg to output_call.
8178         (call_internal_reg_64bit, call_value_internal_reg_64bit): New pattern.
8179         (sibcall, sibcall_internal_symref): New expanders.
8180         (sibcall_value, sibcall_value_internal_symref
8181         (interspace_jump): Turn into an expander + matching patterns.
8182         (canonicalize_funcptr_for_compare): Not needed for TARGET_64BIT.
8183         * pa/pa64-regs.h: Eliminate trigraph sequences.
8184         * pa/pa64-start.h (TARGET_PA_20): Fix typo.
8185
8186 2000-04-11  Zack Weinberg  <zack@wolery.cumb.org>
8187
8188         * cppexp.c, cpphash.c, cpphash.h, cpplex.c, cpplib.c,
8189         cpplib.h, cppmain.c, fix-header.c, scan-decls.c: Replace
8190         cpp_token with cpp_ttype everywhere.
8191         * cpperror.c, cpphash.c, cpplex.c, cpplib.c, scan-decls.c:
8192         Replace cpp_buf_line_and_col with CPP_BUF_LINE and/or
8193         CPP_BUF_COL.  Line and column numbers are unsigned int, not
8194         long.
8195         * cpplex.c (cpp_buf_line_and_col): Delete.
8196         * cpplib.h (struct cpp_buffer, struct cpp_reader): Change
8197         'long lineno' to 'unsigned int lineno'.
8198         (CPP_BUF_LINE, CPP_BUF_COL): New macros.
8199
8200 2000-04-11  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
8201
8202         * extend.texi: ISO C99 is not a draft anymore.
8203         * invoke.texi: ISO C++ is not a draft anymore.
8204         * cpp.texi: __cplusplus is required by the ISO standard.
8205
8206         * extend.texi (-fthis-is-variable): Undocument.
8207         * flags.h (warn_template_debugging): Remove declaration.
8208         * gcc.1 (-fall-virtual, -fenum-int-equiv, -fthis-is-variable,
8209         -Wenum-clash, -Wtemplate-debugging): Undocument.
8210
8211 2000-04-10  Nick Clifton  <nickc@cygnus.com>
8212
8213         * config/arm/arm.h (HOST_INT): New macro: Declare a HOST_WIDE_INT
8214         integer.
8215         (HOST_UINT): New macro: Declare an unsigned HOST_WIDE_INT
8216         integer.
8217         (ARM_SIGN_EXTEND): Use HOST_UINT.
8218         (STRIP_NAME_ENCODING): Prevent warnings about redefinitions.
8219         (ASM_OUTPUT_LABELREF): Prevent warnings about redefinitions.
8220         (INCOMING_RETURN_ADDR_RTX): Only define if Dwarf2 is supported.
8221         (DWARF_FRAME_RETURN_COLUMN): Only define if Dwarf2 is supported.
8222
8223         * config/arm/arm.c: (const_ok_for_arm): Use HOST_UINT.
8224         (arm_gen_constant): Use HOST_UINT.
8225         (arm_canonicalize_constant): Use HOST_UINT.
8226         (arm_reload_in_hi): Use HOST_UINT.
8227         (arm_reload_out_hi): Use HOST_UINT.
8228         (output_multi_immediate): Use HOST_UINT.
8229         (int_log2): Use HOST_UINT.
8230         (arm_poke_function_name): Use HOST_UINT.
8231         (arm_output_epilogue): Use arm_volatile_func().
8232         (output_thumb_prologue): Use arm_strip_name_encoding().
8233
8234 Mon Apr 10 15:40:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8235
8236         * sbitmap.c (sbitmap_a_subset_b_p): Rework loop to avoid potential
8237         of sequence point problems.
8238
8239 2000-04-10  Nathan Sidwell  <nathan@codesourcery.com>
8240
8241         * rtl.def (ASHIFT, ROTATE, ASHIFTRT, LSHIFTRT, ROTATERT):
8242         Recomment.
8243         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Recomment.
8244
8245 Mon Apr 10 07:21:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8246
8247         * sbitmap.h: Whitespace changes and use upper-case macro args.
8248         (struct simple_bitmap_def): All sizes now unsigned.
8249         (EXECUTE_IF_SET_IN_SBITMAP): Internal vars now _X instead of X_.
8250         * sbitmap.c (sbitmap_alloc): N_ELMS now unsigned; also local vars.
8251         (sbitmap_vector_alloc): Parms and local vars now unsigned.
8252         (sbitmap_zero): Cast bzero arg to PTR.
8253         (sbitmap_vector_zero, sbitmap_vector_one): Parm and Local var unsigned.
8254         (sbitmap_union_of_diffs): Change loop index to unsigned and rework
8255         loop to make structure clearer.
8256         (sbitmap_not, sbitmap_difference, sbitmap_a_and_b): Likewise.
8257         (sbitmap_a_or_b, sbitmap_a_subset_b_p, sbitmap_a_or_b_and_c): Likewise.
8258         (sbitmap_a_and_b_or_c): Likewise.
8259         (sbitmap_intersection_of_succs): Minor cleanups.
8260         (sbitmap_intersection_of_preds, sbitmap_union_of_succs): Likewise.
8261         (sbitmap_union_of_preds): Likewise.
8262         (sbitmap_first_set_bit, dump_sbitmap): Local variables now unsigned.
8263         (debug_sbitmap): New function.
8264
8265         * c-convert.c (convert): Handle REFERENCE_TYPE like POINTER_TYPE.
8266         * c-typeck.c (convert_for_assignment): Likewise.
8267
8268         * expmed.c (init_expmed): Don't free objects we make.
8269         * emit-rtl.c (gen_rtx_CONST_INT, init_emit_once): Minor cleanups.
8270
8271         * expr.c (get_inner_reference): Correct some WITH_RECORD_EXPR cases.
8272         (expand_expr, case CONVERT_EXPR): Pass proper alignment to store_field.
8273
8274         * gcse.c (expr_hash_table_size): Now unsigned.
8275         (compute_ae_gen): Local variable `i' now unsigned.
8276         (compute_ae_kill, pre_insert_copies, pre_delete, pre_gcse): Likewise.
8277         (compute_transout, hoist_code): Likewise.
8278         (compute_local_properties): Likewise, also hash_table_size.
8279         (alloc_expr_hash_table): N_INSNS now unsigned.
8280         (delete_null_pointer_checks): Mark arg F as unused.
8281
8282         * regrename.c: Minor cleanups, including chang some variables
8283         to unsigned int.
8284
8285 2000-04-10  Neil Booth  <NeilB@earthling.net>
8286
8287         * cpplex.c (skip_block_comment): Use pointer arithmetic rather
8288         than GETC ().
8289         * cpphash.h: (CPP_BUMP_BUFFER_LINE_CUR, CPP_BUMP_LINE_CUR): New.
8290
8291 2000-04-10  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
8292
8293         * invoke.texi (-fno-gnu-keywords): Remove classof, headof,
8294         __classof__, and __headof__ from the list of gnu keywords.
8295         (-ansi): Remove -foperator-names from list of implied options.
8296         Do not call it ANSI C++.
8297         (-foperator-names): Document as -fno-operator-names.
8298
8299 2000-04-09  Zack Weinberg  <zack@wolery.cumb.org>
8300
8301         * cpphash.c (timestamp): Delete.
8302         (del_HASHNODE): If type is T_MCONST, free value.cpval.
8303         (special_symbol): Remove unnecessary braces.  Remove
8304         T_VERSION.  Treat T_STDC like T_CONST unless
8305         STDC_0_IN_SYSTEM_HEADERS.  Render both __DATE__ and __TIME__
8306         when one is encountered, then convert them into T_MCONST
8307         nodes.
8308         * cppinit.c (builtin_array): version_string is T_MCONST.
8309         __STDC__ has a "1" in its cpval.  Don't have a terminator
8310         entry.  Clean up which entries are dumped.
8311         (initialize_builtins): Only __STDC__ gets the special
8312         -traditional treatment.  Count the length of builtin_array.
8313         Render version_string here.
8314         * cpphash.h: Remove T_VERSION.  Add T_MCONST.
8315         * cpplib.h (struct cpp_reader): Remove timebuf.
8316
8317 2000-04-09  Richard Henderson  <rth@cygnus.com>
8318
8319         * genrecog.c (pred): Update comparison_operator for the unordered
8320         operators.
8321
8322         * config/i386/i386.c (no_comparison_operator): Disallow unordered
8323         operators.
8324         (fcmov_comparison_operator): Allow UNORDERED/ORDERED.
8325         (uno_comparison_operator): New.
8326         (put_condition_code): Handle UNORDERED/ORDERED.
8327         (unsigned_comparison): Likewise.
8328         (ix86_fp_compare_mode): Broken out of ix86_expand_fp_compare.
8329         (ix86_use_fcomi_compare, ix86_prepare_fp_compare_args): Likewise.
8330         (ix86_expand_fp_compare): Use them.  Take scratch as argument,
8331         update all callers.  Handle all 8 unordered operators.
8332         (ix86_expand_setcc): Lose the unordered argument, update all callers.
8333         (ix86_expand_branch): Likewise.  Don't fully expand fp branches.
8334         * config/i386/i386.h (PREDICATE_CODES): Update.
8335         * config/i386/i386-protos.h (ix86_expand_fp_compare): Declare.
8336         (ix86_expand_branch, ix86_expand_setcc): Update.
8337         * config/i386/i386.md (sunordered, sordered): New.
8338         (suneq, sunge, sungt, sunle, sunlt, sltgt): New.
8339         (bunordered, bordered): New.
8340         (buneq, bunge, bungt, bunle, bunlt, bltgt): New.
8341         (*fp_jcc_1, *fp_jcc_2, *fp_jcc_3, *fp_jcc_4): New.
8342         (*fp_jcc_5, *fp_jcc_6, and splitters): New.
8343
8344 2000-04-09  Philip Blundell  <philb@gnu.org>
8345
8346         * config/arm/arm.h (ARM_NAME_ENCODING_LENGTHS): Strip `*' too.
8347
8348 Sun Apr  9 15:16:14 EDT 2000  John Wehle  (john@feith.com)
8349
8350         * i386.md (fix_truncsfhi2, fix_truncdfhi2,
8351         fix_truncxfhi2): New patterns.
8352         * i386.c (output_fix_trunc): Handle converting to HImode.
8353
8354 2000-04-08  Alex Samuel  <samuel@codesourcery.com>
8355
8356         * ssa.c (convert_to_ssa): Eliminate dead code when calling
8357         life_analysis.
8358         (convert_from_ssa): Call compute_bb_for_insn before life_analysis.
8359         (for_each_successor_phi): Change parameter to basic_block.
8360         (coalesce_regs_in_successor_phi_nodes): Likewise.
8361         (coalesce_regs_in_copies): Likewise.
8362         (compute_coalesced_reg_partition): Use basic_block instead of index.
8363         * rtl.h (convert_to_ssa): Delete.
8364         (convert_from_ssa): Likewise.
8365         (successor_phi_fn): Likewise.
8366         (for_each_successor_phi): Likewise.
8367         (in_ssa_form): Likewise.
8368         * basic-block.h (convert_to_ssa): Moved from rtl.h.
8369         (convert_from_ssa): Likewise.
8370         (successor_phi_fn): Likewise.
8371         (in_ssa_form): Likewise.
8372         (for_each_successor_phi): Likewise.  Change parameter to basic_block.
8373         * flow.c (calculate_global_regs_live): Pass a basic_block to
8374         for_each_successor_phi.
8375
8376 2000-04-08  Richard Henderson  <rth@cygnus.com>
8377
8378         * flow.c (mark_used_reg): Use reg_set_p to determine if a register
8379         was modified in the current insn.
8380
8381 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
8382
8383         * arm/thumb.md: Delete.
8384         * arm/thumb-protos.h: Delete.
8385
8386 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
8387
8388         Merge changes from merged-arm-thumb-backend-branch onto trunk.
8389
8390         2000-04-08  Richard Earnshaw (rearnsha@arm.com)
8391
8392         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000408
8393         into branch.
8394
8395         * arm.md (nop): Use the standard RTL expression.  Don't code as a
8396         define_expand.
8397         (*arm_nop, *thumb_nop): Delete.
8398
8399         * arm.c (const_ok_for_arm): Don't use ANSI extensions for defining
8400         constants.  Use casts instead.
8401         (arm_gen_constant, arm_rtx_costs, arm_reload_in_hi, arm_reload_out_hi,
8402         output_multi_immediate, arm_poke_function_name): Likewise.
8403         * arm.h (ARM_LEGITIIMIZE_RELOAD_ADDRESS, ARM_SIGN_EXTEND,
8404         MASK_RETURN_ADDDR): Likewise.
8405
8406         2000-03-31  Richard Earnshaw (rearnsha@arm.com)
8407
8408         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000325
8409         into branch.
8410
8411         * arm.md (eh_epilogue): New function.
8412         * arm.h (struct machine_function): Move to here ...
8413         * arm.c: ... from here.
8414         (arm_output_epilogue): Support epilogues for __builtin_eh_return.
8415         (thumb_exit): Extra parameter eh_ofs.  All callers changed.
8416         Handle epilogues for __builtin_eh_return.  Make bit-fields unsigned.
8417
8418         2000-03-30  Nick Clifton  <nickc@cygnus.com>
8419
8420         * config/arm/semi.h (ASM_SPEC): Restore definition.
8421         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
8422
8423         * config/arm/elf.h (ASM_SPEC): Restore definition.
8424         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
8425
8426         * config/arm/arm.h (ASM_SPEC): Remove definition.
8427         (SUBTARGET_EXTRA_ASM_SPEC): Remove definition.
8428
8429         2000-03-26  Bernd Schmidt <bernds@cygnus.co.uk>
8430
8431         * config/arm/arm.c: Disable -fschedule-insns for Thumb.
8432
8433         2000-03-24  Nick Clifton  <nickc@cygnus.com>
8434
8435         Various formating tidyups, elimination of compile time
8436         warnings and synchronisation with internal sources:
8437
8438         * config/arm/arm-protos.h (assemble_align): Add prototype.
8439         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
8440         (gen_comapre_reg): Rename to arm_gen_compare_reg.
8441         (arm_return_addr_rtx): Rename to arm_return_addr.
8442
8443         * config/arm/arm.c: Include except.h.
8444         Define shorter typenames for strict minipool_node and struct
8445         minipool_fix.
8446         (arm_return_in_memory): For WinCE return all structures <= 32 bits
8447         in memory.
8448         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
8449         (gen_comapre_reg): Rename to arm_gen_compare_reg.
8450
8451         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
8452         already defined.
8453         (ASM_SPEC): Define if not already defined.
8454         (ASM_OUTPUT_DEF_FROM_DECLS): Define.
8455
8456         * config/arm/arm.md: Rename references to gen_rotated_half_load to
8457         arm_gen_rotated_half_load, and references to gen_comapre_reg to
8458         arm_gen_compare_reg.
8459         (indirect_jump):  Only accept register operands.
8460         (load_indirect_jump): Keep this pattern since combine can generate
8461         it.
8462
8463         * config/arm/coff.h: Include aout.h.
8464         (MULTILIB_DEFAULTS): Only define if not already defined.
8465
8466         * config/arm/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Move definition
8467         into arm.h (so that COFF ports can support thumb based aliases).
8468         (ASM_SPEC): Move definition into arm.h
8469
8470         * config/arm/linux-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Remove
8471         redundant apcs spec.
8472         (ASM_SPEC): Move definition to arm.h
8473
8474         * config/arm/semi.h (ASM_SPEC): Move definition to arm.h
8475
8476         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Add support
8477         for entries in the .bss section
8478
8479         2000-03-23  Nick Clifton  <nickc@cygnus.com>
8480
8481         * config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Pass 0
8482         to thumb_far_jump_used_p.
8483
8484         * config/arm/arm-protos.h (thumb_far_jump_used_p): Take a
8485         single integer parameter.
8486
8487         * config/arm/arm.c (struct machine_function): Add two new
8488         fields, 'far_jump_used' and 'arg_pointer_live'.
8489         (thumb_far_jump_used_p): Once the decision has been made that
8490         far jumps might be used, always return true.
8491         If being called from the initial elimination offset macro then
8492         do not bother to perform the test if the arg pointer is not
8493         being used.
8494         (thumb_unexpand_epilogue): Pass 1 to thumb_far_jump_used_p().
8495         (output_thumb_prologue): Pass 1 to thumb_far_jump_used_p().
8496
8497         2000-03-23  Richard Earnshaw (rearnsha@arm.com)
8498
8499         * arm.c (output_return_instruction): Handle more cases where we can
8500         return from a function with an ldr instruction.
8501         (arm_output_epilogue): Likewise.
8502
8503         * arm.c (thumb_expand_prologue): Don't clobber the frame pointer
8504         if we need to push a large stack frame and there are no callee-saved
8505         registers.
8506
8507         * arm.c (arm_debugger_arg_offset): An offset of 0 is also valid
8508         in ARM code if the frame pointer has been eliminated.
8509
8510         * arm.md (epilogue, *epilogue_insns, consttable_*, align_4): Renumber
8511         unspec_volatile arguments to avoid duplicates.
8512         (consttable_1, consttable_2): Fixes for big-endian mode.
8513
8514         * arm.md (all ARM-mode load insns): Add neg_pool_range attribute
8515         as appropriate.
8516
8517         Re-write constant pool code.
8518         * arm.c (minipool_node, minipool_fix): New types.
8519         (minifix): Delete type.
8520         (arm_add_minipool_constant): Delete.
8521         (arm_compute_minipool_offsets, arm_find_barrier,
8522         arm_find_minipool_constant, fixup_compare, sort_fixups): Likewise.
8523         (get_jump_table_size): Now returns HOST_WIDE_INT.
8524         (move_minipool_fix_forward_ref, add_minipool_forward_ref): New
8525         functions.
8526         (move_minipool_fix_backward_ref, add_minipool_backward_ref): Likewise.
8527         (assign_minipool_offsets, arm_print_value): Likewise.
8528         (dump_minipool): Rewrite.
8529         (arm_barrier_cost): New function.
8530         (create_fix_barrier): New function.
8531         (push_minipool_barrier): New function.
8532         (push_minipool_fix): Record additional information about the fixup
8533         required.
8534         (note_invalid_constants): Remove push for (UNSPEC 3).  Don't
8535         check the mode of what needs fixing.
8536         (arm_reorg): Rewrite.
8537
8538         2000-03-08  Nick Clifton  <nickc@cygnus.com>
8539
8540         * config/arm/arm.md (indirect_jump): Force constant addresses into
8541         a register.
8542
8543         2000-03-01  Bernd Schmidt <bernds@cygnus.co.uk>
8544
8545         * config/arm/arm.md: Add splitter to turn SF moves into SI moves.
8546
8547         2000-02-24  Nick Clifton  <nickc@cygnus.com>
8548
8549         * config/arm/arm.c (thumb_expand_prologue): Make sure that stack
8550         adjust is word aligned.
8551         (thumb_expand_epilogue): Make sure that stack adjust is word
8552         aligned.
8553
8554         * config/arm/elf.h (ASM_FILE_START): Fix type of version string.
8555
8556         2000-02-24  Bernd Schmidt <bernds@cygnus.com>
8557
8558         * config/arm/arm.h (THUMB_GO_IF_LEGITIMATE_ADDRESS): Allow frame
8559         pointer relative addresses.
8560
8561         2000-02-10  Richard Earnshaw  <rearnsha@arm.com>
8562
8563         * arm.c (find_barrier): Find the last barrier within the allowed
8564         range.
8565
8566         2000-02-09  Nick Clifton  <nickc@cygnus.com>
8567
8568         * config/arm/arm-protos.h: Replace PROTO with PARAMS.
8569
8570         2000-02-09  Nick Clifton  <nickc@cygnus.com>
8571
8572         * config/arm/linux-elf.h (FUNCTION_PROFILER): Rename to
8573         ARM_FUNCTION_PROFILER.
8574
8575         * config/arm/netbsd.h (FUNCTION_PROFILER): Rename to
8576         ARM_FUNCTION_PROFILER.
8577
8578         * config/arm/linux-oldld.h: Imported from mainline sources.
8579
8580         2000-02-07  Nick Clifton  <nickc@cygnus.com>
8581
8582         * config/arm/lib1funcs.asm: Merge in thumb functions from
8583         lib1thumb.asm.
8584
8585         * config/arm/lib1thumb.asm: Delete.
8586
8587         2000-02-04  Nick Clifton  <nickc@cygnus.com>
8588
8589         * config/arm/arm.c: Sychronised with current Red hat local
8590         sources.
8591         * config/arm/arm.h: Ditto.
8592         * config/arm/arm-protos.h: Ditto.
8593
8594         2000-02-02  Bernd Schmidt  <bernds@cygnus.co.uk>
8595
8596         * arm.c (soft_df_operand): Reject SUBREGs containing a constant.
8597
8598         * arm.c (arm_gen_movstrqi): Generate halfword stores rather than two
8599         byte stores.
8600
8601         2000-02-02  Nick Clifton  <nickc@cygnus.com>
8602
8603         * config/arm/thumb.c (thumb_exit): Additional fix for same bug.
8604
8605         * config/arm/arm.md (epilogue): Fix rtl checking abort because
8606         (return) was emited using an emit_insn() call.
8607
8608         2000-01-31  Nick Clifton  <nickc@cygnus.com>
8609
8610         * config/arm/arm.c (output_thumb_prologue): Fix bug generating
8611         thumb stack frame.
8612         (thumb_exit): Move frame pointer back into hard frame pointer
8613         register if backtracing is being used.
8614
8615         2000-01-13  Richard Earnshaw (rearnsha@arm.com)
8616
8617         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000113
8618         into branch.
8619
8620         1999-12-15  Bernd Schmidt  <bernds@cygnus.co.uk>
8621
8622         * config/arm/arm.md (neg_pool_offset): Provide default for new
8623         attribute.
8624         (arm_movsi_insn): Add neg_pool_offset attribute.
8625         * config/arm/arm.c (arm_find_barrier): Replace arg FIX with an
8626         rtx for the insn that starts the scan and an unsigned long for its
8627         address.  Add MIN_OFFSET and PINSERTED args.  All callers changed.
8628         Change scan to ignore insns before MIN_OFFSET.  Store size of inserted
8629         instructions in *PINSERTED.
8630         (struct minipool_fixup): Add MIN_ADDRESS elt.
8631         (sort_fixups): Compute it.
8632         (arm_reorg): Changes to support inserting pools before the insn to be
8633         fixed up.
8634
8635         1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
8636
8637         * config/arm/elf.h (MULTILIB_DEFAULTS): Add "marm".
8638         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Add "marm".
8639         * config/arm/coff.h (MULTILIB_DEFAULTS): Add "marm".
8640
8641         Wed Nov  3 10:04:07 1999  Nick Clifton  <nickc@cygnus.com>
8642
8643         * config/arm/semi.h (TARGET_VERSION): Do not define if already
8644         defined.
8645         (TARGET_DEFAULT): Do not define if already defined.
8646
8647         Tue Nov  2 10:37:25 1999  Nick Clifton  <nickc@cygnus.com>
8648
8649         * config/arm/arm.md (anddi3): Allow disjoint source operands.
8650         (iordi3): Allow disjoint source operands.
8651         (xordi3): Allow disjoint source operands.
8652         (negdi2): Permit construction for ARM and Thumb.
8653         (arm_negdi2): Renamed version of old negdi2 pattern.
8654         (thumb_negdi2): New pattern: Only permit non-overlapping
8655         source and destination.
8656
8657         Fri Oct 29 18:52:38 1999  Nick Clifton  <nickc@cygnus.com>
8658
8659         * config/arm/arm.c (thumb_expand_prologue): Emit a USE of the
8660         scratch low register so that it will not be deleted.
8661
8662         Fri Oct 29 15:23:48 1999  Nick Clifton  <nickc@cygnus.com>
8663
8664         * config/arm/pe.h (ARM_PE): Define.
8665
8666         * config/arm/arm.c (arm_valid_machine_decl_attribute): Allow
8667         interfacearm attribute if this is a PE toolchain.
8668         (output_return_instruction): Do not emit anything if the function
8669         has the naked attribute set.
8670         (is_called_in_ARM_mode): If the function has the interfacearm
8671         attribute then return true.
8672         (thumb_expand_prologue): Do not generate a prologue for naked
8673         functions.
8674         (thumb_expand_epilogue): Do not generate an epilogie for a naked
8675         function.
8676         (output_thumb_prologue): Do not bother if the function is naked.
8677         Strip PE encoding from function name before emitting.
8678
8679         Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
8680
8681         * arm.md (pic_load_addr): Fix constraints.
8682
8683         * arm.md (casesi_insn): Fix mis-applied patch.
8684
8685         * arm.md ("core" function unit): Add rules for single- and
8686         multi-cycle insns.
8687         (All TARGET_THUMB patterns): Add "type" attribute information
8688         where needed.
8689         * arm.c (arm_adjust_cost): Reduce the cost of a data dependency if
8690         the following insn is a CALL.
8691
8692         * arm.c (thumb_expand_epilogue): Add a use of the adjusted stack
8693         pointer.
8694         * arm.h (CONDITIONAL_REGISTER_USAGE): Nail down the
8695         ARM_HARD_FRAME_POINTER_REGNUM when TARGET_APCS_FRAME.
8696         (FRAME_POINTER_REQUIRED): Only check TARGET_APCS_FRAME if TARGET_ARM.
8697
8698         Wed Oct 27 14:40:48 1999  Nick Clifton  <nickc@cygnus.com>
8699
8700         * config/arm/linux-gas.h: oops - this file was missed out when the
8701         branch was created...
8702
8703         Tue Oct 26 17:07:38 1999  Richard Earnshaw <rearnsha@arm.com>
8704
8705         * thumb.c: Deleted.  Move contents to ...
8706         * arm.c: ... here.
8707         * t-arm-aout, t-arm-coff, t-arm-elf, t-linux, t-netbsd, t-semi: Remove
8708         rule for thumb.o
8709         * configure.in (arm*-*-*): Remove thumb.o from extra_objs list.
8710         * configure: Regen.
8711
8712         * arm-protos.h: Use RTX_CODE and tidy up long lines.  Don't
8713         declare a prototype for asm_output_align();
8714
8715         * arm.c (thumb_condition_code): Delete.
8716         (arm_print_operand): Always use arm_condition_code array.
8717
8718         * arm.c (thumb_return_addr_rtx): Delete.
8719         (arm_save_machine_status, arm_restore_machine_status): Delete.
8720         (arm_init_machine_status, arm_mark_machine_status): New functions.
8721         (arm_init_expanders): Update accordingly.
8722         (arm_return_addr): Renamed from arm_return_addr_rtx.  Rewrite.
8723         (thumb_expand_prologue): Delete code referencing thumb_return_addr_rtx.
8724         * arm.h (RETURN_ADDR_RTX): Call arm_return_addr().
8725
8726         Tue Oct 26 13:24:16 1999  Nick Clifton  <nickc@cygnus.com>
8727
8728         * configure.in : Fix arm-*-aout target to use new t-arm-aout
8729         script.
8730         * config/arm/t-arm-aout: New file: Makefile script for arm-*-aout
8731         targets.
8732
8733         Tue Oct 26 11:27:12 1999  Nick Clifton  <nickc@cygnus.com>
8734
8735         * config/arm/thumb.c (output_thumb_prologue): Fix bug creating
8736         stack backtrace structure.
8737
8738         * config/arm/arm-protos.h: Add prototypes for functions defined in
8739         arm/pe.h.
8740
8741         * config/arm/arm.c (arm_override_options): Fix selection of
8742         attributes of default processor.
8743
8744         * config/arm/coff.h: Delete needless #include.
8745
8746         * config/arm/pe.c: Delete unused code.
8747
8748         * config/arm/pe.h (CPP_DEFINES): Delete
8749         (SUBTARGET_CPP_SPEC): Define.
8750         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
8751
8752         * config/arm/t-pe: Add -DInhibit_libc to allof libgcc.a to build.
8753
8754         Mon Oct 25 15:42:09 1999  Richard Earnshaw (rearnsha@arm.com)
8755
8756         * arm.h (TARGET_APCS_FRAME): Renamed from TARGET_APCS -- all uses
8757         updated.
8758         (CAN_DEBUG_WITHOUT_FP): Define.
8759         (FIXED_REGISTERS): Make r11 call-saved.
8760         (CALL_USED_REGISTERS): Likewise.
8761         (CONDITIONAL_REGISTER_USAGE): Fix r11 if TARGET_APCS_FRAME.
8762         (FRAME_POINTER_REQUIRED): Correct logic for determining when a
8763         frame-pointer is required.
8764         (TARGET_DEFAULT): Make default setting include ARM_FLAG_APCS_FRAME.
8765         * arm.c (arm_override_options): Warn about -mno-apcs-frame and -g
8766         if the target normally needs a stack frame in non-leaf functions.
8767         (use_return_insn): Correct logic for determining when a return
8768         instruction can be used.
8769         (output_return_instruction): Handle the frame-pointer register as
8770         a normal register when not TARGET_APCS_FRAME.
8771         (arm_output_prologue): Likewise.
8772         (arm_output_epilogue): Likewise.
8773         (output_func_epilogue): Likewise.
8774         (arm_expand_prologue): Likewise.
8775         * netbsd.h semi.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_FRAME.
8776
8777         * arm.c (use_return_insn): No need to check floating point regs if
8778         TARGET_SOFT_FLOAT.
8779         (arm_find_minipool_constant): Correct typo; use GET_CODE to get
8780         the code of value stored in the minipool array.
8781         (arm_add_minipool_constant): Likewise.
8782
8783 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8784
8785         * basic-block.h (conflict_graph_enum_fn): K&R fix.
8786
8787 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8788
8789         * tree.c (tree_expr_nonnegative_p): New function.
8790
8791         * tree.h (tree_expr_nonnegative_p): Declare.
8792
8793         * c-typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to
8794         elide some sign_compare warnings.
8795         (build_conditional_expr): Likewise.
8796
8797 Sat Apr  8 00:21:51 EDT 2000  John Wehle  (john@feith.com)
8798
8799         * i386.md (ashrsi3, ashrhi3, ashrqi3): Fix typo.
8800
8801         * i386.md (floathisf2, floathidf2, floathixf2): New patterns.
8802         * i386.c (print_operand): Use the proper suffix for a 387 HImode
8803         operand.  Abort if a 387 operand has an unsupported size.
8804
8805 2000-04-08  Neil Booth  <NeilB@earthling.net>
8806
8807         * cppexp.c (parse_charconst): Null does not end character
8808         constants.
8809         * cppinit.c (ISTABLE): Null character handled as whitespace.
8810         * cpplex.c (null_warning):  new function.
8811         (skip_string): Emit warning if nulls encountered.
8812         (_cpp_skip_hspace): Emit warning if nulls encountered.
8813         (_cpp_lex_token): Emit warning if nulls encountered.  Drop
8814         them.
8815         * cpp.texi: Update.
8816
8817 2000-04-07  Richard Henderson  <rth@cygnus.com>
8818
8819         * flow.c (loop_depth): Remove.
8820         (reg_next_use, cc0_live, mem_set_list): Replace with ...
8821         (struct propagate_block_info): New.
8822         (life_analysis): Don't allocate reg_next_use.
8823         (propagate_block_delete_insn): Break out of propagate_block.
8824         Use flow_delete_insn to unlink rather than use NOTE_INSN_DELETED.
8825         (propagate_block_delete_libcall): Likewise.
8826         (propagate_block): Create a propagate_block_info struct to pass
8827         to subroutines.  Allocate one not two temporary regsets.  Don't
8828         clobber memory for const calls.  Look for clobbers in
8829         CALL_INSN_FUNCTION_USAGE.
8830         (mark_set_regs): Recognize COND_EXEC.
8831         (mark_set_reg): Break out of mark_set_1.
8832         (mark_used_reg): Break out of mark_used_regs.
8833         (mark_used_regs): Recognize COND_EXEC.
8834         (insn_dead_p): Use propagate_block_info struct.
8835         (libcall_dead_p, invalidate_mems_from_autoinc): Likewise.
8836         (find_auto_inc, try_pre_increment_1): Likewise.
8837         (print_rtl_with_bb): Dump regs live at end too.
8838         (count_reg_sets_1): Pass in loop_depth.
8839         (count_reg_sets, count_reg_references): Likewise.
8840         (recompute_reg_usage): Provide it.
8841
8842 2000-04-07  Richard Henderson  <rth@cygnus.com>
8843
8844         * Makefile.in (conflict.o): Depend on $(RTL_H) and $(BASIC_BLOCK_H)
8845         not the raw files.
8846
8847 2000-04-07  Zack Weinberg  <zack@wolery.cumb.org>
8848
8849         * cpplib.c (do_elif): Skip the rest of the line if we're
8850         not going to bother evaluating it.
8851         (skip_if_group): Clear pfile->only_seen_white.  Reorder loop
8852         to avoid pointless calls to the lexer.
8853
8854 Fri Apr  7 11:50:54 2000  Jim Wilson  <wilson@cygnus.com>
8855
8856         * config/ia64/ia64.c: Delete stdio.h and ctype.h includes.
8857
8858 2000-04-07  Jason Merrill  <jason@casey.cygnus.com>
8859
8860         * calls.c (expand_call): emit_queue if we're trying a sibcall.
8861
8862 2000-04-07  Jakub Jelinek  <jakub@redhat.com>
8863
8864         * config/sparc/t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove.
8865
8866 2000-04-06  Geoff Keating  <geoffk@cygnus.com>
8867
8868         * Makefile.in: Build crtbeginS and crtendS like crtbegin and
8869         crtend so they can be multilibbed.
8870         (STAGESTUFF): Remove s-crt and s-crtS.
8871
8872 2000-04-07  Richard Henderson  <rth@cygnus.com>
8873
8874         * config/alpha/alpha.c (alpha_emit_conditional_move): Fail
8875         if we discover we need a pseudo and no_new_pseudos is true.
8876         * config/alpha/alpha.md (ne:DI insn): New.
8877         (trunctfsf2, sne): Emit NE instead of non-canonical LTU.
8878
8879 2000-04-07  Richard Henderson  <rth@cygnus.com>
8880
8881         * rtl.def (COND_EXEC): New.
8882         * rtl.h (COND_EXEC_TEST, COND_EXEC_CODE): New.
8883         * tm.texi (MAX_CONDITIONAL_EXECUTE): Document.
8884
8885         * genconfig.c (have_cond_arith_flag): Remove.
8886         (have_cond_exec_flag): New.
8887         (walk_insn_part): Detect COND_EXEC, not arithmetic in IF_THEN_ELSE.
8888         (main): Print HAVE_conditional_execution.
8889
8890         * haifa-sched.c (haifa_classify_insn): Recognize COND_EXEC.
8891         (sched_analyze_insn, print_pattern): Likewise.
8892         * reload.c (find_equiv_reg): Likewise.
8893         * rtlanal.c (reg_referenced_p): Likewise.
8894         (note_stores, dead_or_set_regno_p): Likewise.
8895         (reg_overlap_mentioned_p): Rewrite to use a switch.
8896
8897         * ggc.h (struct rtx_def): Forward declare.
8898
8899         * print-rtl.c (debug_rtx_range): New.
8900         * rtl.h (debug_rtx_range): Declare.
8901
8902         * varray.h (VARRAY_ACTIVE_SIZE, VARRAY_POP_ALL): New.
8903
8904         * gcse.c (gcse_main): Don't rebuild the CFG here.
8905         (delete_null_pointer_checks): Likewise.
8906         * ssa.c (convert_to_ssa): Likewise.
8907         * toplev.c (rest_of_compilation): Do it here instead.  Combine
8908         sequential calls to TIMEVAR.  Consistently use `insns' instead of
8909         `get_insns()'.  Always split insns after reload when optimizing.
8910
8911         * basic-block.h (merge_blocks_nomove): Declare.
8912         (tidy_fallthru_edge): Declare.
8913         * flow.c (merge_blocks_nomove): Document as merging into previous
8914         blocks.  Remove cruft from between blocks; remove all edges out of A.
8915         (tidy_fallthru_edge): Export.
8916
8917 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
8918
8919         * ssa.c (compute_conservative_reg_partition): Declare with
8920         void arguments.
8921         * toplev.c (clean_dump_file): Remove previously-deleted function
8922         inadvertantly merged back in.
8923         * conflict.c (conflict_graph_add): Use a single call to
8924         htab_find_slot to look up and insert.
8925
8926 2000-04-06  Richard Henderson  <rth@cygnus.com>
8927
8928         * genrecog.c (*): Rename _last_insn to last_insn.
8929         (make_insn_sequence): Set the position of the peephole2 C test
8930         to be at the last insn.
8931
8932 2000-04-06  Richard Henderson  <rth@cygnus.com>
8933
8934         * flow.c (compute_flow_dominators): Free worklist.
8935
8936 2000-04-06  Michael Matz  <matzmich@cs.tu-berlin.de>
8937
8938         * flow.c (compute_flow_dominators): Process blocks FIFO not LIFO.
8939
8940 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
8941
8942         * rtl.h (INSN_P): New macro.
8943         (successor_phi_fn): New typedef.
8944         (for_each_successor_phi): New prototype.
8945         (in_ssa_form): New variable.
8946         (PHI_NODE_P): Likewise.
8947         * flow.c (calculate_global_regs_live): Add to new_live_at_end from
8948         phi nodes in successors.
8949         (mark_used_regs): Add PHI case.
8950         (set_phi_alternative_reg): New function.
8951         (life_analysis): Assert that dead code elimination is not selected
8952         when in SSA form.
8953         * toplev.c (to_ssa_time): New variable.
8954         (from_ssa_time): Likewise.
8955         (compile_file): Zero to_ssa_time and from_ssa_time.
8956         Print time to convert to and from SSA.
8957         (rest_of_compilation): Time convert_to_ssa and convert_from_ssa.
8958         (print_time): Compute percent fraction as integer.
8959         * ssa.c (PHI_NODE_P): Moved to rtl.h.
8960         (convert_to_ssa): Check if we're already in SSA.
8961         Don't eliminate dead code in life_analysis.
8962         Rerun flow and life analysis at bottom.
8963         (eliminate_phi): Use canonical regnos when adding nodes.
8964         (mark_reg_in_phi): New function.
8965         (mark_phi_and_copy_regs): Likewise.
8966         (convert_from_ssa): Rerun life analysis at top.
8967         Use coalesced partition.
8968         Check for removing a phi node at the end of the block.
8969         (compute_coalesced_reg_partition): New function.
8970         (coalesce_regs_in_copies): Likewise.
8971         (coalesce_reg_in_phi): Likewise.
8972         (coalesce_regs_in_sucessor_phi_nodes): Likewise.
8973         (for_each_successor_phi): Likewise.
8974         (rename_context): New struct.
8975         (rename_block): Use a rename_context with rename_insn_1.  When
8976         renaming sets of a subreg, emit a copy of the entire reg first.
8977         (rename_insn_1): Treat data as a rename_context *.  Save current
8978         insn in set_data.
8979         (rename_set_data): Add field set_insn.
8980         * Makefile.in (HASHTAB_H): Move up in file.
8981         (OBSTACK_H): New macro.
8982         (collect2.o): Use OBSTACK_H in dependencies.
8983         (sdbout.o): Likewise.
8984         (emit-rtl.o): Likewise.
8985         (simplify-rtx.o): Likewise.
8986         (fix-header.o): Likewise.
8987         (OBJS): Add conflict.o.
8988         (conflict.o): New rule.
8989         * basic-block.h: Include partition.h.
8990         (conflict_graph): New typedef.
8991         (conflict_graph_enum_fn): Likewise.
8992         (conflict_graph_new): New prototype.
8993         (conflict_graph_delete): Likewise.
8994         (conflict_graph_add): Likewise.
8995         (conflict_graph_conflict_p): Likewise.
8996         (conflict_graph_enum): Likewise.
8997         (conflict_graph_merge_regs): Likewise.
8998         (conflict_graph_print): Likewise.
8999         (conflict_graph_compute): Likewise.
9000         * conflict.c: New file.
9001
9002 2000-04-06  Jason Merrill  <jason@yorick.cygnus.com>
9003
9004         * tlink.c (read_repo_files): Don't look for .rpo info for
9005         linker flags.
9006
9007 Thu Apr  6 20:39:26 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9008
9009         * sh.h (STRUCT_VALUE, RETURN_IN_MEMORY): Define.
9010
9011 Thu Apr  6 19:34:08 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9012
9013         * config/sh/lib1funcs.asm (___udivsi3_i4):
9014         ( __SH4_SINGLE__ / __SH4_SINGLE_ONLY__ variant): value for fpscr
9015         only depends on FMOVD_WORKS.
9016
9017 Thu Apr  6 19:11:47 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9018
9019         * config/sh/lib1funcs.asm (___udivsi3_i4): When using fmovd,
9020         make double constant 8-byte aligned.
9021
9022 2000-04-06  Jakub Jelinek  <jakub@redhat.com>
9023
9024         * config/sparc/sparc.md (movtf_insn_sp32, movtf_insn_vis_sp32,
9025         movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_hq_vis_sp64,
9026         movtf_no_e_insn_sp64): Accept loading 0.0 into GENERAL_REGS.
9027         (movtf_insn_sp64, movtf_insn_vis_sp64): Likewise.
9028         Accept storing GENERAL_REGS into offsetable memory.
9029         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Don't allow
9030         building a TFmode constant other than 0.0L into GENERAL_REGS.
9031
9032 2000-04-06  Clinton Popetz  <cpopetz@cygnus.com>
9033
9034         * regrename.c (regrename_optimize): Handle no REG_ALLOC_ORDER.
9035
9036 2000-04-06  Zack Weinberg  <zack@wolery.cumb.org>
9037
9038         * cpphash.c (CPP_IS_MACRO_BUFFER, FORWARD, PEEKC): Delete.
9039         (macro_cleanup): No need to cast pbuf->macro.
9040         (collect_expansion): Use _cpp_get_define_token.  Goto done if
9041         it returns VSPACE.  Remove check for trailing space after
9042         CPP_COMMENT.
9043         (_cpp_create_definition): Don't diddle flags here.  Return
9044         directly on error.
9045         (unsafe_chars): Handle c1 being EOF.
9046         (push_macro_expansion): Use unsafe_chars for both accidental-paste
9047         checks.  Don't push the buffer till after we're done with
9048         them.
9049         * cpplex.c (PEEKBUF, GETBUF, FORWARDBUF): New.
9050         (PEEKN, FORWARD, GETC, PEEKC): Use them.
9051         (cpp_push_buffer): Don't set new->alimit.  Set new->mark
9052         appropriately.
9053         (_cpp_parse_assertion): Don't NUL terminate.
9054         (_cpp_lex_token): Fix -traditional macro handling.  Don't skip
9055         hspace before calling _cpp_parse_assertion.  Remove all sets
9056         of only_seen_white. Treat '\f' as hspace.  Don't do anything
9057         special with '\n' here.
9058         (maybe_macroexpand): Handle T_EMPTY hash entries without
9059         pushing a buffer at all.
9060         (cpp_get_token): Handle clearing only_seen_white here.  Handle
9061         incrementing the line number here.  Clear
9062         potential_control_macro as well as only_seen_white, if
9063         appropriate.
9064         (cpp_get_non_space_token): Don't eat CPP_POP tokens.
9065         (_cpp_get_define_token): New function, basically like
9066         _cpp_get_directive_token was but doesn't eat horizontal space.
9067         Don't do anything with only_seen_white here.
9068         (_cpp_get_directive_token): Just call _cpp_get_define_token
9069         repeatedly till it returns non-hspace.
9070
9071         * cpplib.c (PEEKN, FORWARD, GETC, PEEKC): Delete.
9072         (conditional_skip, skip_if_group): Return int.
9073         (DIRECTIVE_TABLE): Change origin of all conditional directives
9074         to "COND".
9075         (TRAD_DIRECT_P): New macro.
9076         (_cpp_handle_directive): Use _cpp_get_directive_token.  Issue
9077         an error for a bogus directive, unless -lang-asm.  Use
9078         TRAD_DIRECT_P. Loop calling handler functions till one returns
9079         zero.
9080         (get_macro_name): Don't diddle flags here.
9081         (do_define): Diddle flags here.  Use _cpp_get_directive_token.
9082         Create T_EMPTY nodes for #define macro /* nothing */.
9083         (do_undef): Don't copy the name.  Use _cpp_get_directive_token.
9084         Use hp->name when calling pass_thru_directive.
9085         (do_if, do_else, do_elif, do_ifdef, do_ifndef, conditional_skip):
9086         Return the result of conditional_skip and/or skip_if_group.
9087         Don't call _cpp_output_line_command.
9088         (consider_directive_while_skipping): Use _cpp_get_directive_token.
9089         Issue -Wtraditional warnings as appropriate.  Don't complain
9090         about unrecognized directives.  If we are to stop skipping,
9091         return the number of the directive that ended the skip.
9092         (skip_if_group): Use _cpp_get_directive_token.  Turn off macro
9093         expansion and line commands while skipping.  Return the result
9094         of consider_directive_while_skipping, if nonzero.
9095         (do_endif): Just set potential_control_macro here.
9096         (validate_else): Use _cpp_get_directive_token.
9097         (do_assert, do_unassert): Don't save pointers into the
9098         token_buffer across calls to the lexer.  Use
9099         _cpp_get_directive_token.
9100
9101         * cpplib.h (cpp_buffer): Remove alimit and colno.  Make mark a
9102         pointer, not an offset.  Replace 'data', which was a generic
9103         pointer, with 'macro', which points to a struct hashnode.
9104         (cpp_reader): Add 'potential_control_macro' pointer.
9105         * cpphash.h (T_UNUSED): Replace with T_EMPTY.
9106         (CPP_BUF_GET, CPP_FORWARD): Delete.
9107         (CPP_IN_COLUMN_1, ADJACENT_TO_MARK): New macros.
9108         (CPP_IS_MACRO_BUFFER, CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK,
9109         ACTIVE_MARK_P): Update.
9110         (_cpp_get_define_token): New internal function.
9111         * cppfiles.c (read_include_file): Don't set fp->alimit or fp->colno.
9112
9113 2000-04-05   Benjamin Kosnik  <bkoz@cygnus.com>
9114
9115         * configure.in: And here.
9116         * configure: Regenerate.
9117         * acconfig.h: Add ENABLE_STD_NAMESPACE to set flag_honor_std if
9118         --enable-libstdcxx-v3 is passed at configure time.
9119         * config.h.in: Regenerate.
9120
9121 2000-04-05  Mark Mitchell  <mark@codesourcery.com>
9122
9123         * final.c (final): Use xcalloc to allocate line_note_exists.
9124         * function.c (free_after_compilation): Free the temp_slots.
9125         (assign_stack_temp_for_type): Use xmalloc to allocate temp_slots.
9126         (combine_temp_slot): Free temp_slots when they get combined.
9127         (purge_addressof): Fix typo in comment.
9128         * stmt.c (mark_goto_fixup): Mark the fixup itself.
9129         (expand_fixup): Allocate the fixup with ggc_alloc_obj.
9130
9131         * ggc.h: Include varray.h.
9132         (ggc_pending_trees): Declare.
9133         (ggc_mark_tree_children): Remove declaration.
9134         (ggc_mark_tree): Just push unmarked trees on ggc_pending_trees.
9135         * ggc-common.c (ggc_pending_trees): New variable.
9136         (ggc_mark_roots): Call ggc_mark_trees.
9137         (ggc_mark_tree_children): Rename to ggc_mark_trees.  Process all
9138         the ggc_pending_trees.
9139         * Makefile.in (GGC_H): New variable.  Use it throughout in place
9140         of ggc.h.
9141
9142 Thu Apr  6 00:30:50 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9143
9144         * sh.h (FUNCTION_ARG_PARTIAL_NREGS): Accomodate an unsigned
9145         GET_MODE_SIZE.
9146
9147 Wed Apr  5 23:17:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9148
9149         * sh.c (sh_insn_length_adjustment): New function.
9150         * sh-protos.h (sh_insn_length_adjustment): Declare.
9151         * sh.h (ADJUST_INSN_LENGTH): Use it.
9152
9153 Wed Apr  5 12:35:18 2000  Hans-Peter Nilsson  <hp@axis.com>
9154
9155         * optabs.c (emit_libcall_block): Remove spurious REG_EQUAL notes
9156         from the insn where REG_RETVAL is added.
9157         (emit_no_conflict_block): Ditto.
9158
9159         * md.texi (Standard Names): Clarify when movX is needed.
9160
9161         * combine.c (simplify_comparison) [MINUS]: Do not replace
9162         all (op (minus A B) 0) with (op A B).
9163
9164 Wed Apr  5 18:03:31 2000  Toshiyasu Morita  (toshi.morita@sega.com)
9165                           J"orn Rennecke <amylaar@cygnus.co.uk>
9166
9167         * sh.md (block_lump_real_i4): Add missing clobber of T_REG
9168         (block_lump_real): Likewise.
9169
9170 2000-04-05  Chris Demetriou  <cgd@netbsd.org>
9171
9172         * mips.h (MASK_DEBUG_A, MASK_DEBUG_B, MASK_DEBUG_C): Zero the
9173         remaining non-zero debugging masks.
9174
9175 Wed Apr  5 09:44:07 2000  Jeffrey A Law  (law@cygnus.com)
9176
9177         * basic-block.h (verify_flow_info): Declare.
9178         (flow_loop_outside_edge_p): Declare.
9179         * flow.c (verify_flow_info): Remove declaration.
9180         (clear_log_links, flow_loop_outside_edge_p): Likewise.
9181
9182 Wed Apr  5 09:34:26 2000  Philippe De Muyter <phdm@macqel.be>
9183
9184         * m68k/m68k-protos.h (finalize_pic): Turn prototype off using `#if 0',
9185         not C++ comments.
9186
9187 2000-04-05  Jakub Jelinek  <jakub@redhat.com>
9188
9189         * config/sparc/sparc.md (snedi_zero+1, neg_snedi_zero+1,
9190         snedi_zero_trunc+1, seqdi_zero+1, neg_seqdi_zero+1,
9191         seqdi_zero_trunc+1): Allow splits only if registers are
9192         different.
9193
9194 2000-04-04  Ulrich Drepper  <drepper@cygnus.com>
9195
9196         * acconfig.h: Add HAVE_GAS_HIDDEN.
9197         * config.in: Regenerated.
9198         * configure.in: Add test for .hidden pseudo-op in gas.
9199         * configure: Regenerated.
9200         * crtstuff.c: Include auto-host.h.
9201         Emit additional .hidden pseudo-op for __dso_handle if the
9202         assembler knows about it.
9203
9204 2000-04-04  Philippe De Muyter  <phdm@macqel.be>
9205
9206         * cpphash.c (_cpp_free_definition): Test argnames, not nargs >= 0,
9207         before freeing argnames.
9208         * cpplib.c (do_ifndef): Cast return value of xstrdup.
9209
9210 2000-04-05  Michael Meissner  <meissner@redhat.com>
9211
9212         * config/rs6000/rs6000.c (print_operand): Patch from Jonathan
9213         Walton <jonboy@gordian.com> to make memory references with update
9214         work wtih -mregnames.
9215
9216 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9217
9218         * regrename.c (regno_first_use_in): Wrap prototype in PARAMS.
9219         (regrename_optimize): Rename variables `def_uses' and
9220         `ext_basic_blocks' to avoid conflicts with similarly named
9221         typedefs in traditional C.
9222
9223         * calls.c (initialize_argument_information): Fix typo in previous
9224         change.
9225
9226 2000-04-04  Richard Henderson  <rth@cygnus.com>
9227
9228         * regrename.c (consider_available): Test fixed_regs not
9229         PIC_OFFSET_TABLE_REGNUM.
9230
9231 2000-04-04  Geoff Keating  <geoffk@cygnus.com>
9232
9233         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbegin,
9234         crtend.
9235         (CRTSTUFF_T_CFLAGS_S): Delete definition.
9236         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Always use crtbegin.
9237         (ENDFILE_LINUX_SPEC): Always use crtend.
9238         * configure.in (powerpc-*-linux-gnulibc1): Don't define extra_parts.
9239         (powerpc-*-linux-gnu): Likewise.
9240         * configure: Regenerate.
9241
9242         * config/rs6000/eabi.h: Don't include sysv4.h.
9243         (MULTILIB_DEFAULTS): Don't define.
9244         * config/rs6000/eabiaix.h: Don't include eabi.h.
9245         * config/rs6000/eabile.h: Delete.
9246         * config/rs6000/eabilesim.h: Delete.
9247         * config/rs6000/eabisim.h: Don't include eabi.h.
9248         * config/rs6000/linux.h: Don't include sysv4.h.
9249         (JUMP_TABLES_IN_TEXT_SECTION): Don't redefine.
9250         (MULTILIB_DEFAULTS): Don't redefine.
9251         * config/rs6000/rtems.h: Don't include eabi.h.
9252         * config/rs6000/sol2.h: Don't include sysv4le.h.
9253         * config/rs6000/sysv4le.h: Don't include sysv4.h.
9254         * config/rs6000/t-ppc: Delete.
9255         * config/rs6000/t-ppcgas: Correct comment.
9256         * config/rs6000/t-ppcos: Correct comment.  Don't build
9257         multilibs for -fPIC, rather use -fPIC -mstrict-align
9258         as default.
9259         * config/rs6000/t-ppc: Delete.
9260         * config/rs6000/vxppc.h: Don't include sysv4.h.
9261         * config/rs6000/vxppcle.h: Delete.
9262         * configure.in: Use multiple header files for p2pc ELF targets
9263         powerpc-eabiaix, powerpc-eabisim, powerpc-rtems, powerpcle-eabi,
9264         powerpcle-eabisim, powerpc-elf, powerpcle-elf, powerpc-linux-gnu,
9265         powerpc-linux-gnulibc1, powerpc-sysv, powerpcle-sysv,
9266         powerpc-vxworks, powerpcle-vxworks.  Assume GAS functionality is
9267         always available for these platforms.
9268
9269 2000-04-04  Richard Henderson  <rth@cygnus.com>
9270
9271         * calls.c (try_to_integrate): Initialize reg_parm_stack_space.
9272
9273 2000-04-04  Stan Cox  <scox@cygnus.com>
9274
9275         * Makefile.in: Add rules for regrename.o
9276         * regrename.c: New file.
9277         * rtl.h (regrename_optimize): Add prototype.
9278         * toplev.c (rename_registers_dump, flag_rename_registers): New variables
9279         (compile_file, decode_d_option): Add support for -frename-registers.
9280         (rest_of_compilation): Call regrename_optimize.
9281         * config/ia64/ia64.h (HARD_REGNO_RENAME_OK, RENAME_EXTENDED_BLOCKS):
9282         New macros.
9283
9284 2000-04-04  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
9285
9286         * Makefile (gccbug): New target.
9287         (doc): Depend on it.
9288         * gcc.texi (Bugs): Link subnodes.
9289         (gccbug): New node.
9290         * gccbug.in (CATEGORIES): Remove gc, host, profiling, libgcc.
9291         Document severities, priorities, and classes in bug form.
9292
9293 2000-04-04  Zack Weinberg  <zack@wolery.cumb.org>
9294
9295         * cpplex.c (trigraph_map, speccase): Combine into single
9296         table, chartab.
9297         (NORMAL, NONTRI): New macros.
9298         (_cpp_read_and_prescan): Change to use unified table.  Use
9299         is_hspace to test for whitespace.
9300
9301         * dbxout.c (CONTIN): If it doesn't have to do anything, give it a
9302         definition that doesn't provoke the "empty body in an
9303         if-statement" warning.
9304
9305 2000-04-04  Clinton Popetz  <cpopetz@cygnus.com>
9306
9307         * builtins.c (expand_builtin_strlen): Force the source to
9308         be a memory address.
9309
9310 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9311
9312         * cpplib.c (D): Adjust to call CONCAT2 macro without whitespace.
9313
9314 Tue Apr  4 19:17:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
9315
9316         * calls.c (ECF_MALLOC, ECF_MAY_BE_ALLOCA, ECF_RETURNS_TWICE,
9317          ECF_LONGJMP, ECF_FORK_OR_EXEC):  New constants.
9318         (ECF_IS_CONST): Rename to ECF_CONST.
9319         (special_function_p): Make static, change interface.
9320         (flags_from_decl_or_type, try_to_integrate): Break out from ...
9321         (expand_call) ... here; convert number of variables to flags.
9322         (emit_library_call_vlue_1): Likewise.
9323         (setjmp_call_p): New function.
9324         (initialize_argument_information): Accepts flags as argument;
9325         return flags.
9326         (precompute_arguments): Likewise.
9327         * tree.h (special_function_p): Remove.
9328         (setjmp_call_p): Add prototype.
9329
9330 2000-04-04  Jakub Jelinek  <jakub@redhat.com>
9331
9332         * config/sparc/sparc.h (RTX_OK_FOR_OFFSET_P): Leave minor margin
9333         so that addresses are offsetable by up to 16 bytes.
9334         (GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+REG addresses for
9335         non-optimizing TARGET_ARCH32 in DF or DI modes because it is not
9336         offsetable.
9337
9338         * config/sparc/sparc.md (movdi_insn_sp64_novis): New pattern.
9339         (movdi_insn_sp64_vis): Renamed from movdi_insn_sp64.
9340         (movsf): Don't force any constant to memory if target is integer
9341         hard register.
9342         Move fp_zero_operand check below the const0_rtx check.
9343         (movtf): Likewise. Also allow fp_zero_operand for stores into
9344         memory.
9345         (movdf): Likewise. Also allow fp_zero_operand for stores into
9346         memory and into integer hard registers.
9347         (clear_df, clear_dfp, movdf_const_intreg_sp32,
9348         movdf_const_intreg_sp64): Remove.
9349         (movdf_insn_sp32, movdf_no_e_insn_sp32): Redo constraints and
9350         conditions.
9351         (movdf_no_e_insn_v9_sp32): New pattern.
9352         (movdf_insn_v9only): Remove.
9353         (movdf_insn_v9only_novis, movdf_insn_v9only_vis): New patterns.
9354         (movdf_insn_sp64): Remove.
9355         (movdf_insn_sp64_novis, movdf_insn_sp64_vis): New patterns.
9356         (movdf_no_e_insn_sp64): Allow storing 0.0 into memory.
9357         (following splits): Rewrite conditions. Add two new splits
9358         for storing 0.0 into memory and registers.
9359         (clear_tf, clear_tf+1, clear_tfp, clear_tfp+1): Remove.
9360         (movtf_insn_sp32): Redo constraints and conditions.
9361         (movtf_insn_vis_sp32): New pattern.
9362         (movtf_no_e_insn_sp32): Redo constraints and conditions.
9363         (movtf_insn_hq_sp64): Likewise.
9364         (movtf_insn_hq_vis_sp64): New pattern.
9365         (movtf_insn_sp64): Redo constraints and conditions.
9366         (movtf_insn_vis_sp64): New pattern.
9367         (movtf_no_e_insn_sp64): Redo constraints and conditions.
9368         (movtf_no_e_insn_sp64+1): New split for storing 0.0L into registers
9369         or memory.
9370         * config/sparc/sparc.c (sparc_override_options): Assume v9 if either
9371         -mvis or -m64 to take down the number of various reload patterns.
9372
9373 Tue Apr  4 00:41:53 2000  Jeffrey A Law  (law@cygnus.com)
9374
9375         * pa/pa-64.h: New file.
9376         * pa/pa64-regs.h: New file.
9377         * pa/pa64-start.h: New file.
9378         * pa/t-pa64: New file.
9379         * pa/xm-pa64hpux.h: New file.
9380
9381 2000-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9382
9383         * sparc.c (output_restore_regs): Prototype.
9384         (sparc_emit_float_lib_cmp): Constification.
9385
9386         * emit-rtl.c (const_int_htab_hash, const_int_htab_eq): Likewise.
9387
9388         * reload1.c (reload_cse_delete_noop_set, reload_cse_simplify):
9389         Prototype.
9390
9391         * simplify-rtx.c (entry_and_rtx_equal_p): Constification.
9392         (get_value_hash, hash_rtx): Likewise.
9393
9394         * ssa.c (compute_conservative_reg_partition): Prototype.
9395
9396         * tree.c (mark_hash_entry): Prototype.
9397
9398 2000-04-03  Zack Weinberg  <zack@wolery.cumb.org>
9399
9400         * bb-reorder.c (verify_insn_chain): #ifdef out unless ENABLE_CHECKING.
9401         * i386.h (FUNCTION_ARG_REGNO_P): Remove unnecessary test for N >= 0.
9402         * i386.md (call_value, call_value_pop): Remove unused variable 'addr'.
9403
9404         * gcc.c (C specs): Pass -fno-show-column to the preprocessor.
9405         * objc/lang-specs.h: Likewise.
9406
9407 2000-04-03  Neil Booth  <NeilB@earthling.net>
9408
9409         * cppexp.c: wrap long lines.  New macros CPP_ICE, SYNTAX_ERROR
9410         and SYNTAX_ERROR2. Replace `' in messages with ''.
9411         (op_to_str): Make re-entrant.
9412         (_cpp_parse_expr): Implement new error macros. Use | rather
9413         than || to logically or 2 boolean integers.  Simply expression
9414         checking we have a left operand iff needed.
9415
9416 2000-04-03  Nick Clifton  <nickc@cygnus.com>
9417
9418         * Makefile.in (diagnostic.o): Depend upon diagnostic.c
9419
9420 2000-04-03  Philip Blundell  <philb@gnu.org>
9421
9422         * config/arm/linux-elf.h (SUBTARGET_EXTRA_LINK_SPEC): Fix typos.
9423
9424 2000-04-03  Felix Lee  <flee@cygnus.com>
9425
9426         * fixinc/server.c (find_shell): New function.  Avoid $SHELL.
9427         (run_shell): Use it.
9428
9429 2000-04-03  Jonathan Larmour  <jlarmour@redhat.co.uk>
9430
9431         * Makefile.in (stmp-int-hdrs): Make include subdir here...
9432         (stmp-fixproto): ...rather than here.
9433
9434 Mon Apr  3 00:50:06 2000  Jason Eckhardt <jle@cygnus.com>
9435
9436         * pa.c (print_operand): Compute 'base' only inside the code paths
9437         that use it.
9438
9439 2000-04-03  Geoffrey Keating  <geoffk@cygnus.com>
9440
9441         * stor-layout.c (byte_from_pos): Use TRUNC_DIV_EXPR rather than
9442         CEIL_DIV_EXPR.
9443
9444 2000-04-03  Philipp Thomas  <pthomas@suse.de>
9445
9446         * i386.h (TARGET_SWITCHES): Remove bogus empty strings, fix typo.
9447
9448 Mon Apr  3 00:02:59 2000  Brad Lucier <lucier@math.purdue.edu>
9449
9450         * Makefile.in (alias.o): Depend on $(TREE_H).
9451
9452 2000-04-02  Zack Weinberg  <zack@wolery.cumb.org>
9453
9454         * cppinit.c (cpp_start_read): Turn off -Wtraditional if
9455         processing C++.
9456         * cpplib.c (_cpp_handle_directive): Improve warnings for
9457         traditional C and indented directives.
9458
9459         * enquire.c, gsyslimits.h, limity.h, config/convex/fixinc.convex,
9460         fixinc/fixinc.irix, fixinc/fixinc.sco, fixinc/fixinc.wrap,
9461         fixinc/inclhack.def: Indent the # of #include_next one space.
9462         * cp/rtti.c: Un-indent #if and #endif.
9463
9464         * cppexp.c (_cpp_parse_expr): If lex returns '#', it's a
9465         syntax error, but an error has already been printed.
9466         * cpplex.c (_cpp_parse_assertion): Give a more specific error
9467         message when called with nothing remaining on the line.
9468         (_cpp_lex_token): If _cpp_parse_assertion fails, return an
9469         OTHER token, not an ASSERTION.
9470         * cpplib.c (do_assert): When we create a 'base' node, clear
9471         its aschain pointer.
9472
9473 2000-04-02  Neil Booth <NeilB@earthling.net>
9474
9475         * cppexp.c:  New typedef op_t.  struct operation and struct
9476         token updated to use it.
9477         (op_to_str): New function.
9478         (_cpp_parse_expr): Error messages modified to use op_to_str.
9479
9480 2000-04-02  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9481
9482         * config/c4x/c4x.c (c4x_function_arg): Check for void_type_node
9483         before checking MUST_PASS_IN_STACK.
9484
9485 2000-04-02  Neil Booth <NeilB@earthling.net>
9486
9487         * cppexp.c:  New FINISHED dummy token.  Combine operator initial
9488         flags and initial priority into a single constant.  New
9489         EQUALITY macro.  New operator flag SHORT_CIRCUIT.
9490         (_parse_cpp_expr): Implement new constants.  Take left operand
9491         checks out of reduction loop.  Handle SHORT_CIRCUIT.  End of
9492         parse indicated by reducing FINISHED token.  Remove new lines
9493         from cpp_error messages.
9494
9495 2000-04-01  Mark Mitchell  <mark@codesourcery.com>
9496
9497         * emit-rtl.c (gen_rtx_CONST_INT): Create cached CONST_INTs on the
9498         permanent obstack.
9499
9500 2000-04-01  Zack Weinberg  <zack@wolery.cumb.org>
9501
9502         * cpplib.c: Include symcat.h.  Add 'origin' field to struct
9503         directive.  Add origin values to DIRECTIVE_TABLE.  Generate
9504         the strings and function names on the fly.  Take the #sccs
9505         entry out of the table if SCCS_DIRECTIVE is not defined.
9506         (_cpp_handle_directive): Decide if the # was at the beginning
9507         of the line here.  Issue -pedantic warnings for extended
9508         directives here.  Warn about K+R directives with the #
9509         indented, and C89/extended directives with the # not indented,
9510         here.
9511         (do_import, do_include_next, do_warning, do_ident, do_sccs,
9512         do_assert, do_unassert): Don't issue pedantic warning here.
9513
9514         * cpphash.h: Add CPP_WTRADITIONAL macro.
9515         * cpplib.h (struct cpp_options): Rename warn_stringify to
9516         warn_traditional; update comments.
9517         * cppinit.c (handle_option): Set warn_traditional not
9518         warn_stringify.
9519         * cpphash.c: Replace CPP_OPTION (pfile, warn_stringify) with
9520         CPP_WTRADITIONAL (pfile).
9521         * cpplex.c (_cpp_lex_token): Don't decide if directives should
9522         be ignored in -traditional mode here.
9523
9524         * cpplex.c: Copy ISTABLE macros from cppinit.c, and adapt them
9525         to initialize speccase[] and trigraph_map[].  Delete all
9526         references to pfile->input_speccase.  Always treat '?' as a
9527         special character.  Remove table-initialization code from
9528         _cpp_init_input_buffer.
9529
9530         * cpplib.h (struct cpp_reader): Remove input_speccase field.
9531         * cppinit.c (cpp_cleanup): Don't free input_speccase.
9532
9533 2000-04-01  Richard Henderson  <rth@cygnus.com>
9534
9535         * Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once.
9536         (mostlyclean): Likewise.
9537
9538         * toplev.c (rtl_dump, jump_opt_dump, etc): Remove.
9539         (struct dump_file_info, enum dump_file_index, dump_file): New.
9540         (open_dump_file): Take a dump_file_index not a suffix, and a decl
9541         not a string.  Clean out file if we havn't yet done so.  Do nothing
9542         if the dump isn't enabled.
9543         (close_dump_file): Do nothing if the dump isn't open.  Dump
9544         graph data if requested.
9545         (dump_rtl, clean_dump_file): Remove.
9546         (compile_file): Don't clean the dump files.  Only finalize .bp dump
9547         if flag_test_coverage or flag_branch_probabilities.  Only finalize
9548         .combine dump if optimizing.  Iterate over dump_file to finalize the
9549         graph dumps.
9550         (rest_of_compilation): Update for open_dump_file/close_dump_file.
9551         Convert all uses of dump_rtl.
9552         (decode_d_option): Iterate over dump_file to implement 'a' and to
9553         locate pass-specific dumps.
9554
9555 2000-04-01  Neil Booth <NeilB@earthling.net>
9556
9557         * cppexp.c: Redefine priority constants.
9558         (_cpp_parse_expr): Replace left and right priority scheme with
9559         single priority logic.  Move LOGICAL to same place as COMPARE.
9560         Remove bogus check for multiple unary +/- operators.
9561
9562 2000-04-01  Neil Booth <NeilB@earthling.net>
9563
9564         * cppexp.c: (_cpp_parse_expr): Numerical constants are pushed
9565         within the switch statement.  Binary operations break out of
9566         the switch naturally.  '(' tokens handled by forcing
9567         immediate shift.  ')' handled by forcing immediate reduce to
9568         the previous '('.  New error messages.
9569
9570 2000-03-31  Geoff Keating  <geoffk@cygnus.com>
9571
9572         * config/rs6000/rs6000.c (print_operand): Don't use %l for 'low
9573         part', it's already in use.  Use %K instead.  Add a return at the
9574         end of what is now %K.
9575         * config/rs6000/rs6000.md (elf_low): Use %K instead of %l.
9576
9577 Sat Apr  1 02:05:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
9578
9579         * builtins.c  (expand_builtin_apply):  Pass proper parameters to
9580         allocate_dynamic_stack_space.
9581         * calls.c (emit_call_1):  Do not adjust stack pointer for SIB,
9582         update stack_pointer_delta; do not update arg_size_so_far.
9583         (compute_argument_block_size): Use stack_delta instead of
9584         stack_pointer_pending and arg_size_so_far.
9585         (expand_call): Add sanity checking for stack_pointer_delta;
9586         save and restore stack_pointer_delta for SIB, use
9587         stack_pointer_delta for alignment; do not update arg_space_so_far.
9588         (emit_library_call_value): Use stack_pointer_delta for alignment.
9589         (store_one_arg): Do not update arg_space_so_far.
9590         * explow.c (adjust_stack, anti_adjust_stack): Update
9591         stack_pointer_delta.
9592         (allocate_dynamic_stack_space): Add sanity checking for
9593         stack_pointer_delta.
9594         * expr.c (init_expr, clear_pending_stack_adjust): Clear
9595         stack_pointer_delta.
9596         (emit_push_insn): Update stack_pointer_delta.
9597         * function.h (struct expr_status): Add x_stack_pointer_delta;
9598         remove x_arg_space_so_far.
9599         (arg_space_so_far): Remove.
9600         (stack_pointer_delta): New macro.
9601
9602 2000-03-31  Zack Weinberg  <zack@wolery.cumb.org>
9603
9604         * cpplib.h: Merge struct cpp_options into struct cpp_reader.
9605         Reorder struct cpp_options and struct cpp_reader for better
9606         packing.  Replace CPP_OPTIONS macro with CPP_OPTION which
9607         takes two args.  Change all 'char' flags to 'unsigned char'.
9608         Move show_column flag into struct cpp_options.  Don't
9609         prototype cpp_options_init.
9610         * cpphash.h, cpperror.c, cppexp.c, cppfiles.c, cpphash.c,
9611         cppinit.c, cpplex.c, cpplib.c:
9612         Replace CPP_OPTIONS (pfile)->whatever with
9613         CPP_OPTION (pfile, whatever), and likewise for
9614         opts = CPP_OPTIONS (pfile); ... opts->whatever;
9615
9616         * cppinit.c (merge_include_chains): Take a cpp_reader *.
9617         Extract CPP_OPTION (pfile, pending) and work with that
9618         directly.
9619         (cpp_options_init): Delete.
9620         (cpp_reader_init): Turn on on-by-default options here.
9621         Allocate the pending structure here.
9622         (cl_options, enum opt_code): Define these from the same table,
9623         kept in a large macro.  Add -fshow-column and -fno-show-column
9624         options.
9625
9626         * cpperror.c (v_message): If show_column is off, don't print
9627         the column number.
9628
9629         * cppmain.c: Update for new interface.
9630         * fix-header.c: Likewise.
9631
9632 2000-03-30  Geoff Keating  <geoffk@cygnus.com>
9633
9634         * config/rs6000/t-aix43 (AR_FLAGS_FOR_TARGET): Adjust for new
9635         definition.
9636         * Makefile.in (AR_FLAGS_FOR_TARGET): Is now the flags that
9637         are passed to any invocation of AR_FOR_TARGET.
9638         (AR_CREATE_FOR_TARGET): New macro.
9639         (AR_EXTRACT_FOR_TARGET): New macro.
9640         (ORDINARY_FLAGS_TO_PASS): Add AR_CREATE_FOR_TARGET,
9641         AR_EXTRACT_FOR_TARGET.
9642         (many places): Use AR_CREATE_FOR_TARGET, AR_EXTRACT_FOR_TARGET
9643         in place of `$(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET)' and
9644         `$(AR_FOR_TARGET) x'.  Pass AR_CREATE_FOR_TARGET and
9645         AR_EXTRACT_FOR_TARGET to sub-makes.
9646
9647 2000-03-31  Neil Booth <NeilB@earthling.net>
9648
9649         * cppexp.c: Delete SKIP_OPERAND.  Correct priority
9650         PAREN_INNER_PRIO.
9651         (_cpp_parse_expr): Check for multiple unary +/- operators.
9652         Correct priorities of ':' and '?'.  Treat ')' as having a
9653         value.  Ensure conditional expression is not void.
9654
9655 2000-03-31  Mark Mitchell  <mark@codesourcery.com>
9656
9657         * alias.c (canon_rtx): Make it global.
9658         (rtx_equal_for_memref_p): CONST_INT equality is now pointer
9659         equality.
9660         * cse.c (struct table_elt): Add canon_exp.
9661         (insert): Clear it.
9662         (invalidate): Canonicalize expressions only once.
9663         * rtl.h (canon_rtx): Declare.
9664
9665 2000-03-30  Mark Mitchell  <mark@codesourcery.com>
9666
9667         * Makefile.in (emit-rtl.o): Depend on HASHTAB_H.
9668         * alias.c (reg_known_value): Add comments.
9669         (init_alias_analysis): Likewise.
9670         * cse.c (exp_equiv_p): CONST_INTs are equal iff they have the same
9671         address.
9672         (cse_basic_block): Fix typo in comment.
9673         * emit-rtl.c: Include hashtab.h.
9674         (const_int_htab): New variable.
9675         (const_int_htab_hash): New function.
9676         (const_int_htab_eq): Likewise.
9677         (rtx_htab_mark_1): Likewise.
9678         (rtx_htab_mark): Likewise.
9679         (gen_rtx_CONST_INT): Cache all CONST_INTs.
9680         (unshare_all_rtx): Fix formatting.
9681         (init_emit_once): Initialize const_int_htab.
9682         * rtl.c (rtx_equal_p): CONST_INTs are equal iff they have the same
9683         address.
9684         * rtl.texi: Document the fact that all CONST_INTs with the same
9685         value are shared.
9686
9687 2000-03-30  Richard Henderson  <rth@cygnus.com>
9688
9689         * alpha.h (FUNCTION_BOUNDARY): Reduce to 128 bits.
9690
9691 2000-03-30  Zack Weinberg  <zack@wolery.cumb.org>
9692
9693         * configure.in: Comment out --enable-c-cpplib stanza.
9694         * configure: Regenerate.
9695
9696 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9697
9698         * expr.c (store_constructor): Properly compute displacement and
9699         alignment when offset is variable.
9700
9701         * expmed.c (store_bit_field, store_fixed_bit_field): Fix more
9702         cases of alignment in bytes.
9703
9704 Thu Mar 30 13:30:40 2000  Jeffrey A Law  (law@cygnus.com)
9705
9706         * c-parse.in (cast_expr): Move change from March 21 into c-parse.in
9707         since it is used to generate c-parse.y.
9708         * objc-parse.c, objc-parse.y: Regenerated.
9709
9710         * function.c (expand_function_end): Pass alignment argument to
9711         emit_block_move in bits, not bytes.
9712
9713 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9714
9715         * expr.c (move_by_pieces_ninsns): Fix one more missing align
9716         correction.
9717
9718         * expmed.c (store_fixed_bit_field): STRUCT_ALIGN is in bits.
9719
9720         * calls.c (expand_call): Pass bit alignment to mark_reg_pointer.
9721         * explow.c (memory_address, allocate_dynamic_stack_space): Likewise.
9722         * function.c (assign_parms): Likewise.
9723         * integrate.c (expand_inline_function): Likewise.
9724         * stmt.c (expand_decl): Likewise.
9725         (copy_rtx_and_substitute): Likewise.
9726         * expr.c (expand_expr, expand_expr_unaligned): Likewise.
9727         (clear_by_pieces): Fix error in last change.
9728         * emit-rtl.c (init_emit): Set known registers alignment in bits.
9729         * function.h (regno_pointer_align): Now unsigned.
9730         * config/arm/arm.c (alignable_memory_operand): REGNO_POINTER_ALIGN
9731         is in bits.
9732         * config/i386/i386.c (aligned_operand): Likewise.
9733         * config/sparc/sparc.c (mem_min_alignment): Likewise.
9734         * config/alpha/alpha.c (aligned_memory_operand): Likewise.
9735         (unaligned_memory_operand): Likewise.
9736         (alpha_expand_block_move, alpha_expand_block_clear): Likewise.
9737         Also make alignments and sizes unsigned and some whitespace cleanup.
9738         (alpha_va_start): Do nothing if VALIST's type is error_mark_node.
9739
9740         * builtins.c (get_pointer_alignment): Use host_integerp & tree_low_cst.
9741         (expand_builtin_apply): Pass alignment to emit_block_move in bits.
9742         (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
9743         (expand_builtin_memset): Likewise, but to clear_storage.
9744         * calls.c (save_fixed_argument_area): Likewise, to move_by_pieces.
9745         (restore_fixed_argument_area): Likewise.
9746         (store_unaligned_arguments_into_pseudos): Likewise, to store_bit_field.
9747         (load_register_parameters): Likewise, to emit_group_load.
9748         (expand_call): Likewise, to emit_group_store and emit_block_move.
9749         (emit_library_call_value_1): Likewise, to emit_block_move.
9750         (store_one_arg): Likewise, and to emit_push_insn.
9751         * expmed.c (extract_bit_field): Alignment is in bits, not bytes.
9752         (extract_fixed_bit_field, extract_split_bit_field): Likewise.
9753         * expr.c (move_by_pieces, move_by_pieces_ninsns): Likewise.
9754         (emit_block_move, emit_group_load, emit_group_store): Likewise.
9755         (clear_by_pieces, clear_storage, emit_push_insn): Likewise.
9756         (expand_assigment, store_expr, store_constructor_field): Likewise.
9757         (expand_expr_unaligned, do_jump, do_compare_and_jump): Likewise.
9758         (store_constructor, store_field, get_inner_reference): Likewise.
9759         Use host_integerp and tree_low_cst; sizes and positions HOST_WIDE_INT.
9760         (expand_expr, case COMPONENT_REF): Likewise.
9761         (copy_blkmode_from_regs): Use UNSIGNED_HOST_WIDE_INT for sizes
9762         and positions; reindent code.
9763         * expr.h (emit_cmp_insn, emit_cmp_and_jump_insns): Alignment unsigned.
9764         * function.c (purge_addressof_1): Pass bit align to store_bit_field.
9765         (assign_parms): Likewise to emit_group_store.
9766         * optabs.c (prepare_cmp_insn): Alignment is in bits.
9767         (emit_cmp_and_jump_insns, emit_cmp_insn): Likewise, and also unsigned.
9768         * stmt.c (expand_value_return): Pass align in bits to emit_group_load.
9769         (expand_return): Likewise to {extract,store}_bit_field.
9770         * stor-layout.c (get_mode_alignment): Minor cleanup.
9771         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Align is in bits.
9772         * config/sh/sh.h (MOVE_BY_PIECES_P): Likewise.
9773
9774 2000-03-29  Nick Clifton  <nickc@cygnus.com>
9775
9776         * config/arm/arm.h: Undo effects of previous delta:
9777         (ASM_SPEC): Do not define.
9778         (SUBTARGET_EXTRA_ASM_SPEC): Do not define.
9779
9780         * config/arm/linux-elf.h: (SUBTARGET_EXTRA_ASM_SPEC) Fix
9781         typo.
9782
9783 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
9784
9785         * cppinit.c (cpp_start_read): Call initialize_dependency_output
9786         only after reading in the primary source file.
9787
9788 2000-03-29  Geoff Keating  <geoffk@cygnus.com>
9789
9790         * c-common.c (c_common_nodes_and_builtins): The first parameter to
9791         __builtin_va_start and __builtin_va_copy is now either a 'va_list'
9792         or a reference to a va_list.
9793         * builtins.c (stabilize_va_list): Simplify now we don't have to
9794         work around C array address decay.
9795         * c-typeck.c (convert_for_assignment): Handle assignment to
9796         a reference parameter by taking the address of the RHS.
9797         * ginclude/stdarg.h (va_start): Don't take address of first parameter.
9798         (va_copy): Likewise.
9799         (__va_copy): Likewise.
9800         * ginclude/varargs.h (va_start): Likewise.
9801         (__va_copy): Likewise.
9802
9803 Wed Mar 29 15:44:53 2000  Jeffrey A Law  (law@cygnus.com)
9804
9805         * i386/djgpp.h: Remove extraneous "+".
9806
9807         * stmt.c (stmt_loop_nest_empty): Fix thinko in last change.
9808
9809         * calls.c (expand_call): Fix typo in last change.
9810
9811 2000-03-29  Jason Merrill  <jason@casey.cygnus.com>
9812
9813         * tree.c (unsave_expr_1): Don't mess with a TARGET_EXPR that hasn't
9814         been expanded.
9815
9816 Wed Mar 29 15:39:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9817
9818         * stor-layout.c (bit_from_pos, byte_from_pos): New functions.
9819         (pos_from_byte, pos_from_bit, normalize_offset): Likewise.
9820         (normalize_rli, rli_size_so_far, rli_size_unit_so_far): Use them.
9821         * tree.c (bit_position, byte_position): Likewise.
9822         * tree.h: Declare new functions.
9823
9824 2000-03-29  Nick Clifton  <nickc@cygnus.com>
9825
9826         * config/arm/arm.c: Minor formatting changes/
9827         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
9828         already defined.
9829         (ASM_SPEC): Define if not already defined.
9830
9831 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
9832
9833         * cppfiles.c (cpp_read_file): Don't pass zero-length string to
9834         _cpp_calc_hash.
9835
9836 2000-03-29  Jakub Jelinek  <jakub@redhat.com>
9837
9838         * dwarf2out.c (gen_enumeration_type_die): If enum has a negative
9839         value, don't output it as unsigned.
9840
9841 Wed Mar 29 10:53:49 2000  Jeffrey A Law  (law@cygnus.com)
9842
9843         * stmt.c (stmt_loop_nest_empty): Allow cfun->stmt to be NULL.
9844
9845 2000-03-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9846
9847         * c-common.c (c_common_nodes_and_builtins): Don't special case
9848         cplus_mode when declaring builtin bzero/bcmp, always avoid
9849         prototype arguments.
9850
9851 2000-03-29  Bruce Korb  <bkorb@gnu.org>
9852
9853         * fixinc/mkfixinc.sh: Initially set the variable "fixincludes"
9854         to a non-file
9855
9856 Wed Mar 29 15:08:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
9857
9858         Convert ACCUMULATE_OUTGOING_ARGS to an expression.
9859         * calls.c (PUSH_ARGS_REVERSED) Change to expression.
9860         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default value.
9861         (struct arg_data): Remove #ifdef ACCUMULATE_OUTGOING_ARGS.
9862         (save_fixed_argument_area, restore_fixed_argument_area):
9863         conditionize by #ifdef REG_PARM_STACK_SPACE only.
9864         (emit_call): Change #ifdefs on ACCUMULATE_OUTGOING_ARGS
9865         to conditions, handle RETURN_POPS_ARGS on ACCUMULATE_OUTGOING_ARGS.
9866         (precompute_register_parameters): Avoid #ifdefs on
9867         ACCUMULATE_OUTGOING_ARGS and PUSH_ARGS_REVERSED.
9868         (stire_one_args): Likewise.
9869         (expand_call): Likewise; conditionize PUSH_ROUNDING code by PUSH_ARGS.
9870         (emit_library_call_value_1): Likewise.
9871         (compute_argument_block_size): Align to STACK_BOUNDARY only for
9872         ACCUMULATE_OUTGOING_ARGS.
9873         * combine.c (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default
9874         value.
9875         (nonzero_bits): Conditionize PUSH_ROUNDING code by USE_PUSH.
9876         (use_crosses_set_p): Likewise.
9877         * all targets (ACCUMULATE_OUTGOING_ARGS define): Change to
9878         #define ACCUMULATE_OUTGOING_ARGS 1.
9879         * i386.c (ix86_compute_frame_size): Handle ACCUMULATE_OUTGOING_ARGS
9880         frames.
9881         * i386.h (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS): New
9882         constants.
9883         (TARGET_PUSH_ARGS, TARGET_ACCUMULATE_OUTGOING_ARGS): New macros.
9884         (TARGET_SWITCHES): Add push-args, no-push-args,
9885         accumulate-outgoing-args and no-accumulate-outgoing-args.
9886         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): New macro.
9887         * expr.c (ACCUMULATE_OUTGONG_ARGS, PUSH_ARGS): Provide default.
9888         (push_block): Avoid ifdefs on ACCUMULATE_OUTGONG_ARGS
9889         and PUSH_ROUNDING.
9890         (emit_push_insn): Likewise.
9891         * final.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
9892         (final_scan_insn): Avoid ifdefs on ACCUMULATE_OUTGOING_ARGS.
9893         * function.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
9894         (STACK_DYNAMIC_OFFSET): Define correctly for both
9895         ACCUMULATE_OUTGOING_ARGS and normal mode.
9896         * invoke.texi (-mpush_args, -maccumulate-outgoing-args): Document.
9897         * tm.texi (PUSH_ARGS): Document.
9898         (ACCUMULATE_OUTGOING_ARGS, PUSH_ROUNDING): Update documentation.
9899
9900 Wed Mar 29 11:51:13 MET DST 2000  Jan Hubicka  <jh@suse.cz>
9901
9902         * flags.h (flag_optimize_sibling_calls): Declare.
9903         * calls.c (expand_call): Fail sibcall when
9904         !flag_optimize_sibling_calls
9905         * invoke.texi (flag_optimize_sibling_calls): Document.
9906         * toplev.c (flag_optimize_sibling_calls): New global variable.
9907         (f_options): Add flag_optimize_sibling_calls.
9908         (rest_of_compilation): Conditionize
9909         optimize_sibling_and_tail_recursive_calls by
9910         flag_optimize_sibling_calls.
9911         (main): Set flag_optimize_sibling_calls for -O2.
9912         * stmt.c (expand_return): Conditionize tail recursion by
9913         flag_optimize_sibling_calls.
9914
9915 2000-03-29  Richard Henderson  <rth@cygnus.com>
9916
9917         * config/i386/att.h (LOCAL_LABEL_PREFIX): Define.
9918         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Use it.
9919
9920 2000-03-29  Nathan Sidwell  <nathan@codesourcery.com>
9921
9922         * except.c (add_eh_table_entry): Mark type_info's as referenced.
9923
9924 2000-03-29  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
9925
9926         * config/rs6000/aix41.h (CPP_SPEC): Define _ANSI_C_SOURCE if -ansi
9927         is given.
9928         * config/rs6000/aix43.h (CPP_SPEC): Likewise.
9929         * config/rs6000/rs6000.h (CPP_SPEC): Moved to...
9930         * config/rs6000/aix.h: then modified likewise.
9931
9932 2000-03-28  Richard Henderson  <rth@cygnus.com>
9933
9934         * rtl.h: Redistribute enum reg_note documentation.
9935         Kill trailing whitespace.
9936         * rtl.c (reg_note_name): Adjust to match enum reg_note tweeks.
9937         Kill trailing whitespace.
9938
9939 2000-03-28  Zack Weinberg  <zack@wolery.cumb.org>
9940
9941         * cppfiles.c (hash_IHASH): Just return i->hash.
9942         (cpp_included): Set dummy.hash using _cpp_calc_hash.  Use
9943         htab_find_with_hash.
9944         (cpp_read_file): Likewise.
9945         (find_include_file): Likewise.  Properly initialize
9946         ih->nshort.  Share ih->name and ih->nshort if possible.
9947         * cpphash.c (_cpp_calc_hash): New function.
9948         (hash_HASHNODE): Just return h->hash.
9949         (_cpp_lookup): Set dummy.hash using _cpp_calc_hash.  Use
9950         htab_find_with_hash.
9951         * cpphash.h: Prototype _cpp_calc_hash.
9952         * cppinit.c (initialize_builtins): Provide a valid hash
9953         to _cpp_make_hashnode, using _cpp_calc_hash.
9954
9955         * cpphash.c (collect_expansion): # is not a special character
9956         in object-like macros.  In -traditional mode, /**/ is not
9957         token paste at the beginning or end of the line.
9958         * cpplib.c (do_include, do_import, do_include_next): If
9959         parse_include fails, return immediately.
9960
9961 2000-03-28  Jason Merrill  <jason@casey.cygnus.com>
9962
9963         * config/arm/arm.md (return peepholes): Update to reflect the new
9964         call insn patterns.
9965         * config/arm/arm.c (arm_volatile_func): Also check
9966         current_function_nothrow.
9967         (output_return_instruction, output_func_prologue): Use it.
9968         (arm_output_epilogue, arm_expand_prologue): Likewise.
9969
9970 2000-03-27  Tom Tromey  <tromey@cygnus.com>
9971
9972         * gcc.c (handle_braces): In {x*...} case, break out of loop if
9973         switch is found.
9974
9975 Tue Mar 28 11:55:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9976
9977         * expr.c (store_constructor): SIZE now signed.
9978         For EXPR_SIZE, don't evaluate size; just needed if constant.
9979         * fold-const.c (fold): Fix a number of cases when folded tree is
9980         wrong type.
9981         * function.c (flush_addressof): Reenable.
9982         * tree.h (flush_addressof): Likewise.
9983         * toplev.c (independent_decode_option): Look at strings_processed.
9984         * config/alpha/alpha.h (MINIMUM_ATOMIC_ALIGNMENT): Cast to unsigned.
9985
9986 Tue Mar 28 08:29:46 2000  Jan Hubicka  <jh@suse.cz>
9987
9988         * sibcall.c (indentify_call_return_value): Find last call in the chain;
9989         Allow stack adjustment after function call.
9990
9991         * regmove.c (struct csa_memlist): Make mem field rtx *.
9992         (record_one_stack_ref): Accept rtx * instead of rtx as parameter.
9993         (try_apply_stack_adjustment): Replace whole MEM rtx.
9994         (combine_stack_adjustments_for_block): Update calls
9995         to record_one_stack_ref.
9996
9997 2000-03-28  Neil Booth  <NeilB@earthling.net>
9998
9999         * cpplex.c (_cpp_read_and_prescan): Mark end of input buffer with
10000         '\\' rather than a null character, so nulls are not special.  Fix
10001         "\\\n" handling in end-of-buffer conditions.  Use trigraph map to
10002         speed trigraph conversion.
10003         (_cpp_init_input_buffer): Initialize trigraph map.
10004
10005 2000-03-27  Alan Modra  <alan@linuxcare.com.au>
10006
10007         * config/i386/i386.c (output_387_binary_op): Correct intel
10008         mode assembly output, and add spaces after commas in AT&T
10009         output.  Correct Unixware assembler comment.  Document input
10010         constraints.  Comment fp operations.  Reduce profligate buffer
10011         size.  Remove extraneous abort.  Localize temp var.
10012         (SYSV386_COMPAT): Define.  Add !SYSV386_COMPAT code.
10013         (output_fix_trunc): Add spaces after commas in assembly output.
10014
10015 2000-03-27  Richard Henderson  <rth@cygnus.com>
10016
10017         * i386-protos.h (ix86_match_ccmode): Declare.
10018         * i386.c (ix86_match_ccmode): New.
10019         (ix86_expand_fp_compare): Update for pattern renames.
10020         (ix86_expand_strlensi_unroll_1): Likewise.
10021         * i386.h (EXTRA_CC_MODES): Add CCZ.
10022         (SELECT_CC_MODE): Use it for EQ/NE zero.
10023         * i386.md (cmpsi_ccz_1): New.
10024         (cmpqi_ccz_1): New.
10025         (*testsi_ccz_1): New.
10026         (testqi_ccz_1): New.
10027         (cmpsi_ccno_1): Rename from cmpsi_0.
10028         (testsi_ccno_1): Rename from testsi_1.
10029         (testqi_ccno_1): Rename from testqi_1.
10030         (*testqi_ext_ccz_0): Rename from testqi_ext_0.
10031         (testqi_ext_ccno_0): Rename from *testqi_ext_1.
10032         (*cmphi_0): Use ix86_match_ccmode.
10033         (*cmpqi_ext_2, *addsi_2, *addhi_2, *addqi_2): Likewise.
10034         (*subsi_2, *subhi_2, *subqi_2, *testhi_1): Likewise.
10035         (*testqi_ext_1, *testqi_ext_2, *testqi_ext_3): Likewise.
10036         (*andsi_2, *andhi_2, *andqi_2, *andqi_ext_0_cc): Likewise.
10037         (*iorsi_2, *iorhi_2, *iorqi_2): Likewise.
10038         (*xorsi_2, *xorhi_2, *xorqi_cc_1): Likewise.
10039         (*one_cmplsi2_2, *one_cmplhi2_2, *one_cmplqi2_2): Likewise.
10040         (*ashlsi3_cmpno, *ashlhi3_cmpno, *ashlqi3_cmpno): Likewise.
10041         (*ashrsi3_cmpno, *ashrhi3_cmpno, *ashrqi3_cmpno): Likewise.
10042         (*lshrsi3_cmpno, *lshrhi3_cmpno, *lshrqi3_cmpno): Likewise.
10043         (appropriate peepholes): Likewise.
10044         (*cmphi_1, *cmpqi_ccno_1, *cmpqi_1): Star out name.
10045         (*subsi_3, *subhi_3, *subqi_3): Remove.
10046         (*negdi2_1+1 splitter): Use CCZ for neg patterns.
10047         (*negsi2_cmp, *neghi2_cmp, *negqi2_cmp): Remove.
10048         (*negsi2_cmpz): Rename from *negsi2_cmpno, use CCZ.
10049         (*neghi2_cmpz, *negqi2_cmpz): Similarly.
10050         (x86_shift_adj_1): Use CCZ.
10051         (*dbra_ge+1, *dbra_ge+2, ffssi2, ffssi_1): Likewise.
10052
10053 2000-03-27  Stan Cox  <scox@cygnus.com>
10054
10055         * resource.h (mark_resource_type): New.
10056         * resource.c (find_dead_or_set_registers, mark_target_live_regs,
10057         find_free_register): Use mark_resource_type.
10058         (mark_set_resources): Change include_delayed_effects
10059         to mark_resource_type.
10060         * reorg.c (steal_delay_list_from_target, try_merge_delay_insns,
10061         redundant_insn, fill_simple_delay_slots, fill_slots_from_thread):
10062         Use mark_resource_type.
10063
10064 2000-03-27  Richard Henderson  <rth@cygnus.com>
10065
10066         * i386.md (call_pop_0, call_value_pop_0): New.
10067         (call_pop_1): Remove constraint from unused arg.  Support sibcalls.
10068         (call_value_pop_1): Likewise.
10069         (call_0, call_value_0): New.
10070         (call_1, call_value_1): Remove constraint from unused arg.
10071
10072 2000-03-27  Nick Clifton  <nickc@cygnus.com>
10073
10074         * invoke.texi (Spec Files): Document new spec % command created by
10075         Tom Tromey's recent patch.
10076
10077 2000-03-27  Jakub Jelinek  <jakub@redhat.com>
10078
10079         * libgcc2.h (MIN_UNITS_PER_WORD): Define to UNITS_PER_WORD
10080         if not defined.
10081
10082 Mon Mar 27 06:04:22 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10083
10084         * expr.c (expand_assignment): Fix typo in last change.
10085
10086         * libgcc2.h: Use MIN_UNITS_PER_WORD, not UNITS_PER_WORD.
10087
10088 Sun Mar 26 20:15:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10089
10090         * c-convert.c (convert): Return if output or input type is ERROR_MARK.
10091         * c-decl.c (duplicate_decls): Only look at DECL_BUILT_IN_NONANSI
10092         and DECL_INLINE if FUNCTION_DECL.
10093         (pushdecl, redeclaration_error_message): Likewise, for DECL_INLINE.
10094         (store_parm_decls): Check for type of PARM_DECL being ERROR_MARK.
10095         Use DECL_WEAK, not DECL_RESULT, to flag for already seen.
10096         (combine_parm_decls): Likewise.
10097         * ggc-common.c (gcc_mark_tree_children, case 'd'): Use DECL_RESULT_FLD.
10098         * print-tree.c (print_node): Likewise.
10099         Only test DECL_PACKED, DECL_INLINE, DECL_BIT_FIELD, and
10100         DECL_TRANSPARENT_UNION on proper decl types.
10101         Properly handly DECL_INCOMING_RTL and DECL_SAVED_INSNS.
10102         * stor-layout.c (layout_decl): Only check DECL_PACKED and
10103         DECL_BIT_FIELD of FIELD_DECL.
10104         * tree.h (DECL_RESULT_FLD): New macro.
10105
10106         * expr.c (expand_assignment): Add code to handle variable-sized
10107         BLKmode case.
10108
10109 2000-03-26  Richard Henderson  <rth@cygnus.com>
10110
10111         * calls.c (expand_call): Pass parms not original exp to
10112         optimize_tail_recursion.  Mind return value instead of looking
10113         for a barrier.
10114         * stmt.c (optimize_tail_recursion): Take parameter list, not entire
10115         call_expr.  Move checks for call_expr and current_function_decl ...
10116         (expand_return): ... here.
10117
10118 2000-03-26  Tom Tromey  <tromey@cygnus.com>
10119
10120         * gcc.c (handle_braces): Recognize `%{<S}' construct.
10121         (SWITCH_OK, SWITCH_FALSE, SWITCH_IGNORE, SWITCH_LIVE): New
10122         defines.
10123         (process_command): Use them.
10124         (check_live_switch): Likewise.
10125         (give_switch): Skip ignored switches.
10126
10127 2000-03-26  Jan Hubicka  <jh@suse.cz>
10128
10129         * jump.c (jump_optimize_1): Fix typo in elide optimizations
10130         for minimal jump pass test.
10131
10132 2000-03-26  Mark Mitchell  <mark@codesourcery.com>
10133
10134         * integrate.c (function_cannot_inline_p): Do inline functions that
10135         return `void'.
10136
10137 Sun Mar 26 11:37:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10138
10139         * stor-layout.c (layout_type, set_sizetype): early_type_list is
10140         now a list of TREE_LIST entries, not types.
10141         * tree.c (build_common_tree_nodes_2): Eliminate dupliate type sets.
10142
10143         * expmed.c (extract_bit_field): Ensure BITS_PER_WORD is signed in MAX.
10144         * config/arm/pe.c (arm_pe_return_in_memory): Use host_integerp and
10145         int_bit_position.
10146         * config/mips/mips.c (function_arg): Likewise; also remove cast
10147         and make variables unsigned or HOST_WIDE_INT and use tree_low_cst.
10148         (mips_function_value): Use int_byte_position and make HOST_WIDE_INT.
10149         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Offsets are unsigned.
10150         * config/mips/mips.h (BITS_PER_WORD, UNITS_PER_WORD): Cast to unsigned.
10151         (UNITS_PER_FPREG, INT_TYPE_SIZE, LONG_TYPE_SIZE): Likewise.
10152         (POINTER_SIZE, POINTER_BOUNDARY,PARM_BOUNDARY): Likewise.
10153         (GP_REG_P, FP_REG_P, MD_REG_P, ST_REG_P): Ensure subtraction signed.
10154         (struct mips_arg): arg_number, arg_words, fp_arg_words, and
10155         num_adjusts now unsigned.
10156         (FUNCTION_ARG_BOUNDARY): Remove unneeded cast.
10157         * config/sparc/sparc.c (struct function_arg_record_value_parms):
10158         NREGS now unsigned.
10159         (function_arg_record_value_1): STARTBITPOS arg now HOST_WIDE_INT
10160         as is BITPOS variable; use host_integerp and int_bit_position.
10161         (function_arg_record_value_2): Likewise.
10162         (function_arg_record_value_3): Arg BITPOS now HOST_WIDE_INT.
10163         Variable REGNO now unsigned.
10164         (function_arg_record_value): NREGS now unsigned.
10165
10166 2000-03-26  Bernd Schmidt  <bernds@cygnus.co.uk>
10167
10168         * jump.c (mark_all_labels): Handle CALL_PLACEHOLDERs.
10169
10170 Sat Mar 25 09:12:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10171
10172         * Rework fields used to describe positions of bitfields and
10173         modify sizes to be unsigned and use HOST_WIDE_INT.
10174         * alias.c (reg_known_value_size): Now unsigned.
10175         * c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position.
10176         (really_start_incremental_init): Use bitsize_zero_node.
10177         (push_init_level, pop_init_level, output_init_element): Likewise.
10178         Use bitsize_unit_node and bitsize_one_node.
10179         (output_pending_init_elements, process_init_element): Likewise.
10180         * combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned.
10181         (make_extraction): Position and length HOST_WIDE_INT and unsigned
10182         HOST_WIDE_INT, respectively.
10183         (get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT.
10184         (num_sign_bit_copies): Returns unsigned.
10185         BITWIDTH now unsigned; rework arithmetic.
10186         Remove recursive call from arg to MAX.
10187         (combine_instructions, init_reg_last_arrays): NREGS now unsigned.
10188         (setup_incoming_promotions, can_combine_p, try_combine, simplify_set):
10189         REGNO now unsigned.
10190         (set_nonzero_bit_and_sign_copies): NUM now unsigned.
10191         (find_split_point, expand_compound_operation, make_extraction): LEN
10192         now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT.
10193         (make_field_assignment): Likewise.
10194         (combine_simplify_rtx): Add cast.
10195         (expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic.
10196         (force_to_mode): WIDTH now unsigned; add cast.
10197         (if_then_else_cond): SIZE now unsigned.
10198         (nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned.
10199         (extended_count): Now returns unsigned.
10200         (simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT.
10201         Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned.
10202         (simplify_comparison): MODE_WIDTH now unsigned.
10203         (update_table_tick): REGNO and ENDREGNO now unsigned; new var R.
10204         (mark_used_regs_combine): Likewise; rework arithmetic.
10205         (record_value_for_reg): REGNO, ENDREGNO, and I now unsigned.
10206         (record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise.
10207         (record_promoted_value): REGNO now unsigned.
10208         (get_last_value_validate): REGNO, ENDREGNO, and J now unsigned.
10209         (get_last_value): REGNO now unsigned.
10210         (use_crosses_set_p): REGNO and ENDREGNO now unsigned.
10211         (reg_dead_regno, reg_dead_endregno): Now unsigned.
10212         (remove_death): Arg REGNO now unsigned.
10213         (move_deaths):  REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned.
10214         (reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO
10215         now unsigned.
10216         * convert.c (convert_to_integer): INPREC and OUTPREC now unsigned.
10217         * cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned.
10218         (struct cse_reg_info): REGNO now unsigned.
10219         (cached_regno): Now unsigned.
10220         (REGNO_QTY_VALID_P): Add cast.
10221         (make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned.
10222         (remove_invalid_regs): Likewise.
10223         (remove_invalid_subreg_refs): Likewise; arg WORD also unsigned
10224         as are variables END and I.
10225         (get_cse_reg_info, insert): Likewise.
10226         (mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned.
10227         (canon_hash): Likewise.
10228         (insert_regs, lookup_for_remove): REGNO now unsigned.
10229         (invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned.
10230         New variable RN.
10231         * dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0.
10232         * dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast.
10233         * emit-rtl.c (subreg_realpart_p): Add cast.
10234         (operand_subword): Arg I is now unsigned as is var PARTWORDS.
10235         (operand_subword_force): Arg I is now unsigned.
10236         * except.c (eh_regs): Variable I is now unsigned.
10237         * explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT.
10238         * expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT;
10239         length is unsigned HOST_WIDE_INT; likewise for internal variables.
10240         (store_split_bit_field, extract_fixed_bit_field): Likewise.
10241         (extract_split_bit_field, store_bit_field, extract_bit_field):
10242         Likewise.
10243         * expr.c (store_constructor_fields, store_constructor, store_field):
10244         Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT.
10245         (expand_assignment, expand_expr, expand_expr_unaligned): Likewise.
10246         (do_jump): Likewise.
10247         (move_by_pieces, move_by_pieces_ninsns, clear_by_pieces):
10248         MAX_SIZE is now unsigned.
10249         (emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned.
10250         (emit_group_store): Likewise.
10251         (emit_move_insn): I now unsigned.
10252         (store_constructor): Use host_integerp, tree_low_cst, and
10253         bitsize_unit_node.
10254         (get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT.
10255         Rework all calculations to use trees and new fields.
10256         * expr.h (promoted_input_arg): Regno now unsigned.
10257         (store_bit_field, extract_bit_field): Adjust types of pos and size.
10258         (mark_seen_cases): Arg is HOST_WIDE_INT.
10259         * flow.c (verify_wide_reg_1): REGNO now unsigned.
10260         * fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT;
10261         precisions and alignments are unsigned.
10262         (optimize_bit_field_compare, fold_truthop): Likewise.
10263         (int_const_binop): Adjust threshold for size_int_type_wide call.
10264         (fold_convert): Likewise.
10265         (size_int_type_wide): Make table larger and fix thinko that only
10266         had half of table used.
10267         (all_ones_mask_p, fold): Precisions are unsigned.
10268         * function.c (put_reg_info_stack): REGNO is unsigned.
10269         (instantiate_decl): Size is HOST_WIDE_INT.
10270         (instantiate_virtual_regs): I is unsigned.
10271         (assign_parms): REGNO, REGNOI, and REGNOR are unsigned.
10272         (promoted_input_arg): REGNO is unsigned.
10273         * function.h (struct function): x_max_parm_reg is now unsigned.
10274         * gcse.c (max_gcse_regno): Now unsigned.
10275         (struct null_pointer_info): min_reg and max_reg now unsigned.
10276         (lookup_set, next_set): REGNO arg now unsigned.
10277         (compute_hash_table): REGNO and I now unsigned.
10278         (handle_avail_expr): regnum_for_replacing now unsigned.
10279         (cprop_insn): REGNO now unsigned.
10280         (delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned.
10281         * ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case.
10282         * global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned.
10283         * hard-reg-set.h (reg_class_size): Now unsigned.
10284         * integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO.
10285         * jump.c (mark_modified_reg): I now unsigned; add cast.
10286         (rtx_equal_for_thread_p): Add cast.
10287         * loop.c (max_reg_before_loop): Now unsigned.
10288         (struct_movable): REGNO now unsigned.
10289         (try_copy_prop): REGNO arg unsigned.
10290         (regs_match_p): XN and YN now unsigned.
10291         (consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned.
10292         (strength_reduce): Likewise; NREGS also unsigned.
10293         (first_increment_giv, last_increment_giv unsigned): Now unsigned.
10294         * loop.h (struct iv_class): REGNO now unsigned.
10295         (max_reg_before_loop, first_increment_giv, last_increment_giv):
10296         Now unsigned.
10297         * machmode.h (mode_size, mode_unit_size): Now unsigned.
10298         (mode_for_size, smallest_mode_for_size): Pass size as unsigned.
10299         * optabs.c (expand_binop): I and NWORDS now unsigned.
10300         (expand_unop): I now unsigned.
10301         * print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do
10302         print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET.
10303         * real.c (significand_size): Now returns unsigned.
10304         * real.h (significand_size): Likewise.
10305         * regclass.c (reg_class_size): Now unsigned.
10306         (choose_hard_reg_mode): Both operands now unsigned.
10307         (record_reg_classes): REGNO and NR now unsigned.
10308         (reg_scan): NREGS now unsigned.
10309         (reg_scan_update): old_max_regno now unsigned.
10310         (reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned.
10311         * reload.c (find_valid_class): BEST_SIZE now unsigned.
10312         (find_dummy_reload): REGNO, NWORDS, and I now unsigned.
10313         (hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned.
10314         Likewise for variable R.
10315         (refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned,
10316         as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R.
10317         (find_equiv_reg): Add casts.
10318         (regno_clobbered_p): Arg REGNO now unsigned.
10319         * reload.h (struct reload): NREGS now unsigned.
10320         (refers_to_regno_for_reload_p): Regno args are unsigned.
10321         (regno_clobbered_p): Likewise.
10322         * reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned.
10323         (compute_use_by_pseudos): REGNO now unsigned.
10324         (find_reg): I and J now unsigned, new variable K, and change loop
10325         variables accordingly; THIS_NREGS now unsigned.
10326         (alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned.
10327         (spill_hard_reg): REGNO arg now unsigned; add casts.
10328         (forget_old_reloads_1): REGNO, NR, and I now unsigned.
10329         (mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned.
10330         (clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO,
10331         END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned.
10332         (reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned.
10333         (choose_reload_regs): MAX_GROUP_SIZE now unsigned.
10334         (emit_reload_insns): REGNO now unsigned.
10335         (reload_cse_move2add): Add cast.
10336         (move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO
10337         and rework loop.
10338         * resource.c (mark_referenced_resources, mark_set_resources): New
10339         variable R; REGNO and LAST_REGNO now unsigned.
10340         (mark_target_live_regs): J and REGNO now unsigned.
10341         * rtl.c (mode_size, mode_unit_size): Now unsigned.
10342         * rtl.h (union rtunion_def): New field rtuint.
10343         (XCUINT): New macro.
10344         (ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT.
10345         (operand_subword, operand_subword_force): Word number is unsigned.
10346         (choose_hard_reg_mode): Operands are unsigned.
10347         (refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned.
10348         (find_regno_note, find_regno_fusage, replace_regs): Likewise.
10349         (regno_use_in, combine_instructions, remove_death): Likewise.
10350         (reg_scan, reg_scan_update): Likewise.
10351         (extended_count): Return is unsigned.
10352         * rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I,
10353         INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO.
10354         (reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned.
10355         (reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned.
10356         (reg_reg_last_1): FIRS and LAST now unsigned.
10357         (dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned.
10358         (dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO
10359         now unsigned.
10360         (find_regno_note, regno_use_in): Arg REGNO now unsigned.
10361         (find_regno_fusage): Likewise; also var REGNOTE now unsigned.
10362         (find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned.
10363         (replace_regs): Arg NREGS now unsigned.
10364         * sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0.
10365         * simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned.
10366         (simplify_binary_operation): Likewise.
10367         (cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and
10368         THIS_LAST now unsigned.
10369         (cselib_record_set): Add cast.
10370         * ssa.c (ssa_max_reg_num): Now unsigned.
10371         (rename_block): REGNO now unsigned.
10372         * stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT;
10373         sizes now unsigned.
10374         (all_cases_count): Just return -1 not -2.
10375         COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT.
10376         Rework tests to use trees whenever possible.
10377         Use host_integerp and tree_low_cst.
10378         (mark_seen_cases): COUNT arg now HOST_WIDE_INT;
10379         Likewise variable NEXT_NODE_OFFSET; XLO now unsigned.
10380         (check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT.
10381         * stor-layout.c (mode_for_size): SIZE arg now unsigned.
10382         (smallest_mode_for_size): Likewise.
10383         (layout_decl): Simplify handing of a specified DECL_SIZE_UNIT.
10384         KNOWN_ALIGN is now an alignment, so simplify code.
10385         Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type.
10386         (start_record_layout): Renamed from new_record_layout_info.
10387         Update to new fields.
10388         (debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far):
10389         New functions.
10390         (place_union_field): Renamed from layout_union_field.
10391         Update to use new fields in rli.
10392         (place_field): Renamed from layout_field.
10393         Major rewrite to use new fields in rli; pass alignment to layout_decl.
10394         (finalize_record_size): Rework to use new fields in rli and handle
10395         union.
10396         (compute_record_mode): Rework to simplify and to use new DECL fields.
10397         (finalize_type_size): Make rounding more consistent.
10398         (finish_union_layout): Deleted.
10399         (layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either.
10400         (layout_type, case RECORD_TYPE): Call new function names.
10401         (initialize_sizetypes): Set TYPE_IS_SIZETYPE.
10402         (set_sizetype): Set TYPE_IS_SIZETYPE earlier.
10403         (get_best_mode): UNIT is now unsigned; remove casts.
10404         * tree.c (bit_position): Compute from new fields.
10405         (byte_position, int_byte_position): New functions.
10406         (print_type_hash_statistics): Cast to remove warning.
10407         (build_range_type): Use host_integerp and tree_low_cst to try to hash.
10408         (build_index_type): Likewise; make subtype of sizetype.
10409         (build_index_2_type): Pass sizetype to build_range_type.
10410         (build_common_tree_nodes): Use size_int and bitsize_int to
10411         initialize nodes; add bitsize_{zero,one,unit}_node.
10412         * tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK.
10413         (DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise.
10414         (DECL_PACKED, DECL_BIT_FIELD): Likewise.
10415         (DECL_FIELD_BITPOS): Deleted.
10416         (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields.
10417         (DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK.
10418         (DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise.
10419         (DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise.
10420         (DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise.
10421         (DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise.
10422         (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise.
10423         (DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK.
10424         (DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK.
10425         (DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise.
10426         (DECL_ALIGN): Adjust to new field in union.
10427         (DECL_OFFSET_ALIGN): New field.
10428         (DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK.
10429         (DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK.
10430         (union tree_decl): Add struct for both aligns.
10431         (enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}.
10432         (bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added.
10433         (struct record_layout_info): Rework fields to have offset
10434         alignment and byte and bit position.
10435         (start_record_layout, place_field): Renamed from old names.
10436         (rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls.
10437         (byte_position, int_byte_position): Likewise.
10438         (get_inner_reference): Change types of position and length.
10439         * unroll.c (unroll_loop): New variable R; use for some loops.
10440         MAX_LOCAL_REGNUM and MAXREGNUM now unsigned.
10441         (calculate_giv_inc): Arg REGNO now unsigned.
10442         (copy_loop_body): REGNO and SRC_REGNO now unsigned.
10443         * varasm.c (assemble_variable): Clean up handling of size using
10444         host_integerp and tree_low_cst.
10445         (decode_addr_const): Use byte, not bit, position.
10446         (output_constructor): bitpos and offsets are HOST_WIDE_INT;
10447         use tree_low_cst and int_bit_position.
10448         * objc/objc-act.c (build_ivar_list_initializer): Use byte_position.
10449
10450 Fri Mar 24 20:13:49 2000  Jason Eckhardt  <jle@cygnus.com>
10451
10452         * bb-reorder.c (REORDER_MOVED_BLOCK_END): Removed.
10453         (reorder_block_def): New members eff_head and eff_end.
10454         (REORDER_BLOCK_EFF_HEAD, REORDER_BLOCK_EFF_END): New macros.
10455         (verify_insn_chain): New function.
10456         (skip_insns_between_block): Add code to skip deleted insns.
10457         Check for note before using.
10458         (chain_reorder_blocks): Replace calls to skip_insns_between_block
10459         with references to REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END.
10460         Check for note before using.
10461         (make_reorder_chain): Use INTVAL rather than XINT to get REG_BR_PROB.
10462         (fixup_reorder_chain): Restructure, clean up, defect removal.
10463         (reorder_basic_blocks): Remove last_insn and references to it.
10464         Moved insn chain verification code into a new function (see above).
10465         Delete defective code that sets last insn.
10466         Initialize REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for
10467         all blocks.
10468
10469 2000-03-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10470
10471         * config/c4x/c4x.h (CPP_SPEC): Remove erroneous space.
10472
10473 2000-03-24  Richard Henderson  <rth@cygnus.com>
10474
10475         * tree.c (lang_safe_for_unsave): Remove.
10476         (unsafe_for_reeval): Transmute and rename from safe_for_unsave,
10477         allowing for two levels of unsafeness.  Remove lang hook.
10478         * tree.h: Update declarations.
10479         * calls.c (expand_call): Rename safe_for_reeval to try_tail_call.
10480         Create temporary VAR_DECLs to protect very unsafe_for_reeval trees.
10481         Always fail sibcalls when there are pending cleanups.
10482
10483 2000-03-24  Geoff Keating  <geoffk@cygnus.com>
10484
10485         * flow.c (propagate_block): When we delete an ADDR_VEC,
10486         also delete the BARRIER following it if there is one.
10487
10488 2000-03-24  Richard Henderson  <rth@cygnus.com>
10489
10490         * builtins.c (expand_builtin_bzero): Convert `length' argument
10491         to sizetype.
10492
10493 2000-03-24  Jakub Jelinek  <jakub@redhat.com>
10494
10495         * sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for
10496         comparison if regno's are equal.
10497         * calls.c (initialize_argument_informat): Add ecf_flags argument.
10498         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
10499         (expand_call): Update caller.
10500         Avoid making a sibling call if argument size of the callee is larger
10501         than argument size of the caller.
10502         Call hard_function_value with outgoing set if in sibcall pass.
10503         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
10504
10505         * final.c (permitted_reg_in_leaf_functions, only_leaf_regs_used):
10506         Change LEAF_REGISTERS from an array initializer to actual array
10507         identifier. Move static global variable into the function.
10508         (leaf_function_p): Allow SIBLING_CALL_P calls even outside of
10509         sequences for leaf functions.
10510         * global.c (global_alloc): Likewise.
10511         * tm.texi (LEAF_REGISTERS): Update documentation.
10512
10513         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Remove the ugly
10514         TARGET_FLAT leaf disabling hack.
10515         (LEAF_REGISTERS): Changed from an array initializer to actual array
10516         identifier to avoid duplication and remove the above hack.
10517         (FUNCTION_OK_FOR_SIBCALL): Define.
10518         * config/sparc/sparc.md (sibcall): New attr type. Use it almost
10519         always like call attribute.
10520         (eligible_for_sibcall_delay): New attribute.
10521         (sibcall): New delay type.
10522         (sibcall, sibcall_value, sibcall_epilogue): New expands.
10523         (sibcall_symbolic_sp32, sibcall_symbolic_sp64,
10524         sibcall_value_symbolic_sp32, sibcall_value_symbolic_sp64): New insns.
10525         * config/sparc/sparc.c (sparc_leaf_regs): New array.
10526         (eligible_for_sibcall_delay, output_restore_regs, output_sibcall):
10527         New functions.
10528         (output_function_epilogue): Move part of the code into
10529         output_restore_regs.
10530         (ultra_code_from_mask, ultrasparc_sched_reorder): Handle
10531         TYPE_SIBCALL.
10532         * sparc-protos.h (output_sibcall, eligible_for_sibcall_delay): New
10533         prototypes.
10534
10535         * config/sparc/sparc.h (REVERSIBLE_CC_MODE): Revert Jan, 25 change
10536         until infrastructure is finished.
10537
10538 Fri Mar 24 13:49:45 2000  Jeffrey A Law  (law@cygnus.com)
10539
10540         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns here.
10541         (save_parm_insns): Not here.
10542
10543 2000-03-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10544
10545         * builtins.c (expand_builtin_bzero): New function.
10546         (expand_builtin): Handle bzero.
10547
10548         * builtins.def: Add BUILT_IN_BZERO.
10549
10550         * c-common.c (c_common_nodes_and_builtins): Provide builtin
10551         prototype & function for bzero.
10552
10553 2000-03-23  Michael Meissner  <meissner@redhat.com>
10554
10555         * config/alpha/alpha.md (TF floating point insns): Undo 2000-03-21
10556         change adding TARGET_FP to the TF floating point insns, except for
10557         trunctfsf2, which generates direct calls to truncdfsf2.
10558
10559 2000-03-23  Geoff Keating  <geoffk@cygnus.com>
10560
10561         * config/rs6000/rs6000.h (ARG_POINTER_CFA_OFFSET): New definition,
10562         try to protect against middle-end changes that break binary
10563         compatibility.
10564         (DWARF_FRAME_REGISTERS): New definition, likewise for backend.
10565
10566 2000-03-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10567
10568         * config/c4x/c4x.md (load_immed_address):  Add DP reg clobber.
10569
10570 Thu Mar 23 17:10:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10571
10572         * calls.c (expand_call): If TARGET is passed by reference and
10573         is readonly, write a CLOBBER.
10574
10575 2000-03-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10576
10577         * builtins.c (expand_builtin): Handle bcmp.
10578
10579         * builtins.def: Add BUILT_IN_BCMP.
10580
10581         * c-common.c (c_common_nodes_and_builtins): Provide builtin
10582         prototype & function for bcmp.
10583
10584 Thu Mar 23 11:34:39 2000  Jim Wilson  <wilson@cygnus.com>
10585
10586         * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC): Move case 6...
10587         (rtx_needs_barrier, case UNSPEC_VOLATILE): to here.
10588         * config/ia64/ia64.md (pr_restore): Change UNSPEC to UNSPEC_VOLATILE.
10589
10590 Thu Mar 23 16:04:40 2000  Andrew Haley  <aph@cygnus.com>
10591
10592         * config/mips/mips.md (movdf_internal1a): Delete (set 'f', 'F')
10593         alternative when using -fp64 -gp32.
10594
10595 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
10596
10597         * config/rs6000/rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define.
10598         * config/alpha/alpha.h (DWARF_FRAME_RETURN_COLUMN): Define.
10599         * config/sparc/sparc.h (DWARF_FRAME_RETURN_COLUMN): Define.
10600
10601         * frame.h (frame_state): Revert last change.
10602         * frame.c (execute_cfa_insn): Just don't record the save of a CFA reg.
10603         * libgcc2.c (throw_helper): Revert last change.
10604
10605 2000-03-22  Richard Henderson  <rth@cygnus.com>
10606
10607         * stmt.c (expand_asm_operands): Don't promote the temporary.
10608
10609 2000-03-22  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
10610
10611         * builtin.c (get_pointer_alignment): Use DECL_P and TYPE_P macros.
10612         * c-common.c (decl_attributes,check_format_info,truthvalue_conversion,
10613           c_get_alias_set): Likewise.
10614         * c-decl.c (duplicate_decls): Likewise.
10615         * c-typeck.c (default_conversion,build_unary_op): Likewise.
10616         * calls.c (initialize_argument_information): Likewise.
10617         * dwarf2out.c (decl_class_context,add_abstract_origin_attribute):
10618         Likewise.
10619         * dwarfout.c (decl_class_context,output_type): Likewise.
10620         * expr.c (get_inner_reference): Likewise.
10621         * fold-const.c (simple_operand_p,fold): Likewise.
10622         * function.c (aggregate_value_p): Likewise.
10623         * stmt.c (expand_asm_operands): Likewise.
10624         * varasm.c (named_section): Likewise.
10625
10626 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
10627
10628         Implement dwarf2 exception handling for the ARM.
10629         * config/arm/arm.h (INCOMING_RETURN_ADDR_RTX): Define.
10630         (DWARF_FRAME_RETURN_COLUMN): Define.
10631         * config/arm/arm.c (emit_multi_reg_push): Return rtx.  Attach
10632         REG_FRAME_RELATED_EXPR note.
10633         (emit_sfm): Likewise.
10634         (arm_expand_prologue): Set RTX_FRAME_RELATED_P on everything.
10635         * dwarf2out.c (reg_save): Handle saving a register to itself.
10636         (dwarf2out_frame_debug_expr): Handle an intermediate cfa reg.
10637         * except.c (eh_regs): Don't use the static chain reg if it's
10638         callee-saved.
10639         * frame.h (frame_state): Add cfa_saved field.
10640         * frame.c (execute_cfa_insn): Set it.
10641         * libgcc2.c (throw_helper): Don't adjust sp if it's restored in
10642         the epilogue.
10643         * function.c (ARG_POINTER_CFA_OFFSET): Default to FIRST_PARM_OFFSET.
10644         Now takes a parm.
10645         (instantiate_virtual_regs): Adjust.
10646         * tm.texi: Adjust.
10647         * config/m68k/m68k.h (ARG_POINTER_CFA_OFFSET): Don't define.
10648         * config/ns32k/ns32k.h (ARG_POINTER_CFA_OFFSET): Don't define.
10649         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): Take a parm.
10650
10651         * dwarf2out.c (reg_number): Refer to FIRST_PSEUDO_REGISTER.
10652         (initial_return_save): Use DWARF_FRAME_REGNUM, not reg_number.
10653
10654 2000-03-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10655
10656         * builtins.def: New file.
10657
10658         * Makefile.in (TREE_H): Depend on builtins.def.
10659
10660         * builtins.c (built_in_names): Use builtins.def.
10661
10662         * tree.h (built_in_function): Likewise.
10663
10664 2000-03-22  Mark Mitchell  <mark@codesourcery.com>
10665
10666         * tree.c (size_in_bytes): Return size_zero_node, not
10667         integer_zero_node.
10668
10669 2000-03-22  Geoff Keating  <geoffk@cygnus.com>
10670
10671         * config/fp-bit.c (pack_d): Correct the case when a denormal
10672         is rounded up and stops being denormal.
10673
10674 2000-03-21  Richard Henderson  <rth@cygnus.com>
10675
10676         * config/alpha/alpha.c (function_arg): Check for void_type_node
10677         before using MUST_PASS_IN_STACK.
10678
10679 2000-03-21  Stephane Carrez  <stcarrez@worldnet.fr>
10680
10681         * regmove.c (combine_stack_adjustments_for_block): Check that
10682         the stack pointer is a valid memory address.
10683
10684 Wed Mar 22 11:44:50 MET 2000  Jan Hubicka  <jh@suse.cz>
10685
10686         * calls.c: re-install Mar 16 emit_library_call merge.
10687
10688 2000-03-21  Jakub Jelinek  <jakub@redhat.com>
10689
10690         * config/sparc/sparc.c (mem_min_alignment): If not optimizing,
10691         we cannot be sure that if reload_completed base register will
10692         be properly aligned.
10693
10694 2000-03-21  Richard Henderson  <rth@cygnus.com>
10695
10696         * flow.c (delete_block): Fix typo last change.
10697
10698 2000-03-21  Mark Mitchell  <mark@codesourcery.com>
10699
10700         * c-common.c (c_expand_expr_stmt): Use COMPLETE_TYPE_OR_VOID_P,
10701         not COMPLETE_TYPE_P, to check the type of the expression.
10702
10703 2000-03-21  Michael Meissner  <meissner@redhat.com>
10704
10705         * config/alpha/alpha.md (floating point insns): Add TARGET_FP to
10706         all floating point insns that just tested the macro
10707         TARGET_HAS_XFLOATING_LIBS.
10708         (movsf/movdf recognizers): Add separate insns if -mno-fp-regs is
10709         used to only use the gprs.
10710
10711 2000-03-21  Nathan Sidwell  <nathan@codesourcery.com>
10712
10713         * tree.h (COMPLETE_TYPE_P): New macro.
10714         (COMPLETE_OR_VOID_TYPE_P): New macro.
10715         (COMPLETE_OR_UNBOUND_ARRAY_TYPE_P): New macro.
10716         * stor-layout.c (layout_type, case VOID_TYPE): Don't set TYPE_SIZE.
10717         * c-aux-info.c (gen_type): Use them.
10718         * c-common.c (c_expand_expr_stmt): Likewise.
10719         * c-decl.c (poplevel, pushdecl, start_decl, finish_decl,
10720         grokdeclarator, grokparms, finish_struct, start_function,
10721         store_parm_decls, combine_parm_decls): Likewise.
10722         * c-parse.y (cast_expr): Likewise.
10723         * c-typeck.c (require_complete_type, c_sizeof, c_sizeof_nowarn,
10724         c_size_in_bytes, c_alignof, build_component_ref,
10725         build_indirect_ref, build_array_ref, convert_arguments,
10726         build_binary_op, pointer_diff, build_unary_op, digest_init: Likewise.
10727         * calls.c (initialize_argument_information): Likewise.
10728         * convert.c (convert_to_integer): Likewise.
10729         * dbxout.c (dbxout_typedefs, dbxout_type, dbxout_symbol): Likewise.
10730         * dwarfout.c (location_or_const_value_attribute,
10731         output_enumeration_type_die, output_structure_type_die,
10732         output_union_type_die, output_type): Likewise.
10733         * expr.c (safe_from_p, expand_expr): Likewise.
10734         * function.c (assign_parms): Likewise.
10735         * sdbout.c (sdbout_symbol, sdbout_one_type): Likewise.
10736         * tree.c (build_array_type, build_function_type,
10737         build_method_type, build_offset_type, build_complex_type): Likewise.
10738         * c-parse.c, c-parse.h: Regenerated.
10739
10740 2000-03-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10741
10742         * config/c4x/rtems.h: Include config/rtems.h.
10743
10744 Tue Mar 21 09:24:00 2000  Denis Chertykov  <denisc@overta.ru>
10745
10746         * config/avr/avr.c (encode_section_info): sets SYMBOL_REF_FLAG if
10747         decl is a FUNCTION_DECL
10748
10749 Mon Mar 20 19:53:53 2000  Jim Wilson  <wilson@cygnus.com>
10750
10751         * config/ia64/ia64.c (ia64_expand_prologue): Don't abort if leaf
10752         function uses output registers.  Don't save RP for leaf functions.
10753         Do save RP even if no epilogue.
10754         * config/ia64/ia64.h (FIXED_REGISTERS): Unmark in/out registers.
10755         (CALL_USED_REGISTERS): Unmark in registers.
10756         (REG_ALLOC_ORDER): Move out regs up, to near the top.  Move in regs up,
10757         to near the middle.
10758
10759 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
10760
10761         * config/rs6000/rs6000.md (bunordered): New expander.
10762         (bordered): New expander.
10763         (buneq): New expander.
10764         (bunge): New expander.
10765         (bungt): New expander.
10766         (bunle): New expander.
10767         (bunlt): New expander.
10768         (bltgt): New expander.
10769
10770         * config/rs6000/rs6000.c (ccr_bit): Handle unordered comparisons.
10771         (ccr_bit_negated_p): New function.
10772         (print_operand): For %C, generate appropriate cror for UNEQ,
10773         UNLT, UNGT, and LTGT.  For %T and %t, use ccr_bit_negated_p.
10774
10775 2000-03-20  Andreas Jaeger  <aj@suse.de>
10776
10777         * sdbout.c (sdbout_one_type): Add braces to avoid "ambigous else"
10778         warning.
10779
10780         * tree.h (safe_for_unsave): Prototype.
10781
10782 2000-03-20  Richard Henderson  <rth@cygnus.com>
10783
10784         * regmove.c (stack_memref_p): Fix typo, reorg for readability.
10785         (combine_stack_adjustments_for_block): Don't allow sp references
10786         in the side of a set we're not fixing up.
10787         * toplev.c (rest_of_compilation): Run combine_stack_adjustments
10788         after life_analysis.
10789
10790 2000-03-20  Richard Henderson  <rth@cygnus.com>
10791
10792         * calls.c (expand_call): Don't bother generating tail call
10793         sequences if there are pending cleanups.  Use
10794         expand_start_target_temps/expand_end_target_temps to elide
10795         cleanups created during sibcall expansion.
10796
10797 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
10798
10799         * configure.in: Set $IFS to a value if it doesn't already have one
10800         in the --enable-checking handling.
10801         * configure: Regenerate.
10802
10803 2000-03-20  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
10804
10805         * c-parse.in (SAVE_WARN_FLAGS): Use size_int.
10806         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
10807         Regenerated.
10808
10809 Mon Mar 20 11:43:15 MET 2000  Jan Hubicka  <jh@suse.cz>
10810
10811         * jump.c (delete_noop_moves): Remove code attempting to
10812         combine stack adjustments.
10813
10814 2000-03-19  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
10815
10816         * emit-rtl.c (push_to_full_sequence, end_full_sequence): New functions.
10817         * except.c (emit_cleanup_handler): Use them.
10818         (expand_end_all_catch): Likewise.
10819         * function.c (fixup_var_refs): Likewise.
10820         (expand_function_end): Clear catch_clauses_last.
10821         * rtl.h (push_to_full_sequence, end_full_sequence): Declare.
10822         * except.h (struct eh_status): New field x_catch_clauses_last.
10823         (catch_clauses_last): New define.
10824
10825         * Makefile.in (tree.o): Depend on HASHTAB_H.
10826         * tree.c: Include hashtab.h.
10827         (struct type_hash): Remove next field.
10828         (TYPE_HASH_SIZE): Remove.
10829         (TYPE_HASH_INITIAL_SIZE): New define.
10830         (type_hash_table): Change type to htab_t.
10831         (type_hash_eq, type_hash_hash, print_type_hash_statistics,
10832         mark_hash_entry): New functions.
10833         (init_obstacks): Allocate type hash.
10834         (type_hash_lookup): Use htab functions.
10835         (type_hash_add, mark_type_hash): Likewise.
10836         (dump_tree_statistics): Call print_type_hash_statistics.
10837
10838 2000-03-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10839
10840         * rs6000/t-aix41: New file.
10841
10842         * configure.in ({rs6000,powerpc}-ibm-aix4.[12]*): Use it.
10843
10844 Sun Mar 19 13:27:30 2000  Hans-Peter Nilsson  <hp@axis.com>
10845
10846         * tm.texi (Driver): Fix typos and tweak entry for
10847         INCLUDE_DEFAULTS.
10848         Move misplaced STRUCT_FORCE_BLK entry ...
10849         (Storage Layout): ... to here.
10850         (Run-time Target): Recommend having TARGET_MASK_... helper macros.
10851
10852 2000-03-19  Richard Henderson  <rth@cygnus.com>
10853
10854         * flow.c (delete_block): Delete the addr_vec along with the block.
10855         (flow_delete_insn): Decrement LABEL_NUSES when deleting insns that
10856         reference labels.
10857
10858         * fold-const.c (extract_muldiv): Apply type check for defined
10859         overflow to multiply as well as divide.
10860
10861         * stor-layout.c (layout_decl): Don't abort on any zero sized decl.
10862
10863 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
10864
10865         * emit-rtl.c (remove_unncessary_notes): Check that all
10866         NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes have an
10867         associated NOTE_BLOCK.
10868         * function.h (identify_blocks): Update comments.
10869         (reorder_blocks): Declare.
10870         * function.c (identify_blocks): Don't take paramters.
10871         (reorder_blocks): Don't take parameters.
10872         * loop.h (find_loop_tree_blocks): Remove.
10873         (unroll_block_trees): Likewise.
10874         * loop.c (loop_optimize): Don't call find_loop_tree_blocks.  Use
10875         reorder_blocks instead of unroll_block_trees.h
10876         * sibcall.c (optimize_sibling_and_tail_recursive_calls): Likewise.
10877         * stmt.c (find_loop_tree_blocks): Remove.
10878         (unroll_block_trees): Likewise.
10879         * toplev.c (rest_of_compilation): Don't call find_loop_tree_blocks
10880         in whole-function mode.
10881         * tree.h (reorder_blocks): Remove declaration.
10882
10883         * expr.c: Include intl.h.
10884         * Makefile.in (expr.o): Depend on intl.h.
10885
10886 2000-03-18  Richard Henderson  <rth@cygnus.com>
10887
10888         * expr.c (emit_move_insn_1): Clarify cannot_inline message.
10889
10890 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
10891
10892         * tree.h (tree_index): Remove enumerals for integer types.
10893         (integer_type_kind): New type.
10894         (integer_types): New variable.
10895         (char_type_node): Adjust.
10896         (signed_char_type_node): Likewise.
10897         (unsigned_char_type_node): Likewise.
10898         (short_integer_type_node): Likewise.
10899         (short_unsigned_type_node): Likewise.
10900         (integer_type_node): Likewise.
10901         (unsigned_type_node): Likewise.
10902         (long_integer_type_node): Likewise.
10903         (long_unsigned_type_node): Likewise.
10904         (long_long_integer_type_node): Likewise.
10905         (long_long_unsigned_type_node): Likewise.
10906         * tree.c (integer_types): New variable.
10907         (init_obstacks): Register it as a root.
10908
10909 Sat Mar 18 14:38:00 2000  Jason Eckhardt  <jle@cygnus.com>
10910
10911         * bb-reorder.c (reorder_basic_blocks): Update PREV_INSN as well as
10912         NEXT_INSN. Update last insn in chain.
10913
10914 2000-03-17  Jason Merrill  <jason@casey.cygnus.com>
10915
10916         * dwarf2out.c (dwarf2out_decl): Don't emit anything for types
10917         with TYPE_DECL_SUPPRESS_DEBUG set.
10918
10919 2000-03-18  Richard Henderson  <rth@cygnus.com>
10920
10921         * flow.c (make_edges): Use INTVAL to access REG_EH_REGION value.
10922
10923 2000-03-18  Richard Henderson  <rth@cygnus.com>
10924
10925         * i386.c (call_insn_operand): Always allow SYMBOL_REF,
10926         care for HALF_PIC_P.
10927         (expander_call_insn_operand): Remove.
10928         (ix86_expand_epilogue): New arg `emit_return' to control return insn.
10929         * i386.h (PREDICATE_CODES): Update.
10930         * i386.md (all call expanders): Remove predicates, remove special
10931         handling for half-pic.
10932         (*call_1, *call_value_1): Handle SIBLING_CALL_P insns.
10933         (*call_pop_pic2, *call_pic2, *call_value_pop_2, *call_value_2): Remove.
10934         (sibcall_epilogue): New.
10935
10936 2000-03-17  Richard Henderson  <rth@cygnus.com>
10937
10938         * rtlanal.c (single_set): Reject if the parallel has anything
10939         except SET or USE or CLOBBER.
10940
10941 2000-03-17  Jeff Law  <law@cygnus.com>
10942             Richard Henderson  <rth@cygnus.com>
10943
10944         * Makefile.in (OBJS): Add sibcall.o.
10945         (sibcall.o): New.
10946         * sibcall.c: New file.
10947         * calls.c (FUNCTION_OK_FOR_SIBCALL): Provide default.
10948         (ECF_IS_CONST, ECF_NOTHROW, ECF_SIBCALL): New.
10949         (emit_call_1): Replace `is_const' and `nothrow' with `ecf_flags'.
10950         Emit sibcall patterns when requested.  Update all callers.
10951         (expand_call): Generate CALL_PLACEHOLDER insns when tail call
10952         elimination seems feasable.
10953         * final.c (leaf_function_p): Sibling calls don't discount being
10954         a leaf function.
10955         * flow.c (HAVE_sibcall_epilogue): Provide default.
10956         (find_basic_blocks_1): Sibling calls don't throw.
10957         (make_edges): Make edge from sibling call to EXIT.
10958         (propagate_block): Don't remove sibcall_epilogue insns.
10959         * function.c (prologue, epilogue): Turn into varrays.  Update all uses.
10960         (sibcall_epilogue): New.
10961         (fixup_var_refs): Scan CALL_PLACEHOLDER sub-sequences.
10962         (identify_blocks_1): Likewise.  Break out from ...
10963         (identify_blocks): ... here.
10964         (reorder_blocks_1): Scan CALL_PLACEHOLDER.  Break out from ...
10965         (reorder_blocks): ... here.
10966         (init_function_for_compilation): Zap prologue/epilogue as varrays.
10967         (record_insns): Extend a varray instead of mallocing new memory.
10968         (contains): Read a varray not array of ints.
10969         (sibcall_epilogue_contains): New.
10970         (thread_prologue_and_epilogue_insns): Emit and record
10971         sibcall_epilogue patterns.
10972         (init_function_once): Allocate prologue/epilogue varrays.
10973         * genflags.c (gen_insn): Treat sibcall patterns as calls.
10974         * integrate.c (save_parm_insns): Recurse on CALL_PLACEHOLDER patterns.
10975         Broken out from ...
10976         (save_for_inline_nocopy): ... here.
10977         (copy_insn_list): Recurse on CALL_PLACEHOLDER patterns.
10978         Broken out from ...
10979         (expand_inline_function): ... here.
10980         (copy_rtx_and_substitute): Handle NOTE_INSN_DELETED_LABEL.
10981         (subst_constants): Handle 'n' formats.
10982         * jump.c (jump_optimize_minimal): New.
10983         (jump_optimize_1): New arg `minimal'; update callers.  Elide most
10984         optimizations if it's set.
10985         * rtl.c (copy_rtx): Do copy jump & call for insns.
10986         * rtl.h (struct rtx_def): Document use of jump and call for insns.
10987         (SIBLING_CALL_P): New.
10988         (sibcall_use_t): New.
10989         * toplev.c (rest_of_compilation): Do init_EXPR_INSN_LIST_cache earlier.
10990         Invoke optimize_sibling_and_tail_recursive_calls.
10991         * tree.c (lang_safe_for_unsave): New.
10992         (safe_for_unsave): New.
10993         * tree.h (lang_safe_for_unsave, safe_for_unsave): Declare.
10994
10995         * alpha.h (FUNCTION_OK_FOR_SIBCALL): New.
10996         * alpha.md (sibcall, sibcall_value, sibcall_epilogue): New.
10997         (*sibcall_osf_1, *sibcall_value_osf_1): New.
10998
10999 2000-03-17  Mark Mitchell  <mark@codesourcery.com>
11000
11001         * objc/objc-act.c (encode_method_prototype): Pass types, not
11002         PARM_DECLs, to int_size_in_bytes.
11003
11004 Fri Mar 17 11:51:34 2000  Jim Wilson  <wilson@cygnus.com>
11005
11006         * config/ia64/ia64.md (mix4right_3op): Swap %1 and %2 in template.
11007
11008         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
11009         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyrights again.
11010
11011 Fri Mar 17 08:09:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11012
11013         * Clean up usages of TREE_INT_CST_LOW.
11014         * c-parse.in (RESTORE_WARN_FLAGS): Use tree_low_cst.
11015         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
11016         Regenerated.
11017         * c-tree.h (min_precision): Move declaration to here.
11018         * c-typeck.c (build_binary_op): Use host_integerp and tree_low_cst.
11019         (build_unary_op, add_pending_init): Use bit_position.
11020         (pending_init_member, process_init_element): Likewise.
11021         (really_start_incremental_init, push_init_level, pop_init_level):
11022         Don't make copies of nodes or modify them in place, use consistent
11023         types when tracking positions, and use tree routines computations.
11024         (set_init_index, output_init_element): Likewise.
11025         (output_pending_init_elements, process_init_element): Likewise.
11026         * dbxout.c (dbxout_type_fields): Use bit_position, host_integerp,
11027         tree_low_cst and int_bit_position; also minor cleanup.
11028         (dbxout_type_method_1, dbxout_range_type, dbxout_type): Likewise.
11029         (print_cst_octal): Precision is unsigned.
11030         (dbxout_symbol): Ensure DECL_INITIAL is in-range and use tree_low_cst.
11031         * dwarf2out.c (ceiling): Input and output are unsigned HOST_WIDE_INT.
11032         (simple_type_align_in_bits): Result is unsigned int.
11033         Use tree_int_low_cst and host_integerp.
11034         (simple_type_size_in_bits): Result is unsigned HOST_WIDE_INT.
11035         (field_byte_offset): Result is HOST_WIDE_INT.
11036         Change types of internal variables so alignments are unsigned int,
11037         offsets are HOST_WIDE_INT and sizes are unsigned HOST_WIDE_INT.
11038         Use host_integerp, tree_low_cst, and int_bit_position.
11039         (add_bit_offset_attribute): Likewise.
11040         (add_data_member_location_attribute): Use tree_cst_low.
11041         (add_bound_info): Use host_integerp, integer_zerop, and integer_onep.
11042         (add_bit_size_attribute): Use tree_low_cst.
11043         (add_pure_or_virtual_attribute, gen_enumeration_type_die): Likewise.
11044         * dwarfout.c: Similar changes to dwarf2out.c.
11045         * expr.c (expand_expr, case ARRAY_REF): Remove redundant code.
11046         * genoutput.c (n_occurences): Return -1 for null string.
11047         (strip_whitespace): Accept null string and make into function.
11048         (scan_operands): Reflect above changes.
11049         * sdbout.c (plain_type_1): Use host_integerp and tree_low_cst.
11050         (sdbout_field_types, sdbout_one_type): Likewise; also use bit_position.
11051         * ssa.c (rename_registers): Add missing cast of arg to bzero.
11052         * tree.c (int_size_in_bytes): Check for too big to represent.
11053         (bit_position, int_bit_position, host_integerp, tree_low_cst): New fns.
11054         * tree.h (host_integerp, tree_low_cst, bit_position, int_bit_position):
11055         New declarations.
11056         (min_precision): Delete from here.
11057         * varasm.c (decode_addr_const): Use host_integerp, bit_position,
11058         and int_bit_position.
11059         * objc/objc-act.c (encode_method_prototype): Sizes are HOST_WIDE_INT.
11060         (encode_method_def): Likewise.
11061         (build_ivar_list_initializer): Use int_bit_position.
11062         (generate_shared_structures): Convert size.
11063         (encode_type, encode_complete_bitfield): Use integer_zerop.
11064         (encode_bitfield): Use tree_low_cst and int_bit_position.
11065
11066 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11067
11068         * config/c4x/c4x.h (CPP_SPEC): Fix typo.
11069
11070 2000-03-17  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
11071
11072         * call.c (special_function_p): It is only malloc if it returns
11073         Pmode.
11074
11075 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11076
11077         * config/c4x/c4x.h (ASM_SPEC, CPP_SPEC, LINK_SPEC): Support C33.
11078         (C33_FLAG, TARGET_C3X): Add macros.
11079         (TARGET_SWITCHES): Add -m33 option.
11080         * config/c4x/c4x.c (c4x_override_options): Test for TARGET_C33.
11081
11082 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11083
11084         * config/c4x/c4x.h (PARALLEL_INSN_FLAG): Add.
11085         (PARALLEL_PACK_FLAG): Delete.
11086         (TARGET_SWITCHES): Update.
11087         (TARGET_PARALLEL): Use PARALLEL_INSN_FLAG.
11088
11089 Thu Mar 16 18:52:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11090
11091         * fold-const.c (fold): Fix a few cases when the returned result
11092         is not of the same type as the input.
11093
11094 2000-03-16  Nick Clifton  <nickc@cygnus.com>
11095
11096         * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Fix compile time
11097         warning.
11098
11099 2000-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11100
11101         * libgcc2.h: Move prototypes above macros with the same name.
11102         Wrap some function prototypes in the conditional which indicates
11103         whether they are supported, i.e. "BITS_PER_UNIT == 8".
11104
11105 2000-03-16  Richard Henderson  <rth@cygnus.com>
11106
11107         * calls.c: Revert last two changes.
11108
11109 2000-03-16  Bernd Schmidt  <bernds@cygnus.co.uk>
11110
11111         * fp-bit.c (_unpack_d): If NO_DENORMALS is defined, anything that
11112         has exponent 0 is a zero.
11113
11114         * simplify-rtx.c (hash_rtx, case MEM/REG): Take into account that
11115         HASH may already be nonzero.  Add code/mode into hash value
11116         immediately after repeat label.
11117         (cselib_lookup): Don't leave the hash table in an inconsistent
11118         state before a hash lookup operation.
11119
11120 Thu Mar 16 17:03:10 MET 2000  Jan Hubicka  <jh@suse.cz>
11121
11122         * i386.md (all HI and QI mode non-move patterns):  Conditionize
11123         by TARGET_[HQ]IMODE_MATH.
11124         * i386.h (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
11125         x86_promote_qi_regs): Declare.
11126         (TARGET_HIMODE_MATH, TARGET_QIMODE_MATH, TARGET_PROMOTE_HI_REGS,
11127         TARGET_PROMOTE_QI_REGS): New macros.
11128         (PROMOTE_MODE): New macro.
11129         * i386.c (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
11130         x86_promote_qi_regs): New global variables.
11131
11132 Thu Mar 16 16:50:44 MET 2000  Jan Hubicka  <jh@suse.cz>
11133
11134         * calls.c (emit_library_call_value_1): Break out from ...; handle
11135         VOIDmode function calls too.
11136         (emit_library_call_value): ... here.
11137         (emit_library_call): Implement by calling emit_library_call_value_1.
11138
11139 Thu Mar 16 16:01:30 MET 2000  Jan Hubicka  <jh@suse.cz>
11140
11141         * calls.c (expand_call): Do sanity checking on arg_space_so_far.
11142         Update arg_space_so_far on stack adjustments.
11143         (emit_library_call, emit_library_call_value): Likewise; take into
11144         account arg_space_so_far and pending_stack_adjust when calculcating
11145         the boundary.
11146
11147 Thu Mar 16 09:02:19 2000  Jason Eckhardt  <jle@cygnus.com>
11148
11149         * flow.c: Move all basic block reordering code into its own file.
11150         (create_basic_block): Externalize.
11151         * bb-reorder.c: New file. Copy all basic block reordering code from
11152         flow.c to this file.
11153         (reorder_basic_blocks): Fix fencepost error in for-loop.
11154         (reorder_basic_blocks): Remove braces from single statement for-loops.
11155         * basic-block.h: Add declaration for create_basic_block.
11156         * Makefile.in: Add rules for bb-reorder.o.
11157
11158 2000-03-16  Neil Booth  <NeilB@earthling.net>
11159
11160         * cppinit.c (handle_option):  Implement #unassert directive
11161         as -A- command line option.
11162         (print_help):  Update.
11163         * cpptexi.c:  Update.
11164
11165 Thu Mar 16 02:14:16 2000  Hans-Peter Nilsson  <hp@bitrange.com>
11166
11167         * md.texi (Standard Names): Document `jump'.
11168
11169 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
11170
11171         * calls.c (emit_call_1): Nothrow functions can still have nonlocal
11172         gotos.
11173
11174 2000-03-15  Geoff Keating  <geoffk@cygnus.com>
11175
11176         Merge changes from newppc-branch onto trunk.
11177
11178         2000-03-15  Geoff Keating  <geoffk@cygnus.com>
11179
11180         * rs6000.c (toc_hash_table): Update for new hash table functions.
11181         (toc_hash_function): Likewise.
11182         (toc_hash_eq): Likewise.
11183         (toc_hash_mark_entry): Likewise.
11184         (toc_hash_mark_table): Likewise.
11185         (output_toc): Likewise.
11186         (rs6000_add_gc_roots): Likewise.
11187
11188         2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11189
11190         * t-aix43 (AR_FOR_TARGET): Deleted.  Moved `-X32_64'...
11191         (AR_FLAGS_FOR_TARGET): here.  New macro.
11192
11193         2000-03-05  Clinton Popetz  <cpopetz@cygnus.com>
11194
11195         * config/rs6000/rs6000.c (rs6000_fpmem_offset, rs6000_fpmem_size,
11196         fpmem_operand) Delete.
11197         (xer_operand) New.
11198         (rs6000_reg_names, alt_reg_names): Change fpmem to xer.
11199         (machine_function): Remove fpmem_size, fpmem_offset, save_toc_p.
11200         (rs6000_save_machine_status, rs6000_restore_machine_status,
11201         rs6000_init_expanders, rs6000_stack_info, debug_stack_info): Remove
11202         references to above variables.
11203         (gpc_reg_operand): Use XER_REGNO_P instead of FPMEM_REGNO_P.
11204         * config/rs6000/rs6000.h (REG_ALLOC_ORDER, REGISTER_NAMES,
11205         DEBUG_REGISTER_NAMES): Chagne fpmem to xer.
11206         (FPMEM_REGNO_P, FPMEM_REGNUM): Delete.
11207         (XER_REGNO_P, XER_REGNO): New.
11208         (rs6000_stack): Remove fpmem_p, fpmem_offset, fpmem_size.
11209         (PREDICATE_CODES): Change fpmem_operand to xer_operand.
11210         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Change FPMEM_REGNO_P to
11211         XER_REGNO_P.
11212         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
11213         REG_CLASS_FROM_LETTER, CLASS_MAX_NREGS): Change FPMEM_REGS to XER_REGS,         and remove FLOAT_OR_FPMEM_REGS.
11214         (CLASS_CANNOT_CHANGE_SIZE): Change to FLOAT_REGS.
11215
11216         2000-02-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11217
11218         * aix.h (FP_SAVE_INLINE, ASM_OUTPUT_INTERNAL_LABEL_PREFIX,
11219         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Move here...
11220         * rs6000.h: from here.
11221
11222         * rs6000-protos.h (rs6000_select_section): Provide prototype.
11223         (rs6000_select_rtx_section): Likewise.
11224         (rs6000_encode_section_info): Likewise.
11225         (sdata_section): Likewise.
11226         (sdata2_section): Likewise.
11227         (sbss_section): Likewise.
11228         * sysv4.h (rs6000_select_section): Delete prototype.
11229         (rs6000_select_rtx_section): Likewise.
11230         (rs6000_encode_section_info): Likewise.
11231         (sdata_section): Likewise.
11232         (sdata2_section): Likewise.
11233         (sbss_section): Likewise.
11234         (REG_SAVE_AREA): Delete definition duplicated in rs6000.h.
11235
11236         * sysv4.h: Delete various unnecessary #undef's and put a comment
11237         on the remaining ones.
11238         Change various comments according to coding standard.
11239
11240         2000-02-29  Clinton Popetz  <cpopetz@cygnus.com>
11241
11242         * config/rs6000/rs6000.h (MQ_REGNO, CR0_REGNO, CR1_REGNO, CR2_REGNO,
11243         CR3_REGNO, CR4_REGNO, MAX_CR_REGNO): Define.
11244         (CR0_REGNO_P) Remove.
11245         * config/rs6000/rs6000.c (gpc_reg_operand, and64_operand, and_operand,
11246         setup_incoming_varargs, mtcrf_operation, print_operand,
11247         rs6000_stack_info, rs6000_emit_prologue, rs6000_emit_epilogue):
11248         Use the above macros.
11249
11250         2000-02-24  Clinton Popetz  <cpopetz@cygnus.com>
11251
11252         * config/rs6000/rs6000.md: Added a new alternative for each
11253         pattern that had a 'x' alternative but no 'y' alternative.
11254         Added a new split for each of the above patterns.
11255
11256         2000-02-18  Geoff Keating  <geoffk@cygnus.com>
11257
11258         * aix41.h (ASM_CPU_SPEC): Delete.
11259         (CPP_CPU_SPEC): Delete.
11260
11261         * aix.h (RS6000_OUTPUT_BASENAME): Define.
11262         (ASM_OUTPUT_LABEL): Define.
11263         (ASM_GLOBALIZE_LABEL): Define.
11264         (STRIP_NAME_ENCODING): Define.
11265         * rs6000.h (RS6000_OUTPUT_BASENAME): Don't define.
11266         (STRIP_NAME_ENCODING): Don't define.
11267         (ASM_OUTPUT_LABEL): Don't define.
11268         (ASM_GLOBALIZE_LABEL): Don't define.
11269         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use assemble_name to output
11270         names, and ASM_OUTPUT_LABEL to output labels, rather than
11271         asm_fprintf.
11272         (ASM_OUTPUT_LABEL): Define.
11273         (ASM_OUTPUT_INT): Use assemble_name.
11274         (ASM_OUTPUT_DWARF_ADDR): Use assemble_name.
11275         (STRIP_NAME_ENCODING): Don't undefine first.
11276         (RS6000_OUTPUT_BASENAME): Make equivalent to assemble_name for
11277         ELF.
11278         (ASM_OUTPUT_LABELREF): Don't prepend underscores to labels
11279         specified with 'asm' even with -fleading-underscore.
11280         * rs6000.c (print_operand): Use assemble_name when !TARGET_AIX.
11281         (output_epilog): Likewise.
11282         (output_toc): Likewise.
11283         * tramp.asm: Handle -fleading-underscore correctly.
11284
11285         * rs6000.md (builtin_setjmp_receiver): Also run for -fPIC and
11286         -mminimal-toc.
11287         (nonlocal_goto_receiver): Delete.
11288         * rs6000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Delete.
11289
11290         * rs6000.h (ASM_OUTPUT_DEF): Don't define.
11291         (SET_ASM_OP): Define.
11292         * sysv4.h (ASM_OUTPUT_DEF): Don't undefine.
11293
11294         * rs6000.h (ASM_OUTPUT_ADDR_VEC_ELT): Don't define.
11295         (ASM_LONG): Define.
11296
11297         * rs6000.c (rs6000_dll_import_ref): Delete, not used.
11298         * rs6000-protos.h (rs6000_dll_import_ref): Delete.
11299
11300         * rs6000.h: Add 'u' to more constants.
11301
11302         2000-02-18  David Edelsohn  <edelsohn@gnu.org>
11303
11304         * rs6000.md (mfcr+shift): Delete PowerPC64 version.
11305
11306         2000-02-15  David Edelsohn  <edelsohn@gnu.org>
11307
11308         * rs6000.c (reg_or_u_cint_operand): New function.
11309         (logical_operand): Handle 64-bit hosts.
11310         (logical_u_operand): New function.
11311         (non_logical_cint_operand): Handle 64-bit hosts.
11312         (non_logical_u_cint_operand): New function.
11313         * rs6000.h (DATA_SECTION_ASM_OP): Add tab.
11314         (PREDICATE_CODES): Define new functions.
11315         * rs6000-protos.h: Declare new functions.
11316         * rs6000.md (iordi3, xordi3): Constant int must be unsigned 32-bits.
11317         (movdi_64): Bracket code intended for 64-bit hosts.  Create
11318         CONST_DOUBLE for 32-bit values.
11319         (scc insns): Generate DImode compares.
11320         (mfcr insns): Create DImode versions.
11321         (sge matchers): New patterns.
11322
11323         2000-02-15  Gabriel Paubert  <paubert@iram.es>
11324
11325         * rs6000.md: Correct instructions length attributes and
11326         constraints on unsigned compare instructions.
11327         (*ne0): Disable for PowerPC64.
11328
11329         2000-02-11  Geoff Keating  <geoffk@cygnus.com>
11330
11331         * rs6000.c (output_function_profiler): Use .long for a 32-bit
11332         quantity, fix profile1.C test failure under -fPIC.
11333
11334         * rs6000.c: Add 'u' to many constants to suppress warnings.
11335         (constant_pool_expr_1): Make static.
11336         (rs6000_emit_eh_toc_restore): Remove unused 'r2'.
11337         * rs6000.h: Add 'u' to many constants to suppress warnings.
11338
11339         * rs6000.c (rs6000_emit_load_toc_table): Use LCTOC..1 under AIX
11340         for the start of the TOC, instead of LCTOC..0.
11341         * aix.h (toc_section): Use LCTOC..1 under AIX for the start
11342         of the TOC.
11343         * rs6000.md (load_toc_aix_si): Use LCTOC..1.
11344         (load_toc_aix_di): Use LCTOC..1.
11345
11346         * rs6000.h (LEGITIMIZE_ADDRESS): Turn into a function.
11347         * rs6000.c (rs6000_legitimize_address): New function from
11348         LEGITIMIZE_ADDRESS.  Only use create_TOC_reference on
11349         symbols in the constant pool that really are TOC references.
11350         (print_operand_address): For ELF, write TOC offsets under
11351         -fPIC as subtractions in the insn.
11352         (output_toc): For ELF, define symbols in TOC as normal labels,
11353         to match RTL.
11354         (create_TOC_reference): Use gen_rtx_PLUS rather than gen_rtx.
11355         * rs6000-protos.h (rs6000_legitimize_address): Prototype.
11356         (create_TOC_reference): Prototype only when RTX_CODE is defined.
11357         * rs6000.md (movsi): Only use create_TOC_reference on
11358         symbols in the constant pool that really are TOC references.
11359
11360         * rs6000.h (MACHINE_DEPENDENT_REORG): Don't define.
11361         * rs6000.c (rs6000_reorg): Delete.
11362         * rs6000-protos.h (rs6000_reorg): Delete.
11363
11364         2000-02-09  Geoff Keating  <geoffk@cygnus.com>
11365
11366         * rs6000.h (INCOMING_RETURN_ADDR_RTX): New macro.
11367
11368         * aix.h (SETUP_FRAME_ADDRESSES): Define.
11369         * rs6000.c [TARGET_AIX] (insn_after_throw): New static variable.
11370         [TARGET_AIX] (rs6000_aix_emit_builtin_unwind_init): New function.
11371         [TARGET_AIX] (rs6000_emit_eh_toc_restore): New function.
11372         * rs6000-protos.h: Prototype rs6000_emit_eh_toc_restore,
11373         rs6000_aix_emit_builtin_unwind_init.
11374         * rs6000.md (eh_epilogue) [TARGET_AIX]: Call
11375         rs6000_emit_eh_toc_restore on AIX.
11376         (return_eh_si): Use r2.
11377         (return_eh_di): Use r2.
11378
11379         * aix43.h: Turn on HAS_INIT_SECTION and LD_INIT_SWITCH,
11380         since we're breaking binary compatibility anyway.
11381
11382         2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
11383
11384         * config/rs6000/rs6000-protos.h: (get_TOC_alias_set, uses_TOC,
11385         constant_pool_expr_p): Declare them.
11386         (constant_pool_expr_p): Declare it.
11387         * config/rs6000/rs6000.c (toc_label_name): Define.
11388         (rs6000_override_options): Set toc_label_name.
11389         (input_operand): Allow any TOC_RELATIVE_EXPR_P.
11390         (get_TOC_alias_set, constant_pool_expr_p, constant_pool_expr_1,
11391         uses_TOC): New functions.
11392         (print_operand): Delete old '*' case.
11393         (print_operand_address): Use LEGITIMATE_CONSTANT_POOL_ADDRESS_P,
11394         and strip off rtl for TOC before calling output_addr_const.
11395         (rs6000_emit_load_toc_table): Use toc_label_name.
11396         * config/rs6000/rs6000.h (TARGET_SWITCHES): Make msched-prolog
11397         the default.
11398         (LEGITIMATE_CONSTANT_POOL_BASE_P): Delete.
11399         (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): New macros.
11400         (LEGITIMATE_CONSTANT_POOL_ADDRESS_P): Use CONSTANT_POOL_EXPR_P.
11401         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Turn symbol_refs
11402         into explicit TOC_REGISTER offsets.
11403         (TOC_REGISTER): New macro.
11404         * config/rs6000/rs6000.md (movsi, movdi): Emit rtl under
11405         TARGET_TOC to reference TOC_REGISTER.
11406         (load_toc_v4_PIC_1b): Add 4 to offset for toc reload.
11407         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Call
11408         uses_TOC before emitting label references.
11409
11410         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
11411
11412         * rs6000.md (stack_tie): Fix warning.
11413
11414         * eabi-ctors.c: Use 'asm' names for the start/end variables,
11415         to handle -fleading-underscore.
11416         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use asm_fprintf and %U.
11417         (USER_LABEL_PREFIX): New macro.
11418         (ASM_OUTPUT_INTERNAL_LABEL_PREFIX): Use asm_fprintf and %L.
11419         (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U.
11420         * t-ppccomm (MULTILIB_MATCHES_SYSV): Note that call-sysv and
11421         call-linux can use the same multilibs.
11422         * t-ppcgas (MULTILIB_OPTIONS): Don't need to have separate call-sysv
11423         and call-linux multilibs.  Do multilib with -fleading-underscore.
11424         (MULTILIB_DIRNAMES): Follow MULTILIB_OPTIONS change.
11425         (MULTILIB_EXCEPTIONS): Remove call-linux exceptions.  Add restrictions
11426         to call-aix.
11427
11428         * sysv4.h (CPP_SYSV_SPEC): Define _SOFT_FLOAT for all those CPUs that
11429         have MASK_SOFT_FLOAT set.
11430         (CPP_FLOAT_DEFAULT_SPEC): New macro.
11431         (SUBTARGET_EXTRA_SPECS): Set `cpp_float_default' to the value of
11432         CPP_FLOAT_DEFAULT_SPEC.
11433
11434         * rs6000.c (ccr_bit): Add some consistency checks and a variable 'reg'.
11435         * rs6000.md: Whitespace change.
11436         * sysv4.h (LINK_TARGET_SPEC): Whitespace change.
11437         * sysv4le.h (LINK_TARGET_SPEC): Whitespace change.
11438
11439         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
11440
11441         * rs6000.md (eh_epilogue): New expander.
11442         (eh_reg_restore): New expand/split/insn combination.
11443         (return_eh_si): New insn.
11444         (return_eh_di): New insn.
11445
11446         * eabi-ci.asm: Put a label at the start of the .eh_frame section.
11447         * eabi-cn.asm: Put a zero at the end of the .eh_frame section.
11448         * eabi-ctors.c (__do_global_ctors): Register this object's
11449         frame.  Clean up.  Call atexit() after the constructors.
11450         (__do_global_dtors): Deregister this object's frame.  Clean up.
11451         Allow for recursive calls to exit().
11452         * rs6000.c (fixuplabelno): New variable.
11453         * sysv4.h (ASM_OUTPUT_INT): Don't do .fixup if not
11454         TARGET_RELOCATABLE, it slows down exec() under linux.
11455         (ASM_OUTPUT_DWARF_ADDR): Do .fixup if TARGET_RELOCATABLE.
11456
11457         * aix.h (ASM_OUTPUT_DWARF_ADDR_VAR): New macro.
11458         (ASM_OUTPUT_DWARF_DELTA_VAR): New macro.
11459         (ASM_OUTPUT_DWARF_DELTA2): New macro.
11460         (ASM_OUTPUT_DWARF_DELTA4): New macro.
11461         (ASM_OUTPUT_DWARF_ADDR_DELTA): New macro.
11462         (ASM_OUTPUT_DWARF_ADDR): New macro.
11463         (ASM_OUTPUT_DWARF_DATA4): New macro.
11464         (ASM_OUTPUT_DWARF_DATA2): New macro.
11465         (ASM_OUTPUT_DWARF_OFFSET4): New macro.
11466         (ASM_OUTPUT_DWARF_OFFSET): New macro.
11467         (UNALIGNED_INT_ASM_OP): New macro, fake definition.
11468
11469         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
11470
11471         * rs6000.c (rs6000_sr_alias_set): New variable.
11472         (rs6000_override_options): Initialise rs6000_sr_alias_set.
11473         (rs6000_emit_stack_tie): New function.
11474         (rs6000_emit_allocate_stack): Specify RTX_FRAME_RELATED_P
11475         in a way that dwarf2out can understand.
11476         (rs6000_frame_related): New function.
11477         (rs6000_emit_prologue): Use rs6000_sr_alias_set.  Specify
11478         RTX_FRAME_RELATED_P in a way that dwarf2out can understand.
11479         Use rs6000_emit_stack_tie when needed.
11480         (rs6000_emit_epilogue): Use rs6000_sr_alias_set.  Don't set
11481         RTX_FRAME_RELATED_P.  Use rs6000_emit_stack_tie when needed.
11482         * rs6000.md (stack_tie): New insn.
11483         (return_internal_si): Allow return value to be in the count
11484         register.
11485         (return_internal_di): Likewise.
11486
11487         * rs6000.c (output_mi_thunk): Remove unused variable `sp'.
11488
11489         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
11490
11491         * sysv4.h (LOCAL_LABEL_PREFIX): Define, for the use of dbxelf.h.
11492
11493         2000-01-31  Geoff Keating  <geoffk@cygnus.com>
11494
11495         * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): New macro.
11496
11497         * rs6000.md (stmw): Use the right POWER opcode.
11498         (lmw): Likewise.
11499
11500         2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11501
11502         * rs6000-protos.h: New file.
11503
11504         * rs6000.c: Include tm_p.h.  Fix compile time warnings.
11505
11506         * rs6000.h: Move prototypes to rs6000-protos.h.  Fix compile time
11507         warnings.
11508
11509         * sysv4.h: Likewise.
11510
11511         2000-01-28  Geoff Keating  <geoffk@cygnus.com>
11512
11513         * ../../configure.in: Delete powerpcle-*-winnt*
11514         and powerpcle-*-pe|powerpcle-*-cygwin*.
11515         * ../../configure: Regenerated.
11516         * cygwin.h: Delete.
11517         * rs6000.h (OBJECT_WINDOWS_NT): Delete.
11518         (TARGET_WINDOWS_NT): Delete.
11519         (ABI_NT): Delete.
11520         (CALL_NT_DLLIMPORT): Delete.
11521         Delete NT-specific code.
11522         * rs6000.md, rs6000.c, sysv4.h: Delete NT-specific code.
11523         * win-nt.h: Delete.
11524         * t-winnt: Delete.
11525         * nt-ci.asm: Delete.
11526         * nt-cn.asm: Delete.
11527         * ntstack.asm: Delete.
11528
11529         2000-01-27  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11530
11531         * rs6000.h (SELECT_RTX_SECTION): Move to aix.h.
11532         (ASM_FILE_START): Likewise.
11533         (ASM_DECLARE_FUNCTION_NAME): Likewise.
11534         (ASM_OUTPUT_LABELREF): Likewise.
11535         (ASM_OUTPUT_SKIP): Likewise.
11536         (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
11537         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
11538         (ASM_OUTPUT_CASE_LABEL): Likewise.
11539         (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
11540         (ASM_OUTPUT_ASCII): Likewise.
11541
11542         2000-01-27  Clinton Popetz  <cpopetz@cygnus.com>
11543
11544         * rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and
11545         reload_toc_labelno for non-prologue TOC reloads.  Also, don't
11546         increment rs6000_pic_labelno here.
11547         (rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table,
11548         and increment rs6000_pic_labelno here.
11549
11550         2000-01-24  Geoffrey Keating  <geoffk@cygnus.com>
11551
11552         * rs6000.md (fctiwz): Use (set (reg) (unspec:DI [(fix:SI ...)]))
11553         rather than (set (subreg:SI (reg)) (fix:SI ...)) so that register
11554         allocation knows (reg) is dead before the insn.
11555
11556         2000-01-21  Geoff Keating  <geoffk@cygnus.com>
11557
11558         * rs6000.md (movsi_to_cr): Correct typo in output template.
11559
11560         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
11561
11562         * rs6000.c (rs6000_pic_labelno): Always define.
11563         (rs6000_pic_func_labelno): Delete.
11564         (lmw_operation): Check for a zero base register,
11565         which doesn't mean what we want.
11566         (stmw_operation): New function.
11567         (print_operand): Define new 'l' modifier.
11568         (rs6000_stack_info): We must save all 64 bits of the registers
11569         if TARGET_POWERPC64.
11570         (rs6000_output_load_toc_table): Delete.
11571         (rs6000_emit_load_toc_table): New function.
11572         (rs6000_allocate_stack_space): Delete.
11573         (rs6000_emit_allocate_stack): New function.
11574         (rs6000_emit_prologue): New function.
11575         (output_prolog): Use rs6000_emit_prologue.
11576         (rs6000_emit_epilogue): Change a few variable names to be
11577         more accurate.  Restore all 64 bits of the registers if
11578         TARGET_POWERPC64.  Only restore the FP registers which were used
11579         if they are being saved/restored one-at-a-time.
11580         (output_mi_thunk): Delete inefficient code generation.
11581         (output_function_profiler): Don't use rs6000_output_load_toc_table.
11582         * rs6000.h: Declare rs6000_emit_load_toc_table,
11583         rs6000_allocate_stack_space, stmw_operation.  Don't declare
11584         rs6000_output_load_toc_table.
11585         * rs6000.md (elf_high): Allow register 0, but discourage it
11586         heavily.
11587         (elf_low): Support loading into register 0.
11588         (load_toc_aix_si): New pattern.
11589         (load_toc_aix_di): New pattern.
11590         (load_toc_v4_pic_si): New pattern.
11591         (load_toc_v4_pic_di): New pattern.
11592         (load_toc_v4_PIC_1): New pattern.
11593         (load_toc_v4_PIC_1b): New pattern.
11594         (load_toc_v4_PIC_2): New pattern.
11595         (builtin_setjmp_receiver): Use rs6000_emit_load_toc_table.
11596         (nonlocal_goto_receiver): Use rs6000_emit_load_toc_table.
11597         (prologue): New expander.
11598         (movesi_from_cr): New pattern.
11599         (stmw): New pattern.
11600         (save_fpregs_si): New pattern.
11601         (save_fpregs_di): New pattern.
11602
11603         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
11604
11605         * rs6000.md (movsi): Don't use force_reg when no_new_pseudos.
11606         (movdi): Likewise.
11607         (movhi): Likewise.
11608         (movqi): Likewise.
11609
11610         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
11611
11612         * rs6000.md (movsi_got): 'unspec 8' returns a SImode result,
11613         at present.
11614         (movsi_got_internal): Likewise.
11615         (movsi_got_internal+1): Likewise.
11616         (set_sp): 'unspec 7' does a SImode clobber.
11617
11618         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
11619
11620         * rs6000.md (floatsidf2): Don't use the fpmem "register", just
11621         allocate a stack temporary.
11622         (floatsidf2_internal): Likewise.
11623         (floatsidf2_internal+1): Likewise.  Don't do bizzare hacks
11624         with unspec.
11625         (floatunssidf2): Don't use the fpmem "register", just
11626         allocate a stack temporary.
11627         (floatunssidf2_internal): Likewise.
11628         (floatunssidf2_internal+1): Likewise.  Don't do bizzare hacks
11629         with unspec.
11630         (floatsidf2_loadaddr): Delete.
11631         (floatsidf2_store1): Delete.
11632         (floatsidf2_store2): Delete.
11633         (floatsidf2_load): Delete.
11634         (fix_truncdfsi2): Don't use the fpmem "register", just
11635         allocate a stack temporary.
11636         (fix_truncdfsi2_internal_si): Delete.
11637         (fix_truncdfsi2_internal_di): Delete.
11638         (fix_truncdfsi2_internal): New insn.
11639         (fix_truncdfsi2_internal+1): Don't use the fpmem "register".
11640         (fix_truncdfsi2_store): Delete.
11641         (fix_truncdfsi2_load): Delete.
11642         (fctiwz): Produce gen_fctiwz.
11643
11644         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
11645
11646         * eabi.h (INVOKE__main): Define.
11647         * rs6000.c (rs6000_stack_info): Don't handle call to NAME__MAIN
11648         specially.
11649         (rs6000_emit_prologue): Likewise.
11650         * rs6000.h (struct rs6000_stack): Don't keep track of whether
11651         this is the main program.
11652
11653         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
11654
11655         * rs6000.c (rs6000_va_arg): Delete some unused variables.
11656
11657         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
11658
11659         * rs6000.c (rs6000_va_arg): On AIX, padding for small arguments
11660         goes after the argument.
11661
11662         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
11663
11664         * rs6000.md: Document 'unspec' values used.
11665         (epilogue): New expander.
11666         (movesi_to_cr_one): New expander.
11667         (movesi_to_cr and following): New pattern.
11668         (lmw): New pattern.
11669         (return_internal_si): New pattern.
11670         (return_internal_di): New pattern.
11671         (return_and_restore_fpregs_si): New pattern.
11672         (return_and_restore_fpregs_di): New pattern.
11673         * rs6000.h: Declare new functions.
11674         * rs6000.c (rs6000_stack_info): Use current_function_is_leaf
11675         rather than rs6000_calls_p.
11676         (rs6000_makes_calls): Delete.
11677         (lmw_operation): New function.
11678         (mtcrf_operation): New function.
11679         (rs6000_emit_epilogue): New function.
11680         (output_epilog): Call rs6000_emit_epilogue and final if
11681         !TARGET_SCHED_PROLOG, instead of writing text unconditionally.
11682
11683         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
11684
11685         * aix43.h (SUBSUBTARGET_SWITCHES): Document switches.
11686         * aix41.h (SUBSUBTARGET_SWITCHES): Document switches.
11687         * aix.h (SUBTARGET_SWITCHES): Document switches.
11688         * rs6000.h: (TARGET_SWITCHES): Don't print options twice.  Make
11689         sched-prolog and sched-epilog the same.  Document all the
11690         switches.
11691         (TARGET_OPTIONS): No longer allow -mdebug-.
11692
11693         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
11694
11695         * rs6000.h (ASM_FILE_END): Move to aix.h.
11696         (EXTRA_SECTIONS): Move to aix.h.
11697         (READONLY_DATA_SECTION): Move to aix.h.
11698         (EXTRA_SECTION_FUNCTIONS): Move to aix.h.
11699         (SELECT_SECTION): Move to aix.h.
11700         (JUMP_TABLES_IN_TEXT_SECTION): Move to aix.h.
11701         (INT_REGNO_P): Use symbolic name for ARG_POINTER_REGNUM.
11702         (LINK_REGISTER_REGNUM): New definition.
11703         (RETURN_ADDR_RTX): Use symbolic name for LINK_REGISTER_REGNUM.
11704         (SLOW_UNALIGNED_ACCESS): Define in a way suitable for both
11705         AIX and SVR4.
11706         * sysv4.h: Delete the code between the inclusion of rs6000.h
11707         and svr4.h.
11708         (DWARF_DEBUGGING_INFO): Don't define, it's defined in elfos.h.
11709         (FP_ARG_MAX_REG): Move generic definition to rs6000.h.
11710         (RS6000_REG_SAVE): Move generic definition to rs6000.h.
11711         (RS6000_SAVE_AREA): Move generic definition to rs6000.h.
11712         * rs6000.md (floatsidf2_loadaddr): The first arg here is Pmode.
11713         (fix_truncdfsi2_internal): Rename to fix_truncdfsi2_internal_si.
11714         (fix_truncdfsi2_internal_di): New pattern.
11715         (fix_truncdfsi2_store): The second arg here is Pmode too.
11716         (fix_truncdfsi2_load): The second arg here is Pmode too.
11717         (tablejumpdi): Now that switch tables hold only SImode values,
11718         gcc needs to know how to add them to the pc which is DImode.
11719         * rs6000.c (rs6000_stack_info): Use symbolic name for
11720         LINK_REGISTER_REGNUM.
11721         (output_mi_thunk) [!TARGET_ELF]: Don't define sp, it's not used.
11722         (output_toc): Delete unused variables s1 and s2.
11723         (output_ascii): Use fputs not fprintf on a variable string.
11724
11725         2000-01-07  David Edelsohn  <edelsohn@gnu.org>
11726
11727         * rs6000.c (processor_target_table): Add power3 as alias for 630.
11728         * aix43.h: Revert Aug 2 change.
11729         (HAS_INIT_SECTION): Define, not visible yet.
11730         (LD_INIT_SWITCH): Define, not visible yet.
11731         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
11732
11733         2000-01-04  Joel Sherrill (joel@OARcorp.com>
11734
11735         * config/rs6000/rtems.h: Include config/rtems.h.
11736
11737         2000-01-04  David Edelsohn  <edelsohn@gnu.org>
11738
11739         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
11740         (SLOW_UNALIGNED_ACCESS): Define.
11741         (CASE_VECTOR_MODE): Always use 32-bit offsets.
11742         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
11743         (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
11744         (toc_section): Likewise and .toc pseudo-op.
11745         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
11746         64-bit mode.
11747         (TEXT_SECTION_ASM_OP): Likewise.
11748         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
11749         32-bit offsets.
11750
11751         1999-12-17  Jakub Jelinek  <jakub@redhat.com>
11752
11753         * config/rs6000/rs6000.h (TARGET_POWERPC64): Make sure
11754         UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
11755         compiling libgcc2.
11756
11757         2000-01-06  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
11758
11759         * rs6000.h: Move more stuff from here...
11760         * aix.h: to here.
11761         * sysv4.h: Cleanup accordingly.
11762         * netware.h: Likewise
11763
11764         2000-01-05  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
11765
11766         * rs6000.h: Continue cleanup.
11767         * aix.h: Likewise.
11768         * lynx.h: Likewise.
11769         * netware.h: Likewise.
11770         * sol2.h: Likewise.
11771         * sysv4.h: Likewise.
11772         * win-nt.h: Likewise.
11773
11774         * rs6000.h (TARGET_SWITCHES): Add descriptions.
11775         (TARGET_OPTIONS): Likewise.
11776
11777         * sysv4.h (SUBTARGET_SWITCHES): Add descriptions.
11778         (SUBTARGET_OPTIONS): Likewise.
11779
11780         * rs6000.md: Fix compile time warnings.
11781
11782         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
11783
11784         vxworks patches from the Cygnus tree originally by
11785         Michael Meissner <meissner@cygnus.com> and Vladimir Makarov
11786         <vmakarov@cygnus.com>.
11787         * sysv4.h (SUBTARGET_SWITCHES): Add vxworks.
11788         (ENDFILE_SPEC): Likewise.
11789         (LIB_VXWORKS_SPEC): New macro.
11790         (STARTFILE_VXWORKS_SPEC): New macro.
11791         (ENDFILE_VXWORKS_SPEC): New macro.
11792         (LINK_START_VXWORKS_SPEC): New macro.
11793         (LINK_OS_VXWORKS_SPEC): New macro.
11794         (CPP_OS_VXWORKS_SPEC): New macro.
11795         (SUBTARGET_EXTRA_SPECS): Add all the vxworks specs.
11796         * vxppc.h: Rewrite to use proper configuration method.
11797         * vxppcle.h: New file.
11798         * ../../configure.in: Add powerpcle-wrs-vxworks*.
11799         * ../../configure: Rebuilt.
11800
11801         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
11802
11803         Lots of changes to rs6000.h, sysv4.h, aix.h,
11804         aix31.h, aix3newas.h, aix41.h, aix43.h, beos.h,
11805         with the aim that rs6000.h is the first header
11806         included and the others override it.
11807         * aix.h: New file.
11808
11809         * x-aix41-gld: Remove.
11810         * x-aix43: Remove.
11811         * x-aix41: Remove target-specific switches, and don't specify
11812         -Wl,-bbigtoc as we don't need it any more.
11813         * ../../configure.in: Use x-aix41 for ppc AIX 4.1 and above.
11814         Use t-aix43 for AIX 4.3 and above.
11815         * ../../configure: Regenerated.
11816
11817         * rs6000.h (TARGET_SWITCHES): Add some initial prolog-scheduling
11818         options, that don't do anything yet.
11819         (MASK_SCHED_PROLOG): New macro.
11820         (MASK_SCHED_EPILOG): New macro.
11821         (TARGET_SCHED_PROLOG): New macro.
11822         (TARGET_SCHED_EPILOG): New macro.
11823
11824         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
11825
11826         * rs6000.c: Correct comment, the `minimal' TOCs are actually
11827         one per translation unit, not one per function.
11828         (output_toc): Also do duplicate constant elimination
11829         for per-translation-unit TOCs.
11830
11831         * rs6000.md (nonlocal_goto_receiver): Put it back as before.  Add
11832         a comment explaining _exactly_ when this pattern gets used.
11833         (builtin_setjmp_receiver): New pattern for better clarity.
11834         (init_v4_pic): Move it into a section dealing with TOC registers.
11835
11836         1999-12-30  Geoff Keating  <geoffk@cygnus.com>
11837
11838         * rs6000.c (toc_hash_table): New variable.
11839         (rs6000_hash_constant): New function.
11840         (toc_hash_function): New function.
11841         (toc_hash_eq): New function.
11842         (toc_hash_mark_entry): New function.
11843         (toc_hash_mark_table): New function.
11844         (output_toc): Don't output duplicate TOC entries in
11845         a single file.
11846         (rs6000_add_gc_roots): Add the hash table as a GC root.
11847         * t-aix43: Move AR_FOR_TARGET and CLIB here from x-aix43,
11848         where they clearly shouldn't be.  This may need to be fixed
11849         later when there is a GNU ar for AIX.
11850         * x-aix43: Don't define CLIB or AR_FOR_TARGET.
11851         Don't define BOOT_LDFLAGS as it is now not necessary.
11852
11853         1999-12-29  Geoff Keating  <geoffk@cygnus.com>
11854
11855         * rs6000.c (rs6000_build_va_list): Use 'char *' rather than 'void *'
11856         for va_list on AIX.  Use unsigned_char_type_node rather than
11857         constructing our own version on svr4.
11858
11859         1999-12-17  Geoff Keating  <geoffk@cygnus.com>
11860
11861         * tramp.asm (__trampoline_size): Delete CYGNUS LOCAL comment,
11862         since patently it's not.
11863
11864         1999-12-08  Geoff Keating  <geoffk@cygnus.com>
11865
11866         * config/rs6000/rs6000.md (nonlocal_goto_receiver): Turn into
11867         define_expand/define_insn pair, and handle restore of the
11868         SVR4 -fpic register.
11869
11870 Wed Mar 15 15:43:38 2000  Jeffrey A Law  (law@cygnus.com)
11871
11872         * acconfig.h (HAVE_GAS_WEAK): New define.
11873         * configure.in (assembler weak support): Check for .weak support.
11874         * config.in, configure: Rebuilt.
11875         * pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Only define if
11876         HAVE_GAS_WEAK is defined.
11877
11878 2000-03-15  Nick Clifton  <nickc@cygnus.com>
11879
11880         * config/arm/arm.c (arm_output_epilogue): Do not pass %c to
11881         asm_fprintf().
11882
11883 2000-03-15  Zack Weinberg  <zack@wolery.cumb.org>
11884
11885         * cppfiles.c (open_include_file): New function.
11886         (find_include_file, cpp_read_file): Use it.
11887
11888 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
11889
11890         * cpphash.c (dump_hash_helper): Take the slot, not the element.
11891
11892 Wed Mar 15 14:28:54 2000  Jason Eckhardt  <jle@cygnus.com>
11893
11894         * flow.c (verify_flow_info): Check for unconditional return.
11895
11896 Wed Mar 15 11:34:27 2000  Jim Wilson  <wilson@cygnus.com>
11897
11898         * config/ia64/ia64.md (restore_stack_nonlocal): New.
11899         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Delete padding nop.
11900         (__ia64_restore_stack_nonlocal): New.
11901         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __restore_stack_nonlocal.
11902
11903 2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11904
11905         * cpphash.c (collect_formal_parameters): Do not complain about
11906         parameter names that just start with `__VA_ARGS__'.
11907
11908 Wed Mar 15 13:26:58 MET 2000  Jan Hubicka  <jh@suse.cz>
11909
11910         * i386.md (movhi_1): Promote movw imm, reg to movl imm, reg and
11911         movw reg, reg to movzwl reg, reg on PARTIAL_REGISTER_STALL machines.
11912         * i386.c (pentiumpro_cost): Set mul cost to 4.
11913         (x86_use_movx): Set for PPro.
11914
11915 Wed Mar 15 13:07:05 MET 2000  Jan Hubicka  <jh@suse.cz>
11916
11917         * i386.md (ix86_compute_frame_size): stack_alignment_needed is
11918         STACK_BOUNDARY for empty frames now.
11919
11920 2000-03-14  Mark Mitchell  <mark@codesourcery.com>
11921
11922         * stor-layout.c (layout_union): Remove.
11923         (layout_union_field): New function, split out from layout_union.
11924         (finish_union_layout): Likewise.
11925         (layout_field): Handle unions by calling layout_union_field.
11926         (finish_record_layout): Handle unions.
11927         (layout_type): Combine RECORD_TYPE, UNION_TYPE, and
11928         QUAL_UNION_TYPE handling.
11929
11930 Wed Feb 23 13:00:06 CET 2000  Jan Hubicka  <jh@suse.cz>
11931
11932         * flow.c (fixup_reorder_chain): Avoid double labels in the basic block;
11933         end of basic block is jump_insn, not barrier; use create_basic_block
11934         instead of creating basic block by hand.
11935
11936 2000-03-14  Jason Eckhardt  <jle@cygnus.com>
11937
11938         * flow.c (reorder_basic_blocks): Account for barriers when writing
11939         over NEXT_INSN (last_bb->end).
11940         (verify_flow_info): Add check for missing barriers.
11941
11942 2000-03-14  Greg McGary  <gkm@gnu.org>
11943
11944         * c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED.
11945         * c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED.
11946         * c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__,
11947         __ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__,
11948         __unbounded, __unbounded__): New keywords.
11949         * c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens.
11950         * c-parse.y, c-parse.c, c-parse.h: Regenerate.
11951         * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
11952
11953 2000-03-14  Bernd Schmidt  <bernds@cygnus.co.uk>
11954
11955         * cselib.h: New file.
11956         * alias.c: Include "cselib.h".
11957         (fixed_scalar_and_varying_struct_p): Accept the addresses of the
11958         MEMs as two new arguments.
11959         (get_addr): New static function.
11960         (find_base_term): Handle VALUEs.
11961         (memrefs_conflict_p): Likewise.
11962         (true_dependence): Call get_addr on the addresses.
11963         Call fixed_scalar_and_varying_struct_p with addresses that have been
11964         passed through get_addr and canon_rtx.
11965         (write_dependence_p): Move DIFFERENT_ALIAS_SETS_P test for consistency
11966         with true_dependence.
11967         Call get_addr on the addresses; don't call canon_rtx on the MEMs.
11968         * loop.c: Include "cselib.h".
11969         (load_mems): Process extended basic block that enters the loop with
11970         cselib.  Use that information to change initialization of the shadow
11971         register so that a constant equivalence is seen by later passes.
11972         * reload1.c: Include "cselib.h".
11973         (reload_cse_invalidate_regno): Delete function.
11974         (reload_cse_mem_conflict_p): Likewise.
11975         (reload_cse_invalidate_mem): Likewise.
11976         (reload_cse_invalidate_rtx): Likewise.
11977         (reload_cse_regno_equal_p): Likewise.
11978         (reload_cse_check_clobber): Likewise.
11979         (reload_cse_record_set): Likewise.
11980         (reg_values): Delete static variable.
11981         (invalidate_regno_rtx): Likewise.
11982         (reload_cse_delete_noop_set): New static function.
11983         (reload_cse_simplify): New static function, broken out of
11984         reload_cse_regs_1.
11985         (reload_cse_noop_set_p): Delete unused argument INSN.
11986         Just call rtx_equal_for_cselib_p on set source and destination.
11987         (reload_cse_regs_1): Break out some code into reload_cse_simplify and
11988         reload_cse_delete_noop_set.  Delete code to keep track of values; use
11989         cselib functions instead.  Delete code to push/pop obstacks.
11990         (reload_cse_simplify_set): Use cselib to find equivalent values.
11991         Delete code to push/pop obstacks.
11992         (reload_cse_simplify_operands): Likewise.
11993         * rtl.def (VALUE): New rtx code.
11994         * rtl.h (union rtunion_def): New elt rt_cselib.
11995         (X0CSELIB, CSELIB_VAL_PTR): New macros.
11996         * simplify_rtx.c: Include "ggc.h", "obstack.h", "cselib.h".
11997         (new_elt_list, new_elt_loc_list, unchain_one_value, clear_table,
11998         unchain_one_elt_list, unchain_one_elt_loc_list, check_useless_values,
11999         discard_useless_locs, discard_useless_values, entry_and_rtx_equal_p,
12000         hash_rtx, new_cselib_val, add_mem_for_addr, get_value_hash,
12001         cselib_lookup_mem, cselib_subst_to_values, cselib_invalidate_regno,
12002         cselib_mem_conflict_p, cselib_invalidate_mem, cselib_invalidate_rtx,
12003         cselib_record_set, cselib_record_sets): New static functions.
12004         (cselib_lookup, cselib_update_varray_sizes, cselib_init,
12005         cselib_finish, cselib_process_insn, rtx_equal_for_cselib_p,
12006         references_value_p): New functions.
12007         (MAX_USELESS_VALUES, REG_VALUES): New macros.
12008         (table, cselib_current_insn, next_unknown_value, cselib_nregs,
12009         n_useless_values, reg_values, callmem, cselib_obstack,
12010         cselib_startobj, empty_vals, empty_elt_lists, empty_elt_loc_lists):
12011         New static variables.
12012         * varray.h (union varray_data_tag): New elt te.
12013         (VARRAY_ELT_LIST_INIT, VARRAY_ELT_LIST): New macros.
12014         * Makefile.in (reload1.o, loop.o, simplify-rtx.o, alias.o): Update
12015         dependencies.
12016
12017 2000-03-14  Nick Clifton  <nickc@cygnus.com>
12018
12019         * gcc.c (do_spec_1): Catch the case where %* is used in a
12020         substitution pattern, but it has not been initialised.
12021         Issue a meaningful error message if an unrecognised operator
12022         is encountered in a spec string.
12023
12024 2000-03-14  Richard Earnshaw <rearnsha@arm.com>
12025
12026         * function.c (prepare_function_start): Correctly initialize
12027         cfun->stack_alignment_needed.
12028
12029 2000-03-14  Zack Weinberg  <zack@wolery.cumb.org>
12030
12031         * cppfiles.c (find_include_file): Don't assume nshort is a
12032         substring of name.
12033
12034 Tue Mar 14 08:42:21 2000  Jeffrey A Law  (law@cygnus.com)
12035
12036         * configure.in (hppa configurations): Add pa32-regs.h to the
12037         list of tm files as appropriate.
12038         * configure: Rebuilt.
12039         * pa.c (compute_frame_size): Remove explicit knowledge about FP
12040         register numbering.
12041         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
12042         (fmpyaddoperands, fmpysuboperands): Likewise.
12043         * pa.h: Remove various definitions which depend on knowing
12044         how registers are numbered.
12045         * pa32-regs.h: New file with PA32 register numbering specific
12046         definitions.
12047
12048 2000-03-14  Richard Henderson  <rth@cygnus.com>
12049
12050         * regmove.c (combine_stack_adjustments): New.
12051         (stack_memref_p, single_set_for_csa): New.
12052         (free_csa_memlist, record_one_stack_memref): New.
12053         (try_apply_stack_adjustment): New.
12054         (combine_stack_adjustments_for_block): New.
12055         * rtl.h (combine_stack_adjustments): Declare.
12056         * toplev.c (rest_of_compilation): Call it.
12057
12058         * i386.md: Revert 2000-01-16 change.
12059
12060 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
12061
12062         * gccbug.in: Add web category, gcc specific classes.
12063
12064 2000-03-14  Nathan Sidwell  <nathan@codesourcery.com>
12065
12066         * stor-layout.c (finalize_record_size): Fix typo.
12067
12068 2000-03-14  Stan Shebs  <shebs@apple.com>
12069
12070         * c-typeck.c (c_alignof): Error on incomplete types.
12071         * extend.texi (Alignment): Document this.
12072
12073 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
12074
12075         * cppfiles.c: Include mkdeps.h.
12076         (find_include_file, read_include_file): Remove _cpp_ prefix
12077         from name, make static.
12078         (_cpp_execute_include): New function, broken out of
12079         do_include.
12080
12081         * cpplib.c: Don't include mkdeps.h.
12082         (struct directive): Remove type field. Reorder entries.  The
12083         function takes only one argument.
12084         (struct if_stack): Make type field an int.
12085         (directive_table): Rename to dtable.  Generate it, the
12086         prototypes of the directive handlers, and the enum for the
12087         directive numbers, from a template macro.
12088         (do_ifndef, do_include_next, do_import): New functions.
12089         (do_define, do_include, do_endif, do_ifdef, do_if, do_else,
12090         do_undef, do_line, do_elif, do_error, do_pragma, do_warning,
12091         do_ident, do_assert, do_unassert, do_sccs): Take only one
12092         argument.
12093         (do_sccs): Define always, but alter behavior based on
12094         SCCS_DIRECTIVE.
12095         (_cpp_handle_directive, consider_directive_while_skipping):
12096         Restructure for new directive table layout.
12097
12098         (pass_thru_directive): Take a directive number, not a pointer
12099         to a struct directive.
12100         (parse_include): New function, broken out of do_include.
12101         (do_include, do_import, do_include_next): Use parse_include
12102         and _cpp_execute_include.
12103         (do_elif, do_else): Test for T_ELSE specifically when checking
12104         for #elif/#else after #else.
12105         (parse_ifdef): New function, broken out of do_ifdef.
12106         (validate_else): Expect a name arg without a leading #.
12107         (if_directive_name): Delete.
12108         (cpp_define, cpp_assert, cpp_undef, cpp_unassert): Call
12109         directive handlers with only one argument.
12110
12111         * cpphash.h: Update prototypes.
12112         (enum node_type): Remove entries for directives.
12113         * Makefile.in: Update dependencies.
12114
12115         * cpphash.c (dump_hash_helper): Only dump nodes of type
12116         T_MACRO.  Emit a newline after each definition.
12117
12118 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
12119
12120         * gccbug.in: New file.
12121         * configure.in (all_outputs): Add gccbug.
12122         * Makefile.in (install-common): Install gccbug.
12123         (GCCBUG_INSTALL_NAME): New variable.
12124         * configure: Rebuilt.
12125
12126 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
12127
12128         * function.c (put_var_into_stack): Use type_for_mode to calculate
12129         part_type.  Use MEM_SET_IN_STRUCT_P.
12130         * expr.c (store_field): Handle CONCAT.
12131         (store_constructor): Use fields_length.
12132         * tree.c (fields_length): New fn.
12133         * tree.h: Declare it.
12134
12135 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
12136
12137         * Makefile.in (LIBCPP_OBJS): Add cpplex.o.
12138         (cpplex.o): New target.
12139         * po/POTFILES.in: Add cpplex.c.
12140
12141         * cpplex.c (_cpp_grow_token_buffer, null_cleanup,
12142         cpp_push_buffer, cpp_pop_buffer, cpp_scan_buffer,
12143         cpp_expand_to_buffer, cpp_buf_line_and_col, cpp_file_buffer,
12144         skip_block_comment, skip_line_comment, skip_comment,
12145         copy_comment, _cpp_skip_hspace, _cpp_skip_rest_of_line,
12146         _cpp_parse_name, skip_string, parse_string,
12147         _cpp_parse_assertion, cpp_get_token, cpp_get_non_space_token,
12148         _cpp_get_directive_token, find_position,
12149         _cpp_read_and_prescan, _cpp_init_input_buffer): Move here.
12150         (maybe_macroexpand, _cpp_lex_token): New functions.
12151
12152         * cpplib.c (SKIP_WHITE_SPACE, eval_if_expr, parse_set_mark,
12153         parse_goto_mark): Delete.
12154         (_cpp_handle_eof): New function.
12155         (_cpp_handle_directive): Rename from handle_directive.
12156         (_cpp_output_line_command): Rename from output_line_command.
12157         (do_if, do_elif): Call _cpp_parse_expr directly.
12158         * cppfiles.c (_cpp_read_include_file): Don't call
12159         init_input_buffer here.
12160         * cpphash.c (quote_string): Move here, rename _cpp_quote_string.
12161         * cppexp.c (_cpp_parse_expr): Diddle parsing_if_directive
12162         here; pop the token_buffer and skip the rest of the line here.
12163         * cppinit.c (cpp_start_read): Call _cpp_init_input_buffer
12164         here.
12165
12166         * cpphash.h (CPP_RESERVE, CPP_IS_MACRO_BUFFER, ACTIVE_MARK_P):
12167         Define here.
12168         (CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, CPP_SET_MARK,
12169         CPP_GOTO_MARK): New macros.
12170         (_cpp_quote_string, _cpp_parse_name, _cpp_skip_rest_of_line,
12171         _cpp_skip_hspace, _cpp_parse_assertion, _cpp_lex_token,
12172         _cpp_read_and_prescan, _cpp_init_input_buffer,
12173         _cpp_grow_token_buffer, _cpp_get_directive_token,
12174         _cpp_handle_directive, _cpp_handle_eof,
12175         _cpp_output_line_command): Prototype them here.
12176         * cpplib.h (enum cpp_token): Add CPP_MACRO.
12177         (CPP_RESERVE, get_directive_token, cpp_grow_buffer,
12178         quote_string, output_line_command): Remove.
12179
12180 2000-03-13  Bernd Schmidt  <bernds@cygnus.co.uk>
12181
12182         * stmt.c (expand_end_case): RANGE may be signed, and when checking
12183         whether it is too large we must also verify that it isn't negative.
12184
12185 2000-03-13  Jakub Jelinek  <jakub@redhat.com>
12186
12187         * config/sparc/sparc.md: Remove all traces of TARGET_LIVE_G0.
12188         (movsi_zero_liveg0): Remove.
12189         (movsf_insn_novis_liveg0): Remove.
12190         (negsi2): Remove.
12191         (negsi2_not_liveg0): Rename to negsi2.
12192         (one_cmplsi2): Remove.
12193         (one_cmplsi2_not_liveg0): Rename to one_cmplsi2.
12194         (one_cmplsi2_liveg0): Remove.
12195         * config/sparc/sparc.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE,
12196         MASK_LIVE_G0, MASK_BROKEN_SAVERESTORE): Remove.
12197         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_LIVE_G0 if.
12198         (PREDICATE_CODES): Remove zero_operand.
12199         * config/sparc/sparc.c: Remove all traces of TARGET_LIVE_G0 and
12200         TARGET_BROKEN_SAVERESTORE.
12201         (zero_operand): Remove.
12202         * config/sparc/splet.h (SUBTARGET_SWITCHES): Remove -mlive-g0,
12203         -mno-live-g0, -mbroken-saverestore and -mno-broken-saverestore
12204         options.
12205         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
12206         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
12207         TARGET_BROKEN_SAVERESTORE): Remove.
12208         * config/sparc/linux.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
12209         Remove.
12210         * config/sparc/linux64.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
12211         Remove.
12212         * config/sparc/sol2.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
12213         Remove.
12214
12215         * config/sparc/sparc.md (return_df_no_fpu): New pattern.
12216
12217 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
12218
12219         * cpplib.c (do_pragma_implementation): Fix off-by-one error
12220         truncating a string.  Don't assume tokens are nul terminated.
12221         Problem noted by Andreas Jaeger <aj@suse.de>
12222
12223 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
12224
12225         * dwarf2out.c (add_name_and_src_coords_attributes): Only add
12226         DW_AT_MIPS_linkage_name for TREE_PUBLIC decls.
12227         (ASM_OUTPUT_DWARF_ADDR_CONST): Don't output trailing newline.
12228
12229 2000-03-13  Richard Earnshaw <rearnsha@arm.com>
12230
12231         * stor-layout.c (new_record_layout_info): Fix typo inside ifdef
12232         STRUCTURE_SIZE_BOUNDARY.
12233
12234 2000-03-13  Mark Mitchell  <mark@codesourcery.com>
12235
12236         * tree.h (record_layout_info_s): New structure.
12237         (record_layout_info): New type.
12238         (new_record_layout_info): New function.
12239         (layout_field): Likewise.
12240         (finish_record_layout): Likewise.
12241         * stor-layout.c (layout_record): Remove.
12242         (new_record_layout_info): New function.
12243         (layout_field): New function, broken out from layout_record.
12244         (finalize_record_size): Likewise.
12245         (compute_record_mode): Likewise.
12246         (finalize_type_size): New function, broken out from layout_type.
12247         (finish_record_layout): Likewise.
12248         (layout_type): Use them.
12249
12250 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
12251
12252         * cpphash.c: Don't include version.h.
12253         (special_symbol) [case T_VERSION]: Look for the string in
12254         hp->value.cpval; don't use version_string.
12255         * cppinit.c (initialize_builtins): Set hp->value.cpval for
12256         __VERSION__ to version_string.
12257         * Makefile.in (cpphash.o): Update deps.
12258
12259 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
12260
12261         Convert cpplib to use libiberty/hashtab.c.
12262
12263         * cpplib.h (struct cpp_reader): Make hashtab and
12264         all_include_files of type 'struct htab *'.  Delete HASHSIZE
12265         and ALL_INCLUDE_HASHSIZE macros.
12266
12267         * cpphash.h: Update prototypes.
12268         (struct hashnode): Remove next, prev, and bucket_hdr members.
12269         Make length a size_t.  Add hash member.
12270         (struct ihash): Remove next member.  Add hash member.  Make
12271         name a flexible array member.
12272
12273         * cppfiles.c: Include hashtab.h.
12274         (include_hash): Delete.
12275         (IHASHSIZE): New macro.
12276         (hash_IHASH, eq_IHASH, _cpp_init_include_hash): New functions.
12277         (cpp_included): Do the hash lookup here.
12278         (_cpp_find_include_file): Rewrite.
12279         (cpp_read_file): Put the "fake" hash entry into the hash
12280         table.  Honor the control_macro, if it turns out we've seen
12281         the file before.  Don't push the buffer here.
12282         (_cpp_read_include_file): Push the buffer here.
12283         (OMODES): New macro.  Use it whenever we call open(2).
12284
12285         * cpphash.c: Include hashtab.h.
12286         (hash_HASHNODE, eq_HASHNODE, del_HASHNODE, dump_hash_helper,
12287         _cpp_init_macro_hash, _cpp_dump_macro_hash, _cpp_make_hashnode,
12288         _cpp_lookup_slot): New functions.
12289         (HASHSIZE): new macro.
12290         (hashf, _cpp_install, _cpp_delete_macro): Delete.
12291         (_cpp_lookup): Use hashtab.h routines.
12292
12293         * cppinit.c: Include hashtab.h.
12294         (cpp_reader_init): Call _cpp_init_macro_hash and
12295         _cpp_init_include_hash.  Don't allocate hashtab directly.
12296         (cpp_cleanup): Just call htab_delete on pfile->hashtab and
12297         pfile->all_include_files.
12298         (initialize_builtins): Use _cpp_make_hashnode and
12299         htab_find_slot to add hash entries.
12300         (cpp_finish): Just call _cpp_dump_macro_hash.
12301         * cpplib.c: Include hashtab.h.
12302         (do_define): Use _cpp_lookup_slot and _cpp_make_hashnode to
12303         create hash entries.
12304         (do_pragma_poison, do_assert): Likewise.
12305         (do_include): Don't push the buffer here.  Don't increment
12306         system_include_depth unless _cpp_read_include_file succeeds.
12307         (do_undef, do_unassert): Use _cpp_lookup_slot and htab_clear_slot
12308         or htab_remove_elt.
12309         (do_pragma_implementation): Use alloca to create copy.
12310
12311         * Makefile.in: Update dependencies.
12312
12313 2000-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12314
12315         * cppinit.c (cl_directive_handler): More K&R fixing.
12316
12317 Sat Mar 11 23:54:26 2000  Jim Wilson  <wilson@cygnus.com>
12318
12319         * config/ia64/ia64.c (ia64_compute_frame_size): Align size to
12320         STACK_BOUNDARY.
12321         * config/ia64/ia64.h (REGISTER_MOVE_COST): Add missing parentheses.
12322
12323 2000-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12324
12325         * cppinit.c (no_arg, no_ass, no_dir, no_fil, no_mac, no_pth):
12326         Change from char[] to macros.
12327
12328 2000-03-12  Neil Booth  <NeilB@earthling.net>
12329
12330         * cppinit.c (cpp_start_read): Update indirect function
12331         call to K&R C.
12332
12333 Sat Mar 11 16:18:12 2000  Jim Wilson  <wilson@cygnus.com>
12334
12335         * config/ia64/ia64.h (ADDITIONAL_REGISTER_NAMES): Fix typo in loc79
12336         entry.
12337
12338         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
12339         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyright messages.
12340
12341 2000-03-11  Neil Booth  <NeilB@earthling.net>
12342
12343         * cppinit.c (struct pending option): Replace undef with a
12344         pointer to a directive handling routine.
12345         (struct cpp_pending): Replace separate assert_ and define_
12346         lists with one directive_ list.
12347         (new_pending_define): Rename new_pending_directive. Extra
12348         argument is the directive's handling routine.
12349         (handle_option): Update to use new_pending_directive.
12350
12351 2000-03-11  Neil Booth  <NeilB@earthling.net>
12352
12353         * cppfiles.c (file_cleanup, _cpp_find_include_file,
12354         remap_filename, _cpp_read_include_file, actual_directory,
12355         hack_vms_include_specification): Replace bcopy(), index() etc
12356         calls.  Add casts to some allocations.  Make some variables
12357         pointers to const [unsigned] char.
12358         * cpphash.c (_cpp_install, macro_cleanup, collect_expansion,
12359         collect_formal_parameters): Similarly.
12360         * cppinit.c (struct pending_option, append_include_chain,
12361         cpp_options_init, cpp_reader_init, initialize_standard_includes,
12362         cpp_start_read, new_pending_define, handle_option): Similarly.
12363         * cpplib.c (cpp_define, copy_comment, do_define, do_include,
12364         do_undef, do_error, do_warning, do_pragma, do_pragma_once,
12365         do_pragma_implementation, detect_if_not_defined,
12366         do_ifdef, skip_if_group, cpp_get_token, parse_string,
12367         do_assert, do_unassert): Similarly.
12368         * cpplib.h (cpp_buffer, cpp_options): Update types.  Update
12369         function prototypes.
12370         * mkdeps.c (deps_add_target, deps_add_dep): cast allocations.
12371
12372 2000-03-10  Richard Henderson  <rth@cygnus.com>
12373
12374         * builtins.c (expand_builtin_strlen): Revert last change.
12375         Use emit_insn_before if we're at the beginning of a sequence.
12376
12377 2000-03-10  Jason Merrill  <jason@casey.cygnus.com>
12378
12379         * builtins.c (expand_builtin_strlen): Make sure that we have something
12380         at the beginning of the sequence.
12381
12382         * toplev.c (rest_of_compilation): Also set TREE_NOTHROW for
12383         deferred inlines.
12384
12385         * invoke.texi (C++ Dialect Options): Document -fno-enforce-eh-specs.
12386
12387 2000-03-10  Richard Henderson  <rth@cygnus.com>
12388
12389         * except.c (can_throw): Use INTVAL on a CONST_INT.
12390         (reachable_handlers): Likewise.
12391         * flow.c (count_basic_blocks, find_basic_blocks_1): Likewise.
12392
12393 2000-03-10  Andreas Jaeger  <aj@suse.de>
12394
12395         * config/mips/linux.h: Undefine MD_EXEC_PREFIX and
12396         MD_STARTFILE_PREFIX since those are not needed on linux.
12397         (ASM_FILE_START): New, from mips/gnu.h.
12398
12399 2000-03-09  Richard Henderson  <rth@cygnus.com>
12400             Alex Samuel  <samuel@codesourcery.com> and others
12401
12402         * Makefile.in (ssa.o): New rule.
12403         (OBJS): Add ssa.o.
12404         (STAGESTUFF): Add *.ssa and *.ussa.
12405         (mostlyclean): Delete *.ssa, *.ussa, */*.ssa, */*.ussa.
12406         * rtl.def (PHI): New RTL expression.
12407         * rtl.h (clear_log_links): New declaration.
12408         (convert_to_ssa): Likewise.
12409         (convert_from_ssa): Likewise.
12410         * flow.c (split_edge): If the entry node falls through to the
12411         split edge's source block, split the entry edge.
12412         (clear_log_links): New function.
12413         * toplev.c (ssa_dump): New variable.
12414         (flag_ssa): Likewise.
12415         (f_options): Add "ssa".
12416         (compile_file): Create SSA dump files.
12417         (rest_of_compilation): Go to and from SSA if enabled.
12418         (decide_d_option): Handle -de for SSA dump files.
12419         * ssa.c: New file.
12420
12421 Thu Mar  9 20:01:38 2000  Jim Wilson  <wilson@cygnus.com>
12422
12423         * expr.c (expand_assignment): For a CALL_EXPR, special case PARM_DECL
12424         same as VAR_DECL.
12425
12426 2000-03-09  Benjamin Kosnik  <bkoz@cygnus.com>
12427
12428         * config/alpha/linux.h (WCHAR_TYPE): Make consistent.
12429
12430 Thu Mar  9 18:10:02 2000  Jeffrey A Law  (law@cygnus.com)
12431
12432         * config/pa/pa-hpux10.h (LIB_SPEC): Correct typo in !p case.
12433         (MD_STARTFILE_PREFIX_1): New macro.
12434
12435 2000-03-09  Robert Lipe  <robertl@sco.com>
12436
12437         * config/ia64/ia64.c: Include system.h.
12438
12439 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
12440
12441         * except.c (nothrow_function_p): If -fno-exceptions, just return.
12442         (init_eh_nesting_info): Likewise.
12443
12444         * tree.h (struct tree_common): Rename raises_flag to nothrow_flag.
12445         (TREE_NOTHROW): Rename from TREE_RAISES.
12446         * toplev.c (rest_of_compilation): Set it.
12447         * print-tree.c (print_node): Adjust.
12448         * tree.c (stabilize_reference, build, build1): Don't set TREE_RAISES.
12449         (stabilize_reference_1, get_unwidened, get_narrower): Likewise.
12450         * calls.c (emit_call_1): Add 'nothrow' parm.  Add
12451         REG_EH_REGION note as appropriate.
12452         (libfunc_nothrow): New fn.
12453         (emit_library_call, emit_library_call_value): Use it.
12454         (expand_call): Check TREE_NOTHROW.
12455
12456         * varasm.c (make_decl_rtl): Skip initial '*' when setting
12457         DECL_ASSEMBLER_NAME.
12458
12459 2000-03-09  Andreas Jaeger  <aj@suse.de>
12460
12461         * mips/linux.h (NO_IMPLICIT_EXTERN_C): Define.
12462         (TARGET_MEM_FUNCTIONS): Define.
12463
12464 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
12465
12466         * i386.c (ix86_valid_type_attribute_p): Use compare_tree_int.
12467
12468         * except.c (can_throw): See through a SEQUENCE.
12469         (nothrow_function_p): New fn.
12470         * except.h: Declare it.
12471         * function.c (current_function_nothrow): New var.
12472         (prepare_function_start): Initialize it.
12473         * output.h: Declare it.
12474         * toplev.c (rest_of_compilation): Set it.
12475         * dwarf2out.c (dwarf2out_begin_prologue): Use it.
12476
12477 2000-03-09  Zack Weinberg  <zack@wolery.cumb.org>
12478
12479         * cpphash.c (collect_formal_parameters): strncmp returns 0 for
12480         match.  (cpp_compare_defs): Count the nul separator when
12481         advancing over argument names.
12482
12483 2000-03-09  Bernd Schmidt  <bernds@cygnus.co.uk>
12484
12485         * recog.c (preprocess_constraints): Matching constraints affect
12486         same alternative/different operand, not same operand/different
12487         alternative.
12488
12489         * reload1.c (eliminate_regs_in_insn): Handle additions of eliminable
12490         register and a constant specially.
12491
12492 2000-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12493
12494         * libgcc2.h: New file.
12495         * libgcc2.c: Move macros, typedefs and prototypes to libgcc2.h.
12496
12497 Wed Mar  8 16:19:42 2000  Jim Wilson  <wilson@cygnus.com>
12498
12499         * configure.in (ia64*-*-elf*, ia64*-*-linux*): New.
12500         * configure: Regenerate.
12501         * config/ia64: New.
12502
12503 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
12504
12505         * Makefile.in (LIBCPP_DEPS): New macro.
12506         (cpplib.o, cpphash.o, cpperror.o, cppexp.o, cppfiles.o): Use
12507         it to declare deps.
12508         * cpperror.c: Include cpphash.h.
12509         * cppexp.c: Include cpphash.h.  Remove MULTIBYTE_CHARS
12510         dingleberry.
12511         (lex): Don't use CPP_WARN_UNDEF.
12512         (_cpp_parse_expr): Return an int, the truth value.
12513         * cppfiles.c: Include cpphash.h.
12514         (_cpp_merge_include_chains): Move to cppinit.c and make static.
12515         * cppinit.c (include_defaults_array): Disentangle.
12516         (cpp_cleanup): Don't free the if stack here.
12517         (cpp_finish): Pop off all buffers, not just one.
12518         * cpplib.c (eval_if_expr): Return int.
12519         (do_xifdef): Rename do_ifdef.
12520         (handle_directive): Don't use CPP_PREPROCESSED.
12521         (cpp_get_token): Don't use CPP_C89.
12522         * fix-header.c: Don't use CPP_OPTIONS.
12523
12524         * cpplib.h: Move U_CHAR, enum node_type, struct
12525         file_name_list, struct ihash, is_idchar, is_idstart,
12526         is_numchar, is_numstart, is_hspace, is_space, CPP_BUF_PEEK,
12527         CPP_BUF_GET, CPP_FORWARD, CPP_PUTS, CPP_PUTS_Q, CPP_PUTC,
12528         CPP_PUTC_Q, CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q,
12529         CPP_BUMP_BUFFER_LINE, CPP_BUMP_LINE, CPP_PREV_BUFFER,
12530         CPP_PRINT_DEPS, CPP_TRADITIONAL, CPP_PEDANTIC, and prototypes
12531         of _cpp_simplify_pathname, _cpp_find_include_file,
12532         _cpp_read_include_file, and _cpp_parse_expr to cpphash.h.
12533         Move struct if_stack to cpplib.c.  Move struct cpp_pending to
12534         cppinit.c.
12535         Change all uses of U_CHAR to be unsigned char instead.
12536         Delete CPP_WARN_UNDEF, CPP_C89, and CPP_PREPROCESSED.
12537
12538 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
12539
12540         * dwarf2out.c (dw_fde_struct): Add 'nothrow'.
12541         (dwarf2out_begin_prologue): Set it.
12542         (output_call_frame_info): Don't emit EH unwind info for leaves.
12543
12544         * flow.c (count_basic_blocks, find_basic_blocks_1): A rethrow
12545         can occur outside of an EH region.
12546         * except.c: Correct comments about rethrow behavior.
12547         (rethrow_symbol_map): Do nothing if !flag_new_exceptions.
12548
12549 2000-03-08  Andrew MacLeod  <amacleod@cygnus.com>
12550
12551         * flow.c (make_edges): Always call make_eh_edge for calls.
12552
12553 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
12554
12555         * cpplib.h (parse_underflow_t, CPP_NULL_BUFFER): Delete.
12556         (struct cpp_buffer): Remove fname and underflow fields.
12557         (struct cpp_reader): Remove get_token field.
12558         (struct include_hash): Rename to struct ihash.  Add typedef to
12559         IHASH.
12560         (struct if_stack): Remove fname field.
12561         (IF_STACK_FRAME): Rename to IF_STACK.
12562
12563         * cpperror.c (print_containing_files): Trust that there are no
12564         macro buffers below the top file buffer.
12565         * cppfiles.c: Replace all references to 'struct include_hash'
12566         with 'IHASH'.  Rename initialize_input_buffer to
12567         init_input_buffer.  Don't set or reference cpp_buffer->fname,
12568         use buffer->ihash->name instead.
12569         * cpphash.c (special_symbol): Use cpp_file_buffer.  Use NULL
12570         not CPP_NULL_BUFFER.
12571         * cppinit.c: Use NULL not CPP_NULL_BUFFER, IF_STACK not
12572         IF_STACK_FRAME, IHASH not struct include_hash.
12573         * cpplib.c: Rename eval_if_expression to eval_if_expr.  Remove
12574         null_underflow.  Use IF_STACK not IF_STACK_FRAME, IHASH not
12575         struct include_hash, NULL not CPP_NULL_BUFFER.  Remove all
12576         references to cpp_buffer->fname (delete entirely, or use
12577         ->ihash->name instead) and IF_STACK->fname.
12578         (cpp_push_buffer): Don't set new->underflow.
12579         (do_include): Use cpp_file_buffer.
12580
12581         * cpphash.c (collect_formal_parameters): Remove duplicate
12582         increment of argslen.  Pedwarn in C99 mode if __VA_ARGS__ is
12583         used as a macro argument name.  Don't append "..." to namebuf
12584         for varargs macros.  After we're done scanning, go through
12585         namebuf and make it NUL separated, not comma separated.
12586         (_cpp_compare_defs): Remove register tag from variables.
12587         Expect defn->argnames to be NUL separated.
12588         (_cpp_dump_definition): Expect defn->argnames to be NUL
12589         separated and in forward order.
12590         * cpphash.h: Update documentation of argnames field.
12591
12592 2000-03-08  Richard Henderson  <rth@cygnus.com>
12593
12594         * builtins.c (expand_builtin_strlen): Be prepared for strlensi
12595         to fail.  Don't pre-expand the source operand.
12596
12597         * i386.md (strlensi): Initialize eoschar and align before use.
12598
12599 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
12600
12601         * expr.c (expand_expr, case ARRAY_REF): Still check for missing
12602         CONSTRUCTOR element.
12603
12604 2000-03-08  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
12605
12606         * mips.c (mips_expand_prologue): If the last
12607         named argument is the vararg marker "va_list", treat it as
12608         an unnamed argument.
12609
12610 2000-03-08  Clinton Popetz  <cpopetz@cygnus.com>
12611
12612         * dbxout.c (dbxout_parms): When correcting for promoted
12613         big-endian parameters, use the mode of the DECL_RTL rather
12614         than UNITS_PER_WORD.
12615
12616 2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
12617
12618         * c-common.h (make_fname_decl): Declare.
12619         * c-common.c (make_fname_decl): Define.
12620         (declare_hidden_char_array): Remove.
12621         (declare_function_name): Use make_fname_decl.
12622         * c-decl.c (c_make_fname_decl): New function.
12623         (init_decl_processing): Set make_fname_decl.
12624
12625 Tue Mar  7 23:50:31 2000  Jeffrey A Law  (law@cygnus.com)
12626
12627         * cccp.c (handle_directive): Initialize backslash_newlines_p.
12628
12629 2000-03-07  Philipp Thomas  <pthomas@suse.de>
12630
12631         * po/POTFILES.in: Remove cppalloc.c from file list.
12632
12633 2000-03-07  Steve Chamberlain  <sac@pobox.com>
12634
12635         * pj.c (pj_expand_prologue): current_function->args_info is
12636         now current_function_args_info.
12637
12638         * pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX,
12639         LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL,
12640         ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define.
12641
12642 2000-03-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12643
12644         * config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is
12645         output as hexadecimal rather than the default octal.
12646
12647 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
12648
12649         * cpphash.c (special_symbol): Fix thinko in previous commit.
12650
12651 2000-03-07  Neil Booth  <NeilB@earthling.net>
12652
12653         * cppexp.c (struct operation, left_shift, right_shift,
12654         cpp_parse_expr): Change some "char"s to "U_CHAR"s, and some
12655         "int"s to "unsigned int"s.
12656         * cpplib.c (detect_if_not_defined, do_assert, do_unassert):
12657         Similarly.
12658         * cpplib.h: Update for above.
12659         * mkdeps.c (deps_init, deps_calc_target): Cast pointers
12660         returned from allocations.
12661
12662         * cppinit.c (opt_comp, parse_options): New functions.
12663         (handle_option): Use parse_option to parse a single command
12664         line option, that possibly takes an argument.
12665         (cpp_handle_options): Sort the array of command line options on
12666         first invocation (non-ASCII hosts only).
12667         (print_help): Update.
12668
12669 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
12670
12671         * mkdeps.c (munge): Fix off-by-one bug and inconsistencies in
12672         backslash counting loops.  Problem noted by Matt Kraai <kraai@ghs.com>.
12673
12674         * cppfiles.c (_cpp_find_include_file): Make sure ih->name is
12675         initialized.
12676         * cppinit.c (cpp_cleanup): Free imp->nshort also.
12677
12678         * cpperror.c (cpp_print_containing_files,
12679         cpp_print_file_and_line, v_cpp_message): Rename to
12680         print_containing_files, print_file_and_line, and v_message.
12681         * cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename
12682         to _cpp_parse_expr, parse_escape, and lex.
12683         (parse_charconst): Remove broken multibyte support.
12684         * cppfiles.c (include_hash): Make static.
12685         (cpp_included): New function.
12686         (merge_include_chains, find_include_file, finclude,
12687         simplify_pathname): Rename to _cpp_merge_include_chains,
12688         _cpp_find_include_file, _cpp_read_include_file, and
12689         _cpp_simplify_pathname.
12690         * cpphash.c (cpp_lookup, free_definition, delete_macro,
12691         cpp_install, create_definition, macroexpand, compare_defs,
12692         dump_definition): Rename to _cpp_lookup, _cpp_free_definition,
12693         _cpp_delete_macro, _cpp_install, _cpp_create_definition,
12694         _cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition.
12695         * cppinit.c (cpp_handle_option): Rename to handle_option, make
12696         static.
12697         * cpplib.c: Remove extern prototype of cpp_parse_expr.
12698
12699         * cpphash.h: Update prototypes.
12700         * cpplib.h: Likewise.  Prototype _cpp_parse_expr here.
12701
12702 2000-03-07  Andrew Haley  <aph@cygnus.com>
12703
12704         * config/mips/mips.h (PTRDIFF_TYPE): Revert broken change;
12705         PTRDIFF_TYPE should be based solely on Pmode.
12706         (SIZE_TYPE): ditto.
12707
12708 2000-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12709
12710         * rtl.h (rtunion_def): Constify member `rtstr'.
12711         (emit_line_note_after, emit_line_note, emit_line_note_force,
12712         emit_note, decode_asm_operands): Constify.
12713
12714         * cse.c (canon_hash): Likewise.
12715
12716         * dbxout.c (dbxout_block): Likewise.
12717
12718         * diagnostic.c (file_and_line_for_asm, v_error_for_asm,
12719         v_warning_for_asm): Likewise.
12720
12721         * dwarfout.c (function_start_label): Likewise.
12722
12723         * emit-rtl.c (emit_line_note_after, emit_line_note, emit_note,
12724         emit_line_note_force): Likewise.
12725
12726         * final.c (last_filename, asm_insn_count, final_scan_insn,
12727         output_source_line): Likewise.
12728
12729         * function.h (struct emit_status): Likewise.
12730
12731         * gcse.c (hash_expr_1): Likewise.
12732
12733         * genattr.c (gen_attr, main): Likewise.
12734
12735         * genattrtab.c (struct function_unit, current_alternative_string,
12736         write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq,
12737         attr_numeral, check_attr_test, check_attr_value,
12738         convert_set_attr_alternative, convert_set_attr,
12739         compute_alternative_mask, simplify_by_exploding, gen_attr,
12740         gen_unit): Likewise.
12741
12742         * genflags.c (gen_insn): Likewise.
12743
12744         * gengenrtl.c (type_from_format): Likewise.
12745
12746         * genopinit.c (gen_insn): Likewise.
12747
12748         * genoutput.c (n_occurrences, process_template, process_template):
12749         Likewise.
12750
12751         * ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
12752         Likewise.
12753
12754         * ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
12755         Likewise.
12756
12757         * ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable,
12758         ggc_set_mark, ggc_get_size): Likewise.
12759
12760         * objc/objc-act.c (build_module_descriptor, finish_objc): Likewise.
12761
12762         * optabs.c (init_one_libfunc): Likewise.
12763
12764         * output.h (assemble_start_function): Likewise.
12765
12766         * recog.c (decode_asm_operands): Likewise.
12767
12768         * toplev.c (rest_of_compilation): Likewise.
12769
12770         * tree.h (emit_line_note_after, emit_line_note,
12771         emit_line_note_force): Likewise.
12772
12773         * varasm.c (asm_output_bss, asm_output_aligned_bss,
12774         asm_emit_uninitialised, assemble_start_function,
12775         assemble_variable, const_hash, compare_constant_1,
12776         find_pool_constant, mark_constant_pool, assemble_alias): Likewise.
12777
12778         * xcoffout.h (DBX_FINISH_SYMBOL): Likewise.
12779
12780         * alpha/alpha.md (call_vms, call_value_vms): Likewise.
12781
12782         * arm/aof.h (ASM_OUTPUT_ASCII): Likewise.
12783
12784         * arm/aout.h (ASM_OUTPUT_ASCII): Likewise.
12785
12786         * arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p,
12787         arm_dllimport_name_p): Likewise.
12788
12789         * arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op):
12790         Likewise.
12791
12792         * arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise.
12793
12794         * arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12795
12796         * arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p,
12797         arm_mark_dllexport, arm_mark_dllimport,
12798         arm_pe_encode_section_info): Likewise.
12799
12800         * arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS,
12801         ASM_FINISH_DECLARE_OBJECT): Likewise.
12802
12803         * arm/thumb.c (thumb_function_prologue): Likewise.
12804
12805         * arm/thumb.h (ASM_OUTPUT_ASCII): Likewise.
12806
12807         * avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12808
12809         * clipper/clix.h (ASM_OUTPUT_ASCII): Likewise.
12810
12811         * fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise.
12812
12813         * i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise.
12814
12815         * i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12816
12817         * i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING,
12818         ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise.
12819
12820         * i386/i386-protos.h (asm_output_function_prefix): Likewise.
12821
12822         * i386/i386.c (asm_output_function_prefix): Likewise.
12823
12824         * i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise.
12825
12826         * i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12827
12828         * i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise.
12829
12830         * i386/sco5.h (ASM_FINISH_DECLARE_OBJECT,
12831         ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII,
12832         ASM_OUTPUT_SECTION_NAME): Likewise.
12833
12834         * i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise.
12835
12836         * i860/paragon.h (ASM_OUTPUT_ASCII): Likewise.
12837
12838         * i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise.
12839
12840         * m32r/m32r.c (m32r_encode_section_info): Likewise.
12841
12842         * mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12843
12844         * mcore/mcore.c (mcore_encode_section_info): Likewise.
12845
12846         * mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12847
12848         * mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12849
12850         * mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12851
12852         * mips/mips.h (ASM_OUTPUT_IDENT): Likewise.
12853
12854         * mips/mips.md (movdi, movsi): Likewise.
12855
12856         * mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12857
12858         * netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12859
12860         * openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
12861
12862         * ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
12863         ASM_OUTPUT_ASCII): Likewise.
12864
12865         * rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog,
12866         output_mi_thunk, output_toc): Likewise.
12867
12868         * rs6000/rs6000.md (movsi): Likewise.
12869
12870         * rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise.
12871
12872         * tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise.
12873
12874         * v850/v850.c (print_operand, print_operand_address,
12875         v850_encode_data_area): Likewise.
12876
12877 2000-03-07  Clinton Popetz  <cpopetz@cygnus.com>
12878
12879         * config/mips/mips.md (zero_extendsidi2): Always force operand
12880         one to memory for mips16.
12881
12882 Mon Mar  6 15:22:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12883
12884         * tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts.
12885         (struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT.
12886         (attribute_hash_list, type_hash_canon): hashcode is now unsigned.
12887         (type_hash_lookup, type_hash_add, type_hash_list): Likewise.
12888         (min_precision): Result is unsigned.
12889         (add_double, neg_double, mul_double): Low word is unsigned.
12890         (lshift_double, rshift_double, lrotate_double): Likewise.
12891         (rrotate_double, div_and_round_double): Likewise.
12892         (tree_floor_log2, compare_tree_int): New functions.
12893         (preserve_rtl_expr_temps): New declaration.
12894         * c-common.c (declare_hidden_char_array): Use compare_tree_int.
12895         (decl_attributes): Use tree_log2 to find alignment.
12896         Check for TREE_INT_CST_HIGH for format args.
12897         (min_precision): Now unsigned.
12898         Use tree_floor_log2.
12899         (truthvalue_conversion): Delete long-disabled code.
12900         * c-decl.c (finish_struct): Clean up tests on field width.
12901         (finish_function): Use compare_tree_int.
12902         * c-pragma.c (handle_pragma_token): Use tree_log2 for alignment.
12903         * c-typeck.c (comptypes): Use tree_int_cst_equal.
12904         (default_conversion, digest_init): Use compare_tree_int.
12905         (build_binary_op): Use integer_all_onesp and compare_tree_int.
12906         Fix type errors in forming masks.
12907         * calls.c (initialize_argument_information): Use compare_tree_int.
12908         * dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
12909         * except.c (expand_eh_region_start_tree): Use compare_tree_int.
12910         * expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop.
12911         (store_field): Use compare_tree_int.
12912         (expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT.
12913         (expand_expr, case ARRAY_REF): Use compare_tree_int.
12914         (do_jump, case BIT_AND_EXPR): Use tree_floor_log2.
12915         (do_store_flag): Use compare_tree_int.
12916         * fold-const.c (encode, decode): Low part is always unsigned.
12917         (force_fit_type, add_double, neg_double, mul_double): Likewise.
12918         (lshift_double, rshift_double, lrotate_double): Likewise.
12919         (rrotate_double, div_and_round_double, int_const_binop): Likewise.
12920         (fold_convert): Use compare_tree_int.
12921         (operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal.
12922         (invert_truthvalue, case INTEGER_CST): Likewise.
12923         (fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW.
12924         * mkdeps.c (deps_dummy_targets): Make I unsigned.
12925         * rtl.h (add_double, neg_double, mul_double): Low words are unsigned.
12926         (lshift_double, rshift_double, lrotate_double, rrotate_double):
12927         Likewise.
12928         * stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree.
12929         (expand_end_case): Use compare_tree_int.
12930         (estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
12931         * stor-layout.c (mode_for_size_tree): Use compare_tree_int.
12932         (layout_decl): Likewise.
12933         (layout_record, layout_union): Make sizes unsigned.
12934         (layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype.
12935         (layout_type, case QUAL_UNION_TYPE): Use compare_tree_int.
12936         * tree.c (struct type_hash): hashcode is unsigned.
12937         (build_type_attribute_variant, type_hash_list): Likewise.
12938         (type_hash_lookup, type_hash_add, type_hash_canon): Likewise.
12939         (attribute_hash_list, build_array_type, build_method_type): Likewise.
12940         (build_complex_type): Likewise.
12941         (real_value_from_int_cst): Remove unneeded casts.
12942         (integer_all_onesp): Add casts.
12943         (tree_floor_log2, compare_tree_int): New functions.
12944         (build_index_type): Use tree_int_cst_sgn.
12945         * varasm.c (assemble_variable): Use compare_tree_int.
12946
12947 2000-03-06  Jason Merrill  <jason@casey.cygnus.com>
12948
12949         * cpphash.c (collect_expansion): Also catch ## at start of macro.
12950
12951         * varasm.c (make_decl_rtl): Don't add a number to members of
12952         local classes.
12953         (make_function_rtl): Likewise.
12954
12955 2000-03-06  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
12956
12957         * gcse.c (compute_can_copy): Adjust if/else blocks from rth's
12958         patch from 2000-01-28.
12959
12960 2000-03-06  Clinton Popetz  <cpopetz@cygnus.com>
12961
12962         * config/sh/sh.c: (barrier_align): Handle a delay slot that is
12963         filled with an insn from the jump target.
12964
12965 2000-03-07  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12966
12967         * config/c4x/c4x-protos.h (c4x_global_name): Constify char *.
12968         (c4x_external_ref): Likewise.
12969         * config/c4x/c4x.c (struct name_list): Likewise.
12970
12971 1999-12-16  Ben Collins  <bcollins@debian.org>
12972
12973         * Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth
12974         argument to genmultilib.
12975         * genmultilib: accept new MULTILIB_EXCLUSIONS option and output
12976         the contents into the multilib.h header.
12977         * gcc.c: Declare multilib_exclusions for the specs file.
12978         (set_multilib_dir): Use it.
12979         (print_multilib_info): Likewise.
12980         * t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option
12981         to pass to genmultilib.
12982
12983 2000-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12984
12985         * builtins.c (built_in_class_names, built_in_names): Constify a
12986         char*.
12987
12988         * gmon-sol2.c (monstartup, moncontrol): Cast ptrs to long, not
12989         int.
12990         (_mcleanup): Ensure value matches format specifier in sprintf.
12991
12992         * cpphash.c (special_symbol): Don't needlessly cast away
12993         const-ness.
12994
12995         * cppinit.c (base_name): Delete unused prototype.
12996
12997         * mkdeps.c (deps_init): Make definition K&R safe.
12998
12999         * tree.h (built_in_class_names, built_in_names): Constify a
13000         char*.
13001
13002 2000-03-06  Jakub Jelinek  <jakub@redhat.com>
13003
13004         * config/sparc/sparc.c (eligible_for_epilogue_delay): Accept
13005         floating point instructions for epilogue delay.
13006
13007         * config/sparc/sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs
13008         to gas if it supports .register pseudo.
13009
13010         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to
13011         LONG_DOUBLE_TYPE_SIZE if not defined.
13012         Use MAX_LONG_DOUBLE_TYPE_SIZE instead of
13013         LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses.
13014         * real.c: Likewise.
13015         * gengenrtl.c: Likewise.
13016         * print-rtl.c: Likewise.
13017         * rtl.c: Likewise.
13018         * config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set
13019         MASK_LONG_DOUBLE_128.
13020         * config/sparc/sol2.h (TARGET_DEFAULT): Likewise.
13021         * config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise.
13022         * config/sparc/linux64 (TARGET_DEFAULT): Likewise.
13023         (SUBTARGET_SWITCHES): Define.
13024         (CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling
13025         with -mlong-double-128.
13026         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
13027         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
13028         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
13029         (CC1_SPEC): Include -mlong-double-{64,128} as needed.
13030         * config/sparc/linux.h (SUBTARGET_SWITCHES): Define.
13031         (CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling
13032         with -mlong-double-128.
13033         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
13034         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
13035         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
13036         * config/sparc/sparc.h (MASK_LONG_DOUBLE_128,
13037         TARGET_LONG_DOUBLE_128): Define.
13038         * config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove.
13039         * config/sparc/sparc.c (sparc_override_options): Disallow 64bit
13040         long double on TARGET_ARCH64.
13041
13042 2000-03-06  Mark Mitchell  <mark@codesourcery.com>
13043
13044         * function.c (free_temps_for_rtl_expr): Don't free slots
13045         that have been pushed into a higher level.
13046
13047         Revert this patch:
13048         2000-03-05  Mark Mitchell  <mark@codesourcery.com>
13049
13050 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
13051
13052         * basic-block.h (ALLOCA_REG_SET): Remove.
13053         (INITIALIZE_REG_SET): New macro.
13054         * flow.c (update_life_info): Use it.
13055         (calculate_global_regs_live): Likewise.
13056         (propagate_block): Likewise.
13057         * global.c (build_insn_chain): Likewise.
13058         * haifa-sched.c (schedule_region): Likewise.
13059
13060 2000-03-05  Stephane Carrez  <stcarrez@worldnet.fr>
13061
13062         * dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer.
13063         (ASM_OUTPUT_DWARF_ADDR_CONST): Use UNALIGNED_WORD_ASM_OP.
13064         (DWARF_ARANGES_PAD_SIZE): New define.
13065         (output_aranges): Use it to pad the address range header.
13066         (DWARF_ROUND): Fix for non power of 2 rounding.
13067
13068 2000-03-05  Jason Merrill  <jason@casey.cygnus.com>
13069
13070         * mkdeps.c (deps_calc_target): Remove incorrect 'const'.
13071
13072 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
13073
13074         * tree.def (RTL_EXPR): Update documentation.
13075         * tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro.
13076         * expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE.
13077         * function.c (preserve_rtl_expr_temp): New function.
13078         (preserve_rtl_expr_temps): Likewise.
13079         (preserve_rtl_expr_result): Use it.
13080
13081         Revert this patch:
13082         2000-03-04  Mark Mitchell  <mark@codesourcery.com>
13083
13084 2000-03-04  Thomas Schuster <Thomas.Schuster@gmx.net>
13085
13086         * regmove.c (copy_src_to_dest)  Do not create src->dest move
13087         for unchanging destination.
13088
13089 2000-03-04  Mark Mitchell  <mark@codesourcery.com>
13090
13091         * function.h (struct sequence_stack): Remove rtl_expr.
13092         (struct emit_staus): Likewise.
13093         (seq_rtl_expr): Remove.
13094         * tree.h (free_temps_for_rtl_expr): Don't declare.
13095         (start_sequence_for_rtl_expr): Likewise.
13096         * rtl.h (preserve_rtl_expr_result): Likewise.
13097         * emit-rtl.c (start_sequence): Don't set sequence_rtl_expr.
13098         (start_sequence_for_rtl_expr): Remove.
13099         (push_topmost_sequence): Don't save sequence_rtl_expr.
13100         (pop_topmost_sequence): Remove comment about not restoring it.
13101         (end_sequence): Don't set seq_rtl_expr.
13102         (init_emit): Don't initialize it.
13103         (mark_sequence_stack): Don't mark it.
13104         (mark_emit_status): Likewise.
13105         * except.c (protect_with_terminate): Use
13106         start_sequence_for_rtl_expr, not start_sequence.
13107         * expr.c (expand_expr, case RTL_EXPR): Don't call
13108         preserve_rtl_expr_result or free_temps_for_rtl_expr.
13109         * function.c (assign_stack_temp_for_type): Don't set rtl_expr.
13110         (preserve_rtl_expr_result): Remove.
13111         (free_temps_for_rtl_expr): Likewise.
13112         (pop_temp_slots): Likewise.
13113         (mark_temp_slot): Don't mark the rtl_expr.
13114         * stmt.c (expand_start_stmt_expr): Use start_sequence, not
13115         start_sequence_for_rtl_expr.
13116
13117 2000-03-04  Zack Weinberg  <zack@wolery.cumb.org>
13118
13119         * mkdeps.c, mkdeps.h: New files.
13120         * po/POTFILES.in: Add them.
13121         * Makefile.in (LIBCPP_OBJS): Add mkdeps.o.
13122         (cpplib.o, cppinit.o): Depend on mkdeps.h.
13123         (mkdeps.o): New target.
13124
13125         * cppfiles.c: Delete deps_output.
13126         * cppinit.c: Include mkdeps.h.  Delete known_suffixes,
13127         OBJECT_SUFFIX, and base_name.
13128         (cpp_cleanup): Use deps_free.  Free ihash->name when clearing
13129         the include hash.
13130         (initialize_dependency_output): Use deps_init,
13131         deps_add_target, deps_calc_target, and deps_add_dep.  Remove
13132         all the unnecessary string bashing.
13133         (cpp_finish): Use deps_write.  Remove an unnecessary nesting
13134         level.
13135         * cpplib.c (do_include): Use deps_add_dep.
13136         * cpplib.h (struct cpp_reader): Replace deps_buffer,
13137         deps_allocated_size, deps_size, deps_column members with
13138         single pointer to a struct deps.  Delete prototype of
13139         deps_output.
13140
13141         * cppinit.c: Fix thinko in previous patch.
13142
13143 Sat Mar  4 11:32:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13144
13145         * machmode.h (mode_for_size, smallest_mode_for_size): SIZE now signed.
13146         * stor-layout.c (mode_for_size, smallest_mode_for_size): Likewise.
13147         (mode_for_size_tree): New function.
13148         (layout_decl, layout_type): Call it and clean up BLKmode checks.
13149         * tree.h (mode_for_size_tree): New declaration.
13150
13151         * toplev.c (debug_ignore_block): Mark arg BLOCK as possibly unused.
13152
13153 2000-03-04  Jason Merrill  <jason@casey.cygnus.com>
13154
13155         * stmt.c (is_body_block): Move...
13156         * dwarfout.c, dwarf2out.c: ...from here.
13157         * tree.h: Declare it.
13158         * emit-rtl.c (remove_unncessary_notes): Don't remove the body block.
13159         * final.c (final_start_function): Do call remove_unnecessary_notes
13160         when scheduling.
13161
13162 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
13163
13164         * config/vax/xm-vms.h: Define OBJECT_SUFFIX and EXECUTABLE_SUFFIX.
13165
13166         * cpplib.h (_dollar_ok): New macro.
13167         (is_idchar, is_idstart): Use it.
13168         (IStable): Rename to _cpp_IStable.  Declare it const if
13169         gcc >=2.7 or C99.  Delete all references to FAKE_CONST.
13170         (is_idchar, is_idstart, is_numchar, is_numstart, is_hspace,
13171         is_space): Update for renamed IStable.
13172
13173         * cppinit.c: Delete all references to FAKE_CONST and CAT
13174         macros. Define init_IStable as empty macro if gcc >=2.7 or
13175         C99. Change TABLE() to ISTABLE and hardcode name of table.
13176         (cpp_start_read): Don't change the IStable based on
13177         dollars_in_ident.
13178
13179         * cpphash.c (unsafe_chars): Add pfile argument.  All callers
13180         changed.  Handle '$' for char1 correctly.
13181         * cpplib.c (cpp_get_token): Use is_numchar when parsing numbers.
13182
13183         * cppexp.c (tokentab2): Make const.
13184         (cpp_lex): Make toktab const.
13185         * cppinit.c (include_defaults_array): Make const.
13186         (initialize_standard_includes): Make default_include const.
13187
13188 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
13189
13190         * dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning.
13191         (dwarf2out_decl): Functions can now have DECL_IGNORED_P.
13192         (gen_decl_die): Likewise.
13193         * dwarfout.c (dwarfout_file_scope_decl): Likewise.
13194         (output_decl): Likewise.
13195
13196         * varasm.c (make_function_rtl): If we change the name used in the
13197         rtl, update DECL_ASSEMBLER_NAME accordingly.
13198         (make_decl_rtl): Likewise.
13199
13200         * toplev.c (rest_of_compilation): Tweak formatting.
13201
13202         * toplev.c (rest_of_compilation): find_loop_tree_blocks before
13203         remove_unnecessary_notes.
13204         (debug_ignore_block): New fn.
13205         * toplev.h: Declare it.
13206         * emit-rtl.c (remove_unncessary_notes): Call it.
13207         * dwarf2out.c (dwarf2out_ignore_block): New fn.
13208         * dwarf2out.h: Declare it.
13209         * final.c (final_start_function): Don't call remove_unnecessary_notes
13210         if we did insn scheduling.
13211
13212 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
13213
13214         * cppinit.c (cpp_handle_option): Set opts->pedantic directly.
13215         * cpplib.h: Delete SET_CPP_PEDANTIC.
13216
13217 Fri Mar  3 14:56:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13218
13219         * expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if
13220         result is a RECORD_TYPE.
13221
13222 2000-03-03  Jonathan Larmour  <jlarmour@cygnus.co.uk>
13223
13224         * mips/elf.h (CTOR_LISTS_DEFINED_EXTERNALLY): Added.
13225
13226 2000-03-03  Richard Henderson  <rth@cygnus.com>
13227
13228         * alpha.c (alpha_emit_set_const_1): Re-order cases to prefer
13229         addition over compliments over shifts.
13230
13231 Fri Mar  3 12:49:28 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13232
13233         * reload1.c (reload_combine_note_use): Handle return register USEs.
13234         REG case: Handle multi-hard-register hard regs.
13235
13236 Fri Mar  3 07:38:34 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13237
13238         * md.texi: Document use of '*' in insn pattern name.
13239
13240 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
13241
13242         * calls.c (special_function_p): operator new may not be malloc-like.
13243
13244         * gcse.c (dump_hash_table): Really fix error in last change.
13245
13246 2000-03-02  Denis Chertykov  <denisc@overta.ru>
13247
13248         * avr.c (print_operand): Use print_operand_address instead of
13249         output_addr_const.
13250         * avr/libgcc.S: Cleanup code.
13251
13252 2000-03-02  Richard Henderson  <rth@cygnus.com>
13253
13254         * alpha.c (alpha_emit_set_const_1): Also try c + small constant.
13255
13256 2000-03-02  Mark Mitchell  <mark@codesourcery.com>
13257
13258         * tree.h (TYPE_ALIGN_UNIT): New macro.
13259
13260 2000-03-02  Clinton Popetz  <cpopetz@cygnus.com>
13261
13262         * i386.c: (constant_call_address_operand): Reject CONST_INT.
13263
13264 2000-03-02  Jason Merrill  <jason@casey.cygnus.com>
13265
13266         * cpplib.h (CPP_PEDANTIC): Only true if system_header_p is not set
13267         for the buffer.
13268         (SET_CPP_PEDANTIC): New macro.
13269         * cpplib.c (do_include): Don't bother checking system_header_p.
13270         (do_warning, do_ident, do_assert, do_unassert): Likewise.
13271         * cppinit.c (cpp_handle_option): Use SET_CPP_PEDANTIC.
13272
13273         * function.h (struct expr_status): Add x_arg_space_so_far.
13274         (arg_space_so_far): New macro.
13275         * expr.c (init_expr): Initialize it.
13276         * calls.c (emit_call_1): Reset it.
13277         (compute_argument_block_size, expand_call): Use it.
13278         (expand_call, store_one_arg): Increment it.
13279
13280 Thu Mar  2 17:27:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13281
13282         * varasm.c (output_constant): Strip off a CONVERT_EXPR to
13283         a UNION_TYPE.
13284
13285 2000-03-02  Zack Weinberg  <zack@wolery.cumb.org>
13286
13287         * cppfiles.c (cpp_read_file): New function.
13288
13289         * cpphash.c (collect_expansion): Make sure to reset last_token
13290         to NORM when we hit a string.  Handle trailing whitespace
13291         properly when the expansion is empty.
13292         (create_definition): Disable line commands while parsing the
13293         directive line.
13294         (dump_definition): If pfile->lineno == 0, output a line
13295         command ahead of the dump, and add a trailing newline.
13296
13297         * cppinit.c (append_include_chain): Add fifth argument, which
13298         indicates whether or not system headers are C++ aware.
13299         (initialize_standard_includes): New function,
13300         broken out of read_and_prescan.  Pass 'cxx_aware' value from
13301         the include_defaults_array on to append_include_chain.
13302         (dump_special_to_buffer): Const-ify char array.
13303         (builtin_array): Don't dump __BASE_FILE__.
13304         (cpp_start_read): Use cpp_read_file.  Reorder code for
13305         clarity.  Don't output line commands here for -D/-A/-U
13306         switches.  Don't call deps_output for files included with
13307         -include or -imacros.
13308
13309         * cpplib.c (do_define): Don't pay any attention to the second
13310         argument.
13311         (cpp_expand_to_buffer): Disable line commands while scanning.
13312         (output_line_command): Work in the file buffer.
13313         * cpplib.h: Remove no_record_file flag from struct cpp_reader.
13314         Fix formatting of comments.  Prototype cpp_read_file.
13315
13316 Thu Mar  2 13:29:46 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13317
13318         * c-common.c (c_common_nodes_and_builtins): Make sizetype_endlink
13319         reference the language-equivalent of sizetype.
13320         * c-typeck.c (comptypes): Treat sizetype like its language equivalent.
13321         * fold-const.c (size_binop, size_diffop): Put back checks.
13322         * gcse.c (dump_hash_table): Fix minor error in last change.
13323         * stor-layout.c (set_sizetype): Set TYPE_DOMAIN of sizetype.
13324         Clear TYPE_{NEXT,MAIN}_VARIANT and TYPE_{POINTER,REFERENCE}_to of
13325         all sizetypes.
13326
13327 Thu Mar  2 12:48:45 MET 2000  Jan Hubicka  <jh@suse.cz>
13328
13329         * calls.c (expand_call)  Do not attempt to combine stack adjustments
13330         with inhibit_defer_pop set.
13331
13332 2000-03-01  Mark Mitchell  <mark@codesourcery.com>
13333
13334         * stor-layout.c (layout_decl): Allow front-ends to explicitly set
13335         the DECL_SIZE for a FIELD_DECL.
13336
13337 2000-03-01  Bruce Korb  <bkorb@gnu.org>
13338
13339         * fixinc/inclhack.tpl: remove unused symlinks
13340         * fixinc/README: GCC Maintainer info
13341         * fixinc/inclhack.sh: regen
13342         * fixinc/fixincl.sh: regen
13343
13344 2000-03-01  Zack Weinberg  <zack@wolery.cumb.org>
13345
13346         * cpphash.c (collect_expansion): Trim trailing white space
13347         from macro definitions, but don't go past the last insertion
13348         point.
13349
13350 Wed Mar  1 12:14:31 MET 2000  Jan Hubicka  <jh@suse.cz>
13351
13352         * i386.md (mulqi3): New pattern.
13353
13354 2000-02-29  Zack Weinberg  <zack@wolery.cumb.org>
13355
13356         * cpplib.h (CPP_ASSERTION, CPP_STRINGIZE, CPP_TOKPASTE): New
13357         token types.
13358         (struct cpp_reader): Add parsing_if_directive and
13359         parsing_define_directive flags.
13360         (struct cpp_options): Remove output_conditionals flag.
13361         (check_macro_name): Delete prototype.
13362
13363         * cpphash.h (struct macrodef): Delete.
13364         (struct reflist): Separate from struct definition.
13365         (struct definition): Remove unused fields.  Add column number.
13366         (create_definition): Returns a DEFINITION *.  Takes a
13367         cpp_reader * and an int.
13368
13369         * cpphash.c (SKIP_WHITE_SPACE): Delete.
13370         (PEEKC): Copy defn from cpplib.c.
13371         (rest_extension, REST_EXTENSION_LENGTH): Delete.
13372         (struct arg): New.
13373         (struct arglist): Simplify.
13374         (collect_expansion): Rewrite.  Get tokens by calling
13375         cpp_get_token.  Add more error checking.
13376         (collect_formal_parameters): New function, broken out of
13377         create_definition and reworked to use get_directive_token.
13378         (create_definition): All real work is now in collect_expansion
13379         and collect_formal_parameters.  do_define handles finding the
13380         macro name.  Return a DEFINITION, not a MACRODEF.
13381         (macroexpand): Replace bcopy with memcpy throughout.  Replace
13382         character-at-a-time copy loop with memcpy and pointer increments.
13383         (compare-defs): d1->argnames / d2->argnames might be null.
13384
13385         * cpplib.c (copy_rest_of_line): Delete function.
13386         (skip_rest_of_line): Do all the work ourselves.
13387         (skip_string): New function.
13388         (parse_string): Use skip_string.
13389         (get_macro_name): New function.
13390         (check_macro_name): Delete.
13391         (copy_comment): Use CPP_RESERVE and CPP_PUTC_Q.
13392         (cpp_skip_hspace): Use CPP_BUMP_LINE.
13393         (handle_directive): ICE if we're called on a macro buffer.
13394         (do_define): Determine macro name and type (funlike/objlike)
13395         here.  Expunge all uses of MACRODEF.
13396         (cpp_push_buffer): Set line_base to NULL.
13397         (do_undef, read_line_number): Don't worry about getting a POP token.
13398         (eval_if_expression): Set/reset parsing_if_directive around
13399         cpp_parse_expr. Don't clear only_seen_white.
13400         (skip_if_group): Remove output_conditionals logic.  Use
13401         skip_rest_of_line.
13402         (cpp_get_token): Return ASSERTION, STRINGIZE, and TOKPASTE
13403         tokens under appropriate conditions.
13404         (cpp_unassert): Call do_unassert not do_assert.  Oops.
13405
13406         * cppexp.c (parse_defined): New function, break out of
13407         cpp_lex.
13408         (cpp_lex): We now get CPP_ASSERTION tokens and can check them
13409         ourselves, with cpp_defined.
13410         * cppinit.c (cpp_handle_option, print_help): Delete -ifoutput.
13411
13412         * gcc.dg/20000209-2.c: Turn off -pedantic-errors.
13413         * gcc.dg/strpaste-2.c: New.
13414
13415 2000-02-29  Mark Mitchell  <mark@codesourcery.com>
13416
13417         * fold-const.c (size_binop): Don't asert inputs are the same and
13418         have TYPE_IS_SIZETYPE set.
13419         (size_diffop): Likewise.
13420
13421 2000-02-29  Jason Merrill  <jason@casey.cygnus.com>
13422
13423         * dwarfout.c (output_block): Output abstract blocks even if they
13424         don't have TREE_ASM_WRITTEN set.
13425
13426         * calls.c (emit_library_call): Check for null REG.
13427
13428 2000-03-01  Martin von Loewis  <loewis@informatik.hu-berlin.de>
13429
13430         * c-decl.c (current_function_decl): Move to toplev.c.
13431         (init_decl_processing): Don't add current_function_decl as a ggc
13432         root here.
13433         * dbxout.c (dbxout_symbol): Change return type to int.
13434         (dbxout_symbol_location, dbxout_syms): Likewise.
13435         (dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without
13436         any locals. Use current_function_func_begin_label if set.
13437         * dbxout.h (dbxout_symbol, dbxout_syms): Change return type.
13438         * dwarf2out.c (dwarf2out_begin_prologue): Set
13439         current_function_func_begin_label.
13440         * final.c (final_start_function): Reset it.
13441         * toplev.c (current_function_decl): Define it here.
13442         (current_function_func_begin_label): New variable.
13443         (main): Add both as ggc roots.
13444         * tree.h (current_function_func_begin_label): Declare.
13445
13446 Tue Feb 29 14:07:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13447
13448         * gcse.c: Cleanups throughout: mostly white-space, but also
13449         some minor rearrangement of code.
13450
13451 Tue Feb 29 10:45:59 2000  Jeffrey A Law  (law@cygnus.com)
13452
13453         * calls.c (emit_library_call): Do not abort if FUNCTION_ARG
13454         returns a PARALLEL.  Use emit_group_load and use_group_regs
13455         as needed.
13456         (emit_library_call_value): Similarly.
13457
13458         * pa/t-pa: Use quadlib.c instead of quadlib.asm.
13459         * pa/quadlib.asm: Remove.
13460         * pa/quadlib.c: New file.
13461
13462         * configure.in (hpux10, hpux11, PA32 mode): Use i128 float format.
13463         * configure: Rebuilt.
13464
13465 2000-02-29  Philip Blundell  <pb@futuretv.com>
13466
13467         * config/arm/conix-elf.h: New file.
13468         * configure.in (arm*-*-conix*): New configuration.
13469         * configure: Regenerate.
13470
13471 2000-02-28  Jason Merrill  <jason@casey.cygnus.com>
13472
13473         * dwarf2out.c (gen_block_die): Output abstract blocks even if they
13474         don't have TREE_ASM_WRITTEN set.
13475
13476 Mon Feb 28 21:07:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13477
13478         * Eliminate DECL_FIELD_SIZE.
13479         * builtins.c (built_in_class_names, built_in_names): New variables.
13480         * c-decl.c (finish_struct): Set specified size in DECL_SIZE.
13481         * expr.c (expand_expr, case COMPONENT_REF): Get field size from
13482         DECL_SIZE, not DECL_FIELD_SIZE.
13483         * print-tree.c (print_node): Remove code that prints extra blank
13484         lines in some cases.
13485         Properly handle inline and builtin function cases.
13486         * stor-layout.c (layout_decl): Get specified size from DEC_SIZE.
13487         * tree.h (built_in_class_named, built_in_names): New declarations.
13488         (union tree_decl): Rename internal unions to u1 and u2 and change
13489         some of their components.
13490         Add new field built_in_class.
13491         (DECL_ALIGN, DECL_INCOMING_RTL, DECL_SAVED_INSNS, DECL_FRAME_SIZE):
13492         Reflect above changes.
13493         (DECL_FUNCTION_CODE, DECL_BUILT_IN_CLASS): Likewise.
13494         (DECL_SET_FUNCTION_CODE, DECL_FIELD_SIZE): Deleted.
13495         * objc/objc-act.c (objc_copy_list): Use DECL_SIZE, not DECL_FIELD_SIZE.
13496         (encode_field_decl): Likewise; also remove obsolete test for bitfield.
13497
13498 2000-02-28  Dmitri Makarov  <dim@windriver.com>
13499
13500         * extend.texi: Document ARM's support for long/short calls.
13501
13502         * invoke.texi: Document ARM's -mlong-calls command line switch.
13503
13504         * config/arm/arm-protos.h (arm_is_longcall_p): Add prototype.
13505         (arm_encode_call_attribute): Add prototype.
13506         (arm_set_default_type_attribute): Add prototype.
13507         (arm_strip_name_encoding): Add prototype.
13508
13509         * config/arm/arm.c (arm_init_cumulative_args): replace
13510         initialisation og 'long_calls' field with initialisation of
13511         'call_cookie' field.
13512         (enum arm_pragma_enum): New enum.
13513         (arm_pragma_long_calls): New static variable.
13514         (arm_process_pragma): Also process "#pragma long_calls_off".
13515         (arm_valid_type_attribute_p): Accept short_call attribute.
13516         (arm_comp_type_attributes): Check long/short call attributes.
13517         (arm_encode_call_attribute):  New function:  Encode long_call
13518         or short_call attribute in function name.
13519         (arm_set_default_type_attributes): New function: Assign
13520         default attributes to newly defined type.
13521         (current_file_function_operand): New function: Return true if
13522         the symbol is a function which has already been compiled.
13523         (arm_is_longcall_p): New function: Return true if the
13524         indicated function should be called via a long call.
13525         (arm_get_strip_length): New function.  Returns number of
13526         prefix characters to be stripped from a function's name.
13527         (arm_strip_name_encoding): New function.  Strip prefix characters
13528         from a function's name.
13529
13530         * config/arm/arm.h (CUMULATIVE_ARGS): Replace 'long_call' field
13531         with 'call_cookie'.
13532         (SHORT_CALL_FAG_CHAR): Define.
13533         (LONG_CALL_FAG_CHAR): Define.
13534         (ENCODED_SHORT_CALL_ATTR_P): Define.
13535         (ENCODED_LONG_CALL_ATTR_P): Define.
13536         (ARM_NAME_ENCODING_LENGTHS): Define.
13537         (STRIP_NAME_ENCODING): Define.
13538         (ASM_OUTPUT_LABELREF): Define, and use to strip name encoding.
13539         (ARM_ENCODE_CALL_TYPE): Define.
13540         (ENCODE_SECTION): Invoke ARM_ENCODE_CALL_TYPE.
13541         (ARM_DECLARE_FUNCTION_SIZE): Define.
13542         (SET_DEFAULT_TYPE_ATTRIBUTES): Define.
13543
13544         * config/arm/arm.md (call): Call arm_is_longcall_p to decide
13545         if a long call is needed.
13546         (call_value): Ditto.
13547         (call_symbol): Ditto.
13548
13549         * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Add invocation of
13550         ARM_DECLARE_FUNCTION_SIZE.
13551
13552         * config/arm/pe.h (ARM_PE_FLAG_CHAR): Define.
13553         (SUBTARGET_NAME_ENCODING_LENGTHS): Define.
13554         (ARM_STRIP_NAME_ENCODING): Undefine.
13555         (STRIP_NAME_ENCODING): Undefine.
13556         (ASM_OUTPUT_LABELREF): Use arm_strip_name_encoding.
13557         (ASM_DECLARE_FUNCTION_NAME): Ditto.
13558         (ASM_OUTPUT_COMMON): Ditto.
13559         (ASM_DECLARE_OBJECT_NAME): Ditto.
13560
13561         * config/arm/pe.c (arm_dllexport_name_p): Check for
13562         ARM_PE_FLAG_CHAR.
13563         (arm_dllimport_name_p): Ditto.
13564         (arm_mark_dllexport): Use ARM_PE_FLAG_CHAR.
13565         (arm_mark_dllimport): Ditto.
13566
13567 Mon Feb 28 22:11:12 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13568
13569         * sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Define.
13570
13571 2000-02-28  Mark Mitchell  <mark@codesourcery.com>
13572
13573         * xcoffout.c (xcoffout_begin_function): Fix typo in previous change.
13574
13575 2000-02-28  Zack Weinberg  <zack@wolery.cumb.org>
13576
13577         * tm.texi: Document new target switch, NO_BUILTIN_WCHAR_TYPE.
13578         * cppinit.c (builtin_array): Define __WCHAR_TYPE__ only if
13579         NO_BUILTIN_WCHAR_TYPE is not defined.
13580         (CPP_WCHAR_TYPE): Delete.
13581         * cccp.c (main): Don't change wchar_type if cplusplus.
13582         (special_symbol, initialize_builtins): Honor NO_BUILTIN_WCHAR_TYPE.
13583
13584 2000-02-28  Nick Clifton  <nickc@cygnus.com>
13585
13586         * config/arm/arm-wince-pe.h (SIZE_TYPE): Define to "unsigned long".
13587
13588 Mon Feb 28 14:21:15 2000  Catherine Moore  <clm@cygnus.com>
13589
13590         * config/pa/som.h (MAKE_DECL_ONE_ONLY): Define.
13591         (ASM_WEAKEN_LABEL): Define.
13592
13593 Mon Feb 28 13:07:19 MET 2000  Jan Hubicka  <jh@suse.cz>
13594
13595         * expr.c (store_constructor): Do not emit USE.
13596         * rtl.h (stupid_life_analysis): Remove.
13597
13598 Mon Feb 28 07:03:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13599
13600         * function.c (number_blocks): Reset next_block_index based on
13601         what debugging format is used, not what is defined.
13602
13603         * lcm.c: Minor reformatting throughout.
13604         (reg_dies, reg_becomes_live): Properly handle multiple hard regs.
13605
13606         * toplev.c (rest_of_compilation): Account for time in
13607         optimize_mode_switching.
13608
13609         * jump.c (jump_optimize_1): Don't call delete_barrier_successors
13610         if only marking labels.
13611
13612 Mon Feb 28 12:53:57 MET 2000  Jan Hubicka  <jh@suse.cz>
13613
13614         * calls.c (expand_call): Attempt to combine stack adjustments with
13615         pending stack adjustments.
13616
13617 Mon Feb 28 11:34:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13618
13619         * loop.c (reg_in_basic_block_p): Don't abort when falling through
13620         to the end of the function.
13621
13622 2000-02-27  Mark Mitchell  <mark@codesourcery.com>
13623
13624         * emit-rtl.c (remove_unncessary_notes): Remove notes for empty
13625         blocks.
13626         * final.c (next_block_index): Remove.
13627         (max_block_depth): Likewise.
13628         (pending_blocks): Likewise.
13629         (init_final): Don't initialize them.
13630         (final_start_function): Don't set next_block_index.  Set up
13631         BLOCK_NUMBER.
13632         (final_scan_insn): Use BLOCK_NUMBER, not next_block_index.
13633         * function.h (number_blocks): New function.
13634         * function.c (get_block_vector): New function.
13635         (identify_blocks): Use it.
13636         (reorder_blocks): Set NOTE_BLOCK.
13637         (number_blocks): New function.
13638         * tree.def (BLOCK): Add documentation for TREE_ASM_WRITTEN flag.
13639         * tree.h (BLOCK_NUMBER): New macro.
13640         (tree_block): Add block_num field.
13641         * dbxout.c (next_block_number): Remove.
13642         (dbxout_init): Don't set it.
13643         (dbxout_block): Only output blocks that have TREE_ASM_WRITTEN
13644         set.  Use BLOCK_NUMBER, rather than next_block_num, to determine
13645         block numbers.
13646         * toplev.c (rest_of_compilation): Always call
13647         find_loop_tree_blocks.  Fix indentation.
13648         * dwarf2out.c (next_block_number): Remove.
13649         (gen_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
13650         to determine block numbers.
13651         (gen_inlined_subroutine_die): Likewise.
13652         (gen_block_die): Only output blocks that have TREE_ASM_WRITTEN set.
13653         (decls_for_scope): Don't increment next_block_number.
13654         * dwarfout.c (next_block_number): Remove.
13655         (output_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
13656         to determine block numbers.
13657         (output_inlined_subroutine_die): Likewise.
13658         (output_block): Only output blocks that have TREE_ASM_WRITTEN set.
13659         (output_decls_for_scope): Don't increment next_block_number.
13660         * sdbout.c (next_block_number): Remove.
13661         (sdbout_block): Use BLOCK_NUMBER.
13662         (sdbout_begin_block): Simplify.
13663         * xcoffout.c (next_block_number): Remove.
13664         (xcoffout_block): Use BLOCK_NUMBER, not next_block_number.
13665         (xcoffout_begin_block): Don't set next_block_number.
13666         (xcoffout_begin_function): Likewise. Use BLOCK_NUMBER, not
13667         next_block_number.
13668
13669 Sun Feb 27 16:40:33 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13670
13671         * builtins.c (c_strlen): Use size_diffop and return ssizetype value.
13672         (expand_builtin_strcpy): Pass correct type to size_binop.
13673         (expand_builtin_strcmp): Likewise.
13674         Clean up conditional structure.
13675         * c-decl.c (init_decl_processing): Don't call set_sizetype twice.
13676         (complete_array_type): Don't use size_binop for MAXINDEX.
13677         * c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT.
13678         (c_sizeof_nowarn, c_size_in_bytes): Likewise.
13679         (c_alignof): Use size_one_node.
13680         (build_unary_op): Pass arg of proper type to size_binop.
13681         (really_start_incremental_init, push_init_level): Use sizetype for
13682         constructor{,_bit,_unfilled}_index.
13683         (pop_init_label, output_init_element): Likewise.
13684         (output_pending_init_elements, process_init_element): Likewise.
13685         * calls.c (compute_argument_block_size): Field VAR is ssizetype.
13686         * expr.c (store_expr): Use size_int.
13687         (store_constructor): Use proper types for size_binop args.
13688         (get_inner_reference, expand_expr, case ARRAY_REF): Likewise.
13689         (expand_expr_unaligned): Likewise.
13690         (string_contant): Return object of sizetype.
13691         * expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types.
13692         (ARGS_SIZE_RTX): Call ARGS_SIZE_TREE.
13693         (ARGS_SIZE_TREE): Pass proper types to size_binop.
13694         * fold-const.c (int_const_binop): Refine when size_int is called.
13695         (fold_convert): Likewise.
13696         (size_int_wide): Rework to take KIND as arg, only take low order
13697         bits, handle new sizetype_tab datatype, and chain entries in
13698         size_table.
13699         (size_int_type_wide): New function.
13700         (size_binop): Validate types of arguments.
13701         (ssize_binop): Deleted.
13702         (size_diffop): New function.
13703         (extract_muldiv): Only fold division into multiplication for sizetypes.
13704         * function.c (assign_parms): Use size_diffop and make sure
13705         VAR field is of ssizetype; also pass proper type to size_binop.
13706         (locate_and_pad_parm, pad_to_arg_alignment): Likewise.
13707         (round_down): Deleted from here.
13708         * store-layout.c (sizetype_tab): Now an array.
13709         (sizetype_set, early_root_list): New variables.
13710         (variable_size): Use size_one_node.
13711         (round_up): Pass proper type to size_binop.
13712         (round_down): Moved to here and corrected as above.
13713         (layout_record): Pass proper arg types to size_binop.
13714         (layout_type): Likewise.
13715         If sizetype_set is zero, record the type just laid out.
13716         (make_unsigned_type): Don't call set_sizetype;
13717         (make_signed_type): Likewise; also, call fixup_signed_type.
13718         (initialize_sizetypes): New function.
13719         (set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and
13720         set name of bitsizetype to "bit_size_type".
13721         Fix up type of sizes of all types made before call.
13722         * tm.texi (ROUND_TYPE_SIZE_UNIT): New macro.
13723         * tree.c (fix_sizetype): Deleted.
13724         (build_common_tree_nodes): Call initialize_sizetypes.
13725         (build_common_tree_nodes_2): Don't call fix_sizetype.
13726         * tree.h (TYPE_IS_SIZETYPE): New macro.
13727         (initialize_sizetype): New declaration.
13728         (enum size_type_kind): New type.
13729         (struct sizetype_tab): Deleted.
13730         (sizetype_tab): Now array; adjust sizetype macros.
13731         (size_diffop, size_int_type_wide): New functions.
13732         (size_int_wide): Change number of args and type; access macros changed.
13733         (ssize_int, sbitsize_int): New macros.
13734         * config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int.
13735         (ROUND_TYPE_SIZE_UNIT): New macro.
13736
13737 2000-02-27  Zack Weinberg  <zack@wolery.cumb.org>
13738
13739         * c-lex.c (putback_buffer): Make 'buffer' an unsigned char *.
13740
13741 Sun Feb 27 07:44:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13742
13743         * gcov-io.h (__fetch_long, __store_long, __read_long, __write_long):
13744         Mark as possibly unused.
13745
13746         * cse.c (cse_insn): Delete dead code involving tablejump.
13747         Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE.
13748
13749         * Makefile.in (libcpp.a): Start by deleting it.
13750
13751 2000-02-27  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13752
13753         * cpplib.h (enum file_change_code): Added rename_file.
13754         * cpplib.c (do_line): If a filename is given, set file_change to
13755         rename_file.
13756         (output_line_command): If file_change is rename_file, always
13757         output a # directive with the file name.
13758
13759         * cpplib.c (do_pragma): Accept #pragma without consecutive token.
13760
13761 2000-02-26  Mark Mitchell  <mark@codesourcery.com>
13762
13763         * integrate.c (copy_decl_for_inlining): Preserve TREE_ADDRESSABLE
13764         when copying a PARM_DECL or RESULT_DECL.
13765
13766 2000-02-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13767
13768         * fix-header.c (recognized_function): Also fix prototypes for
13769         functions taking "void".
13770
13771 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
13772
13773         * reload1.c (do_output_reload): Check reg_reloaded_valid before
13774         looking at reg_reloaded_contents.
13775
13776 2000-02-26  Zack Weinberg  <zack@wolery.cumb.org>
13777
13778         * Makefile.in (STMP_FIXINC): New toggle.
13779         (LIBGCC2_DEPS): Delete all references.
13780         (stmp-headers): Delete target.  All references either deleted
13781         or changed to stmp-int-headers.
13782         (all.cross): Don't depend on stmp-headers or STMP_FIXPROTO.
13783         (LIBCPP_OBJS): Take out cppalloc.o.
13784         (cppalloc.o): Delete target.
13785         (stmp-int-hdrs): Depend on $(STMP_FIXINC).
13786         (gen-protos, fix-header): Link with libiberty.a.
13787         * build-make: Don't change FIXINCLUDES.  Override STMP_FIXINC
13788         to empty.
13789
13790         * configure.in: Remove refs to strerror.
13791         * acconfig.h: Take out NEED_DECLARATION_STRERROR.
13792         * system.h: Take out strerror stanza.
13793
13794         * cpperror.c (my_strerror): Delete function.
13795         (cpp_error_from_errno, cpp_notice_from_errno): Use xstrerror.
13796         * cppmain.c (main): Call xmalloc_set_program_name first thing.
13797         * cppalloc.c: Delete file.
13798         * gen-protos.c: Don't provide xrealloc.
13799
13800         * fixinc/fixincl.c, fixinc/fixlib.c, fixinc/procopen.c: Use
13801         xstrerror throughout.
13802
13803 2000-02-26  Bruce Korb  <bkorb@gnu.org>
13804
13805         * fixinc/inclhack.def (undefine_null): the bypass pattern needs to
13806         match for DOS headers, too.
13807         * fixinc/inclhack.sh,fixincl.x: Regenerate.
13808
13809 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
13810
13811         * config/elfos.h (ASM_OUTPUT_LABELREF): Don't define.  The default
13812         is right for most ELF targets.
13813         * config/ns32k/ns32k.h (ASM_OUTPUT_LABELREF): Don't define.
13814         Let the default file use %U properly.
13815         * config/sh/elf.h (ASM_OUTPUT_LABELREF): Don't define.  Use the
13816         default.
13817
13818         * config/fp-bit.c (pack_d): Properly handle rounding of denormal
13819         numbers.
13820
13821 Sat Feb 26 09:39:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13822
13823         * toplev.c (documented_lang_options): Correct spelling error.
13824         (decode_d_option, decode_f_option, main): Likewise.
13825
13826         * toplev.c (print_time): Avoid SIGFPE when all_time is zero.
13827
13828         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Use .set at
13829         to tell assembler it is permitted to expand large constants.
13830
13831 2000-02-25  Mumit Khan  <khan@xraylith.wisc.edu>
13832
13833         * protoize.c: (AUX_INFO_SUFFIX): New macro.
13834         (aux_info_suffix): Use.
13835         (SAVE_SUFFIX): New macro.
13836         (save_suffix): Use.
13837         (munge_compile_parms): Fix typo in NUL. DJGPP supports /dev/null.
13838         (gen_aux_info_file): Use aux_info_suffix instead of ".X".
13839         (edit_file): Handle 8.3 restriction for DOS/DJGPP filenames.
13840
13841         * invoke.texi (Running Protoize): Update documentation.
13842
13843 2000-02-25 Mark Elbrecht <snowball3@bigfoot.com>
13844
13845         * i386/djgpp.h (CPP_PREDEFINES): Remove Unix defines.
13846
13847 2000-02-25  John Wehle  (john@feith.com)
13848
13849         * rtlanal.c (find_last_value): Allow NULL_RTX for valid_to.
13850
13851 2000-02-25  Anthony Green  <green@cygnus.com>
13852
13853         * toplev.c (rest_of_compilation): Rebuild jump labels if
13854         combine_instructions has created a new direct jump.
13855         * combine.c (try_combine): Add new_direct_jump_p argument.  Set it
13856         when appropriate.
13857         (combine_instructions): Call try_combine with new argument.
13858         Return non-null value when new direct jump instruction is created.
13859         * rtl.h: combine_instructions returns an int.
13860
13861 Fri Feb 25 19:49:08 2000  Jeffrey A Law  (law@cygnus.com)
13862
13863         * cse.c (cse_insn): Replace the PATTERN of the insn with an new
13864         jump when changing a computed jump into a jump to a known
13865         target.
13866
13867 Fri Feb 25 19:22:44 2000  Graham Stott <grahams@rcp.co.uk>
13868
13869         * resource.c (mark_referenced_resources): Changed use SET_DEST (...)
13870         to XEXP (..., 0) on RTL nodes which are not SET or CLOBBER.
13871
13872         * i386.md (define_expand "clrstrsi"): Fix typo.
13873
13874 Fri Feb 25 18:49:39 2000  "K. Richard Pixley" <rich@microunity.com>
13875
13876         * rtl.texi: Fix typo.
13877
13878 Fri Feb 25 20:02:35 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13879
13880         * sh.c (calc_live_regs): Multiply value assigned to *COUNT_PTR by
13881         UNITS_PER_WORD.  Change caller initial_elimination_offset.
13882         (rounded_frame_size): Take into account that argument pushed has
13883         changed.  Fix TARGET_ALIGN_DOUBLE problem.
13884
13885 2000-02-25  Geoff Keating  <geoffk@cygnus.com>
13886
13887         * haifa-sched.c (schedule_block): Explain the real reason
13888         we delete REG_SAVE_NOTEs on the first insn of a block.
13889         Don't delete REG_SAVE_NOTES for NOTE_INSN_SETJMP.
13890
13891 2000-02-24  Mark Mitchell  <mark@codesourcery.com>
13892
13893         * input.h (push_srcloc): New function.
13894         (pop_srcloc): Likewise.
13895         * toplev.c (push_srcloc): Define it.
13896         (pop_srcloc): Likewise.
13897
13898 2000-02-24  Richard Henderson  <rth@cygnus.com>
13899
13900         * flow.c (life_analysis): When collecting reg info, clear
13901         regs_ever_live.
13902
13903 Thu Feb 24 22:06:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13904
13905         Fix bug exposed by reload.c no longer rounding the frame
13906         size to BIGGEST_ALIGNMENT:
13907         * sh.c (rounded_frame_size): New function.
13908         (sh_expand_prologue, sh_expand_epilogue): Use it.
13909         (initial_elimination_offset): Likewise.
13910
13911 Thu Feb 24 20:04:11 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13912
13913         Fix breakage from 6th Feb thread_prologue_and_epilogue_insns change:
13914         * sh-protos.h (sh_need_epilogue): Declare.
13915         * sh.c (sh_need_epilogue_known): New static variable.
13916         (sh_need_epilogue): New function.
13917         (function_epilogue): Clear need_epilogue_known.
13918         * sh.md (return): Split into expander / insn pattern.
13919         Make the expander conditional on ! sh_need_epilogue ().
13920
13921 2000-02-24  Nathan Sidwell  <nathan@codesourcery.com>
13922
13923         * machmode.h (get_mode_alignment): Declare.
13924         (GET_MODE_ALIGNMENT): Call it.
13925         * stor-layout.c (get_mode_alignment): New function. Make
13926         sure alignment is always power of 2.
13927
13928 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
13929
13930         * i386.h: Remove useless definition of "I386" and misleading
13931         comment above it.
13932
13933 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
13934
13935         * tree.h (TREE_SET_PERMANENT): New macro.  Document conditions
13936         under which TREE_PERMANENT will be set.
13937         * tree.c (make_node, copy_node, make_tree_vec, tree_cons,
13938         build1): Use TREE_SET_PERMANENT.
13939         * print-tree.c (print_node): Don't report value of
13940         TREE_PERMANENT if ggc_p is true.
13941
13942         * c-common.c (c_get_alias_set): Don't use TREE_PERMANENT to
13943         decide whether to give a type a new alias set.
13944         * objc/objc-act.c (build_objc_string_object): Never copy the string.
13945         * tree.c (make_node): Set DECL_IN_SYSTEM_HEADER irrespective
13946         of value of 'obstack'.
13947
13948
13949 2000-02-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13950
13951         * config/c4x/c4x.c (c4x_process_after_reload): Split all insns.
13952
13953 2000-02-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
13954
13955         * cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING.
13956         * cpplib.c (cpp_get_token): Produce them.
13957         * cppexp.c (cpp_lex): Handle them.
13958
13959 2000-02-23  Nick Clifton  <nickc@cygnus.com>
13960
13961         * config/arm/arm.c (arm_comp_type_attributes): Simply and
13962         comment tests on type attributes.
13963
13964 Wed Feb 23 16:42:21 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13965
13966         * final.c (shorten_branches): Make value passed to LOOP_ALIGN
13967         conform to documentation.
13968         * sh.h (LOOP_ALIGN): If aligning loops, call sh_loop_align
13969         to check for special cases.
13970         * sh-protos.h (sh_loop_align): Declare.
13971         * sh.c (sh_loop_align): Define.
13972
13973 2000-02-22  Andrew Haley  <aph@cygnus.com>
13974
13975         * config/mips/mips.h (GAS_ASM_SPEC): Pass -mgp32/-mgp64 to gas.
13976         (SIZE_TYPE): Is 32 bits when using -mgp32.
13977         (PTRDIFF_TYPE): Ditto.
13978
13979 Wed Feb 23 07:26:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13980
13981         * diagnostic.c (init_output_buffer): Handle case of null PREFIX.
13982
13983 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
13984
13985         * config/i386/i386.h: If IN_TARGET_LIBS is defined, make
13986         BIGGEST_FIELD_ALIGNMENT a constant.
13987
13988 2000-02-21  Jason Merrill  <jason@casey.cygnus.com>
13989
13990         * dwarf2out.c (output_line_info): Put the marker for the end of
13991         the line number info at the actual end.
13992         (gen_struct_or_union_type_die): Use decl_function_context
13993         to check for local classes.
13994         * dwarfout.c (output_type): Likewise.
13995
13996 Tue Feb 22 01:38:57 2000  Jeffrey A Law  (law@cygnus.com)
13997
13998         * pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference
13999         for arguments with a mode, but no type.
14000         (FUNCTION_ARG_CALLEE_COPIES): Similarly.
14001         * t-pa (LIB2FUNCS_EXTRA): Add quadlib.asm.
14002         * pa/long_double.h: New file.
14003         * configure.in (hpux10, hpux11 configurations): hpux10 and hpux11
14004         both have 128bit wide long doubles.
14005         * configure: Rebuilt.
14006
14007 2000-02-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14008
14009         * defaults.h (ASM_OUTPUT_ASCII): Constify a char*.
14010
14011         * flow.c (get_common_dest, chain_reorder_blocks, make_reorder_chain,
14012         fixup_reorder_chain, skip_insns_between_block): Add static prototypes.
14013         (life_analysis): Wrap variable `i' with macro ELIMINABLE_REGS.
14014
14015         * haifa-sched.c (rank_for_schedule): Don't cast away const-ness.
14016
14017         * integrate.c (compare_blocks, find_block): Likewise.
14018
14019         * rtl.c (fatal_with_file_and_line): Add ATTRIBUTE_PRINTF_2.
14020
14021         * rtl.h (set_file_and_line_for_stmt): Constify a char*.
14022
14023         * stmt.c (stmt_status, set_file_and_line_for_stmt,
14024         expand_asm_operands): Likewise.
14025
14026 Mon Feb 21 17:06:27 2000  Jason Eckhardt  <jle@cygnus.com>
14027
14028         * predict.c (estimate_probability): Added the pointer heuristic to
14029         the collection of static branch predictors.
14030
14031 2000-02-21  Catherine Moore  <clm@cygnus.com>
14032
14033         * config/mips/mips.h (ASM_SPEC): Add -mfix700.
14034         * invoke.texi (-mfix7000): Document.
14035
14036 2000-02-21  Gabriel Dos Reis  <gdr@codesourcery.com>
14037
14038         * diagnostic.c (init_output_buffer): Make it possible to output at
14039         least 32 characters if we're given a too long prefix.
14040
14041 2000-02-20  Mark Mitchell  <mark@codesourcery.com>
14042
14043         * varasm.c (initializer_constant_valid_p): Call
14044         lang_expand_constant to simplify the constant.
14045
14046 2000-02-20  Bruce Korb  <bkorb@gnu.org>
14047
14048         * fixinc/inclhack.def(stdio_va_list):
14049         typedef needs to be disabled.
14050         * fixinc/inclhack.sh: regen
14051         * fixinc/fixincl.x: regen
14052
14053 2000-02-20  Geoff Keating  <geoffk@cygnus.com>
14054
14055         * print-rtl.c (print_rtx): Don't print addresses when
14056         flag_dump_unnumbered.
14057
14058 2000-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14059
14060         * sparc.c (sparc_output_scratch_registers): Mark parameter with
14061         ATTRIBUTE_UNUSED.
14062         (sparc_va_arg, sparc_flat_output_function_prologue,
14063         sparc_flat_output_function_epilogue): Cast value to unsigned in
14064         comparison.
14065         (sparc_emit_float_lib_cmp): Remove unused variable `cmp'.
14066
14067         * sparc.md: Add default case in switch.
14068
14069 2000-02-19  Richard Henderson  <rth@cygnus.com>
14070
14071         * c-typeck.c (add_pending_init): Don't abort for multiple
14072         fields at the same offset.
14073         (pending_init_member): Test the correct member.
14074
14075 2000-02-19  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
14076
14077         * except.c (start_dynamic_handler) : Use TYPE_MODE (integer_type_node)
14078         instead of SImode.
14079         (start_catch_handler) : Same.
14080
14081 2000-02-19  Brad Lucier  (lucier@math.purdue.edu)
14082
14083         * Makefile.in: Have flow.o depend on $(EXPR_H)
14084
14085 Sat Feb 19 18:43:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14086
14087         * c-common.c (decl_attributes): Set DECL_SIZE_UNIT.
14088         * c-decl.c (duplicate_decls, finish_enum): Likewise.
14089         (finish_decl): Remove -Wlarger-than code from here.
14090         * flags.h (id_clash_len): Now int.
14091         (larger_than_size): Now HOST_WIDE_INT.
14092         * fold-const.c (size_int_wide): No more HIGH parm; NUMBER is signed.
14093         Clean up checking to see if in table.
14094         (make_bit_field_ref): Remove extra parm to bitsize_int.
14095         * ggc-common.c (ggc_mark_tree_children): Mark DECL_SIZE_UNIT.
14096         * print-tree.c (print_node): Print DECL_SIZE_UNIT and TYPE_SIZE_UNIT.
14097         * stmt.c (expand_decl): Use DECL_SIZE_UNIT for stack checking size
14098         and for computing size of decl.
14099         * stor-layout.c (layout_decl): Set DECL_SIZE_UNIT.
14100         Move -Wlarger-than code to here.
14101         (layout_record): Remove extra arg to bitsize_int.
14102         Set TYPE_BINFO_SIZE_UNIT.
14103         (layout_union): Remove extra arg to bitsize_int.
14104         Use proper type for size of QUAL_UNION.
14105         (layout_type): Remove extra arg to bitsize_int.
14106         * toplev.c (id_clash_len): Now int.
14107         (larger_than_size): Now HOST_WIDE_INT.
14108         (decode_W_option): Clean up id-clash and larger-than- cases.
14109         * tree.c (get_identifier, maybe_get_identifier): Remove unneeded casts.
14110         (expr_align, case FUNCTION_DECL): DECL_ALIGN is not defined.
14111         * tree.h (BINFO_SIZE_UNIT, TYPE_BINFO_SIZE_UNIT, DECL_SIZE_UNIT): New.
14112         (struct tree_decl): New field size_unit.
14113         (size_int_wide): No HIGH operand; NUMBER is now signed.
14114         (size_int_2): Deleted.
14115         (size_int, bitsize_int): Don't use it and rework args.
14116         * varasm.c (assemble_variable, output_constructor): Use DECL_SIZE_UNIT.
14117
14118 Fri Feb 18 20:01:58 2000  Jeffrey A Law  (law@cygnus.com)
14119
14120         * pa/quadlib.asm (_U_QFgt, _U_Qfge): Fix flags for _U_Qfcmp call.
14121
14122 2000-02-18  Geoff Keating  <geoffk@cygnus.com>
14123
14124         * invoke.texi (Warning Options): Add an explanation of why
14125         you might want the -Wfloat-equal flag.
14126
14127 Fri Feb 18 20:08:57 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14128
14129         * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned.
14130         * cppinit.c (new_pending_define): Add cast to avoid warning.
14131         * expmed.c (extract_bit_field): Likewise.
14132         * flow.c (enum reorder_skip_type): New type.
14133         (skip_insns_between_blcok): New it.
14134         Rework to avoid warning about possibly undefined variable.
14135         * function.c (assign_parms): Make thisparm_boundary unsigned.
14136         * genrecog.c (write_switch): Cast XWINT result to int.
14137         * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING.
14138         * mips-tfile.c (init_file): Make two versions of FDR intializer:
14139         one for MIPS and one for Alpha.
14140         (get_tag, copy_object): Add casts to avoid warnings.
14141         * optabs.c (init_one_libfunc): Cast NAME to (char *).
14142         * reload.c (find_reloads): Make TYPE enum reload_type.
14143         * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L".
14144         * unroll.c (unroll_loop): Initialize UNROLL_NUMBER.
14145         * varasm.c (compare_constant_1): Add cast to avoid warning.
14146         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC
14147         to (char *).
14148         (alpha_expand_unaligned_load, alpha_expand_unaligned_store):
14149         Cast switch operand of size to int.
14150         (alpha_expand_epilogue): Always initialize fp_offset and sa_reg.
14151         * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort
14152         in unhandled case.
14153
14154 2000-02-18  Nick Clifton  <nickc@cygnus.com>
14155
14156         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate
14157         anything for an alignment of zero.
14158
14159         * config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not generate
14160         anything for an alignment of zero.
14161
14162 2000-02-18  Martin von Loewis  <loewis@informatik.hu-berlin.de>
14163
14164         * gcc.texi (Bug Reporting): Refer to bugs.html.
14165         (Bug Lists): Likewise.
14166         * system.h (GCCBUGURL): New preprocessor define.
14167         * rtl.c (fancy_abort): Use it.
14168         * gcc.c (main): Likewise.
14169
14170 2000-02-18  Richard Henderson  <rth@cygnus.com>
14171
14172         * flow.c (INSN_VOLATILE, SET_INSN_VOLATILE, uid_volatile): Remove.
14173         (life_analysis_1): Subsume into ...
14174         (life_analysis): ... here.  Force PROP_REG_INFO off after reload.
14175         Use update_life_info for the relaxation.
14176         (update_life_info): Update REG_BASIC_BLOCK for registers live on
14177         entry and regs_live_at_setjmp.
14178         (set_noop_p): Simplify.
14179         (notice_stack_pointer_modification_1): Renamed from s/_1//.
14180         (record_volatile_insns): Split into ...
14181         (delete_noop_moves): ... here,
14182         (notice_stack_pointer_modification): ... here,
14183         (insn_dead_p): ... and here.
14184         (propagate_block): Don't query INSN_VOLATILE.
14185         (mark_used_regs): Mind !PROP_REG_INFO.
14186         * toplev.c (rest_of_compilation): Call mark_constant_function here,
14187         not in life_analysis.
14188
14189 Fri Feb 18 01:29:22 EST 2000  John Wehle  (john@feith.com)
14190
14191         * loop.c (canonicalize_condition): New function,
14192         broken out of get_condition.
14193         (get_condition): Use it.
14194         * expr.h (canonicalize_condition): Prototype it.
14195
14196         * tree.h (tree_int_cst_msb): Declare.
14197         * tree.c (tree_int_cst_msb): New function.
14198
14199 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
14200
14201         * stmt.c (set_file_and_line_for_stmt): Don't crash if cfun->stmt
14202         isn't set.
14203
14204         * invoke.texi (-fmessage-length=n): Document.
14205
14206 2000-02-17  Jason Merrill  <jason@casey.cygnus.com>
14207
14208         * bitmap.c (bitmap_operation): Don't leak bitmap elements.
14209
14210 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
14211
14212         * function.c (thread_prologue_and_epilogue_insns): Put a line note
14213         after the prologue.
14214
14215 2000-02-17  Nick Clifton  <nickc@cygnus.com>
14216
14217         * config/arm/thumb.c: Replace includes of system headers with
14218         #include "system.h".
14219
14220 2000-02-16  Richard Henderson  <rth@cygnus.com>
14221
14222         * configure.in (alpha-linux*, alpha-netbsd) [extra_parts]:
14223         Add crtbeginS.o and crtendS.o.
14224         * alpha/elf.h (STARTFILE_SPEC): Use crtbeginS.o.
14225         (ENDFILE_SPEC): Use crtendS.o.
14226         * alpha/t-crtbe (crtbeginS.o, crtendS.o): New targets.
14227
14228         * alpha/crtbegin.asm (__do_frame_takedown): Merge into ...
14229         (__do_global_dtors_aux): ... here.  Call __cxa_finalize if
14230         shared and present.
14231         (__dso_handle): New variable.
14232         * alpha/crtend.asm (__do_global_ctors_aux): Remove runtime
14233         bias to __CTOR_END__.
14234
14235 2000-02-16  Richard Henderson  <rth@cygnus.com>
14236
14237         * Makefile.in (s-crtS, crtbeginS, crtendS): Prefix usage with $(T).
14238
14239 Wed Feb 16 21:40:04 2000  Hans-Peter Nilsson  <hp@bitrange.com>
14240
14241         * longlong.h (__clz_tab): Declare as static to match definition.
14242
14243 2000-02-16 Mark Elbrecht <snowball3@bigfoot.com>
14244
14245         * i386/xm-djgpp.h (LIBSTDCXX): Delete. Moved to config/i386/djgpp.h.
14246         (XREF_FILE_NAME): Define.
14247
14248         * i386/djgpp.h (DATA_SECTION_ASM_OP): Define.
14249         (EH_FRAME_SECTION_ASM_OP): Define.
14250         (IDENT_ASM_OP): Define.
14251         (TEXT_SECTION_ASM_OP): Define.
14252         (CPP_SPEC): Define.
14253         (CTORS_SECTION_ASM_OP): Define.
14254         (CTOR_SECTION_FUNCTION): Use it.
14255         (DTORS_SECTION_ASM_OP): Define.
14256         (DTOR_SECTION_FUNCTION): Use it.
14257
14258 2000-02-16  Zack Weinberg  <zack@wolery.cumb.org>
14259
14260         * reg-stack.c (emit_swap_insn): Do not put a new insn before a
14261         NOTE_BASIC_BLOCK.
14262
14263         * flow.c (dump_regset, debug_regset, dump_bb, debug_bb,
14264         debug_bb_n): New functions.
14265         (dump_flow_info, print_rtl_with_bb): Use dump_regset.
14266         * basic-block.h: Prototype new functions.
14267
14268 Wed Feb 16 21:07:53 2000  Denis Chertykov  <denisc@overta.ru>
14269
14270         * configure.in: Add support for avr target.
14271         * configure: Rebuilt.
14272
14273         * invoke.texi: Add AVR invocation docs.
14274         * install.texi: Add information about AVR.
14275         * md.texi: Add AVR constraint letters description.
14276         * extend.texi: Add description for AVR specific attributes.
14277
14278 2000-02-16  Jason Merrill  <jason@casey.cygnus.com>
14279
14280         * fixinc/fixinc.svr4: Wrap byteorder.h with extern "C".
14281
14282 2000-02-16  Nick Clifton  <nickc@cygnus.com>
14283
14284         * emit-rtl.c (emit_insn): Move RTL check into make_insn_raw.
14285         (make_insn_raw): Move RTL check here.
14286
14287 2000-02-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14288
14289         * version.c: Include gansidecl.h and version.h.
14290
14291         * version.h: Wrap entire file in macro __GCC_VERSION_H__.
14292
14293         * configure.in (gcc_version): When setting, narrow search to
14294         lines containing `version_string'.
14295
14296         * Makefile.in (mainversion): Likewise.
14297         (GCC_H): New variable.
14298         (gcc.h): Delete target.
14299         (gcc.o, gccspec.o, cppspec.o): Depend on $(GCC_H), not gcc.h.
14300         (version.o): Depend on version.h.
14301         (dbxout.o): Don't depend on gcc.h.
14302
14303 Wed Feb 16 15:04:49 2000  Hans-Peter Nilsson  <hp@bitrange.com>
14304                           Michael Meissner  <meissner@cygnus.com>
14305
14306         * md.texi (Simple Constraints): Add item about whitespace.
14307         * genoutput.c (strip_whitespace): New.
14308         (scan_operands) [MATCH_OPERAND, MATCH_SCRATCH]: Call
14309         strip_whitespace for constraints.
14310         Test pointer using NULL, not 0.
14311
14312 2000-02-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14313
14314         * cpplib.c (do_line): Pedwarn for #line > 32767.
14315
14316         * c-lex.c (readescape): Warn about '\x', but do not reject it.
14317
14318 2000-02-15  Jonathan Larmour  <jlarmour@redhat.co.uk>
14319
14320         * gcc.c (default_compilers): Add new __GNUC_PATCHLEVEL__ define
14321         to default cpp spec.
14322         (do_spec_1): Add support for %v3 spec used by __GNUC_PATCHLEVEL__.
14323         * cpp.texi: Document __GNUC_PATCHLEVEL__.
14324         * cpp.1: Likewise.
14325
14326         * objc/lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to
14327         default spec.
14328
14329 2000-02-15  Denis Chertykov  <denisc@overta.ru>
14330
14331         * configure.in: Add support for avr target.
14332
14333 Wed Feb 16 03:21:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14334
14335         * sh.h (OVERRIDE_OPTIONS): Don't set sh_addr_diff_vec_mode.
14336         (sh_addr_diff_vec_mode): Don't declare.
14337         * sh.c (sh_addr_diff_vec_mode): Delete.
14338
14339 Wed Feb 16 01:27:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14340
14341         * sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn.
14342
14343 Wed Feb 16 00:58:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14344
14345         * sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name.
14346         (smulsi3_highpart_i): Name.
14347         (udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes.
14348         (divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise.
14349         (smulsi3_highpart, umulsi3_highpart): Likewise.
14350
14351         (mulsidi3_i, umulsidi3_i): Make rtl describe operation
14352         correctly independent of endianness.
14353         (mulsidi3, umulsidi3): Now define_insn.  Hide details that
14354         confuse the optimizers.
14355         (mulsidi3+1, umulsidi3+1): New define_split.
14356
14357 Tue Feb 15 23:22:26 2000  Andrew Haley  <aph@cygnus.com>
14358
14359         * config/sh/sh.md: Guard insn splits against illegal registers.
14360         * config/sh/sh.h: Correct comment about macros.
14361
14362 Tue Feb 15 22:30:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
14363                           Andrew MacLeod  <amacleod@cygnus.com>
14364
14365         * Makefile.in (lcm.o): Depend on insn-attr.h.
14366         * basic-block.h (optimize_mode_switching): Declare.
14367         * lcm.c (tm_p.h, insn-attr.h): #include.
14368         (seginfo, bb_info): New structs.
14369         (antic, transp, comp, delete, insert) : New file-scope static variables.
14370         (new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions.
14371         (reg_becomes_live, optimize_mode_switching): Likewise.
14372         * tm.texi: Add description of mode switching macros.
14373         * toplev.c (rest_of_compilation): Call optimize_mode_switching.
14374
14375         * sh-protos.h (remove_dead_before_cse): Remove prototype.
14376         (fldi_ok, fpscr_set_from_mem): New prototypes.
14377         * sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set.
14378         (CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS):
14379         Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
14380         (sh_flag_remove_dead_before_cse): Remove declaration.
14381         (NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros.
14382         (MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise.
14383         (MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
14384         * sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
14385         (barrier_align): Allow for JUMP_INSNS containing a parallel.
14386         (machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set.
14387         (fldi_ok): New function.
14388         (get_fpscr_rtx): Add fpscr_rtx as GC root.
14389         (emit_sf_insn): Only generate fpu switches when optimize < 1.
14390         (emit_df_insn): Likewise.
14391         (expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete.
14392         (sh_flag_remove_dead_before_cse): Delete.
14393         (get_free_reg, fpscr_set_from_mem): New functions.
14394         * sh.md (movdf, movsf): Remove no_new_pseudos code.
14395         (return): Remove emit_fpscr_use / remove_dead_before_cse calls.
14396
14397 2000-02-15  Loren Rittle  <ljrittle@acm.org>
14398
14399         * ginclude/stddef.h: Correct usage of _BSD_RUNE_T_ for FreeBSD.
14400
14401 2000-02-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14402
14403         * Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o,
14404         cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h.
14405
14406         * cccp.c: Include version.h and/or don't declare `version_string'.
14407         * collect2.c: Likewise.
14408         * alpha.c: Likewise.
14409         * arm/aof.h: Likewise.
14410         * arm/coff.h: Likewise.
14411         * arm/elf.h: Likewise.
14412         * arm/pe.h: Likewise.
14413         * arm/tcoff.h: Likewise.
14414         * arm/telf.h: Likewise.
14415         * arm/tpe.h: Likewise.
14416         * arm/vxarm.h: Likewise.
14417         * convex/convex.c: Likewise.
14418         * i386/dgux.c: Likewise.
14419         * i386/sun386.h: Likewise.
14420         * m88k/m88k.c: Likewise.
14421         * mcore/mcore-pe.h: Likewise.
14422         * mips/mips.h: Likewise.
14423         * romp/romp.h: Likewise.
14424         * sh/sh.c: Likewise.
14425         * cpphash.c: Likewise.
14426         * cppinit.c: Likewise.
14427         * dwarf2out.c: Likewise.
14428         * dwarfout.c: Likewise.
14429         * gcc.c: Likewise.
14430         * gcc.h: Likewise.
14431         * mips-tfile.c: Likewise.
14432         * protoize.c: Likewise.
14433         * toplev.c: Likewise.
14434         * tree.h: Likewise.
14435
14436         * version.c (version_string): Constify a char*.
14437
14438         * version.h: New file.
14439
14440 2000-02-14  Nick Clifton  <nickc@cygnus.com>
14441
14442         * configure.in: Add mcore-elf and mcore-pe targets.
14443         * configure: Regenerate.
14444
14445         * NEWS: Add note that MCore port has been contributed.
14446
14447         * invoke.texi: Document command line switches for MCore port.
14448         * install.texi: Add MCore to list of supported targets.
14449
14450 2000-02-14  Geoff Keating  <geoffk@cygnus.com>
14451
14452         * collect2.c (main) [COLLECT_EXPORT_LIST]: If we have frames,
14453         then we will need to import the frame handling functions.
14454         (scan_prog_file) [COLLECT_EXPORT_LIST]: We will also need
14455         to import the frames themselves.
14456
14457 Mon Feb 14 13:31:01 2000  Stan Cox  <scox@cygnus.com>
14458                           Jason Eckhardt  <jle@cygnus.com>
14459
14460         * basic_block.h: Added prototype for reorder_basic_blocks.
14461         * toplev.c: Changes to add -freorder-blocks and graph dump after
14462         block reordering is done.
14463         * flow.c (reorder_block_def): New structure for use during block
14464         reordering.
14465         (REORDER_BLOCK_*): New macros to access members of above structure.
14466         (skip_insns_between_block, get_common_dest, chain_reorder_blocks,
14467         make_reorder_chain, fixup_reorder_chain, reorder_basic_blocks): New
14468         functions for block reordering.
14469
14470 Mon Feb 14 11:24:44 2000  Hans-Peter Nilsson  <hp@bitrange.com>
14471
14472         * gcc.texi (Passes): Fix typo.
14473         * md.texi (Standard Names): Ditto.
14474         * tm.texi (Storage Layout): Ditto.
14475
14476 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
14477
14478         * cpplib.c (do_define): Only free the old definition if it
14479         actually had one.
14480
14481 2000-02-13   Neil Booth  <NeilB@earthling.net>
14482
14483         * cppfiles.c (read_and_prescan): When emitting deferred
14484         newlines, test speccase[] again instead of checking each
14485         possible whitespace character in turn.  When we encounter \r,
14486         look behind for \n first, then ahead.
14487
14488 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
14489
14490         * cse.c (cse_altered): New internal flag.
14491         (cse_insn): Set it if we changed an insn.
14492         (cse_main): Clear cse_altered before each basic block.
14493         Only garbage collect if cse_altered is true afterward.
14494
14495 Sun Feb 13 14:12:28 2000  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14496
14497         * sparc/sol2.h (LIB_SPEC): Link -ldl if profiling.
14498
14499 Sun Feb 13 13:21:55 2000  Jeffrey A Law  (law@cygnus.com)
14500
14501         * combine.c (simplify_comparison): Fix typo.
14502
14503 Sun Feb 13 12:57:52 2000  Neil Booth <NeilB@earthling.net>
14504
14505         * prefix.c (concat, lookup_key): Use xmalloc and xrealloc
14506         consistently.
14507
14508 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14509
14510         * flow.c (flow_loop_tree_node_add): Use better algorithm by passing
14511         previously inserted node instead of root node.  Caller changed.
14512
14513 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14514
14515         * basic-block.h (FLOW_LOOP_FIRST_BLOCK, FLOW_LOOP_LAST_BLOCK): Delete.
14516
14517 2000-02-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14518
14519         * crtstuff.c (__do_global_ctors_aux, __reg_frame_ctor,
14520         __dereg_frame_dtor): Add prototype argument.
14521
14522         * gthr-dce.h (__gthread_active_p, __gthread_once): Likewise.
14523
14524         * gthr-posix.h (__gthread_active_p, __gthread_once): Likewise.
14525
14526         * gthr-solaris.h (__gthread_active_p, __gthread_once): Likewise.
14527
14528         * gthr-vxworks.h (__gthread_once): Likewise.
14529
14530         * gthr-win32.h (__gthread_active_p, __gthread_once): Likewise.
14531
14532 Sat Feb 12 01:44:26 MET 2000  Jan Hubicka  <jh@suse.cz>
14533
14534         * i386.c (ix86_emit_restore_regs_using_mov): Break out from ...
14535         (ix86_expand_epilogue): ... here. Use mov instead of add to restore
14536         stack pointer in functions w/o saved registers, output LEAVE more often
14537         on TARGET_USE_LEAVE machines.
14538
14539 2000-02-07  Dmitri Makarov  <dim@wrs.com> & Bernd Schmidt <bernds@redhat.com>
14540
14541         * config/arm/arm.c (arm_init_cumulative_args); New function:
14542         Initlaise the CUMULATIE_ARGS strcuture for a function
14543         defintion.
14544         (arm_function_arg): New function: Determine where to place a
14545         function's argument.  Also handles deciding the function's
14546         call cookie.
14547         (current_file_function_operand): New function: Return true if
14548         the symbol is a function which has already been compiled.
14549         (arm_is_long_call_p): New function: Return true if the
14550         indicated function should be called via a long call.
14551         (arm_valid_type_attribute_p): New function: Return true if the
14552         attribute is a valid, arm specific, attribute.
14553         (arm_comp_type_attribute): New function: Return true if the
14554         two types have compatable, arm specific, attributes.
14555
14556         * config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a
14557         structure.
14558         (FUNCTION_ARG): Redefine to call arm_function_arg.
14559         (FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct
14560         structure field.
14561         (INIT_CUMULATIVE_ARGS): Redefine to call
14562         arm_init_cumulative_args.
14563         (FUNCTION_ARG_ADVANCE): Redefine to use correct structure
14564         field.
14565         (SETUP_INCOMING_VARARGS): Redefine to use correct structure
14566         field.
14567         (ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled
14568         functions.
14569         (ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION.
14570         (VALID_MACHINE_TYPE_ATTRIBUTE): Define.
14571         (COMP_TYPE_ATTRIBUTES): Define.
14572
14573         * config/arm/arm.md (call): Call arm_is_long_call_p to decide
14574         if a long call is needed.
14575         (call_value): Call arm_is_long_call_p to decide if a long call
14576         is needed.
14577         (call_symbol): Call arm_is_long_call_p to decide if a long call
14578         is needed.
14579
14580         * config/arm/arm-protos.h: Add prototype for arm_is_long_call_p.
14581
14582 2000-02-11  Denis Chertykov  <denisc@overta.ru>
14583
14584         * README.AVR: New file with information about the avr ports.
14585         * config/avr: New directory with avr port files.
14586
14587 2000-02-11  Andreas Jaeger  <aj@suse.de>
14588
14589         * fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@.
14590
14591 2000-02-11  Zack Weinberg  <zack@wolery.cumb.org>
14592
14593         * cpphash.c: Fix formatting, update commentary.
14594         (dump_definition): Take three separate arguments instead of a
14595         MACRODEF structure argument.
14596         * cpphash.h: Update prototype of dump_definition.
14597         * cppinit.c (cpp_finish): Update call of dump_definition.
14598
14599         * cpplib.c (do_define): Always create new hash entry with
14600         T_MACRO type.  Remove redundant check for redefinition of
14601         poisoned identifier.  Update call of dump_definition.
14602         (do_undef): Don't call check_macro_name.  Rename sym_length to
14603         len.
14604         (do_error, do_warning): Don't use copy_rest_of_line or
14605         SKIP_WHITE_SPACE.
14606         (do_warning): Don't use pedwarn for the actual warning,
14607         only the notice about its not being in the standard.  (Fixes
14608         bug with #warning in system headers.)
14609         (do_ident): Stricter argument checking - accept only a single
14610         string after #ident.  Also, macro-expand the line.
14611         (do_xifdef): Use cpp_defined.  De-obfuscate.
14612
14613         (do_pragma): Split out specific pragma handling to separate
14614         functions.  Use get_directive_token.  Update commentary.  Do
14615         not pass on #pragma once or #pragma poison to the front end.
14616         (do_pragma_once, do_pragma_implementation, do_pragma_poison,
14617         do_pragma_default): New.
14618
14619 Feb 11 12:30:53 2000  Jeffrey A Law  (law@cygnus.com)
14620
14621         * jump.c (jump_optimize_1): The first operand in a relational
14622         can be a CONST_INT.
14623         * optabs.c (emit_conditional_move): Handle relationals which
14624         have a known true/false result.
14625
14626 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
14627
14628         * function.c (thread_prologue_and_epilogue_insns): Don't insert
14629         a RETURN insn into a block which already ends with a jump.
14630
14631 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
14632
14633         * haifa-sched.c (BUF_LEN): Increase a lot.
14634
14635 2000-02-11  Nick Clifton  <nickc@cygnus.com>
14636
14637         * configure.in: Add tm_p_file specification for thumb targets.
14638         * configure: Regenerate.
14639
14640         * config/arm/thumb-protos.h: New file: Prototypes for exported
14641         functions defined in thumb.c.
14642
14643 2000-02-11  Robert Lipe  <robertl@sco.com>
14644
14645         * Makefile.in (bootstrap-lean): Remove additional files.
14646         (bootstrap2-lean): Likewise.
14647         (VOL_FILES): List of files for above.
14648
14649 2000-02-11  Nathan Sidwell  <nathan@acm.org>
14650
14651         * cpphash.c (special_symbol): Remove spurious argument to
14652         cpp_lookup.
14653
14654 2000-02-11  Joel Sherrill (joel@OARcorp.com>
14655
14656         * configure.in: (i*86-*-rtems*): Swapped elf and coff
14657         stanzas.
14658         * configure: Rebuilt.
14659
14660 2000-02-11  Rodney Brown  <RodneyBrown@pmsc.com>
14661
14662         * pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef.
14663
14664 Fri Feb 11 02:59:05 2000  Jeffrey A Law  (law@cygnus.com)
14665
14666         * pa.c, pa.h: Remove trigraph sequences within comments.
14667
14668 Fri Feb 11 02:51:56 2000  Pavel Roskin <pavel_roskin@geocities.com>
14669
14670         * invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics.
14671
14672 Fri Feb 11 02:48:30 2000  Brad Lucier  (lucier@math.purdue.edu)
14673
14674         * sbitmap.h: Make SBITMAP_ELT_BITS unsigned.
14675
14676 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14677
14678         * config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE.
14679
14680 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14681
14682         * config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label.
14683         (ASM_OUTPUT_EXTERNAL): Use c4x_external_ref.
14684         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
14685         (ASM_FILE_END): Use c4x_file_end.
14686         * config/c4x/c4x.c (c4x_global_label): New function.
14687         (c4x_external_ref, c4x_file_end): Likewise.
14688
14689         * config/c4x/c4x-protos.h (c4x_global_label): Add prototype.
14690         (c4x_external_ref, c4x_end_file): Likewise.
14691
14692 2000-02-10  Zack Weinberg  <zack@wolery.cumb.org>
14693
14694         * cppexp.c: Don't include cpphash.h.
14695         (parse_charconst, cpp_lex): Use cpp_defined.
14696         (cpp_lex): Use get_directive_token throughout.  Remove
14697         unnecessary cases from switch.  Move assertion-handling code
14698         down to OTHER case.
14699         (cpp_parse_expr): If we see '+' or '-', check the context to
14700         determine if they are unary or binary operators.  Streamline
14701         the jumps a bit.  Do not call skip_rest_of_line.
14702
14703         * cpplib.c: Make skip_rest_of_line and cpp_skip_hspace
14704         static.  Export get_directive_token.  Update commentary.
14705         (cpp_defined): New function.
14706         (do_define): Remove reference to T_PCSTRING.  Call
14707         free_definition to release memory for old definition, when
14708         redefining a macro.
14709         (eval_if_expression): Set only_seen_white to 0 before calling
14710         cpp_parse_expr.  Call skip_rest_of_line after it returns.
14711         (cpp_read_check_assertion): Don't preserve a pointer into the
14712         token buffer across a call to cpp_get_token.
14713
14714         * Makefile.in (cppexp.o): Don't depend on cpphash.h.
14715         * cppfiles.c (redundant_include_p): Use cpp_defined.
14716         * cpphash.c (free_definition): New function.
14717         (delete_macro): Use it.  Update commentary.
14718         * cpphash.h: Typedef HASHNODE here.  Prototype cpp_lookup and
14719         free_definition.
14720         * cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING
14721         from enum node_type.  Prototype cpp_defined and get_directive_token.
14722         Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace.
14723
14724         * fix-header.c (check_macro_names): Use cpp_defined.
14725         (read_scan_file): Set inhibit_warnings and inhibit_errors in
14726         the options structure.
14727
14728 2000-02-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
14729
14730         * c-pragma.c (maximum_field_alignment): Remove duplicate declaration.
14731
14732 2000-02-10  Jason Merrill  <jason@casey.cygnus.com>
14733
14734         * dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin)
14735         rather than die->die_tag.
14736
14737 Thu Feb 10 16:26:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14738
14739         * combine.c (make_extraction, force_to_mode): Avoid warning on
14740         mixed-signedness conditionals.
14741         (make_field_assignment, nonzero_bits): Likewise.
14742         * expmed.c (store_fixed_bit_field): ALIGN arg now unsigned.
14743         (store_split_bit_field, extract_split_bit_field): Likewise.
14744         (extract_fixed_bit_field, store_bit_field,
14745         * expr.c: Change alignment to be unsigned everywhere.
14746         (move_by_pieces, store_constructor_field, store_constructor):
14747         Alignment parm is unsigned.
14748         (emit_block_move, emit_group_load, emit_group_store): Likewise.
14749         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
14750         (do_compare_rtx_and_jump): Likewise.
14751         (move_by_pieces_ninsns, clear_by_pieces): Likewise.
14752         Compare align with GET_MODE_ALIGNMENT.
14753         (expand_expr_unaligned): Pointer to alignment is pointer to unsigned.
14754         (get_inner_reference): Likewise.
14755         (copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts.
14756         (expand_assignment): Local vars for alignment now unsigned.
14757         (store_constructor, store_field, expand_expr, do_jump): Likewise.
14758         (do_compare_and_jump): Likewise.
14759         (store_field): Call new function expr_align.
14760         * expr.h (emit_block_move, emit_group_load, emit_group_store):
14761         Alignment arg now unsigned.
14762         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
14763         (do_compare_rtx_and_jump, store_bit_field): Likewise.
14764         (extract_bit_field): Likewise.
14765         * fold-const.c (add_double): Add cast to eliminate signedness warning.
14766         * machmode.h (GET_MODE_ALIGNMENT): Result is unsigned.
14767         (get_best_mode): Alignment arg is unsigned.
14768         * rtl.h (move_by_pieces): Likewise.
14769         * store-layout.c (maximum_field_alignment, set_alignment):
14770         Now unsigned.
14771         (layout_decl): Alignment arg is now unsigned.
14772         Remove unneeded casts.
14773         (layout_record, layout_union, layout_type): Remove unneeded casts.
14774         Local alignment variables now unsigned.
14775         (get_best_mode): Alignment arg now unsigned.
14776         * tree.c (expr_align): New function.
14777         * tree.h (expr_align): Likewise.
14778         (maximum_field_alignment, set_alignment): Now unsigned.
14779         (get_inner_reference): Alignment argument is now pointer to unsigned.
14780         * varasm.c (assemble_variable): Add cast to eliminate warning.
14781
14782 Thu Feb 10 12:56:47 2000  Jim Wilson  <wilson@cygnus.com>
14783
14784         * expmed.c (store_bit_field): If op0 and fieldmode are the same size,
14785         then store directly into op0.
14786
14787         * calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for
14788         the CALL_INSN, and emit the note immediately after it.
14789
14790 2000-02-10  Nick Clifton  <nickc@cygnus.com>
14791
14792         * config/arm/thumb.md (epilogue): Include a (return) in the
14793         generated insn, and emit it using emit_jump_insn not
14794         emit_insn.
14795
14796 Thu Feb 10 18:28:59 MET 2000  Jan Hubicka  <jh@suse.cz>
14797
14798         * function.c (assign_temp): Change zero-sized arrays to size 1.
14799         * integrate.c (expand_inline_function): Do not update
14800         stack_alignment_needed
14801         * i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY,
14802         add some sanity checking, remove optimization for function with
14803         zero frame size.
14804
14805 2000-02-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14806
14807         * flow.c (mark_regs_live_at_end): Delete unused variables.
14808
14809         * ggc-page.c (ggc_page_print_statistics): bzero -> memset.
14810
14811         * integrate.c (copy_rtx_and_substitute): Wrap variable `alignment'
14812         in macro FRAME_GROWS_DOWNWARD.
14813
14814         * stmt.c (expand_end_bindings): Delete unused variable.
14815
14816         * unroll.c (iteration_info): Mark parameter `loop' with
14817         ATTRIBUTE_UNUSED.
14818
14819 2000-02-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14820
14821         * fixinc/server.c (load_data): Return NULL if the marker line is
14822         not found.
14823         (run_shell): If load_data returns NULL, retry the command once, in
14824         a new shell.
14825
14826         * configure: Rebuilt.
14827
14828 2000-02-09  Bruce Korb  <bkorb@gnu.org>
14829
14830         * gcc/fixincludes:  ** DELETED **
14831         * gcc/fixcpp:  ** DELETED **
14832         * gcc/fixinc-nt.sed:  ** DELETED **
14833         * gcc/just-fixinc:  ** DELETED **
14834         * gcc/Makefile.in:  Removed out-dated commentary
14835         * gcc/configure.in: Removed fast-fixincludes disablement.
14836         * MAINTAINERS(Ian Taylor) moved to "Write after approval" group.
14837
14838 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
14839         * function.c (thread_prologue_and_epilogue_insns): Uncomment
14840         last change.
14841
14842 2000-02-09  Richard Henderson  <rth@cygnus.com>
14843
14844         * jump.c (delete_insn): Don't delete user labels at -O0.
14845
14846 2000-02-09  Robert Lipe  <robertl@sco.com>
14847
14848         * Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS.
14849         Don't link with HOST_LIBS.
14850
14851 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
14852
14853         * configure.in: Correct --help text for --with-dwarf2.
14854         Put tm-dwarf2.h after other tm files, if it's requested.
14855         * configure: Regenerate.
14856         * config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before
14857         defining it.
14858
14859 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
14860
14861         * cpplib.h: Provide HASHNODE typedef and forward decl of
14862         struct hashnode only.  Kill cpp_hashnode typedef.  MACRODEF,
14863         DEFINITION, struct hashnode, struct macrodef, struct
14864         definition, scan_decls prototype, default defn of
14865         INCLUDE_LEN_FUDGE moved elsewhere.
14866
14867         * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct
14868         definition, and struct hashnode moved here. Remove the unused
14869         'predefined' field from struct definition.  Replace the 'args'
14870         union with its sole member.  All users updated (cpphash.c).
14871         Delete HASHSTEP and MAKE_POS macros, and hashf prototype.  Add
14872         multiple include guard.
14873
14874         * cpphash.c (hashf): Make static; use better algorithm; drop
14875         HASHSIZE parameter; return an unsigned int.
14876         (cpp_lookup): Drop HASH parameter.  PFILE parameter is
14877         used. Calculate HASHSIZE modulus here.
14878         (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus
14879         here.
14880         (create_definition): Drop PREDEFINITION parameter.
14881         * cpplib.c (do_define): Don't calculate a hash value here.
14882         Don't pass (keyword == NULL) to create_definition.
14883
14884         * scan.h: Prototype scan_decls here.
14885         * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here.
14886         * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All
14887         callers of cpp_lookup and cpp_install updated.
14888
14889         * cpphash.c (macarg): Hoist all the flag diddling out of the
14890         function...
14891         (macroexpand): ... and out of the loop that calls macarg.
14892         Skip over the initial paren before macro arguments with
14893         cpp_get_non_space_token; point may be some distance before
14894         that paren.  Abort if it's not there.
14895
14896         * cpplib.c (parse_clear_mark): Delete function.
14897         (parse_set_mark, parse_goto_mark): Make static.
14898         (ACTIVE_MARK_P): New macro.
14899         (skip_block_comment, skip_line_comment): Do not bump the line
14900         if ACTIVE_MARK_P is true.
14901         (cpp_pop_buffer): The buffer to be popped may not have an
14902         active mark.
14903         (cpp_get_token): When looking for the initial paren before
14904         macro arguments, only set a mark in a file buffer, Always
14905         return to that mark before proceeding to call macroexpand or
14906         return a NAME token.
14907
14908         * cpplib.h: Remove prototypes of parse_set_mark,
14909         parse_clear_mark, parse_goto_mark.
14910         (struct cpp_options): Rename 'put_out_comments' to
14911         'discard_comments' and invert its sense.
14912         * cppinit.c, cpphash.c, cpplib.c: All users of
14913         put_out_comments changed to use discard_comments, with
14914         opposite sense.
14915
14916 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
14917
14918         * function.c (thread_prologue_and_epilogue_insns): Don't delete
14919         the edge from a block that both jumps and falls through to the
14920         fallthru block.
14921
14922 2000-02-09  Scott Bambrough  <scottb@netwinder.org>
14923
14924         * config/arm/arm.md (movsi): In PIC mode, make sure that a
14925         constant source address is legitimate.
14926
14927 2000-02-09  Philip Blundell  <pb@futuretv.com>
14928
14929         * config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF
14930         correctly.
14931
14932         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when
14933         generating PIC.
14934         (LEGITIMATE_PIC_OPERAND): Disallow references to labels.
14935
14936 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
14937
14938         * cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer
14939         ends with a newline and a NUL.  Don't be so clever manipulating
14940         strings.
14941
14942 Wed Feb  9 14:18:08 MET 2000  Jan Hubicka  <jh@suse.cz>
14943
14944         * reload1.c (reload) Align stack frame to cfun->stack_alignment_needed,
14945         not to BIGGEST_ALIGNMENT.
14946
14947 2000-02-08  Geoff Keating  <geoffk@cygnus.com>
14948
14949         * dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant.
14950         * dwarf2out.c (dwarf_cfi_name): Print name of new constant.
14951         (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed.
14952         (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended.
14953         * frame.c (execute_cfa_insn): Handle
14954         DW_CFA_GNU_negative_offset_extended.
14955
14956 2000-02-08  Richard Henderson  <rth@cygnus.com>
14957
14958         * flow.c (tidy_fallthru_edges): Split out from ...
14959         (delete_unreachable_blocks): ... here.
14960         (find_basic_blocks): Use it.
14961
14962 Tue Feb  8 15:51:50 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14963
14964         * stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY.
14965
14966 2000-02-08  Zack Weinberg  <zack@wolery.cumb.org>
14967
14968         * Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a.
14969         (gen_protos.o): Don't depend on cpplib.h or cpphash.h.
14970         (fix-header.o): Don't depend on cpphash.h.
14971
14972         * scan.c (hashstr): New function.
14973         * scan.h: Prototype it.
14974         * fix-header.c: Don't include cpphash.h.  Use hashstr.
14975         * gen-protos.c: Don't include cpphash.h or cpplib.h.  Use
14976         hashstr.  Report hash table statistics.  Add private
14977         definition of xrealloc.
14978
14979 2000-02-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14980
14981         * i386.h (TARGET_SWITCHES): Fix typo in option name.
14982
14983 2000-02-08  Clinton Popetz  <cpopetz@cygnus.com>
14984
14985         * function.c (thread_prologue_and_epilogue_insns): Don't replace
14986         jumps with returns unless they are jumps to the fallthru block.
14987
14988 Tue Feb  8 07:53:55 2000  Jan Hubicka  <jh@suse.cz>
14989
14990         * i386.md (addqi3_cc): Fix contraints.
14991
14992 Tue Feb  8 01:39:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
14993
14994         * function.c (emit_return_into_block): Wrap in #ifdef HAVE_return.
14995
14996 2000-02-07  Mark Mitchell  <mark@codesourcery.com>
14997
14998         * cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a
14999         carriage return after a macro name.
15000
15001 2000-02-07  Fred Fish  <fnf@be.com>
15002
15003         * i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing
15004         so the gcc2_compiled symbol doesn't confuse BeOS debuggers.
15005
15006 2000-02-07  Zack Weinberg  <zack@wolery.cumb.org>
15007
15008         * cppfiles.c (deps_output): Count spacers in deps_column.
15009
15010 2000-02-07  Neil Booth  <NeilB@earthling.net>
15011
15012         * cppinit.c (initialize_dependency_output): If there is no
15013         suffix, don't try to look for known suffixes.  Use strrchr.
15014         (cpp_start_read): Remove duplicate initialization.
15015
15016 Mon Feb  7 18:36:41 MET 2000  Jan Hubicka  <jh@suse.cz>
15017
15018         * calls.c (compute_argument_block_size): New argument
15019         preferred_stack_boundary.
15020         (expand_call): update cfun->preferred_stack_boundary, update call of
15021         compute_argument_block_size
15022         (emit_library_call): Increate cfun->preferred_stack_boundary
15023         to PREFERRED_STACK_BOUNDARY
15024         (emit_library_call_value): Likewise.
15025         * explow.c (allocate_dynamic_stack_spave): Likewise.
15026         * function.c (prepare_function_start): Set
15027         cfun->preferred_stack_boundary
15028         * function.h (struct function): Add preferred_stack_boundary field.
15029         * integrate.c (expand_inline_function): Update
15030         cfun->preferred_stack_boundary and cfun->stack_alignment_needed.
15031         (copy_rtx_and_substitute): Align frame to stack_alignment_needed only.
15032         * i386.c (compute_frame_size): Use cfun->preferred_stack_boundary.
15033
15034 2000-02-06  Zack Weinberg  <zack@wolery.cumb.org>
15035
15036         * cpplib.c (my_strerror, cpp_error, cpp_error_with_line,
15037         cpp_error_from_errno, cpp_warning, cpp_warning_with_line,
15038         cpp_pedwarn, cpp_pedwarn_with_line,
15039         cpp_pedwarn_with_file_and_line): Move to cpperror.c.
15040         (cpp_print_file_and_line, v_cpp_error, v_cpp_warning,
15041         v_cpp_error_with_line, v_cpp_warning_with_line,
15042         cpp_message_from_errno, cpp_perror_with_name): Delete.
15043
15044         * cpperror.c (cpp_print_containing_files): Take starting
15045         buffer as argument.
15046         (cpp_file_line_for_message): Rename to cpp_print_file_and_line.
15047         (v_cpp_message): Now called directly by all entry points.
15048         Remove -1 case.
15049         (cpp_pfatal_with_name, cpp_message): Delete.
15050         (cpp_notice_from_errno, cpp_ice): New functions.
15051         (cpp_notice): Is now for reporting error conditions, just
15052         without an associated file.
15053         (cpp_error, cpp_error_with_line): Don't do anything if
15054         opts->inhibit_errors is on.
15055         (cpp_pedwarn_with_file_and_line): Take column argument also.
15056
15057         * cpplib.h: Update prototypes of exported functions.
15058         (struct cpp_options): Add inhibit_errors.
15059
15060         * cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for
15061         non-error messages.  Include intl.h.
15062
15063         * cppinit.c, cppmain.c: Likewise.  Also, use
15064         cpp_notice_from_errno instead of cpp_perror_with_name or
15065         cpp_pfatal_with_name, and cpp_notice instead of cpp_message.
15066
15067         * cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to
15068         report internal errors.
15069
15070         * cpplib.c (do_define): Switch bcopy to memcpy.
15071         Give cpp_pedwarn_with_file_and_line a dummy column argument.
15072
15073         * cpplib.c (copy_rest_of_line): Revert previous change: don't
15074         bail out early if we hit a line comment.
15075
15076 2000-02-06  Richard Henderson  <rth@cygnus.com>
15077
15078         * flow.c (flow_delete_insn, make_edge, remove_edge): Export.
15079         * basic-block.h: Declare them.
15080         * emit-rtl.h (active_insn_p): New.
15081         (next_active_insn, prev_active_insn): Use it.
15082         * rtl.h: Declare it.
15083         * function.c (emit_return_into_block): New.
15084         (thread_prologue_and_epilogue_insns): Insert return insns instead
15085         of epilogues when possible.
15086         * jump.c (jump_optimize_1): Remove code to insert a return insn
15087         on the fallthru to the exit block.
15088
15089         * i386.c (ix86_can_use_return_insn_p): Fail for large poped args
15090         and for non-empty stack frames.
15091         * i386.md (return): Expand to return-pop as needed.
15092
15093 2000-02-06  Richard Henderson  <rth@cygnus.com>
15094
15095         * simplify-rtx.c (simplify_relational_operation): Canonicalize
15096         constant to op1 for testing.
15097
15098 2000-02-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15099
15100         * config/c4x/c4x.md (*ldi_on_overflow): New pattern.
15101         (fixuns_truncqfqi2): Use it.
15102
15103 2000-02-06  Richard Henderson  <rth@cygnus.com>
15104
15105         * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack
15106         as a TYPE_LEA insn.
15107
15108         * i386.md (widening and peepholes): Mask the constant instead of
15109         using gen_lowpart.
15110
15111 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
15112
15113         * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump
15114         input pointer before possibly branching off to the backslash
15115         code.
15116         * cpphash.c (macroexpand): Correctly delete \r escapes when
15117         stringifying parameters.
15118         * cpplib.c (copy_rest_of_line): Go directly to skip_block_comment
15119         if we can; bail out early if we hit a line comment.
15120         (handle_directive): Treat '# 123' in an .S file just like
15121         '# <punctuation>'.  Discard the shifted '#' if we hit '#\n'.
15122         Return 1 for '# not_a_directive'.
15123         (get_directive_token): Pop macro buffers here, so that
15124         cpp_get_token can't sneakily move past a newline.
15125         Add sanity checks.
15126         (cpp_get_token): goto randomchar if handle_directive returns 0.
15127
15128         * cppalloc.c: Update copyright.
15129         * cpplib.c: Merge all the static function prototypes into one
15130         block.
15131         * cpplib.h: Remove #if 0 block.
15132
15133         * cpperror.c: Remove #ifdef EMACS block.
15134         * cppmain.c: Likewise.
15135         * cpphash.c: Remove #if 0 blocks.
15136         * cppinit.c: Remove #if 0 blocks, and the -lint option.
15137         * cpplib.c: Remove #if 0 blocks and code referencing
15138         pcp_inside_if or for_lint.  Remove duplicate error message.
15139         Fix error messages for #else after #else or #elif.  Reformat.
15140         Remove archaic TODO list.
15141         * cpplib.h: Remove pcp_inside_if and for_lint flags.
15142
15143 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
15144
15145         * i386/osf1elf.h: Add missing backslash to multiline string.
15146
15147 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15148
15149         * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg.
15150
15151 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15152
15153         * Makefile.in (c-common.o): Depend on $(EXPR_H).
15154
15155         * c-common.c: Include expr.h.
15156
15157         * c-pragma.c (mark_align_stack): Add prototype.
15158
15159         * caller-save.c (add_stored_regs): Likewise.
15160
15161         * combine.c (record_promoted_value): Likewise.
15162
15163         * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro):
15164         Likewise.
15165
15166         * cppinit.c (new_pending_define): Likewise.
15167
15168         * cpplib.c (skip_block_comment, skip_line_comment): Likewise.
15169
15170         * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists,
15171         AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
15172         AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p,
15173         class_scope_p): Likewise.
15174
15175         * dwarf2out.h (dwarf2out_set_demangle_name_func,
15176         dwarf2out_add_library_unit_info): Likewise.
15177
15178         * ggc.h (ggc_page_print_statistics): Likewise.
15179
15180         * haifa-sched.c (propagate_deps): Likewise.
15181
15182         * reg-stack.c (next_flags_user, record_label_references): Likewise.
15183
15184         * rtl.h (set_stack_check_libfunc): Likewise.
15185
15186         * toplev.h (set_fatal_function): Likewise.
15187
15188         * toplev.c (set_fatal_function): Delete prototype.
15189
15190         * diagnostic.c: Deconstify functions returning malloc'ed ptrs.
15191
15192 2000-02-05  Geoff Keating  <geoffk@cygnus.com>
15193
15194         * ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX.
15195         (FUNC_END): Likewise.
15196
15197 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15198
15199         * caller-save.c: Include tm_p.h.
15200
15201 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15202
15203         * Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2).
15204
15205 2000-02-04  Neil Booth  <NeilB@earthling.net>
15206
15207         * cccp.c (main): Check 'dir' for a NULL pointer before passing
15208         it to strcmp.
15209
15210 2000-02-04  Zack Weinberg  <zack@wolery.cumb.org>
15211
15212         * recog.h: Remove NO_MD_PROTOTYPES ifdefs.
15213         * genflags.c: Use the max_operand_1 logic from genemit.c to
15214         calculate how many arguments gen_insn prototypes have.  Remove
15215         NO_MD_PROTOTYPES ifdefs from the generated file.
15216         * genoutput.c: Don't define NO_MD_PROTOTYPES in the generated
15217         file.  Cast gen_insn initializers to insn_gen_fn.
15218         * config/alpha/vms.h: Don't define NO_MD_PROTOTYPES.
15219         * gcc.texi: Remove documentation of NO_MD_PROTOTYPES.
15220
15221 2000-02-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15222
15223         * fixinc/Makefile.in (HDR): Add machname.h.
15224         (clean): Likewise.
15225
15226 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15227
15228         * config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ...
15229         (c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto.
15230         (c4x_cpu_version): Ditto.
15231         * config/c4x/c4x-protos.h: ... here.
15232
15233 2000-02-04  Jason Merrill  <jason@casey.cygnus.com>
15234
15235         * dwarf2out.c (add_abstract_origin_attribute): Don't call
15236         gen_abstract_function on our context if we're a nested function.
15237
15238 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15239
15240         * config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite.
15241         * config/c4x/libgcc.S (ufix_truncqfhi2n): Fix.
15242
15243 2000-02-04  Bruce Korb  <bkorb@gnu.org>
15244
15245         * fixinc/genfixes(machname.h):
15246         Move the functionality from gen-machine.h into this file.
15247         UNdef MN_NAME_PAT if there are no names to change.
15248         Also, be a little kinder when AutoGen is not present.
15249
15250         * fixinc/Makefile.in(machname.h):
15251         Change the generation rule to use genfixes.
15252
15253         * fixinc/fixfixes.c(machine_name):
15254         machine_name_fix's functionality now dependent upon whether
15255         MN_NAME_PAT is defined.
15256
15257         * fixinc/fixtests.c(machine_name):
15258         ditto.
15259
15260         * fixinc/fixlib.c(mn_get_regexps): conditional on definition
15261         of MN_NAME_PAT.
15262
15263         * fixinc/fixlib.h(mn_get_regexps):
15264         ditto
15265
15266         * fixinc/gen-machine.h: DELETED
15267
15268 2000-02-04  Jan Hubicka  <jh@suse.cz>
15269             Richard Henderson  <rth@cygnus.com>
15270
15271         * i386.c (SAVE_REGS_FIRST): Remove.
15272         (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode.
15273         (ix86_compute_frame_size): Likewise.
15274         (ix86_expand_prologue): Likewise.  Use pro_epilogue_adjust_stack.
15275         (ix86_emit_restore_regs): Remove.
15276         (ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack
15277         when a frame pointer is in use.
15278         (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode.  Use mov
15279         instead of pop to restore a register when profitable; emit leave
15280         when profitable.
15281         (ix86_attr_length_default): Handle pro_epilogue_adjust_stack
15282         as a TYPE_LEA insn.
15283         (ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU.
15284         * i386.md (prologue_allocate_stack): Remove.
15285         (epilogue_deallocate_stack): Remove.
15286         (pro_epilogue_adjust_stack): New.
15287
15288 2000-02-04  Richard Henderson  <rth@cygnus.com>
15289
15290         * function.c (diddle_return_value): Rework to use a callback function.
15291         Use current_function_return_rtx if it's been set up.
15292         (do_clobber_return_reg, clobber_return_register): New.
15293         (do_use_return_reg, use_return_register): New.
15294         (expand_function_end): Use them.
15295         * stmt.c (expand_null_return): Likewise.
15296         * function.h: Declare them.
15297         * flow.c (mark_regs_live_at_end): Use diddle_return_value.
15298         (mark_reg): Change arguments as appropriate for callback.
15299         * integrate.c (expand_inline_function): Revert 19 Jan change.
15300
15301 Fri Feb  4 20:25:42 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15302
15303         * tm.texi (Values in Registers): Fix typo: "fo" "for".
15304         (Misc): Say the scheduler, not the Haifa scheduler.
15305
15306 2000-02-04  Clinton Popetz  <cpopetz@cygnus.com>
15307
15308         * jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs
15309         when in_mem is set.  Update all callers.
15310
15311 2000-02-04  Richard Henderson  <rth@cygnus.com>
15312
15313         * i386/openbsd.h (INT_ASM_OP): Define.
15314
15315 Fri Feb  4 10:51:30 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15316
15317         * tm.texi: Fix various typos.
15318
15319 Thu Feb  3 17:17:32 2000  Steve Ellcey <sje@cup.hp.com>
15320
15321         * config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case.
15322         (MD_STARTFILE_PREFIX_1): New macro.
15323
15324 Thu Feb  3 15:08:13 MET 2000  Jan Hubicka  <jh@suse.cz>
15325
15326         * i386.md (movstrsi, clrstrsi): Support variable sized copies, align
15327         destination when needed.
15328         (strmovsi, strsetsi): New expander.
15329         (strmovsi_1, strsetsi_1): New pattern.
15330         * i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP,
15331         TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros.
15332         (TARGET_SWITCHES) Add align-stringops and inline-all-stringops.
15333         * invoke.texi (align-stringops, inline-all-stringops): Document.
15334
15335 Wed Feb  2 23:04:47 2000   Krister Walfridsson <cato@df.lth.se>
15336
15337         * i386/netbsd.h (INT_ASM_OP): Define.
15338
15339 2000-02-02  Zack Weinberg  <zack@wolery.cumb.org>
15340
15341         * cpplib.h (cpp_reader): Add new flag, no_directives.
15342         * cpphash.c (macarg): Set it.
15343         * cpplib.c (handle_directive): If no_directives is on and we
15344         find a directive, issue an error and discard the line.
15345
15346 Wed Feb  2 13:07:10 2000  Jim Wilson  <wilson@cygnus.com>
15347
15348         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for
15349         FP constants.  Add ! TARGET_FPU check for FP constants.
15350
15351 2000-02-02  Clinton Popetz  <cpopetz@cygnus.com>
15352
15353         * flow.c (find_basic_blocks): Don't kill label_value_list
15354         here.
15355         (cleanup_cfg): Kill it here.
15356
15357 Wed Feb  2 08:12:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15358
15359         * expr.c (store_field): Ensure ALIGN is no stricter than the
15360         alignment of EXP.
15361
15362 2000-02-02  Richard Henderson  <rth@cygnus.com>
15363
15364         * jump.c (delete_insn): Partially revert 19 Jan change;
15365         don't convert unused code labels to notes at -O0.
15366
15367 2000-02-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15368
15369         * toplev.c (rest_of_compilation): Run rebuild_jump_labels after
15370         split_all_insns to recreate REG_LABEL notes for flow2 pass.
15371
15372 2000-02-01  Richard Henderson  <rth@cygnus.com>
15373
15374         * i386.c (general_no_elim_operand): New.
15375         (nonmemory_no_elim_operand): New.
15376         (ix86_expand_move): Copy eliminable operands before a push.
15377         * i386-protos.h: Declare new functions.
15378         * i386.h (CAN_ELIMINATE): Simplify.
15379         (PREDICATE_CODES): Update.
15380         * i386.md (push insns): Don't allow eliminable register operands.
15381
15382 2000-02-01  Richard Henderson  <rth@cygnus.com>
15383
15384         * flow.c (mark_regs_live_at_end): Follow expand_function_end and
15385         replace BLKmode with DECL_RTL's mode.
15386
15387 2000-02-01  Zack Weinberg  <zack@wolery.cumb.org>
15388
15389         * frame.c (find_fde): Convert for loop to do-while so compiler
15390         sees it's always executed at least once.
15391         * libgcc2.c (BBINBUFSIZE): Kill.
15392         (__bb_init_prg): Use fgets.
15393         (__bb_exit_trace_func): Don't paste strings.
15394         * unroll.c (unroll_loop): Initialize unroll_type, not
15395         unroll_number, and tweak logic to match.
15396
15397         * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in
15398         all failure paths.
15399         (ix86_flags_dependant): Likewise.  Disentangle control flow.
15400         (ix86_sched_reorder): Break guts out to
15401         ix86_sched_reorder_pentium and ix86_sched_reorder_ppro.
15402         (ix86_sched_reorder_ppro): Initialize pair2 and insnp before
15403         any possible use.
15404
15405         * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't
15406         use string concatenation.  Don't save and restore esi.
15407
15408         * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def.
15409         (machname.h): Remove script to separate file.  Use two-step
15410         sequence so target is not created if script fails.
15411         * fixinc/gen-machname.h: New file.  Handle case where no non-reserved
15412         identifiers are defined.
15413         * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is
15414         an empty string, machine_name doesn't need to do anything at
15415         all.
15416         (is_cxx_header): Add more cases to regexp.
15417         * fixinc/fixlib.h: Update prototype.
15418         * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of
15419         mn_get_regexps.
15420         * fixinc/fixincl.c: Define NO_BOGOSITY.
15421
15422         * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out.
15423         (hp_sysfile): Add missing comma.
15424         (math_exception): Put the wrapper ifdefs at the beginning and
15425         the end of the file.
15426         * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate.
15427
15428 2000-02-01  Richard Henderson  <rth@cygnus.com>
15429
15430         * sparc.c (fp_zero_operand): Turn into a normal predicate.
15431         Use CONST0_RTX.  Update all callers.
15432         * sparc.h, sparc-protos.h: Update accordingly.
15433         * sparc.md (fp mov insns): Use fp_zero_operand directly
15434         where applicable.
15435
15436 Wed Feb  2 02:59:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15437
15438         * tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS
15439         example.
15440
15441 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15442
15443         * Makefile.in (specs.ready): New target.
15444         (fixinc.sh): Depend on `specs.ready' instead of `specs'.
15445
15446 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15447
15448         * fixinc.irix: Use unique filenames for writing into /tmp,
15449         * fixinc.ptx: Likewise.
15450         * fixinc.sco: Likewise.
15451         * fixinc.svr4: Likewise.
15452         * fixinc.winnt: Likewise.
15453
15454 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15455
15456         * tsystem.h: New file.
15457
15458         * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o,
15459         s-crtS): Depend on tsystem.h.
15460
15461         * crtstuff.c: Include tsystem.h.
15462         * frame.c: Likewise.
15463         * libgcc2.c: Likewise.
15464
15465 Tue Feb  1 19:53:27 CET 2000  Jan Hubicka  <jh@suse.cz>
15466
15467         * builtins.c (expand_builtin_memset): Expand for variable sized
15468         lengths too.
15469
15470 2000-02-01  David Billinghurst <David.Billinghurst@riotinto.com.au>
15471
15472         * config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based
15473         on ABI.
15474
15475 Tue Feb  1 00:57:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
15476
15477         * dwarfout.c (SHORT_TYPE_SIZE): Correct default.
15478
15479         * tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE.
15480
15481 2000-01-31  Chandra Chavva <cchavva@cygnus.com>
15482
15483         * combine.c (try_combine) [HAVE_cc0]: Trying to check the missed
15484         case 3->2 combining (combining with splitting) in which 2 is CC0
15485         setter/user and 3 is user. The rest of cases 2->1 and 3->2 are
15486         checked at the begining of the function with the aid of calling
15487         function 'can_combine_p'.
15488
15489 2000-01-31  Dave Brolley  <brolley@redhat.com>
15490
15491         * cccp.c (struct argdata): Redeclare 'newlines' field as 'int'.
15492
15493 2000-01-31  Jason Merrill  <jason@casey.cygnus.com>
15494
15495         * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the
15496         new label.
15497
15498 2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15499
15500         * gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros.
15501
15502         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit):
15503         PROTO -> PARAMS.
15504
15505 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
15506
15507         * i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h,
15508         i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h,
15509         i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h,
15510         i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h,
15511         i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h,
15512         i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
15513         i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h,
15514         i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h,
15515         i386/vxi386.h, i386/win-nt.h, i386/win32.h:
15516         Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES.
15517
15518         * i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h:
15519         Add %(cpp_cpu) to CPP_SPEC.
15520
15521         * i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h:
15522         Add %(cc1_cpu) to CC1_SPEC.
15523
15524 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
15525
15526         * c-decl.c (c_decode_option): Accept optional numeric argument to
15527         -Wformat and set warn_format.
15528         * c-common.c: Don't emit warning about non-constant printf format
15529         string unless warn_format > 1.
15530
15531 2000-01-30  Richard Henderson  <rth@cygnus.com>
15532
15533         * alpha.md (return_internal): Allow after reload only.
15534
15535 2000-01-30  Richard Henderson  <rth@cygnus.com>
15536
15537         * i386.c (ix86_compute_frame_size): Omit padding1 if the
15538         local frame size is zero.
15539
15540 2000-01-30  Richard Henderson  <rth@cygnus.com>
15541
15542         * alpha.c (alpha_expand_epilogue): Don't emit the return insn.
15543         * alpha.h (EPILOGUE_USES): New.  Mark $26 live.
15544         * alpha.md (return): Turn into an expander.
15545         (return_internal): Don't use $26.
15546         (epilogue): Emit the return insn.
15547
15548 2000-01-30  Richard Henderson  <rth@cygnus.com>
15549
15550         * alpha.md (negtf2, abstf2): Fix word order thinko.
15551         (extendsftf2): New.
15552         (trunctfsf2): Avoid intermediate rounding errors.
15553
15554 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
15555
15556         * cppfiles.c (find_position): Drop 'colp' argument, return the
15557         new line base.
15558         (read_and_prescan): Adjust to match.  Don't ever manipulate
15559         line or line_base except via find_position.
15560
15561 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
15562
15563         * c-parse.in: Apply Ulrich's changes from c-parse.y.
15564         * c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c:
15565         Regenerate.
15566
15567 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
15568
15569         * cpperror.c (cpp_file_line_for_message): If 'line' is zero,
15570         just print "<command line>".  If 'filename' is null or an
15571         empty string, print "<stdin>" for the filename.
15572         * cpplib.c (do_define): Don't print the 'location of the
15573         previous definition' message if we're still parsing the
15574         command line.
15575         (cpp_pedwarn_with_file_and_line): Always call
15576         cpp_file_line_for_message.
15577
15578 2000-01-29  Mark Mitchell  <mark@codesourcery.com>
15579
15580         * flow.c (mark_regs_live_at_end): Fix typo.
15581
15582 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
15583
15584         * c-common.c: Adjust variable names, comments, help strings to c99.
15585         * c-lex.c: Likewise.
15586         * c-parse.y: Likewise.
15587         * c-tree.h: Likewise.
15588         * cccp.c: Likewise.
15589         * cpplib.h: Likewise.
15590         * c-decl.c: Likewise.  Recognize options with names "*99" as well.
15591         * cppinit.c: Likewise.
15592
15593 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15594
15595         * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries.
15596         * c4x.c: Define the optab rtx values.
15597         (c4x_add_gc_roots): Add the ggc roots for these optab rtx values.
15598         (c4x_emit_libcall): Use new optab rtx values.
15599         (c4x_emit_libcall3): Likewise.
15600         (c4x_emit_libcall_mulhi): Likewise.
15601         * c4x-protos.h: Add prototypes for optab rtx values and change
15602         prototypes for above c4x_emit_libcall functions.
15603
15604 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15605
15606         * c4x.c (c4x_output_ascii): Restrict line length of output when TI
15607         syntax is used.
15608         (c4x_function_prologue): Use regnames intead of float_reg_names when
15609         TI syntax is used.
15610         (c4x_function_epilogue): Likewise.
15611         (c4x_print_operand): Likewise.
15612         * c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine.
15613         * c4x.md (set_high): Disable for TARGET_TI.
15614
15615 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15616
15617         * c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading
15618         of framepointer + constant to ADDR_REGS class.
15619         * c4x.md (addqi3, addqi3_noclobber_reload): Update.
15620         * c4x.c (std_or_reg_operand): New function.
15621         * c4x-protos.h (std_or_reg_operand): Prototype it.
15622
15623 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15624
15625         * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same
15626                 object names as libgcc2.c.
15627         * libgcc.S: Use newly defined names.
15628
15629 Fri Jan  7 19:48:04 CET 2000  Jan Hubicka  <jh@suse.cz>
15630         * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New
15631         function.
15632         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare.
15633         * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro.
15634         (FLOW_LOOP_LAST_BLOCK): Likewise.
15635
15636 2000-01-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15637
15638         * basic-block.h (struct loop): New fields 'first' and 'last'.
15639         * flow.c (flow_loops_find): Compute loop->first and loop->last.
15640         (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG
15641         and loop->last to check for NOTE_INSN_LOOP_END.
15642
15643 Fri Jan 28 10:57:58 2000  Jason Eckhardt  <jle@cygnus.com>
15644
15645         * predict.c (estimate_probability): Use the new FIRST and LAST fields
15646         of the loop descriptor rather than HEADER and LATCH. Also added
15647         missing break statements as well making some coding style modifications
15648         as suggested by Michael Hayes.
15649
15650 2000-01-28  Richard Henderson  <rth@cygnus.com>
15651
15652         * flow.c (find_basic_blocks): Remove do_cleanup argument.
15653         Break out that code ...
15654         (cleanup_cfg): ... here.
15655         (commit_one_edge_insertion): Detect a return instruction being
15656         emitted to an edge.  Emit a barrier following; clear fallthru.
15657         (commit_edge_insertions): Verify CFG consistency.
15658         * function.c (expand_function_start): Kill unused variable.
15659         (expand_function_end): Likewise.
15660         (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge
15661         to insert the epilogue.
15662
15663         * gcse.c (gcse_main): Adjust for find_basic_blocks change.
15664         (delete_null_pointer_checks): Likewise.
15665         * output.h: Likewise.
15666         * reg-stack.c (reg_to_stack): Likewise.
15667         * toplev.c (rest_of_compilation): Likewise.  Run
15668         thread_prologue_and_epilogue_insns after rebuilding the CFG.
15669
15670 2000-01-28  Richard Henderson  <rth@cygnus.com>
15671
15672         * Makefile.in (flow.o): Revert 24 Jan change.
15673         * flow.c (mark_regs_live_at_end): Likewise.  Force BLKmode
15674         FUNCTION_VALUE result to DECL_RESULT's mode.
15675
15676         * haifa-sched.c (schedule_insns): Don't recompute reg info
15677         after reload.
15678
15679 2000-01-28  Zack Weinberg  <zack@wolery.cumb.org>
15680
15681         * configure.in: Make --enable-cpplib the default.
15682         * configure: Regenerate.
15683         * gcc.dg/990119-1.c: No longer expected to fail.
15684
15685 2000-01-28  Bernd Schmidt  <bernds@cygnus.co.uk>
15686
15687         * jump.c (jump_optimize_1): Delete an optimization that is also done
15688         by merge_blocks in flow.
15689
15690 2000-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15691
15692         * diagnostic.c (build_message_string, output_printf,
15693         line_wrapper_printf): Add ATTRIBUTE_PRINTF_*.
15694         (build_location_prefix): Fix non-literal format string.
15695
15696 2000-01-27  Richard Henderson  <rth@cygnus.com>
15697
15698         * alpha.md (trunctfsf2): New.
15699
15700 2000-01-27  Andrew Hobson  <ahobson@eng.mindspring.net>
15701
15702         * configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH.
15703
15704 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
15705
15706         * cppinit.c (cpp_handle_option): Recognize C++ comments under
15707         -std=gnu89.
15708         * cpplib.c (skip_block_comment, skip_line_comment): Split code
15709         out of...
15710         (skip_comment) ... here.  Permit C++ comments in system
15711         headers always.  Warn about C++ comments in user code under
15712         -std=gnu89 -pedantic.
15713         (copy_comment): Use skip_comment.
15714         (cpp_skip_hspace, cpp_get_token): skip_comment can no longer
15715         return EOF.
15716         (consider_directive_while_skipping, do_else, do_endif): Call
15717         validate_else unconditionally.
15718         (validate_else): Check CPP_PEDANTIC here.  Accept non-comment
15719         text after the conditional in a system header.
15720         * cpplib.h (struct cpp_buffer): Add flag
15721         warned_cplusplus_comments.
15722
15723 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
15724
15725         * emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too.
15726         Use unshare_all_rtl_1.
15727         (unshare_all_rtl_again): New function.
15728         (unshare_all_rtl_1): New function split out of unshare_all_rtl.
15729
15730         * function.c (purge_addressof_1): Use unshare_all_rtl_again
15731         rather than resetting the 'used' flags ourself.
15732
15733         * toplev.c (rest_of_compilation): Add current_function_decl
15734         to the unshare_all_rtl call.
15735         * tree.h: Prototype unshare_all_rtl.
15736         * rtl.h: Prototype unshare_all_rtl_again here.
15737
15738 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
15739
15740         * genoutput.c (output_prologue): Include ggc.h in generated
15741         files.
15742         * Makefile.in (insn-output.o): Depends on ggc.h.
15743
15744 2000-01-27  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
15745             Hans-Peter Nilsson  <hp@bitrange.com>
15746
15747         * ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete.
15748         Remove redundant include of xm-ns32k.h.
15749         * ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions.
15750         Remove redundant include of xm-ns32k.h.
15751         * ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine.
15752         Remove redundant include of xm-ns32k.h.
15753         * ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions.
15754
15755         * ns32k/ns32k.h: Update comment on multiply-add instructions.
15756         (TARGET_SWITCHES): Add documentation strings.
15757         (DWARF_FRAME_REGNUM): Override default definition.
15758         (REG_CLASS_CONTENTS): Add comments.
15759         (SUBSET_P): Format to reduce line length.
15760         (SMALL_REGISTER_CLASSES): Make a run time option.
15761         (GO_IF_NONINDEXED_ADDRESS): Reformat.
15762         (GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before
15763         dereferencing it.  Braces to avoid "ambiguous else" were misplaced.
15764         (regclass_map): fix typo in comment.
15765         * ns32k/ns32k.c: Add spaces before parentheses for consistant style.
15766         Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...).
15767         (trace, reg_or_mem_operand): Delete, unused function.
15768         (calc_address_cost): Small offsets are cheaper than large ones.
15769         (expand_block_move): Generate more efficient code when bytes is a
15770         known at compile time.
15771         * ns32k/ns32k.md: Alternate constraints for multiply-add instructions.
15772         (udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand
15773         instead of reg_or_mem_operand.
15774
15775         * ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs,
15776         not general_operand.  Similarly use "=rm" or stricter, not "=g".
15777         For input operands, use stricter constraints than "g" if not
15778         general_operand.  Similarly use stricter predicate than
15779         "general_operand" when stricter constraints than "g" are present,
15780         except for matching constraints.
15781         (movstrsi): Use "memory_operand" for operands 0 and 1.
15782         (truncsiqi2, truncsihi2, trunchiqi2): Remove.
15783         (udivmoddisi4_internal): Use nonimmediate_operand for operand 0,
15784         not reg_or_mem_operand.
15785         (udivmoddisi4): Ditto.
15786         Use nonimmediate_operand for operand 1, not reg_or_mem_operand.
15787         Use nonimmediate_operand for operand 3, not register_operand.
15788         (udivmoddiqi4_internal): Use register_operand for operand 1, not
15789         reg_or_mem_operand.
15790
15791 2000-01-27  Fred Fish  <fnf@be.com>
15792
15793         * gthr-posix.h: Fix typo; compatibily -> compatibility.
15794         * gthr-single.h: Likewise.
15795         * gthr-solaris.h: Likewise.
15796         * gthr-vxworks.h: Likewise.
15797         * gthr-win32.h: Likewise.
15798         * gthr.h: Likewise.
15799
15800 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
15801
15802         * cppinit.c: Add " (cpplib)" to end of string printed by
15803         -v / --version.
15804
15805 2000-01-27  Richard Henderson  <rth@cygnus.com>
15806
15807         * alpha.c (alpha_emit_conditional_move): Use VOIDmode when
15808         testing for a signed comparison.
15809         (alpha_emit_floatuns): New.
15810         * alpha-protos.h: Declare it.
15811         * alpha.md (floatunsdisf2, floatunsdidf2): New.
15812         (extendsfdf2): Tidy.
15813
15814 2000-01-27  Jakub Jelinek  <jakub@redhat.com>
15815
15816         * config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but
15817         no -g option specifying debugging format, default to -gstabs+.
15818
15819 Wed Jan 26 22:19:14 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
15820
15821         * calls.c (special_function_p): New argument fork_or_exec.
15822         (expand_call): When profile_arc_flag is set and the function
15823         is in the fork_or_exec group, call __bb_fork_func first.
15824         * libgcc2.c, _bb module (__bb_fork_func): New function.
15825         (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock
15826         output file.
15827         * config/svr4.h (TARGET_HAS_F_SETLKW): Define.
15828         * tree.h (special_function_p): Update prototype.
15829
15830 2000-01-26  Richard Henderson  <rth@cygnus.com>
15831
15832         * alpha.c (alpha_split_tfmode_pair): New.
15833         * alpha-protos.h: Declare it.
15834         * alpha.md (abstf2, negtf2): New.
15835         (movtf insn): Add input G constraint.
15836         (movtf splitter): Use alpha_split_tfmode_pair.
15837
15838 2000-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15839
15840         * i386/cygwin.h: PROTO -> PARAMS.
15841
15842 2000-01-26  Jakub Jelinek  <jakub@redhat.com>
15843
15844         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle
15845         TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons
15846         using _Qp_cmp/_Q_cmp and testing the return value.
15847         (print_operand): Call reverse_condition_maybe_unordered if
15848         we are handling CCFPmode or CCFPEmode.
15849         Handle ORDERED, UN* and LTGT comparisons.
15850         * config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32
15851         if not TARGET_HARD_QUAD.
15852         (seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble,
15853         bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt):
15854         Call sparc_emit_float_lib_cmp even on TARGET_ARCH32.
15855         Adjust gen_b* calls so that they reflect return comparison of
15856         sparc_emit_float_lib_cmp.
15857
15858 2000-01-26  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
15859
15860         * config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume
15861         incoming operands array is large enough for one more operand.
15862         (alpha_emit_xfloating_arith): Likewise.
15863
15864 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
15865
15866         * fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a
15867         file with one line and no trailing newline.
15868         Patch by Kaveh Ghazi <ghazi@caip.rutgers.edu>.
15869         * fixinc/fixtests.c (machine_name_test): Fix fencepost error
15870         checking if the match is on the line.
15871         * fixinc/gnu-regex.c: Provide regerror not __regerror.
15872
15873 2000-01-25  Richard Henderson  <rth@cygnus.com>
15874
15875         * sparc.c (output_cbranch): Fix accidental squashing of the
15876         fp branch pre-delay nop.
15877
15878 2000-01-25  Richard Henderson  <rth@cygnus.com>
15879
15880         * tree.def (UNNE_EXPR): Remove.
15881         * c-typeck.c (build_binary_op): Don't handle it.
15882         * expr.c (expand_expr, do_jump, do_store_flag): Likewise.
15883
15884         * rtl.def (UNNE): Remove.
15885         (LTGT): Add.
15886         * jump.c (reverse_condition): Update accordingly.
15887         (swap_condition): Likewise.
15888         (comparison_dominates_p): Handle unordered comparisons.
15889         (reverse_condition_maybe_unordered): New.
15890         * rtl.h (reverse_condition_maybe_unordered): Declare.
15891
15892         * sparc.c (select_cc_mode): Update for UNNE/LTGT.
15893         (output_cbranch): Use reverse_condition_maybe_unordered and LTGT.
15894         * sparc.h (REVERSIBLE_CC_MODE): Always true.  Update docs.
15895         * sparc.md (bltgt): New.
15896
15897 2000-01-25  Nick Clifton  <nickc@redhat.com>
15898
15899         * emit-rtl.c (emit_insn): Only check machine class insns for
15900         improper emission of a RETURN.
15901
15902 2000-01-25  Richard Henderson  <rth@cygnus.com>
15903
15904         * Makefile.in (flow.o): Depend on $(EXPR_H).
15905         * flow.c (mark_regs_live_at_end): Use hard_function_value, i.e.
15906         duplicate the structure of diddle_return_value for keeping regs live.
15907
15908 2000-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15909
15910         * loop.c (current_loop_info): Delete.
15911         (consec_sets_invariant_p): Add loop argument, update callers.
15912         (get_condition_for_loop): Likewise.
15913         (count_nonfixed_reads, update_giv_derive): Likewise.
15914         (simplify_giv_expr, general_induction_var): Likewise.
15915         (consec_sets_giv, recombine_givs): Likewise.
15916         (move_movables): Delete loop_start and loop_end arguments,
15917         add loop argument, and update callers.
15918         (find_mem_givs, check_final_value): Likewise.
15919         (record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise.
15920         (loop_invariant_p): Rename from invariant_p, add loop argument, and
15921         update callers.
15922         (basic_induction_var): Add loop argument, delete loop_level argument,
15923         and update callers.
15924         * unroll.c (iteration_info): Delete loop_start and loop_end arguments,
15925         add loop argument, and update callers.
15926         (find_splittable_regs, find_splittable_givs): Likewise.
15927         (reg_dead_after_loop, loop_find_equiv_value): Likewise.
15928         (final_biv_value, final_giv_value, back_branch_in_range_p): Likewise.
15929         (biv_total_increment): Delete loop_start and loop_end arguments;
15930         update callers.
15931         (precondition_loop_p): Delete loop_start and loop_info arguments;
15932         update callers.
15933         * loop.h (get_condition_for_loop): Add loop argument.
15934         (biv_total_increment): Delete loop_start and loop_end arguments.
15935         (precondition_loop_p): Delete loop_start and loop_info arguments;
15936         add loop argument.
15937         (final_biv_value): Delete loop_start and loop_end arguments;
15938         add loop argument.
15939         (final_giv_value, back_branch_in_range_p): Likewise.
15940
15941 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
15942
15943         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16.
15944
15945 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
15946
15947         * Makefile.in (c-gperf.h) : Change the "See" pointer to
15948         point to the new "generated_files" doc.
15949
15950 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
15951
15952         * config/fp-bit.c (_unord_f2): Fix typo.
15953
15954 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
15955
15956         * c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c,
15957         c-typeck.c, objc/objc-act.c: Remove all references to obstack
15958         functions obsoleted by GC, such as push_obstacks_nochange,
15959         end_temporary_allocation, savealloc, saveable_tree_cons, etc.
15960         and code which existed only to decide whether or not to call
15961         them.  Remove now-unused NESTED argument from start_function;
15962         all callers changed.  Do not change behavior based on ggc_p.
15963         The use of the ixp_obstack in c-iterate.c and the util_obstack
15964         in objc/objc-act.c remain; these are not obsoleted by garbage
15965         collection.
15966         * c-tree.h: Update prototype for start_function.
15967
15968         * c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild.
15969
15970 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
15971
15972         * config/mips/mips.md (zero_extendsidi2_internal): Disable for
15973         mips16.
15974
15975 2000-01-25  Richard Henderson  <rth@cygnus.com>
15976
15977         * sparc-protos.h (select_cc_mode): Declare.
15978         * sparc.c (select_cc_mode): New.  Handle unordered compares.
15979         (output_cbranch): Always reverse via code change.  Handle
15980         unordered compares.  Factor tests and string updates.
15981         * sparc.h (SELECT_CC_MODE): Split out to select_cc_mode.
15982         (REVERSIBLE_CC_MODE): Also exclude CCFPmode.
15983         * sparc.md (bunordered, bordered): New.
15984         (bungt, bunlt, buneq, bunge, bunle): New.
15985
15986 2000-01-25  Richard Henderson  <rth@cygnus.com>
15987
15988         * dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root.
15989         * ggc-common.c (ggc_add_rtx_varray_root): New.
15990         (ggc_mark_rtx_varray): New.
15991         (ggc_mark_rtx_varray_ptr): New.  Shift all ggc_mark_foo_ptr
15992         functions down below ggc_mark_foo.
15993         * ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare.
15994
15995 2000-01-25  Richard Henderson  <rth@cygnus.com>
15996
15997         * alpha.c (secondary_reload_class): Don't allocate a secondary
15998         for integral mode memories into FLOAT_REGS.  Rearrange the more
15999         complicated memory expression inward.
16000
16001 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
16002
16003         * inclhack.def: Fixes to play nicer with FreeBSD, and
16004         corrections to comments.
16005         (cxx_unready): Add select expression.
16006         (irix_sockaddr): Add bypass expression.
16007         (machine_ansi_h_va_list): New fix.
16008         (stdio_va_list): No need to edit _BSD_VA_LIST_.
16009         Split out addition of "#include <stdarg.h>" to...
16010         (stdio_stdarg_h): ... here.
16011         (systypes_for_aix): Rename to systypes_stdlib_size_t.  Apply
16012         to stdlib.h also.  Do not munge _BSD_SIZE_T_.
16013         (sysz_stdlib_for_sun): Delete duplicate fix for unprotected
16014         size_t.
16015         (ultrix_ifdef): Tighten up select expression.
16016
16017         * fixincl.tpl: Exorcise 'exesel'.  Rewrite calculations of
16018         re_ct and max_mach to avoid use of shell.  Make printed names
16019         match names in inclhack.def.  Use static copyright date.
16020         Don't count c_test and test expressions as requiring regex_t
16021         slots.  Add some commentary.
16022         * inclhack.tpl: Do not include the 'This script contains N
16023         fixup scripts' line if PROGRAM is defined.  Use static
16024         copyright date.
16025
16026 2000-01-24  Jason Merrill  <jason@casey.cygnus.com>
16027
16028         * dwarf2out.c: include "varray.h", not dyn-string.h.
16029         (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose.
16030         (addr_const_to_string, addr_to_string): Lose.
16031         (ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c.
16032         (struct dw_val_struct): val_addr is now an rtx.
16033         (add_AT_addr, AT_addr, free_AT, output_aranges): Adjust.
16034         (used_rtx_varray): New varray.
16035         (dwarf2out_init): Initialize it.
16036         (save_rtx): New fn.
16037         (mem_loc_descriptor, add_const_value_attribute): Call it instead of
16038         addr_to_string.
16039         * arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h,
16040         sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST.
16041         * Makefile.in (dwarf2out.o): Update dependencies.
16042
16043 2000-01-24  Richard Henderson  <rth@cygnus.com>
16044
16045         * i386.c (i386_dwarf_output_addr_const): New.
16046         * i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New.
16047
16048         * dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR
16049         if defined.
16050         * dwarfout.c (output_mem_loc_descriptor): Likewise.
16051         * i386.c (i386_simplify_dwarf_addr): New.
16052         * i386.h (ASM_SIMPLIFY_DWARF_ADDR): New.
16053
16054 Mon Jan 24 16:56:10 2000  Jim Wilson  <wilson@cygnus.com>
16055
16056         * dwarf2out.c (gen_struct_or_union_type_die): Set complete if
16057         TYPE_STUB_DECL is NULL.
16058
16059 2000-01-24  Richard Henderson  <rth@cygnus.com>
16060
16061         * builtins.c (expand_tree_builtin): Move ...
16062         * c-common.c (expand_tree_builtin): ... here.
16063
16064 2000-01-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16065
16066         * loop.h (LOOP_INFO): New accessor macro.
16067         * basic-block.h (struct loop): Rename field `info' to `aux'.
16068         * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop).
16069         (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise.
16070         * unroll.c (loop_iterations, unroll_loop): Likewise.
16071
16072 2000-01-24  Christopher Faylor <cgf@cygnus.com>
16073
16074         * config/i386/t-cygwin: Accomodate new winsup directory layout
16075         when searching for include files.
16076
16077 2000-01-24  Richard Henderson  <rth@cygnus.com>
16078
16079         * rtl.def: Add unordered fp comparisions.
16080         * tree.def: Likewise.
16081         * tree.h: Add ISO C 9x unordered fp comparision builtins.
16082
16083         * builtins.c (expand_tree_builtin): New function.
16084         * c-typeck.c (build_function_call): Use it.
16085         (build_binary_op): Support unordered compares.
16086         * c-common.c (c_common_nodes_and_builtins): Add unordered compares.
16087
16088         * combine.c (known_cond): Handle reverse_condition returning UNKNOWN.
16089         (reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed.
16090         * cse.c (fold_rtx): Check FLOAT_MODE_P before reversing.
16091         (record_jump_equiv): Handle reverse_condition returning UNKNOWN.
16092         * jump.c (reverse_condition): Don't abort for UNLE etc, but
16093         return UNKNOWN.
16094         (swap_condition): Handle unordered compares.
16095         (thread_jumps): Check can_reverse before reversing.
16096         * loop.c (get_condition): Likewise.  Allow UNORERED/ORDERED to be
16097         reversed for FP.
16098
16099         * optabs.c (can_compare_p): New argument CODE.  Verify branch or
16100         setcc is present before acking for cmp_optab.  Update all callers.
16101         (prepare_float_lib_cmp, init_optabs): Handle UNORDERED.
16102         * expmed.c (do_cmp_and_jump): Update for can_compare_p.
16103         * expr.c (expand_expr): Likewise.  Support unordered compares.
16104         (do_jump, do_store_flag): Likewise.
16105         * expr.h (enum libfunc_index): Add unordered compares.
16106
16107         * Makefile.in (FPBIT_FUNCS): Add _unord_sf.
16108         (DPBIT_FUNCS): Add _unord_df.
16109         * config/fp-bit.c (_unord_f2): New.
16110         * fp-test.c (main): Try unordered compare builtins.
16111
16112         * alpha-protos.h (alpha_fp_comparison_operator): Declare.
16113         * alpha.c (alpha_comparison_operator): Check mode properly.
16114         (alpha_swapped_comparison_operator): Likewise.
16115         (signed_comparison_operator): Likewise.
16116         (alpha_fp_comparison_operator): New.
16117         (alpha_emit_conditional_branch): Handle unordered compares.
16118         * alpha.h (PREDICATE_CODES): Update.
16119         * alpha.md (fp compares): Use alpha_fp_comparison_operator.
16120         (bunordered, bordered): New.
16121
16122 2000-01-24  Richard Henderson  <rth@cygnus.com>
16123
16124         * alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation.
16125         * alpha.md (movtf): New expander, insn, and splitter.
16126
16127 Mon Jan 24 19:49:47 MET 2000  Jan Hubicka  <jh@suse.cz>
16128
16129         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
16130         dead registers.
16131
16132 Mon Jan 24 17:37:31 MET 2000  Jan Hubicka  <jh@suse.cz>
16133
16134         * i386.h (FIRST_PSEUDO_REGISTER): Set to 21.
16135         (FIXED_REGISTERS, CALL_USED_REGISTERS,
16136          REG_ALLOC_ORDER): Add frame pointer
16137         (FRAME_POINTER_REGNUM): Set to 20
16138         (HARD_FRAME_POINTER_REGNUM): New macro.
16139         (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER
16140         to HARD_FRAME_POINTER.
16141         (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM
16142         (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise.
16143         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
16144         (HI_REGISTER_NAMES): Add "frame".
16145         (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination.
16146         (debug_reg): Handle FRAME_POINTER_REGNUM.
16147         (reg_class): Add arg pointer and frame pointer to NON_Q_REGS,
16148         GENERAL_REGS and INDEX_REGS.
16149         * i386.c (SAVED_REGS_FIRST): new macro.
16150         (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx
16151         (ix86_decompose_address, memory_address_length): Likewise.
16152         (regclass_map): Add frame pointer.
16153         (call_insn_operand): Handle frame_pointer_rtx.
16154         (reg_no_sp_operand): Likewise.
16155         (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx.
16156         (print_operand, legitimize_pic_address): Fix formating.
16157         (ix86_compute_frame_size): Make static, update prototype, new
16158         parameters padding1, padding2, use ix86_nsaved_regs, use
16159         stack_alignment_needed.
16160         (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM
16161         to HARD_FRAME_POINTER_REGNUM conversions.
16162         (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues.
16163         (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues.
16164         (print_reg): Abort on FRAME_POINTER_REGNUM
16165
16166 Mon Jan 24 16:50:08 MET 2000  Jan Hubicka  <jh@suse.cz>
16167
16168         * i386.h (PREDICATE_CODES): Add aligned_operand.
16169         * i386.c (aligned_operand): New function.
16170         (ix86_aligned_p): Kill.
16171         * i386.md (movhi_1): Emit mov for aligned operands.
16172         (promoting peep2s): Use aligned_operand.
16173
16174 2000-01-23  Zack Weinberg  <zack@wolery.cumb.org>
16175
16176         * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular
16177         expression to allow underscores in macro names.
16178         (fix_char_macro_defines): Increment scanning pointer.
16179
16180 2000-01-23  Richard Henderson  <rth@cygnus.com>
16181
16182         * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define.
16183         * alpha/osf5.h: New file.
16184         * configure.in (alpha-*-osf5): Add it to tm_file.
16185
16186         * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target.
16187
16188         * alpha-protos.h (alpha_emit_xfloating_arith): Declare.
16189         (alpha_emit_xfloating_cvt, function_arg): Declare.
16190         * alpha.c (alpha_emit_conditional_branch): Call
16191         alpha_emit_xfloating_compare for TFmode compares.
16192         (alpha_lookup_xfloating_lib_func): New.
16193         (alpha_compute_xfloating_mode_arg): New.
16194         (alpha_emit_xfloating_libcall): New.
16195         (alpha_emit_xfloating_arith): New.
16196         (alpha_emit_xfloating_compare): New.
16197         (alpha_emit_xfloating_cvt): New.
16198         (print_operand): Add default abort case.
16199         (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE.
16200         * alpha.h (TARGET_HAS_XFLOATING_LIBS): New.
16201         (BIGGEST_ALIGNMENT): Increase to 128 bits.
16202         (RETURN_IN_MEMORY): True for TF/TCmode.
16203         (ALPHA_ARG_SIZE): TF/TCmode is passed indirect.
16204         (FUNCTION_ARG): Move to function_arg.
16205         (FUNCTION_ARG_PASS_BY_REFERENCE): New.
16206         (ASM_OUTPUT_LONG_DOUBLE): New.
16207         (ASM_OUTPUT_DOUBLE): Always output bits.
16208         * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New.
16209         (fix_trunctfdi2, floatditf2, floatunsditf2): New.
16210         (extenddftf2, trunctfdf2): New.
16211
16212 2000-01-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
16213
16214         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved...
16215         * config/sparc/sol2.h: ... here.
16216
16217 2000-01-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16218
16219         * basic-block.h (struct loops): New field `levels'.
16220         * flow.c (flow_loops_level_compute): Traverse all outer loops.
16221         (flow_loop_level_compute): Initialise level to 1.
16222         (flow_loops_find): Set loops->levels.
16223         (flow_loops_dump): Print loops->levels.
16224
16225 2000-01-23  Richard Henderson  <rth@cygnus.com>
16226
16227         * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS.
16228         (throw_helper): Iterate over DWARF_FRAME_REGISTERS.
16229
16230 2000-01-23  Richard Henderson  <rth@cygnus.com>
16231
16232         * i386.c (dbx_register_map, svr4_dbx_register_map): New.
16233         * i386.h (DBX_REGISTER_NUMBER): Use them.
16234         * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise.
16235         * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise.
16236         * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise.
16237         * i386/sequent.h: Kill incorrect comment.
16238
16239 2000-01-23  Mark Mitchell  <mark@codesourcery.com>
16240
16241         * ggc-page.c (struct page_entry): Make `context_depth' an
16242         `unsigned short'.
16243         (struct globals): Likewise.
16244
16245 2000-01-23  Clinton Popetz  <cpopetz@cygnus.com>
16246
16247         * loop.c (check_dbra_loop): When checking a loop for
16248         reversability, check the source of any stores to ensure
16249         they don't depend on an initial value.
16250
16251 2000-01-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16252
16253         * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine.
16254
16255 2000-01-22  Zack Weinberg  <zack@wolery.cumb.org>
16256
16257         * fixinc/fixincl.c: Move declarations of 'pz_fname' and
16258         'pz_scan' into scope of entire function.  Only affects
16259         compiles with -DDEBUG.
16260
16261 2000-01-22  Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>
16262
16263         * config/elfos.h (UNIQUE_SECTION): Restore uninitialised data
16264         section naming to that prior to 2000-01-07 patch.
16265         * config/mips/elf.h (UNIQUE_SECTION): Ditto.
16266         * config/mips/elf64.h (UNIQUE_SECTION): Ditto.
16267         * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto.
16268         * config/i386/interix.c (UNIQUE_SECTION): Ditto.
16269         * config/i386/winnt.c (UNIQUE_SECTION): Ditto.
16270
16271 2000-01-22  Bernd Schmidt  <bernds@cygnus.co.uk>
16272
16273         * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a
16274         constant.
16275
16276 2000-01-21  Jim Wilson  <wilson@cygnus.com>
16277
16278         * fixinc/inclhack.tpl: Test for directory before trying to cd into it.
16279         * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate.
16280
16281 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
16282
16283         * cpphash.c (change_newlines): Delete function.
16284         (struct argdata): Delete 'newlines' and 'use_count' fields.
16285         (macroexpand): Remove code referencing those fields.
16286
16287 2000-01-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16288
16289         * loop.c (loops_info): New variable.
16290         (loop_optimize): Allocate loops->array and free it on exit.
16291         Allocate memory for loops_info and assign to each loop,
16292         replacing alloca.
16293         (find_and_verify_loops): Do not allocate loops->array.
16294
16295 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
16296
16297         * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'.
16298
16299 2000-01-21  Jakub Jelinek  <jakub@redhat.com>
16300
16301         * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new
16302         pseudos if expanded after first flow.
16303         (movdi_pic_label_ref): Likewise.
16304
16305 2000-01-20  Richard Henderson  <rth@cygnus.com>
16306
16307         * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0.
16308
16309 2000-01-20  Zack Weinberg  <zack@wolery.cumb.org>
16310
16311         * Makefile.in (fixinc.sh): Depend on specs.
16312         * fixinc/Makefile.in: Add rule to create machname.h.
16313         (fixlib.o): Depend on machname.h.
16314         * fixinc/fixtests.c (machine_name): New test.
16315         * fixinc/fixfixes.c (machine_name): New fix.
16316         * fixinc/fixlib.c (mn_get_regexps): New helper function for
16317         the machine_name test and fix.
16318         * fixinc/fixlib.h: Prototype it.
16319         * fixinc/inclhack.def (machine_name): Use the C test and fix.
16320         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild.
16321
16322         * gcc.c (do_spec_1) [case P]: Take care not to create
16323         identifiers with three leading or trailing underscores.
16324
16325         * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC.
16326         (fixincl): Don't specify libraries twice on link line.
16327         (gnu-regex.o): Remove special rule.
16328         * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was
16329         defined by config.h.  Do not define _REGEX_RE_COMP.
16330         (regcomp): Allocate and initialize a fastmap.
16331         * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP.
16332
16333 2000-01-20  Brad Lucier  <lucier@math.purdue.edu>
16334
16335         * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h.
16336
16337 2000-01-19  Richard Henderson  <rth@cygnus.com>
16338
16339         * flow.c (propagate_block): Replace FIRST, LAST and BNUM
16340         arguments with BB.  Update all callers.  Tidy line wrapping.
16341
16342 2000-01-19  Clinton Popetz  <cpopetz@cygnus.com>
16343
16344         * emit-rtl.c (try_split): Return last_insn if we split the
16345         last_insn.
16346
16347 Thu Jan 20 01:01:23 MET 2000  Jan Hubicka  <jh@suse.cz>
16348
16349         * i386-protos.h (ix86_compute_frame_size): Remove prototype.
16350         (ix86_initial_elimination_offset): Declare.
16351         * i386.c (ix86_nsaved_regs): Break out from ...
16352         (ix86_can_use_return_insn_p): ... here.
16353         (ix86_emit_save_regs): Break out from ...
16354         (ix86_expand_prologue): ... here.
16355         (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break
16356         out from ...
16357         (ix86_expand_epilogue): ... here.
16358         (ix86_compute_frame_size): Make static, add prototype.
16359         (ix86_initial_elimination_offset): Break out from ...
16360         * i386.h (INITIAL_ELIMINATION_OFFSET): ... here.
16361
16362 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16363
16364         * recog.h (OUT_FCN): Delete.
16365
16366         * vax.md: Call `get_insn_template' instead of OUT_FCN.
16367
16368 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16369
16370         * cppalloc.c: PROTO -> PARAMS.
16371         * cpperror.c: Likewise.
16372         * cppfiles.c: Likewise.
16373         * cpplib.c: Likewise.
16374         * cpplib.h: Likewise.
16375
16376         * config/arm/arm-protos.h: PROTO -> PARAMS.
16377         * config/arm/arm.c: Likewise.
16378         * config/c4x/c4x.c: Likewise.
16379         * config/fr30/fr30-protos.h: Likewise.
16380         * config/nextstep.c: Likewise.
16381         * config/pa/pa.c: Likewise.
16382         * config/pj/pj.c: Likewise.
16383         * config/rs6000/rs6000.c: Likewise.
16384         * config/v850/v850-protos.h: Likewise.
16385         * config/v850/v850.c: Likewise.
16386
16387 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16388
16389         * i370-protos.h: New file.
16390
16391         * i370.c: Include tm_p.h.  Fix compile time warnings.
16392
16393         * i370.h: Move prototypes to i370-protos.h.  Fix compile time
16394         warnings.
16395
16396         * i370.md: Likewise.
16397
16398 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16399
16400         * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS.
16401         (target_isinf, target_isnan, eisnan): Mark parameter with
16402         ATTRIBUTE_UNUSED.
16403         (eiisinf): Wrap in INFINITY.
16404         (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY.
16405         (ibmtoe): Remove unused variable `rndsav'.
16406
16407 Wed Jan 19 20:23:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
16408
16409         * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis.
16410         (GO_IF_LEGITIMATE_ADDRESS): Added missing tab.
16411
16412 2000-01-19  Zack Weinberg  <zack@wolery.cumb.org>
16413
16414         * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o.
16415         * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes.
16416         (fix_char_macro_defines, fix_char_macro_uses): New functions.
16417
16418         * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp.
16419         Recognize Emacs mode markers also.
16420         * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of
16421         C++ comments in C++ headers.  Call is_cxx_header only if
16422         necessary.
16423
16424         * fixinc/inclhack.def (avoid_bool): Add select for the problem and
16425         bypass for ncurses.
16426         (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with...
16427         (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes):
16428         ... these, which use the new C fixes.
16429         (math_exception): Escape literal '+' in bypass expression.
16430
16431         * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh:
16432         Regenerate.
16433
16434 2000-01-19  Geoff Keating  <geoffk@cygnus.com>
16435
16436         * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs
16437         inside the MEM.
16438
16439 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16440
16441         * loop.c (loop_optimize): Allocate loop_info structure for each loop
16442         prior to calling scan_loop.
16443
16444 Wed Jan 19 19:54:38 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
16445
16446         * sh.c (find_barrier, gen_block_redirect): Fix indentation.
16447         (split_branches, calc_live_regs): Likewise.
16448
16449 Wed Jan 19 19:12:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
16450
16451         * sh.md (fpu_single, fp_mode): New attributes.
16452
16453 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16454
16455         * loop.c (current_loop_info): Renamed from loop_info_data
16456         and changed to a pointer.
16457         (loop_optimize): Allocate loop_info structure for each loop
16458         and initialise to zero.
16459         (scan_loop): Set current_loop_info.
16460
16461         * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set
16462         on iteration_var.
16463
16464 2000-01-19  Richard Henderson  <rth@cygnus.com>
16465
16466         * stupid.c: Die die die.
16467         * Makefile.in (OBJS): Remove stupid.o.
16468         (stupid.o): Likewise.
16469
16470         * except.c (emit_eh_context): Don't emit USEs for stupid.
16471         * explow.c (probe_stack_range): Likewise.
16472         * flags.h (obey_regdecls): Remove.
16473         * flow.c (find_basic_blocks): Don't run try_merge_blocks
16474         when not optimizing.
16475         (life_analysis): Limit data collection when not optimizing.
16476         (mark_regs_live_at_end): Always mark the return value registers.
16477         (mark_used_regs): Remove dummy RETURN case.
16478         (print_rtl_with_bb): Don't consult obey_regdecls.
16479         * function.c (use_variable, use_variable_after): Remove.
16480         (assign_parms): Consult optimize not obey_regdecls.
16481         (expand_function_start): Don't emit USEs for stupid.
16482         (expand_function_end): Likewise.
16483         * global.c (build_insn_chain): Export.
16484         * integrate.c (expand_inline_function): Kill return-value USE
16485         handling code.
16486         * jump.c (jump_optimize_1): Do simple jump optimizations and
16487         dead code elimination.
16488         (calculate_can_reach_end): Remove check_deleted argument.
16489         (delete_insn): Patch out insns even when not optimizing.
16490         * local-alloc.c (block_alloc): Don't do tying when not optimizing.
16491         * rtl.h (use_variable, use_variable_after): Remove declarations.
16492         (build_insn_chain): Declare.
16493         * stmt.c (expand_value_return): Don't emit USEs for stupid.
16494         (expand_end_bindings): Likewise.
16495         (expand_decl): Likewise.  Consult optimize not obey_regdecls.
16496         * toplev.c (obey_regdecls): Remove.
16497         (rest_of_compilation): Don't set it.  Kill stupid in favour of
16498         flow1, local-alloc, and reload.
16499         (main): Don't set obey_regdecls.
16500
16501         * config/nextstep.c (handle_pragma): Likewise.
16502
16503         * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid.
16504
16505         * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid.
16506
16507 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16508
16509         * alpha-protos.h: PROTO -> PARAMS.
16510         * alpha.c: Likewise.
16511         * elf.h: Likewise.
16512         * h8300.c: Likewise.
16513         * i386-protos.h: Likewise.
16514         * i386.c: Likewise.
16515         * m32r-protos.h: Likewise.
16516         * m32r.c: Likewise.
16517         * mips.c: Likewise.
16518         * mips.md: Likewise.
16519         * gmon-sol2.c: Likewise.
16520         * sparc.c: Likewise.
16521
16522 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16523
16524         * ns32k-protos.h: New file.
16525
16526         * ns32k.c: Fix compile time warnings.
16527
16528         * ns32k.h: Move prototypes to ns32k-protos.h.  Fix compile time
16529         warnings.
16530
16531         * ns32k.md: Likewise.
16532
16533 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16534
16535         * vax-protos.h: New file.
16536
16537         * vax.c: Fix compile time warnings.
16538
16539         * vax.h: Move prototypes to vax-protos.h.  Fix compile time
16540         warnings.
16541
16542         * vax.md: Likewise.
16543
16544         * vaxv.md: Likewise.
16545
16546 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16547
16548         * romp-protos.h: New file.
16549
16550         * romp.c: Fix compile time warnings.
16551
16552         * romp.h: Move prototypes to romp-protos.h.  Fix compile time
16553         warnings.
16554
16555         * romp.md: Likewise.
16556
16557 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16558
16559         * we32k-protos.h: New file.
16560
16561         * we32k.c: Fix compile time warnings.
16562
16563         * we32k.h: Move prototypes to we32k-protos.h.  Fix compile time
16564         warnings.
16565
16566 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16567
16568         * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
16569
16570         * except.c (eh_regs): Likewise.
16571
16572         * final.c (output_operand): Likewise.
16573
16574         * fold-const.c (target_isinf, target_isnan): Likewise.
16575
16576 Tue Jan 18 16:19:55 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
16577
16578         * i386.h (BIGGEST_ALIGNMENT): Set to 128.
16579         (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32)
16580
16581         * i386.md (memstr): Do not use rep stosb for counts divisible by 4
16582         when optimize_size.
16583         (clrstrsi): Rewrite.
16584         (strsethi, strsetqi): New expanders.
16585         (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns.
16586         (cmpstrsi): Emit compare insn before cmpstrsi_1
16587         (cmpstrsi_nz): use flags, set type to str, prefix_length to 1.
16588         (strlensi_1): Likewise.
16589         (cmpstrsi_1): Likewise; do not output compare.
16590         (strlen expander): Do not unroll when optimizing for size.
16591         (*subsi3_carry): Rename to subsi3_carry
16592         (addqi3_cc): New pattern.
16593         * i386.h (processor_costs): Add move_ratio field.
16594         (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE
16595         * i386.c (*_cost): Set move_ratio.
16596         (x86_unroll_strlen): Enable for Athlon, PPro and K6 too.
16597         (x86_expand_strlensi_1): Rewrite the main loop.
16598
16599 2000-01-17  Richard Henderson  <rth@cygnus.com>
16600
16601         * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode.
16602         * cse.c (find_comparison_args, fold_rtx): Likewise.
16603         * integrate.c (subst_constants): Likewise.
16604         * loop.c (get_condition): Likewise.
16605
16606         * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs.
16607
16608         * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF.
16609
16610 2000-01-18  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
16611
16612         * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST.
16613         (RESTORE_WARN_FLAGS): Unpack it.
16614         Change semantic type of extension to ttype.
16615         * c-common.c (split_specs_attrs): Expect an INTEGER_CST.
16616         * c-parse.y, c-parse.c, objc/objc-parse.y,
16617         objc/objc-parse.c: Regenerate.
16618
16619 2000-01-17  Zack Weinberg  <zack@wolery.cumb.org>
16620
16621         * fixinc/fixlib.c: Add copyright notice.
16622         (compile_re): New function.
16623         * fixinc/fixlib.h: Prototype compile_re.
16624
16625         * fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c:
16626         Use compile_re to compile regular expressions.
16627
16628         * fixinc/fixincl.c (egrep_test): Don't bother asking regexec
16629         where the pattern matched.
16630
16631         * fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy,
16632         use 'replace'.
16633         (ultrix_ansi_compat): Likewise.
16634         (interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test,
16635         add egrep test.
16636         (interactv_add2, interactv_add3): Delete.
16637         (x11_sprintf): Don't use filename glob.
16638         * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh:
16639         Regenerate.
16640
16641 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16642
16643         * print-rtl.c: PROTO -> PARAMS.
16644         * real.c: Likewise.
16645         * reg-stack.c: Likewise.
16646         * resource.c: Likewise.
16647         * sdbout.h: Likewise.
16648         * simplify-rtx.c: Likewise.
16649         * stor-layout.c: Likewise.
16650         * stupid.c: Likewise.
16651         * xcoffout.c: Likewise.
16652         * xcoffout.h: Likewise.
16653
16654 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16655
16656         * toplev.c: PROTO -> PARAMS.
16657         * toplev.h: Likewise.
16658         * tree.c: Likewise.
16659         * tree.h: Likewise.
16660         * unroll.c: Likewise.
16661         * varasm.c: Likewise.
16662         * varray.c: Likewise.
16663         * varray.h: Likewise.
16664
16665 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16666
16667         * reload.c: PROTO -> PARAMS.
16668         * reload.h: Likewise.
16669         * reload1.c: Likewise.
16670         * reorg.c: Likewise.
16671         * resource.h: Likewise.
16672         * rtl.c: Likewise.
16673         * rtl.h: Likewise.
16674         * rtlanal.c: Likewise.
16675         * sbitmap.h: Likewise.
16676         * sdbout.c: Likewise.
16677         * stack.h: Likewise.
16678         * stmt.c: Likewise.
16679         * system.h: Likewise.
16680
16681 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16682
16683         * machmode.h: PROTO -> PARAMS.
16684         * mbchar.h: Likewise.
16685         * mips-tdump.c: Likewise.
16686         * mips-tfile.c: Likewise.
16687         * optabs.c: Likewise.
16688         * output.h: Likewise.
16689         * prefix.c: Likewise.
16690         * profile.c: Likewise.
16691         * protoize.c: Likewise.
16692         * real.h: Likewise.
16693         * recog.c: Likewise.
16694         * recog.h: Likewise.
16695         * regclass.c: Likewise.
16696         * regmove.c: Likewise.
16697         * regs.h: Likewise.
16698
16699 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16700
16701         * ggc-common.c: PROTO -> PARAMS.
16702         * ggc-page.c: Likewise.
16703         * ggc-simple.c: Likewise.
16704         * ggc.h: Likewise.
16705         * global.c: Likewise.
16706         * graph.c: Likewise.
16707         * gthr-win32.h: Likewise.
16708         * haifa-sched.c: Likewise.
16709         * halfpic.h: Likewise.
16710         * integrate.c: Likewise.
16711         * integrate.h: Likewise.
16712         * jump.c: Likewise.
16713         * lcm.c: Likewise.
16714         * local-alloc.c: Likewise.
16715         * loop.c: Likewise.
16716         * loop.h: Likewise.
16717
16718 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16719
16720         * genattr.c: PROTO -> PARAMS.
16721         * genattrtab.c: Likewise.
16722         * gencheck.c: Likewise.
16723         * gencodes.c: Likewise.
16724         * genconfig.c: Likewise.
16725         * genemit.c: Likewise.
16726         * genextract.c: Likewise.
16727         * genflags.c: Likewise.
16728         * gengenrtl.c: Likewise.
16729         * genopinit.c: Likewise.
16730         * genoutput.c: Likewise.
16731         * genpeep.c: Likewise.
16732         * genrecog.c: Likewise.
16733
16734 2000-01-16  Mark Mitchell  <mark@codesourcery.com>
16735
16736         * tree.h (BINFO_VPTR_FIELD): Augment documentation.
16737
16738 2000-01-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
16739
16740         * aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro.
16741         * configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP.
16742         * ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO.
16743         * configure, config.in: Rebuilt.
16744
16745 2000-01-16  Zack Weinberg  <zack@wolery.cumb.org>
16746
16747         * config/i386/i386.md: Add peephole to merge successive stack
16748         adjusts.
16749
16750 Sat Jan 15 15:41:14 EST 2000  John Wehle  (john@feith.com)
16751
16752         * gcse.c (insert_insn_end_bb): Use emit_block_insn_before
16753         instead of emit_insn_before.  Also handle NOTE_INSN_BASIC_BLOCK
16754         when walking backwards to find all the parameter loads when
16755         the basic block ends in a call.
16756
16757 2000-01-15  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16758
16759         * loop.c (this_loop_info): Delete.
16760         (uid_loop): Add in place of uid_loop_num.  All uses updated.
16761         (loop_number_exit_count): Delete and replace with entry in loop
16762         structure.  All uses updated.
16763         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
16764         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
16765         (loop_outer_loop): Likewise.
16766         (loop_invalid, loop_number_exit_labels): Likewise.
16767         (loop_used_count_register): Delete and replace with entry in
16768         loop_info structure.
16769         (find_and_verify_loops): Add loops argument.
16770         (verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start,
16771         loop_end, etc. arguments with loop structure pointer.  All callers
16772         changed.
16773         (loop_reg_used_before_p, scan_loop, strength_reduce): Likewise.
16774         (check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise.
16775         (load_mems_and_recount_loop_regs_set, load_mems): Likewise.
16776         (insert_bct): Likewise.
16777         (basic_induction_var): New argument level.
16778         * loop.h (struct loop_info): Delete fields num, loops_enclosed,
16779         vtop, and cont.  Add used_count_register.
16780         (uid_loop): Delete declaration.
16781         (loop_number_exit_count): Likewise.
16782         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
16783         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
16784         (loop_outer_loop, loop_used_count_register): Likewise.
16785         (loop_invalid, loop_number_exit_labels): Likewise.
16786         (unroll_loop): Replace loop_start and loop_end arguments
16787         with loop structure pointer.
16788         (loop_precondition_p, loop_iterations): Likewise.
16789         Include basic-block.h.
16790         * unroll.c: (unroll_loop): Replace loop_start and loop_end arguments
16791         with loop structure pointer.
16792         (loop_precondition_p, loop_iterations): Likewise.
16793         * basic-block.h (struct loop): New entries vtop, cont,
16794         cont_dominator, start, end, top, scan_start, exit_labels,
16795         exit_count.
16796         * Makefile.in (LOOP_H): Add basic-block.h to dependencies.
16797
16798 2000-01-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
16799
16800         * defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT.
16801
16802 2000-01-14  Nathan Sidwell  <sidwell@codesourcery.com>
16803
16804         * config.in: Rebuilt for 2000-01-13 change to acconfig.h.
16805
16806 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16807
16808         * pdp11-protos.h: New file.
16809
16810         * pdp11.c: Include tm_p.h.  Add static prototypes.  Fix compile
16811         time warnings.
16812
16813         * pdp11.h: Move prototypes to pdp11-protos.h.  Fix compile time
16814         warnings.
16815
16816         * pdp11.md: Likewise.
16817
16818         * 2bsd.h: Likewise.
16819
16820 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16821
16822         * mn10300-protos.h: New file.
16823
16824         * mn10300.c: Include tm_p.h.  Add static prototypes.  Fix compile
16825         time warnings.
16826
16827         * mn10300.h: Move prototypes to mn10300-protos.h.  Fix compile time
16828         warnings.
16829
16830         * mn10300.md: Likewise.
16831
16832 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16833
16834         * mn10200-protos.h: New file.
16835
16836         * mn10200.c: Include tm_p.h.  Add static prototypes.  Fix compile
16837         time warnings.
16838
16839         * mn10200.h: Move prototypes to mn10200-protos.h.  Fix compile time
16840         warnings.
16841
16842         * mn10200.md: Likewise.
16843
16844 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16845
16846         * h8300-protos.h: New file.
16847
16848         * h8300.c: Include tm_p.h.  Add static prototypes.  Fix compile
16849         time warnings.
16850
16851         * h8300.h: Move prototypes to h8300-protos.h.  Fix compile time
16852         warnings.
16853
16854         * h8300.md: Likewise.
16855
16856 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16857
16858         * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED.
16859         (asm_emit_uninitialised): Likewise.
16860
16861 2000-01-13  Gavin Romig-Koch  <gavin@cygnus.com>
16862
16863         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New.
16864         * config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE.
16865
16866 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
16867
16868         * config/mips/mips.c (override_options): Don't turn on extra
16869         alignment for mips16.
16870
16871 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
16872
16873         * config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit
16874         eabi, and make sure queued POSTINCREMENT rtl is emitted at
16875         the right point.
16876
16877 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
16878
16879         * builtins.c (PAD_VARARGS_DOWN): Define.
16880         (std_expand_builtin_va_arg): Use the above macro.
16881         * config/mips/mips.h (PAD_VARARGS_DOWN): Define.
16882         * tm.texi (Register Arguments): Document the above macro.
16883
16884 2000-01-14  Nick Clifton  <nickc@cygnus.com>
16885
16886         * emit-rtl.c (emit_insn): If checking is enabled, make sure
16887         that this function has not been used to emit a jump
16888         instruction.
16889
16890         * jump.c (return_jump_1): Cope with being passed a null rtx.
16891
16892 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16893
16894         * eh-common.h: PROTO -> PARAMS.
16895         * emit-rtl.c: Likewise.
16896         * errors.c: Likewise.
16897         * errors.h: Likewise.
16898         * except.c: Likewise.
16899         * except.h: Likewise.
16900         * explow.c: Likewise.
16901         * expmed.c: Likewise.
16902         * expr.c: Likewise.
16903         * expr.h: Likewise.
16904         * final.c: Likewise.
16905         * fix-header.c: Likewise.
16906         * flow.c: Likewise.
16907         * fold-const.c: Likewise.
16908         * function.c: Likewise.
16909         * function.h: Likewise.
16910         * gcc.c: Likewise.
16911         * gcov-io.h: Likewise.
16912         * gcov.c: Likewise.
16913         * gcse.c: Likewise.
16914
16915 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16916
16917         * sh-protos.h: New file.
16918
16919         * sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h.
16920         Add static prototypes.  Fix compile time warnings.
16921
16922         * sh.h: Move prototypes to sh-protos.h.  Fix compile time warnings.
16923         * sh.md: Likewise.
16924         * elf.h: Likewise.
16925
16926 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16927
16928         * arc-protos.h: New file.
16929
16930         * arc.c: Include tm_p.h.  Add static prototypes.  Fix compile
16931         time warnings.
16932
16933         * arc.h: Move prototypes to arc-protos.h.  Fix compile time
16934         warnings.
16935
16936         * arc.md: Likewise.
16937
16938 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16939
16940         * dsp16xx-protos.h: New file.
16941
16942         * dsp16xx.c: Include tm_p.h.  Add static prototypes.  Fix compile
16943         time warnings.
16944
16945         * dsp16xx.h: Move prototypes to dsp16xx-protos.h.  Fix compile time
16946         warnings.
16947
16948         * dsp16xx.md: Likewise.
16949
16950 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16951
16952         * convex-protos.h: New file.
16953
16954         * convex.c: Include tm_p.h.  Add static prototypes.  Fix compile
16955         time warnings.
16956
16957         * convex.h: Move prototypes to convex-protos.h.  Fix compile time
16958         warnings.
16959
16960 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16961
16962         * elxsi-protos.h: New file.
16963
16964         * elxsi.c: Include tm_p.h.  Add static prototypes.  Fix compile
16965         time warnings.
16966
16967         * elxsi.h: Move prototypes to elxsi-protos.h.  Fix compile time
16968         warnings.
16969
16970         * elxsi.md: Likewise.
16971
16972 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
16973
16974         * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant
16975         case for moving from HI/LO/HI_LO_REG.  This makes the behavior
16976         match the comment for MIPS16.
16977
16978 Fri Jan 14 00:28:06 2000  Jeffrey A Law  (law@cygnus.com)
16979
16980         * flow.c (split_edge): Do not call set_block_for_insn if we
16981         do not have a basic_block_for_insn structure.
16982
16983         * fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain
16984         and destination functions are 32bit aligned within the trampoline.
16985         (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes.
16986         (TRAMPOLINE_ALIGNMENT): Define.
16987
16988         * cse.c (cse_insn): When changing (set (pc) (reg)) to
16989         (set (pc) (label_ref)), verify the change creates a valid insn.
16990
16991         * fr30.c (call_operand): Tighten and rework to match rules for
16992         call RTL expressions.
16993         * fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs.
16994         * fr30.md (call patterns): Improve constraints.
16995
16996 Thu Jan 13 23:44:03 2000  Richard Henderson  <rth@cygnus.com>
16997
16998         * fr30.c (fr30_expand_epilogue): Revert last change.
16999         Use emit_jump_insn for the return insn.
17000
17001 Thu Jan 13 14:46:03 2000  Jason Eckhardt  <jle@cygnus.com>
17002                           Stan Cox  <scox@cygnus.com>
17003
17004         * predict.c: New file. Preliminary infrastructure work for static
17005         branch prediction and basic block reordering.
17006         * basic-block.h: Add prototype for estimate_probability.
17007         * Makefile.in: Add rules for predict.o.
17008
17009 2000-01-13  Jason Merrill  <jason@yorick.cygnus.com>
17010
17011         * fixincludes (va_list): Use __not_va_list__ for the dummy.
17012         * fixinc/*: Likewise.
17013
17014 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17015
17016         * cccp.c: PROTO -> PARAMS.
17017         * cexp.y: Likewise.
17018         * collect2.c: Likewise.
17019         * combine.c: Likewise.
17020         * convert.h: Likewise.
17021         * cse.c: Likewise.
17022         * dbxout.c: Likewise.
17023         * dbxout.h: Likewise.
17024         * diagnostic.c: Likewise.
17025         * doprint.c: Likewise.
17026         * dwarf2out.c: Likewise.
17027         * dwarf2out.h: Likewise.
17028         * dwarfout.c: Likewise.
17029         * dwarfout.h: Likewise.
17030         * dyn-string.h: Likewise.
17031
17032 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17033
17034         * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in
17035         macro conditionals guarding use.
17036
17037         * dwarf2out.c: Include "tm_p.h".
17038
17039         * function.c (locate_and_pad_parm): Mark parameter with
17040         ATTRIBUTE_UNUSED.
17041         (expand_function_end): Likewise for variable `context'.
17042
17043         * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return.
17044
17045 2000-01-13  Nick Clifton  <nickc@cygnus.com>
17046
17047         * config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed
17048         register to prevent compile time warnings.
17049
17050 2000-01-13  Zack Weinberg  <zack@wolery.cumb.org>
17051
17052         * longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv'
17053         to avoid -Wtraditional warning.
17054
17055 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17056
17057         * 1750a-protos.h: New file.
17058
17059         * 1750a.c: Include tm_p.h.  Add static prototypes.  Fix compile
17060         time warnings.
17061
17062         * 1750a.h: Move prototypes to 1750a-protos.h.  Fix compile time
17063         warnings.
17064
17065         * 1750a.md: Likewise.
17066
17067 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17068
17069         * a29k-protos.h: New file.
17070
17071         * a29k.c: Include tm_p.h.  Add static prototypes.  Fix compile
17072         time warnings.
17073
17074         * a29k.h: Move prototypes to a29k-protos.h.  Fix compile time
17075         warnings.
17076
17077 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17078
17079         * clipper-protos.h: New file.
17080
17081         * clipper.c: Include tm_p.h.  Add static prototypes.  Fix compile
17082         time warnings.
17083
17084         * clipper.h: Move prototypes to clipper-protos.h.  Fix compile time
17085         warnings.
17086
17087 Thu Jan 13 16:03:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
17088
17089         * reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS.
17090
17091 2000-01-13  Nathan Sidwell  <sidwell@codesourcery.com>
17092
17093         * configure.in (--enable-new-gxx-abi): New option.
17094         * acconfig.h (ENABLE_NEW_GXX_ABI): New define.
17095         * Makefile.in (GXX_ABI_FLAG): New variable.
17096         * configure: Regenerate.
17097
17098 2000-01-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17099
17100         * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK.
17101         * tm.texi (FORCE_STRUCT_BLK): Document.
17102         * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro.
17103
17104 Wed Jan 12 23:12:47 2000  Hans-Peter Nilsson  <hp@axis.com>
17105
17106         * config/ns32k/ns32k.md: Revert Jan 9 change.
17107
17108         * genrecog.c (maybe_both_true_2): Do not compare a predicate-test
17109         to a mode-test, if the predicate is address_operand.
17110
17111 Wed Jan 12 22:34:00 2000  Jeffrey A Law  (law@cygnus.com)
17112
17113         * combine.c (if_then_else_cond): Be careful about what kinds
17114         of RTL expressions are passed to operand_subword.
17115
17116         * flow.c (split_edge): If we have to insert a new jump, make
17117         sure to associate it with a basic block.
17118
17119         * flow.c (commit_one_edge_insertion): A block with one successor
17120         can end in a JUMP_INSN that is not a simplejump.
17121
17122 2000-01-12  Robert Lipe  <robertl@sco.com>
17123
17124         * i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor".
17125         (BUILD_VA_LIST_TYPE): Define.
17126         (EH_FRAME_SECTION_ASM_OP): Explictly define to better interact
17127         with crtstuff.c.
17128
17129 2000-01-12  Jason Merrill  <jason@casey.cygnus.com>
17130
17131         * cccp.c (do_pragma): Add cast to (char *).
17132
17133 2000-01-12  Richard Henderson  <rth@cygnus.com>
17134             Fred Fish  <fnf@be.com>
17135             Jason Merrill  <jason@cygnus.com>
17136
17137         * configure.in (i?86-*-beos{pe,elf,}*): Recognize.
17138         * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files.
17139         * i386/beos-elf.h, i386/beos-pe.h: New files.
17140
17141         * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New.
17142         * cross-make (SYSTEM_HEADER_DIR): Define using
17143         CROSS_SYSTEM_HEADER_DIR.
17144
17145         * gcc.c (LIBRARY_PATH_ENV): Provide default.
17146         (process_command): Use it.
17147         (main): Likewise.  Kill trailing = from env vars.
17148         (build_search_list): Put it back.
17149         * collect2.c (main): Use LIBRARY_PATH_ENV.
17150
17151         * configure.in (GCC_NEED_DECLARATIONS): Add environ.
17152         * toplev.c: Use NEED_DECLARATION_ENVIRON.
17153
17154         * tm.texi (Frame Layout): Document SMALL_STACK.
17155         * c-common.c (c_common_nodes_and_builtins): Check it.
17156
17157         * system.h: Undef alloca after including glibc's <stdlib.h>,
17158         if USE_C_ALLOCA is defined.
17159
17160         * gcc.c (set_input): New fn.
17161         (main): After all input files are compiled, reset the input file
17162         info to the first.
17163
17164         * aclocal.m4 (rindex, index): If already defined, don't attempt
17165         to redefine.
17166
17167         * ginclude/varargs.h: (__va_list__): Define ifndef.
17168         * ginclude/stdarg.h: Likewise.
17169
17170         * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int
17171         instead of unsigned char.
17172
17173         * hash.h (true, false, boolean): Undef before enum.
17174
17175         * expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be
17176         proper type of "HOST_WIDE_INT *", rather than their natural type of
17177         "unsigned HOST_WIDE_INT *".
17178
17179 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17180
17181         * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets.
17182
17183         * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED.
17184
17185         * regclass.c (choose_hard_reg_mode): Likewise.
17186
17187         * reload.c (find_valid_class, strict_memory_address_p): Likewise.
17188
17189         * reorg.c (optimize_skip): Wrap prototype in macro conditionals.
17190
17191 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17192
17193         * c-common.c: PROTO -> PARAMS.
17194         * c-common.h: Likewise.
17195         * c-decl.c: Likewise.
17196         * c-iterate.c: Likewise.
17197         * c-lang.c: Likewise.
17198         * c-lex.c: Likewise.
17199         * c-lex.h: Likewise.
17200         * c-parse.in: Likewise.
17201         * c-pragma.c: Likewise.
17202         * c-pragma.h: Likewise.
17203         * c-tree.h: Likewise.
17204         * c-typeck.c: Likewise.
17205         * objc/objc-act.c: Likewise.
17206         * objc/objc-act.h: Likewise.
17207
17208 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17209
17210         * m88k-protos.h: New file.
17211
17212         * m88k.c: Include tm_p.h.  Add static prototypes.  Fix compile
17213         time warnings.
17214
17215         * m88k.h: Move prototypes to m88k-protos.h.  Fix compile time warnings.
17216
17217         * m88k.md: Likewise.
17218
17219         * tekXD88.h: Likewise.
17220
17221 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17222
17223         * m68k-protos.h: New file.
17224
17225         * m68k.c: Include tm_p.h.  Add static prototypes.  Fix compile
17226         time warnings.
17227
17228         * m68k.h: Move prototypes to m68k-protos.h.  Fix compile time warnings.
17229
17230         * mot3300.h: Likewise.
17231
17232 2000-01-12  Richard Earnshaw <rearnsha@arm.com>
17233
17234         * haifa-sched.c (split_edges): Pass edgeset_size as second arg to
17235         extract_bitlst.
17236         (extract_bitlist): Declare bitlen.
17237
17238 2000-01-12  Zack Weinberg  <zack@wolery.cumb.org
17239
17240         * cccp.c: Accept and ignore -lang-fortran.
17241
17242         * c-typeck.c (build_c_cast): Issue -Wcast-qual warnings if the
17243         qualifiers don't match at any level of pointerness.
17244
17245 2000-01-12  Robert Lipe  <robertl@sco.com>
17246
17247         * i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT.
17248
17249 2000-01-12  Bernd Schmidt  <bernds@cygnus.co.uk>
17250
17251         * reload1.c (reload_reg_unavailable): New static variable.
17252         (reload_reg_free_p): Test it.
17253         (reload_reg_free_for_value_p): Test it instead of
17254         reload_reg_used.
17255         (choose_reload_regs_init): Compute it.
17256
17257 Wed Jan 12 03:24:41 2000  Toshiyasu Morita (toshi.morita@sega.com)
17258
17259         * reorg.c (fill_slots_from_thread): Check modified_in_p
17260         before replacing.
17261
17262 Wed Jan 12 03:20:31 2000  John Marshall <john_w_marshall@palm.com>
17263
17264         * gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format
17265         these nodes even if INTERNALS is not set.
17266
17267 Wed Jan 12 09:39:22 2000  Nick Burrett  <nick.burrett@btinternet.com>
17268
17269         * gcse.c (delete_null_pointer_checks_1): Cope when
17270         get_condition cannot determine the condition.
17271
17272 2000-01-12  Gabriel Dos Reis  <gdr@codesourcery.com>
17273
17274         * toplev.h (set_message_length): Declare.
17275
17276         * diagnostic.c (obstack_chunk_alloc): Define macro.
17277         (obstack_chunk_free): Likewise.
17278         (struct output_buffer): New data structure.
17279         (vmessage): Remove.
17280         (output_maximum_width): New variable.
17281         (doing_line_wrapping, set_message_length, init_output_buffer,
17282         get_output_prefix, output_space_left, emit_output_prefix,
17283         output_newline, output_append, output_puts, dump_output,
17284         vbuild_message_string, build_message_string, build_location_prefix,
17285         voutput_notice, output_printf, line_wrapper_printf,
17286         vline_wrapper_message_with_location):  New functions. Implement
17287         automatic line wrapping.
17288         (v_message_with_decl): Make it handle automatic line wrapping.
17289         (v_error_with_file_and_line): Likewise.
17290         (v_warning_with_file_and_line): Likewise.
17291         (announce_function): Likewise.
17292         (default_print_error_function): Likewise.
17293
17294 2000-01-11 16:24 -0800  Zack Weinberg  <zack@wolery.cumb.org>
17295
17296         * cpplib.h (struct cpp_options): Change lang_asm to char.
17297         Add lang_fortran.
17298         * cppinit.c (builtin_array): Take out __STDC_VERSION__, it's
17299         done in cpp_handle_option now.
17300         (initialize_builtins): Take out special case code used only by
17301         __STDC_VERSION__.
17302         (cpp_handle_option): Turn off trigraphs and trigraph warnings
17303         if -traditional.  Recognize -lang-fortran and set
17304         lang_fortran, also turn off cplusplus_comments.
17305         (print_help): Document -lang-fortran.
17306         * cpplib.c (handle_directive): Ignore `# 123 "file"' if
17307         lang_asm. Ignore all directives other than `# 123 "file"' if
17308         CPP_PREPROCESSED.
17309         (cpp_get_token): If -traditional, don't recognize directives
17310         unless the # is in column 1.
17311         (parse_string): If lang_fortran or lang_asm, silently
17312         terminate strings ('' or "") at end of line.
17313         Remove unnecessary braces.
17314
17315 2000-01-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17316             Richard Henderson  <rth@cygnus.com>
17317
17318         * resource.c (mark_referenced_resources): Mark a set strict_low_part
17319         as used.
17320         * config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set
17321         strict_low_part when possible.
17322
17323 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17324
17325         * alias.c: PROTO -> PARAMS.
17326         * basic-block.h: Likewise.
17327         * bitmap.c: Likewise.
17328         * bitmap.h: Likewise.
17329         * builtins.c: Likewise.
17330         * c-aux-info.c: Likewise.
17331         * caller-save.c: Likewise.
17332         * calls.c: Likewise.
17333
17334 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17335
17336         * Makefile.in (toplev.o): Depend on regs.h.
17337
17338         * output.h (tdesc_section): Prototype.
17339
17340         * regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED.
17341
17342         * sdbout.c: Include "tm_p.h".
17343
17344         * toplev.c: Include "regs.h".
17345
17346 Tue Jan 11 11:37:58 2000  Mike Stump  <mrs@wrs.com>
17347
17348         * unroll.c (unroll_loop): Add EH support.
17349
17350 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17351
17352         * pa-protos.h: New file.
17353
17354         * pa.c: Include recog.h and tm_p.h.
17355         (compute_zdepwi_operands, compute_movstrsi_length,
17356         remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d,
17357         find_addr_reg, import_milli): Add static prototypes.
17358         (pa_cpu_string, pa_arch_string): Constify a char*.
17359         (legitimize_pic_address): Pass argument `mode' to pic_label_operand.
17360         (read_only_operand): Add argument `mode'.
17361         (singlemove_string, output_move_double, output_fp_move_double,
17362         output_block_move, output_and, output_ior, output_ascii,
17363         remove_useless_addtr_insns, milli_names, output_mul_insn,
17364         output_div_insn, output_mod_insn, output_arg_descriptor,
17365         output_cbranch, output_bb, output_bvb, output_dbra, ,
17366         output_millicode_call, output_call, hppa_encode_label,
17367         output_parallel_movb, output_parallel_addb): Constify a char*.
17368         (hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED.
17369         (output_parallel_addb): Remove extra arg to `constrain_operands'
17370
17371         * pa.h:  Move all prototypes to pa-protos.h.
17372         (pa_cpu_string, pa_arch_string): Constify a char*.
17373         (LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument.
17374
17375         * pa.md: Call `function_label_operand' with mode argument.
17376         Likewise for `read_only_operand'.
17377         Fix nesting of parens in call to `symbolic_operand'.
17378
17379 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17380
17381         * i860-protos.h: New file.
17382
17383         * i860.c: Include tm_p.h.  Add static prototypes.  Fix compile
17384         time warnings.
17385
17386         * i860.h: Move prototypes to i860-protos.h.  Fix compile time warnings.
17387
17388         * i860.md: Likewise.
17389
17390 Tue Jan 11 18:59:35 MET 2000  Jan Hubicka <jh@suse.cz>
17391
17392         * i386.md (movstrsi expander): Rewrite.
17393         (movstrsi_1 insn): Deleted.
17394         (strmovhi, strmovqi expander): New expanders.
17395         (movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns.
17396         * i386.c (x86_single_stringop): New global variable.
17397         * i386.h (x86_single_stringop): Declare.
17398         (TARGET_SINGLE_STRINGOP): New macro.
17399
17400 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
17401
17402         * config/mips/mips.c (mips_va_arg): For EABI, emit the queued
17403         integer vararg POSTINCREMENT before the destination of the jump
17404         for the hard fp case.
17405         (function_arg_pass_by_reference): Pass a copy of CUM to
17406         FUNCTION_ARG.
17407
17408         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check
17409         for CONSTANT_ADDRESS_P above while loop for subreg.
17410
17411 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
17412
17413         * flow.c (propagate_block): When a prologue/epilogue insn
17414         is marked dead, unconditionally clear libcall_is_dead and
17415         insn_is_dead, and only dump rtl if warnings aren't being
17416         suppressed.
17417
17418 Tue Jan 11 16:26:47 MET 2000  Jan Hubicka <jh@suse.cz>
17419
17420         * i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD.
17421         * i386.md (FIRST_PSEUDO_REGISTER): Set to 20.
17422         (FIXED_REGISTERS): Set dirflag as fixed.
17423         (CALL_USED_REGISTERS): Set dirflag as used.
17424         (REG_ALLOC_ORDER): Set dirflag as last one.
17425         (DIRFLAG_REG): New macro.
17426         (MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility.
17427         (HI_REGISTER_NAMES): Add dirflag.
17428         (DEBUF_PRINT_REG): Handle dirflag.
17429         * i386.md (type attribute): New cld and str types.
17430         (length_opcode attribute): Set cld and str to 1.
17431         (memory attribute): Set str to unknown - it is not clear from the
17432         patterns.
17433         (pent_np function unit): Prefixed string operations takes 12 cycles
17434         minimally; cld takes 2 cycles.
17435         (ppro_uops attribute): Str is "many" and cld is "few".
17436         (ppro_p0 unit): Handle cld here.
17437         (k6_alux unit): Handle cld and str types.
17438         (k6_load unit): It is ocupied by str opcodes.
17439         (k6_store unit): It is ocupied by str opcodes.
17440         (athlon_decode): Str is vector decoded.
17441         (athlon_ieu): Handle str and cld.
17442         (cld pattern): New.
17443         (movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction
17444         (movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1,
17445         cmpstrsi_nz_1 insn): Do not output cld instruction
17446
17447 Tue Jan 11 06:14:39 2000  David Starner <dstarner98@aasaa.ofe.org>
17448
17449         * gcc.texi (G++ and GCC): Add Java and Chill.
17450         (Bug Critera): Don't list languages.
17451
17452         * gcc.texi (Incompatibilities): No longer claim most C compilers
17453         are K&R.
17454
17455         * gcc.texi (G++ and GCC): Update other front-ends list.
17456
17457 Tue Jan 11 05:49:01 2000  Jeffrey A Law  (law@cygnus.com)
17458
17459         * i386.c (ix86_expand_setcc): Fix typo.
17460         (ix86_expand_movcc): Similarly.
17461
17462         * Band-aid until haifa's bitset implementation is nuked.
17463         * haifa-sched.c (extract_bitlst): New parameter for size of the
17464         bitset in bits.  All callers changed.  Avoid looking at undefined
17465         bits in the bitset.
17466         (edgeset_bitsize): New variable.
17467         (schedule_region): Initialize edgeset_bitsize.
17468
17469 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17470
17471         * Makefile.in (optabs.o): Depend on real.h
17472         (resource.o): Depend on insn-attr.h
17473
17474         * builtins.c (result_vector): Wrap prototype in macro conditions
17475         governing definition and use.
17476
17477         * c-common.c: Include tm_p.h.
17478
17479         * c-lex.c: Likewise.
17480
17481         * elfos.h: Constify a char*.
17482
17483         * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length.
17484         (get_attr_length, shorten_branches, profile_after_prologue): Mark
17485         parameter with ATTRIBUTE_UNUSED.
17486
17487         * fold-const.c (exact_real_inverse): Wrap variable `i' in
17488         CHECK_FLOAT_VALUE.
17489
17490         * haifa-sched.c (schedule_insns): Mark parameter with
17491         ATTRIBUTE_UNUSED.
17492
17493         * optabs.c: Include real.h.
17494
17495         * real.h (ereal_atof): Add prototype arguments.
17496
17497         * resource.c: Include insn-attr.h.
17498
17499         * sdbout.c (sdbout_queue_anonymous_type,
17500         sdbout_dequeue_anonymous_types): Wrap in macro
17501         SDB_ALLOW_FORWARD_REFERENCES.
17502         (sdbout_init, sdbout_start_new_source_file): Mark parameter with
17503         ATTRIBUTE_UNUSED.
17504
17505         * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return.
17506
17507         * stupid.c: Include tm_p.h.
17508
17509         * tree.c (real_value_from_int_cst): Mark parameter with
17510         ATTRIBUTE_UNUSED.
17511
17512 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17513
17514         * i960-protos.h: New file.
17515
17516         * i960.c: Include tm_p.h.  Add static prototypes.  Fix compile
17517         time warnings.
17518
17519         * i960.h: Move prototypes to i960-protos.h.  Fix compile time warnings.
17520
17521 2000-01-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17522
17523         * combine.c (expand_field_assignment): Do not discard SUBREGs
17524         while computing nonzero_bits.
17525
17526 2000-01-09  Nick Clifton  <nickc@cygnus.com>
17527
17528         * config/arm/arm.c: Fix compile time warnings about signed vs
17529         unsigned constants.
17530         * config/arm/arm.h: Fix compile time warnings about signed vs
17531         unsigned constants.
17532
17533 2000-01-09  Philip Blundell  <philb@gnu.org>
17534
17535         * config/arm/arm.c (output_return_instruction): Use `ldr' rather
17536         than `ldm' with only one register.
17537         * config/arm/arm.md (push_multi): Use `str' rather than `stm' with
17538         only one register.
17539
17540         * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is
17541         clobbered.
17542
17543 Sun Jan  9 17:50:23 2000  Hans-Peter Nilsson  <hp@axis.com>
17544
17545         * config/ns32k/ns32k.md (load or push effective address): Operand 1
17546         must have SImode.
17547
17548 2000-01-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17549
17550         * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around
17551         assignment used as truth value.
17552
17553         * function.c (assign_temp): Mark parameter `dont_promote' with
17554         ATTRIBUTE_UNUSED.  Wrap variable `unsignedp' with macro
17555         PROMOTE_FOR_CALL_ONLY.
17556
17557         * genrecog.c (write_subroutine): Mark variable `operands' with
17558         ATTRIBUTE_UNUSED.
17559
17560         * optabs.c (prepare_cmp_insn): Mark parameter `align' with
17561         ATTRIBUTE_UNUSED.
17562
17563         * sdbout.c (sdbout_init): Likewise for parameter `asm_file'.
17564         (sdbout_begin_block, sdbout_end_block): Likewise for `file'.
17565
17566         * toplev.c (note_deferral_of_defined_inline_function): Likewise
17567         for `decl'.
17568
17569 2000-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17570
17571         * config/c4x.h: Tidy up comments.
17572         * config/c4x.c: Likewise.
17573
17574 Sun Jan  9 01:02:55 EST 2000  John Wehle  (john@feith.com)
17575
17576         * fold-const.c (lshift_double, rshift_double): Handle
17577         shifting by 2 * HOST_BITS_PER_WIDE_INT correctly.
17578
17579 2000-01-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
17580
17581         * toplev.c (rest_of_compilation): Initialize cse_not_expected as
17582         in prepare_function_start().
17583
17584 Sat Jan  8 12:12:46 2000  Nick Clifton  <nickc@cygnus.com>
17585
17586         * config/v850/v850.c (expand_epilogue): Interrupt functions no
17587         longer allocate extra stack for function calls.
17588
17589 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17590
17591         * config/c4x/c4x.md (*subqf3_set): Fix typo.
17592
17593 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17594
17595         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0.
17596
17597 2000-01-07  David Edelsohn  <edelsohn@gnu.org>
17598
17599         * rs6000.c (processor_target_table): Add power3 as alias for 630.
17600         * aix43.h: Revert Aug 2 change.
17601         (HAS_INIT_SECTION): Define, not visible yet.
17602         (LD_INIT_SWITCH): Define, not visible yet.
17603         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
17604
17605         * glimits.h (__LONG_MAX__): Recognize 64-bit AIX too.
17606
17607         * collect2.c (main): Expand ld2 size further.
17608         (export_object_lst): Cast assignment to avoid warning.
17609         (main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support.
17610         (scan_prog_file, COFF): Do not collect initialization or
17611         finalization functions generated for entire shared object if
17612         init/fini support present.
17613
17614 2000-01-07  Nick Clifton  <nickc@cygnus.com>
17615
17616         * config/elfos.h: Tidy up formatting of marcos.  Make sure
17617         that .section directives are always prefixed by a tab.
17618
17619         * config/svr4.h: Add #include "elfos.h" and remove duplicate
17620         definitions.
17621
17622 2000-01-07  Matt Austern  <austern@sgi.com>
17623
17624         * fold-const.c (real_hex_to_f): Remove duplicate declaration of
17625         expon.
17626
17627 Fri Jan  7 01:55:34 2000  Jeffrey A Law  (law@cygnus.com)
17628
17629         * Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of
17630         crtstuff.c.
17631         (crtbegin.o, s-crtS): Likewise.
17632
17633 2000-01-06  Richard Henderson  <rth@cygnus.com>
17634
17635         * alpha.md (adddi_2+1): Limit offset such that it will be
17636         loadable with a single ldah+lda pair.
17637         (adddi_2+2): Explicitly fail split if we can't make it work.
17638
17639 2000-01-06  Mumit Khan  <khan@xraylith.wisc.edu>
17640
17641         * protoize.c: Conditionally include unistd.h.
17642         (IS_SAME_PATH_CHAR): New macro.
17643         (IS_SAME_PATH): New macro.
17644         (CPLUS_FILE_SUFFIX): New macro.
17645         (cplus_suffix): New static variable.
17646         (is_abspath): New static function.
17647         (in_system_include_dir): Handle DOS style pathnames.
17648         (file_could_be_converted): Likewise.
17649         (file_normally_convertible): Likewise.
17650         (directory_specified_p): Likewise.
17651         (file_excluded_p): Likewise.
17652         (abspath): Likewise.
17653         (shortpath): Likewise.
17654         (referenced_file_is_newer): Likewise.
17655         (save_def_or_dec): Likewise.
17656         (do_processing): Likewise.
17657         (main): Likewise.
17658         (edit_file): Likewise. Use rename instead of link.
17659         (rename_c_file): Likewise. Don't rename syscalls file.
17660         (munge_compile_params): Define null device for DOS based systems.
17661         (process_aux_info_file): Use binary mode if appliable.
17662         (edit_file): Likewise.
17663         * invoke.texi (Running Protoize): Document C++ suffixes used.
17664
17665         * cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and
17666         IS_DIR_SEPARATOR macros.
17667         * collect2.c: Likewise.
17668         * cppinit.c: Likewise.
17669         * dwarf2out.c: Likewise.
17670         * gcc.c: Likewise.
17671         * gcov.c: Likewise.
17672         * prefix.c: Likewise.
17673         * rtl.c: Likewise.
17674         * toplev.c: Likewise.
17675         * system.h: And move to here.
17676
17677         * prefix.c (update_path): Fix typo in variable name.
17678
17679 2000-01-06  Richard Henderson  <rth@cygnus.com>
17680
17681         * flow.c (mark_set_1): Use loop_depth+1 as reference weight.
17682         (find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise.
17683         (count_reg_sets_1, count_reg_references): Likewise.
17684         (flow_loops_level_compute): Start counting actual loop depth at 1.
17685         (flow_loops_find): Likewise.
17686         * local-alloc.c (update_equiv_regs): Likewise.
17687         * regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change.
17688
17689 2000-01-06  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
17690
17691         * defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to
17692         FIRST_PSEUDO_REGISTER
17693         * dwarf2out.c: Don't include frame.h
17694         * dwarfout.c: Likewise
17695         * Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on
17696         frame.h
17697
17698 Thu Jan  6 13:44:59 CET 2000  Jan Hubicka  <jh@suse.cz>
17699
17700         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
17701         dead registers.
17702
17703         * i386.c (movsf splitter): Fix typo in my last checkin.
17704
17705 2000-01-05  Nick Clifton  <nickc@cygnus.com>
17706
17707         * varasm.c (IN_NAMED_SECTION): Allow targets to provide their
17708         own definition of this macro.
17709         (asm_emit_uninitialised): Invoke UNIQUE_SECTION if either
17710         flag_data_sections or UNIQUE_SECTION_P are true.
17711
17712         * tm.texi (UNIQUE_SECTION): Document that it can be called for
17713         unitialised data decls.
17714
17715         * config/i386/winnt.c (i386_pe_unique_section): Cope with
17716         being called for uninitialised data.
17717
17718         * config/i386/interix.c (i386_pe_unique_section): Cope with
17719         being called for uninitialised data.
17720
17721         * config/mips/elf.h (UNIQUE_SECTION): Cope with being called
17722         for uninitialised data.
17723
17724         * config/mips/elf64.h (UNIQUE_SECTION): Cope with being called
17725         for uninitialised data.
17726
17727         * config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called
17728         for uninitialised data.
17729
17730         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Define.
17731         (UNIQUE_SECTION_P): Always generate a unique section if
17732         flag_data_sections is true.
17733         (UNIQUE_SECTION): Also generate unique sections for
17734         uninitialised data.
17735         (ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section().
17736         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use
17737         named_section().
17738
17739 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17740
17741         * config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF,
17742         SI, or DI.
17743
17744 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17745
17746         * config/c4x/c4x.md (udivqi3, divqi3): Delete.
17747         (umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise.
17748         (*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New.
17749         (*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise.
17750         (*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise.
17751
17752         * c4x.h (INIT_TARGET_OPTABS): Define to init libcalls.
17753
17754 2000-01-05 11:25 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
17755
17756         * c-decl.c (finish_enum): Simplify code to determine minimum and
17757         maximum values of the enum, and calculate the type.  Remove check
17758         for FUNCTION_DECLs in the values list, which cannot happen.  Replace
17759         the DECL_INITIAL of each enumeration constant with a copy converted
17760         to the enumeration type.  When updating variant types, don't bother
17761         updating the type itself.
17762
17763         * c-typeck.c (build_binary_op): Simplify conditional expressions
17764         when weeding out spurious signed-unsigned warnings.  Add new
17765         spurious warning category: if the unsigned quantity is an enum
17766         and its maximum value fits in signed_type(result_type).  Update
17767         commentary.
17768         (build_conditional_expr): Warn here if one alternative is signed
17769         and the other is unsigned.
17770
17771 2000-01-05  Nick Clifton  <nickc@cygnus.com>
17772
17773         * config/fr30/fr30.h: Remove extraneous comments.
17774
17775 2000-01-05  Bernd Schmidt  <bernds@cygnus.co.uk>
17776
17777         * reload1.c (choose_reload_regs): When disabling a reload, also
17778         set reload_spill_index to -1.
17779
17780 2000-01-04  Joel Sherrill (joel@OARcorp.com>
17781
17782         * configure.in (m68*-*-rtemscoff*): New target, formal name for
17783         old m68*-*-rtems*.
17784         (m68*-*-rtemself*): New target.
17785         (mips64orion-*-rtems*): Remove duplicate definition of tm_file.
17786         (sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*.
17787         (sparc*-*-rtemself*): New target.
17788         (sparc*-*-rtems*): Now elf not a.out.
17789         * config/i386/rtems.h: Include config/rtems.h.
17790         * config/i386/rtemself.h: Include config/rtems.h.
17791         * config/i960/rtems.h: Include config/rtems.h.
17792         * config/m68k/rtems.h: Include config/rtems.h.
17793         * config/m68k/rtemself.h: Include config/rtems.h.
17794         * config/mips/rtems64.h: Include config/rtems.h.
17795         * config/pa/rtems.h: Include config/rtems.h.
17796         * config/rs6000/rtems.h: Include config/rtems.h.
17797         * config/sh/rtems.h: Include config/rtems.h.
17798         * config/sh/rtemself.h: Include config/rtems.h.
17799         * config/sparc/rtems.h: Include config/rtems.h.
17800         * config/sparc/rtemself.h: Include config/rtems.h
17801
17802 Tue Jan  4 23:59:26 2000  Denis Chertykov <denisc@overta.ru>
17803
17804         * final.c (shorten_branches): Correctly compute length of
17805         asms without operands.
17806
17807 Tue Jan  4 22:55:41 2000  Steve Chamberlain <sac@pobox.com>
17808
17809         * configure.in: Add pj target.
17810         * configure: Regenerate.
17811         * config/pj: New directory.
17812         * config/pj/lib1funcs.S: New file.
17813         * config/pj/linux.h: New file.
17814         * config/pj/pj.c: New file.
17815         * config/pj/pj.md: New file.
17816         * config/pj/pjl.h: New file.
17817         * config/pj/t-pj: New file.
17818         * config/pj/xm-pj.h: New file
17819
17820 Tue Jan  4 22:30:16 2000  Jeffrey A Law  (law@cygnus.com)
17821
17822         * toplev.c (rest_of_compilation): Run shorten-branches before
17823         reg-stack for now.
17824
17825 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17826
17827         * config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behaviour of
17828         macros so that they're consistent with their names.
17829         * config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise.
17830         * config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise.
17831
17832 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17833
17834         * config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never
17835         modified inadvertently.
17836
17837 2000-01-04  Joel Sherrill <joel@OARcorp.com>
17838
17839         * configure.in (v850*-*-rtems*): New target.
17840         * configure: Regenerate.
17841         * config/v850/rtems.h: New file.
17842
17843 2000-01-04  Mumit Khan  <khan@xraylith.wisc.edu>
17844
17845         * gthr-win32.h (__gthread_active_p): Support Mingw MT runtime.
17846         (__gthread_key_create): Likewise.
17847         (__gthread_key_dtor):  Likewise.
17848         (__gthread_once): Fix logic.
17849         (__gthread_key_delete): Cast away constness.
17850
17851         * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option.
17852         * invoke.texi: Document.
17853         * i386/mingw32.h (CPP_SPEC): Use.
17854         (LIBGCC_SPEC): Likewise.
17855         * i386/crtdll.h (LIBGCC_SPEC): Likewise.
17856
17857 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
17858
17859         * rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine.
17860         (HANDLE_PRAGMA_PACK): Undefine.
17861         (SLOW_UNALIGNED_ACCESS): Define.
17862
17863 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
17864
17865         * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
17866         to default definition.
17867         (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment.
17868         (store_fixed_bit_field): Call macro with word_mode and alignment.
17869         (extract_bit_field): Call macro with relevant mode and alignment.
17870         * expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
17871         to default definition.
17872         (move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode
17873         and alignment.
17874         (move_by_pieces_ninsns): Likewise.
17875         (clear_by_pieces): Likewise.
17876         (emit_push_insn): Likewise.
17877         (store_field): Call macro with relevant mode and alignment.
17878         (expand_expr): Likewise.
17879         (expand_expr_unaligned): Likewise.
17880
17881         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
17882         (SLOW_UNALIGNED_ACCESS): Define.
17883         (CASE_VECTOR_MODE): Always use 32-bit offsets.
17884         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
17885         (EXTRA_SECTION_FUNCTIONS): Indent .csect pseudo-op.
17886         (toc_section): Likewise and .toc pseudo-op.
17887         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
17888         64-bit mode.
17889         (TEXT_SECTION_ASM_OP): Likewise.
17890         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
17891         32-bit offsets.
17892
17893         * a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters.
17894         * alpha.h (SLOW_UNALIGNED_ACCESS): Likewise.
17895         * arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise.
17896         * gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise.
17897         * fr30.h (SLOW_UNALIGNED_ACCESS): Likewise.
17898
17899 Tue Jan  4 11:44:13 2000  Jeffrey A Law  (law@cygnus.com)
17900
17901         * regclass.c: Revert my Jan 4 change to loop cost computation.
17902
17903 Tue Jan  4 19:22:39 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
17904
17905         * regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing
17906         compilation.
17907
17908 2000-01-04  Stan Cox  <scox@cygnus.com>
17909
17910         * haifa-sched.c (build_control_flow): Change unreachable simple
17911         loop test to check if current block has only one predecessor.
17912         (find_rgns): Initialize degree.  Use dest as degree index, not src.
17913
17914 2000-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17915
17916         * builtins.c (expand_builtin_strlen): Initialize variable `icode'.
17917
17918         * calls.c (expand_call): Likewise for
17919         `old_stack_arg_under_construction'.
17920
17921         * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'.
17922
17923         * function.c (pad_to_arg_alignment): Likewise for `save_var' and
17924         `save_constant'.
17925
17926         * gcc.c (execute): Likewise for `ut' and `st'.
17927
17928         * genattrtab.c (attr_rtx): Likewise for `rt_val'.
17929
17930         * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'.
17931
17932         * jump.c (jump_optimize_1): Likewise for `temp2'.
17933
17934         * local-alloc.c (block_alloc): Likewise for `r1'.
17935
17936         * loop.c (recombine_givs): Likewise for `life_start' and `life_end'.
17937
17938         * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'.
17939         (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'.
17940
17941         * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node'
17942         and `set2'.
17943
17944         * reload.c (find_reloads): Likewise for `goal_alternative_number'
17945         and `goal_earlyclobber'.
17946
17947         * scan-decls.c (scan_decls): Likewise for `prev_id_end'.
17948
17949         * sdbout.c (sdbout_one_type): Likewise for `member_scl'.
17950
17951         * stupid.c (stupid_life_analysis): Likewise for `chain'.
17952
17953         * unroll.c (copy_loop_body): Likewise for `copy'.
17954
17955         * varasm.c (output_constructor): Likewise for `byte'.
17956
17957 Tue Jan  4 15:34:34 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
17958
17959         * i386.c (ix86_expand_move): Allow pushes of memory, offload to memory
17960         all FP constants for constant->reg moves.
17961         (ix86_split_to_parts): Try to convert memory address into immediate
17962         when available in the constant pool.
17963         * i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg
17964         moves.
17965         (LEGITIMATE_CONSTANT_P): Return 1.
17966         * i386.md (pushsf): New splitter to convert constant pool memory
17967         reference to immediate.
17968         (mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before
17969         reload.
17970
17971 2000-01-04  Bernd Schmidt  <bernds@cygnus.co.uk>
17972
17973         * i386.md (ashlsi3_cmpno): Don't accept variables shifts.
17974         (ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno,
17975         ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise.
17976         (rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno,
17977         rotrhi3_cmpno, rotrqi3_cmpno): Likewise.
17978
17979 2000-01-04  Martin von Löwis  <loewis@informatik.hu-berlin.de>
17980
17981         * ginclude/stdbool.h:  Support compilation as C++.
17982
17983 Tue Jan  4 01:35:13 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
17984
17985         * fold-const.c (make_range): Don't try to reverse an unbounded range.
17986
17987 Tue Jan  4 00:18:46 2000  Jeffrey A Law  (law@cygnus.com)
17988
17989         * regclass.c (regclass): Properly compute loop_cost.  Adjust
17990         comments.
17991
17992         * regclass.c: Fix minor whitespace problems.
17993
17994 2000-01-03  Anthony Green  <green@cygnus.com>
17995
17996         * config/i386/i386.md (builtin_setjmp_receiver): New pattern.
17997         Restore the pic register if required.
17998
17999 2000-01-03  Ulrich Drepper  <drepper@cygnus.com>
18000
18001         * c-common.c (format_char_info): Update comment.
18002         (check_format_info): Recognize 'z' modifier in the same way 'Z'
18003         was recognized.  Emit warning for formats new in ISO C99 only
18004         if flag_isoc9x is not set.
18005
18006 Mon Jan  3 12:59:54 2000  Mark P. Mitchell  <mark@codesourcery.com>
18007
18008         * config/mips/iris6gld.h: Fix typo in -mabi=n32 specs.
18009
18010 Mon Jan  3 15:33:37 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
18011
18012         * combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to
18013         SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND.
18014         (make_compound_operation): Choose cheaper alternative between
18015         ZERO_EXTEND and SIGN_EXTEND when sign bit is not set.
18016
18017         * regclass.c (op_costs): Remove global variable.
18018         (record_reg_classes): New parameter "op_costs" and "reg_pref".
18019         (record_operand_costs): Break out from ...
18020         (scan_one_insn): ... here.
18021         (dump_regclass): Make dumps nicer.
18022         (regclass): Dump preferrences choosed and changes done during passes.
18023
18024 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
18025
18026         * config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC.
18027
18028 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
18029
18030         * config/sparc/sparc.c (gen_df_reg): New function.
18031         * config/sparc/sparc-protos.h (gen_df_reg): Add prototype.
18032         * config/sparc/sparc.md (movtf_no_e_insn_sp64+1,
18033         movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1,
18034         movtf_cc_reg_sp64+1): Use it.
18035
18036 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
18037
18038         * integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on
18039         copied LABEL_DECLs.
18040
18041 Mon Jan  3 02:54:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
18042
18043         * config/i386/i386.c (ix86_expand_unary_operator): Function
18044         definition made void.
18045         (ix86_expand_binary_operator): Update outdated preceding comment.
18046         * config/i386/i386-protos.h (ix86_expand_unary_operator): Update
18047         prototype.
18048
18049         * config/i386/i386.c (override_options): Fix option-name typo.
18050
18051 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
18052
18053         * system.h (CEIL): Define.
18054         * builtins.c (CEIL): Remove.
18055         * expmed.c (CEIL): Likewise.
18056         * expr.c (CEIL): Likewise.
18057         * stor-layout.c (CEIL): Likewise.
18058
18059 2000-01-02  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
18060
18061         * expr.c (store_constructor_field): Fix typo introduced with last
18062         gcc2 merge.
18063
18064 2000-01-01  Mark Mitchell  <mark@codesourcery.com>
18065
18066         * tree.h (BINFO_N_BASETYPES): New macro.
18067
18068 2000-01-01  Bernd Schmidt  <bernds@cygnus.co.uk>
18069
18070         * expmed.c (emit_store_flag): Prevent losing a pending stack
18071         adjust the same way we prevent losing queued increments.
18072
18073 See ChangeLog.2 for earlier changes.